diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0c2bcda86..7e289dae5 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -89,10 +89,11 @@ $ pnpm test The outer loop includes the `*.outer.test.ts` integration suites, which seed the full API catalog or exercise subprocess shutdown. It also adds type checks and starts its own Astro development server -from current source. Browser checks cover prose, an MCP table, API equivalents, -and phone dropdown placement at 1440, 768, and 390 pixels. The sampled renderer -also checks homepage choices and uses `node site/scripts/check-dev.mjs --sample`. -It does not reuse `_site`. The runtime budgets are under 2, 10, and 60 seconds for inner, +from current source. Browser checks cover prose, an MCP table, row permalinks, +API equivalents, and phone dropdown placement at 1440, 768, and 390 pixels. The +sampled renderer also checks homepage choices and uses +`node site/scripts/check-dev.mjs --sample`. It does not reuse `_site`. The +runtime budgets are under 2, 10, and 60 seconds for inner, medium, and outer respectively; measure the complete pnpm command when changing a loop. `test:fast` aliases medium. The runner stops an over-budget loop and fails. @@ -131,6 +132,36 @@ Install the pinned Chromium build for local browser checks with that build and its system dependencies before the publication audit. The standard ten-second browser timeout increases to twenty seconds on CI. +Each engine aligns the sticky Members and group headings of a reference page +differently. The publication audit checks them in Chromium; install Firefox +and WebKit to check all three: + +```console +$ pnpm --filter @libtmux/site exec playwright install firefox webkit +``` + +Then run the sticky heading check, which starts its own server and drives +focus, link, repeated link and typed hash arrivals in each engine: + +```console +$ node site/scripts/check-dev.mjs --api-sticky +``` + +Kind marks centre their ink by measurement, and a legend chip, split chip or +modifier chip is one line of text. The badge gate reads the pixels of real pages +at 1x and at a real 2x device scale factor (Chromium launched with the factor, +because the emulated factor snaps text to CSS pixels), in light and dark. It +measures the mark that leads a name in cards and lists, the related-APIs +chips, the group headings, the MCP sidebar's rule (a mark only in a group that +mixes kinds, and no gutter) and that the API tree keeps its gutter, and it +checks that only the first mention of a name in a section carries a mark. Each +check ends with a negative control that breaks what it holds and requires the +gate to notice: + +```console +$ node site/scripts/check-dev.mjs --badge-centring +``` + Keep the complete assembly, all output suites, link audits, source/model freshness, and full browser matrix in the publication audit: @@ -177,6 +208,21 @@ the index: $ node scripts/gen-mentions.mjs ``` +Workspace prose links a code span that names a CLI command, option or +configuration key to its entry in the port's CLI Manual or Configuration +reference. Those destinations come from an index of the workspace pages. After +adding or renaming a CLI page, a table of options, or a table of keys, +regenerate it: + +```console +$ node scripts/gen-workspace-entities.mjs +``` + +A bare name links only on a user-facing workspace page, where it outranks a +library symbol or tmux name of the same spelling. ` ` links +on any page of a port that ships the program. Internals pages and the language +API index keep their library symbols. + The publication audit checks index freshness, rendered links, navigation targets, and table layout at desktop, tablet, and phone widths. diff --git a/WRITING.md b/WRITING.md index b6fdbda82..e06af7864 100644 --- a/WRITING.md +++ b/WRITING.md @@ -339,6 +339,16 @@ Run the workspace linter: $ pnpm run lint ``` +### tmux keys + +Write a tmux key in tmux's notation, in backticks: `C-b d` for a sequence, +`M-x`, `C-c`. The site renders it as a key cap; Markdown and agent exports +keep the backticks. A modified key, and any key in a list with one, always +qualifies. A bare name or character such as `Enter` or `q` qualifies beside the +word "key" ("the `Enter` key") or "press". Text typed into a pane, like the +word `Enter`, stays code. [`tmux-keys.ts`](site/src/lib/tmux-keys.ts) holds the +rule, and the manual pages apply it to the manual's own key tables and bindings. + ### Durable links Link to repository-relative files for local guidance. For external source diff --git a/notes/gp-sphinx-parity.md b/notes/gp-sphinx-parity.md index 0e35942a9..7d09ae853 100644 --- a/notes/gp-sphinx-parity.md +++ b/notes/gp-sphinx-parity.md @@ -96,6 +96,30 @@ per-language table is in `packages/api-model/src/doc/roles.ts`; adding a syntax means adding a matcher, not widening an existing one, because the guards are what keep `[see below]` from becoming a link. +**Badges: kind is a filled chip, a modifier is an outline on the same box.** +gp-sphinx draws a modifier as a monospace outline pill at 0.68rem, with its hue +scoped to `dl.py`. This site draws a kind as the legend chip (the mark and the +word in one filled token) and a modifier on that chip's geometry: the same +snapped height, radius, sans 600 word and baseline, so a declaration row reads +as one family and an entry has one loud thing. Where it differs: + +- The modifier keeps gp-sphinx's hue for the same word (async violet, abstract + indigo, classmethod and static amber, final and readonly green, the rest a + readable grey) from the same `--gp-sphinx-badge-mod-*` tokens, but applies + it wherever a modifier sits, not only inside `dl.py`. The member list's + `inherited` and a card's context badge are modifiers too. +- The light amber ink is five percent darker than the token. The token is + under 4.5:1 on the declaration band, and the darker ink keeps the hue. Dark + mode takes the token as it is. +- `package` is an outline in the types hue, no longer a second filled badge. +- `deprecated` is a status and takes the warning ink and border, which the + vendored `dl.py` default would otherwise repaint grey. +- The word is not lowercased by CSS: a package name keeps its case. + +`check-style-parity.mjs` compares the eight treatments above and none of them +is a badge, so this divergence is held by `test/modifier-chips.test.ts` and the +modifier chips in `check-badge-centring.mjs`, not by that check. + **The page shell is this site's, not Furo's.** Header, footer, search, version switcher and port switcher are shared with the rest of libtmux.org. Only the reference *content* is held to parity. Under reduced motion the API surface diff --git a/notes/status.md b/notes/status.md index 1f4f2247f..2b8f9c1ce 100644 --- a/notes/status.md +++ b/notes/status.md @@ -162,7 +162,7 @@ field at all) — resolves every ledger's cited evidence against that port's own checkout (a test file for .NET, a test function for Go, a contract test class for Java), and classifies each row `test-verified` / `claimed` / `unknown` by what actually resolves, not by how confident the ledger's -prose sounds. `site/src/pages/parity.astro` renders the result: +prose sounds. `site/src/pages/meta/parity.astro` renders the result: per-port summaries, a cross-port module table, and an explicit note that the four ledgers are not pinned to the same Python revision (.NET and Java pin `c4a980b`, Swift pins `988b02a`, Go records none). Spot-checked: Java's diff --git a/notes/tmux-catalog.md b/notes/tmux-catalog.md new file mode 100644 index 000000000..25527b38c --- /dev/null +++ b/notes/tmux-catalog.md @@ -0,0 +1,104 @@ +# tmux catalog: options, hooks and format variables + +Prose across the site names tmux options (`destroy-unattached`), hooks +(`session-created`) and format variables (`session_attached`) that the +CLI Manual and the C source reference do not index. The catalog is a browser +for those names, built from the same data tmux uses, so any page can link to +the entry for the tmux release it describes. + +## Entry kinds + +| Kind | Fields | Source in the tmux tree | +| ---- | ------ | ----------------------- | +| `option` | scope (`server`, `session`, `window`, `pane`), type, default, minimum, maximum, unit, choices, array and style flags, accepted spellings | A row of `options_table[]` in `options-table.c`; choice lists, symbolic defaults and ranges resolve through the same file and `tmux.h`. | +| `hook` | scope, the command an `after-` hook follows, control mode notification of the same name, firing sites | `OPTIONS_TABLE_*HOOK` rows of `options_table[]`; firing sites are the literal names passed to `notify_*` and `cmdq_insert_hook` in `*.c`. | +| `format` | type (`string` or `time`), the object it describes, short form, callback | `format_table[]` in `format.c`, plus names the manual documents that are set elsewhere (`format_add`, `cmdq_add_format`, `%s_suffix` patterns). The object is the first `ft->` member the callback reads. | + +Descriptions come from the tmux.1 of the same release: the `OPTIONS` list, the +`HOOKS` list (a hook without its own text falls back to its `%name` entry in +`CONTROL MODE`, and an `after-` hook to the shared after-hook paragraph) and +the `Variable name` tables. An option the manual omits keeps the `.text` from +the option table and says so. A format variable the manual omits is listed as +undocumented rather than dropped. + +Other tables would justify more kinds (control mode notifications, layouts, +key tables). They are not part of this change. + +## Extraction + +`scripts/gen-tmux-catalog.mjs` reads the pinned commit of each release in +`site/src/data/tmux/versions.json` and writes +`site/src/data/tmux/catalog/.json`. Output is sorted and +deterministic. Every entry carries `file:line` at that commit. + +The script refuses to guess: an unresolved symbol in a table cell, a format +variable with no source location, or a manual snapshot whose `manualSha256` +differs from `tmux.1` at the commit stops the run. `--check` verifies digests +and shape without a checkout, and with `--source` regenerates and compares. +`gen-tmux-catalog.negative.mjs` shows each failure. + +## Pages and URLs + +```text +/tmux//catalog/ index +/tmux//catalog/options/ kind page, grouped like the tree +/tmux//catalog/options// entry page +/tmux//catalog/hooks// +/tmux//catalog/formats// +/tmux//catalog/tree.json sidebar tree and search inventory +/tmux//catalog//.preview.json +``` + +`` is a pinned release or `latest`. The page uses the C reference's +layout: a sidebar tree with search and All, Options, Hooks and Formats tabs, kind +badges, and an entry page with facts, description, releases, source and +"Used by". A name missing from another release links that release's section. + +The picker and the tmux sidebar list it as "Options, hooks and formats", a +third section beside "CLI Manual" and "C source reference". + +## Linking + +`tmuxEntityHref(kind, name, version)` in `site/src/lib/tmux-links.ts` is the one +place a tmux name becomes a destination. A command resolves to its CLI Manual +page; an option, hook or format variable resolves to its catalog entry, and an +entry page links back to the manual text through `tmuxManualEntityHref`. +`tmuxMentions` finds the names in a run of text, and every surface uses it: API +docstrings (`ApiDoc`), guides and topics (`rehype-api-links`), their Markdown +exports (`prose-markdown`, `symbol-markdown`) and the CLI Manual HTML +(`tmux-catalog-html.ts`). Hover cards for catalog links come from +`.preview.json`. + +Which options, hooks and variables count as a mention is decided in +`tmux-catalog-links.ts`, in this order: + +1. Only code literals link. Prose names an entry without being a reference to + it. +2. A language API link wins. A name the library documents as its own symbol + links there; the catalog link is the fallback, and a command claims a span + that holds one. +3. A whole literal links, quoted or not, with an array index + (`after-new-window[0]`). A hyphenated option or hook links as a separate word + of a longer run, and an underscored variable links inside `#{...}`. +4. A single word (`status`, `host`) links only beside the word `option`, `hook` + or `variable`, as the argument of `set-option`, `set-hook` and their read + forms, or as `#{word}`. A name more than one kind uses, or a command's name, + links only when a neighbouring word picks the kind; otherwise it stays plain. +5. Inside `#{...}` only the variable position links (after `#{`, `#{?` or + `E:`, `T:`, `t:` and similar); words after a comparison stay literal. +6. Displayed examples, flags (`--status-left`), control notifications + (`%session-renamed`), user options (`@name`) and paths never link. +7. A name absent from the selected release stays plain. + +Library members that wrap a family (`set_hook`, `show_hooks`, `Hooks`) link to +the matching catalog section through the concepts in +`packages/api-model/src/concepts.ts` and the wrapper types listed in +`tmux-catalog.ts`. An entry page lists, per port, the members whose +documentation names it, and a C declaration (`options_table`, `format_cb_*`, +`notify_*`) links to its catalog entries. + +## Open questions + +- The URL plural (`options`, `hooks`, `formats`) against the singular used for + kinds in code. +- Whether single-word names should ever link without a context word. diff --git a/packages/api-model/src/doc/csharp.ts b/packages/api-model/src/doc/csharp.ts index c1ef1a304..7655acafa 100644 --- a/packages/api-model/src/doc/csharp.ts +++ b/packages/api-model/src/doc/csharp.ts @@ -77,6 +77,8 @@ function prose(xml: string): string { export interface ParsedXmlDoc { doc: DocBlock params: Map + /** ``, by parameter name. */ + typeParams: Map returnsDoc?: string raises: { type: string; doc?: string }[] } @@ -95,6 +97,13 @@ export function parseXmlDoc(raw: string): ParsedXmlDoc { if (name && text) params.set(name, text) } + const typeParams = new Map() + for (const s of sections(raw, 'typeparam')) { + const name = attr(s.attrs, 'name') + const text = prose(s.body) + if (name && text) typeParams.set(name, text) + } + const returnsDoc = prose(sections(raw, 'returns')[0]?.body ?? '') || undefined const raises = sections(raw, 'exception') @@ -136,6 +145,7 @@ export function parseXmlDoc(raw: string): ParsedXmlDoc { examples: examples.length ? examples : undefined, }, params, + typeParams, returnsDoc, raises, } diff --git a/packages/api-model/src/doc/go.ts b/packages/api-model/src/doc/go.ts index 0b0be3295..924d1776e 100644 --- a/packages/api-model/src/doc/go.ts +++ b/packages/api-model/src/doc/go.ts @@ -71,5 +71,5 @@ export function parseGoDoc(raw: string, parser: Parser): ParsedMarkdownDoc { } const first = blocks[0]?.kind === 'prose' ? blocks.shift()!.text : '' return { doc: { summary: first.replace(/\s+/g, ' ').trim(), body: blocks.map((block) => block.text).join('\n\n') || undefined }, - params: new Map(), raises: [] } + params: new Map(), typeParams: new Map(), raises: [] } } diff --git a/packages/api-model/src/doc/javadoc.ts b/packages/api-model/src/doc/javadoc.ts index fd9e91c87..f803d597f 100644 --- a/packages/api-model/src/doc/javadoc.ts +++ b/packages/api-model/src/doc/javadoc.ts @@ -26,7 +26,7 @@ import { parseMarkdownDocFull, type ParsedMarkdownDoc } from './markdown.ts' * the block's spelling rather than an inline literal, and an inline pass that * reached it first would leave the fence holding a stray brace. */ -const PRE_BLOCK = /
\s*(?:\{@code\b)?\s*\n?([\s\S]*?)\n?\s*\}?\s*<\/pre>/g
+const PRE_BLOCK = /
\s*(?:\{@code\b)?[ \t]*\n?([\s\S]*?)\n?\s*\}?\s*<\/pre>/g
 
 /** Inline formatting, as `[tag, markdown]`. `` is javadoc's `{@code}`. */
 const INLINE: [RegExp, string][] = [
@@ -35,11 +35,16 @@ const INLINE: [RegExp, string][] = [
   [/([\s\S]*?)<\/code>/g, '`$1`'],
 ]
 
+const indentation = (line: string): number => /^[ \t]*/.exec(line)![0].length
+
 /** Translate one javadoc comment body into Markdown. */
 export function javadocToMarkdown(raw: string): string {
   let text = raw.replace(PRE_BLOCK, (_, code: string) => {
-    const lines = code.split('\n').map((l) => l.replace(/^\s*/, ''))
-    return `\n\`\`\`java\n${lines.join('\n')}\n\`\`\`\n`
+    const lines = code.split('\n')
+    const margin = Math.min(...lines.filter((line) => line.trim()).map(indentation))
+    // Only the block's common margin comes off; the rest is the code's own indentation.
+    const body = lines.map((line) => (line.trim() ? line.slice(margin) : '')).join('\n')
+    return `\n\`\`\`java\n${body}\n\`\`\`\n`
   })
 
   // `

` opens a paragraph in javadoc and closes nothing; every one of diff --git a/packages/api-model/src/doc/markdown.ts b/packages/api-model/src/doc/markdown.ts index 452397fa0..36e52c170 100644 --- a/packages/api-model/src/doc/markdown.ts +++ b/packages/api-model/src/doc/markdown.ts @@ -66,7 +66,7 @@ const HEADING = /^\s*#{1,3}\s+(Examples?|Panics|Errors|Safety|Notes?|Returns?|Ar * and none of them reached a field list, because this parser treated the * whole comment as prose. */ -const BLOCK_TAG = /^\s*@(param|arg|argument|returns?|throws|exception|deprecated|since)\b\s*(.*)$/ +const BLOCK_TAG = /^\s*@(param|arg|argument|returns?|throws|exception|deprecated|since|typeParam|typeparam|template|tparam)\b\s*(.*)$/ /** * A Markdown link definition: `` [`Window`]: crate::Window ``. @@ -124,6 +124,8 @@ function callout(quoted: string[]): { kind: string; text: string } | undefined { export interface ParsedMarkdownDoc { doc: DocBlock params: Map + /** `@typeParam T`, `@template T`, `@tparam T`, and Javadoc's `@param `, by parameter name. */ + typeParams: Map returnsDoc?: string raises: { type: string; doc?: string }[] } @@ -157,6 +159,7 @@ export function parseMarkdownDocFull(raw: string, defaultLang = 'text'): ParsedM let inExamples = false const params = new Map() + const typeParams = new Map() const raises: { type: string; doc?: string }[] = [] const admonitions: { kind: string; text: string }[] = [] /** The blockquote currently collecting lines, callout or not. */ @@ -177,7 +180,10 @@ export function parseMarkdownDocFull(raw: string, defaultLang = 'text'): ParsedM const closeTag = () => { if (!tag) return const text = tag.text.join(' ').replace(/\s+/g, ' ').trim() - if (tag.kind === 'param' && tag.name) params.set(tag.name, text) + const javadocTypeParam = tag.kind === 'param' ? /^<(\w+)>$/.exec(tag.name ?? '')?.[1] : undefined + if (tag.kind === 'typeparam' && tag.name) typeParams.set(tag.name, text.replace(/^-\s*/, '')) + else if (javadocTypeParam) typeParams.set(javadocTypeParam, text) + else if (tag.kind === 'param' && tag.name) params.set(tag.name, text) else if (tag.kind === 'returns') returnsDoc = text || undefined else if (tag.kind === 'throws' && tag.name) raises.push({ type: tag.name, doc: text || undefined }) tag = undefined @@ -224,15 +230,17 @@ export function parseMarkdownDocFull(raw: string, defaultLang = 'text'): ParsedM closeTag() const kind = /^(param|arg|argument)$/.test(block[1]) ? 'param' - : /^returns?$/.test(block[1]) - ? 'returns' - : /^(throws|exception)$/.test(block[1]) - ? 'throws' - : block[1] + : /^(typeParam|typeparam|template|tparam)$/.test(block[1]) + ? 'typeparam' + : /^returns?$/.test(block[1]) + ? 'returns' + : /^(throws|exception)$/.test(block[1]) + ? 'throws' + : block[1] // `@param name description` — the name is the first word for param and // throws, and absent for the rest. const rest = block[2] ?? '' - const needsName = kind === 'param' || kind === 'throws' + const needsName = kind === 'param' || kind === 'throws' || kind === 'typeparam' const [first, ...tail] = rest.split(/\s+/) tag = needsName ? { kind, name: first || undefined, text: tail } @@ -278,6 +286,7 @@ export function parseMarkdownDocFull(raw: string, defaultLang = 'text'): ParsedM admonitions: admonitions.length ? admonitions : undefined, }, params, + typeParams, returnsDoc, raises, } diff --git a/packages/api-model/src/doc/roles.ts b/packages/api-model/src/doc/roles.ts index b24dbb07c..119c51921 100644 --- a/packages/api-model/src/doc/roles.ts +++ b/packages/api-model/src/doc/roles.ts @@ -162,7 +162,9 @@ const JSDOC_CODE_RE = /\{@(?:code|literal)\s+([^}]+)\}/g * part of the name. */ const XML_SEE_RE = /(?:<\/see(?:also)?>)?/g -const XML_PARAMREF_RE = /<(?:paramref|typeparamref)\s+name="([^"]+)"\s*\/?>/g +const XML_PARAMREF_RE = //g +/** A type parameter is looked up among the ones in scope, never among global names. */ +const XML_TYPEPARAMREF_RE = //g /** * `` names a C# keyword, not a member. * @@ -440,6 +442,9 @@ export function tokenizeDoc(text: string, lang?: string): DocSpan[] { for (const m of text.matchAll(XML_PARAMREF_RE)) { hits.push({ start: m.index, end: m.index + m[0].length, span: { kind: 'code', text: m[1] } }) } + for (const m of text.matchAll(XML_TYPEPARAMREF_RE)) { + hits.push({ start: m.index, end: m.index + m[0].length, span: { kind: 'ref', role: 'typeparam', target: m[1], label: m[1] } }) + } for (const m of text.matchAll(XML_SEE_RE)) { // `{T}` spells a generic parameter in a compiler-checked cref; ids carry none. const target = m[1].replace(/\(.*$/, '').replace(/\{[^{}]*\}/g, '') diff --git a/packages/api-model/src/index.ts b/packages/api-model/src/index.ts index 78809ba65..3df97d795 100644 --- a/packages/api-model/src/index.ts +++ b/packages/api-model/src/index.ts @@ -9,7 +9,8 @@ export { extractJulia } from './languages/julia.ts' export { extractFSharp, extractFSharpArtifact } from './languages/fsharp.ts' export { extractProject } from './project.ts' export { resolvePublicIds } from './reexports.ts' -export { SymbolIndex, parameterId, type LinkTarget, type KeywordHelp } from './link.ts' +export { SymbolIndex, keywordArgument, parameterId, typeParameterId, type LinkTarget, type KeywordHelp, type TypeParameterBinding } from './link.ts' +export { boundLabel, parseTypeParameter, parseTypeParameters, typeParameterList, typeParametersOf, withTypeParameterDocs } from './type-params.ts' export { tokenizeDoc, docSummaryText, referencesIn, type DocSpan } from './doc/roles.ts' export { writeInventory, readInventory, type InventoryEntry } from './inventory.ts' export { Resolver, notASymbol, toPath, DEFAULT_TEMPLATES, DEFAULT_PRIMARY_MODULES } from './resolver.ts' diff --git a/packages/api-model/src/languages/csharp-examples.ts b/packages/api-model/src/languages/csharp-examples.ts index f9d478b68..83109cd5f 100644 --- a/packages/api-model/src/languages/csharp-examples.ts +++ b/packages/api-model/src/languages/csharp-examples.ts @@ -70,7 +70,7 @@ export function attachCompleteCSharpExamples( ids.add(program.id) const blocks: NonNullable = [{ lang: 'console', - intro: `${program.description.replace(/\n/g, ' ')} Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK ${sdk}, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:`, + intro: `${program.description.replace(/\n/g, ' ')} Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK ${sdk}, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:`, code: `$ git clone https://github.com/${source.repo}.git libtmux-source && \\\n git -C libtmux-source checkout --detach ${source.revision}\n`, }] for (const file of setup) blocks.push({ diff --git a/packages/api-model/src/languages/cxx-examples.ts b/packages/api-model/src/languages/cxx-examples.ts index 7c1315259..a340949f9 100644 --- a/packages/api-model/src/languages/cxx-examples.ts +++ b/packages/api-model/src/languages/cxx-examples.ts @@ -61,7 +61,7 @@ export function attachCompleteCxxExamples( const blocks: NonNullable = [ { lang: 'console', - intro: `${example.title}. ${example.description.replace(/\n/g, ' ')} Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:`, + intro: `${example.title}. ${example.description.replace(/\n/g, ' ')} Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:`, code: `$ git clone https://github.com/${source.repo}.git libtmux-source && \\\n git -C libtmux-source checkout ${source.revision}\n`, }, { diff --git a/packages/api-model/src/languages/doxygen.ts b/packages/api-model/src/languages/doxygen.ts index eded84a07..aca9a28ce 100644 --- a/packages/api-model/src/languages/doxygen.ts +++ b/packages/api-model/src/languages/doxygen.ts @@ -2,6 +2,8 @@ import { readFileSync, readdirSync } from 'node:fs' import { join } from 'node:path' import { markText } from '../doc/markdown.ts' import type { ApiSymbol, Modifier, Param, Signature, SymbolKind } from '../model.ts' +import { markOverload } from '../overloads.ts' +import { parseTypeParameters, withTypeParameterDocs } from '../type-params.ts' /** * C and C++ from the same Doxygen XML extractor. @@ -47,7 +49,16 @@ const MEMBER_KIND: Record = { * ``, so it gets a blank line of its own; a `@par` title is a bold line. */ function textOf(xml: string): string { - return xml + // A `\code` block is kept apart from the whitespace folding below: its + // lines and indentation are the example. + const listings: string[] = [] + const text = xml.replace(/]*>([\s\S]*?)<\/programlisting>/g, (_, listing: string) => { + const lines = [...listing.matchAll(/]*>([\s\S]*?)<\/codeline>/g)] + .map((line) => decodeEntities(line[1].replace(//g, ' ').replace(/<[^>]+>/g, ''))) + listings.push(`\n\n\`\`\`cpp\n${lines.join('\n').replace(/\s+$/, '')}\n\`\`\`\n\n`) + return `\uE000${listings.length - 1}\uE001` + }) + return text .replace(/]*>/g, '') .replace(/<\/ref>/g, '') .replace(//g, '`') @@ -68,16 +79,23 @@ function textOf(xml: string): string { .replace(/[ \t]+/g, ' ') .replace(/\n{3,}/g, '\n\n') .trim() + .replace(/\uE000(\d+)\uE001/g, (_, at: string) => listings[Number(at)]) + .replace(/\n{3,}/g, '\n\n') + .trim() } -/** Code XML keeps literal whitespace and decodes each entity exactly once. */ -function codeOf(xml: string): string { +function decodeEntities(text: string): string { const entities: Record = { lt: '<', gt: '>', amp: '&', quot: '"', apos: "'" } - return xml.replace(/<[^>]+>/g, '').replace(/&(lt|gt|amp|quot|apos|#\d+|#x[\da-f]+);/gi, (_, entity: string) => { + return text.replace(/&(lt|gt|amp|quot|apos|#\d+|#x[\da-f]+);/gi, (_, entity: string) => { if (entity.startsWith('#x')) return String.fromCodePoint(Number.parseInt(entity.slice(2), 16)) if (entity.startsWith('#')) return String.fromCodePoint(Number(entity.slice(1))) return entities[entity] - }).trim() + }) +} + +/** Code XML keeps literal whitespace and decodes each entity exactly once. */ +function codeOf(xml: string): string { + return decodeEntities(xml.replace(/<[^>]+>/g, '')).trim() } const syntheticCName = (name: string): boolean => /\[(?:struct|union)\]|__unnamed\d+__|@[\da-f]+/i.test(name) @@ -382,6 +400,27 @@ function cppTemplateParameters(block: string): string[] { }) } +/** `\tparam T description`, which Doxygen keeps in its own parameter list beside `\param`. */ +function templateParameterDocs(xml: string): Map { + const out = new Map() + for (const list of xml.matchAll(/([\s\S]*?)<\/parameterlist>/g)) { + for (const item of list[1].matchAll(/([\s\S]*?)<\/parameteritem>/g)) { + const name = textOf(tag(item[1], 'parametername') ?? '') + const doc = textOf(tag(item[1], 'parameterdescription') ?? '') + if (name && doc) out.set(name, doc) + } + } + return out +} + +/** A declaration's template parameters as the model stores them: as written, and read apart. */ +function cppTypeParameters(declaration: string, documentation: string): Pick { + const typeParams = cppTemplateParameters(declaration) + if (!typeParams.length) return {} + const typeParameters = withTypeParameterDocs(parseTypeParameters('cxx', typeParams), templateParameterDocs(documentation)) + return { typeParams, ...(typeParameters.length ? { typeParameters } : {}) } +} + /** Preserve C++ declaration syntax and specifiers that typed parameter rows cannot express. */ function cppSignature(block: string): string | undefined { const definition = codeOf(tag(block, 'definition') ?? '') @@ -497,6 +536,8 @@ export function extractDoxygen(xmlDir: string, sourceRoot = '', options: Doxygen kind, modifiers: [], signatures: c && !owner.includes('::') && !syntheticCName(owner) ? [{ raw: `${kind} ${owner};`, params: [] }] : [], + // The compound's own list precedes its members', whose lists are their own. + ...(c ? {} : cppTypeParameters(xml.split(/[\s\S]*?<\/\1>/g, '') const returnType = c ? textOf(tag(memberType, 'type') ?? '') : normalizeCppTemplateSpacing(codeOf(tag(memberType, 'type') ?? '')) const returnDoc = textOf(tag(block, 'simplesect') ?? '') - const templateParameters = c ? [] : cppTemplateParameters(block) + const templateParameters = c ? {} : cppTypeParameters(block, tag(scope, 'detaileddescription') ?? '') const signature: Signature | undefined = attr(block, 'kind') === 'function' ? { params: paramsOf(block, paramDocs(block), c), - ...(templateParameters.length ? { typeParams: templateParameters } : {}), + ...templateParameters, ...(c ? { raw: `${codeOf(tag(block, 'definition') ?? '')}${codeOf(tag(block, 'argsstring') ?? '')}` } : cppSignature(block) ? { raw: cppSignature(block) } : {}), returns: returnType || undefined, @@ -595,7 +636,7 @@ export function extractDoxygen(xmlDir: string, sourceRoot = '', options: Doxygen if (existing && signature) { // C++ overload sets: same name, different parameters, one entry. existing.signatures.push(signature) - if (!existing.modifiers.includes('overload')) existing.modifiers.push('overload') + markOverload(existing) continue } if (existing) continue diff --git a/packages/api-model/src/languages/fsharp-examples.ts b/packages/api-model/src/languages/fsharp-examples.ts index 0cc97fc20..76f136abb 100644 --- a/packages/api-model/src/languages/fsharp-examples.ts +++ b/packages/api-model/src/languages/fsharp-examples.ts @@ -68,7 +68,7 @@ export function attachCompleteFSharpExamples( ids.add(program.id) const blocks: NonNullable = [{ lang: 'console', - intro: `${program.description.replace(/\n/g, ' ')} Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK ${sdk}, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:`, + intro: `${program.description.replace(/\n/g, ' ')} Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK ${sdk}, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:`, code: `$ git clone https://github.com/${source.repo}.git libtmux-source && \\\n git -C libtmux-source checkout --detach ${source.revision}\n`, }] for (const file of setup) blocks.push({ diff --git a/packages/api-model/src/languages/go-examples.ts b/packages/api-model/src/languages/go-examples.ts index 510b96bbd..4bac55b45 100644 --- a/packages/api-model/src/languages/go-examples.ts +++ b/packages/api-model/src/languages/go-examples.ts @@ -88,7 +88,7 @@ export function attachCompleteGoExamples( const blocks: NonNullable = [ { lang: 'console', - intro: `${example.intro.replace(/\n/g, ' ')} Use Go ${source.goVersion} or newer and tmux 3.2a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:`, + intro: `${example.intro.replace(/\n/g, ' ')} Use Go ${source.goVersion} or newer and tmux 3.3a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:`, code: `$ git clone https://github.com/${source.repo}.git libtmux-source && \\\n git -C libtmux-source checkout ${source.revision}\n`, }, { diff --git a/packages/api-model/src/languages/jvm.ts b/packages/api-model/src/languages/jvm.ts index c5ff9b25e..b5a58b04f 100644 --- a/packages/api-model/src/languages/jvm.ts +++ b/packages/api-model/src/languages/jvm.ts @@ -1,9 +1,11 @@ import { readFileSync, readdirSync } from 'node:fs' import { join } from 'node:path' import type { Node } from 'web-tree-sitter' +import { markOverload } from '../overloads.ts' import { parserFor } from '../parser.ts' import { parseMarkdownDocFull } from '../doc/markdown.ts' -import type { ApiModel, ApiSymbol, Param, Signature, SymbolKind } from '../model.ts' +import type { ApiModel, ApiSymbol, Param, Signature, SymbolKind, TypeParameter } from '../model.ts' +import { parseTypeParameters, splitTopLevel, withTypeParameterDocs } from '../type-params.ts' type Language = 'kotlin' | 'scala' const childrenOf = (node: Node): Node[] => node.namedChildren.filter((child): child is Node => child !== null) @@ -39,6 +41,16 @@ function documentation(node: Node, language: Language, signature: Signature, com // from generic brackets inside code such as `Execution[F]`. const parsed = parseMarkdownDocFull(raw, language) for (const param of signature.params) param.doc = parsed.params.get(param.name) + // KDoc documents a type parameter with `@param T`, Scaladoc with `@tparam T`. + if (signature.typeParameters) { + const named = new Map(parsed.typeParams) + for (const parameter of signature.typeParameters) { + const text = named.get(parameter.name) ?? (language === 'kotlin' && !signature.params.some((param) => param.name === parameter.name) + ? parsed.params.get(parameter.name) : undefined) + if (text) named.set(parameter.name, text) + } + signature.typeParameters = withTypeParameterDocs(signature.typeParameters, named) + } if (parsed.returnsDoc) signature.returnsDoc = parsed.returnsDoc if (parsed.raises.length) signature.raises = parsed.raises return parsed.doc @@ -76,6 +88,24 @@ function typeParameters(node: Node, language: Language): string[] { }) : [] } +/** + * The same list with its bounds and variance: `[F[_], +A <: Other]` or + * `, reified Q>`, plus a Kotlin `where` clause, whose + * bounds belong to the parameter they restrict. + */ +function typeParameterDetails(node: Node, language: Language): TypeParameter[] { + const group = named(node, 'type_parameters') + if (!group) return [] + const parameters = parseTypeParameters(language, splitTopLevel(group.text.trim().replace(/^[<[]|[>\]]$/g, ''), ',')) + const where = new Map() + for (const constraint of childrenOf(named(node, 'type_constraints') ?? node).filter((child) => child.type === 'type_constraint')) { + const [target, ...bound] = compact(constraint.text).split(/\s*:\s*/) + if (target && bound.length) where.set(target, [...where.get(target) ?? [], bound.join(': ')]) + } + return parameters.map((parameter) => where.has(parameter.name) + ? { ...parameter, bound: [parameter.bound, ...where.get(parameter.name)!].filter(Boolean).join(', ') } : parameter) +} + function upperBounds(node: Node): string[] { const types = (type: Node): string[] => type.type === 'infix_type' && field(type, 'operator')?.text === '&' ? [field(type, 'left'), field(type, 'right')].flatMap((part) => part ? types(part) : []) : [compact(type.text)] @@ -113,8 +143,9 @@ export async function extractJvm(port: Language, roots: string[], revision?: str } } else if (previous.kind !== symbol.kind) { throw new Error(`Conflicting ${port} declarations for ${symbol.id}`) - } else if (!previous.modifiers.includes('overload')) previous.modifiers.push('overload') + } previous.signatures.push(...symbol.signatures) + if (!companion) markOverload(previous) previous.extends ??= symbol.extends previous.modifiers = [...new Set([...previous.modifiers, ...symbol.modifiers])] previous.doc ??= symbol.doc @@ -162,7 +193,7 @@ export async function extractJvm(port: Language, roots: string[], revision?: str checkSyntax(root) const walk = (body: Node, parent?: string, receiver?: string, extensionHeader?: string, - extensionTypes: string[] = [], extensionReceiver?: Param): void => { + extensionTypes: string[] = [], extensionReceiver?: Param, extensionDetails: TypeParameter[] = []): void => { for (const node of declarations(body, port)) { if (!visible(node)) continue if (node.type === 'export_declaration') { @@ -178,7 +209,7 @@ export async function extractJvm(port: Language, roots: string[], revision?: str if (params.length !== 1 || !params[0].type) throw new Error(`Unsupported extension receiver: ${node.text}`) const end = Math.max(...childrenOf(node).filter((child) => ['parameters', 'type_parameters'].includes(child.type)).map((child) => child.endIndex)) const header = node.text.slice(0, end - node.startIndex).trim() - walk(node, parent, receiverId(params[0].type), header, typeParameters(node, port), params[0]) + walk(node, parent, receiverId(params[0].type), header, typeParameters(node, port), params[0], typeParameterDetails(node, port)) continue } const variable = named(node, 'variable_declaration') @@ -233,6 +264,9 @@ export async function extractJvm(port: Language, roots: string[], revision?: str } const generics = [...new Set([...extensionTypes, ...typeParameters(node, port)])] if (generics.length) signature.typeParams = generics + const details = [...extensionDetails, ...typeParameterDetails(node, port)] + .filter((parameter, at, all) => all.findIndex((entry) => entry.name === parameter.name) === at) + if (details.length) signature.typeParameters = details // A private constructor is not a public callable signature. if (privateConstructor) signature.params = [] const symbol: ApiSymbol = { diff --git a/packages/api-model/src/languages/lua-examples.ts b/packages/api-model/src/languages/lua-examples.ts index 894dfaea5..6c602f665 100644 --- a/packages/api-model/src/languages/lua-examples.ts +++ b/packages/api-model/src/languages/lua-examples.ts @@ -49,7 +49,7 @@ export function attachCompleteLuaExamples( const blocks: NonNullable = [ { lang: 'console', - intro: `${example.description} Use Lua ${manifest.setup.lua}, LuaRocks, Git, tmux 3.2a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:`, + intro: `${example.description} Use Lua ${manifest.setup.lua}, LuaRocks, Git, tmux 3.3a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:`, code: `$ git clone https://github.com/${source.repository}.git libtmux-source &&\n` + ` git -C libtmux-source checkout ${source.revision} &&\n` + ` luarocks --tree ./rocks install luv ${manifest.setup.luv} &&\n` + diff --git a/packages/api-model/src/languages/python.ts b/packages/api-model/src/languages/python.ts index 7d7a6bcc2..004cc034e 100644 --- a/packages/api-model/src/languages/python.ts +++ b/packages/api-model/src/languages/python.ts @@ -9,8 +9,10 @@ import { type Param, type Signature, type SymbolKind, + type TypeParameter, } from '../model.ts' import { parserFor } from '../parser.ts' +import { parseTypeParameters, splitTopLevel } from '../type-params.ts' /** * Python extraction. @@ -94,8 +96,62 @@ function paramsOf(node: Node): Param[] { return out } -function signatureOf(fn: Node): Signature { - return { +/** + * The entries of a PEP 695 list, `[T: int = str, *Ts, **P]`, as written. + * The grammar splits a default from its parameter, so the list is read as text. + */ +function typeParameterTexts(node: Node): string[] { + const list = node.childForFieldName('type_parameters') + return list ? splitTopLevel(list.text.trim().replace(/^\[|\]$/g, ''), ',') : [] +} + +/** Strip the quotes of a forward reference: `bound="Foo"` bounds by `Foo`. */ +const unquoted = (text: string) => text.trim().replace(/^(["'])([\s\S]*)\1$/, '$2') + +/** + * Module-level `T = TypeVar("T", bound=Foo)` declarations, spelled the way + * PEP 695 would declare them: `T: Foo`, `*Ts`, `**P`. A class or function that + * uses the variable is generic in it, and this is where its bound is written. + */ +function typeVarsOf(root: Node): Map { + const found = new Map() + for (const statement of root.namedChildren) { + const assignment = statement?.type === 'expression_statement' ? statement.namedChild(0) : undefined + const name = assignment?.type === 'assignment' ? assignment.childForFieldName('left') : undefined + const call = assignment?.childForFieldName('right') + const kind = call?.type === 'call' ? /(?:^|\.)(TypeVar|ParamSpec|TypeVarTuple)$/.exec(call.childForFieldName('function')?.text ?? '')?.[1] : undefined + if (name?.type !== 'identifier' || !kind) continue + const keywords = new Map() + const constraints: string[] = [] + const args = call!.childForFieldName('arguments')?.namedChildren ?? [] + for (const [position, arg] of args.entries()) { + if (arg?.type === 'keyword_argument') keywords.set(arg.childForFieldName('name')?.text ?? '', arg.childForFieldName('value')?.text ?? '') + else if (arg && position > 0) constraints.push(unquoted(arg.text)) + } + const bound = keywords.has('bound') ? unquoted(keywords.get('bound')!) : constraints.join(' | ') + const fallback = keywords.get('default') + found.set(name.text, `${kind === 'ParamSpec' ? '**' : kind === 'TypeVarTuple' ? '*' : ''}${name.text}${bound ? `: ${bound}` : ''}${fallback ? ` = ${unquoted(fallback)}` : ''}`) + } + return found +} + +/** What a class is generic in: its PEP 695 list, or the variables its `Generic[...]` base or other bases name. */ +function classTypeParameters(def: Node, bases: string[], typeVars: Map): string[] { + const own = typeParameterTexts(def) + if (own.length) return own + const declared = bases.map((base) => /^(?:[\w.]+\.)?(?:Generic|Protocol)\[([\s\S]+)\]$/.exec(base)?.[1]).find(Boolean) + const names = declared ? splitTopLevel(declared, ',') + : [...new Set(bases.join(' ').match(/[A-Za-z_]\w*/g)?.filter((word) => typeVars.has(word)))] + return names.map((name) => typeVars.get(name.replace(/^\*+/, '')) ?? name) +} + +const withTypeParameters = (target: T, texts: string[]): T => { + if (!texts.length) return target + return Object.assign(target, { typeParams: texts, typeParameters: parseTypeParameters('py', texts) }) +} + +function signatureOf(fn: Node, ctx: Ctx, parent?: string): Signature { + const signature: Signature = { params: paramsOf(fn.childForFieldName('parameters') ?? fn), returns: fn.childForFieldName('return_type')?.text.replace(/\s+/g, ' '), typeParams: fn @@ -103,6 +159,12 @@ function signatureOf(fn: Node): Signature { ?.namedChildren.map((n) => n?.text ?? '') .filter(Boolean), } + const own = typeParameterTexts(fn) + // A variable in a signature that no enclosing class binds is bound by the function itself. + const bound = new Set(ctx.generics.get(parent ?? '') ?? []) + const used = new Set([...signature.params.map((param) => param.type ?? ''), signature.returns ?? ''].join(' ').match(/[A-Za-z_]\w*/g)) + const implicit = [...ctx.typeVars].filter(([name]) => used.has(name) && !bound.has(name) && !own.some((text) => text.replace(/^\*+/, '').startsWith(name))) + return withTypeParameters(signature, [...own, ...implicit.map(([, text]) => text)]) } /** `class` unless it inherits from something whose name ends in `Error`/`Exception`. */ @@ -118,6 +180,10 @@ interface Ctx { imports: Record /** Symbols already emitted, so overloads merge instead of duplicating. */ byId: Map + /** The file's `TypeVar` declarations, as PEP 695 would write them. */ + typeVars: Map + /** Type variable names each class binds for its members, by class id. */ + generics: Map options: Required } @@ -197,7 +263,8 @@ function walk(node: Node, ctx: Ctx, parent: string | undefined): void { .filter(Boolean) ?? [] const raw = docstringOf(def.childForFieldName('body')) const parsed = raw ? parsePythonDoc(raw) : undefined - emit(ctx, { + const generics = classTypeParameters(def, bases, ctx.typeVars) + const symbol: ApiSymbol = { id, name, kind: classKind(bases), @@ -207,7 +274,10 @@ function walk(node: Node, ctx: Ctx, parent: string | undefined): void { doc: parsed?.doc, extends: bases.length ? bases : undefined, source: { file: ctx.file, line: def.startPosition.row + 1 }, - }) + } + withTypeParameters(symbol, generics) + ctx.generics.set(id, [...ctx.generics.get(parent ?? '') ?? [], ...symbol.typeParameters?.map((parameter) => parameter.name) ?? []]) + emit(ctx, symbol) walk(def.childForFieldName('body') ?? def, { ...ctx, imports: { ...ctx.imports } }, id) delete ctx.imports[name] continue @@ -219,7 +289,7 @@ function walk(node: Node, ctx: Ctx, parent: string | undefined): void { const id = parent ? `${parent}.${name}` : `${ctx.module}.${name}` const raw = docstringOf(def.childForFieldName('body')) const parsed = raw ? parsePythonDoc(raw) : undefined - const sig = parsed ? applyDoc(signatureOf(def), parsed) : signatureOf(def) + const sig = parsed ? applyDoc(signatureOf(def, ctx, parent), parsed) : signatureOf(def, ctx, parent) const kind: SymbolKind = decorators.includes('property') ? 'property' : parent ? 'method' : 'function' const isAsync = def.children.some((c) => c?.type === 'async' || c?.text === 'async') @@ -297,6 +367,8 @@ export async function extractPython( symbols: [], imports: {}, byId: new Map(), + typeVars: typeVarsOf(tree.rootNode), + generics: new Map(), options: { ...DEFAULT_EXTRACT_OPTIONS, ...options }, } walk(tree.rootNode, ctx, undefined) diff --git a/packages/api-model/src/languages/ruby-examples.ts b/packages/api-model/src/languages/ruby-examples.ts index bdc31e64b..fcf5f9905 100644 --- a/packages/api-model/src/languages/ruby-examples.ts +++ b/packages/api-model/src/languages/ruby-examples.ts @@ -50,7 +50,7 @@ export function attachCompleteRubyExamples( const blocks: NonNullable = [ { lang: 'console', - intro: `${api.description.replace(/\n/g, ' ')} Use Ruby 4.0.7, Bundler, Git and tmux 3.2a or newer on Unix, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:`, + intro: `${api.description.replace(/\n/g, ' ')} Use Ruby 4.0.7, Bundler, Git and tmux 3.3a or newer on Unix, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:`, code: `$ git clone https://github.com/${source.repository}.git libtmux-source && \\\n git -C libtmux-source checkout ${source.revision}\n`, }, { diff --git a/packages/api-model/src/languages/rust-examples.ts b/packages/api-model/src/languages/rust-examples.ts index 5dad0aaf0..945cbeec6 100644 --- a/packages/api-model/src/languages/rust-examples.ts +++ b/packages/api-model/src/languages/rust-examples.ts @@ -120,7 +120,7 @@ export function attachCompleteRustExamples( 'program depends on a hidden source helper') const blocks: NonNullable = [{ lang: 'console', - intro: `${program.title}. ${program.description} Use a Unix environment with Git, rustup, and tmux 3.2a or newer. The toolchain file below pins Rust ${channel}. In an empty directory, fetch the documented source:`, + intro: `${program.title}. ${program.description} Use a Unix environment with Git, rustup, and tmux 3.3a or newer. The toolchain file below pins Rust ${channel}. In an empty directory, fetch the documented source:`, code: `$ git clone https://github.com/${source.repo}.git libtmux-source &&\n git -C libtmux-source checkout --detach ${source.revision}\n`, }, ...setup.map((file, index) => ({ lang: 'toml', intro: `Save this complete consumer setup as ${file.name}:`, diff --git a/packages/api-model/src/languages/spec.ts b/packages/api-model/src/languages/spec.ts index bd6448e84..48f458250 100644 --- a/packages/api-model/src/languages/spec.ts +++ b/packages/api-model/src/languages/spec.ts @@ -13,8 +13,11 @@ import { type DocBlock, type Signature, type SymbolKind, + type TypeParameter, } from '../model.ts' +import { markOverload } from '../overloads.ts' import { type GrammarName, parserFor } from '../parser.ts' +import { parseTypeParameters, splitTopLevel, withTypeParameterDocs } from '../type-params.ts' import { attachTypeScriptConstants } from './typescript-constants.ts' /** @@ -131,6 +134,12 @@ export interface LanguageSpec { rawSignature?: (node: Node) => string | undefined /** Native binding names stay separate from the source type-parameter text. */ typeParameterNames?: (node: Node) => string[] | undefined + /** + * Bounds the language writes outside the parameter list, by parameter name: + * a Rust `where T: Clone`, a C# `where T : class`. They belong to the + * parameter they restrict, joined in the language's own separator. + */ + typeConstraints?: (node: Node) => { joiner: string; byName: Map } /** Modifiers implied by the native declaration rather than a written keyword. */ declarationModifiers?: (node: Node) => Modifier[] /** Whether a native owner or field excludes enclosing type-variable bindings. */ @@ -156,6 +165,44 @@ export interface LanguageSpec { const DEFAULT_FIELDS = { name: 'name', params: 'parameters', returns: 'return_type', body: 'body' } +/** The slug the shared model and its linker use for each grammar. */ +const LANGUAGE: Partial> = { + typescript: 'ts', rust: 'rs', go: 'go', java: 'java', csharp: 'csharp', +} + +/** + * The declaration text of each entry in a node's type-parameter list. + * + * Read from the list's text rather than its child nodes: Rust's grammar parses + * `const N: usize = 3` as a parameter followed by an error node, which would + * split a default from its parameter. Go groups names under one constraint, so + * its entries stay one per declaration. + */ +function typeParameterTexts(node: Node, spec: LanguageSpec): string[] | undefined { + const list = node.childForFieldName('type_parameters') + if (!list) return undefined + // After a parse error the grammar can read the arguments of a base type, `: IParsable`, as a list. + if (node.children.some((child) => child?.type === 'ERROR' && child.endIndex <= list.startIndex)) return undefined + if (spec.grammar === 'go') return list.namedChildren.flatMap((entry) => entry && !spec.commentTypes.includes(entry.type) ? [entry.text] : []) + let text = list.text + const comments = list.descendantsOfType(spec.commentTypes).filter((comment): comment is Node => comment !== null) + for (const comment of comments.sort((a, b) => b.startIndex - a.startIndex)) { + text = text.slice(0, comment.startIndex - list.startIndex) + text.slice(comment.endIndex - list.startIndex) + } + return splitTopLevel(text.trim().replace(/^[<[]|[>\]]$/g, ''), ',') +} + +/** The same list read apart, with bounds the language writes elsewhere folded in. */ +function typeParametersFrom(node: Node, spec: LanguageSpec, texts: string[]): TypeParameter[] | undefined { + const parameters = parseTypeParameters(LANGUAGE[spec.grammar], texts) + const constraints = spec.typeConstraints?.(node) + const merged = constraints ? parameters.map((parameter) => { + const extra = constraints.byName.get(parameter.name) + return extra?.length ? { ...parameter, bound: [parameter.bound, ...extra].filter(Boolean).join(constraints.joiner) } : parameter + }) : parameters + return merged.length ? merged : undefined +} + /** * The doc comment attached to a declaration. * @@ -264,6 +311,7 @@ function signatureOf(node: Node, spec: LanguageSpec, file: string): Signature { node.childForFieldName('type') const scopeBoundary = spec.signatureTypeScopeBoundary?.(node) const enclosing = spec.enclosingDeclaration?.(node) + const declared = declaredTypeParameters(node, spec) return { raw: spec.rawSignature?.(node), ...(enclosing ? { enclosingDeclaration: enclosing.raw, @@ -278,13 +326,22 @@ function signatureOf(node: Node, spec: LanguageSpec, file: string): Signature { returns: returns ? spec.typeText?.(returns) ?? returns.text.replace(/\s+/g, ' ').replace(/^\s*(?:->|:)\s*/, '') : undefined, ...(spec.typeParameterNames?.(node) ? { typeParamNames: spec.typeParameterNames(node) } : {}), ...(scopeBoundary !== undefined ? { typeScopeBoundary: scopeBoundary } : {}), - typeParams: node - .childForFieldName('type_parameters') - ?.namedChildren.map((n) => n?.text ?? '') - .filter(Boolean), + ...(declared ? { typeParams: declared.typeParams, ...typeParametersOf(declared) } : { typeParams: undefined }), } } +/** A declaration's parameter list: as written, and read apart for the model. */ +interface DeclaredTypeParameters { typeParams: string[]; typeParameters?: TypeParameter[] } + +function declaredTypeParameters(node: Node, spec: LanguageSpec): DeclaredTypeParameters | undefined { + const texts = typeParameterTexts(node, spec) + if (!texts?.length) return undefined + return { typeParams: texts, typeParameters: typeParametersFrom(node, spec, texts) } +} + +const typeParametersOf = (declared: DeclaredTypeParameters): Pick => + declared.typeParameters ? { typeParameters: declared.typeParameters } : {} + interface Ctx { parser: Parser file: string @@ -310,9 +367,13 @@ function emit(ctx: Ctx, sym: ApiSymbol): void { } // Same name twice in one scope is an overload set — Java, C# and C++ all // spell it this way, and rendering only the first is wrong invisibly. + // + // Only for callables. A type declared twice (`struct X` and `impl X`, `class + // X` and `interface X`) or a field beside its accessor merges under one id + // too, and keeps what both say, but is not an overload of itself. existing.signatures.push(...sym.signatures) if (sym.doc && !existing.doc) existing.doc = sym.doc - if (!existing.modifiers.includes('overload')) existing.modifiers.push('overload') + markOverload(existing) } function walk(node: Node, ctx: Ctx, parent: string | undefined): void { @@ -362,6 +423,9 @@ function walk(node: Node, ctx: Ctx, parent: string | undefined): void { const accessors = spec.recordAccessors?.(child) const positional = spec.positionalProperties?.(child) || accessors const signatures = positional || (spec.grammar === 'java' && spec.rawSignature?.(child)) ? [signatureOf(child, spec, ctx.file)] : [] + const generics = declaredTypeParameters(child, spec) + const names = generics && spec.typeParameterNames?.(child) + const doc = docFor(raw, spec, signatures, ctx.parser, generics) emit(ctx, { id, name, @@ -370,14 +434,8 @@ function walk(node: Node, ctx: Ctx, parent: string | undefined): void { parent, signatures, ...(scopeBoundary !== undefined ? { typeScopeBoundary: scopeBoundary } : {}), - ...(spec.typeParameterNames?.(child) ? { - typeParams: child.childForFieldName('type_parameters')!.namedChildren.flatMap((node) => node && !spec.commentTypes.includes(node.type) ? [node.text] : []), - typeParamNames: spec.typeParameterNames(child), - } : {}), - ...(spec.grammar === 'rust' && child.type === 'enum_item' && child.childForFieldName('type_parameters') - ? { typeParams: child.childForFieldName('type_parameters')!.namedChildren.flatMap((node) => node ? [node.text] : []) } - : {}), - doc: docFor(raw, spec, signatures, ctx.parser), + ...(generics ? { typeParams: generics.typeParams, ...(names ? { typeParamNames: names } : {}), ...typeParametersOf(generics) } : {}), + doc, source: { file: ctx.file, line: child.startPosition.row + 1 }, }) const body = child.childForFieldName(f.body) ?? child @@ -432,6 +490,9 @@ function walk(node: Node, ctx: Ctx, parent: string | undefined): void { // onto it: the comment carries them, and nothing else does. const variant = spec.enumVariant?.(child) const memberSignatures = variant ? [{ raw: variant.raw, params: [] }] : hasParams ? [signatureOf(child, spec, ctx.file)] : [] + // A type alias carries its parameters on itself; a callable carries them on its signature. + const generics = hasParams ? undefined : declaredTypeParameters(child, spec) + const memberDoc = docFor(raw, spec, memberSignatures, ctx.parser, generics) emit(ctx, { id: memberId, name, @@ -447,7 +508,8 @@ function walk(node: Node, ctx: Ctx, parent: string | undefined): void { value: child.type === 'annotation_type_element_declaration' && spec.grammar === 'java' ? child.childForFieldName('value')?.text : variant ? variant.value : hasParams ? undefined : child.childForFieldName('declarator')?.childForFieldName('value')?.text.replace(/\s+/g, ' '), - doc: docFor(raw, spec, memberSignatures, ctx.parser), + ...(generics ? { typeParams: generics.typeParams, ...typeParametersOf(generics) } : {}), + doc: memberDoc, source: { file: ctx.file, line: child.startPosition.row + 1 }, }) for (const field of variant?.fields ?? []) { @@ -477,6 +539,7 @@ function docFor( spec: LanguageSpec, signatures: Signature[], parser: Parser, + owner?: DeclaredTypeParameters, ): DocBlock | undefined { if (!raw) return undefined const parse = @@ -486,9 +549,13 @@ function docFor( ? parseJavadoc : spec.docDialect === 'godoc' ? (text: string) => parseGoDoc(text, parser) : (text: string) => parseMarkdownDocFull(text, spec.grammar) - const { doc, params, returnsDoc, raises } = parse(raw) + const { doc, params, typeParams, returnsDoc, raises } = parse(raw) const sig = signatures[0] + // A comment documents the parameters of the one declaration it sits above. + if (typeParams.size) for (const target of [sig, owner]) { + if (target?.typeParameters) target.typeParameters = withTypeParameterDocs(target.typeParameters, typeParams) + } if (sig) { for (const param of sig.params) { const text = params.get(param.name) diff --git a/packages/api-model/src/languages/specs.ts b/packages/api-model/src/languages/specs.ts index 455a4ec13..e660a2ec2 100644 --- a/packages/api-model/src/languages/specs.ts +++ b/packages/api-model/src/languages/specs.ts @@ -252,6 +252,18 @@ export const RUST: LanguageSpec = { ? rustHeader(node) : undefined, typeParameterNames: (node) => ['function_item', 'function_signature_item'].includes(node.type) ? rustTypeParameterNames(node) : undefined, + // `where T: Clone` restricts a parameter declared a few tokens earlier; only plain names are folded in. + typeConstraints: (node) => { + const byName = new Map() + const clause = node.namedChildren.find((child) => child?.type === 'where_clause') + for (const predicate of clause?.namedChildren ?? []) { + const left = predicate?.childForFieldName('left') + const bounds = predicate?.childForFieldName('bounds') + if (left?.type !== 'type_identifier' || !bounds) continue + byName.set(left.text, [...byName.get(left.text) ?? [], bounds.text.replace(/^:\s*/, '').replace(/\s+/g, ' ')]) + } + return { joiner: ' + ', byName } + }, enclosingDeclaration: (node) => { const owner = node.parent?.parent const raw = owner && ['impl_item', 'trait_item'].includes(owner.type) ? rustHeader(owner) : undefined @@ -444,6 +456,18 @@ export const CSHARP: LanguageSpec = { docDialect: 'xml', positionalProperties: (node) => ['record_declaration', 'record_struct_declaration'].includes(node.type) && Boolean(node.childForFieldName('parameters')), + // C# writes bounds in `where` clauses after the header rather than in the parameter list. + typeConstraints: (node) => { + const byName = new Map() + for (const clause of node.namedChildren) { + if (clause?.type !== 'type_parameter_constraints_clause') continue + const target = clause.childForFieldName('target')?.text + const constraints = clause.childrenForFieldName('constraints').flatMap((constraint) => + constraint?.isNamed ? [constraint.text.replace(/\s+/g, ' ')] : []) + if (target) byName.set(target, [...byName.get(target) ?? [], ...constraints]) + } + return { joiner: ', ', byName } + }, rawSignature: (node) => { if (!['record_declaration', 'record_struct_declaration'].includes(node.type)) return undefined const body = node.childForFieldName('body') diff --git a/packages/api-model/src/languages/swift-examples.ts b/packages/api-model/src/languages/swift-examples.ts index 46b1ad494..051562bc6 100644 --- a/packages/api-model/src/languages/swift-examples.ts +++ b/packages/api-model/src/languages/swift-examples.ts @@ -61,7 +61,7 @@ export function attachCompleteSwiftExamples( const blocks: NonNullable = [ { lang: 'console', - intro: `${example.title}. ${example.description.replace(/\n/g, ' ')} Use Swift 6.2.4 on Linux or Xcode 26's Swift 6.3 toolchain on macOS, Git, and tmux 3.2a or newer. In an empty directory, fetch the documented library revision:`, + intro: `${example.title}. ${example.description.replace(/\n/g, ' ')} Use Swift 6.2.4 on Linux or Xcode 26's Swift 6.3 toolchain on macOS, Git, and tmux 3.3a or newer. In an empty directory, fetch the documented library revision:`, code: `$ git clone https://github.com/${source.repo}.git libtmux-source && \\\n git -C libtmux-source checkout ${source.revision}\n`, }, { diff --git a/packages/api-model/src/languages/symbolgraph.ts b/packages/api-model/src/languages/symbolgraph.ts index 5cda217f5..247e7afe0 100644 --- a/packages/api-model/src/languages/symbolgraph.ts +++ b/packages/api-model/src/languages/symbolgraph.ts @@ -1,6 +1,7 @@ import { readFileSync } from 'node:fs' -import type { ApiSymbol, Modifier, Param, Signature, SymbolKind } from '../model.ts' +import type { ApiSymbol, Modifier, Param, Signature, SymbolKind, TypeParameter } from '../model.ts' import { parseMarkdownDocFull } from '../doc/markdown.ts' +import { markOverload } from '../overloads.ts' /** * Swift from its compiler's own symbol graph, not from tree-sitter. @@ -75,6 +76,7 @@ interface RawSymbol { returns?: Fragment[] } swiftExtension?: { extendedModule?: string } + swiftGenerics?: { constraints?: { kind: string; lhs: string; rhs: string }[] } declarationFragments?: Fragment[] } @@ -126,15 +128,37 @@ function raisesOf(fragments: Fragment[]): Signature['raises'] { return undefined } +/** + * The generic parameters a declaration introduces. The graph's own parameter + * list repeats every enclosing type's, so the declaration's `genericParameter` + * fragments name the new ones; bounds come from the graph's constraints, which + * also carry the ones a `where` clause adds. + */ +function typeParametersOf(raw: RawSymbol): TypeParameter[] { + const fragments = raw.declarationFragments ?? [] + const constraints = raw.swiftGenerics?.constraints ?? [] + return fragments.flatMap((fragment, at) => { + if (fragment.kind !== 'genericParameter') return [] + const own = constraints.filter((constraint) => constraint.lhs === fragment.spelling) + const conforms = own.filter((constraint) => constraint.kind !== 'sameType').map((constraint) => constraint.rhs) + const equal = own.filter((constraint) => constraint.kind === 'sameType').map((constraint) => `== ${constraint.rhs}`) + const bound = [conforms.join(' & '), ...equal].filter(Boolean).join(', ') + const pack = fragments[at - 2]?.spelling === 'each' || fragments[at - 1]?.spelling === 'each' + return [{ name: fragment.spelling, ...(pack ? { modifier: 'each' } : {}), ...(bound ? { bound } : {}) }] + }).filter((parameter, at, all) => all.findIndex((entry) => entry.name === parameter.name) === at) +} + function signatureOf(raw: RawSymbol): Signature | undefined { const fn = raw.functionSignature if (!fn) return undefined + const typeParameters = typeParametersOf(raw) const params: Param[] = (fn.parameters ?? []).map((p) => ({ name: p.name, type: fragmentText(p.declarationFragments)?.replace(/^[^:]*:\s*/, ''), })) return { params, + ...(typeParameters.length ? { typeParameters } : {}), returns: fragmentText(fn.returns), // Typed throws lives in the subHeading rather than in functionSignature — // `throws(TmuxError)` — and it is the construct tree-sitter loses, so it @@ -255,9 +279,7 @@ export function extractSymbolGraph(files: string[]): ApiSymbol[] { } else if (!existing.source.file && inheritedFrom) { existing.inheritedFrom ??= inheritedFrom } - if (existing.signatures.length > 1 && !existing.modifiers.includes('overload')) { - existing.modifiers.push('overload') - } + markOverload(existing) continue } @@ -270,6 +292,7 @@ export function extractSymbolGraph(files: string[]): ApiSymbol[] { modifiers: modifiersOf(raw), parent: path.length > 1 ? path.slice(0, -1).join('.') : undefined, signatures: signature ? [signature] : [], + ...(!signature && typeParametersOf(raw).length ? { typeParameters: typeParametersOf(raw) } : {}), type: signature ? undefined : fragmentText(raw.names.subHeading), doc: parsed?.doc, extends: conformedNames(conformances, raw.identifier.precise), diff --git a/packages/api-model/src/link.ts b/packages/api-model/src/link.ts index 936de98ef..d9a9a1924 100644 --- a/packages/api-model/src/link.ts +++ b/packages/api-model/src/link.ts @@ -1,8 +1,9 @@ import { tokenizeDoc, type DocSpan } from './doc/roles.ts' import type { InventoryEntry } from './inventory.ts' -import type { ApiSymbol, Signature, SymbolKind } from './model.ts' +import type { ApiSymbol, Signature, SymbolKind, TypeParameter } from './model.ts' import { builtinHref } from './builtins.ts' import { qualifiedNameOf } from './modules.ts' +import { findTopLevel, splitTopLevel, typeParametersOf } from './type-params.ts' /** * Turn reference targets into links, and type annotations into linked spans. @@ -121,6 +122,9 @@ const KEYWORD_HELP: Record> = { }, } +/** A keyword argument (`cancel:`, `clients: true`) names a parameter, not a member. */ +export const keywordArgument = /^[A-Za-z_]\w*[?!]?:(?:\s|$)/ + interface TypeSpan { text: string link?: LinkTarget @@ -171,11 +175,86 @@ export interface LinkTarget { external: boolean /** The symbol it resolved to, when it resolved locally. */ symbol?: ApiSymbol + /** + * Set when the target is a type parameter's anchor on its declaring symbol's + * page. `symbol` stays unset: the declaring type is not what the name refers to. + */ + typeParameter?: { owner: ApiSymbol; parameter: TypeParameter } } /** Stable parameter anchors shared by prose links and the definition list. */ export const parameterId = (symbol: ApiSymbol, name: string) => `${symbol.publicId ?? symbol.id}.parameter.${name}` +/** The anchor of a type parameter on the page of the symbol that declares it. */ +export const typeParameterId = (symbol: ApiSymbol, name: string) => `${symbol.publicId ?? symbol.id}.type-parameter.${name}` + +/** + * What a name written in a declaration means when it is a type parameter. + * `owner` and `parameter` are absent when the model records that a name is + * bound but not where it is declared, as with a Rust impl that renames the + * type's parameter. + */ +export interface TypeParameterBinding { + owner?: ApiSymbol + parameter?: TypeParameter +} + +const TYPE_KINDS: ReadonlySet = new Set(['class', 'interface', 'struct', 'union', 'enum', 'trait', 'typealias', 'exception']) +/** Roles whose target may name a type parameter; `typeparam` names nothing else. */ +const TYPE_PARAMETER_ROLES: ReadonlySet = new Set(['any', 'class', 'obj', 'typeparam']) + +/** Index of the bracket closing the one at `open`, counting only the same kind. */ +function closingBracket(text: string, open: number): number { + const pairs: Record = { '<': '>', '[': ']', '(': ')', '{': '}' } + const opener = text[open]! + let depth = 0 + for (let i = open; i < text.length; i++) { + if (text.startsWith('->', i) || text.startsWith('=>', i)) { i++; continue } + if (text[i] === opener) depth++ + else if (text[i] === pairs[opener]) { + depth-- + if (!depth) return i + } + } + return -1 +} + +/** + * Whether `name: Type` here declares a value, not names a type: a colon after + * the name inside parentheses, as in Scala's `(using F: Async[F])`. A type + * parameter list is bracketed, so its `C : Ordering` is not caught. + */ +function declaresValue(before: string, after: string): boolean { + if (!/^\s*\??:(?!:)/.test(after)) return false + const open: string[] = [] + for (const char of before) { + if ('([{<'.includes(char)) open.push(char) + else if (')]}>'.includes(char)) open.pop() + } + return open.at(-1) === '(' +} + +/** + * The arguments a Rust `impl` header gives its self type: `T` in + * `impl Slot where T: Send`. Undefined for a header that is not + * an `impl`, where the members are written inside the declaring type. + */ +function implSelfArguments(header: string): string[] | undefined { + const text = header.replace(/^(?:\s*#\[[^\n]*\]\s*)+/, '').trim() + const start = /^(?:unsafe\s+)?impl\b\s*/.exec(text) + if (!start) return undefined + let rest = text.slice(start[0].length) + if (rest.startsWith('<')) rest = rest.slice(closingBracket(rest, 0) + 1) + const trait = findTopLevel(rest, [' for ']) + if (trait) rest = rest.slice(trait.index + 5) + const where = findTopLevel(rest, [' where ', '\nwhere']) + if (where) rest = rest.slice(0, where.index) + rest = rest.trim().replace(/^&\s*(?:'\w+\s+)?(?:mut\s+)?/, '') + const open = rest.indexOf('<') + const close = open < 0 ? -1 : closingBracket(rest, open) + return close < 0 ? [] : splitTopLevel(rest.slice(open + 1, close), ',') +} + /** * An index built once per port and queried per span. * @@ -377,6 +456,143 @@ export class SymbolIndex { return top.length === 1 ? top[0].c : undefined } + private readonly sharedBindings = new WeakMap>() + + /** What a declaration introduces: its own list, plus a Kotlin or Scala type's constructor-shaped signatures. */ + private declaredBy(symbol: ApiSymbol): TypeParameter[] { + const own = typeParametersOf(symbol, this.lang) + if ((this.lang !== 'kotlin' && this.lang !== 'scala') || !TYPE_KINDS.has(symbol.kind)) return own + return [...own, ...symbol.signatures.flatMap((entry) => typeParametersOf(entry, this.lang))] + } + + /** + * Bind an impl's or receiver's spelling of the declaring type's parameters + * to the declared ones, by position. `impl Slot` renames `T`, and an + * `impl From for Slot` introduces a `T` the type never declared. + */ + private bindEnclosing(found: Map, context: ApiSymbol, signature: Signature): void { + const owner = context.parent ? this.byDeclared.get(context.parent) : undefined + const declared = owner ? this.declaredBy(owner) : [] + const bind = (name: string, parameter?: TypeParameter) => { + if (!found.has(name)) found.set(name, parameter ? { owner, parameter } : {}) + } + if (this.lang === 'go') { + const spelled = /\[([^\]]*)\]\s*$/.exec(signature.receiver?.type ?? '')?.[1] + if (spelled) splitTopLevel(spelled, ',').forEach((name, at) => { if (name !== '_') bind(name, declared[at]) }) + return + } + const names = signature.enclosingTypeParamNames ?? [] + const positional = implSelfArguments(signature.enclosingDeclaration ?? '') + for (const name of names) { + if (!positional) bind(name, declared.find((parameter) => parameter.name === name)) + else bind(name, declared[positional.indexOf(name)]) + } + } + + /** + * The names a declaration binds as type parameters, innermost first. + * + * Without a `signature` this is shared prose, which has no selected + * overload, so every overload's parameters count. A name bound anywhere + * must not link to a same-named global type. + */ + typeParameterBindings(context?: ApiSymbol, signature?: Signature): Map { + if (!context) return new Map() + const cached = signature ? undefined : this.sharedBindings.get(context) + if (cached) return cached + const found = new Map() + const add = (owner: ApiSymbol, parameters: readonly TypeParameter[]) => { + for (const parameter of parameters) if (!found.has(parameter.name)) found.set(parameter.name, { owner, parameter }) + } + const signatures = signature ? [signature] : context.signatures + // Kotlin and Scala record a type's own parameters on its signature, which the scope walk below reads. + const typeShaped = (this.lang === 'kotlin' || this.lang === 'scala') && TYPE_KINDS.has(context.kind) + if (!typeShaped) for (const entry of signatures) add(context, typeParametersOf(entry, this.lang)) + const insideImpl = this.lang === 'rs' && context.signatures.some((entry) => entry.enclosingDeclaration) + if (insideImpl || this.lang === 'go') for (const entry of signatures) this.bindEnclosing(found, context, entry) + if (!insideImpl) { + const detached = signatures.length > 0 && signatures.every((entry) => entry.typeScopeBoundary === true) + for (let scope: ApiSymbol | undefined = context; scope; scope = scope.parent ? this.byDeclared.get(scope.parent) : undefined) { + add(scope, this.declaredBy(scope)) + if (scope.typeScopeBoundary || (scope === context && detached)) break + } + } + if (!signature) this.sharedBindings.set(context, found) + return found + } + + private bindingLink(binding: TypeParameterBinding): LinkTarget | undefined { + const { owner, parameter } = binding + if (!owner || !parameter) return undefined + const page = this.hrefFor(owner).split('#')[0] + return { href: `${page}#${encodeURIComponent(typeParameterId(owner, parameter.name))}`, external: false, typeParameter: { owner, parameter } } + } + + /** + * A name as spans when it is a bound type parameter, or a projection from + * one: `F::Output` and `T.Element` name an associated type of the parameter. + */ + private boundSpans(text: string, bindings: Map): TypeSpan[] | undefined { + const spanFor = (name: string, binding: TypeParameterBinding): TypeSpan => { + const link = this.bindingLink(binding) + return { text: name, declaration: true, ...(link ? { link } : {}) } + } + const direct = bindings.get(text) + if (direct) return [spanFor(text, direct)] + const separator = this.lang === 'swift' ? '.' : this.lang === 'rs' || this.lang === 'cxx' ? '::' : undefined + const head = separator ? text.split(separator)[0]! : undefined + const binding = head && head !== text ? bindings.get(head) : undefined + return binding ? [spanFor(head!, binding), { text: text.slice(head!.length) }] : undefined + } + + /** `text` as spans when it names a type parameter bound where `context` is written; otherwise undefined. */ + typeParameterSpans(text: string, context?: ApiSymbol, signature?: Signature): TypeSpan[] | undefined { + return this.boundSpans(text, this.typeParameterBindings(context, signature)) + } + + /** The anchor of the type parameter `name` names where `context` is written, if it names one. */ + typeParameterLink(name: string, context?: ApiSymbol, signature?: Signature): LinkTarget | undefined { + const binding = this.typeParameterBindings(context, signature).get(name) + return binding && this.bindingLink(binding) + } + + /** The parameters a symbol declares on itself, as its own page lists them. */ + typeParametersDeclaredBy(symbol: ApiSymbol): TypeParameter[] { + return this.declaredBy(symbol) + } + + /** + * Type parameters declared by an enclosing symbol that this symbol's own + * types mention. Read through `linkType`, so the list and the links in the + * signature cannot disagree about which name means which declaration. + */ + inheritedTypeParameters(symbol: ApiSymbol): { owner: ApiSymbol; parameter: TypeParameter; href: string }[] { + const used = new Map() + const scan = (text: string | undefined, signature?: Signature) => { + if (!text) return + for (const span of this.linkType(text, symbol, signature)) { + const target = span.link?.typeParameter + if (target && target.owner.id !== symbol.id) used.set(`${target.owner.id}\0${target.parameter.name}`, { ...target, href: span.link!.href }) + } + } + scan(symbol.type) + for (const base of symbol.extends ?? []) scan(base) + for (const entry of symbol.signatures) { + scan(entry.raw, entry) + scan(entry.returns, entry) + scan(entry.receiver?.type, entry) + for (const param of entry.params) scan(param.type, entry) + for (const parameter of typeParametersOf(entry, this.lang)) { scan(parameter.bound, entry); scan(parameter.default, entry) } + } + const depth = (owner: ApiSymbol) => { + let count = 0 + for (let scope: ApiSymbol | undefined = symbol; scope && scope.id !== owner.id; scope = scope.parent ? this.byDeclared.get(scope.parent) : undefined) count++ + return count + } + return [...used.values()].sort((a, b) => depth(a.owner) - depth(b.owner) || + this.declaredBy(a.owner).indexOf(a.parameter) - this.declaredBy(b.owner).indexOf(b.parameter)) + } + /** * Resolve a reference, optionally from inside a symbol. * @@ -387,6 +603,16 @@ export class SymbolIndex { * turned 59 dead references into links, most of the remaining gap. */ resolve(target: string, role = 'any', context?: ApiSymbol): LinkTarget | undefined { + // A name the context binds as a type parameter is that parameter, never a + // same-named global. + if (context && TYPE_PARAMETER_ROLES.has(role) && /^[A-Za-z_$][\w$]*$/.test(target)) { + const parameter = this.typeParameterLink(target, context) + if (parameter) return parameter + } + return role === 'typeparam' ? undefined : this.resolveSymbol(target, role, context) + } + + private resolveSymbol(target: string, role: string, context?: ApiSymbol): LinkTarget | undefined { const relative = target.startsWith('.') const goType = this.lang === 'go' && role === 'class' if (this.lang === 'ruby') { @@ -441,11 +667,6 @@ export class SymbolIndex { return { href: `${this.hrefFor(context).split('#')[0]}#${encodeURIComponent(parameterId(context, clean))}`, external: false } } if (context && ['kotlin', 'scala'].includes(this.lang ?? '')) { - for (let scope: ApiSymbol | undefined = context; scope; scope = scope.parent ? this.byDeclared.get(scope.parent) : undefined) { - if (scope.signatures.some((sig) => sig.typeParams?.includes(clean))) { - return { href: this.hrefFor(scope), external: false, symbol: scope } - } - } const receiver = context.signatures.find((sig) => sig.receiver?.name === clean)?.receiver const receiverType = receiver?.type?.replace(/[<[].*$/, '') if (receiverType && receiverType !== clean) return this.resolve(receiverType, 'class', context) @@ -670,11 +891,23 @@ export class SymbolIndex { } linkDoc(spans: DocSpan[], context?: ApiSymbol): (DocSpan & { link?: LinkTarget })[] { - return spans.map((span) => - span.kind === 'ref' - ? { ...span, link: this.resolve(span.target, span.role, context) } - : span, - ) + return spans.map((span) => { + if (span.kind !== 'ref') return span + const link = this.resolve(span.target, span.role, context) + // A `typeparam` reference that names nothing in scope is a literal, not a lookup of a global. + return !link && span.role === 'typeparam' ? { kind: 'code' as const, text: span.label } : { ...span, link } + }) + } + + /** + * Link the names in a prose code literal. + * + * A keyword argument such as `cancel:` or `clients: true` names a parameter + * of the call being described, not the member elsewhere that shares its + * name, so it stays plain code. + */ + linkLiteral(text: string, context?: ApiSymbol): TypeSpan[] { + return keywordArgument.test(text) ? [{ text }] : this.linkType(text, context) } /** @@ -688,42 +921,10 @@ export class SymbolIndex { */ linkType(annotation: string, context?: ApiSymbol, signature?: Signature): TypeSpan[] { const out: TypeSpan[] = [] - const boundTypes = new Set() const rustPayload = this.lang === 'rs' && (context?.variant || (context?.parent && this.byDeclared.get(context.parent)?.variant)) const variantDelimiters: string[] = [] - if (this.lang === 'ts') { - // Shared prose has no selected overload; a local binding makes a global match ambiguous. - const parameters = signature ? [...signature.typeParams ?? []] - : context?.signatures.flatMap((sig) => sig.typeParams ?? []) ?? [] - for (let scope = context; scope; scope = scope.parent ? this.byDeclared.get(scope.parent) : undefined) { - parameters.push(...scope.typeParams ?? []) - } - for (const parameter of parameters) { - const name = /^\s*|$))/.exec(parameter)?.[1] - if (name) boundTypes.add(name) - } - } - if (this.lang === 'java') { - const signatures = signature ? [signature] : context?.signatures ?? [] - for (const name of signatures.flatMap((entry) => entry.typeParamNames ?? [])) boundTypes.add(name) - for (let scope = context; scope; scope = scope.parent ? this.byDeclared.get(scope.parent) : undefined) { - for (const name of scope.typeParamNames ?? []) boundTypes.add(name) - const staticBoundary = scope === context && signatures.length && signatures.every((entry) => entry.typeScopeBoundary === true) - if (scope.typeScopeBoundary || staticBoundary) break - } - } - if (this.lang === 'rs') { - const signatures = signature ? [signature] : context?.signatures ?? [] - for (const name of signatures.flatMap((entry) => [...entry.typeParamNames ?? [], ...entry.enclosingTypeParamNames ?? []])) boundTypes.add(name) - } - if (rustPayload) { - for (let scope: ApiSymbol | undefined = context; scope; scope = scope.parent ? this.byDeclared.get(scope.parent) : undefined) { - for (const parameter of scope.typeParams ?? []) { - const name = /^\s*(?:const\s+)?((?:r#)?[A-Za-z_][A-Za-z0-9_]*)(?=\s*(?::|=|$))/.exec(parameter)?.[1] - if (name) boundTypes.add(name) - } - } - } + // A bound name never takes a same-named global type's URL; it links to its declaration instead. + const bindings = this.typeParameterBindings(context, signature) // Identifiers, including dotted ones; everything else is punctuation, // whitespace or a string literal and passes through untouched. // `::` is part of a name, not punctuation between two. Splitting there @@ -784,8 +985,10 @@ export class SymbolIndex { out.push({ text: ident }) continue } - if (boundTypes.has(ident)) { - out.push({ text: ident, declaration: true }) + const bound = declaresValue(annotation.slice(0, m.index), annotation.slice(m.index! + ident.length)) + ? undefined : this.boundSpans(ident, bindings) + if (bound) { + out.push(...bound) continue } if (this.lang === 'cxx' && ident === 'nodiscard' && @@ -848,13 +1051,10 @@ export class SymbolIndex { out.push({ text: context.name, declaration: true }) continue } - if (signature && ( - ((signature.params.some((param) => param.name === ident) || signature.receiver?.name === ident) && + if (signature && (signature.params.some((param) => param.name === ident) || signature.receiver?.name === ident) && (/^\s*\??\s*:(?!:)/.test(annotation.slice(m.index! + ident.length)) || (this.lang === 'julia' && /(?:^|[(,;])\s*$/.test(annotation.slice(0, m.index)) && - /^\s*(?:::|[=,;)]|\.\.\.)/.test(annotation.slice(m.index! + ident.length))))) || - signature.typeParams?.includes(ident) - )) { + /^\s*(?:::|[=,;)]|\.\.\.)/.test(annotation.slice(m.index! + ident.length))))) { const parameter = this.lang === 'julia' && context && signature.params.some((param) => param.name === ident) out.push({ text: ident, declaration: true, ...(parameter ? { link: { href: `${this.hrefFor(context).split('#')[0]}#${encodeURIComponent(parameterId(context, ident))}`, external: false, @@ -872,7 +1072,7 @@ export class SymbolIndex { // renders unlinked in a signature is a builtin — `bool`, `Task`, // `Result`, `string` — which nothing here defines and no intersphinx // inventory covers for five of the eight ports. - const link = this.resolve(ident, 'class', context) + const link = this.resolveSymbol(ident, 'class', context) if (link || !['kotlin', 'scala'].includes(this.lang ?? '') || !ident.includes('.')) { out.push({ text: ident, link }) continue @@ -884,8 +1084,8 @@ export class SymbolIndex { // Follow only an explicit declared return type. Imported extension // functions can resolve independently after a call's parentheses. const returns = previous?.symbol?.signatures[0]?.returns - const member = returns ? this.resolve(`${returns}.${part}`, 'any', previous?.symbol) : undefined - const resolved = member ?? (position === 0 ? this.resolve(part, 'any', context) : undefined) + const member = returns ? this.resolveSymbol(`${returns}.${part}`, 'any', previous?.symbol) : undefined + const resolved = member ?? (position === 0 ? this.resolveSymbol(part, 'any', context) : undefined) out.push({ text: part, link: resolved }) previous = resolved } diff --git a/packages/api-model/src/model.ts b/packages/api-model/src/model.ts index 9157d6c83..1b3764ff6 100644 --- a/packages/api-model/src/model.ts +++ b/packages/api-model/src/model.ts @@ -60,7 +60,8 @@ export type SymbolKind = * `overload` is the one that pays for the whole set: Python's `@t.overload`, * TypeScript's declaration merging, C#'s method groups and C++'s overloads all * produce several signatures for one name, and a reference that shows only the - * first is wrong in a way readers do not notice. + * first is wrong in a way readers do not notice. Only a callable with more than + * one signature carries it; a type merged from several declarations does not. */ export type Modifier = | 'static' @@ -120,6 +121,36 @@ export interface Param { } } +/** + * One parameter of a generic declaration, split into the parts a reader asks + * about: what it is called, what it must satisfy, what it falls back to. + * + * `typeParams` keeps the declaration text as written, which the signature + * layouts splice back into a header; this is the same list read apart, plus + * the documentation the doc comment attaches to each name. A bound that the + * language writes outside the list — C# `where T : class`, a Rust `where T: + * Clone` — is merged in, because to a reader it is still a bound on `T`. + */ +export interface TypeParameter { + /** The bound name: `Model`, `T`, `'a`, `N`. */ + name: string + /** What the language lets precede the name: `in`, `out`, `const`, `reified`, `+`, `-`. */ + modifier?: string + /** `lifetime` and `const` parameters share the list but are not type variables. */ + kind?: 'lifetime' | 'const' + /** + * Bound or constraint without its introducer: `Clone + Send` for `T: Clone + + * Send`, `Foo & Bar` for `T extends Foo & Bar`. A const parameter's bound is + * the type of its value. A lower bound keeps its `>:` because it is not the + * upper bound every other language means. + */ + bound?: string + /** Default type or value, as written. */ + default?: string + /** `@typeParam`, `@param `, ``, `@tparam`: what the doc comment says it is for. */ + doc?: string +} + /** One callable signature. A symbol has several only when it is overloaded. */ export interface Signature { /** Native method identity or command parameter-set identity. */ @@ -147,6 +178,12 @@ export interface Signature { typeParams?: string[] /** Names bound by native type-parameter declarations, without annotations or bounds. */ typeParamNames?: string[] + /** + * The same parameters read apart, with bounds, defaults and documentation. + * Absent in models extracted before it existed; `typeParametersOf` then + * derives it from `typeParams`. + */ + typeParameters?: TypeParameter[] /** Whether this overload excludes enclosing type variables; false retains instance scope. */ typeScopeBoundary?: boolean /** Named or implicit receiver of a native extension declaration. */ @@ -290,6 +327,8 @@ export interface ApiSymbol { typeParams?: string[] /** Names bound by native type-parameter declarations, without annotations or bounds. */ typeParamNames?: string[] + /** The declaration's type parameters read apart; see `Signature.typeParameters`. */ + typeParameters?: TypeParameter[] /** Command behavior beyond its individual parameter sets. */ command?: { kind: 'cmdlet' | 'function' diff --git a/packages/api-model/src/overloads.ts b/packages/api-model/src/overloads.ts new file mode 100644 index 000000000..a2f0113b1 --- /dev/null +++ b/packages/api-model/src/overloads.ts @@ -0,0 +1,37 @@ +import type { ApiSymbol } from './model.ts' + +/** + * Whether a symbol is something a caller invokes, and so can be one of several + * signatures sharing a name. + * + * Constructors, initializers and operators are `method`s or `function`s here; + * the model has no kind of their own for them. + */ +export const isCallable = (symbol: Pick): boolean => + symbol.kind === 'method' || symbol.kind === 'function' + +/** + * `overload` says one callable has several signatures. Nothing else may carry it. + * + * Two declarations sharing an id are not always an overload set. A Rust + * `struct X` and its `impl X`, a TypeScript `class X` and its `interface X`, + * C#'s `Result` and `Result`, and a Java field next to the accessor named + * after it all collapse onto one id. They merge, and the merge keeps whatever + * the parts say, but a type or a property is not an overload of itself. + */ +export const canOverload = (symbol: Pick): boolean => + isCallable(symbol) && symbol.signatures.length > 1 + +/** Record that declarations of one callable were merged, where that makes an overload set. */ +export function markOverload(symbol: ApiSymbol): void { + if (canOverload(symbol) && !symbol.modifiers.includes('overload')) symbol.modifiers.push('overload') +} + +/** Drop an `overload` a merge carried over from a part that was not an overload set. */ +export function retractMisplacedOverload(symbol: ApiSymbol): void { + if (!canOverload(symbol)) symbol.modifiers = symbol.modifiers.filter((modifier) => modifier !== 'overload') +} + +/** Symbols that claim to be an overload set and are not one. */ +export const misplacedOverloads = (symbols: readonly ApiSymbol[]): ApiSymbol[] => + symbols.filter((symbol) => symbol.modifiers.includes('overload') && !canOverload(symbol)) diff --git a/packages/api-model/src/project.ts b/packages/api-model/src/project.ts index e4073bba7..3acbdb21a 100644 --- a/packages/api-model/src/project.ts +++ b/packages/api-model/src/project.ts @@ -16,6 +16,7 @@ import { type PortSlug, type SymbolKind, } from './model.ts' +import { markOverload, retractMisplacedOverload } from './overloads.ts' /** * Whole-tree extraction, and the pass that makes coverage complete. @@ -126,6 +127,10 @@ export function mergeExtensions(symbols: ApiSymbol[], kind: SymbolKind | undefin * parts (`Pane.Topology.cs`) undocumented, so preferring a summary usually * picks that part; `extends` and `modifiers` are unioned because a partial * declaration may name a base or an interface in any part. + * + * Only a callable becomes an overload set by merging. Rust's `impl` blocks + * and C#'s `Result` beside `Result` also arrive here under one id, and a + * type that is written more than once is still one type. */ function mergePartials(symbols: ApiSymbol[]): ApiSymbol[] { const byId = new Map() @@ -152,11 +157,13 @@ function mergePartials(symbols: ApiSymbol[]): ApiSymbol[] { ) if (fresh.length) { seen.signatures.push(...fresh) - if (!seen.modifiers?.includes('overload')) { - seen.modifiers = [...(seen.modifiers ?? []), 'overload'] - } + markOverload(seen) } + // The union above also carries an `overload` a part earned on its own, as + // an `impl` block does when a file holds two of them. + retractMisplacedOverload(seen) + // A part with prose beats a part without, whichever arrived first. if (!seen.doc?.summary && s.doc?.summary) { seen.doc = s.doc diff --git a/packages/api-model/src/type-params.ts b/packages/api-model/src/type-params.ts new file mode 100644 index 000000000..04213e286 --- /dev/null +++ b/packages/api-model/src/type-params.ts @@ -0,0 +1,244 @@ +import type { ApiSymbol, Signature, TypeParameter } from './model.ts' + +/** + * Type parameters read apart from their declaration text. + * + * Extraction keeps `typeParams` as written because signature layouts splice it + * back into a header. A reader asks other questions of it: what is the name, + * what must it satisfy, what does it default to. This parser answers them for + * every language's spelling, so models extracted before the structured field + * existed still render, and so extractors need no grammar of their own for it. + */ + +const IDENT = String.raw`[A-Za-z_$][\w$]*` + +/** Operators that look like brackets or separators but are neither. */ +const COMPOUND = ['->', '=>', '<:', '>:', ':>', '<=', '>=', '==', '!=', '::'] + +/** + * The first top-level occurrence of any needle: outside brackets, string + * literals and compound operators. `Iterator` holds an `=` that is + * not a default, and `Fn(u8) -> u8` holds a `>` that closes nothing. + */ +export function findTopLevel(text: string, needles: readonly string[], from = 0): { index: number; needle: string } | undefined { + let depth = 0 + for (let i = from; i < text.length; i++) { + const char = text[i]! + if (char === '"') { + for (i++; i < text.length && text[i] !== '"'; i++) if (text[i] === '\\') i++ + continue + } + if (char === "'" && (text[i + 2] === "'" || (text[i + 1] === '\\' && text[i + 3] === "'"))) { + i += text[i + 1] === '\\' ? 3 : 2 + continue + } + if (depth === 0) { + const needle = needles.find((candidate) => text.startsWith(candidate, i) && + // A lone `=` must not be the start of `==`, `=>`, or the end of `<=`, `>=`, `!=`. + (candidate !== '=' || (text[i + 1] !== '=' && text[i + 1] !== '>' && !(i > 0 && '<>!='.includes(text[i - 1]!))))) + if (needle) return { index: i, needle } + } + const compound = COMPOUND.find((candidate) => text.startsWith(candidate, i)) + if (compound) { i += compound.length - 1; continue } + if ('([{<'.includes(char)) depth++ + else if (')]}>'.includes(char)) depth = Math.max(0, depth - 1) + } + return undefined +} + +/** Split at every top-level occurrence of one separator. */ +export function splitTopLevel(text: string, separator: string): string[] { + const parts: string[] = [] + let start = 0 + for (let hit = findTopLevel(text, [separator]); hit; hit = findTopLevel(text, [separator], start)) { + parts.push(text.slice(start, hit.index)) + start = hit.index + separator.length + } + parts.push(text.slice(start)) + return parts.map((part) => part.trim()).filter(Boolean) +} + +function make(parameter: TypeParameter): TypeParameter { + const out: TypeParameter = { name: parameter.name } + for (const key of ['modifier', 'kind', 'bound', 'default', 'doc'] as const) { + const value = parameter[key] + if (value) Object.assign(out, { [key]: typeof value === 'string' ? value.trim() : value }) + } + return out +} + +/** + * `bound = default`, split on the one `=` that is not nested. The introducer + * goes first: Ruby's `<` would otherwise open a bracket that swallows the `=`. + */ +function boundAndDefault(rest: string, introducer: RegExp): { bound?: string; default?: string } { + const text = rest.trim() + const introduced = introducer.test(text) + const body = introduced ? text.replace(introducer, '') : text + const equals = findTopLevel(body, ['=']) + return { + bound: introduced ? (equals ? body.slice(0, equals.index) : body).trim() : undefined, + default: equals ? body.slice(equals.index + 1).trim() : undefined, + } +} + +const ANNOTATIONS = /^(?:\s*(?:@[\w.]+(?:\([^)]*\))?|\[[^\]]*\]))+\s*/ + +type Parser = (text: string) => TypeParameter[] + +const typescript: Parser = (text) => { + const match = new RegExp(String.raw`^\s*((?:(?:const|in|out)\s+)*)(${IDENT})(?=\s*(?:extends\b|=|$))\s*([\s\S]*)$`).exec(text) + if (!match) return [] + return [make({ name: match[2]!, modifier: match[1]!.trim(), ...boundAndDefault(match[3]!, /^extends\b/) })] +} + +const rust: Parser = (text) => { + const lifetime = /^('[A-Za-z_]\w*)\s*(?::\s*([\s\S]*))?$/.exec(text) + if (lifetime) return [make({ name: lifetime[1]!, kind: 'lifetime', bound: lifetime[2] })] + const constant = /^const\s+((?:r#)?[A-Za-z_]\w*)\s*:\s*([\s\S]*)$/.exec(text) + if (constant) { + const { bound, default: value } = boundAndDefault(`: ${constant[2]}`, /^:/) + return [make({ name: constant[1]!, modifier: 'const', kind: 'const', bound, default: value })] + } + const type = /^((?:r#)?[A-Za-z_]\w*)\s*([\s\S]*)$/.exec(text) + return type ? [make({ name: type[1]!, ...boundAndDefault(type[2]!, /^:/) })] : [] +} + +const go: Parser = (text) => { + const match = /^([A-Za-z_]\w*(?:\s*,\s*[A-Za-z_]\w*)*)\s+([\s\S]+)$/.exec(text) + if (!match) return /^[A-Za-z_]\w*$/.test(text) ? [make({ name: text })] : [] + return match[1]!.split(',').map((name) => make({ name: name.trim(), bound: match[2] })) +} + +const java: Parser = (text) => { + const match = new RegExp(String.raw`^(${IDENT})\s*(?:extends\s+([\s\S]+))?$`).exec(text.replace(ANNOTATIONS, '')) + return match ? [make({ name: match[1]!, bound: match[2] })] : [] +} + +const csharp: Parser = (text) => { + const match = /^(?:(in|out)\s+)?([A-Za-z_]\w*)$/.exec(text.replace(ANNOTATIONS, '').trim()) + return match ? [make({ name: match[2]!, modifier: match[1] })] : [] +} + +const kotlin: Parser = (text) => { + const match = /^((?:(?:reified|in|out|vararg)\s+)*)([A-Za-z_]\w*)\s*(?::\s*([\s\S]+))?$/.exec(text.replace(ANNOTATIONS, '').trim()) + return match ? [make({ name: match[2]!, modifier: match[1]!.trim(), bound: match[3] })] : [] +} + +const scala: Parser = (text) => { + const match = /^([+-]?)\s*([A-Za-z_]\w*)\s*(?:\[[\s\S]*?\])?\s*([\s\S]*)$/.exec(text.trim()) + if (!match) return [] + const rest = match[3]!.trim() + return [make({ name: match[2]!, modifier: match[1], bound: rest.replace(/^<:\s*/, '') })] +} + +const swift: Parser = (text) => { + const match = /^((?:each\s+)?)([A-Za-z_]\w*)\s*(?::\s*([\s\S]+))?$/.exec(text.trim()) + return match ? [make({ name: match[2]!, modifier: match[1]!.trim(), bound: match[3] })] : [] +} + +/** Types a C++ non-type template parameter can have; anything else before the name is a concept. */ +const CXX_VALUE_TYPE = /^(?:const\s+)?(?:auto|bool|char\d*_t|wchar_t|(?:unsigned|signed|short|long|int|char|float|double)(?:\s+(?:unsigned|signed|short|long|int|char))*|(?:std::)?(?:size_t|ptrdiff_t|u?intptr_t|u?int(?:_least|_fast)?\d+_t)|decltype\([\s\S]*\))$/ + +const cxx: Parser = (text) => { + const equals = findTopLevel(text, ['=']) + const head = (equals ? text.slice(0, equals.index) : text).trim() + const value = equals ? text.slice(equals.index + 1).trim() : undefined + const template = /^template\s*<[\s\S]*>\s*(?:class|typename)\s*(\.\.\.)?\s*([A-Za-z_]\w*)?$/.exec(head) + if (template) return template[2] ? [make({ name: template[2], modifier: template[1], default: value })] : [] + const plain = /^(?:typename|class)\s*(\.\.\.)?\s*([A-Za-z_]\w*)?$/.exec(head) + if (plain) return plain[2] ? [make({ name: plain[2], modifier: plain[1], default: value })] : [] + const other = /^([\s\S]+?)\s*(\.\.\.)?\s*([A-Za-z_]\w*)$/.exec(head) + if (!other) return [] + const nonType = CXX_VALUE_TYPE.test(other[1]!.trim()) + return [make({ name: other[3]!, modifier: other[2], kind: nonType ? 'const' : undefined, bound: other[1], default: value })] +} + +const julia: Parser = (text) => { + const match = /^([A-Za-z_][\w!]*)\s*(?:(<:|>:)\s*([\s\S]+))?$/.exec(text.trim()) + if (!match) return [] + return [make({ name: match[1]!, bound: match[3] ? `${match[2] === '>:' ? '>: ' : ''}${match[3]}` : undefined })] +} + +const ruby: Parser = (text) => { + const match = /^(?:unchecked\s+)?(?:(in|out)\s+)?([A-Za-z_]\w*)\s*([\s\S]*)$/.exec(text.trim()) + return match ? [make({ name: match[2]!, modifier: match[1], ...boundAndDefault(match[3]!, /^ { + const match = /^(\*{0,2})([A-Za-z_]\w*)\s*([\s\S]*)$/.exec(text.trim()) + return match ? [make({ name: match[2]!, modifier: match[1], ...boundAndDefault(match[3]!, /^:/) })] : [] +} + +const fallback: Parser = (text) => { + const match = new RegExp(String.raw`^'?(${IDENT})\s*([\s\S]*)$`).exec(text.trim()) + return match ? [make({ name: text.trim().startsWith("'") ? `'${match[1]}` : match[1]!, ...boundAndDefault(match[2]!, /^(?::|extends\b|<:)/) })] : [] +} + +const PARSERS: Record = { + ts: typescript, rs: rust, go, java, csharp, kotlin, scala, swift, cxx, julia, ruby, py: python, +} + +/** One declaration entry as the language's grammar reads it; a Go entry can declare several names. */ +export function parseTypeParameter(lang: string | undefined, text: string): TypeParameter[] { + const trimmed = text.trim() + // Older models wrapped the whole list in its brackets. + const inner = /^<([\s\S]*)>$/.test(trimmed) && !trimmed.slice(1, -1).includes('<') ? trimmed.slice(1, -1) : trimmed + return (PARSERS[lang ?? ''] ?? fallback)(inner) +} + +/** A declaration's whole parameter list, once per name. */ +export function parseTypeParameters(lang: string | undefined, texts: readonly string[]): TypeParameter[] { + const seen = new Set() + return texts.flatMap((text) => parseTypeParameter(lang, text)).filter((parameter) => { + if (seen.has(parameter.name)) return false + seen.add(parameter.name) + return true + }) +} + +type Declares = Pick & { kind?: string } +const derived = new WeakMap>() + +/** + * The type parameters an extracted declaration owns: the stored list when the + * extractor wrote one, otherwise its declaration text read apart. A model + * that recorded names only still yields names. + */ +export function typeParametersOf(entity: Declares, lang?: string): TypeParameter[] { + // A Julia alias records the arguments it applies, `Ref{ID}`, not parameters it declares. + if (lang === 'julia' && entity.kind === 'typealias') return [] + if (entity.typeParameters) return entity.typeParameters + if (!entity.typeParams?.length && !entity.typeParamNames?.length) return [] + const cache = derived.get(entity) ?? new Map() + derived.set(entity, cache) + const key = lang ?? '' + let parsed = cache.get(key) + if (!parsed) { + parsed = parseTypeParameters(lang, entity.typeParams ?? []) + if (!parsed.length) parsed = (entity.typeParamNames ?? []).map((name) => ({ name })) + cache.set(key, parsed) + } + return parsed +} + +/** `` in the brackets the language writes generic lists in. */ +export function typeParameterList(lang: string | undefined, parameters: readonly TypeParameter[]): string { + if (!parameters.length) return '' + const [open, close] = lang === 'go' || lang === 'scala' ? ['[', ']'] : lang === 'julia' ? ['{', '}'] : ['<', '>'] + return `${open}${parameters.map((parameter) => parameter.name).join(', ')}${close}` +} + +/** What the language calls the restriction on a parameter. */ +export function boundLabel(lang: string | undefined, parameter?: TypeParameter): string { + if (parameter?.kind === 'const') return 'Type' + return ['go', 'csharp', 'cxx', 'swift'].includes(lang ?? '') ? 'Constraint' : 'Bound' +} + +/** Doc comments name a parameter by `T` or ``; both land on the declared name. */ +export function withTypeParameterDocs(parameters: readonly TypeParameter[], docs: ReadonlyMap): TypeParameter[] { + return parameters.map((parameter) => { + const doc = docs.get(parameter.name) ?? docs.get(`<${parameter.name}>`) + return doc ? { ...parameter, doc } : parameter + }) +} diff --git a/packages/api-model/test/csharp.test.ts b/packages/api-model/test/csharp.test.ts index 3f59d40d9..9f6a840c0 100644 --- a/packages/api-model/test/csharp.test.ts +++ b/packages/api-model/test/csharp.test.ts @@ -63,7 +63,7 @@ public ${declaration} Result( expect(owner.kind).toBe('class') expect(owner.signatures).toEqual([{ raw: 'public abstract record Result(T? Value) : Base where T : class', - params: [{ name: 'Value', type: 'T?' }], typeParams: ['T'], + params: [{ name: 'Value', type: 'T?' }], typeParams: ['T'], typeParameters: [{ name: 'T', bound: 'class' }], }]) expect(symbols.find((symbol) => symbol.id === 'LibTmux.Result.OldValue')?.type).toBe('T?') }) diff --git a/packages/api-model/test/doc-inline-code.test.ts b/packages/api-model/test/doc-inline-code.test.ts index 1114faa90..40a5592f4 100644 --- a/packages/api-model/test/doc-inline-code.test.ts +++ b/packages/api-model/test/doc-inline-code.test.ts @@ -8,6 +8,10 @@ const symbol = (id: string): ApiSymbol => ({ modifiers: [], signatures: [], source: { file: 'types.ts' }, }) +/** Each linked span with where it goes: a type parameter's anchor, or a global declaration. */ +const linked = (parts: ReturnType) => + parts.filter((part) => part.link).map((part) => [part.text, part.link!.href]) + describe('inline code references', () => { it('keeps generic code intact before resolving each identifier', () => { const text = 'A `Selection` preserves its handle.' @@ -45,16 +49,19 @@ describe('inline code references', () => { const owner = { ...symbol('selection.Filter'), typeParams: ['Pane'] } const context = { ...symbol('selection.Filter.pick'), parent: owner.id, imports: { Pane: 'pane.Pane' } } const index = new SymbolIndex([owner, context, symbol('selection.Selection'), symbol('pane.Pane')], (entry) => `/${entry.id}/`, 'ts') - expect(index.linkType('Selection', context).filter((part) => part.link).map((part) => part.text)).toEqual(['Selection']) - expect(index.linkType('Selection', context).filter((part) => part.link).map((part) => part.text)).toEqual(['Selection', 'pane.Pane']) + expect(linked(index.linkType('Selection', context))).toEqual([ + ['Selection', '/selection.Selection/'], ['Pane', '/selection.Filter/#selection.Filter.type-parameter.Pane'], + ]) + expect(linked(index.linkType('Selection', context)).map(([text]) => text)).toEqual(['Selection', 'pane.Pane']) }) it.each(['Pane extends Model', 'const Pane extends Model', 'out Pane = Model']) ('recognizes the binding in a TypeScript parameter declaration: %s', (parameter) => { const context = { ...symbol('selection.pick'), signatures: [{ params: [], typeParams: [parameter] }] } const index = new SymbolIndex([context, symbol('selection.Selection'), symbol('pane.Pane'), symbol('types.Model')], (entry) => `/${entry.id}/`, 'ts') - expect(index.linkType('Selection', context).filter((part) => part.link).map((part) => part.text)).toEqual(['Selection']) - expect(index.linkType(parameter, context).filter((part) => part.link).map((part) => part.text)).toEqual(['Model']) + const anchor = '/selection.pick/#selection.pick.type-parameter.Pane' + expect(linked(index.linkType('Selection', context))).toEqual([['Selection', '/selection.Selection/'], ['Pane', anchor]]) + expect(linked(index.linkType(parameter, context))).toEqual([['Pane', anchor], ['Model', '/types.Model/']]) }) it('does not inherit type parameters from a sibling overload or constructor', () => { @@ -64,7 +71,7 @@ describe('inline code references', () => { const context = { ...symbol('selection.Factory.pick'), parent: owner.id, signatures: [generic, concrete] } const index = new SymbolIndex([owner, context, symbol('pane.Pane')], (entry) => `/${entry.id}/`, 'ts') expect(index.linkType('Pane', context, concrete)[0].link?.href).toBe('/pane.Pane/') - expect(index.linkType('Pane', context, generic)[0].link).toBeUndefined() + expect(index.linkType('Pane', context, generic)[0].link?.href).toBe('/selection.Factory.pick/#selection.Factory.pick.type-parameter.Pane') expect(index.linkType('Pane', { ...context, signatures: [] })[0].link?.href).toBe('/pane.Pane/') }) @@ -73,8 +80,10 @@ describe('inline code references', () => { const other: Signature = { params: [{ name: 'value', type: 'Pane' }], ...(bothGeneric ? { typeParams: ['Pane extends Model'] } : {}) } const context = { ...symbol('selection.pick'), signatures: [generic, other] } const index = new SymbolIndex([context, symbol('selection.Selection'), symbol('pane.Pane')], (entry) => `/${entry.id}/`, 'ts') - expect(index.linkType('Selection', context).filter((part) => part.link).map((part) => part.text)).toEqual(['Selection']) - expect(index.linkType('Pane', context, other)[0].link?.href).toBe(bothGeneric ? undefined : '/pane.Pane/') + // Shared prose has no selected overload, so a name bound by either one stays out of the global lookup. + expect(linked(index.linkType('Selection', context)).map(([text]) => text)).toEqual(['Selection', 'Pane']) + expect(index.linkType('Pane', context, other)[0].link?.href).toBe(bothGeneric + ? '/selection.pick/#selection.pick.type-parameter.Pane' : '/pane.Pane/') }) it('keeps TypeScript dollar identifiers intact when bound or unresolved', () => { @@ -83,7 +92,8 @@ describe('inline code references', () => { for (const expression of ['Selection<$Pane>', 'Selection', 'Selection']) { const parts = index.linkType(expression, context) expect(parts.map((part) => part.text).join('')).toBe(expression) - expect(parts.filter((part) => part.link).map((part) => part.text)).toEqual(['Selection']) + expect(parts.filter((part) => part.link).map((part) => part.text)).toEqual( + expression === 'Selection<$Pane>' ? ['Selection', '$Pane'] : ['Selection']) } }) diff --git a/packages/api-model/test/doxygen.test.ts b/packages/api-model/test/doxygen.test.ts index 02a19d9e6..41e8bc969 100644 --- a/packages/api-model/test/doxygen.test.ts +++ b/packages/api-model/test/doxygen.test.ts @@ -498,3 +498,19 @@ describe('Doxygen description markup', () => { }) }) }) + +describe('Doxygen code listings', () => { + const listing = (lines: string[]) => lines.map((line) => + `${line.replace(/ ''.repeat(spaces.length))}`).join('') + + it('keeps the lines and indentation of a \\code block as a fenced block', () => { + const symbols = extractCompound(`sample::Box + A box. + Use it:${listing([ + 'auto box = Box::open();', 'if (box) {', ' box->run([](auto& x) {', ' x.go();', ' });', '}', + ])}Then close it. + `) + const doc = symbols.find((symbol) => symbol.name === 'Box')!.doc! + expect(doc.body).toBe('Use it:\n\n```cpp\nauto box = Box::open();\nif (box) {\n box->run([](auto& x) {\n x.go();\n });\n}\n```\n\nThen close it.') + }) +}) diff --git a/packages/api-model/test/java.test.ts b/packages/api-model/test/java.test.ts index 5170f552e..e0d75454e 100644 --- a/packages/api-model/test/java.test.ts +++ b/packages/api-model/test/java.test.ts @@ -24,6 +24,11 @@ async function extract(source: string, privateMembers = false, module = 'example return extractWithSpec(JAVA, file, module, { privateMembers }) } +/** A bound type variable is a declaration that links to its own anchor, never to a global type. */ +const bound = (name: string) => [expect.objectContaining({ + text: name, declaration: true, link: expect.objectContaining({ typeParameter: expect.anything() }), +})] + describe('Java record components', () => { it('retains documented components and their implicit public accessors', async () => { const symbols = await extract(`package io.github.libtmux.batch; @@ -433,7 +438,7 @@ describe('Java native annotation and lexical type identities', () => { const symbol = symbols.find((entry) => entry.id === member)! const signature = symbol.signatures[0] const index = new SymbolIndex(symbols, (entry) => `/${entry.id}/`, 'java') - expect(index.linkType('T', symbol, signature)).toEqual([{ text: 'T', declaration: true }]) + expect(index.linkType('T', symbol, signature)).toEqual(bound('T')) const boundary = _label === 'inner owner' ? symbols.find((entry) => entry.name === 'Inner')! : signature ?? symbol expect(boundary.typeScopeBoundary).toBe(false) expect(index.linkType('example.T', symbol, signature)[0].link?.symbol?.id).toBe('example.T') @@ -467,13 +472,13 @@ describe('Java native annotation and lexical type identities', () => { expect(byId('Inner.Inner').signatures[0]?.typeScopeBoundary).toBe(false) for (const id of ['Inner.Inner', 'Inner.value']) { const symbol = byId(id) - expect(index.linkType('T', symbol, symbol.signatures[0])).toEqual([{ text: 'T', declaration: true }]) + expect(index.linkType('T', symbol, symbol.signatures[0])).toEqual(bound('T')) } for (const id of ['Nested', 'field', 'Contract', 'Record', 'Mode', 'Mode.VALUE']) expect(byId(id).typeScopeBoundary).toBe(true) expect(byId('read').signatures[0]?.typeScopeBoundary).toBe(true) expect(byId('Nested.Nested').signatures[0]?.typeScopeBoundary).toBe(false) const constructor = byId('Nested.Nested') - expect(index.linkType('R', constructor, constructor.signatures[0])).toEqual([{ text: 'R', declaration: true }]) + expect(index.linkType('R', constructor, constructor.signatures[0])).toEqual(bound('R')) for (const id of ['Nested.read', 'field', 'read']) { const symbol = byId(id) expect(index.linkType('example.T', symbol, symbol.signatures[0])[0].link?.symbol?.id).toBe('example.T') @@ -488,7 +493,7 @@ describe('Java native annotation and lexical type identities', () => { const index = new SymbolIndex(symbols, (symbol) => `/${symbol.id}/`, 'java') expect(signature.typeScopeBoundary).toBe(false) expect(signature.raw).toBe(`${prefix} T read()`) - expect(index.linkType('T', method, signature)).toEqual([{ text: 'T', declaration: true }]) + expect(index.linkType('T', method, signature)).toEqual(bound('T')) expect(index.linkType('Unknown', method, signature)).toEqual([{ text: 'Unknown', link: undefined }]) }) @@ -497,11 +502,11 @@ describe('Java native annotation and lexical type identities', () => { const method = symbols.find((symbol) => symbol.id === 'example.Outer.value')! const instance = method.signatures.find((signature) => signature.params.length === 0)! const index = new SymbolIndex(symbols, (symbol) => `/${symbol.id}/`, 'java') - expect(index.linkType('T', method, instance)).toEqual([{ text: 'T', declaration: true }]) + expect(index.linkType('T', method, instance)).toEqual(bound('T')) expect(instance).toEqual({ params: [], returns: 'T', typeScopeBoundary: false }) expect(instance.raw).toBeUndefined() expect(method.modifiers).toEqual(['static', 'overload']) - expect(index.linkType('T', method)).toEqual([{ text: 'T', declaration: true }]) + expect(index.linkType('T', method)).toEqual(bound('T')) }) it('uses the selected overload static boundary in either source order', async () => { @@ -514,10 +519,10 @@ describe('Java native annotation and lexical type identities', () => { const detached = method.signatures.find((signature) => signature.returns === 'void')! expect(instance.typeScopeBoundary).toBe(false) expect(detached.typeScopeBoundary).toBe(true) - expect(index.linkType('T', method, instance)).toEqual([{ text: 'T', declaration: true }]) + expect(index.linkType('T', method, instance)).toEqual(bound('T')) // A lookup-only negative: an enclosing T would be illegal in this static declaration. expect(index.linkType('T', method, detached)[0].link?.symbol?.id).toBe('example.T') - expect(index.linkType('T', method)).toEqual([{ text: 'T', declaration: true }]) + expect(index.linkType('T', method)).toEqual(bound('T')) expect(method.signatures.map((signature) => signature.raw)).toEqual(members.map((member) => member.slice(0, member.indexOf('{')).trimEnd())) expect(method.modifiers).toEqual(members[0] === declarations[0] ? ['static', 'overload'] : ['overload']) } @@ -532,8 +537,8 @@ describe('Java native annotation and lexical type identities', () => { const generic = method.signatures.find((signature) => signature.typeParamNames?.length)! const nongeneric = method.signatures.find((signature) => !signature.typeParamNames?.length)! expect(index.linkType('T', method, nongeneric)[0].link?.symbol?.id).toBe('example.T') - expect(index.linkType('T', method, generic)).toEqual([{ text: 'T', declaration: true }]) - expect(index.linkType('T', method)).toEqual([{ text: 'T', declaration: true }]) + expect(index.linkType('T', method, generic)).toEqual(bound('T')) + expect(index.linkType('T', method)).toEqual(bound('T')) expect(index.linkType('Unknown', method, nongeneric)).toEqual([{ text: 'Unknown', link: undefined }]) } }) @@ -602,7 +607,7 @@ public class Container { private @interface Hidden {} } expect(symbols.find((entry) => entry.name === 'Nested')?.modifiers).toEqual(['static']) for (const suffix of ['Outer.direct', 'Outer.Inner.outer', 'Outer.rebound']) { const symbol = symbols.find((entry) => entry.id === `example.${suffix}`)! - expect(index.linkType('T', symbol, symbol.signatures[0])).toEqual([{ text: 'T', declaration: true }]) + expect(index.linkType('T', symbol, symbol.signatures[0])).toEqual(bound('T')) } for (const suffix of ['Outer.Nested.unbound', 'Outer.NestedInterface.unbound', 'Outer.NestedRecord.unbound', 'InterfaceOwner.NestedClass.unbound', 'Outer.unbound']) { const symbol = symbols.find((entry) => entry.id === `example.${suffix}`)! diff --git a/packages/api-model/test/javadoc.test.ts b/packages/api-model/test/javadoc.test.ts index 0e37faf63..8805631bd 100644 --- a/packages/api-model/test/javadoc.test.ts +++ b/packages/api-model/test/javadoc.test.ts @@ -1,5 +1,11 @@ import { describe, expect, it } from 'vitest' +import { mkdtempSync, rmSync, writeFileSync } from 'node:fs' +import { tmpdir } from 'node:os' +import { join } from 'node:path' +import { javadocToMarkdown, parseJavadoc } from '../src/doc/javadoc.ts' import { javadocSymbols } from '../src/javadoc.ts' +import { extractWithSpec } from '../src/languages/spec.ts' +import { JAVA } from '../src/languages/specs.ts' describe('Javadoc search-index URLs', () => { it('preserves module ownership, nested classes and authoritative fragments', () => { @@ -37,3 +43,60 @@ describe('Javadoc search-index URLs', () => { expect(javadocSymbols(packages, [{ ...type[0], m: 'two' }], [])[0].uri).toBe('two/example/shared/Type.html') }) }) + +describe('Javadoc

 blocks keep their own indentation', () => {
+  const code = 'try (Server server = Server.open(config)) {\n    Session mine = server.sessions().stream()\n            .filter(session -> session.id().equals(id))\n            .findFirst();\n}'
+
+  it('removes only the comment margin and the block\'s common indent', () => {
+    expect(parseJavadoc(`Summary.\n\n
{@code\n${code}\n}
`).doc.examples).toEqual([{ lang: 'java', code, intro: undefined }]) + // The same block indented as a whole loses that shared indent and nothing else. + const shared = code.split('\n').map((line) => ` ${line}`).join('\n') + expect(parseJavadoc(`Summary.\n\n
{@code\n${shared}\n}
`).doc.examples?.[0]?.code).toBe(code) + }) + + it('keeps the indentation of a first line that is indented and of blank lines between statements', () => { + expect(parseJavadoc('Summary.\n\n
{@code\n    first();\n\n        nested();\n    last();\n}
').doc.examples?.[0]?.code) + .toBe('first();\n\n nested();\nlast();') + expect(javadocToMarkdown('
{@code\n  a\n\n  b\n}
')).toContain('```java\na\n\nb\n```') + }) + + it('still reflows prose and leaves an unindented block as it was', () => { + const doc = parseJavadoc('First line of the summary\nwraps here.\n\n

A second paragraph\nthat wraps.\n\n

{@code\nplain();\n}
').doc + expect(doc.summary).toBe('First line of the summary wraps here.') + expect(doc.body).toBe('A second paragraph\nthat wraps.') + expect(doc.examples?.[0]?.code).toBe('plain();') + }) + + it('carries the indentation from a source comment through extraction', async () => { + const dir = mkdtempSync(join(tmpdir(), 'javadoc-indentation-')) + try { + const file = join(dir, 'Env.java') + writeFileSync(file, `package example; +/** + * Where a process runs. + * + *
{@code
+ * TmuxEnvironment here = TmuxEnvironment.current().orElseThrow();
+ *
+ * try (Server server = Server.open(here.config())) {
+ *     Session mine = server.sessions().stream()
+ *             .filter(session -> session.id().equals(here.session()))
+ *             .findFirst()
+ *             .orElseThrow();
+ * }
+ * }
+ */ +public final class Env {} +`) + const [symbol] = await extractWithSpec(JAVA, file, 'example') + expect(symbol.doc?.examples?.[0]?.code).toBe(`TmuxEnvironment here = TmuxEnvironment.current().orElseThrow(); + +try (Server server = Server.open(here.config())) { + Session mine = server.sessions().stream() + .filter(session -> session.id().equals(here.session())) + .findFirst() + .orElseThrow(); +}`) + } finally { rmSync(dir, { recursive: true, force: true }) } + }) +}) diff --git a/packages/api-model/test/jvm.test.ts b/packages/api-model/test/jvm.test.ts index a3b38daa6..b335e0f7d 100644 --- a/packages/api-model/test/jvm.test.ts +++ b/packages/api-model/test/jvm.test.ts @@ -79,13 +79,18 @@ extension [F[_]](self: Box[F, String]) { expect(box.signatures[0].typeParams).toEqual(['F', 'A']) expect(map.signatures[0]).toMatchObject({ typeParams: ['F', 'B'], receiver: { name: 'self', type: 'Box[F, String]' } }) const index = new SymbolIndex(model.symbols, (symbol) => `#${symbol.id}`, 'scala') - expect(index.resolve('F', 'class', read)?.href).toBe('#example.Box') - expect(index.resolve('B', 'class', map)?.href).toBe('#example.Box.map') + expect(index.resolve('F', 'class', read)?.href).toBe('#example.Box.type-parameter.F') + expect(index.resolve('B', 'class', map)?.href).toBe('#example.Box.map.type-parameter.B') expect(index.resolve('self', 'any', map)?.href).toBe('#example.Box') expect(index.resolve('UnresolvedType', 'class', map)).toBeUndefined() const signature = map.signatures[0] const spans = index.linkType(signature.raw!, map, signature) - expect(spans.filter((span) => span.link).map((span) => span.text)).toEqual(['Box', 'String']) + expect(spans.filter((span) => span.link && !span.link.typeParameter).map((span) => span.text)).toEqual(['Box', 'String']) + expect(spans.filter((span) => span.link?.typeParameter).map((span) => [span.text, span.link!.href])).toEqual([ + ['F', '#example.Box.map.type-parameter.F'], ['F', '#example.Box.map.type-parameter.F'], + ['B', '#example.Box.map.type-parameter.B'], ['B', '#example.Box.map.type-parameter.B'], + ['F', '#example.Box.map.type-parameter.F'], ['B', '#example.Box.map.type-parameter.B'], + ]) expect(spans.map((span) => span.text).join('')).toBe(signature.raw) }) it('links the types in an overload while leaving its bindings plain', async () => { diff --git a/packages/api-model/test/nearest.test.ts b/packages/api-model/test/nearest.test.ts index 23c066e0b..ba6f9bb25 100644 --- a/packages/api-model/test/nearest.test.ts +++ b/packages/api-model/test/nearest.test.ts @@ -86,7 +86,9 @@ it('links Julia types after annotations without linking declaration names', () = expect(spans.map((span) => span.text).join('')).toBe(signature.raw) expect(spans.filter((span) => span.link).map((span) => span.link?.href)).toEqual([ '/LibTmux.Server/#LibTmux.Server.parameter.value', '/LibTmux.TmuxID/', + '/LibTmux.Server/#LibTmux.Server.type-parameter.K', '/LibTmux.Server/#LibTmux.Server.parameter.socket_path', + '/LibTmux.Server/#LibTmux.Server.type-parameter.K', ]) expect(spans.filter((span) => span.declaration).map((span) => span.text)).toEqual(['Server', 'value', 'K', 'socket_path', 'K']) expect(spans.find((span) => span.text === 'where')?.keyword).toBe(true) diff --git a/packages/api-model/test/overloads.test.ts b/packages/api-model/test/overloads.test.ts new file mode 100644 index 000000000..16dc16f82 --- /dev/null +++ b/packages/api-model/test/overloads.test.ts @@ -0,0 +1,284 @@ +import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs' +import { tmpdir } from 'node:os' +import { dirname, join } from 'node:path' +import { fileURLToPath } from 'node:url' +import { afterEach, describe, expect, it } from 'vitest' +import { extractDoxygen } from '../src/languages/doxygen.ts' +import { extractJvm } from '../src/languages/jvm.ts' +import { extractWithSpec } from '../src/languages/spec.ts' +import { CSHARP, JAVA, RUST, TYPESCRIPT } from '../src/languages/specs.ts' +import { extractSymbolGraph } from '../src/languages/symbolgraph.ts' +import type { ApiModel, ApiSymbol, PortSlug } from '../src/model.ts' +import { canOverload, misplacedOverloads } from '../src/overloads.ts' +import { extractProject } from '../src/project.ts' + +const here = dirname(fileURLToPath(import.meta.url)) +const DATA = join(here, '../../../site/src/data/api') + +const dirs: string[] = [] +afterEach(() => { + for (const dir of dirs.splice(0)) rmSync(dir, { recursive: true, force: true }) +}) + +/** A source tree on disk: `files` maps a relative path to its text. */ +function tree(files: Record): string { + const root = mkdtempSync(join(tmpdir(), 'overload-')) + dirs.push(root) + for (const [name, text] of Object.entries(files)) { + mkdirSync(dirname(join(root, name)), { recursive: true }) + writeFileSync(join(root, name), text) + } + return root +} + +/** One file through a language spec, the way a single-file port extracts it. */ +async function oneFile(spec: Parameters[0], name: string, module: string, text: string) { + return extractWithSpec(spec, join(tree({ [name]: text }), name), module) +} + +/** A whole source tree through the project pass, which merges across files. */ +async function project(port: PortSlug, files: Record) { + return (await extractProject({ port, root: tree(files), revision: 'test' })).symbols +} + +const get = (symbols: ApiSymbol[], id: string): ApiSymbol => { + const found = symbols.find((symbol) => symbol.id === id) + if (!found) throw new Error(`no ${id} in ${symbols.map((symbol) => symbol.id).join(', ')}`) + return found +} + +describe('the rule', () => { + const symbol = (kind: ApiSymbol['kind'], signatures: number, modifiers: ApiSymbol['modifiers'] = ['overload']): ApiSymbol => ({ + id: `m.${kind}`, name: kind, kind, modifiers, + signatures: Array.from({ length: signatures }, () => ({ params: [] })), + source: { file: 'm.ts' }, + }) + + it('allows a callable with several signatures and nothing else', () => { + expect(canOverload(symbol('method', 2))).toBe(true) + expect(canOverload(symbol('function', 3))).toBe(true) + expect(canOverload(symbol('method', 1))).toBe(false) + for (const kind of ['class', 'struct', 'enum', 'interface', 'trait', 'attribute', 'property', 'module'] as const) { + expect(canOverload(symbol(kind, 2)), kind).toBe(false) + } + }) + + it('names a type, and a callable with one signature, that claims to be an overload set', () => { + const planted = [symbol('struct', 0), symbol('class', 2), symbol('attribute', 1), symbol('method', 1)] + expect(misplacedOverloads([...planted, symbol('method', 2), symbol('function', 2), symbol('struct', 0, [])])) + .toEqual(planted) + }) +}) + +describe('Rust types written as a declaration and its impl blocks', () => { + it('keeps one struct and one enum without an overload, however many impls they have', async () => { + const symbols = await oneFile(RUST, 'session.rs', 'session', ` +/// A tmux session. +pub struct Session { pub id: u32 } +impl Session { pub fn name(&self) -> String { todo!() } } +impl Clone for Session { fn clone(&self) -> Self { todo!() } } +/// How a pane splits. +pub enum Direction { Left, Right } +impl Direction { pub fn flip(&self) -> Self { todo!() } } +`) + expect(get(symbols, 'session.Session')).toMatchObject({ kind: 'struct', doc: { summary: 'A tmux session.' } }) + expect(get(symbols, 'session.Direction').kind).toBe('enum') + expect(get(symbols, 'session.Session.name').kind).toBe('method') + expect(misplacedOverloads(symbols)).toEqual([]) + }) + + it.each([ + ['impl blocks sort after the declaration', 'a_declaration.rs', 'b_impls.rs'], + ['impl blocks sort before the declaration', 'b_declaration.rs', 'a_impls.rs'], + ])('keeps a type whose impl blocks live in another file without an overload when %s', async (_, declaration, impls) => { + const symbols = await project('rs', { + [declaration]: '/// A tmux session.\npub struct Session { pub id: u32 }\n', + [impls]: 'impl Session { pub fn name(&self) -> String { todo!() } }\nimpl Clone for Session { fn clone(&self) -> Self { todo!() } }\n', + }) + expect(symbols.filter((symbol) => symbol.name === 'Session')).toHaveLength(1) + expect(symbols.some((symbol) => symbol.name === 'name' && symbol.kind === 'method')).toBe(true) + expect(misplacedOverloads(symbols)).toEqual([]) + }) +}) + +describe('TypeScript declaration merging', () => { + it('keeps a class and the interface that merges into it without an overload', async () => { + const symbols = await oneFile(TYPESCRIPT, 'client.ts', 'client', ` +/** A tmux client. */ +export class Client { run(): void {} } +export interface Client extends AliasedFields {} +`) + expect(get(symbols, 'client.Client')).toMatchObject({ kind: 'class', doc: { summary: 'A tmux client.' } }) + expect(misplacedOverloads(symbols)).toEqual([]) + }) + + it('keeps a static and an instance property of one name without an overload', async () => { + const symbols = await oneFile(TYPESCRIPT, 'errors.ts', 'errors', ` +export class LibTmuxError extends Error { + static readonly code: string = "LibTmuxError"; + readonly code: string; +} +`) + expect(get(symbols, 'errors.LibTmuxError.code').kind).toBe('attribute') + expect(misplacedOverloads(symbols)).toEqual([]) + }) + + it('keeps the overload on a function and a method declared with several signatures', async () => { + const symbols = await oneFile(TYPESCRIPT, 'panes.ts', 'panes', ` +export function pick(key: string): string; +export function pick(key: number): number; +export function pick(key: string | number): string | number { return key; } +export class Pane { + send(keys: string): void; + send(count: number): void; + send(what: string | number): void {} +} +`) + for (const id of ['panes.pick', 'panes.Pane.send']) { + expect(get(symbols, id).signatures.length, id).toBeGreaterThan(1) + expect(get(symbols, id).modifiers, id).toContain('overload') + } + expect(get(symbols, 'panes.Pane').modifiers).not.toContain('overload') + }) +}) + +describe('C# types that share a name', () => { + it('keeps a type and its generic arity variant in one file without an overload', async () => { + const symbols = await oneFile(CSHARP, 'WorkspaceAction.cs', 'LibTmux', `namespace LibTmux; +/// An action. +public class WorkspaceAction { } +public sealed class WorkspaceAction : WorkspaceAction where TRequest : notnull { } +`) + expect(get(symbols, 'LibTmux.WorkspaceAction')).toMatchObject({ kind: 'class', doc: { summary: 'An action.' } }) + expect(misplacedOverloads(symbols)).toEqual([]) + }) + + it('keeps records that share a name across files without an overload, and both constructors', async () => { + const symbols = await project('csharp', { + 'Result.cs': 'namespace LibTmux;\npublic record Result(int Code);\n', + 'ResultOfT.cs': 'namespace LibTmux;\npublic record Result(T Value);\n', + }) + const result = get(symbols, 'LibTmux.Result') + expect(result.kind).toBe('class') + expect(result.signatures.map((signature) => signature.params.map((param) => param.type))).toEqual([['int'], ['T']]) + expect(misplacedOverloads(symbols)).toEqual([]) + }) + + it('keeps the overload on a method declared in two parts of a partial class', async () => { + const symbols = await project('csharp', { + 'Pane.cs': 'namespace LibTmux;\npublic partial class Pane { public void Send(string keys) { } }\n', + 'Pane.Keys.cs': 'namespace LibTmux;\npublic partial class Pane { public void Send(int count) { } }\n', + }) + expect(get(symbols, 'LibTmux.Pane.Send')).toMatchObject({ kind: 'method', modifiers: ['overload'] }) + expect(get(symbols, 'LibTmux.Pane.Send').signatures).toHaveLength(2) + expect(get(symbols, 'LibTmux.Pane').modifiers).not.toContain('overload') + }) +}) + +describe('Java members that share a name', () => { + it('keeps a field and the accessor named after it without an overload', async () => { + const symbols = await oneFile(JAVA, 'FakeWindow.java', 'FakeWindow', `package io.github.libtmux.junit5; +final class FakeWindow { + boolean active; + FakePane active() { return null; } +} +`) + expect(symbols.filter((symbol) => symbol.name === 'active').map((symbol) => symbol.kind)).toEqual(['attribute']) + expect(misplacedOverloads(symbols)).toEqual([]) + }) + + it('keeps the overload on methods declared with several signatures', async () => { + const symbols = await oneFile(JAVA, 'Pane.java', 'Pane', `package io.github.libtmux; +public final class Pane { + public void send(String keys) { } + public void send(int count) { } + public void close() { } +} +`) + expect(get(symbols, 'Pane.Pane.send')).toMatchObject({ kind: 'method', modifiers: ['overload'] }) + expect(get(symbols, 'Pane.Pane.close').modifiers).toEqual([]) + expect(get(symbols, 'Pane.Pane').modifiers).not.toContain('overload') + }) +}) + +describe('Kotlin declarations merged across source sets', () => { + it('keeps an expect class and its actual without an overload, and a real overload set with one', async () => { + const root = tree({ + 'Common.kt': 'package example\nexpect class Platform { fun name(): String }\n', + 'Jvm.kt': 'package example\nactual class Platform { actual fun name(): String = "jvm" }\n', + 'Pane.kt': 'package example\nclass Pane {\n fun send(keys: String) {}\n fun send(count: Int) {}\n fun close() {}\n}\n', + }) + const { symbols } = await extractJvm('kotlin', [root]) + expect(get(symbols, 'example.Platform').modifiers).not.toContain('overload') + expect(get(symbols, 'example.Pane.send')).toMatchObject({ kind: 'method', modifiers: ['overload'] }) + expect(get(symbols, 'example.Pane.close').modifiers).toEqual([]) + }) +}) + +describe('C++ names shared by a type and a function', () => { + it('keeps a struct and a same-named function without an overload, and real overloads with one', () => { + const xml = tree({ + 'a_struct.xml': `sample::Result + `, + 'b_namespace.xml': `sample + ResultResult sample::Resultsample::ResultResult(int code)intcode + ResultResult sample::Resultsample::ResultResult(bool ok)boolok + voidvoid sample::runsample::runrun(int count)intcount + voidvoid sample::runsample::runrun(bool now)boolnow + `, + }) + const symbols = extractDoxygen(xml) + expect(get(symbols, 'sample::Result').kind).toBe('struct') + expect(get(symbols, 'sample::run')).toMatchObject({ kind: 'function', modifiers: ['overload'] }) + expect(misplacedOverloads(symbols)).toEqual([]) + }) +}) + +describe('Swift names shared by a type and a function', () => { + it('keeps a struct and its same-named functions without an overload, and real overloads with one', () => { + const fn = (precise: string, title: string, parameter: string) => ({ + identifier: { precise }, kind: { identifier: 'swift.func' }, pathComponents: [title], accessLevel: 'public', + names: { title }, + functionSignature: { parameters: [{ name: 'value', declarationFragments: [{ kind: 'typeIdentifier', spelling: parameter }] }], returns: [] }, + }) + const root = tree({ + 'Thing.symbols.json': JSON.stringify({ + symbols: [ + { identifier: { precise: 'thing' }, kind: { identifier: 'swift.struct' }, pathComponents: ['Thing'], accessLevel: 'public', names: { title: 'Thing' } }, + fn('thing-int', 'Thing', 'Int'), fn('thing-string', 'Thing', 'String'), + fn('run-int', 'run', 'Int'), fn('run-string', 'run', 'String'), + ], + relationships: [], + }), + }) + const symbols = extractSymbolGraph([join(root, 'Thing.symbols.json')]) + expect(get(symbols, 'Thing').kind).toBe('struct') + expect(get(symbols, 'run')).toMatchObject({ kind: 'function', modifiers: ['overload'] }) + expect(misplacedOverloads(symbols)).toEqual([]) + }) +}) + +describe('the committed models', () => { + const ports = [ + 'py', 'ruby', 'lua', 'ts', 'rs', 'go', 'java', 'csharp', 'cxx', 'swift', + 'kotlin', 'scala', 'fsharp', 'powershell', 'julia', + ] as const + const models = ports.flatMap((port) => { + const path = join(DATA, `${port}.json`) + return existsSync(path) ? [[port, JSON.parse(readFileSync(path, 'utf8')) as ApiModel] as const] : [] + }) + + it.each(models)('%s marks no type, field or lone signature as an overload', (_, model) => { + expect(misplacedOverloads(model.symbols).map((symbol) => `${symbol.kind} ${symbol.id}`)).toEqual([]) + }) + + it.each(['ts', 'java', 'csharp', 'cxx', 'swift', 'kotlin', 'scala'] as const)( + '%s still marks its real overload sets', + (port) => { + const model = models.find(([name]) => name === port)?.[1] + const marked = model?.symbols.filter((symbol) => symbol.modifiers.includes('overload')) ?? [] + expect(marked.length).toBeGreaterThan(0) + expect(marked.every((symbol) => canOverload(symbol))).toBe(true) + }, + ) +}) diff --git a/packages/api-model/test/python-docs.test.ts b/packages/api-model/test/python-docs.test.ts index df754ddb5..897aebb60 100644 --- a/packages/api-model/test/python-docs.test.ts +++ b/packages/api-model/test/python-docs.test.ts @@ -215,7 +215,8 @@ describe('source-scoped Python typing bindings', () => { const spans = index.linkType('t.Generic[T]', symbol) expect(spans.map((span) => span.text).join('')).toBe('t.Generic[T]') expect(spans.find((span) => span.text === 't.Generic')?.link?.href).toBe('https://docs.python.org/3/library/typing.html#typing.Generic') - expect(spans.find((span) => span.text === 'T')?.link).toBeUndefined() + // `T` is the class's own variable, so it links to that declaration and nowhere else. + expect(spans.find((span) => span.text === 'T')?.link?.href).toBe('#example.QueryList.type-parameter.T') }) it('keeps aliases scoped to imports and invalidates rebound names', async () => { diff --git a/packages/api-model/test/rust.test.ts b/packages/api-model/test/rust.test.ts index 6ca772c13..08843f137 100644 --- a/packages/api-model/test/rust.test.ts +++ b/packages/api-model/test/rust.test.ts @@ -102,8 +102,11 @@ describe('Rust enum payload fields', () => { expect(spans.find((span) => span.text === 'Output')).toMatchObject({ declaration: true }) expect(spans.find((span) => span.text === 'pane')?.link?.symbol?.id).toBe('query.Event.Output.pane') expect(spans.find((span) => span.text === 'PaneId')?.link?.symbol?.id).toBe('query.PaneId') - expect(spans.find((span) => span.text === 'T')?.link).toBeUndefined() - expect(index.linkType(field.type!, field).find((span) => span.text === 'T')?.link).toBeUndefined() + // The enum's own T, not the unrelated `pub struct T`. + expect(spans.find((span) => span.text === 'T')?.link).toMatchObject({ + href: '/reference/query-event/#query.Event.type-parameter.T', typeParameter: { owner: { id: 'query.Event' } }, + }) + expect(index.linkType(field.type!, field).find((span) => span.text === 'T')?.link?.typeParameter?.owner.id).toBe('query.Event') expect(index.resolve('Output.pane', 'any', symbols.find((symbol) => symbol.name === 'Event'))?.symbol?.id).toBe('query.Event.Output.pane') expect(index.resolve('query.Event.Tuple.0')?.symbol?.name).toBe('0') }) diff --git a/packages/api-model/test/type-parameters.test.ts b/packages/api-model/test/type-parameters.test.ts new file mode 100644 index 000000000..16b1294dc --- /dev/null +++ b/packages/api-model/test/type-parameters.test.ts @@ -0,0 +1,549 @@ +import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs' +import { tmpdir } from 'node:os' +import { join } from 'node:path' +import { afterEach, describe, expect, it } from 'vitest' +import { tokenizeDoc } from '../src/doc/roles.ts' +import { extractDoxygen } from '../src/languages/doxygen.ts' +import { extractJvm } from '../src/languages/jvm.ts' +import { extractPython } from '../src/languages/python.ts' +import { extractWithSpec } from '../src/languages/spec.ts' +import { CSHARP, GO, JAVA, RUST, TYPESCRIPT } from '../src/languages/specs.ts' +import { extractSymbolGraph } from '../src/languages/symbolgraph.ts' +import { SymbolIndex } from '../src/link.ts' +import type { ApiSymbol, Signature, SymbolKind } from '../src/model.ts' +import { parseTypeParameter, parseTypeParameters, typeParameterList, typeParametersOf } from '../src/type-params.ts' + +const dirs: string[] = [] +afterEach(() => { + for (const dir of dirs.splice(0)) rmSync(dir, { recursive: true, force: true }) +}) +const scratch = () => { + const dir = mkdtempSync(join(tmpdir(), 'type-parameters-')) + dirs.push(dir) + return dir +} + +async function extractSpec(spec: Parameters[0], file: string, source: string, module = 'example') { + const path = join(scratch(), file) + writeFileSync(path, source) + return extractWithSpec(spec, path, module) +} + +/** A same-named global that a bound type parameter must never link to. */ +const decoy = (id: string, kind: SymbolKind = 'class'): ApiSymbol => ({ + id, publicId: id, name: id.split(/[.:]+/).at(-1)!, kind, modifiers: [], signatures: [], source: { file: 'decoy' }, +}) +const indexOf = (symbols: ApiSymbol[], lang: string) => new SymbolIndex(symbols, (entry) => `/${entry.id}/`, lang) +const find = (symbols: ApiSymbol[], id: string) => symbols.find((entry) => entry.id === id)! +const hrefs = (parts: ReturnType, name: string) => + parts.filter((part) => part.text === name).map((part) => part.link?.href) +const anchor = (owner: string, name: string) => `/${owner}/#${encodeURIComponent(`${owner}.type-parameter.${name}`)}` + +describe('type parameter declarations, read apart', () => { + it.each([ + ['ts', 'const in out Model extends Foo = Bar', [{ name: 'Model', modifier: 'const in out', bound: 'Foo', default: 'Bar' }]], + ['ts', '$Pane extends Model', [{ name: '$Pane', bound: 'Model' }]], + ['rs', "'a: 'b + 'c", [{ name: "'a", kind: 'lifetime', bound: "'b + 'c" }]], + ['rs', 'T: Iterator + Send = Vec', [{ name: 'T', bound: 'Iterator + Send', default: 'Vec' }]], + ['rs', 'const N: usize = 3', [{ name: 'N', modifier: 'const', kind: 'const', bound: 'usize', default: '3' }]], + ['go', 'K, V comparable', [{ name: 'K', bound: 'comparable' }, { name: 'V', bound: 'comparable' }]], + ['go', 'T interface{ ~string | ~[]byte }', [{ name: 'T', bound: 'interface{ ~string | ~[]byte }' }]], + ['java', '@Mark T extends Bound & Comparable', [{ name: 'T', bound: 'Bound & Comparable' }]], + ['csharp', 'out T', [{ name: 'T', modifier: 'out' }]], + ['kotlin', 'reified T : Comparable', [{ name: 'T', modifier: 'reified', bound: 'Comparable' }]], + ['scala', '+A <: Other', [{ name: 'A', modifier: '+', bound: 'Other' }]], + ['scala', 'F[_]', [{ name: 'F' }]], + ['swift', 'each T', [{ name: 'T', modifier: 'each' }]], + ['cxx', 'typename... Ts', [{ name: 'Ts', modifier: '...' }]], + ['cxx', 'std::integral Integer', [{ name: 'Integer', bound: 'std::integral' }]], + ['cxx', 'std::size_t N = 3', [{ name: 'N', kind: 'const', bound: 'std::size_t', default: '3' }]], + ['julia', 'I<:LibTmux.EntityID', [{ name: 'I', bound: 'LibTmux.EntityID' }]], + ['julia', ':session', []], + ['julia', 'LibTmux.BufferID', []], + ['ruby', 'unchecked out T < Foo = Bar', [{ name: 'T', modifier: 'out', bound: 'Foo', default: 'Bar' }]], + ['py', 'T: int = str', [{ name: 'T', bound: 'int', default: 'str' }]], + ['py', '**P', [{ name: 'P', modifier: '**' }]], + ])('reads %s `%s`', (lang, text, expected) => { + expect(parseTypeParameter(lang, text)).toEqual(expected) + }) + + it('keeps one entry per name and the brackets of the language', () => { + expect(parseTypeParameters('ts', ['T', 'T extends X', 'U'])).toEqual([{ name: 'T' }, { name: 'U' }]) + const list = parseTypeParameters('go', ['K comparable', 'V any']) + expect(typeParameterList('go', list)).toBe('[K, V]') + expect(typeParameterList('julia', list)).toBe('{K, V}') + expect(typeParameterList('ts', list)).toBe('') + }) + + it('derives the list from older models that stored only the text or only the names', () => { + expect(typeParametersOf({ typeParams: ['Narrowed extends Model'] }, 'ts')).toEqual([{ name: 'Narrowed', bound: 'Model' }]) + expect(typeParametersOf({ typeParamNames: ['T', 'R'] }, 'java')).toEqual([{ name: 'T' }, { name: 'R' }]) + expect(typeParametersOf({ typeParams: ['I<:Id'], kind: 'typealias' }, 'julia')).toEqual([]) + const stored = [{ name: 'Model', doc: 'The element type.' }] + expect(typeParametersOf({ typeParameters: stored, typeParams: ['Other'] }, 'ts')).toBe(stored) + }) +}) + +describe('TypeScript', () => { + const source = `/** + * An immutable set. + * + * @typeParam Model - The element type. Each member is a handle. + */ +export interface Selection extends Iterable { + /** Keep the members matching declarative criteria. */ + where(criteria: WhereOf): Selection; + /** + * Narrow by predicate. + * + * @typeParam Narrowed - What the predicate proves. + */ + filter(predicate: (member: Model) => member is Narrowed): Selection; + readonly first: Model | undefined; + /** Keeps the \`Model\` members it was given. */ + static pick(): void; +} +export type WhereOf = WhereForKind>; +` + const extract = () => extractSpec(TYPESCRIPT, 'selection.ts', source, 'selection') + + it('records interface and alias parameters with bounds, defaults and TSDoc', async () => { + const symbols = await extract() + expect(find(symbols, 'selection.Selection').typeParameters).toEqual([ + { name: 'Model', modifier: 'const', bound: 'Handle', default: 'Pane', doc: 'The element type. Each member is a handle.' }, + ]) + expect(find(symbols, 'selection.WhereOf').typeParameters).toEqual([{ name: 'Model' }]) + expect(find(symbols, 'selection.Selection.filter').signatures[0].typeParameters).toEqual([ + { name: 'Narrowed', bound: 'Model', doc: 'What the predicate proves.' }, + ]) + }) + + it('links Model in Selection.where to the interface, not to a global Model', async () => { + const symbols = [...await extract(), decoy('types.Model'), decoy('types.Narrowed')] + const index = indexOf(symbols, 'ts') + const where = find(symbols, 'selection.Selection.where') + const text = 'where(criteria: WhereOf): Selection' + const parts = index.linkType(text, where, where.signatures[0]) + expect(parts.map((part) => part.text).join('')).toBe(text) + expect(hrefs(parts, 'Model')).toEqual([anchor('selection.Selection', 'Model'), anchor('selection.Selection', 'Model')]) + expect(parts.filter((part) => part.text === 'Model').every((part) => part.link?.typeParameter?.owner.id === 'selection.Selection')).toBe(true) + expect(hrefs(parts, 'WhereOf')).toEqual(['/selection.WhereOf/']) + // The link is a type parameter, so it never claims the declaring type is what the name refers to. + expect(parts.find((part) => part.text === 'Model')?.link?.symbol).toBeUndefined() + }) + + it('links a callable parameter on its own page and the enclosing one on the owner page', async () => { + const symbols = [...await extract(), decoy('types.Model')] + const index = indexOf(symbols, 'ts') + const filter = find(symbols, 'selection.Selection.filter') + const parts = index.linkType('filter(predicate: (member: Model) => member is Narrowed): Selection', filter, filter.signatures[0]) + expect(hrefs(parts, 'Narrowed')).toEqual(Array(3).fill(anchor('selection.Selection.filter', 'Narrowed'))) + expect(hrefs(parts, 'Model')).toEqual([anchor('selection.Selection', 'Model'), anchor('selection.Selection', 'Model')]) + }) + + it('links code literals in prose to the same anchor', async () => { + const symbols = [...await extract(), decoy('types.Model')] + const index = indexOf(symbols, 'ts') + const where = find(symbols, 'selection.Selection.where') + expect(index.resolve('Model', 'any', where)?.href).toBe(anchor('selection.Selection', 'Model')) + const [span] = index.linkText('`Model`', where) + expect(span).toMatchObject({ kind: 'ref', link: { href: anchor('selection.Selection', 'Model') } }) + // Outside the declaration's scope the name is an ordinary reference again. + expect(index.resolve('Model', 'any', find(symbols, 'selection.WhereOf'))?.href).toBe(anchor('selection.WhereOf', 'Model')) + expect(index.resolve('Model', 'any')?.href).toBe('/types.Model/') + }) + + it('lists the enclosing parameters a member uses, including those of its property type', async () => { + const symbols = await extract() + const index = indexOf(symbols, 'ts') + const used = (id: string) => index.inheritedTypeParameters(find(symbols, id)).map((entry) => [entry.owner.id, entry.parameter.name, entry.href]) + expect(used('selection.Selection.where')).toEqual([['selection.Selection', 'Model', anchor('selection.Selection', 'Model')]]) + expect(used('selection.Selection.first')).toEqual([['selection.Selection', 'Model', anchor('selection.Selection', 'Model')]]) + expect(used('selection.Selection')).toEqual([]) + }) +}) + +describe('Rust', () => { + const source = `pub struct Slot> where T: Send { pub value: T } +pub trait Matcher<'a, T> { fn matches(&self, value: &'a T) -> bool; } +pub type Alias = Vec; +impl Slot> { + /// Read it. + pub fn get(&self) -> U { self.value.clone() } + pub fn convert U>(&self, f: F) -> F::Output where F: Sized {} +} +impl From for Slot> { + pub fn from_t(value: T) -> Self {} +} +pub struct T; +` + const extract = () => extractSpec(RUST, 'query.rs', source, 'query') + + it('records struct, trait and alias parameters with where-clause bounds and defaults', async () => { + const symbols = await extract() + expect(find(symbols, 'query.Slot').typeParameters).toEqual([{ name: 'T', bound: 'Clone + Send' }, { name: 'V', default: 'Vec' }]) + expect(find(symbols, 'query.Matcher').typeParameters).toEqual([{ name: "'a", kind: 'lifetime' }, { name: 'T' }]) + expect(find(symbols, 'query.Alias').typeParameters).toEqual([{ name: 'T' }]) + expect(find(symbols, 'query.Slot.convert').signatures[0].typeParameters).toEqual([{ name: 'F', bound: 'Fn(U) -> U + Sized' }]) + }) + + it('binds an impl by its self type, so a renamed parameter links and an unrelated one does not', async () => { + const symbols = await extract() + const index = indexOf(symbols, 'rs') + const get = find(symbols, 'query.Slot.get') + // `U` is the impl's spelling of the struct's `T`, which is not the unit struct `T`. + expect(hrefs(index.linkType('pub fn get(&self) -> U', get, get.signatures[0]), 'U')).toEqual([anchor('query.Slot', 'T')]) + expect(index.linkType('T', get, get.signatures[0])[0].link?.symbol?.id).toBe('query.T') + const fromT = find(symbols, 'query.Slot.from_t') + // The impl introduces its own `T`; the struct's `T` does not stand in for it. + const unrelated = index.linkType('value: T', fromT, fromT.signatures[0]).find((part) => part.text === 'T')! + expect(unrelated.declaration).toBe(true) + expect(unrelated.link).toBeUndefined() + }) + + it('links an associated type through its parameter', async () => { + const symbols = await extract() + const index = indexOf(symbols, 'rs') + const convert = find(symbols, 'query.Slot.convert') + const parts = index.linkType('F::Output', convert, convert.signatures[0]) + expect(parts.map((part) => part.text)).toEqual(['F', '::Output']) + expect(parts[0].link?.href).toBe(anchor('query.Slot.convert', 'F')) + }) + + it('links a field type to its struct parameter instead of the unit struct of the same name', async () => { + const symbols = await extract() + const index = indexOf(symbols, 'rs') + const value = find(symbols, 'query.Slot.value') + expect(hrefs(index.linkType(value.type!, value), 'T')).toEqual([anchor('query.Slot', 'T')]) + }) +}) + +describe('Go', () => { + const source = `package tmux +// Set holds comparable values. +type Set[K comparable, V, W any] struct{ m map[K]V } +// Add inserts one value. +func (s *Set[A, B, C]) Add(v A, w C) {} +func Ptr[T any](v T) *T { return &v } +type T struct{} +` + const extract = () => extractSpec(GO, 'set.go', source, 'tmux') + + it('records one parameter per name with its constraint', async () => { + const symbols = await extract() + expect(find(symbols, 'tmux.Set').typeParameters).toEqual([ + { name: 'K', bound: 'comparable' }, { name: 'V', bound: 'any' }, { name: 'W', bound: 'any' }, + ]) + expect(find(symbols, 'tmux.Ptr').signatures[0].typeParameters).toEqual([{ name: 'T', bound: 'any' }]) + }) + + it('binds a receiver by position to the type it names', async () => { + const symbols = await extract() + const index = indexOf(symbols, 'go') + const add = find(symbols, 'tmux.Set.Add') + expect(hrefs(index.linkType('func (s *Set[A, B, C]) Add(v A, w C)', add, add.signatures[0]), 'A')).toEqual([anchor('tmux.Set', 'K'), anchor('tmux.Set', 'K')]) + expect(hrefs(index.linkType('w C', add, add.signatures[0]), 'C')).toEqual([anchor('tmux.Set', 'W')]) + const ptr = find(symbols, 'tmux.Ptr') + expect(hrefs(index.linkType('func Ptr[T any](v T) *T', ptr, ptr.signatures[0]), 'T')).toEqual(Array(3).fill(anchor('tmux.Ptr', 'T'))) + }) +}) + +describe('Java', () => { + const source = `package example; +/** + * A box. + * + * @param the content type + * @param the result type + */ +public class Box<@Mark T extends Bound & Comparable, R> { + /** Maps it. @param the mapped type */ + public U map(T value) { return null; } + public static T rebound(T value) { return value; } + public static Bound unbound(T value) { return null; } +} +public class T {} +public class Bound {} +` + const extract = () => extractSpec(JAVA, 'Box.java', source) + + it('reads bounds and the Javadoc parameter tags', async () => { + const symbols = await extract() + expect(find(symbols, 'example.Box').typeParameters).toEqual([ + { name: 'T', bound: 'Bound & Comparable', doc: 'the content type' }, + { name: 'R', doc: 'the result type' }, + ]) + }) + + it('links the class variable in a member and keeps a static member out of its scope', async () => { + const symbols = await extract() + const index = indexOf(symbols, 'java') + const map = find(symbols, 'example.Box.map') + expect(hrefs(index.linkType('T', map, map.signatures[0]), 'T')).toEqual([anchor('example.Box', 'T')]) + const rebound = find(symbols, 'example.Box.rebound') + expect(hrefs(index.linkType('T', rebound, rebound.signatures[0]), 'T')).toEqual([anchor('example.Box.rebound', 'T')]) + const unbound = find(symbols, 'example.Box.unbound') + expect(index.linkType('T', unbound, unbound.signatures[0])[0].link?.symbol?.id).toBe('example.T') + }) + + it('links {@link T} in prose to the variable', async () => { + const symbols = await extract() + const index = indexOf(symbols, 'java') + const map = find(symbols, 'example.Box.map') + const [, span] = index.linkText('See {@link T}.', map) + expect(span).toMatchObject({ kind: 'ref', link: { href: anchor('example.Box', 'T') } }) + }) +}) + +describe('C#', () => { + const source = `namespace Example; +/// A handle. +/// The kind of object it points at. +/// Unused. +public class Handle where T : class, new() where U : IDisposable +{ + /// Gets and . + /// The projection. + public T Get(V value) where V : struct { return default; } +} +public class T {} +` + const extract = () => extractSpec(CSHARP, 'Handle.cs', source, 'Example') + + it('merges where-clause constraints and the typeparam tags', async () => { + const symbols = await extract() + expect(find(symbols, 'Example.Handle').typeParameters).toEqual([ + { name: 'T', modifier: 'in', bound: 'class, new()', doc: 'The kind of object it points at.' }, + { name: 'U', modifier: 'out', bound: 'IDisposable', doc: 'Unused.' }, + ]) + expect(find(symbols, 'Example.Handle.Get').signatures[0].typeParameters).toEqual([{ name: 'V', bound: 'struct', doc: 'The projection.' }]) + }) + + it('does not read the arguments of a base type as the type\'s own parameters', async () => { + // The grammar recovers from `record struct X : IParsable` by reading `` as a parameter list. + const symbols = await extractSpec(CSHARP, 'PaneId.cs', `namespace Example; +public readonly record struct PaneId : IComparable, IParsable +{ + public static PaneId Parse(string text) => default; +} +public class Box : Base { } +`, 'Example') + expect(find(symbols, 'Example.PaneId').typeParameters).toBeUndefined() + expect(find(symbols, 'Example.PaneId').typeParams).toBeUndefined() + expect(find(symbols, 'Example.Box').typeParameters).toEqual([{ name: 'T' }]) + const index = indexOf(symbols, 'csharp') + const parse = find(symbols, 'Example.PaneId.Parse') + expect(index.linkType('PaneId Parse(string text)', parse, parse.signatures[0]).find((part) => part.text === 'PaneId')?.link?.symbol?.id).toBe('Example.PaneId') + }) + + it('reads typeparamref as a type-parameter reference that never falls back to a global', async () => { + const symbols = await extract() + const get = find(symbols, 'Example.Handle.Get') + const tokens = tokenizeDoc(get.doc!.summary, 'csharp') + expect(tokens.filter((span) => span.kind === 'ref').map((span) => span.kind === 'ref' && [span.role, span.target])).toEqual([['typeparam', 'T'], ['typeparam', 'Missing']]) + const index = indexOf([...symbols, decoy('Example.Missing')], 'csharp') + const linked = index.linkText(get.doc!.summary, get) + expect(linked.find((span) => span.kind === 'ref')).toMatchObject({ link: { href: anchor('Example.Handle', 'T') } }) + expect(linked.filter((span) => span.kind === 'code')).toEqual([{ kind: 'code', text: 'Missing' }]) + expect(hrefs(index.linkType('T Get(V value)', get, get.signatures[0]), 'T')).toEqual([anchor('Example.Handle', 'T')]) + }) +}) + +describe('Kotlin and Scala', () => { + it('reads Scala bounds, variance and Scaladoc tags and links the class parameter in a member', async () => { + const root = scratch() + writeFileSync(join(root, 'Box.scala'), `package example +/** A box. + * @tparam F the effect + * @tparam A the content + */ +class Box[F[_], +A <: Other, C : Ordering](val value: A) { + def read: F[A] = TODO +} +class A +`) + const { symbols } = await extractJvm('scala', [root]) + expect(find(symbols, 'example.Box').signatures[0].typeParameters).toEqual([ + { name: 'F', doc: 'the effect' }, { name: 'A', modifier: '+', bound: 'Other', doc: 'the content' }, { name: 'C', bound: ': Ordering' }, + ]) + const index = indexOf(symbols, 'scala') + const read = find(symbols, 'example.Box.read') + expect(hrefs(index.linkType('def read: F[A]', read, read.signatures[0]), 'A')).toEqual([anchor('example.Box', 'A')]) + }) + + it('reads Kotlin variance, reification and where-clause bounds', async () => { + const root = scratch() + writeFileSync(join(root, 'Box.kt'), `package example +/** A box. + * @param T the content + * @param value the value + */ +class Box, out R, reified Q>(val value: T) where R : Any, R : Foo { + fun get(x: U): U where U : Foo = x +} +`) + const { symbols } = await extractJvm('kotlin', [root]) + expect(find(symbols, 'example.Box').signatures[0].typeParameters).toEqual([ + { name: 'T', modifier: 'in', bound: 'Comparable', doc: 'the content' }, + { name: 'R', modifier: 'out', bound: 'Any, Foo' }, + { name: 'Q', modifier: 'reified' }, + ]) + expect(find(symbols, 'example.Box.get').signatures[0].typeParameters).toEqual([{ name: 'U', bound: 'Any, Foo' }]) + }) +}) + +describe('Python', () => { + const source = `import typing as t +T = t.TypeVar("T", bound="Foo", covariant=True) +U = t.TypeVar("U", int, str) +P = t.ParamSpec("P") + +class QueryList(list[T], t.Generic[T, U]): + def filter(self, matcher: T) -> QueryList[T]: ... + +class Plain(list[T]): + def get(self) -> T | None: ... + +class New[A: int = str, *Ts](Base): + def m[X](self, x: X) -> X: ... + +def free(items: list[T], fn: t.Callable[P, T]) -> T: ... +` + const extract = async () => { + const path = join(scratch(), 'ql.py') + writeFileSync(path, source) + return extractPython(path, 'ql') + } + + it('reads Generic bases, PEP 695 lists and the bounds of module TypeVars', async () => { + const symbols = await extract() + expect(find(symbols, 'ql.QueryList').typeParameters).toEqual([{ name: 'T', bound: 'Foo' }, { name: 'U', bound: 'int | str' }]) + expect(find(symbols, 'ql.Plain').typeParameters).toEqual([{ name: 'T', bound: 'Foo' }]) + expect(find(symbols, 'ql.New').typeParameters).toEqual([{ name: 'A', bound: 'int', default: 'str' }, { name: 'Ts', modifier: '*' }]) + expect(find(symbols, 'ql.New.m').signatures[0].typeParameters).toEqual([{ name: 'X' }]) + }) + + it('binds a variable the class does not own to the function that mentions it', async () => { + const symbols = await extract() + expect(find(symbols, 'ql.free').signatures[0].typeParameters).toEqual([{ name: 'T', bound: 'Foo' }, { name: 'P', modifier: '**' }]) + expect(find(symbols, 'ql.QueryList.filter').signatures[0].typeParameters).toBeUndefined() + }) + + it('links the class variable to the class, not to the module TypeVar constant', async () => { + const symbols = await extract() + const index = indexOf(symbols, 'py') + const filter = find(symbols, 'ql.QueryList.filter') + expect(find(symbols, 'ql.T').kind).toBe('constant') + const parts = index.linkType('QueryList[T]', filter, filter.signatures[0]) + expect(hrefs(parts, 'T')).toEqual([anchor('ql.QueryList', 'T')]) + expect(index.resolve('T', 'any', filter)?.href).toBe(anchor('ql.QueryList', 'T')) + expect(index.resolve('T', 'any')?.href).toBe('/ql.T/') + }) +}) + +describe('C++', () => { + const xml = `sample::Box +typenameTstd::size_tN3ReferenceRangeRange + +typenameUTT sample::Box::getsample::Box::getget(U x)Ux +Gets.Uthe projection + +A box. +Boxes.Tthe content +` + const extract = () => { + const dir = scratch() + writeFileSync(join(dir, 'class.xml'), xml) + return extractDoxygen(dir) + } + + it('reads class and member template lists, concepts, non-type parameters and \\tparam', () => { + const symbols = extract() + expect(find(symbols, 'sample::Box').typeParameters).toEqual([ + { name: 'T', doc: 'the content' }, { name: 'N', kind: 'const', bound: 'std::size_t', default: '3' }, { name: 'Range', bound: 'ReferenceRange' }, + ]) + expect(find(symbols, 'sample::Box::get').signatures[0].typeParameters).toEqual([{ name: 'U', doc: 'the projection' }]) + }) + + it('links the class parameter in a member signature', () => { + const symbols = [...extract(), decoy('sample::T')] + const index = indexOf(symbols, 'cxx') + const get = find(symbols, 'sample::Box::get') + const parts = index.linkType('template \nT get(U x)', get, get.signatures[0]) + expect(hrefs(parts, 'T')).toEqual([anchor('sample::Box', 'T')]) + expect(hrefs(parts, 'U')).toEqual([anchor('sample::Box::get', 'U'), anchor('sample::Box::get', 'U')]) + }) +}) + +describe('Swift', () => { + const graph = (symbols: unknown[]) => { + const dir = scratch() + const file = join(dir, 'Probe.symbols.json') + writeFileSync(file, JSON.stringify({ module: { name: 'Probe' }, symbols })) + return [file] + } + const fragments = (...parts: [string, string][]) => parts.map(([kind, spelling]) => ({ kind, spelling })) + const symbols = () => extractSymbolGraph(graph([ + { + identifier: { precise: 's:5Probe3BoxV' }, kind: { identifier: 'swift.struct' }, pathComponents: ['Box'], names: { title: 'Box' }, accessLevel: 'public', + declarationFragments: fragments(['keyword', 'struct'], ['identifier', 'Box'], ['text', '<'], ['genericParameter', 'T'], ['text', ', '], ['genericParameter', 'U'], ['text', '>']), + swiftGenerics: { parameters: [{ name: 'T', index: 0, depth: 0 }, { name: 'U', index: 1, depth: 0 }], + constraints: [{ kind: 'conformance', lhs: 'T', rhs: 'Hashable' }, { kind: 'conformance', lhs: 'U', rhs: 'Marker' }, { kind: 'sameType', lhs: 'U', rhs: 'Int' }] }, + }, + { + identifier: { precise: 's:5Probe3BoxV3getyxqd__lF' }, kind: { identifier: 'swift.method' }, pathComponents: ['Box', 'get(_:)'], names: { title: 'get(_:)' }, accessLevel: 'public', + functionSignature: { parameters: [{ name: '_', declarationFragments: fragments(['internalParam', 'value'], ['text', ': '], ['typeIdentifier', 'V']) }], returns: fragments(['typeIdentifier', 'T']) }, + declarationFragments: fragments(['keyword', 'func'], ['identifier', 'get'], ['text', '<'], ['genericParameter', 'V'], ['text', '>(']), + swiftGenerics: { parameters: [{ name: 'T', index: 0, depth: 0 }, { name: 'U', index: 1, depth: 0 }, { name: 'V', index: 0, depth: 1 }], + constraints: [{ kind: 'conformance', lhs: 'V', rhs: 'Marker' }, { kind: 'conformance', lhs: 'V', rhs: 'Hashable' }] }, + }, + ])) + + it('names the parameters a declaration introduces and folds the graph constraints into them', () => { + const found = symbols() + expect(find(found, 'Box').typeParameters).toEqual([{ name: 'T', bound: 'Hashable' }, { name: 'U', bound: 'Marker, == Int' }]) + // The graph repeats the enclosing type's parameters on every member; only the new one is the member's. + expect(find(found, 'Box.get(_:)').signatures[0].typeParameters).toEqual([{ name: 'V', bound: 'Marker & Hashable' }]) + }) + + it('links the enclosing type parameter in a member and not a same-named global', () => { + const found = [...symbols(), decoy('T')] + const index = indexOf(found, 'swift') + const get = find(found, 'Box.get(_:)') + const parts = index.linkType('func get(_ value: V) -> T', get, get.signatures[0]) + expect(hrefs(parts, 'T')).toEqual([anchor('Box', 'T')]) + expect(hrefs(parts, 'V')).toEqual(Array(2).fill(anchor('Box.get(_:)', 'V'))) + expect(hrefs(index.linkType('T.Element', get, get.signatures[0]), 'T')).toEqual([anchor('Box', 'T')]) + }) +}) + +describe('Julia', () => { + const struct: ApiSymbol = { ...decoy('LibTmux.EntityRef', 'struct'), typeParams: ['I<:LibTmux.EntityID'] } + const alias: ApiSymbol = { ...decoy('LibTmux.PaneRef', 'typealias'), typeParams: ['LibTmux.PaneID'], type: 'EntityRef{PaneID}' } + const method: ApiSymbol = { + ...decoy('LibTmux.first', 'function'), + signatures: [{ params: [{ name: 'items', type: 'AbstractVector{T}' }], typeParams: ['T<:LibTmux.Pane'], raw: 'first(items::AbstractVector{T}) where T<:LibTmux.Pane' }], + } + + it('reads where-clause bounds and ignores the arguments an alias applies', () => { + const index = indexOf([struct, alias, method, decoy('LibTmux.Pane'), decoy('LibTmux.T')], 'julia') + expect(typeParametersOf(struct, 'julia')).toEqual([{ name: 'I', bound: 'LibTmux.EntityID' }]) + expect(typeParametersOf(alias, 'julia')).toEqual([]) + const signature = method.signatures[0] as Signature + const parts = index.linkType(signature.raw!, method, signature) + expect(hrefs(parts, 'T')).toEqual(Array(2).fill(anchor('LibTmux.first', 'T'))) + expect(hrefs(parts, 'LibTmux.Pane')).toEqual(['/LibTmux.Pane/']) + }) +}) + +describe('Ruby', () => { + it('links RBS generics in a signature to the method that declares them', () => { + const open: ApiSymbol = { + ...decoy('LibTmux::Async.open', 'method'), + signatures: [{ params: [], typeParams: ['T'], raw: '[T] (server: ::LibTmux::Server) { (::LibTmux::Async::Scope) -> T } -> T' }], + } + const index = indexOf([open, decoy('LibTmux::T')], 'ruby') + const parts = index.linkType(open.signatures[0].raw!, open, open.signatures[0]) + expect(hrefs(parts, 'T')).toEqual(Array(3).fill(anchor('LibTmux::Async.open', 'T'))) + }) +}) diff --git a/scripts/README.md b/scripts/README.md index 59b88c47b..b7ca0d9d6 100644 --- a/scripts/README.md +++ b/scripts/README.md @@ -143,6 +143,28 @@ $ node scripts/gen-tmux-manual.mjs --source ~/study/c/tmux \ The formatter's build date and host labels are excluded. Command syntax, descriptions, manual anchors and the source hashes remain version-specific. +### tmux options, hooks and format variables + +`gen-tmux-catalog.mjs` extracts the catalog behind `/tmux//catalog/` +for each release in `site/src/data/tmux/versions.json`. Existence, scope, type, +defaults, ranges and source lines come from `options-table.c` and `format.c` +at the pinned commit, with hook firing sites found in the C sources. +Descriptions come from the manual snapshot, whose `manualSha256` must match +`tmux.1` at that commit. It needs a tmux checkout, not mandoc or binaries. + +```console +$ node scripts/gen-tmux-catalog.mjs --source ~/study/c/tmux +``` + +Verify the committed data. Without `--source` this checks digests and shape; +with it, the script regenerates and fails when the committed JSON is stale: + +```console +$ node scripts/gen-tmux-catalog.mjs --check --source ~/study/c/tmux +``` + +`gen-tmux-catalog.negative.mjs` proves the check fails on stale data. + ### Site checks Four scripts assert things the build itself cannot notice. None of them needs diff --git a/scripts/check-example-indentation.mjs b/scripts/check-example-indentation.mjs new file mode 100644 index 000000000..f85eeba66 --- /dev/null +++ b/scripts/check-example-indentation.mjs @@ -0,0 +1,105 @@ +#!/usr/bin/env node +/** + * Doc-comment examples keep the indentation their source gave them. + * + * Every model stores an example's code as text. Rewriting the comment + * margin can take more than the margin: the Java `{@code}` converter once + * trimmed each line, so `TmuxEnvironment`'s example showed every statement + * flush left and nothing failed, because the code still parsed and every + * link still resolved. + * + * Each multi-line example is found in its declaration's source file at the + * revision the model records and its relative indentation compared line by + * line. A block the source does not contain verbatim (a doctest prompt, a + * fence rewritten on the way in) is counted as unlocated, not as wrong. A port + * without its checkout is reported as skipped. + * + * Usage: node scripts/check-example-indentation.mjs [--port java] [--model file.json] + */ +import { execFileSync } from 'node:child_process' +import { existsSync, readFileSync } from 'node:fs' +import { homedir } from 'node:os' +import { dirname, join, resolve } from 'node:path' +import { fileURLToPath } from 'node:url' + +import { PORTS } from '../site/src/lib/ports.ts' +import { compareIndentation } from './lib/example-indentation.mjs' + +const repoRoot = resolve(dirname(fileURLToPath(import.meta.url)), '..') +const expand = (path) => (path.startsWith('~/') ? join(homedir(), path.slice(2)) : path) +const arg = (name) => { + const i = process.argv.indexOf(name) + return i === -1 ? undefined : process.argv[i + 1] +} +const only = arg('--port') +const modelOverride = arg('--model') + +/** Product repositories that are not the port's own. */ +const PRODUCT_CHECKOUT = { + 'tmux-python/tmuxp': '~/work/python/tmuxp', + 'tmux-python/libtmux-mcp': '~/work/python/libtmux-mcp', +} + +const read = (repo, revision, file) => { + try { + return execFileSync('git', ['-C', repo, 'show', `${revision}:${file}`], { + encoding: 'utf8', maxBuffer: 1 << 26, stdio: ['ignore', 'pipe', 'ignore'], + }) + } catch { + return undefined + } +} + +/** Every example with the source location of the comment that holds it. */ +function* examplesOf(model) { + for (const symbol of model.symbols) { + for (const example of symbol.doc?.examples ?? []) yield { id: symbol.id, example, source: symbol.source } + for (const signature of symbol.signatures) { + for (const example of signature.doc?.examples ?? []) yield { id: symbol.id, example, source: signature.source ?? symbol.source } + } + for (const declaration of symbol.declarations ?? []) { + for (const example of declaration.doc?.examples ?? []) yield { id: symbol.id, example, source: declaration.source ?? symbol.source } + } + } +} + +let failed = 0 +let skipped = 0 +const rows = [] +for (const port of PORTS) { + if (only && only !== port.slug) continue + const modelPath = modelOverride ?? join(repoRoot, 'site/src/data/api', `${port.slug}.json`) + const checkout = expand(process.env[`LIBTMUX_DOCS_CHECKOUT_${port.slug.toUpperCase()}`] || port.checkout) + if (!existsSync(modelPath) || !existsSync(checkout)) { + console.log(`check-example-indentation: ${port.slug} skipped, no ${existsSync(modelPath) ? `checkout at ${port.checkout}` : 'model'}`) + skipped++ + continue + } + const model = JSON.parse(readFileSync(modelPath, 'utf8')) + const counts = { blocks: 0, ok: 0, lost: 0, unlocated: 0, single: 0, file: 0 } + const files = new Map() + const lost = [] + for (const { id, example, source } of examplesOf(model)) { + counts.blocks++ + // A complete example is its own source file, not a comment. + if (example.sourceUrl) { counts.file++; continue } + const repo = expand(PRODUCT_CHECKOUT[source.repo] ?? checkout) + const key = `${repo}\0${source.file}` + if (!files.has(key)) { + files.set(key, read(repo, source.extractedRevision ?? source.revision, source.file) ?? + read(repo, source.revision, source.file) ?? '') + } + const result = compareIndentation(example.code, files.get(key)) + counts[result.status]++ + if (result.status === 'lost') lost.push(`${id}: "${result.line.trim()}" is ${result.found} deep, its source comment ${result.expected}`) + } + rows.push({ port: port.slug, ...counts }) + for (const line of lost.slice(0, 10)) console.error(`check-example-indentation: ${port.slug}: ${line}`) + failed += lost.length +} +console.table(rows) +if (skipped) console.log(`check-example-indentation: ${skipped} port(s) skipped`) +if (failed) { + console.error(`check-example-indentation: ${failed} example(s) lost indentation`) + process.exit(1) +} diff --git a/scripts/check-example-indentation.negative.mjs b/scripts/check-example-indentation.negative.mjs new file mode 100644 index 000000000..ddca1fb0b --- /dev/null +++ b/scripts/check-example-indentation.negative.mjs @@ -0,0 +1,59 @@ +#!/usr/bin/env node +/* + * Proof that check-example-indentation fails on flattened examples and passes + * on the same example with its indentation intact. + * + * The fixture is the shape that shipped: a Java `
{@code ... }
` + * whose statements are indented under a `try`, stored once with every + * leading space removed. + */ +import assert from 'node:assert/strict' +import { execFileSync, spawnSync } from 'node:child_process' +import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs' +import { tmpdir } from 'node:os' +import { dirname, join } from 'node:path' +import { fileURLToPath } from 'node:url' + +import { compareIndentation } from './lib/example-indentation.mjs' + +const script = join(dirname(fileURLToPath(import.meta.url)), 'check-example-indentation.mjs') +const kept = 'try (Server server = open()) {\n Session mine = server.sessions()\n .filter(ok)\n .findFirst();\n}' +const flattened = kept.split('\n').map((line) => line.trimStart()).join('\n') +const comment = (lines) => `/**\n * Summary.\n *\n *
{@code\n${lines.split('\n').map((line) => ` * ${line}`.trimEnd()).join('\n')}\n * }
\n */\npublic class X {}\n` + +assert.equal(compareIndentation(kept, comment(kept)).status, 'ok', 'an example with its indentation passes') +assert.equal(compareIndentation(flattened, comment(kept)).status, 'lost', 'a flattened example fails') +assert.equal(compareIndentation(flattened, comment(flattened)).status, 'ok', 'flat code that was written flat passes') +assert.equal(compareIndentation('$ make\n$ make test', comment(kept)).status, 'unlocated', 'code the source does not hold is not judged') +assert.equal(compareIndentation('one();', comment(kept)).status, 'single', 'one line has no relative indentation') +const rustHidden = '/// ```\n/// let a = 1;\n/// # hidden();\n/// nested();\n/// ```\n' +assert.equal(compareIndentation('let a = 1;\n nested();', rustHidden).status, 'ok', 'a line the extractor hides is skipped') +assert.equal(compareIndentation('let a = 1;\nnested();', rustHidden).status, 'lost', 'and the lines around it still count') + +/** The command line over a real git checkout and a model that records its revision. */ +const root = mkdtempSync(join(tmpdir(), 'check-example-indentation-')) +try { + const git = (...args) => execFileSync('git', ['-C', root, ...args], { stdio: 'pipe' }).toString().trim() + git('init', '-q') + mkdirSync(join(root, 'src')) + writeFileSync(join(root, 'src/X.java'), comment(kept)) + git('add', '.') + git('-c', 'user.name=t', '-c', 'user.email=t@example.com', 'commit', '-q', '-m', 'x') + const revision = git('rev-parse', 'HEAD') + const run = (code) => { + const model = join(root, 'model.json') + writeFileSync(model, JSON.stringify({ symbols: [{ id: 'X', name: 'X', kind: 'class', modifiers: [], signatures: [], + source: { file: 'src/X.java', revision, extractedRevision: revision }, doc: { summary: 's', examples: [{ lang: 'java', code }] } }] })) + return spawnSync(process.execPath, [script, '--port', 'java', '--model', model], { + encoding: 'utf8', env: { ...process.env, LIBTMUX_DOCS_CHECKOUT_JAVA: root }, + }) + } + const clean = run(kept) + assert.equal(clean.status, 0, `the clean control passes: ${clean.stderr}`) + const broken = run(flattened) + assert.equal(broken.status, 1, 'a flattened example fails the check') + assert.match(broken.stderr, /X: "Session mine = server.sessions\(\)" is 0 deep, its source comment 4/, 'and names the example and the line') +} finally { + rmSync(root, { recursive: true, force: true }) +} +console.log('check-example-indentation.negative: flattened examples fail, intact ones pass') diff --git a/scripts/gen-api-model.mjs b/scripts/gen-api-model.mjs index a0fe36c3e..107b8fa8c 100644 --- a/scripts/gen-api-model.mjs +++ b/scripts/gen-api-model.mjs @@ -32,6 +32,7 @@ import { scopeProductSymbols } from '../packages/api-model/src/product-exports.t import { inheritProductFromOwners } from '../packages/api-model/src/products.ts' import { pageSlug, recordAccessorSlugOwner } from '../packages/api-model/src/prose.ts' import { navSidecar } from '../packages/api-model/src/nav-sidecar.ts' +import { misplacedOverloads } from '../packages/api-model/src/overloads.ts' const repoRoot = resolve(dirname(fileURLToPath(import.meta.url)), '..') const portBySlug = Object.fromEntries(PORT_DEFS.map((port) => [port.slug, port])) @@ -843,6 +844,16 @@ for (const [port, cfg] of Object.entries(PORTS)) { model.symbols = model.symbols.filter((symbol) => symbol.apiScope !== 'internal' || legacyIds.has(symbol.id)) if (model.pruned) model.pruned.kept = model.symbols.length + // `overload` means one callable with several signatures, and the reference + // renders it as a badge. An adapter that stamps a type or a field would put + // that badge on a page for something nobody calls, so refuse to write it. + const misplaced = misplacedOverloads(model.symbols) + if (misplaced.length) { + console.error(`gen-api-model: ${port} marks ${misplaced.length} symbols as overloads that are not callables with several signatures, such as ` + + misplaced.slice(0, 3).map((symbol) => `${symbol.kind} ${symbol.id}`).join(', ')) + process.exit(1) + } + /** * A source path a blob URL can use. * diff --git a/scripts/gen-registry.mjs b/scripts/gen-registry.mjs index 151d6b572..3719666bd 100644 --- a/scripts/gen-registry.mjs +++ b/scripts/gen-registry.mjs @@ -96,6 +96,14 @@ function isPrerelease(version, grammar) { const newestFirst = (versions, grammar) => [...versions].sort((a, b) => comparePackageVersions(a, b, grammar)) +/** The release stage a PyPI project declares in its Development Status classifier. */ +const PYPI_STAGES = { + '2 - Pre-Alpha': 'pre-alpha', '3 - Alpha': 'alpha', '4 - Beta': 'beta', '5 - Production/Stable': 'stable', '6 - Mature': 'stable', +} +const declaredStage = (classifiers) => PYPI_STAGES[ + classifiers?.find((entry) => entry.startsWith('Development Status :: '))?.slice('Development Status :: '.length) +] + async function getJson(url, headers = {}) { const res = await fetch(url, { headers: { 'user-agent': 'libtmux-docs gen-registry.mjs', ...headers }, @@ -200,9 +208,18 @@ function generalVersions(body, port) { */ const PROBES = { async py() { - const { missing, body } = await getJson('https://pypi.org/pypi/libtmux/json') - if (missing || !body) return null - return Object.keys(body.releases ?? {}).filter((v) => (body.releases[v] ?? []).length > 0) + // The MCP server and tmuxp are separate PyPI projects with their own stage. + const packages = {} + const declared = {} + for (const name of ['libtmux', 'libtmux-mcp', 'tmuxp']) { + const { missing, body } = await getJson(`https://pypi.org/pypi/${name}/json`) + packages[name] = missing || !body + ? null + : Object.keys(body.releases ?? {}).filter((v) => (body.releases[v] ?? []).length > 0) + declared[name] = declaredStage(body?.info?.classifiers) + } + // Only libtmux is tagged in this repository; the others release from their own. + return { versions: packages.libtmux, packages, declared, tagged: ['libtmux'] } }, async ruby() { const names = ['libtmux', 'libtmux-async', 'libtmux-mcp', 'libtmux-workspace'] @@ -416,11 +433,15 @@ for (const port of PORTS) { if (!tag) notes.push(`${port.slug}: no git tag found`) } const entry = classify(port, versions, tag) + // A registry's own declaration outranks the stage a version string implies. + const declared = (name) => (probe && !Array.isArray(probe) ? probe.declared?.[name] : undefined) + const withStage = (classified, name) => (declared(name) ? { ...classified, maturity: declared(name) } : classified) + if (declared(port.packageName)) entry.maturity = declared(port.packageName) if (probe && !Array.isArray(probe) && probe.packages) { entry.packages = Object.fromEntries( Object.entries(probe.packages).map(([name, packageVersions]) => [ name, - classify(port, packageVersions, tag), + withStage(classify(port, packageVersions, probe.tagged && !probe.tagged.includes(name) ? null : tag), name), ]), ) } diff --git a/scripts/gen-shell-ports.mjs b/scripts/gen-shell-ports.mjs index 042fc150d..6df1be812 100755 --- a/scripts/gen-shell-ports.mjs +++ b/scripts/gen-shell-ports.mjs @@ -26,7 +26,7 @@ const fileArg = process.argv.indexOf('--file') const target = fileArg === -1 ? join(root, 'site/public/_shell/shell.js') : process.argv[fileArg + 1] const check = process.argv.includes('--check') -const { PORTS } = await import(`file://${resolve(root, 'site/src/lib/ports.ts')}`) +const { PORTS, productAvailable } = await import(`file://${resolve(root, 'site/src/lib/ports.ts')}`) const BEGIN = ' // >>> generated from site/src/lib/ports.ts by scripts/gen-shell-ports.mjs' const END = ' // <<< end generated' @@ -37,6 +37,7 @@ const rows = PORTS.map((p) => ({ shortName: p.shortName, logoLanguage: p.logoLanguage, versionedDocs: p.versionedDocs, + mcp: productAvailable(p, 'mcp'), })) // Two spaces of body indent inside the IIFE, matching the file around it. diff --git a/scripts/gen-tmux-catalog.mjs b/scripts/gen-tmux-catalog.mjs new file mode 100644 index 000000000..5a2992c94 --- /dev/null +++ b/scripts/gen-tmux-catalog.mjs @@ -0,0 +1,778 @@ +#!/usr/bin/env node +/** + * Extract tmux's options, hooks and format variables for each pinned release. + * + * Existence, scope, type, defaults and source lines come from the C tables at + * the pinned commit. Descriptions come from that release's tmux.1, through the + * rendered manual in `site/src/data/tmux/.json`, whose digest must + * match the tmux.1 at the commit. + */ +import { execFileSync } from 'node:child_process' +import { createHash } from 'node:crypto' +import { readFileSync, mkdirSync, writeFileSync } from 'node:fs' +import { dirname, join, resolve } from 'node:path' +import { fileURLToPath } from 'node:url' +import { Window } from 'happy-dom' +import { rowAnchor } from '../site/src/lib/row-anchors.ts' + +const root = resolve(dirname(fileURLToPath(import.meta.url)), '..') +const dataDir = join(root, 'site/src/data/tmux') +const defaultCatalogDir = join(dataDir, 'catalog') +export const SCHEMA_VERSION = 1 +const digest = (text) => createHash('sha256').update(text).digest('hex') +const compact = (text) => text.replace(/\s+/g, ' ').trim() + +/* ---------------------------------------------------------------- C source */ + +const ESCAPES = { n: '\n', t: '\t', r: '\r', a: '\x07', b: '\b', f: '\f', v: '\v', '\\': '\\', '"': '"', "'": "'", '?': '?' } + +function literalEnd(source, start) { + const quote = source[start] + let index = start + 1 + while (index < source.length && source[index] !== quote) index += source[index] === '\\' ? 2 : 1 + return index + 1 +} + +function decode(body) { + return body.replace(/\\(?:([0-7]{1,3})|x([0-9a-fA-F]+)|(.))/gs, (_, octal, hex, char) => + octal ? String.fromCharCode(parseInt(octal, 8)) : hex ? String.fromCharCode(parseInt(hex, 16)) : (ESCAPES[char] ?? char)) +} + +/** Blank out comments, keeping every newline so token lines stay true. */ +export function stripComments(source) { + let out = '' + for (let index = 0; index < source.length;) { + const char = source[index] + if (char === '"' || char === "'") { + const end = literalEnd(source, index) + out += source.slice(index, end) + index = end + } else if (char === '/' && source[index + 1] === '*') { + const end = source.indexOf('*/', index + 2) + if (end < 0) throw new Error('Unterminated C comment') + out += source.slice(index, end + 2).replace(/[^\n]/g, ' ') + index = end + 2 + } else if (char === '/' && source[index + 1] === '/') { + while (index < source.length && source[index] !== '\n') { out += ' '; index++ } + } else { out += char; index++ } + } + return out +} + +/** Tokens of C source; preprocessor lines are not code and are skipped. */ +export function tokenize(source) { + const text = stripComments(source) + const tokens = [] + let line = 1 + let lineStart = true + for (let index = 0; index < text.length;) { + const char = text[index] + if (char === '\n') { line++; lineStart = true; index++; continue } + if (/\s/.test(char)) { index++; continue } + if (lineStart && char === '#') { + // A directive continues over backslash-newline pairs. + while (index < text.length && (text[index] !== '\n' || text[index - 1] === '\\')) { + if (text[index] === '\n') line++ + index++ + } + continue + } + lineStart = false + if (char === '"') { + const end = literalEnd(text, index) + tokens.push({ type: 'str', value: decode(text.slice(index + 1, end - 1)), line }) + index = end + } else if (char === "'") { + const end = literalEnd(text, index) + tokens.push({ type: 'chr', value: decode(text.slice(index + 1, end - 1)).charCodeAt(0), line }) + index = end + } else if (/[0-9]/.test(char)) { + const match = /^(?:0[xX][0-9a-fA-F]+|[0-9]+)[uUlL]*/.exec(text.slice(index)) + tokens.push({ type: 'num', value: Number(match[0].replace(/[uUlL]+$/, '')), line }) + index += match[0].length + } else if (/[A-Za-z_]/.test(char)) { + const match = /^[A-Za-z_][A-Za-z0-9_]*/.exec(text.slice(index)) + tokens.push({ type: 'id', value: match[0], line }) + index += match[0].length + } else { + const punct = text.slice(index, index + 2) + const two = ['->', '||', '&&', '<<', '>>', '==', '!='].includes(punct) ? punct : char + tokens.push({ type: 'punct', value: two, line }) + index += two.length + } + } + return tokens +} + +/** Object-like `#define` values and enum members, enough to resolve table cells. */ +export function parseSymbols(...sources) { + const symbols = new Map() + const evaluate = (text) => { + const tokens = tokenize(text) + if (!tokens.length) return undefined + const string = cellString(tokens) + if (string !== undefined) return string + try { return evaluateTokens(tokens, symbols) } catch { return undefined } + } + for (const source of sources) { + const joined = source.replace(/\\\n/g, ' ') + for (const match of joined.matchAll(/^[ \t]*#[ \t]*define[ \t]+([A-Za-z_][A-Za-z0-9_]*)(?![A-Za-z0-9_(])[ \t]+(.+)$/gm)) { + if (symbols.has(match[1])) continue + const value = evaluate(match[2]) + if (value !== undefined) symbols.set(match[1], value) + } + for (const match of stripComments(joined).matchAll(/\benum\b[^{;]*\{([^}]*)\}/g)) { + let next = 0 + for (const member of match[1].split(',')) { + const parsed = /^\s*([A-Za-z_][A-Za-z0-9_]*)\s*(?:=\s*([\s\S]+))?$/.exec(member) + if (!parsed) continue + const explicit = parsed[2] === undefined ? undefined : evaluate(parsed[2]) + if (parsed[2] !== undefined && explicit === undefined) { next = undefined; continue } + if (explicit !== undefined) next = explicit + if (next === undefined) continue + if (!symbols.has(parsed[1])) symbols.set(parsed[1], next) + next = typeof next === 'number' ? next + 1 : undefined + } + } + } + return symbols +} + +const LIMITS = new Map([ + ['INT_MAX', 2147483647], ['UINT_MAX', 4294967295], ['SHRT_MAX', 32767], ['USHRT_MAX', 65535], +]) + +/** Integers, character constants, symbols, unary minus and bitwise or. */ +export function evaluateTokens(tokens, symbols) { + let position = 0 + const unary = () => { + const token = tokens[position++] + if (!token) throw new Error('Unexpected end of expression') + if (token.type === 'punct' && token.value === '-') return -unary() + if (token.type === 'punct' && token.value === '(') { + const inner = bitwiseOr() + if (tokens[position++]?.value !== ')') throw new Error('Unbalanced expression') + return inner + } + if (token.type === 'num' || token.type === 'chr') return token.value + if (token.type === 'id') { + const value = symbols.get(token.value) ?? LIMITS.get(token.value) + if (value === undefined) throw new Error(`Unresolved C symbol: ${token.value}`) + return value + } + throw new Error(`Unsupported expression token: ${token.value}`) + } + const bitwiseOr = () => { + let value = unary() + while (tokens[position]?.value === '|') { position++; value = Number(BigInt(value) | BigInt(unary())) } + return value + } + const value = bitwiseOr() + if (position !== tokens.length) throw new Error('Unsupported C expression') + return value +} + +function splitTop(tokens, separator) { + const parts = [[]] + let depth = 0 + for (const token of tokens) { + if (token.type === 'punct' && '({['.includes(token.value)) depth++ + if (token.type === 'punct' && ')}]'.includes(token.value)) depth-- + if (depth === 0 && token.type === 'punct' && token.value === separator) parts.push([]) + else parts.at(-1).push(token) + } + return parts.filter((part) => part.length) +} + +function matching(tokens, open) { + const closing = { '{': '}', '(': ')', '[': ']' }[tokens[open].value] + let depth = 0 + for (let index = open; index < tokens.length; index++) { + if (tokens[index].type !== 'punct') continue + if (tokens[index].value === tokens[open].value) depth++ + else if (tokens[index].value === closing && --depth === 0) return index + } + throw new Error(`Unbalanced ${tokens[open].value} at line ${tokens[open].line}`) +} + +/** Adjacent string literals concatenate; any other single token is itself. */ +function cellString(tokens) { + if (tokens.length && tokens.every((token) => token.type === 'str')) return tokens.map((token) => token.value).join('') + return undefined +} + +/** `.name = value, ...` cells of one initializer, keyed by field. */ +function fieldsOf(tokens) { + const fields = {} + for (const part of splitTop(tokens, ',')) { + if (part[0]?.value !== '.' || part[2]?.value !== '=') throw new Error(`Unsupported initializer at line ${part[0]?.line}`) + fields[part[1].value] = part.slice(3) + } + return fields +} + +/** Names of `static const char *x[] = { "a", ..., NULL };` lists. */ +export function parseChoiceLists(source) { + const lists = new Map() + const tokens = tokenize(source) + for (let index = 0; index < tokens.length - 3; index++) { + if (tokens[index].value !== '*' || tokens[index + 1].type !== 'id' || tokens[index + 2].value !== '[') continue + const open = tokens.findIndex((token, at) => at > index && token.value === '{') + if (tokens[index + 3].value !== ']' || tokens[index + 4]?.value !== '=' || open !== index + 5) continue + const end = matching(tokens, open) + lists.set(tokens[index + 1].value, tokens.slice(open + 1, end).filter((token) => token.type === 'str').map((token) => token.value)) + } + return lists +} + +/** Hook-declaring macros: `#define NAME(params) { .field = ... }`. */ +function parseHookMacros(source) { + const macros = new Map() + const joined = source.replace(/\\\n/g, ' ') + for (const match of joined.matchAll(/^[ \t]*#[ \t]*define[ \t]+(OPTIONS_TABLE_[A-Z_]*HOOK)\(([^)]*)\)[ \t]+(.+)$/gm)) { + macros.set(match[1], { params: match[2].split(',').map((name) => name.trim()), body: tokenize(match[3]) }) + } + return macros +} + +/** The top-level `options_table[]` entries with their source lines. */ +export function parseOptionsTable(source, symbols) { + const lists = parseChoiceLists(source) + const macros = parseHookMacros(source) + const tokens = tokenize(source) + const start = tokens.findIndex((token, index) => token.value === 'options_table' && tokens[index + 1]?.value === '[' && tokens[index + 3]?.value === '=') + if (start < 0) throw new Error('options_table not found') + const open = tokens.findIndex((token, index) => index > start && token.value === '{') + const body = tokens.slice(open + 1, matching(tokens, open)) + const entries = [] + for (const item of splitTop(body, ',')) { + let line = item[0].line + let fields + if (item[0].value === '{') { + fields = fieldsOf(item.slice(1, -1)) + } else if (item[0].type === 'id' && macros.has(item[0].value) && item[1]?.value === '(') { + const macro = macros.get(item[0].value) + const args = splitTop(item.slice(2, -1), ',') + const bound = new Map(macro.params.map((name, at) => [name, args[at]])) + const expanded = macro.body.flatMap((token) => token.type === 'id' && bound.has(token.value) ? bound.get(token.value) : [token]) + fields = fieldsOf(expanded.slice(1, -1)) + } else throw new Error(`Unsupported options_table item at line ${item[0].line}`) + if (fields.name?.length === 1 && fields.name[0].value === 'NULL') continue + const name = cellString(fields.name ?? []) + if (name === undefined) throw new Error(`Option without a literal name at line ${line}: ${JSON.stringify(fields.name)}`) + const flag = (cell) => (cell ?? []).filter((token) => token.type === 'id').map((token) => token.value.replace(/^OPTIONS_TABLE_/, '').toLowerCase()) + const type = flag(fields.type)[0] + const entry = { name, line, type, scope: flag(fields.scope), flags: flag(fields.flags) } + if (fields.text) entry.text = cellString(fields.text) + if (fields.separator) entry.separator = cellString(fields.separator) + if (fields.unit) entry.unit = cellString(fields.unit) + if (fields.pattern) entry.pattern = cellString(fields.pattern) + if (fields.default_str) { + entry.defaultString = cellString(fields.default_str) + if (entry.defaultString === undefined) entry.defaultString = evaluateString(fields.default_str, symbols) + } + if (fields.default_arr) { + const list = fields.default_arr[0].value + const values = parseStringArrays(source).get(list) + if (!values) throw new Error(`Unknown default array ${list} for ${name}`) + entry.defaultArray = values + } + if (fields.default_num) { + if (type === 'key') entry.defaultKey = keyName(fields.default_num, name) + else entry.defaultNumber = evaluateTokens(fields.default_num, symbols) + } + if (fields.minimum) entry.minimum = evaluateTokens(fields.minimum, symbols) + if (fields.maximum) entry.maximum = evaluateTokens(fields.maximum, symbols) + if (fields.choices) { + const list = lists.get(fields.choices[0].value) + if (!list) throw new Error(`Unknown choice list ${fields.choices[0].value} for ${name}`) + entry.choices = list + } + entries.push(entry) + } + const aliasStart = tokens.findIndex((token, index) => token.value === 'options_other_names' && tokens[index + 1]?.value === '[') + const aliases = [] + if (aliasStart >= 0) { + const aliasOpen = tokens.findIndex((token, index) => index > aliasStart && token.value === '{') + for (const item of splitTop(tokens.slice(aliasOpen + 1, matching(tokens, aliasOpen)), ',')) { + const strings = item.filter((token) => token.type === 'str') + if (strings.length === 2) aliases.push({ alias: strings[0].value, name: strings[1].value }) + } + } + return { entries, aliases } +} + +/** Key defaults are character constants, optionally control-modified, or no key. */ +function keyName(tokens, option) { + const values = tokens.map((token) => token.value) + if (values.length === 1 && values[0] === 'KEYC_NONE') return 'None' + const control = values.length === 3 && values[1] === '|' && values[2] === 'KEYC_CTRL' + const char = tokens[0].type === 'chr' && (tokens.length === 1 || control) ? tokens[0].value : undefined + if (char === undefined) throw new Error(`Unsupported key default for ${option}: ${values.join(' ')}`) + if (control) return `C-${String.fromCharCode(char)}` + if (char === 127) return 'C-?' + return char < 32 ? `C-${String.fromCharCode(char + 96)}` : String.fromCharCode(char) +} + +/** `static const char *name[] = { OPTIONS_TABLE_X, ... }` lists of macros or strings. */ +function parseStringArrays(source) { + const arrays = new Map() + const defines = new Map() + for (const match of source.replace(/\\\n/g, '').matchAll(/^[ \t]*#[ \t]*define[ \t]+([A-Z_0-9]+)[ \t]+((?:"(?:\\.|[^"\\])*"[ \t]*)+)$/gm)) { + defines.set(match[1], cellString(tokenize(match[2]))) + } + const tokens = tokenize(source) + for (let index = 0; index < tokens.length - 5; index++) { + if (tokens[index].value !== '*' || tokens[index + 2].value !== '[' || tokens[index + 3].value !== ']' || tokens[index + 4].value !== '=') continue + const end = matching(tokens, index + 5) + const names = splitTop(tokens.slice(index + 6, end), ',').map((part) => part.length === 1 && part[0].type === 'id' ? part[0] : undefined).filter(Boolean) + const values = names.flatMap((token) => token.value === 'NULL' ? [] : [defines.get(token.value)]) + if (values.length && values.every((value) => value !== undefined)) arrays.set(tokens[index + 1].value, values) + } + return arrays +} + +function evaluateString(tokens, symbols) { + if (tokens.length === 1 && tokens[0].type === 'id') { + const value = symbols.get(tokens[0].value) + if (typeof value === 'string') return value + throw new Error(`Unresolved C string symbol: ${tokens[0].value}`) + } + throw new Error(`Unsupported default string at line ${tokens[0]?.line}`) +} + +/** `{ "name", FORMAT_TABLE_STRING, format_cb_name }` rows of `format_table[]`. */ +export function parseFormatTable(source) { + const tokens = tokenize(source) + const start = tokens.findIndex((token, index) => token.value === 'format_table' && tokens[index + 1]?.value === '[' && tokens[index + 3]?.value === '=') + if (start < 0) throw new Error('format_table not found') + const open = tokens.findIndex((token, index) => index > start && token.value === '{') + return splitTop(tokens.slice(open + 1, matching(tokens, open)), ',').flatMap((item) => { + if (item[0].value !== '{') return [] + const cells = splitTop(item.slice(1, -1), ',') + if (cells.length < 3 || cells[0][0].type !== 'str') return [] + return [{ + name: cells[0][0].value, line: item[0].line, + valueType: cells[1][0].value.replace(/^FORMAT_TABLE_/, '').toLowerCase(), callback: cells[2][0].value, + }] + }) +} + +/** Literal first arguments of calls named by `calls`, with each call's name. */ +export function stringArguments(source, calls, argument) { + const tokens = tokenize(source) + const found = [] + for (let index = 0; index < tokens.length - 1; index++) { + if (tokens[index].type !== 'id' || !calls.test(tokens[index].value) || tokens[index + 1].value !== '(') continue + const args = splitTop(tokens.slice(index + 2, matching(tokens, index + 1)), ',') + const cell = args[argument] + if (cell?.length === 1 && cell[0].type === 'str') found.push({ call: tokens[index].value, value: cell[0].value, line: cell[0].line }) + } + return found +} + +/* ------------------------------------------------------------------ manual */ + +const COLOURS = new Map([ + [-1, 'none'], [0, 'black'], [1, 'red'], [2, 'green'], [3, 'yellow'], [4, 'blue'], [5, 'magenta'], + [6, 'cyan'], [7, 'white'], [8, 'default'], [9, 'terminal'], [90, 'brightblack'], [91, 'brightred'], + [92, 'brightgreen'], [93, 'brightyellow'], [94, 'brightblue'], [95, 'brightmagenta'], [96, 'brightcyan'], + [97, 'brightwhite'], +]) + +/** The first sentence, as tmux's own summaries for commands read. */ +function firstSentence(text) { + const plain = compact(text) + return plain.match(/^.*?[.!?](?=\s|$)/)?.[0] ?? plain +} + +/** A description fragment safe to embed beside other manual fragments. */ +function cleanFragment(node) { + const clone = node.cloneNode(true) + for (const link of clone.querySelectorAll('a.permalink')) link.replaceWith(...link.childNodes) + for (const element of clone.querySelectorAll('[id]')) element.removeAttribute('id') + for (const element of clone.querySelectorAll('*')) { + for (const attribute of element.attributes) { + if (/^on/i.test(attribute.name)) throw new Error(`Unsafe manual attribute: ${attribute.name}`) + } + } + for (const paragraph of clone.querySelectorAll('p.Pp')) if (!paragraph.textContent.trim() && !paragraph.children.length) paragraph.remove() + // Example blocks keep their line breaks; everything else is flowing text. + return clone.innerHTML.split(/()/).map((part, index) => index % 2 ? part : part.replace(/\s+/g, ' ').replace(/> <')).join('').trim() +} + +/** Option, hook and format-variable text from the rendered manual of one release. */ +export function parseManualCatalog(html, commandNames) { + const window = new Window() + const document = window.document + document.body.innerHTML = html + const section = (id) => document.getElementById(id)?.closest('section') ?? undefined + const result = { options: new Map(), hooks: new Map(), notifications: new Map(), variables: new Map(), afterHook: undefined } + const lists = (scope) => [...scope.querySelectorAll('dl.Bl-tag')].filter((list) => !list.closest('dd')) + const items = (list) => { + const out = [] + for (const child of list.children) { + if (child.tagName === 'DT') out.push({ term: child, details: undefined }) + else if (child.tagName === 'DD' && out.at(-1) && !out.at(-1).details) out.at(-1).details = child + } + return out + } + + const options = section('OPTIONS') + if (!options) throw new Error('The manual has no OPTIONS section') + // Consecutive `.It` lines with no text between them share the text that follows. + let waiting = [] + for (const list of lists(options)) { + for (const { term, details } of items(list)) { + const label = term.querySelector('code.Ic')?.textContent.trim() + if (!label || commandNames.has(label)) continue + if (!details) throw new Error(`No description for option ${label}`) + const name = label.replace(/\[\]$/, '') + if (result.options.has(name)) throw new Error(`Duplicate manual option: ${name}`) + const entry = { html: cleanFragment(details), array: label.endsWith('[]'), section: 'OPTIONS' } + result.options.set(name, entry) + if (!compact(details.textContent.replaceAll('\u00a0', ' '))) { waiting.push(entry); continue } + for (const earlier of waiting) earlier.html = entry.html + waiting = [] + } + } + if (waiting.length) throw new Error('An option description ends the manual list with no text') + + const hooks = section('HOOKS') + if (!hooks) throw new Error('The manual has no HOOKS section') + for (const list of lists(hooks)) { + for (const { term, details } of items(list)) { + if (term.querySelector('code')) continue + const name = compact(term.textContent) + if (!details) throw new Error(`No description for hook ${name}`) + result.hooks.set(name, { html: cleanFragment(details), section: 'HOOKS' }) + } + } + const paragraph = [...hooks.querySelectorAll('p.Pp')].find((node) => compact(node.textContent).startsWith("A command's after hook")) + if (paragraph) result.afterHook = cleanFragment(paragraph) + + const control = section('CONTROL_MODE') + if (control) { + for (const list of lists(control)) { + for (const { term, details } of items(list)) { + const name = term.querySelector('code.Ic')?.textContent.trim() + if (name?.startsWith('%') && details) { + result.notifications.set(name.slice(1), { html: cleanFragment(details), section: 'CONTROL_MODE', syntax: compact(term.textContent) }) + } + } + } + } + + for (const table of document.querySelectorAll('table.Bl-column')) { + const rows = [...table.querySelectorAll('tr')] + const header = [...(rows[0]?.querySelectorAll('td') ?? [])].map((cell) => compact(cell.textContent)) + if (header[0] !== 'Variable name') continue + const cells = header.length === 3 ? { alias: 1, text: 2 } : { text: 1 } + for (const row of rows.slice(1)) { + const columns = [...row.querySelectorAll('td')] + const name = columns[0].querySelector('code.Li')?.textContent.trim() + if (!name) throw new Error('A format variable row has no name') + if (result.variables.has(name)) throw new Error(`Duplicate manual format variable: ${name}`) + result.variables.set(name, { + alias: cells.alias === undefined ? '' : compact(columns[cells.alias].textContent), + html: cleanFragment(columns[cells.text]), text: compact(columns[cells.text].textContent), + anchor: row.id || undefined, + }) + } + } + window.happyDOM.abort() + return result +} + +/* ---------------------------------------------------------------- assembly */ + +const KIND_ORDER = { option: 0, hook: 1, format: 2 } +const compareEntries = (a, b) => KIND_ORDER[a.kind] - KIND_ORDER[b.kind] || (a.name < b.name ? -1 : a.name > b.name ? 1 : 0) +const SCOPE_NAMES = { server: 'server', session: 'session', window: 'window', pane: 'pane' } +const CONTEXT_MEMBERS = { wp: 'pane', w: 'window', wl: 'window', s: 'session', c: 'client', pb: 'buffer', m: 'mouse' } + +/** Which object a format callback reads first; none means server-wide data. */ +export function callbackContexts(source) { + const tokens = tokenize(source) + const contexts = new Map() + for (let index = 0; index < tokens.length - 2; index++) { + const token = tokens[index] + if (token.type !== 'id' || !token.value.startsWith('format_cb_') || tokens[index + 1].value !== '(') continue + const close = matching(tokens, index + 1) + if (tokens[close + 1]?.value !== '{') continue + const end = matching(tokens, close + 1) + let context = 'server' + for (let at = close + 2; at < end - 2; at++) { + if (tokens[at].value === 'ft' && tokens[at + 1].value === '->' && CONTEXT_MEMBERS[tokens[at + 2].value]) { + context = CONTEXT_MEMBERS[tokens[at + 2].value] + break + } + } + contexts.set(token.value, context) + index = end + } + return contexts +} + +function optionDefault(row, name) { + if (row.defaultArray) return row.defaultArray + if (row.defaultKey !== undefined) return row.defaultKey + if (row.defaultString !== undefined) { + if ((row.flags.includes('is_array')) && row.separator && row.defaultString) { + return row.defaultString.split(row.separator) + } + return row.defaultString + } + if (row.defaultNumber === undefined) return undefined + switch (row.type) { + case 'flag': return row.defaultNumber ? 'on' : 'off' + case 'number': return row.defaultNumber + case 'choice': { + const choice = row.choices?.[row.defaultNumber] + if (choice === undefined) throw new Error(`Default ${row.defaultNumber} is outside the choices of ${name}`) + return choice + } + case 'colour': { + const colour = COLOURS.get(row.defaultNumber) + if (colour === undefined) throw new Error(`Unsupported colour default ${row.defaultNumber} for ${name}`) + return colour + } + default: throw new Error(`Unsupported default for ${name} (${row.type})`) + } +} + +const object = (entries) => Object.fromEntries(Object.entries(entries).filter(([, value]) => value !== undefined)) + +/** + * Build one release's catalog from its C tables and rendered manual. + * + * `hookSites` holds literal firing calls; `formatAdds` holds `format_add` + * literals for variables the callback table does not define. + */ +export function buildCatalog({ optionsSource, formatSource, symbols, manual, commandNames, hookSites, formatAdds }) { + const table = parseOptionsTable(optionsSource, symbols) + const formatRows = parseFormatTable(formatSource) + const contexts = callbackContexts(formatSource) + const aliasesOf = new Map() + for (const { alias, name } of table.aliases) aliasesOf.set(name, [...(aliasesOf.get(name) ?? []), alias]) + const entries = [] + const unmatched = { options: [], hooks: [] } + + for (const row of table.entries) { + const base = { name: row.name, scope: row.scope.map((scope) => SCOPE_NAMES[scope] ?? scope) } + const source = { file: 'options-table.c', line: row.line } + if (row.flags.includes('is_hook')) { + const described = manual.hooks.get(row.name) + const after = row.name.startsWith('after-') && commandNames.has(row.name.slice(6)) ? row.name.slice(6) : undefined + const notification = manual.notifications.get(row.name) + let html = '' + let from = 'none' + let anchor = 'HOOKS' + if (described) { html = described.html; from = 'manual'; anchor = rowAnchor('HOOKS', row.name) } + else if (notification) { html = notification.html; from = 'control-mode'; anchor = rowAnchor('CONTROL MODE', `%${row.name}`) } + else if (after && manual.afterHook) { html = manual.afterHook; from = 'after-hook' } + if (from === 'none') unmatched.hooks.push(row.name) + const sites = (hookSites.get(row.name) ?? []).concat(after ? hookSites.get('after-%s') ?? [] : []) + entries.push(object({ + kind: 'hook', ...base, after, + notification: notification ? `%${row.name}` : undefined, + firedFrom: sites.length ? sites : undefined, + descriptionSource: from, html, summary: html ? firstSentence(htmlText(html)) : '', + manual: { anchor }, source, + })) + continue + } + const described = manual.options.get(row.name) + if (!described) unmatched.options.push(row.name) + const defaultValue = optionDefault(row, row.name) + const array = row.flags.includes('is_array') + entries.push(object({ + kind: 'option', ...base, type: row.type, array: array || undefined, style: row.flags.includes('is_style') || undefined, + default: defaultValue, choices: row.choices, minimum: row.minimum, maximum: row.maximum, unit: row.unit, + pattern: row.pattern, separator: array || row.flags.includes('is_style') ? row.separator || undefined : undefined, + aliases: aliasesOf.get(row.name), + descriptionSource: described ? 'manual' : row.text ? 'source' : 'none', + html: described?.html ?? '', summary: described ? firstSentence(htmlText(described.html)) : row.text ?? '', + sourceText: row.text, + manual: described ? { anchor: rowAnchor('OPTIONS', row.name) } : undefined, source, + })) + } + + const tableNames = new Set(formatRows.map((row) => row.name)) + const addNames = new Map(formatAdds.filter((add) => add.name).map((add) => [add.name, add]).reverse()) + const patterns = formatAdds.filter((add) => add.pattern) + const variableNames = new Set([...formatRows.map((row) => row.name), ...manual.variables.keys()]) + const unlocated = [] + for (const name of [...variableNames].sort()) { + const row = formatRows.find((entry) => entry.name === name) + const described = manual.variables.get(name) + const add = addNames.get(name) ?? patterns.find((entry) => name.endsWith(entry.pattern)) + const location = row ? { file: 'format.c', line: row.line } : add ? { file: add.file, line: add.line } : undefined + if (!location) { unlocated.push(name); continue } + const text = described?.text ?? '' + entries.push(object({ + kind: 'format', name, alias: described?.alias || undefined, type: row?.valueType ?? 'string', + scope: row ? [contexts.get(row.callback)] : undefined, callback: row?.callback, + documented: Boolean(described), descriptionSource: described ? 'manual' : 'none', + html: described?.html ?? '', summary: text, + manual: described ? { anchor: described.anchor } : undefined, source: location, + })) + } + if (unlocated.length) throw new Error(`Format variables without a source location: ${unlocated.join(', ')}`) + const orphans = { + options: [...manual.options.keys()].filter((name) => !table.entries.some((row) => row.name === name)), + hooks: [...manual.hooks.keys()].filter((name) => !table.entries.some((row) => row.name === name && row.flags.includes('is_hook'))), + } + entries.sort(compareEntries) + return { entries, unmatched, orphans, tableNames } +} + +let scratch +/** Plain text of an HTML fragment. */ +function htmlText(html) { + scratch ??= new Window().document.createElement('div') + scratch.innerHTML = html + return scratch.textContent +} + +/* -------------------------------------------------------------------- main */ + +const git = (source, ...args) => execFileSync('git', ['-C', source, ...args], { encoding: 'utf8', maxBuffer: 256 << 20 }) + +function grepFiles(source, commit, pattern) { + const out = git(source, 'grep', '-l', '-E', pattern, commit, '--', '*.c') + return out.split('\n').filter(Boolean).map((line) => line.slice(commit.length + 1)).filter((file) => !file.startsWith('compat/')).sort() +} + +/** Literal hook names passed to the notification and hook-queue calls. */ +export function collectHookSites(sources) { + const sites = new Map() + const add = (name, site) => { + const list = sites.get(name) ?? [] + if (!list.some((entry) => entry.file === site.file && entry.line === site.line)) list.push(site) + sites.set(name, list) + } + for (const [file, text] of sources) { + for (const found of stringArguments(text, /^notify_(?!hook$|paste_buffer$)[a-z_]+$/, 0)) add(found.value, { file, line: found.line, call: found.call }) + for (const found of stringArguments(text, /^cmdq_insert_hook$/, 3)) add(found.value, { file, line: found.line, call: found.call }) + } + for (const list of sites.values()) list.sort((a, b) => (a.file < b.file ? -1 : a.file > b.file ? 1 : a.line - b.line)) + return sites +} + +/** + * Variables set with a literal name, and the `%s_suffix` patterns that build + * the rest from a prefix such as `next`. + */ +export function collectFormatAdds(sources) { + const adds = [] + for (const [file, text] of sources) { + for (const found of stringArguments(text, /^(?:format_add(?:_cb|_tv)?|cmdq_add_format)$/, 1)) { + if (/^[a-z][a-z0-9_]*$/.test(found.value)) adds.push({ name: found.value, file, line: found.line }) + } + for (const token of tokenize(text)) { + if (token.type === 'str' && /^%s_[a-z][a-z0-9_]*$/.test(token.value)) adds.push({ pattern: token.value.slice(2), file, line: token.line }) + } + } + return adds.sort((a, b) => (a.file < b.file ? -1 : a.file > b.file ? 1 : a.line - b.line)) +} + +export function catalogForRelease({ source, version, revision, manualData }) { + const sourceCommit = git(source, 'rev-parse', '--verify', `${revision}^{commit}`).trim() + const sourceTree = git(source, 'rev-parse', `${sourceCommit}^{tree}`).trim() + if (sourceCommit !== manualData.sourceCommit) throw new Error(`The ${version} manual snapshot is for ${manualData.sourceCommit}, not ${sourceCommit}`) + const read = (file) => git(source, 'show', `${sourceCommit}:${file}`) + if (digest(read('tmux.1')) !== manualData.manualSha256) throw new Error(`The ${version} manual snapshot does not match tmux.1 at ${sourceCommit}`) + const hookFiles = grepFiles(source, sourceCommit, '(notify_[a-z_]+|cmdq_insert_hook)\\(') + const formatFiles = grepFiles(source, sourceCommit, '(format_add(_cb|_tv)?|cmdq_add_format)\\(|"%s_') + const symbols = parseSymbols(read('tmux.h'), read('compat.h')) + const commandNames = new Set(manualData.commands.map((command) => command.name)) + const manual = parseManualCatalog(manualData.manual, commandNames) + const built = buildCatalog({ + optionsSource: read('options-table.c'), formatSource: read('format.c'), symbols, manual, commandNames, + hookSites: collectHookSites(hookFiles.map((file) => [file, read(file)])), + formatAdds: collectFormatAdds(formatFiles.map((file) => [file, read(file)])), + }) + const counts = { option: 0, hook: 0, format: 0 } + for (const entry of built.entries) counts[entry.kind]++ + return { + model: { schemaVersion: SCHEMA_VERSION, version, revision, sourceCommit, sourceTree, manualSha256: manualData.manualSha256, counts, entries: built.entries }, + report: { unmatched: built.unmatched, orphans: built.orphans }, + } +} + +const REQUIRED = { + option: ['scope', 'type', 'summary', 'source'], + hook: ['scope', 'summary', 'source'], + format: ['type', 'summary', 'source'], +} + +/** + * What a committed catalog must satisfy without the tmux checkout: it describes + * the pinned release, matches the manual snapshot it took descriptions from, + * and keeps the shape the pages rely on. + */ +export function verifyCatalog(model, pin, manualData) { + const problems = [] + const note = (message) => problems.push(`${pin.version}: ${message}`) + if (model.schemaVersion !== SCHEMA_VERSION) note(`schema ${model.schemaVersion}, expected ${SCHEMA_VERSION}`) + if (model.version !== pin.version || model.revision !== pin.revision) note('does not describe the pinned release') + for (const field of ['sourceCommit', 'sourceTree', 'manualSha256']) { + if (model[field] !== manualData[field]) note(`${field} differs from the manual snapshot`) + } + const seen = new Set() + const counts = { option: 0, hook: 0, format: 0 } + let previous + for (const entry of model.entries) { + const key = `${entry.kind}/${entry.name}` + if (!(entry.kind in KIND_ORDER)) { note(`unknown kind ${key}`); continue } + counts[entry.kind]++ + if (seen.has(key)) note(`duplicate ${key}`) + seen.add(key) + if (previous && compareEntries(previous, entry) >= 0) note(`${key} is out of order`) + previous = entry + for (const field of REQUIRED[entry.kind]) { + if (entry[field] === undefined || (field === 'scope' && !entry.scope.length)) note(`${key} has no ${field}`) + } + if (!Number.isInteger(entry.source?.line) || !entry.source?.file) note(`${key} has no source location`) + if (entry.descriptionSource !== 'none' && !entry.summary) note(`${key} claims a description but has no summary`) + } + for (const kind of Object.keys(counts)) if (model.counts?.[kind] !== counts[kind]) note(`${kind} count is ${model.counts?.[kind]}, entries hold ${counts[kind]}`) + return problems +} + +function main() { + const args = process.argv.slice(2) + const option = (name) => args[args.indexOf(name) + 1] + const check = args.includes('--check') + const pins = JSON.parse(readFileSync(join(dataDir, 'versions.json'), 'utf8')) + if (!args.includes('--source') && !check) throw new Error('Usage: gen-tmux-catalog.mjs --source [--check]\n gen-tmux-catalog.mjs --check') + const source = args.includes('--source') ? resolve(option('--source')) : undefined + const catalogDir = args.includes('--catalog') ? resolve(option('--catalog')) : defaultCatalogDir + if (!check) mkdirSync(catalogDir, { recursive: true }) + const problems = [] + for (const pin of pins.versions) { + const { version, revision } = pin + const manualData = JSON.parse(readFileSync(join(dataDir, `${version}.json`), 'utf8')) + const target = join(catalogDir, `${version}.json`) + if (check) { + let committed + try { committed = readFileSync(target, 'utf8') } catch { problems.push(`Missing tmux catalog: ${version}`); continue } + problems.push(...verifyCatalog(JSON.parse(committed), pin, manualData)) + if (source) { + const { model } = catalogForRelease({ source, version, revision, manualData }) + if (committed !== `${JSON.stringify(model, null, 2)}\n`) problems.push(`Stale tmux catalog: ${version}`) + } + continue + } + const { model, report } = catalogForRelease({ source, version, revision, manualData }) + writeFileSync(target, `${JSON.stringify(model, null, 2)}\n`) + console.log(`tmux ${version}: ${model.counts.option} options, ${model.counts.hook} hooks, ${model.counts.format} formats at ${revision}`) + for (const [kind, names] of Object.entries(report.unmatched)) if (names.length) console.log(` ${kind} without manual text: ${names.join(' ')}`) + for (const [kind, names] of Object.entries(report.orphans)) if (names.length) console.log(` manual ${kind} absent from the source table: ${names.join(' ')}`) + } + if (problems.length) throw new Error(problems.join('\n')) + if (check) console.log(`tmux catalog: ${pins.versions.length} releases fresh${source ? '' : ' (digests and shape only; pass --source to regenerate)'}`) +} + +if (process.argv[1] && resolve(process.argv[1]) === fileURLToPath(import.meta.url)) main() diff --git a/scripts/gen-tmux-catalog.negative.mjs b/scripts/gen-tmux-catalog.negative.mjs new file mode 100644 index 000000000..22b61acf0 --- /dev/null +++ b/scripts/gen-tmux-catalog.negative.mjs @@ -0,0 +1,85 @@ +#!/usr/bin/env node +/* + * Proof that `gen-tmux-catalog.mjs --check` fails on stale catalog data. + * + * The control is the committed catalog, because a check that always failed + * would satisfy every other case. Each case is a different way to be stale: + * a dropped entry, a manual snapshot that no longer matches, a missing + * release, and (with a tmux checkout) a default that no longer matches the + * source at the pinned commit. + */ +import { cpSync, existsSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs' +import { homedir, tmpdir } from 'node:os' +import { dirname, join } from 'node:path' +import { execFileSync } from 'node:child_process' +import { fileURLToPath } from 'node:url' + +const here = dirname(fileURLToPath(import.meta.url)) +const script = join(here, 'gen-tmux-catalog.mjs') +const committed = join(here, '..', 'site/src/data/tmux/catalog') +const source = process.env.LIBTMUX_TMUX_SOURCE ?? join(homedir(), 'study/c/tmux') + +function run(catalog, ...args) { + try { + return { code: 0, out: execFileSync('node', [script, '--check', '--catalog', catalog, ...args], { encoding: 'utf8', stdio: 'pipe' }) } + } catch (error) { + return { code: error.status, out: `${error.stdout ?? ''}${error.stderr ?? ''}` } + } +} + +function copy() { + const dir = mkdtempSync(join(tmpdir(), 'gen-tmux-catalog-')) + cpSync(committed, dir, { recursive: true }) + return dir +} + +function edit(dir, version, change) { + const file = join(dir, `${version}.json`) + const model = JSON.parse(readFileSync(file, 'utf8')) + change(model) + writeFileSync(file, `${JSON.stringify(model, null, 2)}\n`) +} + +let failures = 0 +const check = (name, ok, detail) => { + if (ok) console.log(`ok ${name}`) + else { console.error(`FAIL ${name} - ${detail}`); failures += 1 } +} + +const dirs = [] +const fixture = () => { const dir = copy(); dirs.push(dir); return dir } + +const control = run(fixture()) +check('the committed catalog passes', control.code === 0, control.out) + +const dropped = fixture() +edit(dropped, '3.7c', (model) => { model.entries.splice(10, 1) }) +const droppedRun = run(dropped) +check('a dropped entry fails', droppedRun.code !== 0 && /count is/.test(droppedRun.out), droppedRun.out) + +const manual = fixture() +edit(manual, '3.2a', (model) => { model.manualSha256 = '0'.repeat(64) }) +const manualRun = run(manual) +check('a manual snapshot from another tmux.1 fails', manualRun.code !== 0 && /manualSha256/.test(manualRun.out), manualRun.out) + +const missing = fixture() +rmSync(join(missing, '3.2a.json')) +const missingRun = run(missing) +check('a missing release fails', missingRun.code !== 0 && /Missing tmux catalog: 3\.2a/.test(missingRun.out), missingRun.out) + +if (existsSync(join(source, '.git'))) { + const fresh = run(committed, '--source', source) + check('the committed catalog matches the pinned source', fresh.code === 0, fresh.out) + const stale = fixture() + edit(stale, '3.7c', (model) => { + const option = model.entries.find((entry) => entry.kind === 'option' && entry.name === 'escape-time') + option.default = 500 + }) + const staleRun = run(stale, '--source', source) + check('a default that differs from the pinned source fails', staleRun.code !== 0 && /Stale tmux catalog: 3\.7c/.test(staleRun.out), staleRun.out) +} else { + console.log('skip the source comparison: no tmux checkout (set LIBTMUX_TMUX_SOURCE)') +} + +for (const dir of dirs) rmSync(dir, { recursive: true, force: true }) +process.exit(failures ? 1 : 0) diff --git a/scripts/gen-workspace-entities.mjs b/scripts/gen-workspace-entities.mjs new file mode 100644 index 000000000..24e3b54f1 --- /dev/null +++ b/scripts/gen-workspace-entities.mjs @@ -0,0 +1,42 @@ +#!/usr/bin/env node +/** + * Index the workspace commands, options and configuration keys that prose can + * link to, so a code span naming one reaches its CLI Manual or Configuration + * entry. The index is committed because the Markdown exports run bundled, with + * no content directory beside them. + * + * Usage: + * node scripts/gen-workspace-entities.mjs # rewrite the index + * node scripts/gen-workspace-entities.mjs --check # fail if it is stale + * node scripts/gen-workspace-entities.mjs --file X # operate on X (negative test) + */ +import { existsSync, readFileSync, writeFileSync } from 'node:fs' +import { dirname, join, resolve } from 'node:path' +import { fileURLToPath } from 'node:url' +import { collectWorkspaceEntities, formatWorkspaceEntities } from './lib/workspace-entities.mjs' +import { PORTS, productAvailable } from '../site/src/lib/ports.ts' + +const root = resolve(dirname(fileURLToPath(import.meta.url)), '..') +const fileArg = process.argv.indexOf('--file') +const out = fileArg === -1 ? join(root, 'site/src/data/workspace-entities.json') : resolve(process.argv[fileArg + 1]) + +const groups = collectWorkspaceEntities({ + docs: join(root, 'site/src/content/docs'), + shared: join(root, 'site/src/content/_workspace-shared'), + ports: PORTS.filter((port) => productAvailable(port, 'workspace')).map((port) => ({ + slug: port.slug, program: port.workspaceCli?.split(/\s+/)[0], + })), +}) +const next = formatWorkspaceEntities(groups) +const summary = `${groups.length} groups, ${groups.reduce((n, group) => n + group.commands.length, 0)} commands, ` + + `${groups.reduce((n, group) => n + group.options.length, 0)} options, ${groups.reduce((n, group) => n + group.keys.length, 0)} keys` + +if (process.argv.includes('--check')) { + if (!existsSync(out) || readFileSync(out, 'utf8') !== next) { + console.error('gen-workspace-entities: index missing or stale; run node scripts/gen-workspace-entities.mjs') + process.exit(1) + } +} else { + writeFileSync(out, next) +} +console.log(`gen-workspace-entities: ${summary}`) diff --git a/scripts/lib/example-indentation.mjs b/scripts/lib/example-indentation.mjs new file mode 100644 index 000000000..0c6c9e589 --- /dev/null +++ b/scripts/lib/example-indentation.mjs @@ -0,0 +1,60 @@ +/** + * Whether an example kept the indentation its doc comment gave it. + * + * The comment margin (`*`, `///`, `#`, `--`) belongs to the comment; what + * follows it is the author's code, and a model that flattens it shows + * `.filter(...)` under `Session mine = ...` at the same column. + */ + +const ENTITIES = { '<': '<', '>': '>', '&': '&', '"': '"', ''': "'", ' ': ' ' } +const decode = (text) => text.replace(/&(?:lt|gt|amp|quot|#39|nbsp);/g, (entity) => ENTITIES[entity]) + +/** A comment leader and the one space after it; a line without one is already code. */ +const LEADER = /^(\s*)(?:\/\/[/!]?|\*(?!\/)|#+|--+|;+)( ?)/ + +/** A source line without its comment margin, and where its own indentation begins. */ +export function sourceLine(line) { + const leader = LEADER.exec(line) + const rest = leader ? line.slice(leader[0].length) : line + return { text: decode(rest).trim(), indent: /^[ \t]*/.exec(rest)[0].length } +} + +/** Positions of each example line in the source, in order, or undefined when the block is not there. */ +function locate(lines, source, start, window) { + const found = [start] + let at = start + for (const line of lines.slice(1)) { + let next = at + 1 + while (next < source.length && next <= at + window && source[next].text !== line.trim()) next++ + if (next >= source.length || next > at + window) return undefined + found.push(next) + at = next + } + return found +} + +/** + * Compare one example's relative indentation with its source comment's. + * + * `ok` and `lost` mean the block was found; `unlocated` means the source does + * not contain it line for line (a doctest prompt, a rewritten fence), which + * says nothing about its indentation. `single` has no relative indentation. + */ +export function compareIndentation(code, sourceText, window = 8) { + const lines = code.split('\n').filter((line) => line.trim()) + if (lines.length < 2) return { status: 'single' } + const source = sourceText.split('\n').map(sourceLine) + const relative = (indents) => indents.map((indent) => indent - Math.min(...indents)) + const expected = relative(lines.map((line) => /^[ \t]*/.exec(line)[0].length)) + let mismatch + for (let start = 0; start < source.length; start++) { + if (!source[start].text || source[start].text !== lines[0].trim()) continue + const positions = locate(lines, source, start, window) + if (!positions) continue + const actual = relative(positions.map((position) => source[position].indent)) + const wrong = actual.findIndex((indent, i) => indent !== expected[i]) + if (wrong === -1) return { status: 'ok' } + mismatch ??= { status: 'lost', line: lines[wrong], expected: actual[wrong], found: expected[wrong] } + } + return mismatch ?? { status: 'unlocated' } +} diff --git a/scripts/lib/workspace-entities.mjs b/scripts/lib/workspace-entities.mjs new file mode 100644 index 000000000..978768725 --- /dev/null +++ b/scripts/lib/workspace-entities.mjs @@ -0,0 +1,175 @@ +/** + * What a port's workspace documentation names that has its own place to land: + * the commands of its CLI Manual, the options its tables define, and the + * configuration keys its Configuration reference defines. + * + * The rendered page numbers table rows with `createRowAnchors`, which this + * indexer drives with the same headings and rows, so a recorded anchor is the + * anchor the page serves. Reading Markdown rather than HTML needs no build and + * works on the synthetic per-port pages the shared sources produce. + */ +import { existsSync, readdirSync, readFileSync } from 'node:fs' +import { join, relative } from 'node:path' +import { createRowAnchors } from '../../site/src/lib/row-anchors.ts' +import { KNOWN_PORTS, resolvePortBody } from '../../site/src/lib/workspace-shared-slots.ts' + +const FRONTMATTER = /^---\r?\n[\s\S]*?\r?\n---\r?\n?/ +/** A configuration table lists keys under one of these headings. */ +const KEY_HEADERS = new Set(['key', 'keys', 'field', 'fields', 'setting', 'settings']) +const OPTION_HEADER = /\b(?:options?|flags?)\b/i + +function markdownFiles(directory) { + if (!existsSync(directory)) return [] + return readdirSync(directory, { withFileTypes: true }).flatMap((entry) => { + const path = join(directory, entry.name) + if (entry.isDirectory()) return markdownFiles(path) + return /\.mdx?$/.test(entry.name) ? [path] : [] + }) +} + +const routeOf = (relPath) => `workspace/${relPath.replace(/\.mdx?$/, '').replace(/(?:^|\/)index$/, '')}`.replace(/\/$/, '') +const orderOf = (source) => Number(/^sidebar:\s*\n(?:[ \t]+\S.*\n)*?[ \t]+order:\s*(-?\d+)/m.exec(FRONTMATTER.exec(source)?.[0] ?? '')?.[1] ?? Number.MAX_SAFE_INTEGER) + +/** + * The workspace pages a port publishes, keyed by route. A page the port + * writes itself wins over the shared source at that route, as the loader decides. + */ +export function workspacePages({ docs, shared }, port) { + const pages = new Map() + const home = join(docs, 'ports', port, 'workspace') + for (const file of markdownFiles(home)) { + const source = readFileSync(file, 'utf8') + pages.set(routeOf(relative(home, file)), { body: source.replace(FRONTMATTER, ''), order: orderOf(source) }) + } + if (!KNOWN_PORTS.has(port)) return pages + const common = join(shared, 'workspace') + for (const file of markdownFiles(common)) { + const route = routeOf(relative(common, file)) + if (pages.has(route)) continue + const source = readFileSync(file, 'utf8') + const body = resolvePortBody(source.replace(FRONTMATTER, ''), port) + if (body.trim()) pages.set(route, { body, order: orderOf(source) }) + } + return pages +} + +/** Text as it renders: no link targets, code fences or emphasis markers. */ +const plain = (markdown) => markdown + .replace(/!?\[([^\]]*)\]\([^)]*\)/g, '$1').replace(/!?\[([^\]]*)\]\[[^\]]*\]/g, '$1') + .replace(/<[^>]+>/g, '').replace(/`+/g, '').replace(/\*{1,3}([^*]+)\*{1,3}/g, '$1').trim() + +/** github-slugger, which assigns heading ids: lower case, no punctuation, hyphens for spaces. */ +function headingIds(headings) { + const occurrences = new Map() + return headings.map((text) => { + const base = text.toLowerCase().replace(/[^\p{L}\p{M}\p{N}_ -]/gu, '').replaceAll(' ', '-') + let id = base + while (occurrences.has(id)) { + occurrences.set(base, occurrences.get(base) + 1) + id = `${base}-${occurrences.get(base)}` + } + occurrences.set(id, 0) + return id + }) +} + +const cellsOf = (line) => line.trim().replace(/^\|/, '').replace(/\|$/, '').split(/(? cell.trim().replaceAll('\\|', '|')) +const SEPARATOR = /^\|?\s*:?-{3,}:?\s*(?:\|\s*:?-{3,}:?\s*)*\|?\s*$/ + +/** Every table of a page with the anchor each body row receives, in document order. */ +export function pageTables(body) { + const lines = body.split('\n') + const fenced = [] + let fence = false + const headings = [] + lines.forEach((line, index) => { + if (/^ {0,3}(?:`{3,}|~{3,})/.test(line)) { fence = !fence; fenced[index] = true; return } + fenced[index] = fence + const heading = /^(#{1,6})[ \t]+(.+?)[ \t#]*$/.exec(line) + if (!fence && heading) headings.push({ index, depth: heading[1].length, text: plain(heading[2]) }) + }) + const ids = headingIds(headings.map((heading) => heading.text)) + headings.forEach((heading, index) => { heading.id = ids[index] }) + const taken = [...ids, ...[...body.matchAll(/\bid="([^"]+)"/g)].map((match) => match[1])] + const anchors = createRowAnchors(taken) + const tables = [] + for (let index = 0; index < lines.length; index++) { + const heading = headings.find((entry) => entry.index === index) + if (heading) anchors.heading(heading.depth, heading.id) + if (fenced[index] || !lines[index].startsWith('|') || !SEPARATOR.test(lines[index + 1] ?? '')) continue + const table = { header: plain(cellsOf(lines[index])[0] ?? ''), rows: [] } + for (index += 2; index < lines.length && lines[index].startsWith('|') && !fenced[index]; index++) { + const first = cellsOf(lines[index])[0] ?? '' + const label = plain(first) + if (label) table.rows.push({ cell: first, anchor: anchors.row(label) }) + } + index-- + tables.push(table) + } + return tables +} + +const codeSpans = (cell) => [...cell.matchAll(/`([^`]+)`/g)].map((match) => match[1].trim()) + +/** The commands, options and keys one port's pages define. */ +export function portEntities(pages, program) { + const cli = [...pages].filter(([route]) => /^workspace\/cli\/[^/]+$/.test(route)).map(([route]) => route.slice('workspace/cli/'.length)) + const listed = new Set([...(pages.get('workspace/cli')?.body ?? '').matchAll(/
([^<]+)<\/code><\/a><\/dt>/g)] + .filter((match) => match[1] === match[2]).map((match) => match[1])) + // A page named after a listed command plus a suffix documents its subcommand. + const commands = cli.map((slug) => { + const parent = [...listed].find((name) => slug.startsWith(`${name}-`) && cli.includes(name)) + return { name: parent ? `${parent} ${slug.slice(parent.length + 1)}` : slug, path: `workspace/cli/${slug}`, listed: listed.has(slug) } + }).sort((a, b) => a.name.localeCompare(b.name)) + + const options = [] + const keys = [] + const routes = [...pages].map(([route, page]) => ({ route, ...page })).sort((a, b) => a.order - b.order || a.route.localeCompare(b.route)) + for (const { route, body } of routes) { + const isCli = route === 'workspace/cli' || route.startsWith('workspace/cli/') + const isConfiguration = route.startsWith('workspace/configuration/') + if (!isCli && !isConfiguration) continue + for (const table of pageTables(body)) { + const header = table.header.toLowerCase() + for (const row of table.rows) { + if (isCli && OPTION_HEADER.test(header)) { + for (const span of codeSpans(row.cell)) { + const name = span.split(/\s+/)[0] + if (/^-{1,2}[A-Za-z0-9][\w-]*$/.test(name)) options.push({ name, path: route, anchor: row.anchor }) + } + } else if (isConfiguration && KEY_HEADERS.has(header)) { + for (const span of codeSpans(row.cell)) { + const name = span.replace(/^"([^"]+)"$/, '$1') + if (/^[A-Za-z_][A-Za-z0-9_]*$/.test(name)) keys.push({ name, path: route, anchor: row.anchor }) + } + } + } + } + } + return { program, commands, options, keys } +} + +/** Ports with the same entities share one group, so the shared sources are stored once. */ +export function collectWorkspaceEntities({ docs, shared, ports }) { + const groups = new Map() + for (const { slug, program } of ports) { + if (!program) continue + const entities = portEntities(workspacePages({ docs, shared }, slug), program) + if (!entities.commands.length && !entities.options.length && !entities.keys.length) continue + const key = JSON.stringify(entities) + groups.set(key, { ports: [...(groups.get(key)?.ports ?? []), slug], ...entities }) + } + return [...groups.values()].sort((a, b) => a.ports[0].localeCompare(b.ports[0])) +} + +/** One entity per line, so a changed row is one changed line in review. */ +export function formatWorkspaceEntities(groups) { + const rows = (items, fields) => `[${items.length ? `\n ${items.map((item) => JSON.stringify(fields.map((field) => item[field]))).join(',\n ')}\n ` : ''}]` + const body = groups.map((group) => [ + ` {\n "ports": ${JSON.stringify(group.ports)},\n "program": ${JSON.stringify(group.program)},`, + ` "commands": ${rows(group.commands, ['name', 'path', 'listed'])},`, + ` "options": ${rows(group.options, ['name', 'path', 'anchor'])},`, + ` "keys": ${rows(group.keys, ['name', 'path', 'anchor'])}\n }`, + ].join('\n')) + return `{\n "groups": [\n${body.join(',\n')}\n ]\n}\n` +} diff --git a/scripts/normalise-parity.mjs b/scripts/normalise-parity.mjs index 7303dd155..423ccac7d 100644 --- a/scripts/normalise-parity.mjs +++ b/scripts/normalise-parity.mjs @@ -1,5 +1,5 @@ #!/usr/bin/env node -// Reduce the four ports' parity ledgers to one schema for site/src/pages/parity.astro. +// Reduce the four ports' parity ledgers to one schema for site/src/pages/meta/parity.astro. // // Four self-hosted-or-not ports publish a per-symbol Python-parity ledger, and no two // use the same shape: diff --git a/scripts/test-all.sh b/scripts/test-all.sh index f5cbbc020..3c33205c4 100755 --- a/scripts/test-all.sh +++ b/scripts/test-all.sh @@ -71,6 +71,11 @@ node scripts/check-api-links.mjs step 'mention index' node scripts/gen-mentions.mjs --check +# The commands, options and keys that workspace prose links to, read from the +# CLI Manual and Configuration pages. The negative case is a unit test. +step 'workspace entity index' +node scripts/gen-workspace-entities.mjs --check + # The curated reference sidebar, against the model it curates: a symbol no # bucket claims, a bucket no port fills, a symbol two buckets claim, and an # exemption that has started matching again. @@ -133,6 +138,19 @@ node scripts/gen-example-sources.mjs --check step 'example sources (negative)' node scripts/gen-example-sources.negative.mjs +# The tmux catalog is extracted from the C tables at the pinned tags and +# committed. Without a tmux checkout this verifies its digests and shape; set +# LIBTMUX_TMUX_SOURCE to a clone to regenerate and compare as well. +step 'tmux catalog' +if [ -n "${LIBTMUX_TMUX_SOURCE:-}" ]; then + node scripts/gen-tmux-catalog.mjs --check --source "$LIBTMUX_TMUX_SOURCE" +else + node scripts/gen-tmux-catalog.mjs --check +fi + +step 'tmux catalog (negative)' +node scripts/gen-tmux-catalog.negative.mjs + step 'shell port table' node scripts/gen-shell-ports.mjs --check @@ -169,6 +187,12 @@ node scripts/gen-registry.negative.mjs step 'source links' node scripts/check-source-links.mjs +step 'example indentation' +node scripts/check-example-indentation.mjs + +step 'example indentation (negative)' +node scripts/check-example-indentation.negative.mjs + step 'unit tests' LIBTMUX_DOCS_TEST_SOURCE_ONLY=1 pnpm run --recursive --if-present test diff --git a/scripts/test-loop.mjs b/scripts/test-loop.mjs index 06668162d..d3d4392eb 100644 --- a/scripts/test-loop.mjs +++ b/scripts/test-loop.mjs @@ -73,6 +73,8 @@ try { node('scripts/check-api-links.mjs'), node('scripts/check-nav.mjs'), node('scripts/gen-mentions.mjs', '--check'), + node('scripts/gen-workspace-entities.mjs', '--check'), + node('scripts/gen-tmux-catalog.mjs', '--check'), node('scripts/gen-shell-ports.mjs', '--check'), node('scripts/gen-brand-css.mjs', '--check'), ) diff --git a/scripts/type-links-ceiling.json b/scripts/type-links-ceiling.json index 2e87e1db1..b0e5800cd 100644 --- a/scripts/type-links-ceiling.json +++ b/scripts/type-links-ceiling.json @@ -1,6 +1,6 @@ { "py": 262, - "ruby": 2051, + "ruby": 2910, "lua": 98, "powershell": 0, "julia": 159, @@ -10,7 +10,7 @@ "java": 137, "csharp": 44, "cxx": 342, - "swift": 1959, + "swift": 2342, "kotlin": 2978, "scala": 3252, "fsharp": 252 diff --git a/site/astro.config.ts b/site/astro.config.ts index 4172987cb..a9ac855f1 100644 --- a/site/astro.config.ts +++ b/site/astro.config.ts @@ -19,9 +19,10 @@ import { danglingReport } from './src/integrations/dangling-report' import { inventory } from './src/integrations/inventory' import { rehypeApiLinks } from './src/plugins/rehype-api-links' import { rehypeRowAnchors } from './src/plugins/rehype-row-anchors' +import { rehypeTmuxKeys } from './src/plugins/rehype-tmux-keys' import { remarkDocumenterHeadings } from './src/plugins/remark-documenter-headings' import { PORT_BY_SLUG, PORTS } from './src/lib/ports.ts' -import { tmuxProsePath, workspaceRedirectPath } from './src/lib/docs-paths.ts' +import { MOVED_PAGES, tmuxProsePath, workspaceRedirectPath } from './src/lib/docs-paths.ts' import { SOURCE_GUIDE_PORTS, sourceGuidesFor, sourceGuideRedirectsFor } from './src/lib/port-documentation.ts' import { KNOWN_PORTS } from './src/lib/workspace-shared-slots.ts' import { isLegacyTmuxManualPath } from './src/lib/tmux-manual-data.ts' @@ -115,6 +116,13 @@ const isSourceGuideRedirect = (page: string): boolean => { return sourceGuideAliases.get(port)?.has(route.join('/')) ?? false } +/** A retired URL that now only redirects to the page's new home. */ +const isMovedPage = (page: string): boolean => { + const segments = new URL(page).pathname.split('/').filter(Boolean) + const path = (LOCALES.includes(segments[0] as never) ? segments.slice(1) : segments).join('/') + return MOVED_PAGES.some((moved) => moved.path === path) +} + /** `///` itself: a `noindex` redirect, not the tree beneath it. */ const isPortRoot = (page: string): boolean => { const segments = new URL(page).pathname.replace(/^\/+|\/+$/g, '').split('/') @@ -146,9 +154,9 @@ export default defineConfig({ sitemap({ filter: (page) => !page.includes('/pr-') && !page.includes('/demo') && !isPlaceholder(page) && - !isWorkspaceRedirect(page) && !isSourceGuideRedirect(page) && !isPortRoot(page) && + !isWorkspaceRedirect(page) && !isSourceGuideRedirect(page) && !isMovedPage(page) && !isPortRoot(page) && !isLegacyTmuxManualPath(new URL(page).pathname) && - !/\/tmux\/(?!latest\/)[^/]+\/(?:manual|reference)\//.test(new URL(page).pathname), + !/\/tmux\/(?!latest\/)[^/]+\/(?:manual|reference|catalog)\//.test(new URL(page).pathname), }), ] : []), @@ -330,6 +338,8 @@ export default defineConfig({ // fences are still plain `pre > code.language-*`. Wrapping them here // is what lets expressive-code render inside the panels. rehypeCodeTabs, + // Before the API linker, so a key such as `C-c` is never read as a reference. + rehypeTmuxKeys, // After the tab grouping, before the autolinker: the tables it reads // are untouched by both, and running last keeps its wrappers out // of the heading-anchor pass. diff --git a/site/public/_shell/shell.js b/site/public/_shell/shell.js index 615004130..300607d9b 100644 --- a/site/public/_shell/shell.js +++ b/site/public/_shell/shell.js @@ -4,21 +4,21 @@ // >>> generated from site/src/lib/ports.ts by scripts/gen-shell-ports.mjs var PORTS = [ - {"slug":"py","name":"Python","shortName":"Py","logoLanguage":"python","versionedDocs":true}, - {"slug":"ruby","name":"Ruby","shortName":"Rb","logoLanguage":"ruby","versionedDocs":true}, - {"slug":"lua","name":"Lua","shortName":"Lua","logoLanguage":"lua","versionedDocs":true}, - {"slug":"powershell","name":"PowerShell","shortName":"PowerShell","logoLanguage":"powershell","versionedDocs":true}, - {"slug":"julia","name":"Julia","shortName":"Julia","logoLanguage":"julia","versionedDocs":true}, - {"slug":"ts","name":"TypeScript","shortName":"TS","logoLanguage":"typescript","versionedDocs":true}, - {"slug":"rs","name":"Rust","shortName":"Rs","logoLanguage":"rust","versionedDocs":true}, - {"slug":"go","name":"Go","shortName":"Go","logoLanguage":"go","versionedDocs":true}, - {"slug":"java","name":"Java","shortName":"Java","logoLanguage":"java","versionedDocs":true}, - {"slug":"kotlin","name":"Kotlin","shortName":"Kt","logoLanguage":"kotlin","versionedDocs":true}, - {"slug":"scala","name":"Scala","shortName":"Sc","logoLanguage":"scala","versionedDocs":true}, - {"slug":"csharp","name":"C#","shortName":"C#","logoLanguage":"csharp","versionedDocs":true}, - {"slug":"fsharp","name":"F#","shortName":"F#","logoLanguage":"fsharp","versionedDocs":true}, - {"slug":"cxx","name":"C++","shortName":"C++","logoLanguage":"cpp","versionedDocs":true}, - {"slug":"swift","name":"Swift","shortName":"Sw","logoLanguage":"swift","versionedDocs":true}, + {"slug":"py","name":"Python","shortName":"Py","logoLanguage":"python","versionedDocs":true,"mcp":true}, + {"slug":"ruby","name":"Ruby","shortName":"Rb","logoLanguage":"ruby","versionedDocs":true,"mcp":true}, + {"slug":"lua","name":"Lua","shortName":"Lua","logoLanguage":"lua","versionedDocs":true,"mcp":false}, + {"slug":"powershell","name":"PowerShell","shortName":"PowerShell","logoLanguage":"powershell","versionedDocs":true,"mcp":false}, + {"slug":"julia","name":"Julia","shortName":"Julia","logoLanguage":"julia","versionedDocs":true,"mcp":true}, + {"slug":"ts","name":"TypeScript","shortName":"TS","logoLanguage":"typescript","versionedDocs":true,"mcp":true}, + {"slug":"rs","name":"Rust","shortName":"Rs","logoLanguage":"rust","versionedDocs":true,"mcp":true}, + {"slug":"go","name":"Go","shortName":"Go","logoLanguage":"go","versionedDocs":true,"mcp":true}, + {"slug":"java","name":"Java","shortName":"Java","logoLanguage":"java","versionedDocs":true,"mcp":true}, + {"slug":"kotlin","name":"Kotlin","shortName":"Kt","logoLanguage":"kotlin","versionedDocs":true,"mcp":false}, + {"slug":"scala","name":"Scala","shortName":"Sc","logoLanguage":"scala","versionedDocs":true,"mcp":false}, + {"slug":"csharp","name":"C#","shortName":"C#","logoLanguage":"csharp","versionedDocs":true,"mcp":true}, + {"slug":"fsharp","name":"F#","shortName":"F#","logoLanguage":"fsharp","versionedDocs":true,"mcp":false}, + {"slug":"cxx","name":"C++","shortName":"C++","logoLanguage":"cpp","versionedDocs":true,"mcp":true}, + {"slug":"swift","name":"Swift","shortName":"Sw","logoLanguage":"swift","versionedDocs":true,"mcp":true}, ] // <<< end generated @@ -183,10 +183,11 @@ localeSwitcher.querySelector('ul').appendChild(localeItem) pageSwitchers.appendChild(localeSwitcher) controls.appendChild(pageSwitchers) - ;[['Reference', '/reference/'], ['MCP', '/mcp/'], ['Search', '/search/']].forEach(function (entry) { + ;[['Reference', '/reference/', false], ['MCP', '/mcp/', true], ['Search', '/search/', true]].forEach(function (entry) { + if (entry[0] === 'MCP' && !(portMeta && portMeta.mcp)) return var link = document.createElement('a') link.className = 'lt-shell-search-link' - link.href = entry[0] === 'Search' && currentPort && currentVersion + link.href = entry[2] && currentPort && currentVersion ? siteRoot + '/' + currentPort + '/' + currentVersion + entry[1] : siteRoot + entry[1] link.textContent = entry[0] @@ -212,7 +213,7 @@ }) var item = document.createElement('li') var link = document.createElement('a') - link.href = siteRoot + '/third-party-notices/' + link.href = siteRoot + '/meta/third-party-notices/' link.textContent = 'Third-party notices' item.appendChild(link) list.appendChild(item) diff --git a/site/scripts/check-badge-centring.mjs b/site/scripts/check-badge-centring.mjs new file mode 100644 index 000000000..eac42dc3f --- /dev/null +++ b/site/scripts/check-badge-centring.mjs @@ -0,0 +1,524 @@ +#!/usr/bin/env node +import assert from 'node:assert/strict' +import { PNG } from 'pngjs' +import { chromium } from 'playwright' + +/** + * The kind mark's ink sits centred in its box, and a chip's mark and word are + * one line of text. Measured from the pixels of real pages, not from the CSS. + * + * A mark's box snaps to an even height and its baseline to a whole pixel, so + * the gap above the ink and the gap below it differ by at most one device + * pixel, at any sub-pixel position of the line it sits in. A legend chip or a + * split chip is one line of text: the mark's baseline and the word's baseline + * are the same row, and the text run's cap-height block sits within one device + * pixel of the chip's centre. + * + * Samples 1x and a real 2x (a Chromium launched with a device scale factor, + * which snaps text to device pixels as a hi-dpi screen does; the emulated factor + * snaps to CSS pixels and is not evidence), light and dark. + * + * `p` and `$` are not measured: their ink hangs below the baseline. + */ +const PAGES = [ + { label: 'Rust MCP reference', path: '/rs/latest/mcp/reference/mcp-caller-calleridentity-from_env/' }, + { label: 'Python attaching-to-tmux', path: '/py/stable/guides/attaching-to-tmux/' }, + { label: 'TypeScript reference', path: '/ts/latest/reference/client-client/' }, + { label: 'Go reference', path: '/go/latest/reference/tmux-server-server/' }, + { label: 'tmux manual', path: '/tmux/latest/manual/list-clients/' }, + { label: 'Rust reference index', path: '/rs/latest/reference/' }, + { label: 'Rust type page', path: '/rs/latest/reference/server-server/' }, + { label: 'Rust MCP tools', path: '/rs/latest/mcp/tools/' }, + { label: 'Rust MCP tool', path: '/rs/latest/mcp/tools/create_window/' }, + { label: 'Rust struct', path: '/rs/latest/reference/session-session/' }, + { label: 'TypeScript async method', path: '/ts/latest/reference/server-server-withconnection/' }, + { label: 'TypeScript static attribute', path: '/ts/latest/reference/errors-libtmuxerror-code/' }, + { label: 'TypeScript readonly attribute', path: '/ts/latest/reference/client-client-clientbrand/' }, +] +const SPLIT = '.api-elsewhere-value, .api-command-related, nav.api-related' +// A compact mark that leads a bare name: an index or tool card, and a member list row. +const ROW_MARKS = '.api-index-card:not(.api-related-card) .api-index-card__link > .api-nav__kind:first-child, .api-member-list li > span:first-child > .api-nav__kind:first-child' +const PER_GROUP = 12 +// The preview card is out of the way, and the dotted preview underline is ink below the baseline that the measurement would read as the word. +const MEASURING_STYLE = '.reference-link-preview { display: none !important; } *, *::before, *::after { text-decoration: none !important; }' +const SKIP = new Set(['p', '$']) + +/** The device pixels of an element and a margin around it, with what the measurement needs to know about it. */ +export async function sample(page, handle, kind) { + await handle.scrollIntoViewIfNeeded() + const info = await handle.evaluate((element, kind) => { + const pick = kind === 'mark' || kind === 'row' || kind === 'mod' ? element.querySelector(':scope > .api-badge__label, .api-badge__label') : kind === 'leg' ? element.querySelector('.api-leg__g') : element.querySelector(':scope > .api-nav__kind > .api-badge__label') + const word = kind === 'mod' ? pick : kind === 'leg' ? element.querySelector('.api-leg__wl') : kind === 'split' ? element.querySelector(':scope > .api-nav__kind + code') : null + const style = getComputedStyle(element) + // Document coordinates: the screenshot clip is relative to the page, not to the scrolled viewport. + const rectOf = (node) => { const r = node.getBoundingClientRect(); return { x: r.x + scrollX, y: r.y + scrollY, w: r.width, h: r.height } } + const plain = (r) => ({ x: r.x + scrollX, y: r.y + scrollY, w: r.width, h: r.height }) + // A mark that leads a name: the name is whatever follows it, and its first line is what the mark must centre on. + let name = null + if (kind === 'row') { + const range = document.createRange() + range.setStartAfter(element) + range.setEndAfter(element.parentElement.lastChild) + const first = [...range.getClientRects()].find((r) => r.width > 1 && r.height > 1) + if (first) name = plain(first) + } + const box = rectOf(element) + return { + box, label: pick && rectOf(pick), word: name ?? (word && rectOf(word)), + gap: name ? name.x - (box.x + box.w) : undefined, + text: pick?.textContent ?? '', wordFont: kind === 'row' ? parseFloat(getComputedStyle(element.parentElement).fontSize) : word ? parseFloat(getComputedStyle(word).fontSize) : 0, + border: { top: parseFloat(style.borderTopWidth), bottom: parseFloat(style.borderBottomWidth) }, + dpr: devicePixelRatio, + } + }, kind) + const margin = 6 + // A row's clip spans the mark and the first line of its name. + const right = info.gap === undefined ? info.box.x + info.box.w : info.word.x + info.word.w + const clip = { x: Math.max(0, info.box.x - margin), y: Math.max(0, info.box.y - margin), width: right - info.box.x + margin * 2, height: info.box.h + margin * 2 } + const png = PNG.sync.read(await page.screenshot({ clip, fullPage: true })) + return { info, clip, png } +} + +const channel = (png, x, y) => { const i = (png.width * y + x) * 4; return [png.data[i], png.data[i + 1], png.data[i + 2]] } +const distance = (a, b) => Math.abs(a[0] - b[0]) + Math.abs(a[1] - b[1]) + Math.abs(a[2] - b[2]) + +function modeColour(png, x0, x1, y0, y1) { + const counts = new Map() + for (let y = y0; y < y1; y++) for (let x = x0; x < x1; x++) { + const key = channel(png, x, y).join(',') + counts.set(key, (counts.get(key) ?? 0) + 1) + } + return [...counts.entries()].sort((a, b) => b[1] - a[1])[0][0].split(',').map(Number) +} + +/** The inner box of the element, found from its painted edges, and the ink rows of a label or word inside it. */ +export function measure({ info, clip, png }, kind) { + const dpr = info.dpr + const toX = (value) => Math.round((value - clip.x) * dpr) + const background = channel(png, 1, 1) + const centre = Math.round((toX(info.box.x) + toX(info.box.x + info.box.w)) / 2) + let top = -1, bottom = -1 + for (let y = 0; y < png.height; y++) if (distance(channel(png, centre, y), background) > 12) { top = y; break } + for (let y = png.height - 1; y >= 0; y--) if (distance(channel(png, centre, y), background) > 12) { bottom = y; break } + if (top < 0 || bottom < 0) return undefined + const border = (width) => (width <= 0 ? 0 : Math.max(1, Math.floor(width * dpr))) + const inner = { top: top + border(info.border.top), bottom: bottom + 1 - border(info.border.bottom) } + const columns = (rect) => [Math.max(toX(rect.x), 1), Math.min(toX(rect.x + rect.w), png.width - 1)] + const rowsOf = (x0, x1) => { + const region = [] + for (let y = inner.top; y < inner.bottom; y++) { const row = []; for (let x = x0; x < x1; x++) row.push(channel(png, x, y)); region.push(row) } + const mode = modeColour(png, x0, x1, inner.top, inner.bottom) + const strength = region.map((row) => Math.max(...row.map((pixel) => distance(pixel, mode)))) + const peak = Math.max(...strength) + return { region, mode, strength, peak } + } + const [lx0, lx1] = columns(info.label) + const mark = rowsOf(lx0, lx1) + if (mark.peak < 60) return undefined + const strong = mark.strength.map((value, index) => (value >= 0.6 * mark.peak ? index : -1)).filter((index) => index >= 0) + const faint = mark.strength.map((value, index) => (value >= 0.08 * mark.peak ? index : -1)).filter((index) => index >= 0) + const inkTop = inner.top + strong[0], inkBottom = inner.top + strong.at(-1) + 1 + const out = { dpr } + // Gap above the ink minus the gap below it, from whole rows and from partly covered edge rows. + out.whole = (inkTop - inner.top) - (inner.bottom - inkBottom) + const coverage = (index) => Math.min(1, mark.strength[index] / mark.peak) + const subTop = inner.top + faint[0] + (1 - coverage(faint[0])) + const subBottom = inner.top + faint.at(-1) + coverage(faint.at(-1)) + out.fine = (subTop - inner.top) - (inner.bottom - subBottom) + if (info.gap !== undefined) { out.gap = info.gap; out.font = info.wordFont } + if (kind !== 'mark' && info.word) { + const [wx0, wx1] = columns(info.word) + const word = rowsOf(wx0, wx1) + const density = word.region.map((row) => row.filter((pixel) => distance(pixel, word.mode) >= 0.5 * word.peak).length) + const densest = Math.max(...density) + let baseline = inner.top + Math.max(...density.map((value, index) => (value >= 0.35 * densest ? index : -1))) + 1 + if (kind === 'row') { + // A name carries descenders (g, p, y, _), which fool the densest-rows rule. Most letters end on the baseline, so it is the row where the most columns of ink end. + const ends = new Map() + for (let column = 0; column < word.region[0].length; column++) { + for (let y = word.region.length - 1; y >= 0; y--) { + if (distance(word.region[y][column], word.mode) >= 0.5 * word.peak) { ends.set(y, (ends.get(y) ?? 0) + 1); break } + } + } + baseline = inner.top + [...ends.entries()].sort((a, b) => b[1] - a[1])[0][0] + 1 + } + const cap = info.wordFont * 0.698 * dpr + out.baselineGap = baseline - inkBottom + out.runCentre = (baseline - cap / 2) - (inner.top + inner.bottom) / 2 + } + return out +} + +/** A violation is more than one device pixel by whole rows and by partial rows; a chip's baselines must be the same row. */ +export function judge(label, result, kind, { skipBaseline = false } = {}) { + if (!result) return [] + const failures = [] + if (kind === 'mark' || kind === 'row') { + if (Math.abs(result.whole) > 1 && Math.abs(result.fine) > 1.25) failures.push(`${label}: ink is ${result.whole} device px off centre`) + } + if (kind === 'mod') { + // A modifier is one word in an outline: its capitals centre in the chip, as the legend chip's run does. + if (Math.abs(result.runCentre) > 1) failures.push(`${label}: the word is ${result.runCentre.toFixed(1)} device px off the chip's centre`) + } else if (kind === 'row') { + // The name's capitals centre on the mark, and the two do not touch. + if (Math.abs(result.runCentre) > 1.25) failures.push(`${label}: the name is ${result.runCentre.toFixed(1)} device px off the mark's centre`) + if (result.gap < 4) failures.push(`${label}: the mark is ${result.gap.toFixed(1)}px from the name`) + else if (result.gap > 0.75 * result.font) failures.push(`${label}: the mark is ${result.gap.toFixed(1)}px from the name, more than the gap rule allows`) + } else if (kind !== 'mark') { + if (!skipBaseline && result.baselineGap !== undefined && Math.abs(result.baselineGap) > 0.5) failures.push(`${label}: the mark and the word are ${result.baselineGap} device px apart on the baseline`) + if (result.runCentre !== undefined && Math.abs(result.runCentre) > 1) failures.push(`${label}: the text run is ${result.runCentre.toFixed(1)} device px off the chip's centre`) + } + return failures +} + +const GROUPS = [ + { kind: 'mark', selector: `.api-nav__kind:not(:is(${SPLIT.split(', ').map((s) => `${s} a > .api-nav__kind`).join(', ')}))`, name: 'mark' }, + { kind: 'leg', selector: '.api-leg', name: 'legend chip' }, + { kind: 'split', selector: SPLIT.split(', ').map((s) => `${s} a:has(> .api-nav__kind)`).join(', '), name: 'split chip' }, + { kind: 'row', selector: ROW_MARKS, name: 'card and list mark' }, + { kind: 'mod', selector: '.api-badge--mod', name: 'modifier chip' }, +] + + +/** + * The related-APIs chips in the contents column: each is one outlined box that + * contains its mark and its name, no box overlaps the next, and the rows are + * evenly spaced. Measured from the laid-out boxes, since the failure it guards + * is a box that does not hold its content. + */ +export async function railProblems(page) { + const rows = await page.evaluate(() => [...document.querySelectorAll('nav.api-related a:has(> .api-nav__kind)')].filter((a) => a.offsetParent).map((a) => { + const box = (node) => { const r = node.getBoundingClientRect(); return { top: r.top, bottom: r.bottom, left: r.left, right: r.right } } + return { chip: box(a), mark: box(a.querySelector(':scope > .api-nav__kind')), name: box(a.querySelector(':scope > code')), text: a.textContent.trim(), clipped: a.scrollHeight > a.clientHeight + 1 || a.scrollWidth > a.clientWidth + 1 } + })) + const problems = [] + const slack = 0.51 + for (const row of rows) { + for (const part of ['mark', 'name']) { + const inside = row[part].top >= row.chip.top - slack && row[part].bottom <= row.chip.bottom + slack && row[part].left >= row.chip.left - slack && row[part].right <= row.chip.right + slack + if (!inside) problems.push(`${row.text}: the chip's box does not contain its ${part}`) + } + // The mark is the chip's cap: it spans the chip's full height, and nothing is clipped by the chip's edge. + if (row.mark.bottom - row.mark.top < row.chip.bottom - row.chip.top - 2 - slack) problems.push(`${row.text}: the mark does not fill the chip's height`) + if (row.clipped) problems.push(`${row.text}: the chip clips its content`) + } + const gaps = rows.slice(1).map((row, index) => row.chip.top - rows[index].chip.bottom) + gaps.forEach((gap, index) => { if (gap < 0) problems.push(`${rows[index + 1].text}: overlaps the row above by ${(-gap).toFixed(1)}px`) }) + if (gaps.length && Math.max(...gaps) - Math.min(...gaps) > 1) problems.push(`rows are unevenly spaced: gaps run ${Math.min(...gaps).toFixed(1)} to ${Math.max(...gaps).toFixed(1)}px`) + return { rows: rows.length, problems } +} + +/** + * A group heading is one line: the title, the count and the permalink share a baseline. + * Each is probed with a zero-size inline box, which sits on the baseline of the line it is in. + */ +export async function headingProblems(page) { + const found = await page.evaluate(() => [...document.querySelectorAll('h2.api-index-summary')].filter((h) => h.offsetParent && h.querySelector('.headerlink')).slice(0, 6).map((heading) => { + const baseline = (host) => { + const probe = document.createElement('span') + probe.style.cssText = 'display:inline-block;width:0;height:0' + host.prepend(probe) + const y = probe.getBoundingClientRect().bottom + probe.remove() + return y + } + const parts = { title: heading, count: heading.querySelector(':scope > span'), permalink: heading.querySelector(':scope > .headerlink') } + return { text: heading.firstChild?.textContent?.trim() ?? '', baselines: Object.fromEntries(Object.entries(parts).filter(([, node]) => node).map(([name, node]) => [name, baseline(node)])) } + })) + const problems = [] + for (const { text, baselines } of found) { + const values = Object.values(baselines) + if (Math.max(...values) - Math.min(...values) > 0.5) problems.push(`group heading "${text}": title, count and permalink are not on one baseline (${Object.entries(baselines).map(([name, y]) => `${name} ${y.toFixed(1)}`).join(', ')})`) + } + return { headings: found.length, problems } +} + + +/** + * The protocol sidebar (MCP tools, prompts, resources): its groups name their + * kind, so a row carries a mark only in a group that mixes kinds, and the mark + * is inline at the row's normal gap. There is no gutter: a row without a mark + * starts its text at the row's indent. The kind stays on every row for + * assistive technology (`aria-description`). + */ +export function protocolSidebarProblems(page) { + return page.evaluate(() => { + const nav = document.querySelector('.api-nav[data-marks="mixed"]') + if (!nav) return { groups: 0, marks: 0, rows: 0, problems: [] } + const problems = [] + let groups = 0, marks = 0, rows = 0 + for (const group of nav.querySelectorAll('ul[role="group"]')) { + const entries = [...group.querySelectorAll(':scope > li > a.api-nav__row, :scope > li > div.api-nav__row')].filter((row) => row.offsetParent) + if (!entries.length) continue + groups++ + const label = group.closest('li[role="treeitem"]')?.querySelector(':scope > .api-nav__row .api-nav__label')?.textContent?.trim() ?? 'a group' + const kindOf = (row) => row.getAttribute('aria-description') ?? row.closest('li[role="treeitem"]')?.getAttribute('aria-description') ?? undefined + const kinds = new Set(entries.map(kindOf).filter(Boolean)) + for (const row of entries) { + rows++ + const mark = row.querySelector(':scope > .api-nav__kind') + const name = row.querySelector(':scope .api-nav__label')?.textContent?.trim() ?? '' + if (kindOf(row) === undefined) continue + if (mark) marks++ + if (kinds.size <= 1 && mark) problems.push(`"${name}" under "${label}" repeats a kind the group already names`) + if (kinds.size > 1 && !mark) problems.push(`"${name}" under "${label}" has no mark in a group that mixes kinds`) + if (!row.matches('a')) continue + // No gutter: the first thing in the row starts at the row's own indent, and a mark is one gap from the name. + const indent = row.getBoundingClientRect().left + parseFloat(getComputedStyle(row).paddingLeft) + const text = row.querySelector(':scope > .api-nav__label') + const textStart = text.getBoundingClientRect().left + parseFloat(getComputedStyle(text).paddingLeft) + const lead = mark ? mark.getBoundingClientRect().left : textStart + if (Math.abs(lead - indent) > 1) problems.push(`"${name}" under "${label}" starts ${(lead - indent).toFixed(1)}px from its indent: a gutter`) + if (mark) { + const gap = textStart - mark.getBoundingClientRect().right + if (gap < 3 || gap > 6) problems.push(`"${name}" under "${label}": the mark is ${gap.toFixed(1)}px from the name`) + } + } + } + return { groups, marks, rows, problems } + }) +} + +/** + * The API tree keeps its fixed gutter: every mark sits at the same distance + * from the left of its row, whatever the row's level, so a reader scans down + * one column. + */ +export function apiTreeGutterProblems(page) { + return page.evaluate(() => { + const nav = document.querySelector('.api-nav:not([data-marks])') + if (!nav) return { marks: 0, problems: [] } + const found = [...nav.querySelectorAll('.api-nav__row > .api-nav__kind')].filter((mark) => mark.offsetParent).map((mark) => { + const row = mark.parentElement + return { offset: mark.getBoundingClientRect().left - row.getBoundingClientRect().left, level: Number(getComputedStyle(row).getPropertyValue('--level')) } + }) + const problems = [] + if (found.length) { + const offsets = found.map((entry) => entry.offset) + if (Math.max(...offsets) - Math.min(...offsets) > 1) problems.push(`marks do not share one gutter: offsets run ${Math.min(...offsets).toFixed(1)} to ${Math.max(...offsets).toFixed(1)}px across levels ${[...new Set(found.map((entry) => entry.level))].join(', ')}`) + } + return { marks: found.length, problems } + }) +} + +async function checkPage(page, base, entry, scheme, results) { + await page.goto(`${base}${entry.path}`, { waitUntil: 'load' }) + await page.waitForFunction(() => document.documentElement.dataset.pageReadiness === 'ready', null, { timeout: 30000 }).catch(() => {}) + await page.addStyleTag({ content: MEASURING_STYLE }) + for (const group of GROUPS) { + const handles = page.locator(group.selector).filter({ visible: true }) + const count = Math.min(await handles.count(), PER_GROUP) + for (let index = 0; index < count; index++) { + const handle = handles.nth(index) + const measured = measure(await sample(page, await handle.elementHandle(), group.kind), group.kind) + const text = await handle.evaluate((element) => element.textContent.trim().slice(0, 12)) + if (SKIP.has(text.charAt(0)) && (group.kind === 'mark' || group.kind === 'row')) continue + results.measured++ + results.failures.push(...judge(`${entry.label} (${scheme}) ${group.name} "${text}"`, measured, group.kind, { skipBaseline: SKIP.has(text.charAt(0)) })) + } + results.counts[group.name] = (results.counts[group.name] ?? 0) + count + } + const rail = await railProblems(page) + results.counts['related chip row'] = (results.counts['related chip row'] ?? 0) + rail.rows + results.failures.push(...rail.problems.map((problem) => `${entry.label} (${scheme}) related APIs: ${problem}`)) + const protocol = await protocolSidebarProblems(page) + results.counts['protocol sidebar group'] = (results.counts['protocol sidebar group'] ?? 0) + protocol.groups + results.counts['protocol sidebar row'] = (results.counts['protocol sidebar row'] ?? 0) + protocol.rows + results.failures.push(...protocol.problems.map((problem) => `${entry.label} (${scheme}) sidebar: ${problem}`)) + const gutter = await apiTreeGutterProblems(page) + results.counts['API tree mark'] = (results.counts['API tree mark'] ?? 0) + gutter.marks + results.failures.push(...gutter.problems.map((problem) => `${entry.label} (${scheme}) API tree: ${problem}`)) + const headings = await headingProblems(page) + results.counts['group heading'] = (results.counts['group heading'] ?? 0) + headings.headings + results.failures.push(...headings.problems.map((problem) => `${entry.label} (${scheme}) ${problem}`)) +} + +/** + * Prove the gate can fail: shift every label and every chip word two pixels and require the same measurement to notice. + */ +async function negativeControl(page, base, results) { + const entry = PAGES[6] + await page.goto(`${base}${entry.path}`, { waitUntil: 'load' }) + await page.waitForFunction(() => document.documentElement.dataset.pageReadiness === 'ready', null, { timeout: 30000 }).catch(() => {}) + await page.addStyleTag({ content: MEASURING_STYLE }) + const style = await page.addStyleTag({ content: '.api-nav__kind > .api-badge__label, .api-leg__wl { translate: 0 2px !important; }' }) + let noticed = 0 + let tested = 0 + const marks = page.locator('.api-nav__kind').filter({ visible: true }) + for (let index = 0; index < Math.min(await marks.count(), 6); index++) { + const handle = marks.nth(index) + const text = await handle.evaluate((element) => element.textContent.trim()) + if (SKIP.has(text)) continue + tested++ + noticed += judge('control', measure(await sample(page, await handle.elementHandle(), 'mark'), 'mark'), 'mark').length + } + await style.evaluate((node) => node.remove()) + results.control = noticed + results.controlTested = tested + assert(noticed > 0, 'The centring gate noticed no mark shifted by 2px: it cannot fail') + + // A chip that inherits the contents column's link padding no longer holds its content. + await page.goto(`${base}${PAGES[6].path}`, { waitUntil: 'load' }) + await page.waitForFunction(() => document.documentElement.dataset.pageReadiness === 'ready', null, { timeout: 30000 }).catch(() => {}) + const clean = await railProblems(page) + assert(clean.rows > 1 && clean.problems.length === 0, `The related chips are not clean before the control: ${clean.problems.join('; ')}`) + const padded = await page.addStyleTag({ content: 'nav.api-related a:has(> .api-nav__kind) { padding: .4rem .35rem !important; }' }) + results.railControl = (await railProblems(page)).problems.length + await padded.evaluate((node) => node.remove()) + assert(results.railControl > 0, 'The rail check did not notice a chip that does not contain its content') + + // A modifier word shifted two pixels inside its chip. + await page.goto(`${base}${PAGES[10].path}`, { waitUntil: 'load' }) + await page.waitForFunction(() => document.documentElement.dataset.pageReadiness === 'ready', null, { timeout: 30000 }).catch(() => {}) + await page.addStyleTag({ content: MEASURING_STYLE }) + const chip = page.locator('.api-badge--mod').filter({ visible: true }).first() + assert.deepEqual(judge('control', measure(await sample(page, await chip.elementHandle(), 'mod'), 'mod'), 'mod'), [], 'The modifier chip is not centred before the control') + const shifted = await page.addStyleTag({ content: '.api-badge--mod > .api-badge__label { translate: 0 2px !important; }' }) + results.modControl = judge('control', measure(await sample(page, await chip.elementHandle(), 'mod'), 'mod'), 'mod').length + await shifted.evaluate((node) => node.remove()) + assert(results.modControl > 0, 'The modifier check did not notice a word shifted off its chip\'s centre') + + // The protocol sidebar: a redundant mark under a group of one kind must fail, and a mark in a mixed group must pass. + await page.goto(`${base}${PAGES[8].path}`, { waitUntil: 'load' }) + await page.waitForFunction(() => document.documentElement.dataset.pageReadiness === 'ready', null, { timeout: 30000 }).catch(() => {}) + const sidebar = await protocolSidebarProblems(page) + assert(sidebar.groups > 0 && sidebar.problems.length === 0, `The protocol sidebar is not clean before the control (${sidebar.groups} groups): ${sidebar.problems.join('; ')}`) + // Rows copied out of an open group, with the kinds and marks the control gives them. + const addGroup = (kinds, drawn) => page.evaluate(([kinds, drawn]) => { + const source = [...document.querySelectorAll('.api-nav[data-marks="mixed"] ul[role="group"]')].find((group) => group.querySelector(':scope > li > a.api-nav__leaf')) + const group = source.cloneNode(true) + group.dataset.control = '' + const leaves = [...group.querySelectorAll(':scope > li > a.api-nav__leaf')].slice(0, kinds.length) + for (const item of group.querySelectorAll(':scope > li')) if (!leaves.includes(item.querySelector('a'))) item.remove() + leaves.forEach((leaf, index) => { + leaf.querySelector('.api-nav__kind')?.remove() + leaf.setAttribute('aria-description', kinds[index]) + if (drawn) { + const mark = document.createElement('span') + mark.className = `api-nav__kind api-badge--kind-${kinds[index]}` + mark.innerHTML = 't' + leaf.prepend(mark) + } + }) + source.after(group) + }, [kinds, drawn]) + const control = async (kinds, drawn) => { + await addGroup(kinds, drawn) + const found = (await protocolSidebarProblems(page)).problems + await page.evaluate(() => { document.querySelectorAll('[data-control]').forEach((node) => node.remove()) }) + return found + } + results.sidebarRedundant = (await control(['tool', 'tool'], true)).length + assert(results.sidebarRedundant > 0, 'The sidebar check did not notice a redundant mark under a group of one kind') + results.sidebarMixedBare = (await control(['tool', 'prompt'], false)).length + assert(results.sidebarMixedBare > 0, 'The sidebar check did not notice a mixed group without marks') + results.sidebarMixedMarked = (await control(['tool', 'prompt'], true)).length + assert(results.sidebarMixedMarked === 0, 'The sidebar check rejected marks in a group that mixes kinds') + + // The API tree: breaking the shared gutter must fail. + await page.goto(`${base}${PAGES[6].path}`, { waitUntil: 'load' }) + await page.waitForFunction(() => document.documentElement.dataset.pageReadiness === 'ready', null, { timeout: 30000 }).catch(() => {}) + const gutter = await apiTreeGutterProblems(page) + assert(gutter.marks > 1 && gutter.problems.length === 0, `The API tree gutter is not clean before the control (${gutter.marks} marks): ${gutter.problems.join('; ')}`) + const ragged = await page.addStyleTag({ content: '.api-nav__row { padding-inline-start: calc(.75rem + (var(--level) - 1) * var(--api-nav-indent)) !important; }' }) + results.gutterControl = (await apiTreeGutterProblems(page)).problems.length + await ragged.evaluate((node) => node.remove()) + assert(results.gutterControl > 0, 'The gutter check did not notice marks that stopped sharing a column') + + // A permalink lifted off the line, and a mark pushed against its name and off its centre. + await page.goto(`${base}${PAGES[7].path}`, { waitUntil: 'load' }) + await page.waitForFunction(() => document.documentElement.dataset.pageReadiness === 'ready', null, { timeout: 30000 }).catch(() => {}) + await page.addStyleTag({ content: MEASURING_STYLE }) + assert((await headingProblems(page)).problems.length === 0, 'The group headings are not clean before the control') + const lifted = await page.addStyleTag({ content: 'h2.api-index-summary > .headerlink { vertical-align: 4px !important; }' }) + results.headingControl = (await headingProblems(page)).problems.length + await lifted.evaluate((node) => node.remove()) + assert(results.headingControl > 0, 'The heading check did not notice a permalink off the baseline') + const mark = page.locator(ROW_MARKS).filter({ visible: true }).first() + const touching = await page.addStyleTag({ content: `${ROW_MARKS} { margin-inline-end: 0 !important; top: 3px !important; }` }) + results.rowControl = judge('control', measure(await sample(page, await mark.elementHandle(), 'row'), 'row'), 'row').length + await touching.evaluate((node) => node.remove()) + assert(results.rowControl > 0, 'The row check did not notice a mark that touches its name and sits off its centre') +} + +export async function checkBadgeCentring(browser, base, { sample: bounded = false } = {}) { + const results = { measured: 0, failures: [], counts: {}, control: 0, railControl: 0, headingControl: 0, rowControl: 0, sidebarRedundant: 0, sidebarMixedBare: 0, sidebarMixedMarked: 0, gutterControl: 0, modControl: 0 } + // The bounded sample keeps one page for each thing the gate holds: an MCP and a guide page, the API type page (tree gutter, rail, rows) and an MCP tool (sidebar rule). + const pages = bounded ? [PAGES[0], PAGES[1], PAGES[6], PAGES[8]] : PAGES + const hi = await chromium.launch({ args: ['--force-device-scale-factor=2', '--window-size=1440,1000'] }) + try { + for (const [engine, factor] of [[browser, 1], [hi, 2]]) { + const context = await engine.newContext(factor === 1 ? { viewport: { width: 1440, height: 1000 }, reducedMotion: 'reduce' } : { viewport: null, reducedMotion: 'reduce' }) + const page = await context.newPage() + page.setDefaultTimeout(process.env.CI ? 20000 : 10000) + // The first request for a reference page compiles it in the dev server, and the index and tool pages are large. + page.setDefaultNavigationTimeout(60000) + try { + for (const scheme of ['light', 'dark']) { + await page.emulateMedia({ colorScheme: scheme }) + for (const entry of pages) await checkPage(page, base, entry, `${scheme} ${factor}x`, results) + } + if (factor === 1) await negativeControl(page, base, results) + } finally { await context.close() } + } + } finally { await hi.close() } + assert(results.measured > 20, `Only ${results.measured} badge samples were measurable`) + assert((results.counts['protocol sidebar group'] ?? 0) > 0, 'No protocol sidebar group was measured') + assert((results.counts['API tree mark'] ?? 0) > 0, 'No API tree mark was measured, so the gutter was not checked') + assert.deepEqual(results.failures, [], `Badge centring:\n${results.failures.join('\n')}`) + console.log(`Badge centring: ${results.measured} samples at 1x and a real 2x, light and dark (${Object.entries(results.counts).map(([k, v]) => `${v} ${k}`).join(', ')}); negative controls caught ${results.control} of ${results.controlTested} shifted marks, ${results.railControl} chip problems, ${results.headingControl} heading problem and ${results.rowControl} row problems, ${results.sidebarRedundant} redundant sidebar mark (a mixed group's marks: ${results.sidebarMixedMarked} complaints), ${results.gutterControl} broken gutter, ${results.modControl} shifted modifier word PASS`) +} + +/** + * The density rule on real pages: within a section, the first mention of a name + * carries the mark and a later one is a plain link that keeps its kind. + */ +export async function checkMentionDensity(browser, base) { + const context = await browser.newContext({ viewport: { width: 1440, height: 1000 } }) + const page = await context.newPage() + page.setDefaultNavigationTimeout(60000) + try { + const violations = (target) => target.evaluate(() => { + const found = [] + let section = 0 + const seen = new Set() + const walker = document.createTreeWalker(document.querySelector('main article, main') ?? document.body, NodeFilter.SHOW_ELEMENT) + for (let node = walker.nextNode(); node; node = walker.nextNode()) { + if (/^H[1-6]$/.test(node.tagName)) { section++; seen.clear(); continue } + if (node.tagName !== 'A' || !node.matches('.api-mention, .tmux-mention, .workspace-mention')) continue + const key = `${section}|${node.getAttribute('href')}` + const marked = Boolean(node.querySelector(':scope > .api-link-kind')) + if (seen.has(key)) { + if (marked) found.push(`later mention of ${node.getAttribute('href')} is marked`) + if (!node.getAttribute('aria-label') || !node.dataset.apiKind) found.push(`later mention of ${node.getAttribute('href')} lost its kind`) + } else if (!marked && node.dataset.apiKind === undefined) found.push(`first mention of ${node.getAttribute('href')} is plain`) + seen.add(key) + } + return found + }) + await page.goto(`${base}/py/stable/guides/attaching-to-tmux/`, { waitUntil: 'load' }) + await page.waitForFunction(() => document.documentElement.dataset.pageReadiness === 'ready', null, { timeout: 30000 }).catch(() => {}) + const marked = await page.locator('a:has(> .api-link-kind)').count() + assert(marked > 0, 'No marked mention to check') + assert.deepEqual(await violations(page), [], 'A section marks a repeated name or plain-links a first one') + // Control: repeat a marked mention in its own section and require the check to notice. + await page.evaluate(() => { + const anchor = document.querySelector('a:has(> .api-link-kind).api-mention, a:has(> .api-link-kind).tmux-mention') + const clone = anchor.cloneNode(true) + clone.dataset.control = '' + anchor.after(' ', clone) + }) + const caught = await violations(page) + assert(caught.some((message) => /later mention .* is marked/.test(message)), 'The density check did not notice a repeated marked mention') + console.log(`Mention density: first mention marked, later plain, kind kept in aria-label (${marked} marked mentions on the guide); negative control caught the repeat PASS`) + } finally { await context.close() } +} + +if (import.meta.url === `file://${process.argv[1]}`) { + const url = process.argv.find((arg) => arg.startsWith('--url='))?.slice(6) ?? 'http://localhost:47392/en' + const browser = await chromium.launch() + try { + await checkBadgeCentring(browser, url, { sample: process.argv.includes('--sample') }) + await checkMentionDensity(browser, url) + } finally { await browser.close() } +} diff --git a/site/scripts/check-dev-sample.mjs b/site/scripts/check-dev-sample.mjs index af5f613e1..56630f45d 100644 --- a/site/scripts/check-dev-sample.mjs +++ b/site/scripts/check-dev-sample.mjs @@ -2,13 +2,178 @@ import assert from 'node:assert/strict' import { checkHomeResponsiveLayout } from './check-home-launcher.mjs' import { checkPickerFilters } from './check-picker-filters.mjs' import { checkNavigationBeforeAnalytics } from './check-navigation.mjs' -import { checkRequiredAppearance } from './check-page-readiness.mjs' +import { checkHeaderMenuSections } from './check-header-menu-sections.mjs' +import { checkStatusBadges } from './check-status-badges.mjs' +import { checkDeclarationControlsLevel } from './check-native-layout.mjs' +import { checkBlockLinksUndecorated, checkKindBadgeLinks, checkRequiredAppearance } from './check-page-readiness.mjs' +import { checkTmuxKeys } from './check-tmux-keys.mjs' + +// Row-anchored tables with different first-cell shapes: plain text, code, a +// comma-separated flag pair, and code that wraps in a narrow column. +const ROW_PERMALINK_PAGES = [ + 'rs/latest/concepts/server-session-window-pane/', + 'tmux/concepts/server-session-window-pane/', + 'ruby/latest/workspace/cli/', +] + +/** Where each row's permalink and text sit, measured in the browser. */ +function measureRowPermalinks() { + const first = (rects) => Math.min(...rects.map((rect) => rect.left)) + const contentRects = (cell, link) => { + const range = document.createRange() + range.setStart(cell, 0) + if (link) range.setEndBefore(link) + else range.setEnd(cell, cell.childNodes.length) + return [...range.getClientRects()].filter((rect) => rect.width > 0 && rect.height > 0) + } + return [...document.querySelectorAll('table:has(tr.anchored-entry)')].map((table) => { + const header = table.tHead?.rows[0]?.cells[0] + const headerRects = header ? contentRects(header) : [] + return { + headerInset: headerRects.length ? first(headerRects) - header.getBoundingClientRect().left : null, + rows: [...table.querySelectorAll('tr.anchored-entry')].map((row) => { + const [cell, ...others] = row.cells + const link = cell.querySelector('a[data-row-permalink]') + const label = cell.textContent.replace('¶', '').trim() + if (!link) return { label, link: false } + const linkBox = link.getBoundingClientRect() + const text = contentRects(cell, link) + const y = linkBox.top + linkBox.height / 2 + const line = text.filter((rect) => rect.top - 1 <= y && y <= rect.bottom + 1) + const last = text.at(-1) + const inset = (target, rects) => rects.length ? first(rects) - target.getBoundingClientRect().left : null + return { + label, + link: true, + em: parseFloat(getComputedStyle(cell).fontSize), + gap: line.length ? linkBox.left - Math.max(...line.map((rect) => rect.right)) : null, + trailing: Boolean(last) && y >= last.top - 1 && y <= last.bottom + 1, + inset: inset(cell, text), + otherInsets: others.map((other) => inset(other, contentRects(other))), + opacity: getComputedStyle(link).opacity, + } + }), + } + }) +} + +/** The revealed permalink's contrast against what is behind it. */ +function revealedContrast(id) { + const link = document.getElementById(id).querySelector('a[data-row-permalink]') + const canvas = document.createElement('canvas') + canvas.width = canvas.height = 1 + const context = canvas.getContext('2d', { willReadFrequently: true }) + const rgba = (css) => { + context.clearRect(0, 0, 1, 1) + context.fillStyle = '#000' + context.fillStyle = css + context.fillRect(0, 0, 1, 1) + const [r, g, b, a] = context.getImageData(0, 0, 1, 1).data + return [r, g, b, a / 255] + } + const over = ([r, g, b, a], [br, bg, bb]) => [r * a + br * (1 - a), g * a + bg * (1 - a), b * a + bb * (1 - a)] + const layers = [] + for (let node = link; node; node = node.parentElement) layers.push(rgba(getComputedStyle(node).backgroundColor)) + let ground = [255, 255, 255] + for (const layer of layers.reverse()) ground = over(layer, ground) + const luminance = (channels) => { + const [r, g, b] = channels.map((value) => { + const unit = value / 255 + return unit <= 0.03928 ? unit / 12.92 : ((unit + 0.055) / 1.055) ** 2.4 + }) + return 0.2126 * r + 0.7152 * g + 0.0722 * b + } + const text = over(rgba(getComputedStyle(link).color), ground) + const [light, dark] = [luminance(text), luminance(ground)].sort((a, b) => b - a) + return (light + 0.05) / (dark + 0.05) +} + +/** + * A row's permalink trails the end of its first cell's text with a small gap, + * stays quiet until the row is hovered, focused or targeted, and every cell + * of the row shares one left inset. + */ +export async function checkRowPermalinks(browser, base, pages = ROW_PERMALINK_PAGES) { + let rows = 0 + for (const colorScheme of ['light', 'dark']) { + const context = await browser.newContext({ colorScheme, reducedMotion: 'reduce' }) + const page = await context.newPage() + page.setDefaultTimeout(process.env.CI ? 20000 : 10000) + try { + for (const path of pages) { + const response = await page.goto(`${base}/${path}`) + assert(response?.ok(), `${path}: HTTP ${response?.status()}`) + await page.locator('[data-scheme-cycle]:not([hidden])').waitFor({ state: 'attached' }) + await page.waitForFunction(() => document.fonts.status === 'loaded') + for (const width of [1440, 768, 390]) { + const where = `${colorScheme}/${path}/${width}px` + await page.setViewportSize({ width, height: 1000 }) + await page.mouse.move(0, 0) + const tables = await page.evaluate(measureRowPermalinks) + assert(tables.length > 0, `${where}: the page has row-anchored tables`) + for (const table of tables) { + for (const row of table.rows) { + assert(row.link, `${where}: row "${row.label}" has a permalink`) + if (colorScheme === 'light' && width === 1440) rows++ + assert(row.gap !== null && row.trailing, + `${where}: row "${row.label}" permalink is not on the last line of its text`) + assert(row.gap >= 0.1 * row.em && row.gap <= 0.5 * row.em, + `${where}: row "${row.label}" permalink starts ${row.gap.toFixed(1)}px after its text, outside 0.1em to 0.5em`) + assert(row.inset >= 0.25 * row.em, + `${where}: row "${row.label}" first-column text sits ${row.inset.toFixed(1)}px from the cell edge`) + for (const inset of row.otherInsets.filter((value) => value !== null)) { + assert(Math.abs(inset - row.inset) <= 1, + `${where}: row "${row.label}" first-column inset ${row.inset.toFixed(1)}px differs from another column's ${inset.toFixed(1)}px`) + } + assert.equal(row.opacity, '0', `${where}: row "${row.label}" permalink is quiet at rest`) + } + if (table.headerInset !== null) { + assert(Math.abs(table.headerInset - table.rows[0].inset) <= 1, + `${where}: header and body text share one inset in the first column`) + } + } + const cell = page.locator('tr.anchored-entry > :first-child').first() + const firstRow = page.locator('tr.anchored-entry').first() + const id = await firstRow.getAttribute('id') + const link = firstRow.locator('a[data-row-permalink]') + const reveal = async (state) => { + assert.equal(await link.evaluate((node) => getComputedStyle(node).opacity), '1', + `${where}: the permalink appears when its row is ${state}`) + assert(await page.evaluate(revealedContrast, id) >= 3, + `${where}: the permalink stays legible when its row is ${state}`) + } + await cell.evaluate((node) => node.scrollIntoView({ block: 'center' })) + const box = await cell.boundingBox() + await page.mouse.move(box.x + 4, box.y + box.height / 2) + await reveal('hovered') + await page.mouse.move(0, 0) + await link.focus() + await reveal('focused') + await link.evaluate((node) => node.blur()) + if (width === 390) { + await page.evaluate((target) => { location.hash = target }, id) + await reveal('targeted') + } + } + } + } finally { + await context.close() + } + } + console.log(`Row permalinks: ${rows} rows on ${pages.length} pages trail their text, share one inset and reveal on hover, focus and target in light and dark`) +} /** A bounded rendering sample; the publication audit runs the full matrix. */ export async function checkDevSample(browser, base) { await checkPickerFilters(browser, base) + await checkHeaderMenuSections(browser, base, { ports: ['py', 'java', 'csharp'], schemes: ['light'] }) + await checkStatusBadges(browser, base, { ports: ['go', 'py'], widths: [1440], schemes: ['light'], touch: false }) await checkNavigationBeforeAnalytics(browser, base) await checkRequiredAppearance(browser, base) + await checkRowPermalinks(browser, base) + await checkKindBadgeLinks(browser, base, { sample: true }) + await checkBlockLinksUndecorated(browser, base, { sample: true }) + await checkTmuxKeys(browser, base) const context = await browser.newContext({ reducedMotion: 'reduce' }) const page = await context.newPage() const errors = [] @@ -49,6 +214,9 @@ export async function checkDevSample(browser, base) { if (path === 'mcp/tools/') { assert(layout.tableColumns > 1 && layout.columns?.every((delta) => delta <= 1), `${width}: MCP table columns align`) } + if (path === 'api-example-probe/') { + await checkDeclarationControlsLevel(page.locator('dt.gp-sphinx-api-header').first(), `${path}/${width}: declaration controls`) + } } if (path.startsWith('tmux/')) { assert.match(await page.title(), /\| tmux \| libtmux\.org$/) @@ -89,7 +257,7 @@ export async function checkDevSample(browser, base) { assert.equal(new URL(page.url()).searchParams.get('cleanup'), '1') for (const width of [1440, 628, 390]) await checkHomeResponsiveLayout(page, width, 'rs') assert.deepEqual(errors, [], 'Sampled pages have no runtime errors') - console.log('Fresh browser sample: prose, MCP table, API equivalents, phone picker, and homepage controls PASS') + console.log('Fresh browser sample: prose, MCP table, API equivalents, phone picker, header menu sections, status badges and homepage controls PASS') } finally { await context.close() } diff --git a/site/scripts/check-dev.mjs b/site/scripts/check-dev.mjs index 901869afe..61b35feae 100644 --- a/site/scripts/check-dev.mjs +++ b/site/scripts/check-dev.mjs @@ -7,28 +7,40 @@ import { dev } from 'astro' import { chromium, firefox, webkit } from 'playwright' import { API_MODEL_PORTS, PORTS, productAvailable } from '../src/lib/ports.ts' import { checkClipboard, checkCompleteApiExamples } from './check-clipboard.mjs' -import { checkApiAnchorArrival, checkApiExampleOwnership, checkApiNavigation, checkDocumentationNavigation, checkNavigation } from './check-navigation.mjs' +import { checkApiAnchorArrival, checkApiExampleOwnership, checkApiNavigation, checkApiStickyHeadings, checkApiStickyHeadingsFail, checkDocumentationNavigation, checkNavigation } from './check-navigation.mjs' import { checkReferencePreferences, checkGlobalHeader } from './check-reference-preferences.mjs' +import { checkHeaderMenuSections, checkHeaderMenuSectionsFail } from './check-header-menu-sections.mjs' +import { checkStatusBadges, checkStatusBadgesFail } from './check-status-badges.mjs' import { checkHomeLauncher } from './check-home-launcher.mjs' import { checkHomeTaskReset } from './check-home-task-reset.mjs' import { checkColorScheme } from './check-color-scheme.mjs' import { checkHomeExampleOptions } from './check-home-example-options.mjs' -import { checkDevSample } from './check-dev-sample.mjs' -import { checkNativeSignatureGeometry, checkNativeSignatureLinks } from './check-native-layout.mjs' -import { checkRequiredAppearance, checkWebAnalytics, checkWebAnalyticsTransitions } from './check-page-readiness.mjs' +import { checkDevSample, checkRowPermalinks } from './check-dev-sample.mjs' +import { checkDeclarationControlAlignment, checkDeclarationControlsLevel, checkMemberBodyInsets, checkNativeSignatureGeometry, checkNativeSignatureLinks } from './check-native-layout.mjs' +import { checkBadgeCentring, checkMentionDensity } from './check-badge-centring.mjs' +import { checkBlockLinksUndecorated, checkKindBadgeLinks, checkRequiredAppearance, checkWebAnalytics, checkWebAnalyticsTransitions } from './check-page-readiness.mjs' +import { checkTypeParameters } from './check-type-parameters.mjs' +import { checkTmuxKeys, TMUX_KEY_PAGES } from './check-tmux-keys.mjs' const apiNavigationOnly = process.argv.includes('--api-navigation') const apiAnchorsOnly = process.argv.includes('--api-anchors') +const apiStickyOnly = process.argv.includes('--api-sticky') +const typeParametersOnly = process.argv.includes('--type-parameters') const apiSignaturesOnly = process.argv.includes('--api-signatures') const referenceLayoutOnly = process.argv.includes('--reference-layout') +const memberBodiesOnly = process.argv.includes('--member-bodies') const keywordHelpOnly = process.argv.includes('--keyword-help') const signaturePorts = apiSignaturesOnly ? API_MODEL_PORTS : API_MODEL_PORTS.filter((port) => ['py', 'ts'].includes(port.slug)) const referencePreferencesOnly = process.argv.includes('--reference-preferences') const globalHeaderOnly = process.argv.includes('--global-header') +const headerMenuSectionsOnly = process.argv.includes('--header-menu-sections') +const statusBadgesOnly = process.argv.includes('--status-badges') +const badgeCentringOnly = process.argv.includes('--badge-centring') const homeLauncherOnly = process.argv.includes('--home-launcher') const homeControlsOnly = process.argv.includes('--home-controls') const sampleOnly = process.argv.includes('--sample') +const tmuxKeysOnly = process.argv.includes('--tmux-keys') const serveOnly = process.argv.includes('--serve') const requestedBrowserPort = process.env.LIBTMUX_DOCS_BROWSER_PORT assert(requestedBrowserPort === undefined || /^\d+$/.test(requestedBrowserPort) @@ -382,8 +394,8 @@ async function checkSignatureLayouts(browser, base) { const code = await kotlin.locator('.gp-sphinx-api-layout-left').boundingBox() const toolbar = await kotlin.locator('.gp-sphinx-api-layout-right').boundingBox() if (width === 803 || width === 1920) { - assert(Math.abs(code.y - toolbar.y) < 2, - `${colorScheme}/${width}px: toolbar shares the declaration's first row when it fits`) + const level = await checkDeclarationControlsLevel(kotlin, `${colorScheme}/${width}px: toolbar shares the declaration's first line`) + assert.equal(level.mode, 'beside', `${colorScheme}/${width}px: toolbar shares the declaration's first row when it fits`) assert(code.x + code.width <= toolbar.x, `${colorScheme}/${width}px: declaration leaves room for its toolbar`) } @@ -397,6 +409,8 @@ async function checkSignatureLayouts(browser, base) { } } console.log('Native browse layout: compact F# modules and linked Kotlin function cards work without JavaScript') + const { measured } = await checkDeclarationControlAlignment(browser, base) + console.log(`Declaration controls: ${measured.length} sampled headers keep their controls level with the first signature line at 1440/768/500/390px`) } finally { await page.close() } @@ -491,6 +505,11 @@ async function checkKeywordHelp(browser, base) { console.log('Keyword help: official docs, hover, keyboard, dismissal and viewport bounds pass with and without JavaScript') } +async function checkMemberBodies(browser, base) { + const measured = await checkMemberBodyInsets(browser, base) + console.log(`Member bodies: ${measured} measured, padding alone sets the top and bottom inset at 1440/390px`) +} + async function checkReferenceAndHeroes(browser, base) { const page = await browser.newPage({ reducedMotion: 'reduce' }) page.setDefaultTimeout(process.env.CI ? 20000 : 10000) @@ -577,27 +596,24 @@ async function checkReferenceAndHeroes(browser, base) { await page.setViewportSize({ width, height: 900 }) assert(await page.evaluate(() => document.documentElement.scrollWidth <= innerWidth + 1), `Kotlin parameter and exception fields fit at ${width}px`) - const namespace = await page.locator('.api-qualified-namespace').boundingBox() const copy = await page.getByRole('button', { name: 'Copy fully qualified name' }).boundingBox() - const row = await page.locator('.api-qualified-name').boundingBox() - const title = await page.locator('.api-reference-heading h1').boundingBox() - assert(Math.abs(namespace.y + namespace.height / 2 - copy.y - copy.height / 2) < 2, - `Package and copy control share a center line at ${width}px`) - assert(row.height <= 32 && row.y - title.y - title.height <= 8, - `Package stays in one compact row beneath the heading at ${width}px`) + const row = await page.locator('.api-source-details .api-qualified-name').boundingBox() + assert(copy.y >= row.y - 1 && copy.y + copy.height <= row.y + row.height + 1, + `The copy control sits inside the qualified-name row at ${width}px`) + assert.equal(await page.locator('.api-reference-heading .api-qualified-name').count(), 0, + `The heading carries no qualified-name line at ${width}px`) } for (const name of ['config', 'defaultTimeout', 'toKotlinDuration', 'Duration', 'CoroutineScope', 'StateFlow']) { assert(await page.locator('main a').filter({ hasText: new RegExp(`^${name}$`) }).count() > 0, `Kotlin liveState links ${name}`) } console.log('Native API: Kotlin call-chain links and parameter layout pass at 1440/768/390px') - const qualified = page.locator('.api-qualified-name') + const qualified = page.locator('.api-source-details .api-qualified-name') const fullName = 'io.github.libtmux.kotlin.Server.liveState' - const namespace = qualified.locator('.api-qualified-namespace') - assert.equal(await namespace.innerText(), 'io.github.libtmux.kotlin') - assert.equal(await namespace.getAttribute('title'), 'io.github.libtmux.kotlin') - assert.equal(await qualified.locator('[data-api-expand-name]').count(), 0, - 'Ordinary package names remain fully visible without an expansion control') + const packageRow = page.locator('.api-source-details dt', { hasText: /^Package$/ }).locator('xpath=following-sibling::dd[1]') + assert.equal(await packageRow.innerText(), 'io.github.libtmux.kotlin', + 'The source and package disclosure names the Kotlin package, which the heading no longer repeats') + assert.equal(await qualified.locator('code').innerText(), fullName) for (const reject of [false, true]) { await page.evaluate((reject) => { Object.defineProperty(navigator, 'clipboard', { configurable: true, value: { @@ -614,7 +630,7 @@ async function checkReferenceAndHeroes(browser, base) { } const anchors = await page.locator('[id]').evaluateAll((elements) => elements.map((element) => element.id)) assert.equal(anchors.filter((id) => id === fullName).length, 1, 'Page title and declaration have distinct anchors') - console.log('Qualified names: compact package row, exact copied identity and clipboard refusal pass') + console.log('Qualified names: a row of the source and package disclosure, exact copied identity and clipboard refusal pass') await page.setViewportSize({ width: 1440, height: 900 }) const contents = page.getByRole('navigation', { name: 'On this page', exact: true }) assert(await contents.isVisible(), 'Wide reference pages show section navigation') @@ -675,9 +691,8 @@ async function checkReferenceAndHeroes(browser, base) { ]) { await page.goto(`${base}/java/latest/reference/io-github-libtmux-${slug}/`) assert.equal(await page.title(), `${qualifiedName} | libtmux-java`) - assert.equal(await page.locator('.api-qualified-namespace').innerText(), 'io.github.libtmux') - assert.equal(await page.locator('[data-api-expand-name]').count(), 0, - 'Ordinary Java package names remain fully visible without an expansion control') + assert.equal(await page.locator('.api-source-details dt', { hasText: /^Package$/ }).locator('xpath=following-sibling::dd[1]').innerText(), 'io.github.libtmux', + 'The source and package disclosure names the Java package') assert.equal(await page.locator('[data-api-copy-name]').getAttribute('data-api-copy-name'), qualifiedName) const legacyId = qualifiedName.replace('libtmux.Server', 'libtmux.Server.Server') assert(await page.locator(`[id="${legacyId}"]`).evaluate((element) => element.matches('dt.gp-sphinx-api-header')), @@ -729,9 +744,15 @@ try { // the running app. The outer loop still budgets this initial compilation. const firstPage = homeLauncherOnly || homeControlsOnly ? '/' : keywordHelpOnly ? '/kotlin/latest/reference/io-github-libtmux-kotlin-withserver/' - : documentationNavigationOnly ? '/py/latest/' : apiSignaturesOnly ? '/api-signature-probe/' - : apiNavigationOnly ? '/lua/latest/reference/libtmux-server/' : '/tmux/concepts/server-session-window-pane/' - const setupPages = sampleOnly ? [firstPage, '/demo/widgets/pickers/'] : [firstPage] + : apiStickyOnly ? '/swift/latest/reference/server/' + : badgeCentringOnly ? '/py/stable/guides/attaching-to-tmux/' + : documentationNavigationOnly || headerMenuSectionsOnly || statusBadgesOnly ? '/py/latest/' : apiSignaturesOnly ? '/api-signature-probe/' + : apiNavigationOnly ? '/lua/latest/reference/libtmux-server/' + : typeParametersOnly ? '/ts/latest/reference/selection-selection-where/' : '/tmux/concepts/server-session-window-pane/' + const fullRun = ![homeLauncherOnly, homeControlsOnly, keywordHelpOnly, apiSignaturesOnly, referenceLayoutOnly, globalHeaderOnly, headerMenuSectionsOnly, statusBadgesOnly, badgeCentringOnly, + referencePreferencesOnly, documentationNavigationOnly, apiNavigationOnly, apiAnchorsOnly, typeParametersOnly].some(Boolean) + const setupPages = sampleOnly ? [firstPage, '/demo/widgets/pickers/', ...TMUX_KEY_PAGES] + : [firstPage, ...(fullRun ? TMUX_KEY_PAGES : [])] const ready = Promise.all(setupPages.map(async (path) => { const response = await fetch(`${base}${path}`) assert(response.ok, `Browser setup: HTTP ${response.status} at ${path}`) @@ -746,6 +767,8 @@ try { await retryReload(() => checkDevSample(browser, base)) await checkWebAnalytics(browser, base) await checkWebAnalyticsTransitions(browser, base) + } else if (tmuxKeysOnly) { + await retryReload(() => checkTmuxKeys(browser, base)) } else if (homeLauncherOnly) { await checkHomeLauncher(browser, base) } else if (homeControlsOnly) { @@ -757,12 +780,24 @@ try { } else if (apiSignaturesOnly) { await checkSignatureLayouts(browser, base) await retryReload(() => checkKeywordHelp(browser, base)) + } else if (memberBodiesOnly) { + await retryReload(() => checkMemberBodies(browser, base)) } else if (referenceLayoutOnly) { await retryReload(() => checkReferenceAndHeroes(browser, base)) + await retryReload(() => checkMemberBodies(browser, base)) await checkSignatureLayouts(browser, base) await retryReload(() => checkKeywordHelp(browser, base)) } else if (globalHeaderOnly) { await retryReload(() => checkGlobalHeader(browser, base)) + } else if (headerMenuSectionsOnly) { + await retryReload(() => checkHeaderMenuSections(browser, base)) + await checkHeaderMenuSectionsFail(browser, base) + } else if (statusBadgesOnly) { + await retryReload(() => checkStatusBadges(browser, base)) + await checkStatusBadgesFail(browser, base) + } else if (badgeCentringOnly) { + await retryReload(() => checkBadgeCentring(browser, base)) + await checkMentionDensity(browser, base) } else if (referencePreferencesOnly) { await retryReload(() => checkReferencePreferences(browser, base)) await retryReload(() => checkGlobalHeader(browser, base)) @@ -774,10 +809,27 @@ try { await retryReload(() => checkApiNavigation(page, base)) } else if (apiAnchorsOnly) { await retryReload(() => checkApiAnchorArrival(browser, base)) + } else if (apiStickyOnly) { + // Each engine aligns a sticky heading differently, so this mode runs all three. + const sticky = (engineBrowser) => retryReload(() => checkApiStickyHeadings(engineBrowser, base)) + .then(() => checkApiStickyHeadingsFail(engineBrowser, base)) + await sticky(browser) + for (const other of [chromium, firefox, webkit].filter((candidate) => candidate !== driver)) { + const extra = await other.launch(other === chromium ? { channel: process.env.LIBTMUX_DOCS_BROWSER_CHANNEL } : {}) + try { + await sticky(extra) + } finally { + await extra.close() + } + } + } else if (typeParametersOnly) { + await retryReload(() => checkTypeParameters(browser, base)) } else { await retryReload(() => checkRequiredAppearance(browser, base)) + await retryReload(() => checkTmuxKeys(browser, base)) await checkWebAnalytics(browser, base) await checkWebAnalyticsTransitions(browser, base) + await retryReload(() => checkRowPermalinks(browser, base)) // Timed page loads share Vite's compiler. Finish each browser matrix // before starting the next, including the main page walk below. let previous = Promise.resolve() @@ -801,18 +853,33 @@ try { const navigationPage = await browser.newPage({ reducedMotion: 'reduce' }) navigationPage.setDefaultTimeout(process.env.CI ? 20000 : 10000) const navigation = schedule(() => retryReload(() => checkNavigation(navigationPage, base)).finally(() => navigationPage.close())) - const reference = schedule(() => checkReferenceAndHeroes(browser, base).then(() => checkSignatureLayouts(browser, base)) + const reference = schedule(() => checkReferenceAndHeroes(browser, base) + .then(() => retryReload(() => checkMemberBodies(browser, base))) + .then(() => checkSignatureLayouts(browser, base)) .then(() => retryReload(() => checkKeywordHelp(browser, base))) ) const preferences = schedule(() => checkReferencePreferences(browser, base)) const globalHeader = schedule(() => checkGlobalHeader(browser, base)) + const headerMenuSections = schedule(() => checkHeaderMenuSections(browser, base) + .then(() => checkHeaderMenuSectionsFail(browser, base))) + const statusBadges = schedule(() => checkStatusBadges(browser, base) + .then(() => checkStatusBadgesFail(browser, base))) const homeLauncher = schedule(() => checkHomeLauncher(browser, base)) const documentationNavigation = schedule(() => retryReload(() => checkDocumentationNavigation(browser, base))) const apiNavigationPage = await browser.newPage({ reducedMotion: 'reduce' }) apiNavigationPage.setDefaultTimeout(process.env.CI ? 20000 : 10000) const apiNavigation = schedule(() => retryReload(() => checkApiNavigation(apiNavigationPage, base)).finally(() => apiNavigationPage.close())) const apiAnchors = schedule(() => retryReload(() => checkApiAnchorArrival(browser, base))) + const kindBadges = schedule(() => retryReload(() => checkKindBadgeLinks(browser, base))) + const badgeCentring = schedule(() => retryReload(() => checkBadgeCentring(browser, base, { sample: sampleOnly })) + .then(() => checkMentionDensity(browser, base))) + const blockLinks = schedule(() => retryReload(() => checkBlockLinksUndecorated(browser, base))) await apiAnchors + const apiSticky = schedule(() => retryReload(() => checkApiStickyHeadings(browser, base)) + .then(() => checkApiStickyHeadingsFail(browser, base))) + await apiSticky + const typeParameters = schedule(() => retryReload(() => checkTypeParameters(browser, base))) + await typeParameters const paths = ['tmux/concepts/server-session-window-pane', 'tmux/examples/attach-and-send-keys', 'mcp/tools', 'ts/latest/workspace/reference/builder-applyworkspace', 'ts/latest/workspace/internals/guides', 'py/stable/workspace/guides', 'ts/latest/mcp/tools', 'csharp/latest/mcp/tools/capture_pane'] @@ -1106,8 +1173,8 @@ try { console.log('Fresh Astro + browser: prose, workspace, MCP tools, API equivalents, 390–1600px header and dark hue PASS') await page.close() const failures = (await Promise.all([ - navigation, apiExamples, reference, preferences, globalHeader, apiNavigation, - clipboard, documentationNavigation, homeLauncher, apiAnchors, + navigation, apiExamples, reference, preferences, globalHeader, headerMenuSections, statusBadges, apiNavigation, + clipboard, documentationNavigation, homeLauncher, apiAnchors, apiSticky, typeParameters, kindBadges, badgeCentring, blockLinks, ])).filter(Boolean) if (failures.length) throw new AggregateError(failures, 'Browser checks failed') } diff --git a/site/scripts/check-header-menu-sections.mjs b/site/scripts/check-header-menu-sections.mjs new file mode 100644 index 000000000..32dcf0111 --- /dev/null +++ b/site/scripts/check-header-menu-sections.mjs @@ -0,0 +1,326 @@ +import assert from 'node:assert/strict' + +/** + * The header's GitHub and Packages menus name each product (Core Library, MCP, + * Workspace Manager) with a heading over its rows. A heading is a label: it + * takes no focus, shows no pointer or hover state, names its group for + * assistive technology, and goes when filtering leaves its group empty. + */ +const PORTS_WITH_PRODUCTS = ['py', 'java', 'csharp'] +// Kotlin lists one product, so its menus carry no heading at all. +const PORT_WITH_ONE_PRODUCT = 'kotlin' +const KINDS = ['github', 'packages'] +const PAINT = ['backgroundColor', 'color', 'cursor', 'textDecorationLine', 'outlineStyle', 'boxShadow', 'opacity', 'transform', 'borderTopColor'] +const INTERACTIVE = 'a, button, input, select, textarea, summary, [tabindex], [role], [contenteditable]' + +/** The rules and markup the menus shipped with before headings: product rows styled as links. */ +const LEGACY_CSS = ` +.header-picker__group + .header-picker__group { margin-top: .4rem !important; } +.header-picker__group-title { display: flex; align-items: center; gap: .6rem; margin: .5rem .6rem .25rem; line-height: 1.35; } +.header-picker__group-title img { flex: none; width: 1.5rem; height: 1.5rem; object-fit: contain; } +.header-picker__group-title strong { display: block; font-size: .8125rem; font-weight: 500; } +.header-picker__group-title small { display: block; font-size: .6875rem; color: var(--color-muted); } +.header-picker__group > .header-picker__option { margin-inline-start: 0 !important; } +` + +const legacyMarkup = () => { + const element = (tag, text) => Object.assign(document.createElement(tag), text === undefined ? {} : { textContent: text }) + for (const group of document.querySelectorAll('[data-picker-group][role="group"]')) { + const label = document.getElementById(group.getAttribute('aria-labelledby')).textContent + group.removeAttribute('aria-labelledby') + group.setAttribute('aria-label', label) + const title = element('p') + title.className = 'header-picker__group-title' + const art = Object.assign(element('img'), { width: 24, height: 24, alt: '' }) + const text = element('span') + text.append(element('strong', label), element('small', 'API reference and guides')) + title.append(art, text) + group.firstElementChild.replaceWith(title) + } +} + +const channel = (value) => { + const v = value / 255 + return v <= 0.03928 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4 +} +/** Parse `rgb()`, `rgba()` or `color(srgb …)` as a computed style reports it. */ +const rgbOf = (css) => { + const parts = css.match(/-?\d*\.?\d+/g)?.map(Number) ?? [] + assert(parts.length >= 3, `unreadable colour ${css}`) + const scale = css.startsWith('color(') ? 255 : 1 + return { rgb: parts.slice(0, 3).map((part) => part * scale), alpha: parts[3] ?? 1 } +} +const luminance = ([r, g, b]) => 0.2126 * channel(r) + 0.7152 * channel(g) + 0.0722 * channel(b) +const contrast = (a, b) => { + const [hi, lo] = [luminance(a), luminance(b)].sort((x, y) => y - x) + return (hi + 0.05) / (lo + 0.05) +} + +/** Everything a menu's groups and headings look like once open. */ +function readMenu(root, interactive) { + const style = (element, names) => Object.fromEntries(names.map((name) => [name, getComputedStyle(element)[name]])) + const panel = root.querySelector('[data-picker-panel]') + const panelRect = panel.getBoundingClientRect() + return { + panel: { left: panelRect.left, right: panelRect.right, background: getComputedStyle(panel).backgroundColor }, + overflow: document.documentElement.scrollWidth - innerWidth, + // A row is a label and one line under it; a paragraph in a menu belongs on a page. + blocks: [...panel.querySelectorAll('p')].filter((block) => !block.hasAttribute('data-picker-status')) + .map((block) => ({ text: block.textContent.replace(/\s+/g, ' ').trim(), cls: block.className })), + rowText: [...root.querySelectorAll('a[data-picker-option]')].map((row) => ({ + name: row.querySelector('.header-picker__name').textContent, smalls: row.querySelectorAll('small').length, + paragraphs: row.querySelectorAll('p').length, detail: row.querySelector('small')?.textContent.length ?? 0, + })), + groups: [...root.querySelectorAll('[data-picker-group]')].map((group) => { + const labelId = group.getAttribute('aria-labelledby') + const heading = labelId ? document.getElementById(labelId) : null + const rows = [...group.querySelectorAll('a[data-picker-option]')] + const first = rows[0] + const name = first.querySelector('.header-picker__name') + const box = (element) => { const { left, right, top, bottom } = element.getBoundingClientRect(); return { left, right, top, bottom } } + return { + role: group.getAttribute('role'), + ariaLabel: group.getAttribute('aria-label'), + labelledBy: labelId, + headingFound: Boolean(heading), + headingInGroup: Boolean(heading && group.contains(heading)), + headingTag: heading?.tagName, + headingText: heading?.textContent, + headingTabIndex: heading?.tabIndex, + headingHasTabindexAttribute: heading?.hasAttribute('tabindex'), + headingInteractive: Boolean(heading && (heading.matches(interactive) || heading.querySelector(interactive) || heading.closest('a, button, summary'))), + headingStyle: heading && { ...style(heading, ['fontSize', 'fontWeight', 'textTransform', 'letterSpacing', 'color', 'cursor']), clipped: heading.scrollWidth > heading.clientWidth + 1 }, + nameStyle: style(name, ['fontSize', 'fontWeight', 'textTransform', 'letterSpacing', 'color', 'cursor']), + rowCursor: getComputedStyle(first).cursor, + heading: heading && box(heading), + firstRow: box(first), + lastRow: box(rows.at(-1)), + iconLeft: first.querySelector('.header-picker__icon').getBoundingClientRect().left, + hrefs: rows.map((row) => row.getAttribute('href')), + } + }), + } +} + +async function checkStatic(page, picker, where, scheme, expectTitled) { + const menu = await picker.evaluate(readMenu, INTERACTIVE) + const { groups } = menu + assert(menu.overflow <= 1, `${where}: the open menu leaves the page without horizontal scroll`) + assert(menu.panel.left >= -0.5 && menu.panel.right <= (await page.evaluate(() => innerWidth)) + 0.5, `${where}: the open menu stays inside the viewport`) + for (const row of menu.rowText) { + assert(row.paragraphs === 0 && row.smalls === 1 && row.detail <= 60, `${where}: ${row.name} shows its label and one short line, not a paragraph (${row.smalls} lines, ${row.detail} characters)`) + } + for (const block of menu.blocks) { + assert(block.text.length <= 48, `${where}: a text block in the menu holds ${block.text.length} characters: "${block.text.slice(0, 60)}"`) + } + const titled = groups.length > 1 + assert.equal(titled, expectTitled, `${where}: a menu of ${expectTitled ? 'several products has' : 'one product has no'} headings`) + if (!titled) { + assert.equal(groups[0].role, null, `${where}: a single group has no group role to name`) + assert.equal(groups[0].headingFound, false, `${where}: a single group has no heading`) + return + } + const contrastRatios = [] + groups.forEach((group, index) => { + const label = `${where}, group ${index + 1}` + assert(group.role === 'group' && group.labelledBy && group.headingFound && !group.ariaLabel, + `${label}: the group is labelled by its heading (role=${group.role}, aria-labelledby=${group.labelledBy}, aria-label=${group.ariaLabel})`) + assert(group.headingInGroup, `${label}: the heading is inside its group, so filtering takes it with the group`) + assert(group.headingText.trim().length > 0 && !/\s{2,}/.test(group.headingText), `${label}: the heading is one plain label (${group.headingText})`) + assert(!group.headingInteractive && !group.headingHasTabindexAttribute && group.headingTabIndex === -1, `${label}: the heading is not focusable or interactive`) + const { headingStyle: head, nameStyle: item } = group + assert(head.cursor !== 'pointer' && group.rowCursor === 'pointer', `${label}: the heading has no pointer cursor (heading ${head.cursor}, row ${group.rowCursor})`) + assert(Number.parseFloat(head.fontSize) <= Number.parseFloat(item.fontSize) - 1, `${label}: heading typography is smaller than item typography (${head.fontSize} vs ${item.fontSize})`) + assert(head.textTransform !== item.textTransform, `${label}: heading typography differs in case (${head.textTransform} vs ${item.textTransform})`) + assert(head.color !== item.color, `${label}: heading typography differs in colour (${head.color})`) + assert(!head.clipped, `${label}: the heading is not clipped`) + // The heading owns the rows after it: rows sit inset from its text, close to it, and a larger gap precedes it. + assert(group.iconLeft - group.heading.left >= 4, `${label}: rows are inset under the heading (${group.iconLeft - group.heading.left}px)`) + assert(group.firstRow.top >= group.heading.bottom - 1, `${label}: the heading precedes its rows`) + if (index > 0) { + const before = group.heading.top - groups[index - 1].lastRow.bottom + const after = group.firstRow.top - group.heading.bottom + assert(before >= 4 && before > after, `${label}: the gap before a heading (${before}px) exceeds the gap after it (${after}px)`) + } + const text = rgbOf(head.color) + const background = rgbOf(menu.panel.background) + assert.equal(background.alpha, 1, `${label}: the panel background is opaque`) + contrastRatios.push(contrast(text.rgb, background.rgb)) + }) + assert(Math.min(...contrastRatios) >= 4.5, `${where} (${scheme}): heading text meets 4.5:1 contrast (${Math.min(...contrastRatios).toFixed(2)})`) +} + +const paintOf = (element, names) => Object.fromEntries(names.map((name) => [name, getComputedStyle(element)[name]])) + +async function checkInteraction(page, picker, where) { + const headings = picker.locator('[data-picker-group] [id^="header-picker-"]') + const groups = await picker.locator('[data-picker-group]').count() + const url = page.url() + for (let index = 0; index < groups; index++) { + const heading = picker.locator('[data-picker-group]').nth(index).locator('[id^="header-picker-"]') + const before = await heading.evaluate(paintOf, PAINT) + await heading.hover() + assert.deepEqual(await heading.evaluate(paintOf, PAINT), before, `${where}: hovering a heading changes nothing (no hover state)`) + await page.mouse.down() + assert.deepEqual(await heading.evaluate(paintOf, PAINT), before, `${where}: pressing a heading changes nothing (no active state)`) + await page.mouse.up() + assert.equal(await picker.evaluate((element) => element.open), true, `${where}: clicking a heading leaves the menu open`) + assert.equal(page.url(), url, `${where}: a heading is not a link`) + assert(await heading.evaluate((element) => !element.contains(document.activeElement)), `${where}: clicking a heading does not focus it`) + } + // The control: a row does show a hover state, so the comparison above could have caught one. + const row = picker.locator('a[data-picker-option]').first() + const rowBefore = await row.evaluate(paintOf, PAINT) + await row.hover() + assert.notDeepEqual(await row.evaluate(paintOf, PAINT), rowBefore, `${where}: a row's hover state is measurable`) + await page.mouse.move(0, 0) + assert.equal(await headings.count(), groups, `${where}: one heading per group`) +} + +async function checkKeyboard(page, picker, where) { + const hrefs = await picker.locator('a[data-picker-option]').evaluateAll((rows) => rows.map((row) => row.getAttribute('href'))) + const search = picker.locator('[data-picker-search]') + if (!await search.count()) return + const focused = () => page.evaluate(() => { + const active = document.activeElement + return { row: active.matches('a[data-picker-option]'), href: active.getAttribute?.('href'), heading: Boolean(active.closest?.('[id^="header-picker-"]')) } + }) + await search.focus() + const tabbed = [] + for (const _ of hrefs) { + await page.keyboard.press('Tab') + const state = await focused() + assert(!state.heading && state.row, `${where}: Tab lands on rows, never a heading`) + tabbed.push(state.href) + } + assert.deepEqual(tabbed, hrefs, `${where}: Tab visits every row in order and no heading`) + await search.focus() + const arrowed = [] + for (const _ of hrefs) { + await page.keyboard.press('ArrowDown') + const state = await focused() + assert(!state.heading && state.row, `${where}: ArrowDown skips headings`) + arrowed.push(state.href) + } + assert.deepEqual(arrowed, hrefs, `${where}: ArrowDown walks the rows past each heading`) + await page.keyboard.press('ArrowDown') + assert.equal((await focused()).href, hrefs[0], `${where}: ArrowDown wraps to the first row`) + await page.keyboard.press('ArrowUp') + assert.equal((await focused()).href, hrefs.at(-1), `${where}: ArrowUp wraps to the last row`) +} + +async function checkFilter(page, picker, where, titled) { + const search = picker.locator('[data-picker-search]') + if (!await search.count()) return + const visibility = () => picker.evaluate((root) => [...root.querySelectorAll('[data-picker-group]')].map((group) => { + const heading = group.getAttribute('aria-labelledby') && document.getElementById(group.getAttribute('aria-labelledby')) + return { + rows: [...group.querySelectorAll('a[data-picker-option]')].filter((row) => row.checkVisibility()).length, + heading: heading ? heading.checkVisibility() : null, + name: heading?.textContent, + } + })) + const lastRowLabel = await picker.locator('[data-picker-group]').last().locator('.header-picker__name').first().textContent() + await search.fill(lastRowLabel) + const filtered = await visibility() + if (titled) { + filtered.forEach(({ rows, heading, name }) => assert.equal(heading, rows > 0, `${where}: filtering "${lastRowLabel}" shows "${name}" only while its group has matches`)) + assert(filtered.some(({ rows }) => rows === 0) && filtered.some(({ rows }) => rows > 0), `${where}: the filter hides some groups and keeps another`) + for (const { rows, name } of filtered) { + assert.equal(await picker.getByRole('group', { name, exact: true }).count(), rows > 0 ? 1 : 0, `${where}: assistive technology hears "${name}" only while it has matches`) + } + } + await search.fill('zzz-no-such-destination') + const none = await visibility() + assert(none.every(({ rows, heading }) => rows === 0 && heading !== true), `${where}: a filter with no match hides every heading`) + assert(await picker.locator('[data-picker-empty]').isVisible(), `${where}: the empty state shows when every group is hidden`) + await search.fill('') + const restored = await visibility() + assert(restored.every(({ rows, heading }) => rows > 0 && (!titled || heading === true)), `${where}: clearing the filter restores every heading`) + if (titled) { + for (const { name } of restored) assert.equal(await picker.getByRole('group', { name, exact: true }).count(), 1, `${where}: the group "${name}" is announced once`) + } +} + +/** + * Check the section headings of the GitHub and Packages menus on Python, Java + * and .NET (several products) and Kotlin (one product). + */ +export async function checkHeaderMenuSections(browser, base, options = {}) { + const { ports = [...PORTS_WITH_PRODUCTS, PORT_WITH_ONE_PRODUCT], widths = [1440, 390], schemes = ['light', 'dark'], + kinds = KINDS, behavior = true, sabotage } = options + let menus = 0 + for (const scheme of schemes) { + const context = await browser.newContext({ colorScheme: scheme, reducedMotion: 'reduce' }) + const page = await context.newPage() + page.setDefaultTimeout(process.env.CI ? 20000 : 10000) + // The first load of each port compiles its page in the development server. + page.setDefaultNavigationTimeout(60000) + try { + for (const port of ports) { + for (const width of widths) { + await page.setViewportSize({ width, height: 900 }) + // The development server can replace a page while it optimizes dependencies; load it again once. + for (const attempt of [1, 2]) { + try { + await page.goto(`${base}/${port}/latest/`, { waitUntil: 'load' }) + await page.waitForFunction(() => document.fonts.status === 'loaded') + await page.waitForSelector('details[data-header-picker][data-enhanced]', { state: 'attached' }) + break + } catch (error) { + if (attempt === 2) throw error + } + } + assert.equal(await page.evaluate(() => matchMedia('(prefers-color-scheme: dark)').matches), scheme === 'dark', `${port}: the ${scheme} scheme is in effect`) + if (sabotage?.css) await page.addStyleTag({ content: sabotage.css }) + if (sabotage?.script) await page.evaluate(sabotage.script) + const placement = width >= 768 ? 'bar' : 'menu' + if (placement === 'menu') await page.locator('.site-header__menu > summary').click() + for (const kind of kinds) { + const picker = page.locator(`details[data-header-picker="${kind}"][data-placement="${placement}"]`) + if (!await picker.count()) continue + const where = `${port} ${kind} at ${width}px (${scheme})` + await picker.locator(':scope > summary').click() + await picker.locator('[data-picker-panel]').waitFor({ state: 'visible' }) + const expectTitled = port !== PORT_WITH_ONE_PRODUCT + await checkStatic(page, picker, where, scheme, expectTitled) + if (behavior && width === 1440 && scheme === 'light') { + if (expectTitled) await checkInteraction(page, picker, where) + await checkKeyboard(page, picker, where) + await checkFilter(page, picker, where, expectTitled) + } + await picker.locator(':scope > summary').click() + await picker.locator('[data-picker-panel]').waitFor({ state: 'hidden' }) + menus += 1 + } + } + } + } finally { + await context.close() + } + } + console.log(`Header menu sections: ${menus} menus on ${ports.join(', ')} show non-interactive product headings; ${behavior ? 'Tab and arrows skip them, hover and press change nothing, filtering hides empty groups' : 'structure and typography only'}`) +} + +/** The check must fail on origin/main's menus and on each way a heading could become a row again. */ +export async function checkHeaderMenuSectionsFail(browser, base) { + const only = { ports: ['py'], kinds: ['github'], widths: [1440], schemes: ['light'] } + const controls = [ + ['origin/main markup and CSS', { script: legacyMarkup, css: LEGACY_CSS }, /group is labelled by its heading/], + ['a focusable heading', { script: () => document.querySelectorAll('[data-picker-group] > p').forEach((p) => p.setAttribute('tabindex', '0')) }, /heading is not focusable or interactive/], + ['a heading with a pointer cursor', { css: '.header-picker__heading { cursor: pointer !important }' }, /no pointer cursor/], + ['a heading with a hover state', { css: '.header-picker__heading:hover { background: #f00 !important }' }, /hovering a heading changes nothing/], + ['item typography on a heading', { css: '.header-picker__heading { font-size: .8125rem !important; text-transform: none !important; color: inherit !important }' }, /heading typography is smaller/], + ['rows flush with their heading', { css: '.header-picker__group > .header-picker__option { margin-inline-start: 0 !important } .header-picker__heading { margin-inline: 1.2rem !important }' }, /rows are inset under the heading/], + ['a paragraph under a product heading', { + script: () => document.querySelectorAll('[data-picker-group]').forEach((group) => group.querySelector('a').before(Object.assign(document.createElement('p'), { textContent: 'Maintained as a working example of core library usage and deployment. Example APIs, tools and configuration may change without a compatibility or product support commitment.' }))), + }, /a text block in the menu holds/], + ['headings that filtering leaves behind', { + script: () => document.querySelectorAll('[data-picker-group]').forEach((group) => group.style.setProperty('display', 'block', 'important')), + }, /only while its group has matches/], + ] + for (const [name, sabotage, failure] of controls) { + await assert.rejects(() => checkHeaderMenuSections(browser, base, { ...only, sabotage }), failure, `the check fails with ${name}`) + } + console.log('Header menu sections: the check fails on origin/main markup and CSS, a paragraph in a menu, and focusable, pointer, hover, plain-typography, flush and unfiltered headings') +} diff --git a/site/scripts/check-home-launcher.mjs b/site/scripts/check-home-launcher.mjs index e937de6ec..139fe8be9 100644 --- a/site/scripts/check-home-launcher.mjs +++ b/site/scripts/check-home-launcher.mjs @@ -148,7 +148,8 @@ export async function checkHomeLauncher(browser, base) { assert.equal(await logo.count(), 0, 'The top header has no duplicate artwork') for (const { slug } of PORTS) { await choose(slug) - const links = await solution.locator('a').evaluateAll((links) => links.map((link) => link.getAttribute('href'))) + // Destinations only: a status badge's card links to the shared concept page. + const links = await solution.locator('a.surface-destination').evaluateAll((links) => links.map((link) => link.getAttribute('href'))) assert(links.length > 0 && links.every((href) => href.startsWith(`${new URL(base).pathname}/${slug}/`)), `${slug}: owned solution destinations`) if (['kotlin', 'scala', 'fsharp'].includes(slug)) assert.equal(links.length, 1, `${slug}: core library only`) assert.match(await prompt.locator(`[data-port="${slug}"] [data-prompt-text]`).innerText(), new RegExp(`/en/${slug}/`)) diff --git a/site/scripts/check-native-layout.mjs b/site/scripts/check-native-layout.mjs index d52f0ecef..3dcb2c8bb 100644 --- a/site/scripts/check-native-layout.mjs +++ b/site/scripts/check-native-layout.mjs @@ -1,5 +1,11 @@ import assert from 'node:assert/strict' +/** Controls beside a signature may sit this far from the centre of its first line. */ +const LEVEL_TOLERANCE = 1 + +/** Centres further apart than this belong to different rows of wrapped controls. */ +const STACKED_ROW_GAP = 8 + /** Measure the code width left by first-line or stacked declaration metadata. */ export async function checkNativeSignatureGeometry(header) { const geometry = await header.evaluate((element) => { @@ -18,6 +24,7 @@ export async function checkNativeSignatureGeometry(header) { bottom: pixels(style.paddingBottom) + pixels(style.borderBottomWidth), }, rowGap: pixels(style.rowGap), columnGap: pixels(style.columnGap), + lineHeight: pixels(style.lineHeight), } } const row = element.querySelector(':scope > .gp-sphinx-api-layout') @@ -63,9 +70,13 @@ export async function checkNativeSignatureGeometry(header) { const beside = controls.left >= code.right - tolerance assert(below || beside, 'Native signature code and metadata do not overlap') if (!below) { - assert(near(controls.top, code.top) && near(firstSignature.top, code.top) + assert(near(firstSignature.top, code.top) && controls.top >= code.top - tolerance && controls.bottom <= firstSignature.bottom + tolerance, - 'Native signature metadata aligns with the first line') + 'Native signature metadata stays on the first line') + assert(firstSignature.lineHeight > 0, 'Native first signature has a measurable line height') + const firstLine = content(firstSignature).top + firstSignature.lineHeight / 2 + assert(Math.abs(controls.top + controls.height / 2 - firstLine) <= LEVEL_TOLERANCE, + 'Native signature metadata centres on the first line') } const availableCodeWidth = rowContent.right - rowContent.left - (below ? 0 : controls.width + row.columnGap) assert(near(code.width, availableCodeWidth), 'Native signature uses the available code width') @@ -75,6 +86,149 @@ export async function checkNativeSignatureGeometry(header) { return { ...geometry, mode: below ? 'stacked' : 'inline', availableCodeWidth } } +/** + * Locate a declaration's first signature line and the vertical centre of each + * control in its right-hand group. The first line box starts at the content + * edge of the block that owns the first painted glyph and is one used + * line-height tall; a heading with `line-height: normal` has no declared + * height, so its first glyph's box stands in. + */ +export async function measureDeclarationControls(header) { + return header.evaluate((element) => { + const document = element.ownerDocument + const pixels = (value) => Number.parseFloat(value) + const row = element.querySelector(':scope > .gp-sphinx-api-layout') + const code = row?.querySelector(':scope > .gp-sphinx-api-layout-left') + const group = row?.querySelector(':scope > .gp-sphinx-api-layout-right') + if (!code || !group?.checkVisibility()) return null + const walker = document.createTreeWalker(code, document.defaultView.NodeFilter.SHOW_TEXT) + let glyph = null + for (let node; !glyph && (node = walker.nextNode());) { + const start = node.textContent.search(/\S/) + if (start < 0 || node.parentElement.closest('[popover]') || !node.parentElement.checkVisibility()) continue + const range = document.createRange() + range.setStart(node, start) + range.setEnd(node, start + 1) + const box = range.getBoundingClientRect() + if (box.width && box.height) glyph = { node, box } + } + if (!glyph) return null + const view = document.defaultView + let owner = glyph.node.parentElement + while (view.getComputedStyle(owner).display.startsWith('inline')) owner = owner.parentElement + const style = view.getComputedStyle(owner) + const lineHeight = pixels(style.lineHeight) + const height = Number.isFinite(lineHeight) ? lineHeight : glyph.box.height + const top = owner.getBoundingClientRect().top + pixels(style.paddingTop) + pixels(style.borderTopWidth) + const controls = [] + for (const child of group.children) { + if (!child.checkVisibility()) continue + for (const control of child.matches('.gp-sphinx-api-slot') ? child.children : [child]) { + if (!control.checkVisibility()) continue + const box = control.getBoundingClientRect() + controls.push({ name: control.textContent.trim().slice(0, 16) || control.className, centre: box.top + box.height / 2 }) + } + } + const codeBox = code.getBoundingClientRect() + const groupBox = group.getBoundingClientRect() + return { + id: element.getAttribute('data-symbol-id') ?? element.id, + mode: groupBox.top < codeBox.bottom - 1 && groupBox.bottom > codeBox.top + 1 ? 'beside' : 'stacked', + line: { top, height, centre: top + height / 2 }, controls, + } + }) +} + +/** + * Controls beside the code share the centre of its first line, however many + * lines follow. Controls that wrap below or above the code share the centre of + * whichever row of controls they sit on. + */ +export function assertDeclarationControlsLevel(measurement, label, tolerance = LEVEL_TOLERANCE) { + assert(measurement?.controls.length > 0, `${label}: declaration has code and visible controls`) + const { mode, line, controls } = measurement + assert(Number.isFinite(line.centre) && controls.every((control) => Number.isFinite(control.centre)), + `${label}: first line and controls have measurable centres`) + if (mode === 'beside') { + for (const control of controls) { + const offset = control.centre - line.centre + assert(Math.abs(offset) <= tolerance, + `${label}: control "${control.name}" centre is ${offset.toFixed(2)}px from the first signature line`) + } + return + } + // Wrapped controls form rows, and each row is level on its own. + const rows = [] + for (const { centre } of [...controls].sort((a, b) => a.centre - b.centre)) { + const row = rows.at(-1) + if (row && centre - row.at(-1) <= STACKED_ROW_GAP) row.push(centre) + else rows.push([centre]) + } + for (const row of rows) { + const spread = row.at(-1) - row[0] + assert(spread <= tolerance, `${label}: stacked controls share their row centre, spread ${spread.toFixed(2)}px`) + } +} + +export async function checkDeclarationControlsLevel(header, label) { + const measurement = await measureDeclarationControls(header) + assertDeclarationControlsLevel(measurement, label) + return measurement +} + +/** Each sample pairs a page with the declaration shape it contributes. */ +const DECLARATION_SAMPLES = [ + ['ts/latest/reference/server-server-sessions/', 'TypeScript one-line formatted method'], + ['ts/latest/reference/pane-pane-sethook/', 'TypeScript method that fits beside controls at 500px'], + ['ts/latest/reference/client-client-tostring/', 'TypeScript short method that fits beside controls at 390px'], + ['go/latest/reference/tmux-server-newsessionconnection/', 'Go multi-line method'], + ['py/latest/reference/libtmux-hooks-hooksmixin-set_hook/', 'Python wrapped method'], + ['py/latest/reference/libtmux-server/', 'Python class'], + ['julia/latest/reference/libtmux-capture_bytes/', 'Julia multi-line function'], + ['csharp/latest/reference/libtmux-tmuxbuffers-setasync/', 'C# multi-line method'], + ['kotlin/latest/reference/io-github-libtmux-kotlin-batch/', 'Kotlin type'], + ['scala/latest/reference/io-github-libtmux-scaladsl-server-windows/', 'Scala overloaded method'], + ['rs/latest/mcp/tools/get_pane_info/', 'MCP tool and its type definitions'], +] + +/** + * Sample declarations across ports at desktop and narrow widths. A header + * whose controls fall to a row of their own has no first line to follow, so + * the sample must still catch controls beside the code at every width it + * names, or the check would pass without measuring anything. + */ +export async function checkDeclarationControlAlignment(browser, base, widths = [1440, 768, 500, 390]) { + const page = await browser.newPage({ javaScriptEnabled: false }) + const beside = new Map(widths.map((width) => [width, 0])) + const measured = [] + try { + for (const [path, label] of DECLARATION_SAMPLES) { + await page.goto(`${base}/${path}`, { waitUntil: 'load' }) + await page.evaluate(() => document.fonts.ready) + const headers = page.locator('dt.gp-sphinx-api-header') + const count = Math.min(await headers.count(), 6) + assert(count > 0, `${label}: page has declaration headers`) + for (const width of widths) { + await page.setViewportSize({ width, height: 1000 }) + for (let index = 0; index < count; index++) { + const measurement = await checkDeclarationControlsLevel(headers.nth(index), `${label} #${index + 1} at ${width}px`) + if (measurement.mode === 'beside') beside.set(width, beside.get(width) + 1) + measured.push({ label, width, index, ...measurement }) + if (width === widths[0] && index === 0) { + assert.equal(measurement.mode, 'beside', `${label}: desktop controls sit beside the first line`) + } + } + } + } + for (const width of widths) { + assert(beside.get(width) > 0, `${width}px: some sampled controls sit beside a first line`) + } + } finally { + await page.close() + } + return { beside, measured } +} + /** A formatter's logical line must occupy one painted row, even when it scrolls. */ export async function checkNativeSignatureLines(header) { const signatures = await header.evaluate((element) => { @@ -244,3 +398,113 @@ export async function checkNativeFirstPaint(page, url) { await page.unroute('**/_astro/*.js', routeScript) } } + +/** + * Measure how far each member body's first and last rendered content sits + * from the body's border box. The walk descends through wrappers that paint + * nothing on that edge, so space a wrapper cannot absorb still counts. + */ +export function measureMemberBodies(page) { + return page.evaluate(() => { + const px = (value) => Number.parseFloat(value) || 0 + const rendered = (element) => element.checkVisibility() && element.getBoundingClientRect().height > 0 + const label = (element) => element.tagName.toLowerCase() + + [...element.classList].map((name) => `.${name}`).join('') + // A display: contents element has no box of its own; its children stand in. + const boxes = (parent) => [...parent.children].flatMap((child) => + getComputedStyle(child).display === 'contents' ? boxes(child) : [child]) + .filter((child) => rendered(child) && !['absolute', 'fixed'].includes(getComputedStyle(child).position)) + const painted = (style, side) => px(style[`padding${side}`]) > 0 || px(style[`border${side}Width`]) > 0 + || style.backgroundImage !== 'none' || !/^rgba\(.*, 0\)$|^transparent$/.test(style.backgroundColor) + const edge = (body, side) => { + let node = body + let found = null + for (;;) { + const children = boxes(node) + const child = side === 'Top' ? children[0] : children.at(-1) + if (!child) return found + // Inline content sits in line boxes, so its parent is the edge. + if (getComputedStyle(child).display.startsWith('inline')) return found ?? child + // Text beside the child element sits on the edge itself. + const text = [...node.childNodes].filter((n) => n.nodeType === Node.TEXT_NODE && n.textContent.trim()) + if (text.some((n) => side === 'Top' ? child.compareDocumentPosition(n) & Node.DOCUMENT_POSITION_PRECEDING + : child.compareDocumentPosition(n) & Node.DOCUMENT_POSITION_FOLLOWING)) return found + found = child + if (painted(getComputedStyle(child), side)) return found + node = child + } + } + return [...document.querySelectorAll('dl.py > dd')].filter(rendered).map((body) => { + const style = getComputedStyle(body) + const rect = body.getBoundingClientRect() + const first = edge(body, 'Top') + const last = edge(body, 'Bottom') + return { + children: [...body.children].map(label), + padding: { top: px(style.paddingTop), bottom: px(style.paddingBottom) }, + first: first && label(first), last: last && label(last), + top: first && first.getBoundingClientRect().top - rect.top - px(style.borderTopWidth), + bottom: last && rect.bottom - px(style.borderBottomWidth) - last.getBoundingClientRect().bottom, + } + }) + }) +} + +/** + * Pages that give each port a member body of every common shape: only "In other + * ports", parameters first, a description or example last, Methods, a type, + * a command and an MCP object. The second field names a direct child the page + * must still render, so a content change cannot quietly retire the sample. + */ +const MEMBER_BODY_PAGES = [ + ['go/latest/reference/tmux-server-configfile/', 'details.api-elsewhere'], + ['go/latest/reference/tmux-window-setotherpanewidth/', 'div.gp-sphinx-api-parameters'], + ['julia/latest/reference/libtmux-snapshot-1gv6/', 'div.gp-sphinx-api-methods'], + ['julia/latest/reference/libtmux-kill_window/', 'div.gp-sphinx-api-description'], + ['ruby/latest/reference/libtmux-closederror-entity/', 'div.gp-sphinx-api-description'], + ['ruby/latest/workspace/reference/libtmux-workspace-configerror/', 'p.gp-sphinx-api-facts'], + ['py/latest/reference/libtmux-server-new_session/', 'div.gp-sphinx-api-examples'], + ['py/latest/reference/libtmux-common-has_lt_version/', 'div.gp-sphinx-api-parameters'], + ['ts/latest/reference/server-server-configfile/', 'details.api-elsewhere'], + ['ts/latest/reference/types-newsessionoptions/', 'div.gp-sphinx-api-description'], + ['swift/latest/reference/pane-index/', 'details.api-elsewhere'], + ['csharp/latest/reference/libtmux-window-height/', 'details.api-elsewhere'], + ['csharp/latest/reference/libtmux-server-searchclientsasync/', 'div.gp-sphinx-api-parameters'], + ['java/latest/reference/io-github-libtmux-windowlayout-windowlayout/', 'div.gp-sphinx-api-examples'], + ['java/latest/mcp/reference/io-github-libtmux-mcp-main-main/', 'div.gp-sphinx-api-examples'], + ['ts/latest/mcp/tools/capture_pane/', 'div.api-doc'], + ['powershell/latest/reference/libtmux-get-tmuxserver/', 'div.gp-sphinx-api-command'], +] + +/** A body's padding alone sets its inset: top and bottom match each other and the padding. */ +export async function checkMemberBodyInsets(browser, base) { + const tolerance = 1 + const page = await browser.newPage({ reducedMotion: 'reduce' }) + page.setDefaultTimeout(process.env.CI ? 20000 : 10000) + const failures = [] + let measured = 0 + try { + for (const width of [1440, 390]) { + await page.setViewportSize({ width, height: 1000 }) + for (const [path, shape] of MEMBER_BODY_PAGES) { + await page.goto(`${base}/${path}`, { waitUntil: 'load' }) + await page.evaluate(() => document.fonts.ready) + const bodies = await measureMemberBodies(page) + assert(bodies.some((body) => body.children.includes(shape)), `${path}: still renders ${shape}`) + for (const body of bodies) { + measured += 1 + const { top, bottom, padding } = body + const near = (a, b) => Math.abs(a - b) <= tolerance + if (!(near(top, padding.top) && near(bottom, padding.bottom) && near(top, bottom))) { + failures.push(`${path} at ${width}px (${body.first} to ${body.last}): ` + + `top inset ${top}px, bottom inset ${bottom}px, padding ${padding.top}px/${padding.bottom}px`) + } + } + } + } + } finally { + await page.close() + } + assert.deepEqual(failures, [], 'Member body padding alone sets the top and bottom inset') + return measured +} diff --git a/site/scripts/check-navigation.mjs b/site/scripts/check-navigation.mjs index 25397b6d4..c2c143bca 100644 --- a/site/scripts/check-navigation.mjs +++ b/site/scripts/check-navigation.mjs @@ -1,5 +1,6 @@ import assert from 'node:assert/strict' -import { CONCEPT_DESCRIPTION, PORTS, productAvailable } from '../src/lib/ports.ts' +import { PORTS, productAvailable, productStatus } from '../src/lib/ports.ts' +import registry from '../src/data/registry.json' with { type: 'json' } import mcpCatalogs from '../src/data/mcp-tools.json' with { type: 'json' } import { checkPickerFilters } from './check-picker-filters.mjs' @@ -202,7 +203,8 @@ export async function checkDocumentationNavigation(browser, base, complete = fal assert.equal(await page.locator('.port-hero h1').count(), 1, `${slug}: one port heading`) const picker = desktopPicker(page) await picker.locator(':scope > summary').waitFor({ state: 'visible' }) - assert.equal((await picker.locator('.surface-current').innerText()).replace(/\s+/g, ' ').trim(), 'Core Library Home') + assert.equal((await picker.locator('.surface-current .surface-label, .surface-current small').allInnerTexts()).join(' '), 'Core Library Home') + assert.equal(await picker.locator('.surface-current .status-badge').getAttribute('data-status'), productStatus(port, 'core', registry), `${slug}: the trigger states the library's status`) await openPicker(picker) const core = group(picker, 'Core Library') const sections = await core.locator('.surface-options a').evaluateAll((links) => @@ -221,15 +223,19 @@ export async function checkDocumentationNavigation(browser, base, complete = fal ...(productAvailable(port, 'workspace') ? ['Workspace Manager'] : []), ] assert.deepEqual(names.slice(1).sort(), appNames, `${slug}: only available applications appear`) - assert.equal(await core.locator(':scope > summary .concept-badge').count(), 0, `${slug}: core has no example scope badge`) + // A badge is the group's sibling, never inside its summary. + const badgeOf = (entry) => entry.locator('xpath=..').locator(':scope > .status-toggletip > .status-badge') + assert.equal(await core.locator('.status-badge').count(), 0, `${slug}: no badge inside the core summary`) + assert.equal(await badgeOf(core).getAttribute('data-status'), productStatus(port, 'core', registry), `${slug}: core states its release stage`) + assert.notEqual(await badgeOf(core).getAttribute('data-status'), 'concept', `${slug}: core has no example scope badge`) for (const label of appNames) { const app = group(picker, label) - const badge = app.locator(':scope > summary .concept-badge') - assert.equal(await badge.count(), slug === 'py' ? 0 : 1, `${slug}: ${label} concept scope`) + const badge = badgeOf(app) + assert.equal(await badge.count(), 1, `${slug}: ${label} badge`) + assert.equal(await badge.getAttribute('data-status'), productStatus(port, label === 'MCP' ? 'mcp' : 'workspace', registry), `${slug}: ${label} status`) if (slug !== 'py') { - assert.equal(await badge.getAttribute('title'), CONCEPT_DESCRIPTION) await app.locator(':scope > summary').click() - assert(await app.locator('.surface-concept-description').isVisible(), `${slug}: scope is readable after expanding`) + assert.equal(await app.locator('.surface-concept-description').count(), 0, `${slug}: expanding a companion adds no paragraph`) await app.locator(':scope > summary').click() } } @@ -316,7 +322,7 @@ export async function checkDocumentationNavigation(browser, base, complete = fal && Math.abs(item.top - layout.header[0].top) < .1), `${width}: Search, scheme and menu have equal heights`) assert.equal((await picker.locator('.surface-current .surface-label').innerText()).trim(), 'Workspace Manager') assert.equal((await picker.locator('.surface-current small').innerText()).trim(), 'Home') - assert.equal(await picker.locator('.surface-current .concept-badge').count(), 1) + assert.equal(await picker.locator('.surface-current .status-badge[data-status="concept"]').count(), 1) await openPicker(picker, javaScriptEnabled) if (javaScriptEnabled) { const search = picker.locator('[data-surface-search]') @@ -583,6 +589,250 @@ export async function checkApiAnchorArrival(browser, base) { console.log(`API anchors: ${paths.size} declarations across ${PORTS.length} ports, primary and retained fragments, phone/desktop, both themes and no-JavaScript navigation pass`) } +/** + * Sticky Members and group bars in a real engine. Mocked geometry cannot show + * where a browser aligns a sticky heading or whether the bars cover focus, so + * this check drives the production reference page. `only` limits the scenarios + * and `sabotage` adds a script or style to every page, for the control below. + */ +export async function checkApiStickyHeadings(browser, base, { only, sabotage } = {}) { + const engine = browser.browserType().name() + const path = `${base}/swift/latest/reference/server/` + const timeout = process.env.CI ? 20000 : 10000 + const wants = (scenario) => !only || only.includes(scenario) + const open = async (viewport) => { + const context = await browser.newContext({ viewport }) + if (sabotage?.script) await context.addInitScript(sabotage.script) + const page = await context.newPage() + page.setDefaultTimeout(timeout) + await page.goto(path, { waitUntil: 'load' }) + await page.waitForFunction(() => document.documentElement.dataset.pageReadiness === 'ready' && document.fonts.status === 'loaded') + await page.waitForSelector('.api-members[data-api-sticky-members]', { state: 'attached' }) + if (sabotage?.css) await page.addStyleTag({ content: sabotage.css }) + return { context, page } + } + // The scroll position holds still and no heading is mid-arrival. + const quiet = async (page) => { + await page.evaluate(() => { window.__quiet = { y: -1, still: 0 } }) + await page.waitForFunction(() => { + const state = window.__quiet + if (scrollY === state.y && !document.querySelector('[data-api-arriving]')) state.still++ + else { state.y = scrollY; state.still = 0 } + return state.still >= 12 + }, undefined, { polling: 'raf' }) + } + const scrollTo = async (page, top) => { + await page.evaluate((top) => window.scrollTo({ top, behavior: 'instant' }), top) + await quiet(page) + } + const groupsOf = (page) => page.evaluate(() => [...document.querySelectorAll('.api-members > .api-member-group')] + .flatMap((group) => { + const heading = group.querySelector(':scope > h3[id]') + const { top, height } = group.getBoundingClientRect() + return heading ? [{ id: heading.id, top: top + scrollY, height }] : [] + })) + // Where a heading sits against the line below the bars above it, and whether anything covers it. + const landing = (page, id) => page.evaluate((id) => { + const heading = document.getElementById(id) + const owner = heading.matches('.api-members > h2') + const box = heading.parentElement.getBoundingClientRect() + const rect = heading.getBoundingClientRect() + const line = owner + ? document.querySelector('.api-section-links').getBoundingClientRect().bottom + + (Number.parseFloat(getComputedStyle(document.documentElement).fontSize) || 16) * 0.75 + : document.querySelector('.api-members > h2').getBoundingClientRect().bottom + const hit = document.elementFromPoint(rect.left + 20, rect.top + rect.height / 2) + return { y: Math.round(scrollY), top: Math.round(rect.top), line: Math.round(line), + start: Math.round(box.top), covered: !(hit && heading.contains(hit)) } + }, id) + const reached = (arrival, label) => { + const where = JSON.stringify(arrival) + assert(Math.abs(arrival.top - arrival.line) <= 2, `${engine}: ${label} lands at the reading line: ${where}`) + assert(Math.abs(arrival.start - arrival.top) <= 2, `${engine}: ${label} lands at the start of its group, not its end: ${where}`) + assert(!arrival.covered, `${engine}: ${label} is not covered by the bars above it: ${where}`) + } + // Sample the scroll position after each frame has rendered, so a corrected jump is not mistaken for a painted one. + const track = (page) => page.evaluate(() => { + window.__frames = [] + const sample = () => requestAnimationFrame(() => setTimeout(() => { + window.__frames.push(Math.round(scrollY)) + if (window.__frames.length < 180) sample() + }, 0)) + sample() + }) + // The page scrolls once to its destination and never paints the end of the group on the way. + const movedOnce = async (page, from, label) => { + const frames = await page.evaluate(() => window.__frames) + const moved = frames.findIndex((y) => Math.abs(y - from) > 1) + const final = frames.at(-1) + assert(moved >= 0, `${engine}: ${label} scrolls: ${JSON.stringify(frames)}`) + assert(frames.slice(moved).every((y) => Math.abs(y - final) <= 2), + `${engine}: ${label} scrolls once from ${from} to its destination: ${JSON.stringify(frames.slice(moved))}`) + } + const link = (page, selector) => page.locator(selector).filter({ visible: true }).first() + // Keep the main thread busy through the next click, as a loaded page does. + const hold = (page, busy) => page.evaluate((busy) => addEventListener('click', () => { + for (const end = performance.now() + busy; performance.now() < end;); + }, { capture: true, once: true }), busy) + // A real pointer click where the link is. Locator clicks scroll the page first in some engines. + const press = async (page, anchor) => { + const box = await anchor.boundingBox() + assert(box, `${engine}: the link to press is on screen`) + const x = box.x + box.width / 2 + const y = box.y + box.height / 2 + assert(await anchor.evaluate((element, [x, y]) => element.contains(document.elementFromPoint(x, y)), [x, y]), + `${engine}: nothing covers the link to press`) + await page.mouse.click(x, y) + } + + const desktop = { width: 1800, height: 1000 } + for (const viewport of only ? [desktop] : [desktop, { width: 390, height: 844 }]) { + const phone = viewport.width < 600 + const size = `${viewport.width}px` + + // Tabbing backward through a stuck group leaves each stop clear of the bars. + if (wants('focus')) { + const { context, page } = await open(viewport) + try { + const groups = await groupsOf(page) + assert(groups.length >= 3, `${engine}: the Swift Server page keeps grouped members: ${JSON.stringify(groups)}`) + const tall = groups.reduce((a, b) => a.height > b.height ? a : b) + await scrollTo(page, tall.top + tall.height / 2) + await page.evaluate(() => { + const links = [...document.querySelectorAll('.api-members .api-member-group a[href]:not(.api-heading-link)')] + links.find((a) => a.getBoundingClientRect().top >= innerHeight * 0.6).focus({ preventScroll: true }) + }) + let stops = 0 + for (let tab = 0; tab < 14; tab++) { + await page.keyboard.press('Shift+Tab') + await quiet(page) + const stop = await page.evaluate(() => { + const active = document.activeElement + if (!active?.closest('.api-members')) return null + const rect = active.getClientRects()[0] + const x = rect.left + Math.min(rect.width / 2, 30) + // Which of five points down the control show the control itself rather than a bar. + const shown = [2, rect.height * 0.25, rect.height * 0.5, rect.height * 0.75, rect.height - 2] + .map((offset) => active.contains(document.elementFromPoint(x, rect.top + offset))) + return { y: Math.round(scrollY), top: Math.round(rect.top), shown, name: (active.getAttribute('aria-label') || active.textContent).trim().slice(0, 24) } + }) + if (!stop) break + stops++ + // WCAG 2.2 SC 2.4.11: a focused control is never entirely hidden. Gecko scrolls a focused + // control only when none of it is visible; the other engines also clear its top edge. + assert(stop.shown.some(Boolean), `${engine}/${size}: backward tab stop ${stops} is not entirely hidden by the sticky bars: ${JSON.stringify(stop)}`) + if (engine !== 'firefox') assert(stop.shown[0], `${engine}/${size}: backward tab stop ${stops} starts below the sticky bars: ${JSON.stringify(stop)}`) + } + assert(stops >= 10, `${engine}/${size}: tabbing backward crosses a stuck group (${stops} stops)`) + // Keyboard focus returns the Members bar to flow; the gap cover must not paint over it. + await scrollTo(page, tall.top + tall.height / 2) + await page.keyboard.press('Shift') + await page.evaluate(() => document.querySelector('.api-members > h2 a.api-heading-link').focus()) + await quiet(page) + const owner = await page.evaluate(() => { + const heading = document.querySelector('.api-members > h2') + const link = heading.querySelector('a.api-heading-link') + const rect = link.getBoundingClientRect() + const x = rect.left + rect.width / 2 + return { visible: link.matches(':focus-visible'), link: heading.contains(document.elementFromPoint(x, rect.top + 1)), + bar: heading.contains(document.elementFromPoint(x, heading.getBoundingClientRect().top + 4)) } + }) + assert(owner.visible && owner.link && owner.bar, `${engine}/${size}: the focused Members permalink is covered: ${JSON.stringify(owner)}`) + } finally { + await context.close() + } + } + + // A link to an earlier group, from inside a later one, is the first navigation on the page. The + // second pass keeps the main thread busy through the click, so a frame renders before the URL changes. + for (const busy of wants('link') ? [0, 30] : []) { + const { context, page } = await open(viewport) + try { + const groups = await groupsOf(page) + const [first, second] = groups + await scrollTo(page, second.top + second.height / 2) + // Phones keep the owner link in the section row; groups are in the rail. + const id = phone ? 'api-members' : first.id + const label = `a link to ${id} from a later group${busy ? ' on a busy page' : ''}` + const anchor = link(page, `a[data-api-section-link][href="#${id}"]`) + const start = await page.evaluate(() => Math.round(scrollY)) + await track(page) + await hold(page, busy) + await press(page, anchor) + await quiet(page) + reached(await landing(page, id), label) + await movedOnce(page, start, label) + } finally { + await context.close() + } + } + + // A link to the heading that is already the page's hash returns to the group's start every time, + // from the middle of the group and from its trailing edge, where the release displaces the bar. + if (!phone && wants('permalink')) { + const { context, page } = await open(viewport) + try { + const tall = (await groupsOf(page)).reduce((a, b) => a.height > b.height ? a : b) + const permalink = page.locator(`[id="${tall.id}"] a.api-heading-link`) + const rail = link(page, `a[data-api-section-link][href="#${tall.id}"]`) + await scrollTo(page, tall.top + tall.height / 2) + await press(page, permalink); await quiet(page) + const once = await landing(page, tall.id) + reached(once, 'a permalink to a stuck group heading') + await scrollTo(page, tall.top + tall.height * 0.75) + await hold(page, 30) + await press(page, permalink); await quiet(page) + const again = await landing(page, tall.id) + reached(again, 'the same permalink clicked again on a busy page') + assert(Math.abs(again.y - once.y) <= 2, `${engine}: the repeated permalink returns to ${once.y}, not ${again.y}`) + const edge = await page.evaluate(() => document.querySelector('.api-section-links').getBoundingClientRect().bottom + + (Number.parseFloat(getComputedStyle(document.documentElement).fontSize) || 16) * 0.75) + await scrollTo(page, tall.top + tall.height - edge) + await press(page, rail); await quiet(page) + const last = await landing(page, tall.id) + reached(last, 'the same link clicked from the end of the group') + assert(Math.abs(last.y - once.y) <= 2, `${engine}: the link from the end of the group returns to ${once.y}, not ${last.y}`) + } finally { + await context.close() + } + } + + // A typed or scripted hash for a group above the viewport follows the same rule as a click. + for (const kind of wants('typed') ? ['group', 'owner'] : []) { + const { context, page } = await open(viewport) + try { + const groups = await groupsOf(page) + const last = groups.at(-1) + const id = kind === 'owner' ? 'api-members' : groups[0].id + await scrollTo(page, last.top + Math.min(last.height / 2, 600)) + await page.evaluate((id) => { location.hash = `#${id}` }, id) + await quiet(page) + reached(await landing(page, id), `a typed hash for ${id}`) + } finally { + await context.close() + } + } + if (!only) console.log(`API sticky headings: ${engine} at ${size} keeps focus clear and lands links and typed hashes at the start of their group`) + } +} + +/** The sticky heading check fails when the clearance or the typed-hash handling it guards is removed. */ +export async function checkApiStickyHeadingsFail(browser, base) { + const engine = browser.browserType().name() + const controls = [ + ['focus clearance', { only: ['focus'], sabotage: { css: '.api-members :where(a[href], button, summary, input, select, textarea, [tabindex]) { scroll-margin-top: 0 !important }' } }, + /backward tab stop \d+ (is not entirely hidden by|starts below) the sticky bars/], + ['the Navigation API', { only: ['typed'], sabotage: { script: 'Object.defineProperty(window, "navigation", { value: undefined })' } }, + /a typed hash for [\w-]+ lands at the (reading line|start of its group)/], + ['a positioned Members bar in flow', { only: ['focus'], sabotage: { css: '.api-members[data-api-sticky-members] > h2:has(:focus-visible) { position: static !important }' } }, + /the focused Members permalink is covered/], + ] + for (const [name, options, failure] of controls) { + await assert.rejects(() => checkApiStickyHeadings(browser, base, options), failure, `${engine}: the check fails without ${name}`) + } + console.log(`API sticky headings: ${engine} fails without focus clearance, typed-hash handling or a positioned Members bar`) +} + /** Check document navigation, persisted preferences and controls at each arrival. */ export async function checkNavigation(page, base) { await observeInitialPageLoad(page) diff --git a/site/scripts/check-page-readiness.mjs b/site/scripts/check-page-readiness.mjs index 7bd0f5cf1..3d14612aa 100644 --- a/site/scripts/check-page-readiness.mjs +++ b/site/scripts/check-page-readiness.mjs @@ -1,4 +1,6 @@ import assert from 'node:assert/strict' +import pixelmatch from 'pixelmatch' +import { PNG } from 'pngjs' /** Real font selection, link drawing and geometry at the first visible frame. */ async function observeAppearance(context) { @@ -19,7 +21,8 @@ async function observeAppearance(context) { // Icon-only links draw no glyph, and a closed header menu is not what a reader sees first. const glyphLinks = [...document.querySelectorAll('a[data-external-link]:not([data-external-link-icon])')] const icon = glyphLinks.find((link) => link.checkVisibility()) ?? glyphLinks[0] - const dotted = document.querySelector('.api-badge[data-link-preview] > .api-badge__label') + // The legend chip's word sits one box deeper than a modifier's, so the word is any label inside the chip. + const dotted = document.querySelector('.api-badge[data-link-preview] .api-badge__label') window.__appearance.first = { readiness: document.documentElement.dataset.pageReadiness, fonts: text.every((element) => { @@ -266,3 +269,264 @@ export async function checkRequiredAppearance(browser, base) { } finally { await legacy.close() } console.log('Appearance: held font/module/effect, first visible fonts/icons/dotted links, stable geometry, failure and Reload PASS') } + +/** + * A quarter em; navigation rows keep their 4px, which is .286em at 14px. + * Split chips (the mark is the cap of one outlined token) and the tree's fixed + * gutter (names indent after the mark column) have no such gap and say `gap: false`. + */ +const BADGE_GAP = { min: .21, max: .29 } + +/* + * Cards and list rows lead a bare name, not a code chip, so their mark sits a + * half em from it and is centred on the name's capital height rather than on + * its line box. `gap: false, centre: false` hands those entries to + * check-badge-centring, which measures them from pixels (the cap-centre and the + * gap, in both directions) with a negative control. + */ + +/** + * Every link that leads with a kind badge, by the badge's selector. `line` + * marks single-line prose links, which must not grow their line; `sample` + * keeps an entry in the bounded sample. + */ +const BADGE_LINKS = [ + { label: 'prose link', path: '/rs/latest/concepts/server-session-window-pane/', badges: 'p a > .api-link-kind', line: true, fixtures: true, sample: true }, + { label: 'guide prose link', path: '/py/stable/guides/attaching-to-tmux/', badges: 'p a > .api-link-kind', line: true, sample: true }, + { label: 'MCP prose link', path: '/py/stable/mcp/tools/capture_pane/', badges: 'p a > .api-link-kind', line: true }, + { label: 'MCP index card', path: '/py/stable/mcp/tools/', badges: '.api-index-card a > .api-nav__kind', gap: false, centre: false, sample: true }, + { label: 'MCP catalog heading', path: '/py/stable/mcp/tools/', badges: 'h2 a > .api-nav__kind', gap: false, centre: false }, + { label: 'API equivalent', path: '/py/stable/workspace/reference/tmuxp-workspace-builder-classicworkspacebuilder-build/', badges: '.api-elsewhere-value a > .api-nav__kind', gap: false, sample: true }, + { label: 'sidebar link', path: '/py/stable/workspace/reference/tmuxp-workspace-builder-classicworkspacebuilder-build/', badges: 'a.sidebar-link > .api-nav__kind' }, + { label: 'sidebar section', path: '/py/stable/workspace/reference/tmuxp-workspace-builder-classicworkspacebuilder-build/', badges: 'summary a > .api-nav__kind' }, + // The MCP tree draws no marks under a group of one kind, so its leaf marks are measured on an API tree. + { label: 'navigation tree link', path: '/java/latest/reference/io-github-libtmux-server-server/', badges: 'a.api-nav__leaf > .api-nav__kind', gap: false }, + { label: 'navigation tree row', path: '/java/latest/reference/io-github-libtmux-server-server/', badges: 'div.api-nav__row > .api-nav__kind', gap: false }, + { label: 'related type card', path: '/java/latest/reference/io-github-libtmux-server-server/', badges: '.api-related-card a > .api-nav__kind' }, + { label: 'related API contents', path: '/java/latest/reference/io-github-libtmux-server-server/', badges: 'nav.api-related a > .api-nav__kind', gap: false }, + { label: 'command related API', path: '/powershell/latest/reference/libtmux-enter-tmuxsession/', badges: '.api-command-related a > .api-nav__kind', gap: false }, + { label: 'navigation search result', path: '/lua/latest/reference/libtmux-server/', badges: '[data-api-search-results] a strong > .api-nav__kind', gap: false, + prepare: async (page) => { + await page.getByRole('searchbox', { name: 'Find a type or member' }).fill('Server') + await page.locator('[data-api-search-results] a').first().waitFor() + } }, +] + +/** Read the decorations that reach a badge and its name, and the badge's centring and gap. */ +async function describeBadgeLink(badge) { + return badge.evaluate((badge) => { + // Atomic inline boxes keep their contents clear of an ancestor's decoration. + const atomic = (element) => { + const style = getComputedStyle(element) + return /^inline-(block|flex|grid|table)$/.test(style.display) || style.float !== 'none' + || style.position === 'absolute' || style.position === 'fixed' + } + const owners = (node) => { + const found = [] + let blocked = false + for (let element = node; element && element !== document.body; element = element.parentElement) { + const style = getComputedStyle(element) + if (style.textDecorationLine !== 'none' && (element === node || !blocked)) { + found.push(`${element.tagName.toLowerCase()}${element.className ? `.${String(element.className).split(' ')[0]}` : ''} ${style.textDecorationLine} ${style.textDecorationStyle}`) + } + if (atomic(element)) blocked = true + } + return found + } + let name = badge.nextSibling + while (name && name.nodeType !== 1 && !name.textContent.trim()) name = name.nextSibling + let text = name.nodeType === 3 ? name : null + const walker = document.createTreeWalker(name, NodeFilter.SHOW_TEXT) + for (let node = walker.nextNode(); !text && node; node = walker.nextNode()) if (node.textContent.trim()) text = node + const range = document.createRange() + const first = text.textContent.search(/\S/) + range.setStart(text, first) + range.setEnd(text, first + 1) + const glyph = range.getBoundingClientRect() + const box = badge.getBoundingClientRect() + const chip = name.nodeType === 1 ? (name.matches('code') ? name : name.querySelector('code')) : null + const link = badge.closest('a') ?? badge.parentElement + const holder = badge.parentElement + const fontSize = parseFloat(getComputedStyle(holder).fontSize) + const gap = (chip ? chip.getClientRects()[0].left : glyph.left) - box.right + return { + name: text.textContent.trim().slice(0, 24), + preview: link.hasAttribute('data-link-preview'), + badgeOwners: owners(badge), + nameOwners: owners(text.parentElement), + centre: (box.top + box.height / 2) - (glyph.top + glyph.height / 2), + gap: gap / fontSize, + lineExcess: link.getBoundingClientRect().height - parseFloat(getComputedStyle(link).lineHeight), + } + }) +} + +/** + * The badge's own pixels, and a strip under it, with and without any + * decoration. A badge's rounded corners sit at a fractional offset, and + * repaints rasterize them a channel unit apart, so compare perceptible + * change; an underline changes whole pixels. + */ +async function paintsBadgeDecoration(page, badge) { + await badge.scrollIntoViewIfNeeded() + const box = await badge.boundingBox() + const clip = { x: box.x, y: box.y, width: box.width, height: box.height + 4 } + const drawn = await page.screenshot({ clip }) + const style = await page.addStyleTag({ content: '*, *::before, *::after { text-decoration: none !important; }' }) + const bare = await page.screenshot({ clip }) + await style.evaluate((node) => node.remove()) + if (drawn.equals(bare)) return false + const [before, after] = [PNG.sync.read(drawn), PNG.sync.read(bare)] + return pixelmatch(before.data, after.data, null, before.width, before.height, { threshold: .1 }) > 0 +} + +/** Clone the first prose link into headings and a table, the contexts real pages vary in. */ +async function addBadgeLinkFixtures(page) { + await page.evaluate(() => { + const source = document.querySelector('p a:has(> .api-link-kind)') + const article = source.closest('p').parentElement + const variant = (plain) => { + const clone = source.cloneNode(true) + if (plain) clone.querySelector('.api-symbol-link__name').textContent = 'Session' + return clone + } + for (const tag of ['h2', 'h3', 'h4']) for (const plain of [false, true]) { + const heading = document.createElement(tag) + heading.append('Heading ', variant(plain)) + heading.dataset.fixture = 'heading' + article.append(heading) + } + const table = document.createElement('table') + table.dataset.fixture = 'table' + table.innerHTML = '' + table.querySelector('th').append(variant(true)) + const cells = table.querySelectorAll('td') + cells[0].append(variant(false)) + cells[1].append(variant(true)) + article.append(table) + }) +} + +/** + * A kind badge inside a link carries no dotted line, sits centred on the + * name's text, and leads it by about a quarter em. + */ +export async function checkKindBadgeLinks(browser, base, { sample = false } = {}) { + const context = await browser.newContext({ reducedMotion: 'reduce', viewport: { width: 1600, height: 1000 } }) + const page = await context.newPage() + page.setDefaultTimeout(process.env.CI ? 20000 : 10000) + const failures = [] + try { + for (const path of new Set(BADGE_LINKS.filter((entry) => !sample || entry.sample).map((entry) => entry.path))) { + await page.goto(`${base}${path}`, { waitUntil: 'load' }) + await page.waitForFunction(() => document.documentElement.dataset.pageReadiness === 'ready') + // A hover preview opens over the page and would differ between the two paints. + await page.addStyleTag({ content: '.reference-link-preview { display: none !important; }' }) + for (const entry of BADGE_LINKS.filter((candidate) => candidate.path === path && (!sample || candidate.sample))) { + await entry.prepare?.(page) + const variants = [{ label: entry.label, badges: entry.badges, line: entry.line, gap: entry.gap, centre: entry.centre }] + if (entry.fixtures) { + await addBadgeLinkFixtures(page) + variants.push( + { label: `${entry.label} in a heading`, badges: '[data-fixture="heading"] .api-link-kind', line: true }, + { label: `${entry.label} in a table`, badges: '[data-fixture="table"] .api-link-kind', line: true }) + } + for (const { label, badges, line, gap: checkGap, centre: checkCentre } of variants) { + // A closed disclosure lays out nothing to measure. + await page.evaluate((selector) => { + for (const badge of document.querySelectorAll(selector)) { + for (let fold = badge.closest('details'); fold; fold = fold.parentElement?.closest('details')) fold.open = true + } + }, badges) + const found = page.locator(badges).filter({ visible: true }) + const count = Math.min(await found.count(), 6) + assert(count > 0, `${path}: no ${label} badge to measure`) + for (let index = 0; index < count; index++) { + const badge = found.nth(index) + const measured = await describeBadgeLink(badge) + const where = `${label} "${measured.name}"` + if (measured.badgeOwners.length) failures.push(`${where}: a decoration reaches the badge (${measured.badgeOwners.join('; ')})`) + if (measured.preview && (measured.nameOwners.length !== 1 || !measured.nameOwners[0].endsWith('underline dotted'))) { + failures.push(`${where}: the name needs exactly one dotted underline (${measured.nameOwners.join('; ') || 'none'})`) + } + if (checkCentre !== false && Math.abs(measured.centre) > 1) failures.push(`${where}: badge centre is ${measured.centre.toFixed(2)}px from the text centre`) + if (checkGap !== false && (measured.gap < BADGE_GAP.min || measured.gap > BADGE_GAP.max)) failures.push(`${where}: badge gap is ${measured.gap.toFixed(3)}em, not about .25em`) + if (line && measured.lineExcess > 1) failures.push(`${where}: the link is ${measured.lineExcess.toFixed(2)}px taller than its line`) + } + // The rendered badge, hovered or not, must match the same page drawn without decorations. + const first = found.first() + if (await paintsBadgeDecoration(page, first)) failures.push(`${label}: the badge's rendered box is underlined`) + await first.hover() + if (await paintsBadgeDecoration(page, first)) failures.push(`${label}: the badge is underlined while hovered`) + await page.mouse.move(0, 0) + } + } + } + assert.deepEqual(failures, [], 'Kind badges inside links') + console.log(`Kind badges: ${sample ? 'sampled' : 'every'} link variant has no underline on the badge, a centred badge and a quarter-em gap PASS`) + } finally { + await context.close() + } +} + +/** Overview pages with cards, then a prose page whose inline preview links must keep their line. */ +const BLOCK_LINK_PAGES = [ + { path: '/ts/latest/workspace/', sample: true }, + { path: '/rs/latest/' }, + { path: '/go/latest/mcp/' }, + { path: '/rs/latest/concepts/server-session-window-pane/', inline: true, sample: true }, +] + +/** Link elements whose own text decoration is dotted, with why each is not an inline text run. */ +function dottedDecorations() { + const blocks = 'h1, h2, h3, h4, h5, h6, p, div, ul, ol, li, table, pre, section, article, aside, blockquote, dl' + const found = [] + for (const element of document.body.querySelectorAll('*')) { + const style = getComputedStyle(element) + if (!style.textDecorationLine.includes('underline') || style.textDecorationStyle !== 'dotted') continue + // An abbreviation's own dotted line is not a preview. + const link = element.closest('a') + if (!link) continue + const display = getComputedStyle(link).display + const wrapped = link.querySelector(blocks) + const reason = !/^(inline|inline-flex|inline-block)$/.test(display) ? `a ${display} link` + : wrapped ? `a link wrapping <${wrapped.tagName.toLowerCase()}>` : '' + found.push({ element: `${element.tagName.toLowerCase()}${element.className ? `.${String(element.className).split(' ')[0]}` : ''}`, + href: link.getAttribute('href'), reason }) + } + return found +} + +/** + * A card or other block link shows its own summary, so it takes no preview + * line; only inline text runs carry the dotted underline. + */ +export async function checkBlockLinksUndecorated(browser, base, { sample = false } = {}) { + const context = await browser.newContext({ reducedMotion: 'reduce', viewport: { width: 1440, height: 1000 } }) + const page = await context.newPage() + page.setDefaultTimeout(process.env.CI ? 20000 : 10000) + const failures = [] + try { + for (const { path, inline } of BLOCK_LINK_PAGES.filter((entry) => !sample || entry.sample)) { + await page.goto(`${base}${path}`, { waitUntil: 'load' }) + await page.waitForFunction(() => document.documentElement.dataset.pageReadiness === 'ready') + // Hovering is what asks for a preview, so exercise every block link on the page. + const cards = page.locator('main a[href]').filter({ has: page.locator('h1, h2, h3, h4, h5, h6, p') }) + for (let index = 0; index < Math.min(await cards.count(), 8); index++) { + await cards.nth(index).hover() + // The preview waits 180ms before it marks a link, so wait past that dwell. + await page.waitForTimeout(400) + } + await page.mouse.move(0, 0) + const dotted = await page.evaluate(dottedDecorations) + for (const { element, href, reason } of dotted) { + if (reason) failures.push(`${path}: ${element} (${href}) carries a dotted line but is ${reason}`) + } + if (inline) assert(dotted.some(({ reason }) => !reason), `${path}: an inline preview link keeps its dotted line`) + } + assert.deepEqual(failures, [], 'Block links with a preview line') + console.log(`Block links: ${sample ? 'sampled' : 'every'} overview card page keeps preview lines on inline links only PASS`) + } finally { + await context.close() + } +} diff --git a/site/scripts/check-status-badges.mjs b/site/scripts/check-status-badges.mjs new file mode 100644 index 000000000..bef31c115 --- /dev/null +++ b/site/scripts/check-status-badges.mjs @@ -0,0 +1,354 @@ +import assert from 'node:assert/strict' +import { CONCEPT_DESCRIPTION, PICKER_GROUP_SUMMARY, PORT_BY_SLUG, PRODUCT_STATUS_GUIDE, PRODUCT_STATUS_LINE, PRODUCT_STATUS_LINK, productAvailable, productStatus } from '../src/lib/ports.ts' +import registry from '../src/data/registry.json' with { type: 'json' } +import { HOVER_OPEN } from '../src/lib/status-toggletip.ts' + +/** + * Every product (Core Library, MCP, Workspace Manager) in the documentation + * picker and the homepage solution menu has one status badge beside its name: + * `concept` for a working example, else its release stage. The badge is a + * toggletip with one short line and a link to the guide. It opens on hover, + * keyboard focus and a tap, closes on Escape, and sits beside a row's control + * rather than inside it. A row shows its label and one summary line, nothing more. + */ +const PORTS_CHECKED = ['rs', 'go', 'py', 'julia', 'java'] +const INTERACTIVE = 'a[href], button, summary, input, select, textarea, [tabindex]:not([tabindex="-1"]), [role="button"], [role="link"]' +const PRODUCTS = [['core', 'Core Library'], ['mcp', 'MCP'], ['workspace', 'Workspace Manager']] +// A summary line is about as long as "Repeatable development environments"; a toggletip line is about eight words. +const SUMMARY_BUDGET = 48 +const TOGGLETIP_BUDGET = 60 + +const expectedRows = (slug) => PRODUCTS.flatMap(([product, label]) => { + const port = PORT_BY_SLUG[slug] + const status = product === 'core' || productAvailable(port, product) ? productStatus(port, product, registry) : undefined + return status ? [{ product, label, status }] : [] +}) + +const nestedInteractive = (root, selector) => [...root.querySelectorAll(selector)] + .filter((element) => element.parentElement?.closest(selector)) + .map((element) => `${element.tagName.toLowerCase()} inside ${element.parentElement.closest(selector).tagName.toLowerCase()}`) + +const cardOf = (badge) => badge.locator('xpath=following-sibling::*[@popover]') +const isOpen = (card) => card.evaluate((element) => element.matches(':popover-open')) +const closed = async (card, message) => { + await card.waitFor({ state: 'hidden' }) + assert.equal(await isOpen(card), false, message) +} + +/** The text blocks of a menu: every paragraph and small line, with the lines a row shows under its label. */ +const readText = (panel) => { + const lines = (element) => { + const range = document.createRange() + range.selectNodeContents(element) + return new Set([...range.getClientRects()].map((rect) => Math.round(rect.top))).size + } + const long = [...panel.querySelectorAll('p, small')].filter((element) => !element.hasAttribute('data-picker-status')) + .map((element) => ({ tag: element.tagName.toLowerCase(), cls: element.className, text: element.textContent.replace(/\s+/g, ' ').trim() })) + const rows = [...panel.querySelectorAll('[data-surface-entry]')].map((entry) => ({ + label: entry.querySelector('.surface-label')?.textContent.trim(), + paragraphs: entry.querySelectorAll('p').length, + summaries: [...entry.querySelectorAll(':scope > details > summary small, :scope > a small')] + .map((small) => ({ text: small.textContent.replace(/\s+/g, ' ').trim(), lines: lines(small) })), + })) + return { long, rows } +} + +/** The pre-badge picker and solution menu: no badge on the library, a concept chip inside each companion's control, a paragraph and a footer line. */ +const originMainMarkup = (concept) => { + const element = (tag, props) => Object.assign(document.createElement(tag), props) + for (const badge of document.querySelectorAll('.surface-entry__badge')) badge.remove() + for (const label of [...document.querySelectorAll('.surface-entry .surface-label')].slice(1)) { + label.after(element('span', { className: 'concept-badge', textContent: 'concept' })) + } + for (const small of [...document.querySelectorAll('.surface-entry summary small, .surface-entry a small')].slice(1)) small.textContent = concept + for (const group of [...document.querySelectorAll('.surface-entry .surface-group')].slice(1)) { + group.querySelector('.surface-options')?.before(element('p', { className: 'surface-concept-description', textContent: concept })) + } + const key = element('p', { className: 'surface-status-key' }) + key.append(element('a', { href: '/meta/support/', textContent: 'Concept and alpha' }), ': example support scope and release maturity.') + document.querySelector('.surface-picker-footer')?.before(key) +} + +async function checkRows(page, picker, slug, where, kind) { + const rows = expectedRows(slug) + const entries = picker.locator('[data-surface-entry]') + assert.deepEqual(await entries.locator('.surface-label').allTextContents(), rows.map(({ label }) => label), `${where}: one entry per product, in order`) + const anchored = await page.evaluate(() => CSS.supports('anchor-name', '--a')) + for (const [index, { label, status }] of rows.entries()) { + const badges = entries.nth(index).locator('.status-badge') + assert.equal(await badges.count(), 1, `${where}: ${label} has exactly one status badge`) + assert.equal(await badges.first().getAttribute('data-status'), status, `${where}: ${label} states ${status}`) + assert.equal(await badges.first().evaluate((element) => element.firstChild.textContent), status, `${where}: ${label} badge reads ${status}`) + } + assert.deepEqual(await picker.evaluate(nestedInteractive, INTERACTIVE), [], `${where}: no interactive element sits inside another`) + assert.equal(await picker.locator('.surface-status-key').count(), 0, `${where}: the footer status line is gone`) + let listGap + for (const [index, { label, status }] of rows.entries()) { + const entry = entries.nth(index) + const badge = entry.locator('.status-badge').first() + // Beside its name, on the same line, and clear of it. + const labelBox = await entry.locator('.surface-label').boundingBox() + const badgeBox = await badge.boundingBox() + assert(badgeBox.x >= labelBox.x + labelBox.width + 2, `${where}: the ${label} badge clears its name`) + if (anchored) { + listGap ??= badgeBox.x - (labelBox.x + labelBox.width) + assert(badgeBox.x - (labelBox.x + labelBox.width) <= 16, `${where}: the ${label} badge sits beside its name (${Math.round(badgeBox.x - labelBox.x - labelBox.width)}px away)`) + assert(Math.abs(badgeBox.y + badgeBox.height / 2 - labelBox.y - labelBox.height / 2) <= 4, `${where}: the ${label} badge shares its name's line`) + } + assert.equal(await entry.getByRole('button', { name: `${status} status of ${label}`, exact: true }).count(), 1, `${where}: ${label} badge is named for its product`) + const card = cardOf(badge) + assert.equal(await badge.getAttribute('aria-controls'), await card.getAttribute('id'), `${where}: ${label} badge controls its card`) + assert.equal(await badge.getAttribute('aria-expanded'), 'false', `${where}: ${label} card starts closed`) + assert.equal(await isOpen(card), false, `${where}: ${label} card starts closed`) + } + const text = await picker.locator('[data-picker-panel]').evaluate(readText) + for (const row of text.rows) { + assert.equal(row.paragraphs, 0, `${where}: ${row.label} shows no paragraph`) + assert.equal(row.summaries.length, 1, `${where}: ${row.label} shows one summary line under its label`) + const [summary] = row.summaries + assert(summary.text.length <= SUMMARY_BUDGET && summary.lines <= 1, + `${where}: ${row.label} summary line stays short and on one line (${summary.text.length} characters, ${summary.lines} lines: "${summary.text}")`) + const product = PRODUCTS.find(([, label]) => label === row.label)[0] + assert.equal(summary.text, PICKER_GROUP_SUMMARY[product], `${where}: ${row.label} says what the product does, the same on every port`) + } + for (const block of text.long) { + assert(block.text.length <= SUMMARY_BUDGET, `${where}: a ${block.tag}.${block.cls} block in the menu holds ${block.text.length} characters: "${block.text.slice(0, 60)}"`) + } + if (kind === 'picker') { + // The trigger carries the same word as a plain label: it is a control, so it cannot hold a second one. + const current = picker.locator(':scope > summary .status-badge') + assert.equal(await current.count(), 1, `${where}: the trigger shows its product's badge`) + assert.equal(await current.getAttribute('data-status'), rows[0].status, `${where}: the trigger states ${rows[0].status}`) + assert.equal(await current.evaluate((element) => element.tagName), 'SPAN', `${where}: the trigger's badge is a label`) + assert.equal(await current.getAttribute('tabindex'), null, `${where}: the trigger's badge takes no focus`) + // The trigger repeats the list's row, so its name and badge sit the same distance apart. + if (listGap !== undefined) { + const name = await picker.locator(':scope > summary .surface-label').boundingBox() + const gap = (await current.boundingBox()).x - (name.x + name.width) + assert(Math.abs(gap - listGap) <= 1, `${where}: the trigger's badge sits ${gap.toFixed(1)}px from its name, the list's ${listGap.toFixed(1)}px`) + } + const description = await picker.locator(':scope > summary').getAttribute('aria-description') + assert.equal(description, PRODUCT_STATUS_LINE[rows[0].status], `${where}: the trigger is described by the short line`) + } +} + +async function checkToggletip(page, picker, badge, status, label, where) { + const card = cardOf(badge) + const link = card.locator('a') + // Keyboard focus opens it. + await badge.focus() + await card.waitFor({ state: 'visible' }) + assert.equal(await badge.getAttribute('aria-expanded'), 'true', `${where}: focus opens the ${status} card`) + assert.equal((await card.locator('.status-toggletip__title').innerText()).trim(), status, `${where}: the card is titled with the stage`) + const line = (await card.locator('.status-toggletip__line').innerText()).trim() + assert(line.length <= TOGGLETIP_BUDGET, `${where}: the card's line is ${line.length} characters, over the ${TOGGLETIP_BUDGET} budget: "${line}"`) + assert.equal(line, PRODUCT_STATUS_LINE[status], `${where}: the card holds the ${status} line`) + assert.equal(await card.getAttribute('role'), 'group', `${where}: the card is a named group`) + assert.equal(await card.getAttribute('aria-label'), `${status}: ${label}`, `${where}: the card names its product`) + const box = await card.boundingBox() + const viewport = page.viewportSize() + assert(box.x >= 0 && box.x + box.width <= viewport.width && box.y >= 0 && box.y + box.height <= viewport.height, `${where}: the card stays inside the viewport`) + // The link is reachable by keyboard, keeps the card open, and goes to the guide's section. + assert.equal(await link.count(), 1, `${where}: the card has one link`) + await page.keyboard.press('Tab') + assert(await link.evaluate((element) => element === document.activeElement), `${where}: Tab moves from the badge into the card's link`) + assert.equal(await isOpen(card), true, `${where}: the card stays open while its link has focus`) + const href = new URL(await link.getAttribute('href'), page.url()) + assert.equal(`${href.pathname}${href.hash}`.replace(/^\/(?:pr-\d+\/)?(?:en\/)?/, '/'), PRODUCT_STATUS_GUIDE, `${where}: the link goes to the concept and alpha section`) + const guide = await page.request.get(`${href.origin}${href.pathname}`) + assert(guide.ok(), `${where}: the guide responds (HTTP ${guide.status()})`) + assert((await guide.text()).includes(`id="${href.hash.slice(1)}"`), `${where}: the guide has the ${href.hash} section`) + assert.equal((await link.innerText()).trim(), PRODUCT_STATUS_LINK, `${where}: the link says Read more`) + // Escape closes the card, returns focus to the badge and leaves the menu open. + await page.keyboard.press('Escape') + await closed(card, `${where}: Escape closes the card`) + assert.equal(await badge.getAttribute('aria-expanded'), 'false', `${where}: Escape collapses the badge`) + assert(await badge.evaluate((element) => element === document.activeElement), `${where}: Escape returns focus to the badge`) + assert.equal(await picker.evaluate((element) => element.open), true, `${where}: Escape closes the card before the menu`) + // Moving focus away closes it. + await picker.locator('[data-picker-search]').focus() + await closed(card, `${where}: leaving the badge closes the card`) + // Hover opens it only after the pointer rests, stays open over the card, and Escape closes it without moving the pointer. + await page.mouse.move(2, 2) + await badge.hover() + await page.waitForTimeout(HOVER_OPEN / 2) + assert.equal(await isOpen(card), false, `${where}: a passing pointer leaves the card closed for ${HOVER_OPEN}ms`) + await card.waitFor({ state: 'visible' }) + await link.hover() + await page.waitForTimeout(400) + assert.equal(await isOpen(card), true, `${where}: the card stays open under the pointer`) + await page.keyboard.press('Escape') + await closed(card, `${where}: Escape closes a card opened by hover`) + assert.equal(await picker.evaluate((element) => element.open), true, `${where}: the menu stays open`) + await page.mouse.move(2, 2) + await badge.hover() + await card.waitFor({ state: 'visible' }) + await page.mouse.move(2, 2) + await closed(card, `${where}: moving the pointer away closes the card`) +} + +async function openPicker(picker) { + await picker.locator(':scope > summary').click() + await picker.locator('[data-picker-panel]').waitFor({ state: 'visible' }) + await picker.locator('[data-surface-search]').waitFor({ state: 'visible' }) +} + +async function applySabotage(page, sabotage) { + if (sabotage?.css) await page.addStyleTag({ content: sabotage.css }) + if (sabotage?.script) await page.evaluate(sabotage.script, sabotage.arg) + if (sabotage?.window) await page.evaluate(sabotage.window) +} + +/** + * Check the status badges of the documentation picker and the homepage solution + * menu on Rust, Go, Python, Julia and Java, and a touch tap on a phone. + */ +export async function checkStatusBadges(browser, base, options = {}) { + const { ports = PORTS_CHECKED, menus = ['picker', 'solutions'], widths = [1440, 390], schemes = ['light', 'dark'], + touch = true, timeout, sabotage } = options + let rows = 0 + for (const scheme of schemes) { + const context = await browser.newContext({ colorScheme: scheme, reducedMotion: 'reduce' }) + const page = await context.newPage() + page.setDefaultTimeout(timeout ?? (process.env.CI ? 20000 : 10000)) + page.setDefaultNavigationTimeout(60000) + try { + for (const slug of ports) { + for (const width of widths) { + await page.setViewportSize({ width, height: 900 }) + for (const menu of menus) { + const solutions = menu === 'solutions' + // The homepage opens on its default language and switches to ?port= once its script runs, so wait for this port's menu. + const root = solutions ? `[data-home-launcher] .home-launcher-solution[data-home-language="${slug}"]:not([hidden])` : '[data-documentation-context]' + // The development server can replace a page while it optimizes dependencies; load it again once. + for (const attempt of [1, 2]) { + try { + await page.goto(solutions ? `${base}/?port=${slug}` : `${base}/${slug}/latest/`, { waitUntil: 'load' }) + await page.waitForFunction(() => document.fonts.status === 'loaded') + await page.waitForSelector(`${root} [data-surface-picker][data-enhanced]`, { state: 'attached' }) + break + } catch (error) { + if (attempt === 2) throw error + } + } + await applySabotage(page, sabotage) + const picker = page.locator(`${root} [data-surface-picker]`) + const where = `${solutions ? 'solution menu' : 'picker'} ${slug} at ${width}px (${scheme})` + await openPicker(picker) + await checkRows(page, picker, slug, where, solutions ? 'solutions' : 'picker') + const expected = expectedRows(slug) + for (const [index, { label, status }] of expected.entries()) { + // Behavior once per page on a wide screen, and the first row on a phone. + if ((scheme === 'light' && width === 1440) || (width === 390 && index === 0)) { + await checkToggletip(page, picker, picker.locator('[data-surface-entry] .status-toggletip > .status-badge').nth(index), status, label, `${where} ${label}`) + } + rows += 1 + } + await page.keyboard.press('Escape') + } + } + } + } finally { + await context.close() + } + } + if (touch && !sabotage) { + const context = await browser.newContext({ viewport: { width: 390, height: 844 }, hasTouch: true, isMobile: true, reducedMotion: 'reduce' }) + const page = await context.newPage() + page.setDefaultTimeout(process.env.CI ? 20000 : 10000) + page.setDefaultNavigationTimeout(60000) + try { + await page.goto(`${base}/go/latest/`, { waitUntil: 'load' }) + await page.waitForSelector('[data-documentation-context] [data-surface-picker][data-enhanced]', { state: 'attached' }) + const picker = page.locator('[data-documentation-context] [data-surface-picker]') + await picker.locator(':scope > summary').tap() + await picker.locator('[data-picker-panel]').waitFor({ state: 'visible' }) + const badge = picker.locator('[data-surface-entry] .status-toggletip > .status-badge').first() + const card = cardOf(badge) + await badge.tap() + await card.waitFor({ state: 'visible' }) + assert.equal(await badge.getAttribute('aria-expanded'), 'true', 'a tap opens the card') + await page.waitForTimeout(500) + assert.equal(await isOpen(card), true, 'a tapped card stays open') + assert.equal(await picker.evaluate((element) => element.open), true, 'a tap leaves the menu open') + await badge.tap() + await closed(card, 'a second tap closes the card') + } finally { + await context.close() + } + } + console.log(`Status badges: ${rows} product rows in the picker and solution menu on ${ports.join(', ')} each carry one badge beside the name with its stage, a toggletip of one short line that opens on focus and hover${touch ? ' and tap' : ''}, links to the guide, closes on Escape, and no row shows more than a summary line`) +} + +/** The check must fail on the pre-badge markup and on each way a badge or a row could regress. */ +export async function checkStatusBadgesFail(browser, base) { + const only = { ports: ['go'], widths: [1440], schemes: ['light'], timeout: 3000 } + const picker = { ...only, menus: ['picker'] } + const solutions = { ...only, menus: ['solutions'] } + const longText = (scope) => { + for (const small of [...document.querySelectorAll(`${scope} small`)].slice(1)) small.textContent = 'Maintained as a working example of core library usage and deployment. Example APIs may change.' + } + const controls = [ + ['the pre-badge picker markup', picker, { script: originMainMarkup, arg: CONCEPT_DESCRIPTION }, /Core Library has exactly one status badge/], + ['the pre-badge solution menu markup', solutions, { script: originMainMarkup, arg: CONCEPT_DESCRIPTION }, /Core Library has exactly one status badge/], + ['a second badge on a row', picker, { + script: () => document.querySelectorAll('.surface-entry').forEach((entry) => entry.querySelector('.surface-label').after(Object.assign(document.createElement('span'), { className: 'status-badge', textContent: 'alpha' }))), + }, /has exactly one status badge/], + ['a wrong stage', picker, { + script: () => document.querySelector('.status-toggletip > .status-badge').setAttribute('data-status', 'concept'), + }, /Core Library states alpha/], + ['a badge far from its name', picker, { + css: '.surface-entry > .surface-entry__badge { left: auto !important; right: 2.1rem !important; top: 1.15rem !important; translate: none !important }', + }, /badge sits beside its name/], + ['a trigger badge pressed against its name', picker, { + css: '.surface-current .surface-current__badge { margin-inline-start: 0 !important }', + }, /trigger's badge sits .*px from its name/], + ['the concept paragraph in the picker', picker, { + script: () => document.querySelectorAll('.surface-entry .surface-group').forEach((group, index) => { + if (index > 0) group.querySelector('.surface-options').before(Object.assign(document.createElement('p'), { className: 'surface-concept-description', textContent: 'Maintained as a working example of core library usage and deployment. Example APIs, tools and configuration may change without a compatibility or product support commitment.' })) + }), + }, /shows no paragraph/], + ['a long summary in the solution menu', solutions, { script: longText, arg: '.surface-destination' }, /summary line stays short and on one line/], + ['the concept summary as a row summary', picker, { + script: () => document.querySelectorAll('.surface-group > summary small').forEach((small, index) => { if (index > 0) small.textContent = 'Working example of the core library' }), + }, /says what the product does/], + ['a long summary in the picker', picker, { script: longText, arg: '.surface-group > summary' }, /summary line stays short and on one line/], + ['a long toggletip sentence', picker, { + script: () => document.querySelectorAll('.status-toggletip__line').forEach((line) => { line.textContent = 'Maintained as a working example of core library usage and deployment. Example APIs, tools and configuration may change.' }), + }, /over the 60 budget/], + ['the footer status line', picker, { + script: () => { + const key = document.createElement('p') + key.className = 'surface-status-key' + key.textContent = 'Concept and alpha: example support scope and release maturity.' + document.querySelector('.surface-picker-footer').before(key) + }, + }, /footer status line is gone|block in the menu holds/], + ['a badge inside its row control', picker, { + script: () => document.querySelectorAll('.surface-entry__badge').forEach((badge) => badge.closest('.surface-entry').querySelector('summary').append(badge)), + }, /no interactive element sits inside another/], + ['a card that never shows', picker, { css: '.status-toggletip__card { display: none !important }' }, /(?:Timeout|focus opens)/], + ['a card that opens the moment the pointer arrives', picker, { + window: () => window.addEventListener('pointerover', (event) => { + const card = event.target.closest?.('[data-status-toggletip]')?.querySelector(':scope > [popover]') + if (card && !card.matches(':popover-open')) card.showPopover() + }, true), + }, /a passing pointer leaves the card closed/], + ['hover opening', picker, { + window: () => window.addEventListener('pointerover', (event) => { if (event.target.closest?.('[data-status-toggletip]')) event.stopImmediatePropagation() }, true), + }, /(?:Timeout|stays open under the pointer)/], + ['Escape closing the card', picker, { + window: () => window.addEventListener('keydown', (event) => { if (event.key === 'Escape' && event.target.closest?.('[data-status-toggletip]')) event.stopImmediatePropagation() }, true), + }, /(?:Timeout|Escape closes the card)/], + ['a link out of the tab order', picker, { + script: () => document.querySelectorAll('.status-toggletip__card a').forEach((link) => link.setAttribute('tabindex', '-1')), + }, /Tab moves from the badge into the card's link/], + ['a link to a missing section', picker, { + script: () => document.querySelectorAll('.status-toggletip__card a').forEach((link) => link.setAttribute('href', '/meta/support/#no-such-section')), + }, /the guide has the #no-such-section section|goes to the concept and alpha section/], + ] + for (const [name, scope, sabotage, failure] of controls) { + await assert.rejects(() => checkStatusBadges(browser, base, { ...scope, sabotage }), failure, `the check fails with ${name}`) + } + console.log('Status badges: the check fails on the pre-badge picker and solution menu (no badge on Core Library), a second or wrong badge, a distant badge, a trigger badge closer to its name than in the list, a paragraph or long summary in a row, a long toggletip line, the footer line, a nested badge, a card that never shows, a card that opens without the hover delay, no hover, no Escape, an unreachable link and a broken section link') +} diff --git a/site/scripts/check-tables.mjs b/site/scripts/check-tables.mjs index 1c5fc1e94..254eea1f6 100644 --- a/site/scripts/check-tables.mjs +++ b/site/scripts/check-tables.mjs @@ -24,8 +24,8 @@ const paths = [ return `/${docsRoutePath({ id, data: { port, product, route } }, undefined, defaultVersion)}/` }), '/mcp/tools/', - '/parity/', - '/translations/', + '/meta/parity/', + '/meta/translations/', ] const browser = await chromium.launch({ channel: process.env.LIBTMUX_DOCS_BROWSER_CHANNEL }) let checked = 0 diff --git a/site/scripts/check-tmux-keys.mjs b/site/scripts/check-tmux-keys.mjs new file mode 100644 index 000000000..20d3d05f0 --- /dev/null +++ b/site/scripts/check-tmux-keys.mjs @@ -0,0 +1,131 @@ +import assert from 'node:assert/strict' + +/** Contrast of a rendered element's text against what is painted behind it. */ +function contrastOf(selector) { + const element = document.querySelector(selector) + const canvas = document.createElement('canvas') + canvas.width = canvas.height = 1 + const context = canvas.getContext('2d', { willReadFrequently: true }) + const paint = (color) => { + context.clearRect(0, 0, 1, 1) + context.fillStyle = color + context.fillRect(0, 0, 1, 1) + } + const luminance = () => { + const [r, g, b] = context.getImageData(0, 0, 1, 1).data.map((value) => { + const channel = value / 255 + return channel <= 0.03928 ? channel / 12.92 : ((channel + 0.055) / 1.055) ** 2.4 + }) + return 0.2126 * r + 0.7152 * g + 0.0722 * b + } + const backgrounds = [] + for (let parent = element; parent; parent = parent.parentElement) backgrounds.unshift(getComputedStyle(parent).backgroundColor) + context.fillStyle = '#fff' + context.fillRect(0, 0, 1, 1) + for (const color of backgrounds) { + context.fillStyle = color + context.fillRect(0, 0, 1, 1) + } + const background = luminance() + paint(getComputedStyle(element).color) + const values = [luminance(), background].sort((a, b) => b - a) + return (values[0] + 0.05) / (values[1] + 0.05) +} + +/** What a page marks as keys: each outermost kbd with the caps inside it. */ +function keysOf(selector) { + return [...document.querySelectorAll(`${selector} kbd`)] + .filter((key) => !key.parentElement.closest('kbd')) + .map((key) => ({ + text: key.textContent.replace(/\s+/g, ' ').trim(), + caps: [...key.children].filter((child) => child.tagName === 'KBD').map((cap) => cap.textContent), + })) +} + +/** The pages the check reads; the runner compiles them before timing begins. */ +export const TMUX_KEY_PAGES = [ + '/tmux/latest/manual/bind-key/', '/tmux/latest/manual/full/', '/tmux/guides/attaching-to-tmux/', '/tmux/guides/sending-keys/', +] + +/** + * tmux key notation renders as key caps: one nested kbd for a sequence, a kbd + * for a single key, and commands beside them stay links. + */ +export async function checkTmuxKeys(browser, base) { + for (const colorScheme of ['light', 'dark']) { + const context = await browser.newContext({ colorScheme, reducedMotion: 'reduce' }) + const page = await context.newPage() + page.setDefaultTimeout(process.env.CI ? 20000 : 10000) + const errors = [] + page.on('pageerror', (error) => errors.push(error.message)) + const open = async (path) => { + const response = await page.goto(`${base}${path}`) + assert(response?.ok(), `${path}: HTTP ${response?.status()}`) + await page.waitForFunction(() => document.fonts.status === 'loaded') + } + try { + await open(TMUX_KEY_PAGES[0]) + const manual = await page.evaluate(() => ({ + keys: [...document.querySelectorAll('.tmux-manual kbd')] + .filter((key) => !key.parentElement.closest('kbd')) + .map((key) => ({ text: key.textContent, caps: [...key.children].map((cap) => `${cap.tagName}:${cap.textContent}`) })), + literals: [...document.querySelectorAll('.tmux-manual code.Li')].map((code) => code.textContent), + links: [...document.querySelectorAll('.tmux-manual a[href$="/new-window/"] > code.Ic')].map((code) => code.textContent), + })) + assert.deepEqual(manual.keys.map((key) => key.text), ['c', 'C-b c', 'c', 'c'], `${colorScheme}: bind-key keys`) + assert.deepEqual(manual.keys[1].caps, ['KBD:C-b', 'KBD:c'], `${colorScheme}: C-b c is a kbd around one kbd per key`) + assert.deepEqual(manual.literals, [], `${colorScheme}: no key stays a code literal`) + assert.deepEqual(manual.links, ['new-window', 'new-window'], `${colorScheme}: new-window stays a command link`) + for (const width of [1440, 390]) { + await page.setViewportSize({ width, height: 900 }) + const label = `${colorScheme} ${width}` + const cap = await page.evaluate(() => { + const key = document.querySelector('.tmux-manual kbd > kbd') + const style = getComputedStyle(key) + const rect = key.getBoundingClientRect() + return { + bottom: style.borderBottomWidth, top: style.borderTopWidth, outer: getComputedStyle(key.parentElement).borderTopWidth, + size: parseFloat(style.fontSize), face: style.fontFamily, fits: rect.right <= innerWidth && rect.left >= 0, + overflow: document.documentElement.scrollWidth - innerWidth, + } + }) + assert.equal(cap.bottom, '2px', `${label}: a cap has a raised bottom edge`) + assert.equal(cap.top, '1px', `${label}: a cap has an outline`) + assert.equal(cap.outer, '0px', `${label}: the sequence draws no outline of its own`) + assert(cap.size >= 12 && cap.fits && cap.overflow <= 1, `${label}: caps stay legible and inside the viewport`) + assert(cap.face.includes('IBM Plex Mono'), `${label}: caps use the code face`) + const contrast = await page.evaluate(contrastOf, '.tmux-manual kbd > kbd') + assert(contrast >= 4.5, `${label}: cap contrast ${contrast}`) + } + if (colorScheme === 'dark') continue + + await open(TMUX_KEY_PAGES[1]) + const bindings = await page.evaluate(() => ({ + keys: [...document.querySelectorAll('#default-key-binding-c kbd, #default-key-binding-d kbd')].map((key) => key.textContent), + term: document.querySelector('#default-key-binding-c')?.tagName, + names: [...document.querySelectorAll('#KEY_BINDINGS ~ p kbd')].map((key) => key.textContent).slice(0, 6), + })) + assert.deepEqual(bindings.keys, ['c', 'd'], 'default bindings list keys') + assert.equal(bindings.term, 'DT', 'entry anchors stay on their terms') + assert.deepEqual(bindings.names, ['A', 'Z', 'C-', '^', 'S-', 'M-'], 'KEY BINDINGS names the modifiers') + + await open(TMUX_KEY_PAGES[2]) + assert.deepEqual(await page.evaluate(keysOf, 'article'), [{ text: 'C-b d', caps: ['C-b', 'd'] }], 'guide detach keys') + + await open(TMUX_KEY_PAGES[3]) + const guide = await page.evaluate(() => ({ + keys: [...document.querySelectorAll('article kbd')].map((key) => key.textContent), + typed: [...document.querySelectorAll('article code')].filter((code) => code.textContent === 'Enter').length, + overflow: document.documentElement.scrollWidth - innerWidth, + })) + assert.deepEqual(guide.keys, ['Enter', 'C-c', 'Up'], 'key names in the sending keys guide') + // The word typed into a pane is literal text, not a key. + assert(guide.typed >= 3, 'typed text stays code') + assert(guide.overflow <= 1, 'the guide fits a phone') + } finally { + await context.close() + } + assert.deepEqual(errors, [], `tmux keys ${colorScheme}: no page errors`) + } + console.log('tmux key caps: manual bindings, tables and guides PASS') +} diff --git a/site/scripts/check-type-parameters.mjs b/site/scripts/check-type-parameters.mjs new file mode 100644 index 000000000..a7ffe4637 --- /dev/null +++ b/site/scripts/check-type-parameters.mjs @@ -0,0 +1,79 @@ +import assert from 'node:assert/strict' + +/** + * Member pages whose signatures use a type parameter their owner declares. + * `uses` is the least number of occurrences the signature must link. + */ +export const TYPE_PARAMETER_PAGES = [ + { port: 'ts', page: 'selection-selection-where', owner: 'selection-selection', name: 'Model', uses: 2 }, + { port: 'py', page: 'libtmux-_internal-query_list-querylist-filter', owner: 'libtmux-_internal-query_list-querylist', name: 'T', uses: 1 }, + { port: 'rs', page: 'query-filterexpr-matches', owner: 'query-filterexpr', name: 'T', uses: 1 }, + { port: 'go', page: 'tmux-sparsearray-get', owner: 'tmux-sparsearray', name: 'T', uses: 1 }, + { port: 'java', page: 'io-github-libtmux-control-eventsubscription-eventsubscription-offer', + owner: 'io-github-libtmux-control-eventsubscription-eventsubscription', name: 'T', uses: 1 }, +] + +/** + * Each type parameter in a signature links to its declaration, that + * declaration exists on the owner's page, and the Markdown twin says the same. + */ +export async function checkTypeParameters(browser, base, pages = TYPE_PARAMETER_PAGES) { + const context = await browser.newContext({ viewport: { width: 1280, height: 1000 }, reducedMotion: 'reduce' }) + const page = await context.newPage() + page.setDefaultTimeout(process.env.CI ? 20000 : 10000) + try { + for (const entry of pages) { + const path = `${base}/${entry.port}/latest/reference/${entry.page}/` + const label = `${entry.port} ${entry.page}` + const response = await page.goto(path, { waitUntil: 'load' }) + assert(response?.ok(), `${label}: HTTP ${response?.status()}`) + await page.evaluate(() => document.fonts.ready) + + const signature = page.locator('.gp-sphinx-api-signature') + const used = await signature.locator('a[data-type-parameter]').evaluateAll((links) => + links.map((link) => ({ text: link.textContent, parameter: link.getAttribute('data-type-parameter'), href: link.getAttribute('href') }))) + assert(used.length >= entry.uses, `${label}: the signature links ${entry.name} at least ${entry.uses} time(s), found ${used.length}`) + assert(used.every((link) => link.text === entry.name && link.parameter === entry.name), `${label}: only ${entry.name} is marked as a type parameter`) + const hrefs = [...new Set(used.map((link) => link.href))] + assert.equal(hrefs.length, 1, `${label}: every ${entry.name} has one destination: ${hrefs}`) + const [href] = hrefs + assert(href.startsWith(`${new URL(base).pathname}/${entry.port}/latest/reference/${entry.owner}/#`), `${label}: ${href} is on the owner's page`) + // The bug this guards: a same-named global type taking the name. + const others = await signature.locator('a.api-type-link').evaluateAll((links, name) => + links.filter((link) => link.textContent === name && !link.hasAttribute('data-type-parameter')).map((link) => link.getAttribute('href')), entry.name) + assert.deepEqual(others, [], `${label}: no other link takes the name ${entry.name}`) + + // The member page says where the parameter comes from, without declaring it again. + const section = page.locator('.api-type-parameters li').filter({ has: page.locator('.api-type-parameter-owner') }) + assert.equal(await section.locator('a').first().getAttribute('href'), href, `${label}: the Type parameters entry links the owner's anchor`) + assert.equal(await section.locator('.api-type-parameter-owner a').first().getAttribute('href'), href.split('#')[0], `${label}: the entry names the declaring page`) + assert.equal(await page.locator('.api-type-parameters li[id]').count(), 0, `${label}: an inherited parameter keeps no id of its own`) + + // The Markdown twin links the same destination. + const twin = await page.request.get(`${path.slice(0, -1)}.md`) + assert(twin.ok(), `${label}: Markdown twin HTTP ${twin.status()}`) + const markdown = await twin.text() + assert(markdown.includes('## Type parameters'), `${label}: Markdown has a Type parameters section`) + assert(markdown.includes(`](${href})`), `${label}: Markdown links ${href}`) + + // Following the link lands on a visible declaration under the header. + await Promise.all([page.waitForURL((url) => url.pathname === href.split('#')[0]), signature.locator('a[data-type-parameter]').first().click()]) + await page.evaluate(() => document.fonts.ready) + const arrival = await page.evaluate(() => { + const target = document.getElementById(decodeURIComponent(location.hash.slice(1))) + const rect = target?.getBoundingClientRect() + return { + found: Boolean(target), listed: Boolean(target?.closest('.api-type-parameters')), targeted: Boolean(target?.matches(':target')), + name: target?.querySelector('strong code')?.textContent, top: rect?.top, bottom: rect?.bottom, + header: document.querySelector('.site-header').getBoundingClientRect().bottom, viewport: innerHeight, + } + }) + assert(arrival.found && arrival.listed && arrival.targeted, `${label}: ${href} exists in the owner's Type parameters list: ${JSON.stringify(arrival)}`) + assert.equal(arrival.name, entry.name, `${label}: the target names ${entry.name}`) + assert(arrival.top >= arrival.header - 1 && arrival.bottom <= arrival.viewport, `${label}: the declaration is visible below the header: ${JSON.stringify(arrival)}`) + } + } finally { + await context.close() + } + console.log(`Type parameters: ${pages.length} member signatures link their owner's declaration, which exists on the owner page and in Markdown`) +} diff --git a/site/src/components/ConceptBadge.astro b/site/src/components/ConceptBadge.astro deleted file mode 100644 index 3650260d7..000000000 --- a/site/src/components/ConceptBadge.astro +++ /dev/null @@ -1,19 +0,0 @@ ---- -import { CONCEPT_DESCRIPTION } from '../lib/ports' ---- -concept - diff --git a/site/src/components/HeaderPicker.astro b/site/src/components/HeaderPicker.astro index 50336941c..cf9358cd8 100644 --- a/site/src/components/HeaderPicker.astro +++ b/site/src/components/HeaderPicker.astro @@ -1,8 +1,6 @@ --- import RegistryIcon from './icons/RegistryIcon.astro' -import { branding } from '../lib/branding' -import { PICKER_GROUPS, PICKER_GROUP_LABEL, PICKER_GROUP_SUMMARY, type Port, type PortPicker } from '../lib/ports' -import { withRoot } from '../lib/site-root' +import { pickerSections, type Port, type PortPicker } from '../lib/ports' import '../styles/documentation-picker.css' /** @@ -10,6 +8,10 @@ import '../styles/documentation-picker.css' * picker: a native disclosure, a searchable list of ordinary links and the * shared initializer's Escape, outside-click and positioning behavior. Every * row is an external link, so the shared link hint draws its one glyph. + * + * The product a row belongs to is a plain-text heading naming its group, never + * a link, so it takes no focus and no arrow-key stop. A menu of one product + * has nothing to tell apart and carries no heading. */ interface Props { port: Port @@ -32,9 +34,10 @@ const copy = picker.kind === 'github' ? { trigger: 'Docs: choose an API reference', title: 'API reference', search: 'Find an API reference', placeholder: 'Find an API reference…', empty: 'No matching references.', } -const groups = PICKER_GROUPS.map((group) => ({ group, rows: picker.rows.filter((row) => row.group === group) })) - .filter((entry) => entry.rows.length > 0) -const artwork = (group: string) => withRoot(branding(port.slug, group === 'core' ? '' : group).asset('logo.svg')) +const sections = pickerSections(picker) +const titled = sections.length > 1 +// The bar and Menu copies share a page, so each heading id carries its placement. +const headingId = (group: string) => `header-picker-${placement}-${picker.kind}-${group}` // A single destination needs no search. const searchable = picker.rows.length > 1 --- @@ -51,11 +54,9 @@ const searchable = picker.rows.length > 1 } - {groups.map(({ group, rows }) =>
-

- - {PICKER_GROUP_LABEL[group]}{PICKER_GROUP_SUMMARY[group]} -

+ {sections.map(({ group, label, rows }) =>
+ {titled &&

{label}

} {rows.map((row) =>
{row.label}{row.detail} diff --git a/site/src/components/LinkPreview.astro b/site/src/components/LinkPreview.astro index 810a26c48..1d0a1fb4f 100644 --- a/site/src/components/LinkPreview.astro +++ b/site/src/components/LinkPreview.astro @@ -12,7 +12,7 @@ const { id = 'reference-link-preview', title = 'Reference preview', description --- - {title} + {title} {description} @@ -20,7 +20,10 @@ const { id = 'reference-link-preview', title = 'Reference preview', description {actionLabel} + diff --git a/site/src/components/api/ApiBadge.astro b/site/src/components/api/ApiBadge.astro index e275dce94..6bc0496ca 100644 --- a/site/src/components/api/ApiBadge.astro +++ b/site/src/components/api/ApiBadge.astro @@ -2,13 +2,13 @@ /** * A kind or modifier badge. * - * gp-sphinx puts one on every entry and it is most of what makes its - * reference scannable: you can tell a property from a method from an - * inherited attribute without reading a signature. Kinds are filled and - * coloured; modifiers are outline-only, so exactly one thing per entry is - * loud. + * A kind has three forms. In a heading or a declaration header it is the + * legend chip: the mark and the word in one token, so the heading teaches the + * letter every time. Inside a link or a navigation row it is the compact mark. + * Beside a name in a list or a table it is the plain word. Modifiers are + * outline-only words, so kind stays the loudest thing. */ -import { kindMark } from '../../lib/api-labels' +import { kindMark, markClass } from '../../lib/api-labels' import { apiGlossaryHref } from '../../lib/api-glossary' interface Props { label: string @@ -17,18 +17,31 @@ interface Props { value: string /** The small symbol mark shared by navigation and related APIs. */ compact?: boolean + /** A kind beside a name in a list or a table: the plain word, no chip. */ + plain?: boolean /** Cards already provide context; their badges keep ordinary glossary links. */ preview?: boolean } -const { label, variant, value, compact = false, preview = true } = Astro.props as Props +const { label, variant, value, compact = false, plain = false, preview = true } = Astro.props as Props const palette = value === 'cmdlet' ? 'function' : value const text = compact ? kindMark(palette) : label // Cmdlets use the function palette but retain their PowerShell command kind. -const href = compact ? undefined : apiGlossaryHref(variant === 'kind' ? label : value, Astro.url.pathname) +const href = compact || plain ? undefined : apiGlossaryHref(variant === 'kind' ? label : value, Astro.url.pathname) // Compact marks already sit inside navigation links. const Tag = href ? 'a' : 'span' +const legend = variant === 'kind' && !compact && !plain +const mark = legend ? kindMark(palette) : undefined --- -{text && {label}} +{legend && label && {mark && }{label}} +{!plain && !legend && text && {text}} +>{text}} diff --git a/site/src/components/api/ApiDoc.astro b/site/src/components/api/ApiDoc.astro index 5d7281e2e..efd973a29 100644 --- a/site/src/components/api/ApiDoc.astro +++ b/site/src/components/api/ApiDoc.astro @@ -50,7 +50,7 @@ const labelParts = (label: string, qualified: boolean) => qualified ? label.spli {span.label} ) } - const parts = span.link ? [] : index.linkType(span.label, context) + const parts = span.link ? [] : index.linkLiteral(span.label, context) const qualified = memberReference.test(span.label) && Boolean(span.link || parts.some((part) => part.link)) return span.link ? ( diff --git a/site/src/components/api/ApiEntry.astro b/site/src/components/api/ApiEntry.astro index f515810f0..e4f3ba74a 100644 --- a/site/src/components/api/ApiEntry.astro +++ b/site/src/components/api/ApiEntry.astro @@ -1,5 +1,5 @@ --- -import { parameterId, qualifiedNameOf, type ApiSymbol, type SymbolIndex } from '@libtmux/api-model' +import { boundLabel, parameterId, qualifiedNameOf, typeParameterId, typeParameterList, type ApiSymbol, type SymbolIndex } from '@libtmux/api-model' import { API_MODELS, mentionsOf, referenceAlternatives } from '../../lib/api-models' import { productApiIndex } from '../../lib/product-api' import { defaultVersionFor } from '../../lib/versions' @@ -12,9 +12,10 @@ import ApiBadge from './ApiBadge.astro' import ApiDoc from './ApiDoc.astro' import ApiProse from './ApiProse.astro' import ApiType from './ApiType.astro' -import type { AsideType } from '../../lib/aside' +import { asideFor } from '../../lib/aside' import { apiCommandFacts, apiCommandRelatedLinks, apiEntryFields, apiMethodDetails, anonymousDeclarationLabel, nativeSignatureText as unformattedNativeSignatureText, parameterBindingText, usesNativeSignatures } from '../../lib/api-sections' import { tmuxCommandsFor, tmuxManualUrl } from '../../lib/tmux-manual-data' +import { CATALOG_KINDS, tmuxCatalogKindsForSymbol, tmuxCatalogUrl } from '../../lib/tmux-catalog' import ApiFieldOverloads from './ApiFieldOverloads.astro' import ApiCommandParameters from './ApiCommandParameters.astro' import ApiSignatureParameters from './ApiSignatureParameters.astro' @@ -43,6 +44,8 @@ interface Props { /** Declaration syntax, independent of library-port identity. */ language?: string manualLinks?: { name: string; href: string }[] + /** Catalog pages for a declaration in a source reference. */ + catalogLinks?: { name: string; href: string }[] /** Override equivalent links for a product or version context. */ alternativesFor?: (symbol: ApiSymbol) => ReturnType /** @@ -73,7 +76,7 @@ interface Props { /** Previous fragment for the same declaration. */ legacyId?: string } -const { symbol, index, sourceUrl, port, language = port, manualLinks, alternativesFor, heading = false, member = false, +const { symbol, index, sourceUrl, port, language = port, manualLinks, catalogLinks, alternativesFor, heading = false, member = false, showSummary = true, showBases = true, legacyId, nameHref } = Astro.props as Props const anchor = symbol.publicId ?? symbol.id const kind = symbol.kind @@ -178,6 +181,8 @@ const references = symbol.doc?.references ?? [] */ const mentions = port ? mentionsOf(port, symbol.id) : [] const tmuxCommands = manualLinks ?? (port ? tmuxCommandsFor(port, anchor).map((command) => ({ ...command, href: tmuxManualUrl('latest', command.name) })) : []) +// Members that wrap options or hooks lead to the catalog of what they take. +const catalogEntries = catalogLinks ?? (port && !manualLinks ? tmuxCatalogKindsForSymbol(port, symbol).map((kind) => ({ name: CATALOG_KINDS[kind].label, href: tmuxCatalogUrl('latest', kind) })) : []) const mentionSections = [...new Set(mentions.map((m) => m.section ?? 'docs'))].sort() const badges = [ @@ -228,10 +233,23 @@ const FOLD_THRESHOLD = 10 const folds = (sig: { params: unknown[] }) => sig.params.length >= FOLD_THRESHOLD const foldable = symbol.signatures.some(folds) -const { params, returns, raises } = apiEntryFields(symbol, language) +const { params, returns, raises, typeParameters } = apiEntryFields(symbol, language) const methods = apiMethodDetails(symbol) const overloadTargets = new Map(methods.map((method) => [method.overloadLabel, method.id])) -const hasFields = params.length > 0 || returns.length > 0 || raises.length > 0 +/** + * Parameters declared by an enclosing type that this symbol's signature uses. + * Their anchors live on the declaring page, so these entries link there instead of + * repeating an id. + */ +const inheritedTypeParameters = index.inheritedTypeParameters(symbol).map((entry) => ({ + ...entry, + ownerHref: entry.href.split('#')[0], + ownerLabel: `${entry.owner.name}${typeParameterList(language, index.typeParametersDeclaredBy(entry.owner))}`, +})) +const hasTypeParameters = typeParameters.length > 0 || inheritedTypeParameters.length > 0 +/** `const`, `in`, `out` and variance marks read as part of the name; `+` and `-` attach without a space. */ +const modifierOf = (p: { modifier?: string }) => p.modifier ? (/^[+-]$/.test(p.modifier) ? p.modifier : `${p.modifier} `) : '' +const hasFields = hasTypeParameters || params.length > 0 || returns.length > 0 || raises.length > 0 /** * Whether there is a description at all. @@ -241,31 +259,6 @@ const hasFields = params.length > 0 || returns.length > 0 || raises.length > 0 * term and no description is valid and reads correctly; a blank one is a gap * the reader has to interpret. */ -/** - * A docstring admonition as an `
-
+
)} )} } @@ -220,14 +222,12 @@ const summaries = new Map(await Promise.all(entries.map(async (entry) => [entry. diff --git a/site/src/components/mcp/Tools.astro b/site/src/components/mcp/Tools.astro index 99cbc4885..f82edd4d4 100644 --- a/site/src/components/mcp/Tools.astro +++ b/site/src/components/mcp/Tools.astro @@ -3,7 +3,6 @@ import { ALL_TRANSLATED } from '../../i18n/resolve' import Aside from '../Aside.astro' import BaseLayout from '../../layouts/BaseLayout.astro' import { PORTS, PORT_BY_SLUG, portPageUrl, productAvailable } from '../../lib/ports' -import { withRoot } from '../../lib/site-root' import { buildTarget } from '../../lib/versions' import mcpTools from '../../data/mcp-tools.json' import { CONTRIBUTE_BRANCH, CONTRIBUTE_REPO } from '../../i18n/contribute' @@ -37,6 +36,9 @@ const version = buildTarget(process.env).version let defaults: Record = {} try { defaults = JSON.parse(process.env.LIBTMUX_DOCS_PORT_DEFAULTS || '{}') } catch { /* Local defaults are latest. */ } const toolUrl = (port: Slug, tool = '') => portPageUrl(PORT_BY_SLUG[port], port === buildPort ? version : (defaults[port] ?? 'latest'), `mcp/tools${tool ? `/${data.ports[port].wirePrefix}${tool}` : ''}`) +// The reference implementation's install page, or the building port's own. +const installPort = buildPort ?? 'py' +const installUrl = portPageUrl(PORT_BY_SLUG[installPort], installPort === buildPort ? version : (defaults[installPort] ?? 'latest'), 'mcp') const counts = SLUGS.map((s) => ({ slug: s, n: data.ports[s].tools.length })) const ranked = [...counts].sort((a, b) => b.n - a.n) @@ -225,7 +227,8 @@ const spread = Math.round((ranked[0].n / ranked[ranked.length - 1].n) * 10) / 10

- Install a server from the MCP page, + Install a server from your language's MCP page, such as + {PORT_BY_SLUG[installPort].name}'s, or read the reference implementation's per-tool documentation in the {' '}Python tool reference.

diff --git a/site/src/components/tmux/Catalog.astro b/site/src/components/tmux/Catalog.astro new file mode 100644 index 000000000..384b6e277 --- /dev/null +++ b/site/src/components/tmux/Catalog.astro @@ -0,0 +1,235 @@ +--- +import BaseLayout from '../../layouts/BaseLayout.astro' +import ApiTree from '../api/ApiTree.astro' +import ApiBadge from '../api/ApiBadge.astro' +import ApiPageContents from '../api/ApiPageContents.astro' +import SymbolName from '../api/SymbolName.astro' +import PageToolbar from '../PageToolbar.astro' +import PagePortSwitcher from '../PagePortSwitcher.astro' +import DocumentationContext from '../docs/DocumentationContext.astro' +import { buildLocale } from '../../i18n/resolve' +import { localeSourcePath } from '../../i18n/locales' +import { CONTRIBUTE_BRANCH, CONTRIBUTE_REPO } from '../../i18n/contribute' +import { pagePortsFor } from '../../lib/page-ports-for' +import { withPortRoot } from '../../lib/site-root' +import { highlightTmuxManual } from '../../lib/tmux-manual' +import { TMUX_REPOSITORY, tmuxManual, tmuxManualHtml, tmuxManualUrl } from '../../lib/tmux-manual-data' +import { linkTmuxManualCatalog } from '../../lib/tmux-catalog-html' +import { + CATALOG_KINDS, CATALOG_TITLE, OPTION_SCOPE_FLAGS, OPTION_TYPES, tmuxCatalog, tmuxCatalogDefault, tmuxCatalogDescription, + tmuxCatalogEntries, tmuxCatalogEntry, tmuxCatalogGroup, tmuxCatalogHistory, tmuxCatalogChangeText, tmuxCatalogManualUrl, tmuxCatalogNavigation, + tmuxCatalogPageTitle, tmuxCatalogSourceUrl, tmuxCatalogUrl, tmuxCatalogValues, type CatalogKind, +} from '../../lib/tmux-catalog' +import { tmuxCatalogReferences, tmuxCatalogUses } from '../../lib/tmux-catalog-usage' +import '../../styles/api.css' +import '../../styles/vendor/gp-sphinx-api.css' + +interface Props { version: string; kind?: CatalogKind; name?: string } +const { version, kind, name } = Astro.props +const model = tmuxCatalog(version) +const entry = kind && name ? tmuxCatalogEntry(version, kind, name) : undefined +if (name && !entry) throw new Error(`Unknown tmux ${kind} ${name} in ${version}`) +const base = tmuxCatalogUrl(version) +const navigation = tmuxCatalogNavigation(version) +const kinds = (Object.keys(CATALOG_KINDS) as CatalogKind[]).filter((candidate) => model.counts[candidate]) +const info = kind ? CATALOG_KINDS[kind] : undefined +const group = entry ? tmuxCatalogGroup(entry, version) : undefined +const pagePath = `tmux/${version}/catalog${kind ? `/${info!.segment}` : ''}${name ? `/${name}` : ''}` +const title = tmuxCatalogPageTitle(version, kind, name) +const description = tmuxCatalogDescription(version, kind, name) + +const breadcrumbs = [ + { name: 'tmux', url: withPortRoot('/tmux/') }, + { name: `${CATALOG_TITLE} (${model.version})`, url: base }, + ...(kind ? [{ name: info!.label, url: tmuxCatalogUrl(version, kind) }] : []), + ...(entry ? [{ name: entry.name, url: tmuxCatalogUrl(version, kind, entry.name), symbol: true }] : []), +] + +const manualUrl = entry ? tmuxCatalogManualUrl(version, entry) : undefined +const history = entry ? tmuxCatalogHistory(entry.kind, entry.name) : [] +const references = entry ? tmuxCatalogReferences(version, entry) : [] +const uses = entry ? tmuxCatalogUses(entry) : [] +const html = entry?.html + ? await highlightTmuxManual(linkTmuxManualCatalog(tmuxManualHtml(entry.html, version), version, entry)) : '' +const pagePorts = entry + ? uses.map(({ port, name: portName, symbols }) => ({ port, name: portName, links: symbols.slice(0, 1).map((symbol) => ({ href: symbol.href })) })) + : await pagePortsFor('reference') +const commandLink = (command: string) => tmuxManual(version).commands.some((candidate) => candidate.name === command) + ? tmuxManualUrl(version, command) : undefined +const defaultText = entry ? tmuxCatalogDefault(entry) : undefined +const values = entry ? tmuxCatalogValues(entry) : undefined +const flag = entry?.kind === 'option' ? OPTION_SCOPE_FLAGS[entry.scope?.includes('window') ? 'window' : entry.scope![0]] : undefined +const pageSource = entry + ? { repo: TMUX_REPOSITORY, path: entry.source.file, ref: model.sourceCommit } + : { repo: CONTRIBUTE_REPO, path: `site/src/data/tmux/catalog/${model.version}.json`, ref: CONTRIBUTE_BRANCH } + +const sections = entry ? [ + { id: 'api-overview', label: 'Overview' }, + ...(html || entry.summary ? [{ id: 'description', label: 'Description' }] : []), + { id: 'releases', label: 'Releases' }, + { id: 'source', label: 'Source' }, + ...(uses.length ? [{ id: 'used-by', label: 'Used by' }] : []), +] : [] +const sectionGroups = kind ? navigation.tree.find((bucket) => bucket.id === info!.segment)!.children : [] +const entryCards = (items: ReturnType) => items.map((item) => ({ + item, href: tmuxCatalogUrl(version, item.kind, item.name), +})) +--- + +
+ + + +
+ ({ id: CATALOG_KINDS[candidate].segment, label: CATALOG_KINDS[candidate].label }))]} /> +
+ +
+ {entry &&
+ + tmux{model.version} +
} +

+ {entry ? : title} +

+ {entry?.summary &&

{entry.summary}

} +
+ + {entry ? <> + +
+ {entry.scope && <>
Scope
{entry.kind === 'format' ? <>Describes the {entry.scope[0]} being formatted : entry.scope.join(', ')}
} + {entry.kind === 'option' && <>
Type
{OPTION_TYPES[entry.type!] ?? entry.type}{entry.array && ', array of values'}{entry.style && ', style'}
} + {entry.kind === 'format' && <>
Type
{entry.type === 'time' ? 'Time, in seconds since the epoch' : 'Text'}
} + {entry.kind === 'format' && entry.alias && <>
Short form
{entry.alias}
} + {entry.kind === 'format' && <>
Usage
{`#{${entry.name}}`}
} + {defaultText !== undefined && <>
Default
{defaultText.length > 120 + ?
Show the default
{defaultText}
+ : {defaultText}}
} + {values && <>
Values
{entry.choices ? entry.choices.map((choice, i) => <>{i > 0 && ' '}{choice}) : values}
} + {entry.separator && <>
Separator
{entry.separator}
} + {entry.aliases && <>
Also spelled
{entry.aliases.map((alias, i) => <>{i > 0 && ', '}{alias})}
} + {entry.kind === 'option' && <>
Set
+ {commandLink('set-option') ? set-option : set-option}{' '} + {flag ? `${flag} ` : ''}{entry.name} value +
Read
+ {commandLink('show-options') ? show-options : show-options}{' '} + {flag ? `${flag} ` : ''}{entry.name} +
} + {entry.kind === 'hook' && <>
Set
+ {commandLink('set-hook') ? set-hook : set-hook}{' '} + {entry.name} command +
Read
+ {commandLink('show-hooks') ? show-hooks : show-hooks}{' '} + {entry.name} +
} + {entry.after && <>
Runs
After {commandLink(entry.after) ? {entry.after} : {entry.after}} completes
} + {entry.notification && <>
Control mode
Also sent to control clients as {entry.notification}
} + {entry.kind === 'format' && entry.documented === false && <>
Manual
Not listed in the tmux {model.version} manual.
} +
+ +
+

Description#

+ {html ?
+ : entry.sourceText ?

{entry.sourceText} Taken from the option table; the {model.version} manual has no entry for it.

+ :

The tmux {model.version} manual does not describe this {info!.singular}.

} + {entry.descriptionSource === 'control-mode' &&

This text describes the control mode notification {entry.notification}, which tmux sends when this hook fires.

} + {entry.descriptionSource === 'after-hook' &&

Every command that has an after hook shares this text.

} +
+ +
+

Releases#

+
    + {[...history].reverse().map((release) =>
  • + {release.present + ? tmux {release.version} + : tmux {release.version}} + {': '}{release.present ? release.changes.length ? release.changes.map(tmuxCatalogChangeText).join('; ') : 'present' : 'not present'} +
  • )} +
+
+ +
+

Source#

+
+
Defined in
{entry.source.file}:{entry.source.line}
+ {entry.firedFrom && <>
Fired from
} + {references.length > 0 && <>
C source reference
{references.map((reference, i) => <>{i > 0 && ', '}{reference.name})}
} + {manualUrl && <>
CLI Manual
Original manual entry
} +
+
+ + {uses.length > 0 &&
+

Used by#

+

Library documentation that names this {info!.singular}.

+
+ {uses.map((use) => <>
{use.name}
{use.symbols.slice(0, 6).map((symbol, i) => <>{i > 0 && ', '}{symbol.label})}{use.symbols.length > 6 && <> and {use.symbols.length - 6} more}
)} +
+
} + : kind ? <> +

{info!.blurb} The list covers tmux {model.version}, {model.counts[kind]} entries.

+ {sectionGroups.map((bucket) =>
+

{bucket.label}{bucket.entries.length}

+
{entryCards(bucket.entries.map((row) => tmuxCatalogEntry(version, kind, row.name)!)).map(({ item, href }) =>
+ + {item.summary &&
{item.summary}
} +
)}
+
)} + : <> +

+ Look up what a name in tmux means: the {model.counts.option} options, {model.counts.hook} hooks and + {' '}{model.counts.format} format variables of tmux {model.version}. Each entry gives its type, scope, default and + the release history, with the manual text and the source line behind it. +

+
+ {kinds.map((candidate) =>
+

{CATALOG_KINDS[candidate].label}

+

{model.counts[candidate]} entries. {CATALOG_KINDS[candidate].blurb}

+
    {navigation.tree.find((bucket) => bucket.id === CATALOG_KINDS[candidate].segment)!.children.map((bucket) =>
  • + {bucket.label}{bucket.entries.length} +
  • )}
+
)} +
+

The CLI Manual documents commands and flags; the catalog documents the names those commands take.

+ } +
+ {entry && } +
+
+ diff --git a/site/src/components/tmux/Overview.astro b/site/src/components/tmux/Overview.astro index a6ad1335f..baa735f27 100644 --- a/site/src/components/tmux/Overview.astro +++ b/site/src/components/tmux/Overview.astro @@ -4,6 +4,7 @@ import DocCard from '../../components/DocCard.astro' import { withPortRoot, withRoot } from '../../lib/site-root' import { tmuxReferenceUrl } from '../../lib/tmux-reference' import { tmuxManualUrl } from '../../lib/tmux-manual-data' +import { CATALOG_TITLE, tmuxCatalogUrl } from '../../lib/tmux-catalog' import { pagePortsFor } from '../../lib/page-ports-for' import DocumentationHero from '../DocumentationHero.astro' import PortLinks from '../PortLinks.astro' @@ -13,8 +14,9 @@ const pages = [ { label: 'Topics', href: withRoot('/tmux/topics/'), body: 'Understand targeting, options, hooks, completion and server ownership.' }, { label: 'Concepts', href: withRoot('/tmux/concepts/'), body: 'Learn how servers, sessions, windows and panes fit together.' }, { label: 'Examples', href: withRoot('/tmux/examples/'), body: 'Run complete programs with setup, expected results and cleanup.' }, - { label: 'Reference', href: tmuxReferenceUrl(), body: 'Browse the C declarations and implementation in each tmux release.' }, - { label: 'Manual', href: tmuxManualUrl(), body: 'Look up command syntax, flags and behavior for your tmux version.' }, + { label: 'CLI Manual', href: tmuxManualUrl(), body: 'Look up command syntax, flags and behavior for your tmux version.' }, + { label: CATALOG_TITLE, href: tmuxCatalogUrl(), body: 'Look up what an option, hook or format variable does, with its type, default and release history.' }, + { label: 'C source reference', href: tmuxReferenceUrl(), body: 'Browse the C declarations and implementation in each tmux release.' }, ] --- ` does not care what `` is — so a port changes diff --git a/site/src/content/_workspace-shared/workspace/guides/installation.md b/site/src/content/_workspace-shared/workspace/guides/installation.md index ef06f0aac..f5eb92b4a 100644 --- a/site/src/content/_workspace-shared/workspace/guides/installation.md +++ b/site/src/content/_workspace-shared/workspace/guides/installation.md @@ -69,7 +69,13 @@ $ tmux -L workspace-guide kill-session -t '=workspace-guide' Build the documented `tmux-workspace` revision, then load a small session on a -private socket. Use a Unix shell with tmux 3.2a or newer on `PATH`. +private socket. + +Use a Unix shell with tmux 3.3a or newer on `PATH`. + + +Use a Unix shell with tmux 3.2a or newer on `PATH`. + ## Build the command diff --git a/site/src/content/docs/examples/attach-and-send-keys.md b/site/src/content/docs/examples/attach-and-send-keys.md index 33891ffe0..033af8148 100644 --- a/site/src/content/docs/examples/attach-and-send-keys.md +++ b/site/src/content/docs/examples/attach-and-send-keys.md @@ -1,7 +1,7 @@ --- supportedPorts: [] title: Attach and send keys -description: Find a tmux pane, send literal text and Enter, and capture the resulting output on a private server. +description: Build a script that sends a command to a tmux pane and reads the result back, one command at a time. sidebar: label: Attach and send keys group: Examples @@ -9,16 +9,165 @@ sidebar: tableOfContents: true --- -Use [`attach-session`](/tmux/latest/manual/attach-session/) to view a session -in your terminal. A shell script can find its pane, send input with -[`send-keys`](/tmux/latest/manual/send-keys/), and read the screen with -[`capture-pane`](/tmux/latest/manual/capture-pane/). +A script can drive a shell it never shows. It starts a detached session, types +into the pane with `send-keys`, and reads the screen back with `capture-pane`. +The steps below add one command each. Every block is a range of lines from the +finished `send-command.sh`, so each step shows code that runs. [The complete +script](#the-complete-script) follows the last step. It needs tmux 3.2a or +newer and a POSIX shell. -## Find a pane and send a command +## 1. Choose a private socket -Save this complete script as `send-command.sh`. It requires tmux 3.2a or newer -and a POSIX shell. It creates a private session, selects one pane by its ID, -sends a shell command, and checks its output before cleaning up the server. +A tmux server listens on a socket, and a command reaches the server whose +socket it names. Create a directory for this run and put the socket inside it, +so the script never touches the tmux server you already use. + +```sh excerpt="send-command.sh" from='directory=$(mktemp' to="tmux.sock" +``` + +`mktemp -d` makes a directory that no other run shares. Every later command +repeats `-S "$socket"`; a command without it would reach your default server. +[Select a server](/topics/socket-and-servers/#select-a-server) covers the socket +options. + +## 2. Start a detached session + +`new-session -d` creates a session without attaching your terminal to it. The +first command to use a new `-S` path starts a server there, and `-f /dev/null` +keeps that server from reading your `tmux.conf`. `-s demo` names the session, +`-n main` names its window, and the final `'sh'` is the program the pane runs. + +```sh excerpt="send-command.sh" from="new-session -d" +``` + +`-e PS1=` gives the pane an empty prompt, so a prompt cannot prefix the output +that the script waits for in step 9. The command prints nothing and returns +once the session exists; `tmux.sock` is now in the directory. To watch the pane +yourself, pass the same socket to `attach-session`. The script reads the pane +instead and never attaches. + +## 3. Check the session by exact name + +`has-session` exits with a non-zero status when no session matches, and +`set -e` stops the script there. A bare `-t demo` matches every session whose +name starts with `demo`. The `=` in `=demo` requires the exact name. + +```sh excerpt="send-command.sh" from="has-session" +``` + +## 4. Find the pane by its ID + +`list-panes` prints one row for each pane in a window. `-t '=demo:main'` +selects the window named `main` of the exact session. `-f '#{pane_active}'` +keeps the rows whose pane is active, and `-F '#{pane_id}'` prints each pane's +ID in place of the default description. + +```sh excerpt="send-command.sh" from='panes=$(tmux' to="pane_id" +``` + +`panes` now holds an ID such as `%0`. Use the ID rather than the pane's index: +indexes move as panes come and go, and start at `pane-base-index`, while the +ID names the same pane until it closes. [Stable +identity](/concepts/server-session-window-pane/#stable-identity) explains why. + +## 5. Require exactly one pane + +The filter should leave one row. `set -- $panes` splits the value into +positional parameters, and `[ "$#" -eq 1 ]` fails the script when there are +none or several. `pane=$1` keeps the ID. IDs contain no whitespace, so the +unquoted split is safe; the `shellcheck` comment records that choice. + +```sh excerpt="send-command.sh" from="# Pane IDs contain no whitespace" to='pane=$1' +``` + +[Require exactly one match](/guides/querying-and-filtering/#require-exactly-one-match) +covers the same check in the language libraries. + + + +## 6. Type text without pressing keys + +`send-keys -l` types its argument literally, character by character. The +target `-t "$pane"` is the ID from step 4, so the text reaches that pane +whichever window is current. + +```sh excerpt="send-command.sh" from="send-keys -l" +``` + +The typed text waits at the prompt. The shell has not run it, because no key +has been pressed. + +## 7. Press Enter + +Without `-l`, `send-keys` treats an argument that names a key as that key. +Send the `Enter` key to run the typed command. Names such as `Enter`, `C-c`, +and `Up` work this way. Adding `-l` here would type the word `Enter` instead. + +```sh excerpt="send-command.sh" from="Enter" +``` + +The shell now runs `printf` and prints `native input ready` on a new row. The +[sending keys guide](/guides/sending-keys/#literal-text-key-names-and-whether-enter-follows) +also covers control keys and pane input modes. + +## 8. Read the screen + +`capture-pane -p` prints the pane's visible text to standard output. Without +`-p`, tmux copies the text into a paste buffer. The script redirects the output +to `screen.txt`. + +```sh excerpt="send-command.sh" from="capture-pane" +``` + +A capture is a snapshot of what the pane shows at that moment, including the +echoed command. [Capturing +output](/guides/capturing-output/#visible-pane-vs-scrollback) covers +scrollback ranges and wrapped lines. + + + +## 9. Poll until the line appears + +`send-keys` returns when tmux has queued the input, not when the shell has run +it, so the first capture can come too early. The loop repeats the capture, up +to five times with a one-second pause, and stops as soon as `grep -Fx` finds +the whole line `native input ready`. A whole-line match means the echoed `printf` +command cannot satisfy the check, and the empty prompt from step 2 keeps a +prompt from prefixing the line. + +```sh excerpt="send-command.sh" from="found=no" to="done" +``` + +When a program can announce that it has finished, wait for that signal instead +of a timer: `wait-for` blocks until another command signals a channel, and the +[capture example](/examples/capture-pane-output/) shows the polling alternative +in more detail. + +## 10. Report the result + +If the line never appeared, the script prints an error to standard error and +exits with status 1. Otherwise it prints the line, which is the script's output. + +```sh excerpt="send-command.sh" from='"$found" != yes' to="printf 'native input ready" +``` + +## 11. Clean up + +`kill-server` stops the private server and removes its socket. `trap cleanup 0` +runs `cleanup` whenever the script exits, whether it succeeded or failed, and +the second `trap` turns `HUP`, `INT`, and `TERM` into a normal exit so cleanup +still runs. If tmux cannot be stopped, the script keeps the directory and +prints its path, so you can stop that server yourself. If another client closes +the pane, the next command fails and the same trap retires the server. + +```sh excerpt="send-command.sh" from="cleanup() {" to="trap 'exit 1'" +``` + +## The complete script + +The steps follow the order a reader meets the commands. In the file, `cleanup` +comes first so that it covers every command after it. Save the script as +`send-command.sh`: ```sh title="send-command.sh" #!/bin/sh @@ -75,37 +224,7 @@ Run the saved script: $ sh send-command.sh ``` -The output is `native input ready`. The screen check matches a complete line -from `printf`, rather than the shell's echoed command. The loop makes at most -five captures and waits one second between unsuccessful attempts. `-e PS1=` -starts the shell with an empty prompt so its prompt cannot prefix that line. - -## Keep literal text and keys separate - -`send-keys -l` sends the characters in the supplied string literally. The -second command sends the named `Enter` key so the pane's shell executes the -text. Supplying `Enter` to `-l` would type that word. The -[sending keys guide](/guides/sending-keys/) also covers control keys and pane -input modes. - -[`has-session`](/tmux/latest/manual/has-session/) with `=demo` requires an -exact session name. [`list-panes`](/tmux/latest/manual/list-panes/) prints -the matching pane IDs, and the script checks that exactly one was returned. -Those IDs belong to the selected server. Keep the same socket on every -command, including capture and cleanup. - -## Wait for the result you need - -`send-keys` returning does not mean the pane's program has processed the -input. This example waits for its output condition with a bounded polling -loop. When a program can signal completion, use the -[capture example](/examples/capture-pane-output/) or -[`wait-for`](/tmux/latest/manual/wait-for/) for a named signal. - -Capturing the pane reads terminal state, including prompts and screen -updates. Use the [capture guide](/guides/capturing-output/) for scrollback -ranges and wrapped lines. If another client closes the pane, the next command -fails and the cleanup trap still retires the server this script owns. +The output is `native input ready`. The pinned [tmux manual](https://github.com/tmux/tmux/blob/e476c1230b958df0cb12977517d24b3dc931375b/tmux.1) diff --git a/site/src/content/docs/examples/capture-pane-output.md b/site/src/content/docs/examples/capture-pane-output.md index 6ca2e9cd2..f129593bb 100644 --- a/site/src/content/docs/examples/capture-pane-output.md +++ b/site/src/content/docs/examples/capture-pane-output.md @@ -1,7 +1,7 @@ --- supportedPorts: [] title: Capture pane output -description: Capture a tmux pane's screen and wait for a complete output line. +description: Build a script that sends a command, captures a tmux pane's screen, and waits for a complete output line. sidebar: label: Capture pane output group: Examples @@ -11,16 +11,106 @@ tableOfContents: true `capture-pane -p` prints a pane's visible screen. Sending a command and reading its result are separate operations: the pane's shell may still be processing -input when the first capture runs. +input when the first capture runs. The steps below build `capture.sh` around +that gap. It sends a command, captures the screen until one complete line +appears, and removes its server. [The complete script](#the-complete-script) +follows the last step. It requires tmux 3.2 or newer and `sleep` with +fractional seconds. -## Read what's on screen +## 1. Choose a private socket -This complete shell program starts a private tmux server, sends a command, and -captures until the expected line appears. It removes the server on exit and -fails after 100 unsuccessful checks with 50-millisecond pauses. +Like the [attach example](/examples/attach-and-send-keys/), the script puts +its server's socket in a fresh directory. A command that names that socket +reaches only that server, never the one you already use. -Save it as `capture.sh` and run `sh capture.sh`, or paste the whole block into -a POSIX shell. It requires tmux 3.2 or newer and `sleep` with fractional seconds. +```sh excerpt="capture.sh" from='directory=$(mktemp' to="tmux.sock" +``` + +## 2. Start a detached session + +`new-session -d` creates a session without attaching a terminal. `-f /dev/null` +keeps your `tmux.conf` out of the private server, `-s capture` names the +session, and `'sh'` is the program in its pane. + +```sh excerpt="capture.sh" from="new-session -d" to="'sh'" +``` + +`-e ENV=/dev/null` stops `sh` from loading a startup file, so nothing but the +command's own output reaches the screen. The command returns once the session +exists. + +## 3. Type a command that starts on a fresh row + +`send-keys -l` types its argument literally. The target `capture:0.0` reads as +session `capture`, window `0`, pane `0`. A new session has exactly one of each, +and its server holds no other session, so the bare name is unambiguous. Use +`=capture` on a server that may hold others. + +```sh excerpt="capture.sh" from="capture:0.0 -l" to="libtmux capture ready" +``` + +The leading `\n` in the `printf` format puts the output on a fresh row even +if the shell's first prompt arrives late. + +## 4. Press Enter + +Without `-l`, `send-keys` reads `Enter` as the `Enter` key, so the shell runs +the text from step 3. + +```sh excerpt="capture.sh" from="capture:0.0 Enter" +``` + +## 5. Read the screen + +`capture-pane -p` prints the pane's visible rows to standard output, and +`$(...)` stores them in `screen`. + +```sh excerpt="capture.sh" from="capture-pane" +``` + +Run alone, this capture may show only the echoed command, or an empty screen. +The next step is why. + + + + +## 6. Capture until the line appears + +The shell may not have run the command yet, so the script captures again, up to +100 times with a 50 millisecond pause. `grep -Fx` accepts only the complete +line `libtmux capture ready`, so the echoed command cannot satisfy the check, +and `-q` keeps grep quiet. On a match the script prints the screen and exits +with status 0. The captured output, not a fixed delay, decides when the program +finishes. + +```sh excerpt="capture.sh" from="attempt=0" to="done" +``` + +## 7. Fail when the line never appears + +If every attempt fails, the script reports the timeout on standard error and +exits with status 1. + +```sh excerpt="capture.sh" from="Timed out" to="exit 1" +``` + +## 8. Clean up + +`kill-server` stops the private server, and `trap cleanup EXIT` runs `cleanup` +on every exit, including the timeout in step 7. The second `trap` makes `HUP`, +`INT`, and `TERM` exit normally so cleanup still runs. If tmux cannot be +stopped, the script keeps its socket directory and prints the path, so you can +inspect or stop that server. + +```sh excerpt="capture.sh" from="cleanup() {" to="trap 'exit 1'" +``` + +## The complete script + +In the file, `cleanup` comes before the first tmux command so that it covers +every command after it. Save the script as `capture.sh`, or paste the whole +block into a POSIX shell. The parentheses run it in a subshell, so its `exit` +and traps leave your shell alone. ```sh title="capture.sh" ( @@ -62,22 +152,17 @@ a POSIX shell. It requires tmux 3.2 or newer and `sleep` with fractional seconds ) ``` -Cleanup also runs if startup fails after creating the server. If tmux cannot -be stopped, the script reports the error and keeps its socket directory so -you can inspect or stop that server. - - +Run the saved script: -## Wait for output or completion - -The leading newline puts the output on a fresh screen row even if the shell's -first prompt arrives late. `grep -Fx` matches the complete line, so the echoed -command cannot satisfy the check. The short pause limits polling; the captured -output determines when the program finishes. +```console +$ sh capture.sh +``` -Capture reads screen state, so it can miss output that has scrolled away. -[Capturing output](/guides/capturing-output/) covers history and streaming; -[Sending keys](/guides/sending-keys/) explains input and completion. +The output is the captured screen, which includes the line +`libtmux capture ready`. Capture reads screen state, so it can miss output that +has scrolled away. [Capturing output](/guides/capturing-output/) covers history +and streaming; [Sending keys](/guides/sending-keys/) explains input and +completion. ## Use a language library diff --git a/site/src/content/docs/examples/index.md b/site/src/content/docs/examples/index.md index 4c6a2c109..7d021ffab 100644 --- a/site/src/content/docs/examples/index.md +++ b/site/src/content/docs/examples/index.md @@ -19,8 +19,9 @@ cards: --- Run these complete shell scripts to send input, capture output, and build -workspace layouts. Each example states its requirements, includes its setup, -and cleans up the private tmux server it creates. +workspace layouts. Each page builds its script one tmux command at a time, +then shows the whole file. Each example states its requirements, includes its +setup, and cleans up the private tmux server it creates. Save the displayed files with their shown names and run the command below them. The scripts use explicit sockets and targets so their commands reach @@ -37,7 +38,9 @@ Use [`send-keys`](/tmux/latest/manual/send-keys/), ## Source and verification The displayed shell files are the source for these native tmux examples; -a site build does not execute them. Each page links the tmux manual for +a site build does not execute them. Each step block is a range of lines +quoted from the page's complete file when the site is built, and the build +fails if the range no longer resolves. Each page links the tmux manual for the commands it uses. For a page listed in diff --git a/site/src/content/docs/examples/workspace-from-file.md b/site/src/content/docs/examples/workspace-from-file.md index 356013044..a6ed71bd7 100644 --- a/site/src/content/docs/examples/workspace-from-file.md +++ b/site/src/content/docs/examples/workspace-from-file.md @@ -1,7 +1,7 @@ --- supportedPorts: [] title: Build a workspace from a file -description: Create tmux windows and panes from a command file on a private server. +description: Build a tmux command file that creates windows and panes, then load it on a private server. sidebar: label: Build a workspace from a file group: Examples @@ -11,12 +11,53 @@ tableOfContents: true A tmux command file can create a session, arrange its windows, and split its panes. This example builds two windows with three panes, prints their names -and pane counts, then removes its private server. It requires tmux 3.2 or -newer and a POSIX shell. +and pane counts, then removes its private server. The first four steps write +the command file, and the last four load and inspect it. It requires tmux 3.2 +or newer and a POSIX shell. -## Define the layout +## 1. Create a detached session -Save this command file: +`new-session -d` creates a session without attaching a terminal. `-s dev` names +it and `-n editor` names its first window. `-x 100 -y 30` sizes that window, +because a detached session has no terminal to size it. The final `'sh'` is the +program in the first pane. + +```text excerpt="workspace.conf" from="new-session" +``` + +## 2. Split the window + +`split-window -h` adds a pane beside the first one. `-t '=dev:editor'` names the +window with an exact session name, so the split cannot reach a session whose +name only starts with `dev`. + +```text excerpt="workspace.conf" from="split-window" +``` + +The `editor` window now has two panes. Each runs `sh`. + +## 3. Add a second window + +`new-window -n logs` adds a window named `logs` with one pane. A new window +becomes the current one. + +```text excerpt="workspace.conf" from="new-window" +``` + +## 4. Choose what is selected + +`select-window` and `select-pane` move the focus back to the first pane of the +`editor` window. `.0` is the pane's index in that window. + +```text excerpt="workspace.conf" from="select-window" to="select-pane" +``` + + + +## The complete command file + +Explicit targets keep each command tied to the intended session and window. +Save the four steps together as `workspace.conf`: ```text title="workspace.conf" new-session -d -s dev -n editor -x 100 -y 30 'sh' @@ -26,12 +67,51 @@ select-window -t '=dev:editor' select-pane -t '=dev:editor.0' ``` -The `editor` window has two panes; `logs` has one. Each pane starts `sh`. -Explicit targets keep each command tied to the intended session and window. +## 5. Start a server that stays up + +`start-server` starts the private server before any session exists. The `\;` +passes a literal semicolon to tmux, so `set-option -s exit-empty off` runs as +the next command of the same invocation. Without that option the server exits +when it has no sessions, which would leave nothing to stop if the file failed +before creating one. + +```sh excerpt="workspace.sh" from="start-server" to="exit-empty off" +``` + +## 6. Load the file + +`source-file` runs each line of the file as a tmux command on this server. +Errors stay visible and make the script fail. Paths in the file are relative to +the directory you run the script from, so keep `workspace.conf` beside it. + +```sh excerpt="workspace.sh" from="source-file" +``` + +## 7. List what was built -## Build and inspect it +`list-windows` prints one row per window of the exact session `dev`. `-F` +formats each row with `#{window_name}` and `#{window_panes}`. -Save this complete program as `workspace.sh` beside the configuration file: +```sh excerpt="workspace.sh" from="list-windows" to="window_panes" +``` + +## 8. Clean up + +`kill-server` stops the private server. `trap cleanup EXIT` runs `cleanup` on +every exit, including a failed `source-file`, so the server never outlives the +script. If tmux cannot be stopped, the script keeps the socket directory and +prints its path. + +```sh excerpt="workspace.sh" from="cleanup() {" to="trap 'exit 1'" +``` + + + +## The complete script + +In the file, `cleanup` comes first so that it covers every command after it. +The parentheses run the script in a subshell, so its `exit` and traps leave +your shell alone. Save it as `workspace.sh` beside the command file: ```sh title="workspace.sh" ( @@ -73,12 +153,6 @@ editor: 2 panes logs: 1 panes ``` -`source-file` executes the configuration on the private server. Setting -`exit-empty` to `off` keeps that server available for cleanup even when a -configuration error prevents session creation. Errors remain visible and -make the program fail. Cleanup runs after partial creation too; if stopping -tmux fails, the script keeps the socket directory and reports its location. - ## Use a workspace manager For YAML or JSON configuration, validation, and language APIs, choose a port: diff --git a/site/src/content/docs/guides/attaching-to-tmux.md b/site/src/content/docs/guides/attaching-to-tmux.md index 3305424f0..d5600464f 100644 --- a/site/src/content/docs/guides/attaching-to-tmux.md +++ b/site/src/content/docs/guides/attaching-to-tmux.md @@ -23,8 +23,9 @@ server. `-f /dev/null` skips personal tmux configuration for this demonstration. $ tmux -L libtmux-demo -f /dev/null new-session -A -s work ``` -Detach with **Ctrl-b**, then **d**. You return to the original shell while -the tmux session keeps running. List that server's sessions: +Detach with `C-b d`: press Ctrl-b, release it, then press d. You return to the +original shell while the tmux session keeps running. List that server's +sessions: ```console $ tmux -L libtmux-demo list-sessions diff --git a/site/src/content/docs/guides/concept-examples.md b/site/src/content/docs/guides/concept-examples.md deleted file mode 100644 index d3cf127f1..000000000 --- a/site/src/content/docs/guides/concept-examples.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: Concept examples -description: Use MCP servers and workspace builders to exercise libtmux, and understand their support scope. -supportedPorts: [] -sidebar: - group: Guides - order: 90 ---- - -Use the non-Python MCP servers and workspace builders as maintained examples -of libtmux usage and deployment. Their menu badge says **concept**. Maintainers -use them to dogfood the core library through a real application, including -configuration and packaging. - -## Concept and alpha - -**Concept** describes support scope. These examples do not carry a product -support or compatibility commitment. Their APIs, MCP tools, command output -and workspace configuration can change. Pin the example and core library -revisions together when you adapt one. - -**Alpha** describes release maturity. Publishing a package, adding commands -or fixing an example does not change its concept scope. An alpha core library -can have concept examples alongside it. - -Python's `tmuxp` workspace loader and Python MCP server keep their own -documented status. A language without an implementation has no concept badge. - -## Use an example - -Open your language's MCP or Workspace Manager menu entry. Its installation -guide names the package or source build, runtime requirements and tmux -endpoint. The example and its language API remain available to read, run and -adapt. - -Markdown copies retain the concept scope. Protocol JSON contains the server's -advertised contracts; the [agent manifest](../../../docs.json) records the -companion's concept scope. - -Keep tmux access local or behind access controls you own. An MCP tool can -send shell input, and a workspace file can configure shell commands. A concept -badge does not provide authentication, authorization or isolation. - -## Check and report failures - -A concept example needs to work at its documented revision. Exercise a -workspace load and inspect the resulting session, or connect an MCP client -and call an advertised tool. Check output, errors and cleanup against an -isolated tmux server. A page that renders or a package that installs does -not establish those results. - -Use the [tmux socket selection options](/tmux/latest/manual/full/#DESCRIPTION) -to keep the test server separate from your normal sessions. - -Report a failing example with its revision, tmux version, smallest input and -observed error. If the failure comes from the core library, reduce it to a -core API call. The example is useful evidence for improving the library; -its concept status does not excuse a broken core contract. - -For an application you operate, own its configuration compatibility, -upgrade policy, access controls and monitoring. Start from the example and -test the behavior your application needs. diff --git a/site/src/content/docs/ja/index.md b/site/src/content/docs/ja/index.md index 5cb51813a..56c04a865 100644 --- a/site/src/content/docs/ja/index.md +++ b/site/src/content/docs/ja/index.md @@ -18,7 +18,7 @@ Java、C#、C++、Swift の実装があります。ドキュメントはすべ 翻訳されていないページには、英語の原文と翻訳を始めるためのリンクが表示されます。 -どのページが翻訳済みで、どのページがまだかは[翻訳の進捗](/translations/)に +どのページが翻訳済みで、どのページがまだかは[翻訳の進捗](/meta/translations/)に 一覧があります。 ## API リファレンスは翻訳しません @@ -27,6 +27,6 @@ Java、C#、C++、Swift の実装があります。ドキュメントはすべ 生成されるため、翻訳の対象外です。バージョンごとに再生成されるものを翻訳 し続けることはできません。 -- [実装ごとの一覧](/parity/) +- [実装ごとの一覧](/meta/parity/) 英語版へはヘッダーの言語切り替えから移動できます。 diff --git a/site/src/content/docs/third-party-notices.md b/site/src/content/docs/meta/third-party-notices.md similarity index 100% rename from site/src/content/docs/third-party-notices.md rename to site/src/content/docs/meta/third-party-notices.md diff --git a/site/src/content/docs/ports/csharp/guides/attaching-to-tmux.md b/site/src/content/docs/ports/csharp/guides/attaching-to-tmux.md index 23593c1bf..4eec369cb 100644 --- a/site/src/content/docs/ports/csharp/guides/attaching-to-tmux.md +++ b/site/src/content/docs/ports/csharp/guides/attaching-to-tmux.md @@ -44,7 +44,7 @@ Console.WriteLine("work"); ## Setup and run -Use an empty directory on Linux with Git and tmux 3.2a or newer installed. +Use an empty directory on Linux with Git and tmux 3.3a or newer installed. This example was checked with .NET SDK 10.0.302. diff --git a/site/src/content/docs/ports/csharp/mcp/examples/inspect-sessions.md b/site/src/content/docs/ports/csharp/mcp/examples/inspect-sessions.md index 43310da97..100029856 100644 --- a/site/src/content/docs/ports/csharp/mcp/examples/inspect-sessions.md +++ b/site/src/content/docs/ports/csharp/mcp/examples/inspect-sessions.md @@ -15,7 +15,7 @@ client. The program stops its owned server when the request succeeds or fails. ## Run the example -Use the .NET 10 SDK and tmux 3.2a or newer on Linux, macOS, or WSL. The project +Use the .NET 10 SDK and tmux 3.3a or newer on Linux, macOS, or WSL. The project pins the library and tool to the same published alpha release. The package source is [libtmux-dotnet at the documented release](https://github.com/libtmux/libtmux-dotnet/tree/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc). diff --git a/site/src/content/docs/ports/csharp/mcp/examples/run-command.md b/site/src/content/docs/ports/csharp/mcp/examples/run-command.md index 915bb35b3..fc34a2e6e 100644 --- a/site/src/content/docs/ports/csharp/mcp/examples/run-command.md +++ b/site/src/content/docs/ports/csharp/mcp/examples/run-command.md @@ -19,7 +19,7 @@ sessions. ## Run the example -Use the .NET 10 SDK and tmux 3.2a or newer on Linux, macOS, or WSL. The library +Use the .NET 10 SDK and tmux 3.3a or newer on Linux, macOS, or WSL. The library and tool use the same [published source revision](https://github.com/libtmux/libtmux-dotnet/tree/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc). Create an empty directory: diff --git a/site/src/content/docs/ports/csharp/mcp/guides/connect-client.md b/site/src/content/docs/ports/csharp/mcp/guides/connect-client.md index a69f9e25d..6bd83a689 100644 --- a/site/src/content/docs/ports/csharp/mcp/guides/connect-client.md +++ b/site/src/content/docs/ports/csharp/mcp/guides/connect-client.md @@ -11,7 +11,7 @@ sidebar: Configure your MCP client to launch `libtmux-mcp`. The executable selects one tmux socket and its tools at startup, then serves MCP over stdin and stdout. -Use Linux, macOS, or WSL with tmux 3.2a or newer and a compatible .NET runtime. +Use Linux, macOS, or WSL with tmux 3.3a or newer and a compatible .NET runtime. The examples here use the [published package](https://www.nuget.org/packages/LibTmux.Mcp/0.0.0-alpha.20) and its [source contract](https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/src/LibTmux.Mcp/README.md). diff --git a/site/src/content/docs/ports/csharp/workspace/reference/compatibility.md b/site/src/content/docs/ports/csharp/workspace/reference/compatibility.md index c75139232..39993b7aa 100644 --- a/site/src/content/docs/ports/csharp/workspace/reference/compatibility.md +++ b/site/src/content/docs/ports/csharp/workspace/reference/compatibility.md @@ -13,7 +13,7 @@ tableOfContents: true `tmux-workspace` is the .NET command for loading and capturing tmux workspaces. The [installation guide](../../guides/installation/) builds the documented source revision and runs a session on a private socket. The -walkthroughs require tmux 3.2a or newer. +walkthroughs require tmux 3.3a or newer. ## Runtime and execution diff --git a/site/src/content/docs/ports/cxx/guides/attaching-to-tmux.md b/site/src/content/docs/ports/cxx/guides/attaching-to-tmux.md index 5e763e120..b1890e62c 100644 --- a/site/src/content/docs/ports/cxx/guides/attaching-to-tmux.md +++ b/site/src/content/docs/ports/cxx/guides/attaching-to-tmux.md @@ -57,7 +57,7 @@ int main() { ## Setup and run -Use an empty directory on Linux with Git and tmux 3.2a or newer installed. +Use an empty directory on Linux with Git and tmux 3.3a or newer installed. This example was checked with Clang 18, libc++ 18, CMake 3.25+. diff --git a/site/src/content/docs/ports/cxx/workspace/reference/compatibility.md b/site/src/content/docs/ports/cxx/workspace/reference/compatibility.md index 30c312bbf..8772061c9 100644 --- a/site/src/content/docs/ports/cxx/workspace/reference/compatibility.md +++ b/site/src/content/docs/ports/cxx/workspace/reference/compatibility.md @@ -13,7 +13,7 @@ tableOfContents: true `tmux-workspace` is the C++ command for loading and capturing tmux workspaces. The [installation guide](../../guides/installation/) builds the documented source revision and runs a session on a private socket. The -walkthroughs require tmux 3.2a or newer. +walkthroughs require tmux 3.3a or newer. ## Runtime and execution diff --git a/site/src/content/docs/ports/fsharp/concepts/queries.md b/site/src/content/docs/ports/fsharp/concepts/queries.md index 1fdbbed29..048c00abb 100644 --- a/site/src/content/docs/ports/fsharp/concepts/queries.md +++ b/site/src/content/docs/ports/fsharp/concepts/queries.md @@ -16,7 +16,7 @@ Filter captured objects in F#, handle result counts explicitly, and match sessio ## Setup and run -Use an empty directory on Linux with Git, tmux 3.2a or newer, and .NET SDK 10.0.302. Save the project files and launcher below, then save any complete program on this page. Each program has its own imports and entry point. +Use an empty directory on Linux with Git, tmux 3.3a or newer, and .NET SDK 10.0.302. Save the project files and launcher below, then save any complete program on this page. Each program has its own imports and entry point. ```xml title="Query.fsproj" diff --git a/site/src/content/docs/ports/fsharp/concepts/server-session-window-pane.md b/site/src/content/docs/ports/fsharp/concepts/server-session-window-pane.md index 9f648ecba..f1258c438 100644 --- a/site/src/content/docs/ports/fsharp/concepts/server-session-window-pane.md +++ b/site/src/content/docs/ports/fsharp/concepts/server-session-window-pane.md @@ -18,7 +18,7 @@ A session holds window placements; a window holds panes. A linked window can app ## Setup and run -Use an empty directory on Linux with Git, tmux 3.2a or newer, and .NET SDK 10.0.302. Save the project files and launcher below, then save any complete program on this page. Each program has its own imports and entry point. +Use an empty directory on Linux with Git, tmux 3.3a or newer, and .NET SDK 10.0.302. Save the project files and launcher below, then save any complete program on this page. Each program has its own imports and entry point. ```xml title="Query.fsproj" diff --git a/site/src/content/docs/ports/fsharp/concepts/transports.md b/site/src/content/docs/ports/fsharp/concepts/transports.md index b0fc28a17..978b476dd 100644 --- a/site/src/content/docs/ports/fsharp/concepts/transports.md +++ b/site/src/content/docs/ports/fsharp/concepts/transports.md @@ -16,7 +16,7 @@ Choose command calls for bounded operations and a control connection when you ne ## Setup and run -Use an empty directory on Linux with Git, tmux 3.2a or newer, and .NET SDK 10.0.302. Save the project files and launcher below, then save any complete program on this page. Each program has its own imports and entry point. +Use an empty directory on Linux with Git, tmux 3.3a or newer, and .NET SDK 10.0.302. Save the project files and launcher below, then save any complete program on this page. Each program has its own imports and entry point. ```xml title="Query.fsproj" diff --git a/site/src/content/docs/ports/fsharp/concepts/workspaces.md b/site/src/content/docs/ports/fsharp/concepts/workspaces.md index 6013d8a3a..21306c145 100644 --- a/site/src/content/docs/ports/fsharp/concepts/workspaces.md +++ b/site/src/content/docs/ports/fsharp/concepts/workspaces.md @@ -14,7 +14,7 @@ Build a tmux layout from F# by creating a window, splitting a pane and selecting ## Setup and run -Use an empty directory on Linux with Git, tmux 3.2a or newer, and .NET SDK 10.0.302. Save the project files and launcher below, then save any complete program on this page. Each program has its own imports and entry point. +Use an empty directory on Linux with Git, tmux 3.3a or newer, and .NET SDK 10.0.302. Save the project files and launcher below, then save any complete program on this page. Each program has its own imports and entry point. ```xml title="Query.fsproj" diff --git a/site/src/content/docs/ports/fsharp/guides/attaching-to-tmux.md b/site/src/content/docs/ports/fsharp/guides/attaching-to-tmux.md index 26102eed2..0c82513bd 100644 --- a/site/src/content/docs/ports/fsharp/guides/attaching-to-tmux.md +++ b/site/src/content/docs/ports/fsharp/guides/attaching-to-tmux.md @@ -56,7 +56,7 @@ let main _ = ## Setup and run -Use an empty directory on Linux with Git and tmux 3.2a or newer installed. +Use an empty directory on Linux with Git and tmux 3.3a or newer installed. This example was checked with .NET SDK 10.0.302. diff --git a/site/src/content/docs/ports/go/concepts/queries.md b/site/src/content/docs/ports/go/concepts/queries.md index b23c6b5d6..b12c73ecb 100644 --- a/site/src/content/docs/ports/go/concepts/queries.md +++ b/site/src/content/docs/ports/go/concepts/queries.md @@ -25,7 +25,7 @@ still supplies a criterion. `tmux.Ptr` is useful for these pointer fields. ## Setup and run Use an empty directory on Linux or macOS with Git, Go 1.26 or newer, and -tmux 3.2a or newer. Save these two files and any complete Go program below. +tmux 3.3a or newer. Save these two files and any complete Go program below. Each program includes its imports and entry point; run it by filename so other examples in the directory do not introduce duplicate `main` functions. diff --git a/site/src/content/docs/ports/go/concepts/server-session-window-pane.md b/site/src/content/docs/ports/go/concepts/server-session-window-pane.md index 834beed33..02cab04da 100644 --- a/site/src/content/docs/ports/go/concepts/server-session-window-pane.md +++ b/site/src/content/docs/ports/go/concepts/server-session-window-pane.md @@ -24,7 +24,7 @@ records do not change when another command renames or removes an object. ## Setup and run Use an empty directory on Linux or macOS with Git, Go 1.26 or newer, and -tmux 3.2a or newer. Save these two files and any complete Go program below. +tmux 3.3a or newer. Save these two files and any complete Go program below. Each program includes its imports and entry point; run it by filename so other examples in the directory do not introduce duplicate `main` functions. diff --git a/site/src/content/docs/ports/go/guides/attaching-to-tmux.md b/site/src/content/docs/ports/go/guides/attaching-to-tmux.md index ee9de4f44..216bb81b3 100644 --- a/site/src/content/docs/ports/go/guides/attaching-to-tmux.md +++ b/site/src/content/docs/ports/go/guides/attaching-to-tmux.md @@ -64,7 +64,7 @@ func main() { ## Setup and run -Use an empty directory on Linux with Git and tmux 3.2a or newer installed. +Use an empty directory on Linux with Git and tmux 3.3a or newer installed. This example was checked with Go 1.26.8. diff --git a/site/src/content/docs/ports/go/mcp/examples/inspect-sessions.md b/site/src/content/docs/ports/go/mcp/examples/inspect-sessions.md index 2f8188c22..e64c05650 100644 --- a/site/src/content/docs/ports/go/mcp/examples/inspect-sessions.md +++ b/site/src/content/docs/ports/go/mcp/examples/inspect-sessions.md @@ -15,7 +15,7 @@ ID against the session it created, then closes the client and stops its server. ## Run the example -Use Go 1.26 or newer and tmux 3.2a or newer on Linux, macOS, or WSL. +Use Go 1.26 or newer and tmux 3.3a or newer on Linux, macOS, or WSL. The project pins the [core library](https://github.com/libtmux/libtmux-go/tree/3f6f99dd41f077aaac2fa18acf7c82d99f58c7cd) and [MCP executable](https://github.com/libtmux/libtmux-go/tree/6e7420927f4cb717fe089a710328e44e8d551025/mcp) to their published releases. The client uses the official Go MCP SDK. diff --git a/site/src/content/docs/ports/go/mcp/examples/run-command.md b/site/src/content/docs/ports/go/mcp/examples/run-command.md index 944f8085c..7301159d6 100644 --- a/site/src/content/docs/ports/go/mcp/examples/run-command.md +++ b/site/src/content/docs/ports/go/mcp/examples/run-command.md @@ -15,7 +15,7 @@ The client checks completion and output before reporting the result. ## Run the example -Use Go 1.26 or newer and tmux 3.2a or newer on Linux, macOS, or WSL. +Use Go 1.26 or newer and tmux 3.3a or newer on Linux, macOS, or WSL. The project pins the [core library](https://github.com/libtmux/libtmux-go/tree/3f6f99dd41f077aaac2fa18acf7c82d99f58c7cd) and [MCP executable](https://github.com/libtmux/libtmux-go/tree/6e7420927f4cb717fe089a710328e44e8d551025/mcp) to their published releases. The client uses the official Go MCP SDK. diff --git a/site/src/content/docs/ports/go/mcp/guides.md b/site/src/content/docs/ports/go/mcp/guides.md index 2483b3096..f3bf72c91 100644 --- a/site/src/content/docs/ports/go/mcp/guides.md +++ b/site/src/content/docs/ports/go/mcp/guides.md @@ -19,7 +19,7 @@ and selecting an existing socket. ## Install the command -Build the executable with Go 1.26 or newer and run it with tmux 3.2a or newer. +Build the executable with Go 1.26 or newer and run it with tmux 3.3a or newer. Follow the [installation steps](connect-client/#install-the-command), or use the [complete client example](../examples/inspect-sessions/) to install into an isolated project directory. diff --git a/site/src/content/docs/ports/go/mcp/guides/connect-client.md b/site/src/content/docs/ports/go/mcp/guides/connect-client.md index 848402f8c..29aac3720 100644 --- a/site/src/content/docs/ports/go/mcp/guides/connect-client.md +++ b/site/src/content/docs/ports/go/mcp/guides/connect-client.md @@ -15,7 +15,7 @@ go to stderr, which the client should retain in its server log. ## Install the command -Use Go 1.26 or newer and tmux 3.2a or newer on Linux, macOS, or WSL. Install the +Use Go 1.26 or newer and tmux 3.3a or newer on Linux, macOS, or WSL. Install the [published MCP module](https://github.com/libtmux/libtmux-go/tree/6e7420927f4cb717fe089a710328e44e8d551025/mcp): ```console diff --git a/site/src/content/docs/ports/go/mcp/index.md b/site/src/content/docs/ports/go/mcp/index.md index 94cbffe7e..b4669ed1b 100644 --- a/site/src/content/docs/ports/go/mcp/index.md +++ b/site/src/content/docs/ports/go/mcp/index.md @@ -26,7 +26,7 @@ is a separate Go module that exposes tmux through MCP. Its executable is `libtmux-mcp`. Installing the core tmux module does not install this server or its protocol dependencies. -The server requires Go 1.26 or newer to build and tmux 3.2a or newer to run. +The server requires Go 1.26 or newer to build and tmux 3.3a or newer to run. The MCP client launches `libtmux-mcp` and exchanges messages over stdin and stdout. The server selects one tmux endpoint and its offered tools at startup. Reconnect after changing that configuration. diff --git a/site/src/content/docs/ports/go/workspace/internals/examples.md b/site/src/content/docs/ports/go/workspace/internals/examples.md index df5219ba9..d132e7d3a 100644 --- a/site/src/content/docs/ports/go/workspace/internals/examples.md +++ b/site/src/content/docs/ports/go/workspace/internals/examples.md @@ -17,7 +17,7 @@ application or log file. ## Prepare the project -Use Go 1.26, Git, and tmux 3.2a or newer on Unix. Create an empty project and +Use Go 1.26, Git, and tmux 3.3a or newer on Unix. Create an empty project and fetch the source revision used by this example: ```console diff --git a/site/src/content/docs/ports/go/workspace/reference/compatibility.md b/site/src/content/docs/ports/go/workspace/reference/compatibility.md index ac9e93524..3375bb96b 100644 --- a/site/src/content/docs/ports/go/workspace/reference/compatibility.md +++ b/site/src/content/docs/ports/go/workspace/reference/compatibility.md @@ -13,7 +13,7 @@ tableOfContents: true `tmux-workspace` is the Go command for loading and capturing tmux workspaces. The [installation guide](../../guides/installation/) builds the documented source revision and runs a session on a private socket. The -walkthroughs require tmux 3.2a or newer. +walkthroughs require tmux 3.3a or newer. ## Runtime and execution diff --git a/site/src/content/docs/ports/lua/guides/attaching-to-tmux.md b/site/src/content/docs/ports/lua/guides/attaching-to-tmux.md index dc8587b68..0774a9ca9 100644 --- a/site/src/content/docs/ports/lua/guides/attaching-to-tmux.md +++ b/site/src/content/docs/ports/lua/guides/attaching-to-tmux.md @@ -55,7 +55,7 @@ end)) ## Setup and run -Use an empty directory on Linux with Git and tmux 3.2a or newer installed. +Use an empty directory on Linux with Git and tmux 3.3a or newer installed. This example was checked with Lua 5.5.1, luv 1.52.1-0. diff --git a/site/src/content/docs/ports/rs/concepts/queries.md b/site/src/content/docs/ports/rs/concepts/queries.md index e6bf06bf3..1ed3fd292 100644 --- a/site/src/content/docs/ports/rs/concepts/queries.md +++ b/site/src/content/docs/ports/rs/concepts/queries.md @@ -19,7 +19,7 @@ next operation needs one unambiguous target. ## Setup and run Use an empty directory with Git, rustup with the 1.97.1 toolchain installed, -tmux 3.2a or newer, and a Unix environment. Each program below creates its own private server, uses `cat` to +tmux 3.3a or newer, and a Unix environment. Each program below creates its own private server, uses `cat` to keep its panes alive, and stops that server before exiting. No existing session, socket, or environment variable is required. diff --git a/site/src/content/docs/ports/rs/concepts/transports.md b/site/src/content/docs/ports/rs/concepts/transports.md index 058f4d473..baab81204 100644 --- a/site/src/content/docs/ports/rs/concepts/transports.md +++ b/site/src/content/docs/ports/rs/concepts/transports.md @@ -56,7 +56,7 @@ would return [`Err`](https://doc.rust-lang.org/std/result/enum.Result.html#varia ## Setup and run Use an empty directory with Git, rustup with the 1.97.1 toolchain installed, -tmux 3.2a or newer, and a Unix environment. The program creates a private socket under `/tmp/libtmux-rs-dev`, +tmux 3.3a or newer, and a Unix environment. The program creates a private socket under `/tmp/libtmux-rs-dev`, starts `cat` in its panes, and stops only the server it created. No existing session, socket, or environment variable is required. diff --git a/site/src/content/docs/ports/rs/guides/attaching-to-tmux.md b/site/src/content/docs/ports/rs/guides/attaching-to-tmux.md index 7473f1079..3735fbfbb 100644 --- a/site/src/content/docs/ports/rs/guides/attaching-to-tmux.md +++ b/site/src/content/docs/ports/rs/guides/attaching-to-tmux.md @@ -58,7 +58,7 @@ async fn main() -> Result<(), Box> { ## Setup and run -Use an empty directory on Linux with Git and tmux 3.2a or newer installed. +Use an empty directory on Linux with Git and tmux 3.3a or newer installed. This example was checked with Rust 1.97.1. diff --git a/site/src/content/docs/ports/rs/guides/batching-commands.md b/site/src/content/docs/ports/rs/guides/batching-commands.md index b7049a046..0293ba6ce 100644 --- a/site/src/content/docs/ports/rs/guides/batching-commands.md +++ b/site/src/content/docs/ports/rs/guides/batching-commands.md @@ -22,7 +22,7 @@ on its own private server. ## Setup and run Use an empty directory with Git, rustup with the 1.97.1 toolchain installed, -tmux 3.2a or newer, and a Unix environment. The program creates a private socket under `/tmp/libtmux-rs-dev`, +tmux 3.3a or newer, and a Unix environment. The program creates a private socket under `/tmp/libtmux-rs-dev`, starts `cat` in its panes, and stops only the server it created. No existing session, socket, or environment variable is required. diff --git a/site/src/content/docs/ports/rs/guides/control-mode.md b/site/src/content/docs/ports/rs/guides/control-mode.md index 46b2a7620..59dcf294c 100644 --- a/site/src/content/docs/ports/rs/guides/control-mode.md +++ b/site/src/content/docs/ports/rs/guides/control-mode.md @@ -24,7 +24,7 @@ is still alive, and finally stops its owned daemon. ## Setup and run Use an empty directory with Git, rustup with the 1.97.1 toolchain installed, -tmux 3.2a or newer, and a Unix environment. The program creates a private socket under `/tmp/libtmux-rs-dev`, +tmux 3.3a or newer, and a Unix environment. The program creates a private socket under `/tmp/libtmux-rs-dev`, starts `cat` in its panes, and stops only the server it created. No existing session, socket, or environment variable is required. diff --git a/site/src/content/docs/ports/rs/mcp/examples/inspect-sessions.md b/site/src/content/docs/ports/rs/mcp/examples/inspect-sessions.md index d3e1ba13f..b9987930d 100644 --- a/site/src/content/docs/ports/rs/mcp/examples/inspect-sessions.md +++ b/site/src/content/docs/ports/rs/mcp/examples/inspect-sessions.md @@ -19,7 +19,7 @@ that server before exiting. The socket lives in a temporary directory under ## Run the example -Use Git, Rust 1.97.1, and tmux 3.2a or newer on Linux or macOS. Both libtmux +Use Git, Rust 1.97.1, and tmux 3.3a or newer on Linux or macOS. Both libtmux crates below use the source revision documented by the MCP reference. The example was run on Linux with tmux 3.2a and 3.7c. diff --git a/site/src/content/docs/ports/rs/mcp/guides/connect-client.md b/site/src/content/docs/ports/rs/mcp/guides/connect-client.md index 95cacb357..01867907c 100644 --- a/site/src/content/docs/ports/rs/mcp/guides/connect-client.md +++ b/site/src/content/docs/ports/rs/mcp/guides/connect-client.md @@ -13,7 +13,7 @@ sidebar: the executable and exchanges JSON-RPC messages over stdin and stdout. The launcher writes diagnostics to stderr. -Use Rust 1.88 or newer, Git, and tmux 3.2a or newer on Linux or macOS. +Use Rust 1.88 or newer, Git, and tmux 3.3a or newer on Linux or macOS. The command below uses the tested Rust 1.97.1 toolchain and installs the source revision used by this documentation's MCP reference. Cargo's binary directory must be on the path available to your MCP client. diff --git a/site/src/content/docs/ports/rs/mcp/index.md b/site/src/content/docs/ports/rs/mcp/index.md index 1930f00ba..d5e8a13fe 100644 --- a/site/src/content/docs/ports/rs/mcp/index.md +++ b/site/src/content/docs/ports/rs/mcp/index.md @@ -12,7 +12,7 @@ sidebar: terminal capture, command execution, bounded waits, and a static capability resource. -Building requires Rust 1.88 or newer. Running requires tmux 3.2a or newer. +Building requires Rust 1.88 or newer. Running requires tmux 3.3a or newer. Toolsets select inspection, management, execution, and teardown. Read `tmux://capabilities` for the effective startup selection. diff --git a/site/src/content/docs/ports/rs/workspace/internals/examples.md b/site/src/content/docs/ports/rs/workspace/internals/examples.md index 5dd901e4e..a272a34f5 100644 --- a/site/src/content/docs/ports/rs/workspace/internals/examples.md +++ b/site/src/content/docs/ports/rs/workspace/internals/examples.md @@ -17,7 +17,7 @@ The `/bin/cat` commands keep panes open without another application or log file. ## Prepare the project -Use Rust 1.97.1, Git, and tmux 3.2a or newer. These commands use a Unix shell. +Use Rust 1.97.1, Git, and tmux 3.3a or newer. These commands use a Unix shell. Create an empty project and fetch the source revision used by this example: ```console diff --git a/site/src/content/docs/ports/rs/workspace/reference/compatibility.md b/site/src/content/docs/ports/rs/workspace/reference/compatibility.md index aa3d90337..c04c8b6d2 100644 --- a/site/src/content/docs/ports/rs/workspace/reference/compatibility.md +++ b/site/src/content/docs/ports/rs/workspace/reference/compatibility.md @@ -13,7 +13,7 @@ tableOfContents: true `tmux-workspace` is the Rust command for loading and capturing tmux workspaces. The [installation guide](../../guides/installation/) builds the documented source revision and runs a session on a private socket. The -walkthroughs require tmux 3.2a or newer. +walkthroughs require tmux 3.3a or newer. ## Runtime and execution diff --git a/site/src/content/docs/ports/ruby/guides/attaching-to-tmux.md b/site/src/content/docs/ports/ruby/guides/attaching-to-tmux.md index dfa9917fb..a4f9eff00 100644 --- a/site/src/content/docs/ports/ruby/guides/attaching-to-tmux.md +++ b/site/src/content/docs/ports/ruby/guides/attaching-to-tmux.md @@ -38,7 +38,7 @@ end ## Setup and run -Use an empty directory on Linux with Git and tmux 3.2a or newer installed. +Use an empty directory on Linux with Git and tmux 3.3a or newer installed. This example was checked with Ruby 4.0.7, Bundler. diff --git a/site/src/content/docs/ports/ruby/mcp/examples/page-session-metadata.md b/site/src/content/docs/ports/ruby/mcp/examples/page-session-metadata.md index 279e28223..715eb7b38 100644 --- a/site/src/content/docs/ports/ruby/mcp/examples/page-session-metadata.md +++ b/site/src/content/docs/ports/ruby/mcp/examples/page-session-metadata.md @@ -20,7 +20,7 @@ server, use the [client guide](../../guides/connect-client/). ## Prepare the project Use Ruby 4.0.7 with its development headers, Bundler, Git, a C compiler and -Make, and tmux 3.2a or newer on a Unix host. The locked bundle includes native +Make, and tmux 3.3a or newer on a Unix host. The locked bundle includes native extensions. Start with an empty directory: ```console diff --git a/site/src/content/docs/ports/ruby/mcp/guides/connect-client.md b/site/src/content/docs/ports/ruby/mcp/guides/connect-client.md index 1ac7aba51..e3fa0e223 100644 --- a/site/src/content/docs/ports/ruby/mcp/guides/connect-client.md +++ b/site/src/content/docs/ports/ruby/mcp/guides/connect-client.md @@ -18,7 +18,7 @@ the connection. ## Prepare the project Use Ruby 4.0.7 with its development headers, Bundler, Git, a C compiler and -Make, and tmux 3.2a or newer on a Unix host. The bundle includes native +Make, and tmux 3.3a or newer on a Unix host. The bundle includes native extensions such as `io-event`, `json`, and `fiddle`. This recipe uses the source revision whose MCP contract is documented here; it does not assume that a newer checkout and an installed prerelease have identical APIs. diff --git a/site/src/content/docs/ports/swift/guides/attaching-to-tmux.md b/site/src/content/docs/ports/swift/guides/attaching-to-tmux.md index d29caa0e7..c69b78a61 100644 --- a/site/src/content/docs/ports/swift/guides/attaching-to-tmux.md +++ b/site/src/content/docs/ports/swift/guides/attaching-to-tmux.md @@ -51,7 +51,7 @@ struct Connect { ## Setup and run -Use an empty directory on Linux with Git and tmux 3.2a or newer installed. +Use an empty directory on Linux with Git and tmux 3.3a or newer installed. This example was checked with Swift 6.2.4. diff --git a/site/src/content/docs/ports/swift/mcp/examples.md b/site/src/content/docs/ports/swift/mcp/examples.md index 81b94e0c8..dadfb8381 100644 --- a/site/src/content/docs/ports/swift/mcp/examples.md +++ b/site/src/content/docs/ports/swift/mcp/examples.md @@ -16,7 +16,7 @@ use the [connection guide](../guides/). ## Prepare the project -Use Swift 6.2.4, Git, and tmux 3.2a or newer on Linux. Create an empty project +Use Swift 6.2.4, Git, and tmux 3.3a or newer on Linux. Create an empty project and the executable's source directory: ```console diff --git a/site/src/content/docs/ports/swift/mcp/guides.md b/site/src/content/docs/ports/swift/mcp/guides.md index 63f9f452c..0dd83ff8b 100644 --- a/site/src/content/docs/ports/swift/mcp/guides.md +++ b/site/src/content/docs/ports/swift/mcp/guides.md @@ -17,7 +17,7 @@ tmux when the MCP process exits; it does not require an existing tmux session. ## Build the executable -Use Swift 6.2.4, Git, and tmux 3.2a or newer on Linux. Create an empty directory +Use Swift 6.2.4, Git, and tmux 3.3a or newer on Linux. Create an empty directory for the launcher and source checkout: ```console diff --git a/site/src/content/docs/ports/swift/workspace/internals/examples.md b/site/src/content/docs/ports/swift/workspace/internals/examples.md index f52be2788..823b5fa6d 100644 --- a/site/src/content/docs/ports/swift/workspace/internals/examples.md +++ b/site/src/content/docs/ports/swift/workspace/internals/examples.md @@ -17,7 +17,7 @@ without reading shell startup files or requiring another application. ## Prepare the project -Use Swift 6.2.4, Git, and tmux 3.2a or newer on Linux. Create an empty project +Use Swift 6.2.4, Git, and tmux 3.3a or newer on Linux. Create an empty project and the executable's source directory: ```console diff --git a/site/src/content/docs/ports/swift/workspace/reference/compatibility.md b/site/src/content/docs/ports/swift/workspace/reference/compatibility.md index c2dd441b9..cfe1f09b8 100644 --- a/site/src/content/docs/ports/swift/workspace/reference/compatibility.md +++ b/site/src/content/docs/ports/swift/workspace/reference/compatibility.md @@ -13,7 +13,7 @@ tableOfContents: true `tmux-workspace` is the Swift command for loading and capturing tmux workspaces. The [installation guide](../../guides/installation/) builds the documented source revision and runs a session on a private socket. The -walkthroughs require tmux 3.2a or newer. +walkthroughs require tmux 3.3a or newer. ## Runtime and execution diff --git a/site/src/content/docs/ports/ts/concepts/queries.md b/site/src/content/docs/ports/ts/concepts/queries.md index 8505c5dba..13bbf5b66 100644 --- a/site/src/content/docs/ports/ts/concepts/queries.md +++ b/site/src/content/docs/ports/ts/concepts/queries.md @@ -20,7 +20,7 @@ requires exactly one target. These are independent programs with imports, assertions, and cleanup. Each creates a private tmux server, runs `cat` in its panes to keep them alive, and -stops its server before exiting. They require Bun 1.4.2 or newer, tmux 3.2a +stops its server before exiting. They require Bun 1.4.2 or newer, tmux 3.3a or newer, and a Unix environment. You do not need an existing tmux session. In an empty directory, save this file as `package.json`: diff --git a/site/src/content/docs/ports/ts/guides/attaching-to-tmux.md b/site/src/content/docs/ports/ts/guides/attaching-to-tmux.md index 3e303c571..868772ad7 100644 --- a/site/src/content/docs/ports/ts/guides/attaching-to-tmux.md +++ b/site/src/content/docs/ports/ts/guides/attaching-to-tmux.md @@ -39,7 +39,7 @@ console.log(session.name); ## Setup and run -Use an empty directory on Linux with Git and tmux 3.2a or newer installed. +Use an empty directory on Linux with Git and tmux 3.3a or newer installed. This example was checked with Bun 1.4.2. diff --git a/site/src/content/docs/ports/ts/mcp/examples.md b/site/src/content/docs/ports/ts/mcp/examples.md index 5b75ada96..d21d47037 100644 --- a/site/src/content/docs/ports/ts/mcp/examples.md +++ b/site/src/content/docs/ports/ts/mcp/examples.md @@ -32,7 +32,7 @@ launches the stdio server does not need embedding code. ### Prepare the project -Use Bun 1.4.2 or newer, Git, and tmux 3.2a or newer on Unix. Create an empty +Use Bun 1.4.2 or newer, Git, and tmux 3.3a or newer on Unix. Create an empty consumer directory: ```console diff --git a/site/src/content/docs/ports/ts/mcp/index.md b/site/src/content/docs/ports/ts/mcp/index.md index 284eae84a..3c62bd175 100644 --- a/site/src/content/docs/ports/ts/mcp/index.md +++ b/site/src/content/docs/ports/ts/mcp/index.md @@ -13,7 +13,7 @@ TypeScript factory. Clients can inspect topology, capture output, run framed shell commands, and create or arrange panes. The package requires Node 22 or newer, or Bun 1.3.14 or newer, plus tmux -3.2a or newer. Real tmux operation is supported on Linux; the package's +3.3a or newer. Real tmux operation is supported on Linux; the package's macOS artifact checks do not establish runtime support. ## Start here diff --git a/site/src/content/docs/ports/ts/workspace/internals/examples.md b/site/src/content/docs/ports/ts/workspace/internals/examples.md index f31e698d2..1b17c0ea2 100644 --- a/site/src/content/docs/ports/ts/workspace/internals/examples.md +++ b/site/src/content/docs/ports/ts/workspace/internals/examples.md @@ -17,7 +17,7 @@ without depending on an application or log file. ## Prepare the project -Use Bun 1.4.2 or newer, Git, and tmux 3.2a or newer on Unix. Create an empty +Use Bun 1.4.2 or newer, Git, and tmux 3.3a or newer on Unix. Create an empty consumer directory: ```console diff --git a/site/src/content/docs/ports/ts/workspace/reference/compatibility.md b/site/src/content/docs/ports/ts/workspace/reference/compatibility.md index 7a3bc764d..cc4f09989 100644 --- a/site/src/content/docs/ports/ts/workspace/reference/compatibility.md +++ b/site/src/content/docs/ports/ts/workspace/reference/compatibility.md @@ -13,7 +13,7 @@ tableOfContents: true `tmux-workspace` is the TypeScript command for loading and capturing tmux workspaces. The [installation guide](../../guides/installation/) builds the documented source revision and runs a session on a private socket. The -walkthroughs require tmux 3.2a or newer. +walkthroughs require tmux 3.3a or newer. ## Runtime and execution diff --git a/site/src/data/api/csharp.json b/site/src/data/api/csharp.json index a9cc450a3..5a172d111 100644 --- a/site/src/data/api/csharp.json +++ b/site/src/data/api/csharp.json @@ -1 +1 @@ -{"port":"csharp","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractor":"@libtmux/api-model@0.0.1","symbols":[{"id":"LibTmux.TmuxBuffers","name":"TmuxBuffers","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"The paste buffers of one server.","body":"tmux keeps buffers on the server rather than in a session, so a buffer set\nfrom one session is readable from every other. A buffer named null is the\nmost recent one, which is what tmux pastes when nothing names a buffer."},"source":{"file":"src/LibTmux/Buffers/TmuxBuffers.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffers","product":"core","slug":"libtmux-tmuxbuffers"},{"id":"LibTmux.TmuxBuffers.SetAsync","name":"SetAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxBuffers","signatures":[{"params":[{"name":"data","type":"string","doc":"The text to store."},{"name":"name","type":"string?","default":"null","doc":"The buffer name, or null for a new one."},{"name":"append","type":"bool","default":"false","doc":"Whether the text joins what is already there."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A task that completes once tmux has stored it.","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Puts text into a buffer."},"source":{"file":"src/LibTmux/Buffers/TmuxBuffers.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffers.SetAsync","product":"core","slug":"libtmux-tmuxbuffers-setasync"},{"id":"LibTmux.TmuxBuffers.LoadAsync","name":"LoadAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxBuffers","signatures":[{"params":[{"name":"path","type":"string","doc":"The file to read."},{"name":"name","type":"string?","default":"null","doc":"The buffer name, or null for a new one."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A task that completes once tmux has read it.","raises":[{"type":"ArgumentException","doc":" is blank."}]}],"doc":{"summary":"Puts a file's contents into a buffer."},"source":{"file":"src/LibTmux/Buffers/TmuxBuffers.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffers.LoadAsync","product":"core","slug":"libtmux-tmuxbuffers-loadasync"},{"id":"LibTmux.TmuxBuffers.SaveAsync","name":"SaveAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxBuffers","signatures":[{"params":[{"name":"path","type":"string","doc":"The file to write."},{"name":"name","type":"string?","default":"null","doc":"The buffer to write, or null for the most recent."},{"name":"append","type":"bool","default":"false","doc":"Whether the buffer joins what the file already holds."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A task that completes once tmux has written it.","raises":[{"type":"ArgumentException","doc":" is blank."}]}],"doc":{"summary":"Writes a buffer to a file."},"source":{"file":"src/LibTmux/Buffers/TmuxBuffers.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffers.SaveAsync","product":"core","slug":"libtmux-tmuxbuffers-saveasync"},{"id":"LibTmux.TmuxBuffers.GetAsync","name":"GetAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxBuffers","signatures":[{"params":[{"name":"name","type":"string?","default":"null","doc":"The buffer to read, or null for the most recent."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"Everything the buffer holds."}],"doc":{"summary":"Reads a buffer in full."},"source":{"file":"src/LibTmux/Buffers/TmuxBuffers.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffers.GetAsync","product":"core","slug":"libtmux-tmuxbuffers-getasync"},{"id":"LibTmux.TmuxBuffers.DeleteAsync","name":"DeleteAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxBuffers","signatures":[{"params":[{"name":"name","type":"string?","default":"null","doc":"The buffer to forget, or null for the most recent."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A task that completes once tmux has forgotten it."}],"doc":{"summary":"Forgets a buffer."},"source":{"file":"src/LibTmux/Buffers/TmuxBuffers.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffers.DeleteAsync","product":"core","slug":"libtmux-tmuxbuffers-deleteasync"},{"id":"LibTmux.TmuxBuffers.GetAllAsync","name":"GetAllAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxBuffers","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"Each buffer, with its size and a sample of its contents."}],"doc":{"summary":"Reads every buffer."},"source":{"file":"src/LibTmux/Buffers/TmuxBuffers.cs","line":83,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffers.GetAllAsync","product":"core","slug":"libtmux-tmuxbuffers-getallasync"},{"id":"LibTmux.TmuxBuffers.GetLinesAsync","name":"GetLinesAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxBuffers","signatures":[{"params":[{"name":"request","type":"ListBuffersRequest?","default":"null","doc":"The format and filter, or null for tmux's own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"One line per buffer."}],"doc":{"summary":"Reads the buffers as tmux rendered them."},"source":{"file":"src/LibTmux/Buffers/TmuxBuffers.cs","line":91,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffers.GetLinesAsync","product":"core","slug":"libtmux-tmuxbuffers-getlinesasync"},{"id":"LibTmux.ITmuxRequest","name":"ITmuxRequest","kind":"interface","modifiers":[],"signatures":[],"doc":{"summary":"A request that becomes one tmux command against a target.","body":"Every request builds its command with the same code the one-shot method\nuses, so a chained call and a direct call send identical arguments rather\nthan two descriptions that have to be kept in step.\n\nWhat each request is aimed at is decided by what tmux needs, not by taste.\nA window names the session that will hold it; keys name the pane, because\nwhich flags tmux accepts depends on the server version and the pane is what\nknows it. A request that names nothing in particular, such as a new\nsession, is aimed at the server that runs it.\n\n runs any of these on its own; a\n runs several in one tmux invocation."},"source":{"file":"src/LibTmux/Chaining/ITmuxRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ITmuxRequest","product":"core","slug":"libtmux-itmuxrequest"},{"id":"LibTmux.ITmuxRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.ITmuxRequest","signatures":[{"params":[{"name":"target","type":"TTarget","doc":"What the command is aimed at."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns this request as one tmux command."},"source":{"file":"src/LibTmux/Chaining/ITmuxRequest.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ITmuxRequest.ToCommand","product":"core","slug":"libtmux-itmuxrequest-tocommand"},{"id":"LibTmux.TmuxChain","name":"TmuxChain","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Commands tmux runs together, in one process.","body":"A one-shot call starts a tmux client, runs one command, and lets it exit,\nwhich is the right shape for one command and the wrong shape for fifty: the\nprocess start dominates. A chain hands tmux the whole sequence at once, so\nthe cost is paid once no matter how many commands are in it.\n\nBuilding a chain reaches nothing; only does.\nEach step returns a new chain, so a partly built one can be shared without\nanother caller's additions appearing in it."},"source":{"file":"src/LibTmux/Chaining/TmuxChain.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxChain","product":"core","slug":"libtmux-tmuxchain"},{"id":"LibTmux.TmuxChain.Commands","name":"Commands","kind":"property","modifiers":[],"parent":"LibTmux.TmuxChain","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the commands this chain will run, in order."},"source":{"file":"src/LibTmux/Chaining/TmuxChain.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxChain.Commands","product":"core","slug":"libtmux-tmuxchain-commands"},{"id":"LibTmux.TmuxChain.Then","name":"Then","kind":"method","modifiers":["overload"],"parent":"LibTmux.TmuxChain","signatures":[{"params":[{"name":"command","type":"TmuxCommand","doc":"The command to run after the ones already added."}],"returns":"TmuxChain","returnsDoc":"A chain ending with ."},{"params":[{"name":"commands","type":"IEnumerable","doc":"The commands to run, in order, after the ones already added."}],"returns":"TmuxChain","returnsDoc":"A chain ending with .","raises":[{"type":"ArgumentNullException","doc":" is null."}]},{"params":[{"name":"name","type":"string","doc":"The tmux command name."},{"name":"string[]","type":"string"},{"name":"arguments","doc":"Its arguments."}],"returns":"TmuxChain","returnsDoc":"A chain ending with the named command."}],"doc":{"summary":"Adds one command and returns the longer chain."},"source":{"file":"src/LibTmux/Chaining/TmuxChain.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxChain.Then","product":"core","slug":"libtmux-tmuxchain-then"},{"id":"LibTmux.TmuxChain.ExecuteAsync","name":"ExecuteAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxChain","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"What that one invocation produced.","raises":[{"type":"InvalidOperationException","doc":"The chain has no commands."},{"type":"TmuxCommandException","doc":"tmux reported the run failed."}]}],"doc":{"summary":"Runs every command in one tmux invocation.","body":"tmux runs the commands in order and prints their output as one stream,\nso the result belongs to the chain rather than to any single command.\nA command that fails stops the ones after it, which is tmux's own\nbehavior for a grouped run rather than anything imposed here."},"source":{"file":"src/LibTmux/Chaining/TmuxChain.cs","line":94,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxChain.ExecuteAsync","product":"core","slug":"libtmux-tmuxchain-executeasync"},{"id":"LibTmux.TmuxChaining","name":"TmuxChaining","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Runs a request on its own, as a chain of one command.","body":"There is one overload per kind of target rather than one per request: a\nrequest says what it is aimed at through ,\nand the target says which server runs it. An options or hooks table does not\nknow its server, so those two overloads also take the server."},"source":{"file":"src/LibTmux/Chaining/TmuxChaining.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxChaining","product":"core","slug":"libtmux-tmuxchaining"},{"id":"LibTmux.TmuxChaining.ToRunCommand","name":"ToRunCommand","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxChaining","signatures":[{"params":[{"name":"request","type":"HookRequest","doc":"Which hook to run."},{"name":"hooks","type":"TmuxHooks","doc":"The hooks handle whose scope holds it."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":"An argument is null."}]}],"doc":{"summary":"Returns running a hook as one tmux command.","body":"A hook request names a hook without saying what to do with it, so\nrunning and removing are separate here rather than one call that has to\nguess which was meant."},"source":{"file":"src/LibTmux/Chaining/TmuxChaining.Hooks.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxChaining.ToRunCommand","product":"core","slug":"libtmux-tmuxchaining-toruncommand"},{"id":"LibTmux.TmuxChaining.ToUnsetCommand","name":"ToUnsetCommand","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxChaining","signatures":[{"params":[{"name":"request","type":"HookRequest","doc":"Which hook to remove."},{"name":"hooks","type":"TmuxHooks","doc":"The hooks handle whose scope holds it."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":"An argument is null."}]}],"doc":{"summary":"Returns removing a hook as one tmux command."},"source":{"file":"src/LibTmux/Chaining/TmuxChaining.Hooks.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxChaining.ToUnsetCommand","product":"core","slug":"libtmux-tmuxchaining-tounsetcommand"},{"id":"LibTmux.TmuxChaining.ExecuteAsync","name":"ExecuteAsync","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.TmuxChaining","signatures":[{"params":[{"name":"request","type":"HookRequest","doc":"Which hook to run."},{"name":"hooks","type":"TmuxHooks","doc":"The hooks handle whose scope holds it."},{"name":"server","type":"Server","doc":"The server the hook runs on."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"What tmux printed, which is nothing for an ordinary run.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"TmuxCommandException","doc":"tmux reported the command failed."}]},{"params":[{"name":"request","type":"SetHooksRequest","doc":"Which hook to set, and to what entries."},{"name":"hooks","type":"TmuxHooks","doc":"The hooks handle whose scope holds it."},{"name":"server","type":"Server","doc":"The server the hook is set on."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"What that one invocation produced.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"TmuxCommandException","doc":"tmux reported the run failed."}]},{"params":[{"name":"request","type":"ITmuxRequest","doc":"What to do."},{"name":"pane","type":"Pane","doc":"The pane it is aimed at."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"What tmux printed.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"TmuxCommandException","doc":"tmux reported the command failed."}]},{"params":[{"name":"request","type":"ITmuxRequest","doc":"What to do."},{"name":"window","type":"Window","doc":"The window it is aimed at."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"What tmux printed.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"TmuxCommandException","doc":"tmux reported the command failed."}]},{"params":[{"name":"request","type":"ITmuxRequest","doc":"What to do."},{"name":"session","type":"Session","doc":"The session it is aimed at."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"What tmux printed.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"TmuxCommandException","doc":"tmux reported the command failed."}]},{"params":[{"name":"request","type":"ITmuxRequest","doc":"What to do."},{"name":"server","type":"Server","doc":"The server that runs it."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"What tmux printed.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"TmuxCommandException","doc":"tmux reported the command failed."}]},{"params":[{"name":"request","type":"ITmuxRequest","doc":"What to read or write."},{"name":"options","type":"TmuxOptions","doc":"The options table whose scope it is aimed at."},{"name":"server","type":"Server","doc":"The server that holds the table."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"What tmux printed.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"TmuxCommandException","doc":"tmux reported the command failed."}]},{"params":[{"name":"request","type":"ITmuxRequest","doc":"What to read or write."},{"name":"hooks","type":"TmuxHooks","doc":"The hooks table whose scope it is aimed at."},{"name":"server","type":"Server","doc":"The server that holds the table."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"What tmux printed.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"TmuxCommandException","doc":"tmux reported the command failed."}]},{"params":[{"name":"request","type":"SendKeysRequest","doc":"The keys to send."},{"name":"pane","type":"Pane","doc":"The pane that receives the keys."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The combined command result.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"ArgumentException","doc":"The request sends nothing or its text contains NUL."}]},{"params":[{"name":"request","type":"SendKeysRequest","doc":"The keys to send, including a requested Enter."},{"name":"pane","type":"Pane","doc":"The pane that receives them."},{"name":"control","type":"IControlModeSession","doc":"The control client connected to the pane's server."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops waiting for command replies."}],"returns":"Task>","returnsDoc":"The reply lines concatenated in command order.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"ArgumentException","doc":"The request sends nothing."},{"type":"ControlModeCommandException","doc":"The first command failed."},{"type":"LibTmuxException","doc":"Text succeeded but Enter failed or its wait was cancelled. Dispatch is\nunknown; do not retry the whole request."}]}],"doc":{"summary":"Runs a hook on its own."},"source":{"file":"src/LibTmux/Chaining/TmuxChaining.Hooks.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxChaining.ExecuteAsync","product":"core","slug":"libtmux-tmuxchaining-executeasync"},{"id":"LibTmux.TmuxChaining.ToCommands","name":"ToCommands","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxChaining","signatures":[{"params":[{"name":"request","type":"SetHooksRequest","doc":"Which hook to set, and to what entries."},{"name":"hooks","type":"TmuxHooks","doc":"The hooks handle whose scope holds it."}],"returns":"IReadOnlyList","returnsDoc":"The commands, in the order tmux must receive them.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."}]}],"doc":{"summary":"Returns every command a multi-entry hook request sends.","body":"This request is several tmux commands rather than one, so it answers a\nlist. Running them one at a time is what the one-shot path does; adding\nthem to a chain is what this is for."},"source":{"file":"src/LibTmux/Chaining/TmuxChaining.Hooks.cs","line":76,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxChaining.ToCommands","product":"core","slug":"libtmux-tmuxchaining-tocommands"},{"id":"LibTmux.TmuxCommand","name":"TmuxCommand","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One tmux command and the arguments it carries.","body":"The typed methods on , ,\n, and each run one command and\nreturn what it produced. This is that same command as a value, so several\ncan be handed to tmux together through rather than\none process at a time."},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand","product":"core","slug":"libtmux-tmuxcommand"},{"id":"LibTmux.TmuxCommand.TmuxCommand","name":"TmuxCommand","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommand","signatures":[{"params":[{"name":"Name","type":"string","doc":"The tmux command name."},{"name":"Arguments","type":"IReadOnlyList","doc":"Its arguments."}]}],"doc":{"summary":"Initializes a tmux command."},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand.TmuxCommand","product":"core","slug":"libtmux-tmuxcommand-tmuxcommand"},{"id":"LibTmux.TmuxCommand.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommand","signatures":[],"type":"string","doc":{"summary":"Gets the tmux command name."},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand.Name","product":"core","slug":"libtmux-tmuxcommand-name"},{"id":"LibTmux.TmuxCommand.Arguments","name":"Arguments","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommand","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the arguments, separated as tmux will receive them."},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand.Arguments","product":"core","slug":"libtmux-tmuxcommand-arguments"},{"id":"LibTmux.TmuxCommand.Create","name":"Create","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxCommand","signatures":[{"params":[{"name":"name","type":"string","doc":"The tmux command name."},{"name":"string[]","type":"string"},{"name":"arguments","doc":"Its arguments."}],"returns":"TmuxCommand","returnsDoc":"The command.","raises":[{"type":"ArgumentException","doc":"The name is empty, an argument is null, or a token contains NUL."}]}],"doc":{"summary":"Creates a command from its name and arguments."},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":73,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand.Create","product":"core","slug":"libtmux-tmuxcommand-create"},{"id":"LibTmux.TmuxCommand.RequiredGeneration","name":"RequiredGeneration","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommand","signatures":[],"type":"ServerGeneration?","doc":{"summary":"Gets the server generation this command's target belongs to.","body":"A tmux ID such as %2 is only meaningful on the server that issued\nit; a restarted server reuses those IDs for different objects. A command\nbuilt from an entity therefore records which server the entity was read\nfrom, and refuses to run it against\na different one. Generation-bound dispatch never starts an absent daemon.\n\nNull leaves dispatch endpoint-scoped, without a generation requirement."},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":89,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand.RequiredGeneration","product":"core","slug":"libtmux-tmuxcommand-requiredgeneration"},{"id":"LibTmux.TmuxCommand.ToArguments","name":"ToArguments","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommand","signatures":[{"params":[],"returns":"IReadOnlyList","returnsDoc":"The command name followed by its arguments."}],"doc":{"summary":"Returns this command the way tmux receives it.","body":"This is raw argv. Execute the command through a chain or control session\nto retain its checks for server generation, window placement, and pane containment."},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":124,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand.ToArguments","product":"core","slug":"libtmux-tmuxcommand-toarguments"},{"id":"LibTmux.TmuxCommand.Equals","name":"Equals","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommand","signatures":[{"params":[{"name":"other","type":"TmuxCommand?"}],"returns":"bool"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":127,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand.Equals","product":"core","slug":"libtmux-tmuxcommand-equals"},{"id":"LibTmux.TmuxCommand.GetHashCode","name":"GetHashCode","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommand","signatures":[{"params":[],"returns":"int"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":139,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand.GetHashCode","product":"core","slug":"libtmux-tmuxcommand-gethashcode"},{"id":"LibTmux.TmuxCommand.Deconstruct","name":"Deconstruct","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommand","signatures":[{"params":[{"name":"Name","type":"string","doc":"The command name."},{"name":"Arguments","type":"IReadOnlyList","doc":"The command arguments."}],"returns":"void"}],"doc":{"summary":"Deconstructs the command into its name and arguments."},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":160,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand.Deconstruct","product":"core","slug":"libtmux-tmuxcommand-deconstruct"},{"id":"LibTmux.Client","name":"Client","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Identifies a client and resolves what it is looking at.","body":"A client moves between sessions while a handle is held, so the captured\nfields say where it was and the resolving methods say where it is. Both are\nuseful, and conflating them would make one of them a lie."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client","product":"core","slug":"libtmux-client"},{"id":"LibTmux.Client.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.Client","signatures":[],"type":"string","doc":{"summary":"Gets the client name tmux knows it by."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.Name","product":"core","slug":"libtmux-client-name"},{"id":"LibTmux.Client.Tty","name":"Tty","kind":"property","modifiers":[],"parent":"LibTmux.Client","signatures":[],"type":"string?","doc":{"summary":"Gets the terminal the client is on, when it has one."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.Tty","product":"core","slug":"libtmux-client-tty"},{"id":"LibTmux.Client.IsControlClient","name":"IsControlClient","kind":"property","modifiers":[],"parent":"LibTmux.Client","signatures":[],"type":"bool","doc":{"summary":"Gets whether the client speaks tmux's control protocol."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.IsControlClient","product":"core","slug":"libtmux-client-iscontrolclient"},{"id":"LibTmux.Client.AttachedSessionId","name":"AttachedSessionId","kind":"property","modifiers":[],"parent":"LibTmux.Client","signatures":[],"type":"SessionId?","doc":{"summary":"Gets the session the client was attached to when it was read.","body":"This is captured state. Use for\nwhere the client is now."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.AttachedSessionId","product":"core","slug":"libtmux-client-attachedsessionid"},{"id":"LibTmux.Client.Generation","name":"Generation","kind":"property","modifiers":[],"parent":"LibTmux.Client","signatures":[],"type":"ServerGeneration","doc":{"summary":"Gets the server generation captured with this client."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.Generation","product":"core","slug":"libtmux-client-generation"},{"id":"LibTmux.Client.RawFormatFields","name":"RawFormatFields","kind":"property","modifiers":[],"parent":"LibTmux.Client","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the tmux fields captured when this handle materialized."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":59,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.RawFormatFields","product":"core","slug":"libtmux-client-rawformatfields"},{"id":"LibTmux.Client.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.Client","signatures":[],"type":"Server","doc":{"summary":"Gets the server that owns this client."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":62,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.Server","product":"core","slug":"libtmux-client-server"},{"id":"LibTmux.Client.GetAsync","name":"GetAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.Client","signatures":[{"params":[{"name":"server","type":"Server","doc":"The server to look on."},{"name":"name","type":"string","doc":"The client name."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The client.","raises":[{"type":"TmuxObjectNotFoundException","doc":"The server has no such client."}]}],"doc":{"summary":"Reads one client by name."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":71,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.GetAsync","product":"core","slug":"libtmux-client-getasync"},{"id":"LibTmux.Client.RefreshAsync","name":"RefreshAsync","kind":"method","modifiers":[],"parent":"LibTmux.Client","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying current state.","raises":[{"type":"TmuxObjectNotFoundException","doc":"The client has gone."}]}],"doc":{"summary":"Re-reads this client from tmux."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":92,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.RefreshAsync","product":"core","slug":"libtmux-client-refreshasync"},{"id":"LibTmux.Client.ResolveAttachmentAsync","name":"ResolveAttachmentAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Client","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The session, window and pane the client is on, or null when the client\nhas detached or its session has since gone."}],"doc":{"summary":"Reads where this client is looking now.","body":"The three parts come from one reading of the client, so a client that\nmoves between sessions cannot yield a window from one and a pane from\nanother. A server that has stopped answering is not part of this: the\nfirst read here is a live listing, and a live listing throws on\nfailure rather than answering null for it."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":109,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.ResolveAttachmentAsync","product":"core","slug":"libtmux-client-resolveattachmentasync"},{"id":"LibTmux.Client.GetAttachedSessionAsync","name":"GetAttachedSessionAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Client","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The session, or null when the client is attached to none."}],"doc":{"summary":"Reads the session this client is attached to now."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":153,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.GetAttachedSessionAsync","product":"core","slug":"libtmux-client-getattachedsessionasync"},{"id":"LibTmux.Client.GetAttachedWindowAsync","name":"GetAttachedWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Client","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The window, or null when the client is showing none."}],"doc":{"summary":"Reads the window this client is showing now."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":161,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.GetAttachedWindowAsync","product":"core","slug":"libtmux-client-getattachedwindowasync"},{"id":"LibTmux.Client.GetAttachedPaneAsync","name":"GetAttachedPaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Client","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The pane, or null when the client has none."}],"doc":{"summary":"Reads the pane this client has active now."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":169,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.GetAttachedPaneAsync","product":"core","slug":"libtmux-client-getattachedpaneasync"},{"id":"LibTmux.Client.Equals","name":"Equals","kind":"method","modifiers":["overload"],"parent":"LibTmux.Client","signatures":[{"params":[{"name":"other","type":"Client?"}],"returns":"bool"},{"params":[{"name":"obj","type":"object?"}],"returns":"bool"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Client.Administration.cs","line":188,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.Equals","product":"core","slug":"libtmux-client-equals"},{"id":"LibTmux.Client.GetHashCode","name":"GetHashCode","kind":"method","modifiers":[],"parent":"LibTmux.Client","signatures":[{"params":[],"returns":"int"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Client.Administration.cs","line":197,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.GetHashCode","product":"core","slug":"libtmux-client-gethashcode"},{"id":"LibTmux.ClientAttachment","name":"ClientAttachment","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record ClientAttachment(Session? Session, Window? Window, Pane? Pane);","params":[{"name":"Session","type":"Session?","doc":"The session the client is attached to."},{"name":"Window","type":"Window?","doc":"The window that session is showing."},{"name":"Pane","type":"Pane?","doc":"The pane that window has active."}]}],"doc":{"summary":"What one client is looking at.","body":"The three come from one reading, so they agree with each other. Asking for\nthem separately would let the client move between the answers."},"source":{"file":"src/LibTmux/ClientAttachment.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ClientAttachment","product":"core","slug":"libtmux-clientattachment"},{"id":"LibTmux.ClientAttachment.Session","name":"Session","kind":"property","parent":"LibTmux.ClientAttachment","type":"Session?","modifiers":[],"signatures":[],"doc":{"summary":"The session the client is attached to."},"source":{"file":"src/LibTmux/ClientAttachment.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ClientAttachment.Session","product":"core","slug":"libtmux-clientattachment-session"},{"id":"LibTmux.ClientAttachment.Window","name":"Window","kind":"property","parent":"LibTmux.ClientAttachment","type":"Window?","modifiers":[],"signatures":[],"doc":{"summary":"The window that session is showing."},"source":{"file":"src/LibTmux/ClientAttachment.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ClientAttachment.Window","product":"core","slug":"libtmux-clientattachment-window"},{"id":"LibTmux.ClientAttachment.Pane","name":"Pane","kind":"property","parent":"LibTmux.ClientAttachment","type":"Pane?","modifiers":[],"signatures":[],"doc":{"summary":"The pane that window has active."},"source":{"file":"src/LibTmux/ClientAttachment.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ClientAttachment.Pane","product":"core","slug":"libtmux-clientattachment-pane"},{"id":"LibTmux.ServerGeneration","name":"ServerGeneration","kind":"struct","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Identifies one tmux daemon generation."},"source":{"file":"src/LibTmux/Connection/ServerGeneration.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerGeneration","product":"core","slug":"libtmux-servergeneration"},{"id":"LibTmux.ServerGeneration.ServerGeneration","name":"ServerGeneration","kind":"method","modifiers":[],"parent":"LibTmux.ServerGeneration","signatures":[{"params":[{"name":"processId","type":"int"},{"name":"startTime","type":"long"}]}],"doc":{"summary":"Initializes a server generation."},"source":{"file":"src/LibTmux/Connection/ServerGeneration.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerGeneration.ServerGeneration","product":"core","slug":"libtmux-servergeneration-servergeneration"},{"id":"LibTmux.ServerGeneration.ProcessId","name":"ProcessId","kind":"property","modifiers":[],"parent":"LibTmux.ServerGeneration","signatures":[],"type":"int","doc":{"summary":"Gets the tmux daemon process identifier."},"source":{"file":"src/LibTmux/Connection/ServerGeneration.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerGeneration.ProcessId","product":"core","slug":"libtmux-servergeneration-processid"},{"id":"LibTmux.ServerGeneration.StartTime","name":"StartTime","kind":"property","modifiers":[],"parent":"LibTmux.ServerGeneration","signatures":[],"type":"long","doc":{"summary":"Gets the tmux daemon start time."},"source":{"file":"src/LibTmux/Connection/ServerGeneration.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerGeneration.StartTime","product":"core","slug":"libtmux-servergeneration-starttime"},{"id":"LibTmux.ServerGeneration.Parse","name":"Parse","kind":"method","modifiers":["static"],"parent":"LibTmux.ServerGeneration","signatures":[{"params":[{"name":"text","type":"string","doc":"The text tmux reported."}],"returns":"ServerGeneration","returnsDoc":"The parsed generation.","raises":[{"type":"TmuxProtocolException","doc":" is not a colon-separated pair of positive\nintegers."}]}],"doc":{"summary":"Parses a generation reported in ."},"source":{"file":"src/LibTmux/Connection/ServerGeneration.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerGeneration.Parse","product":"core","slug":"libtmux-servergeneration-parse"},{"id":"LibTmux.ServerConnectionOptions","name":"ServerConnectionOptions","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Configures a tmux server connection without mutating process-wide state.","body":"Every option is set through an initializer. A constructor parameter binds\nat the call site when it compiles, so adding one would break an assembly\nalready built against the old signature - and this is the type most likely\nto grow one."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions","product":"core","slug":"libtmux-serverconnectionoptions"},{"id":"LibTmux.ServerConnectionOptions.TmuxBinaryPath","name":"TmuxBinaryPath","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"string","doc":{"summary":"Gets the tmux executable path."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.TmuxBinaryPath","product":"core","slug":"libtmux-serverconnectionoptions-tmuxbinarypath"},{"id":"LibTmux.ServerConnectionOptions.SocketName","name":"SocketName","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"string?","doc":{"summary":"Gets the explicit socket name."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.SocketName","product":"core","slug":"libtmux-serverconnectionoptions-socketname"},{"id":"LibTmux.ServerConnectionOptions.SocketPath","name":"SocketPath","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"string?","doc":{"summary":"Gets the explicit socket path."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":86,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.SocketPath","product":"core","slug":"libtmux-serverconnectionoptions-socketpath"},{"id":"LibTmux.ServerConnectionOptions.SocketNameFactory","name":"SocketNameFactory","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"Func?","doc":{"summary":"Gets the deferred socket-name factory."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":101,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.SocketNameFactory","product":"core","slug":"libtmux-serverconnectionoptions-socketnamefactory"},{"id":"LibTmux.ServerConnectionOptions.ConfigurationFile","name":"ConfigurationFile","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"string?","doc":{"summary":"Gets the tmux configuration file."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":105,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.ConfigurationFile","product":"core","slug":"libtmux-serverconnectionoptions-configurationfile"},{"id":"LibTmux.ServerConnectionOptions.ColorMode","name":"ColorMode","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"TmuxColorMode","doc":{"summary":"Gets the requested tmux color mode."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":121,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.ColorMode","product":"core","slug":"libtmux-serverconnectionoptions-colormode"},{"id":"LibTmux.ServerConnectionOptions.InitializeAsync","name":"InitializeAsync","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"Func?","doc":{"summary":"Gets the post-connect initializer."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":136,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.InitializeAsync","product":"core","slug":"libtmux-serverconnectionoptions-initializeasync"},{"id":"LibTmux.ServerConnectionOptions.ChildEnvironment","name":"ChildEnvironment","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"IReadOnlyDictionary?","doc":{"summary":"Gets the child-process environment overrides."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":142,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.ChildEnvironment","product":"core","slug":"libtmux-serverconnectionoptions-childenvironment"},{"id":"LibTmux.ServerConnectionOptions.Logger","name":"Logger","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"ILogger?","doc":{"summary":"Gets the connection logger."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":149,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.Logger","product":"core","slug":"libtmux-serverconnectionoptions-logger"},{"id":"LibTmux.ServerConnectionOptions.CommandTimeout","name":"CommandTimeout","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"TimeSpan?","doc":{"summary":"Gets how long one tmux command may run, or null to wait indefinitely.","body":"A tmux that stops answering otherwise hangs the caller until its own\ncancellation token fires, and forever if it passed none. On expiry the\ncommand throws whose\n is\n: tmux may already have acted.\nA caller's own cancellation still wins, and reads as cancellation.\nConnecting is bounded by it too: reading the version and the server's\ngeneration are tmux commands like any other. A wait-for that waits\nfor a signal or a lock is not: it waits for another client by design."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":164,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.CommandTimeout","product":"core","slug":"libtmux-serverconnectionoptions-commandtimeout"},{"id":"LibTmux.ServerConnectionOptions.MaxCapturedBytesPerStream","name":"MaxCapturedBytesPerStream","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"int?","doc":{"summary":"Gets the largest output one command may capture, in bytes.","body":"Defaults to 64 MiB. A command whose output passes it fails rather than\ngrowing without bound, so a service that runs many captures at once can\nbound what one of them costs. Raise it for a capture that legitimately\nneeds more."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":189,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.MaxCapturedBytesPerStream","product":"core","slug":"libtmux-serverconnectionoptions-maxcapturedbytesperstream"},{"id":"LibTmux.ServerConnectionOptions.ControlModeEventBufferCapacity","name":"ControlModeEventBufferCapacity","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"int?","doc":{"summary":"Gets how many control-mode events are buffered before pane output is dropped.","body":"Defaults to 512. A consumer slower than its panes loses the oldest output\nof the pane with the most waiting, and is told so by\n; the pane is then paused for that\nclient until the consumer catches up. Raising this buys time rather than\nmemory without bound."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":215,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.ControlModeEventBufferCapacity","product":"core","slug":"libtmux-serverconnectionoptions-controlmodeeventbuffercapacity"},{"id":"LibTmux.ServerConnectionOptions.ControlModeEventBufferMaxBytes","name":"ControlModeEventBufferMaxBytes","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"int?","doc":{"summary":"Gets the UTF-8 payload byte ceiling for buffered control-mode notifications.","body":"Defaults to 4 MiB. This counts decoded output, notification names and\narguments, and exit reasons; object overhead is bounded separately by\n. Oldest events are discarded\nuntil both limits hold. An event larger than the byte ceiling is dropped.\nAn oversized exit reason is omitted while the terminal event is retained.\nEvery discard is reported by ."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":242,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.ControlModeEventBufferMaxBytes","product":"core","slug":"libtmux-serverconnectionoptions-controlmodeeventbuffermaxbytes"},{"id":"LibTmux.ServerConnectionOptions.Interceptor","name":"Interceptor","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"TmuxInterceptor?","doc":{"summary":"Gets what every tmux invocation on this connection passes through, or null.","body":"It sees each tmux client the connection starts to run a command:\nsingle commands, chains, and the version probe and server discovery a\nconnection makes first. A control-mode client is one long-lived process\nand does not pass through it.\n\nIt sees what tmux is asked, which is more than was requested for a\ncommand against a pane, window, session, or one of their tables: two\ncommands in front check that the server is still the one the handle was\nread from. An answer made in tmux's place has to start with that\nserver's generation line.\n\nA command runs its interceptor inside and\nthe command's span, so a retry shares both. The version probe and the\ndiscovery a connection makes first are bounded by the same timeout but\nare not recorded as commands. An exception the interceptor throws\nreaches the caller unchanged. Running a command again repeats whatever\nit did; on a failure says\nwhether tmux may already have acted."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":283,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.Interceptor","product":"core","slug":"libtmux-serverconnectionoptions-interceptor"},{"id":"LibTmux.ServerConnectionOptions.Default","name":"Default","kind":"property","modifiers":["static"],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"ServerConnectionOptions","doc":{"summary":"Gets conventional connection defaults."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":320,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.Default","product":"core","slug":"libtmux-serverconnectionoptions-default"},{"id":"LibTmux.LibTmuxInfo","name":"LibTmuxInfo","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Reports package identity and supported tmux range."},"source":{"file":"src/LibTmux/Constants/TmuxConstants.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LibTmuxInfo","product":"core","slug":"libtmux-libtmuxinfo"},{"id":"LibTmux.LibTmuxInfo.Version","name":"Version","kind":"property","modifiers":["static"],"parent":"LibTmux.LibTmuxInfo","signatures":[],"type":"Version","doc":{"summary":"Gets the library assembly version."},"source":{"file":"src/LibTmux/Constants/TmuxConstants.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LibTmuxInfo.Version","product":"core","slug":"libtmux-libtmuxinfo-version"},{"id":"LibTmux.LibTmuxInfo.MinimumTmuxVersion","name":"MinimumTmuxVersion","kind":"property","modifiers":["static"],"parent":"LibTmux.LibTmuxInfo","signatures":[],"type":"TmuxVersion","doc":{"summary":"Gets the minimum supported tmux version."},"source":{"file":"src/LibTmux/Constants/TmuxConstants.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LibTmuxInfo.MinimumTmuxVersion","product":"core","slug":"libtmux-libtmuxinfo-minimumtmuxversion"},{"id":"LibTmux.LibTmuxInfo.MaximumTestedTmuxVersion","name":"MaximumTestedTmuxVersion","kind":"property","modifiers":["static"],"parent":"LibTmux.LibTmuxInfo","signatures":[],"type":"TmuxVersion","doc":{"summary":"Gets the highest required tested tmux version."},"source":{"file":"src/LibTmux/Constants/TmuxConstants.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LibTmuxInfo.MaximumTestedTmuxVersion","product":"core","slug":"libtmux-libtmuxinfo-maximumtestedtmuxversion"},{"id":"LibTmux.OptionScope","name":"OptionScope","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Defines tmux option scopes."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OptionScope","product":"core","slug":"libtmux-optionscope"},{"id":"LibTmux.OptionScope.Server","name":"Server","kind":"constant","modifiers":[],"parent":"LibTmux.OptionScope","signatures":[],"doc":{"summary":"Uses server scope."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OptionScope.Server","product":"core","slug":"libtmux-optionscope-server"},{"id":"LibTmux.OptionScope.Session","name":"Session","kind":"constant","modifiers":[],"parent":"LibTmux.OptionScope","signatures":[],"doc":{"summary":"Uses session scope."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OptionScope.Session","product":"core","slug":"libtmux-optionscope-session"},{"id":"LibTmux.OptionScope.Window","name":"Window","kind":"constant","modifiers":[],"parent":"LibTmux.OptionScope","signatures":[],"doc":{"summary":"Uses window scope."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OptionScope.Window","product":"core","slug":"libtmux-optionscope-window"},{"id":"LibTmux.OptionScope.Pane","name":"Pane","kind":"constant","modifiers":[],"parent":"LibTmux.OptionScope","signatures":[],"doc":{"summary":"Uses pane scope."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OptionScope.Pane","product":"core","slug":"libtmux-optionscope-pane"},{"id":"LibTmux.PaneDirection","name":"PaneDirection","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Defines pane placement directions."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneDirection","product":"core","slug":"libtmux-panedirection"},{"id":"LibTmux.PaneDirection.Above","name":"Above","kind":"constant","modifiers":[],"parent":"LibTmux.PaneDirection","signatures":[],"doc":{"summary":"Places the pane above."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneDirection.Above","product":"core","slug":"libtmux-panedirection-above"},{"id":"LibTmux.PaneDirection.Below","name":"Below","kind":"constant","modifiers":[],"parent":"LibTmux.PaneDirection","signatures":[],"doc":{"summary":"Places the pane below."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneDirection.Below","product":"core","slug":"libtmux-panedirection-below"},{"id":"LibTmux.PaneDirection.Left","name":"Left","kind":"constant","modifiers":[],"parent":"LibTmux.PaneDirection","signatures":[],"doc":{"summary":"Places the pane to the left."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneDirection.Left","product":"core","slug":"libtmux-panedirection-left"},{"id":"LibTmux.PaneDirection.Right","name":"Right","kind":"constant","modifiers":[],"parent":"LibTmux.PaneDirection","signatures":[],"doc":{"summary":"Places the pane to the right."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneDirection.Right","product":"core","slug":"libtmux-panedirection-right"},{"id":"LibTmux.ResizeDirection","name":"ResizeDirection","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Defines pane resize directions."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeDirection","product":"core","slug":"libtmux-resizedirection"},{"id":"LibTmux.ResizeDirection.Up","name":"Up","kind":"constant","modifiers":[],"parent":"LibTmux.ResizeDirection","signatures":[],"doc":{"summary":"Resizes upward."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeDirection.Up","product":"core","slug":"libtmux-resizedirection-up"},{"id":"LibTmux.ResizeDirection.Down","name":"Down","kind":"constant","modifiers":[],"parent":"LibTmux.ResizeDirection","signatures":[],"doc":{"summary":"Resizes downward."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeDirection.Down","product":"core","slug":"libtmux-resizedirection-down"},{"id":"LibTmux.ResizeDirection.Left","name":"Left","kind":"constant","modifiers":[],"parent":"LibTmux.ResizeDirection","signatures":[],"doc":{"summary":"Resizes leftward."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeDirection.Left","product":"core","slug":"libtmux-resizedirection-left"},{"id":"LibTmux.ResizeDirection.Right","name":"Right","kind":"constant","modifiers":[],"parent":"LibTmux.ResizeDirection","signatures":[],"doc":{"summary":"Resizes rightward."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeDirection.Right","product":"core","slug":"libtmux-resizedirection-right"},{"id":"LibTmux.WindowDirection","name":"WindowDirection","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Defines relative window placement."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowDirection","product":"core","slug":"libtmux-windowdirection"},{"id":"LibTmux.WindowDirection.Before","name":"Before","kind":"constant","modifiers":[],"parent":"LibTmux.WindowDirection","signatures":[],"doc":{"summary":"Places the window before the target."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowDirection.Before","product":"core","slug":"libtmux-windowdirection-before"},{"id":"LibTmux.WindowDirection.After","name":"After","kind":"constant","modifiers":[],"parent":"LibTmux.WindowDirection","signatures":[],"doc":{"summary":"Places the window after the target."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowDirection.After","product":"core","slug":"libtmux-windowdirection-after"},{"id":"LibTmux.ControlModeSubscriptions","name":"ControlModeSubscriptions","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Subscribes a control client to a format changing.","body":"tmux answers refresh-client -B with %subscription-changed\nwhenever the named format's value changes. There is no typed surface for\nbuilding that command otherwise, so a caller renders it by hand - and\ntmux 3.8 tightened session-scoped targets: the session id form that fired\non every earlier release (name:$0:format) silently stops firing,\nwith no error, while an empty session field (name::format) fires\non every released version. This always renders the empty form, so a\nsession-scoped subscription is never reachable the wrong way."},"source":{"file":"src/LibTmux/ControlMode/ControlModeSubscriptions.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ControlModeSubscriptions","product":"core","slug":"libtmux-controlmodesubscriptions"},{"id":"LibTmux.ControlModeSubscriptions.SubscribeSessionAsync","name":"SubscribeSessionAsync","kind":"method","modifiers":["static"],"parent":"LibTmux.ControlModeSubscriptions","signatures":[{"params":[{"name":"session","type":"IControlModeSession","doc":"The control client to subscribe on."},{"name":"name","type":"string","doc":"The subscription's name, echoed back as the first word of a\n%subscription-changed notification for it."},{"name":"format","type":"string","doc":"The tmux format to watch, without #{}."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The lines tmux printed answering the subscribe command."}],"doc":{"summary":"Subscribes to a session-scoped format changing."},"source":{"file":"src/LibTmux/ControlMode/ControlModeSubscriptions.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ControlModeSubscriptions.SubscribeSessionAsync","product":"core","slug":"libtmux-controlmodesubscriptions-subscribesessionasync"},{"id":"LibTmux.IControlModeSession","name":"IControlModeSession","kind":"interface","modifiers":[],"signatures":[],"doc":{"summary":"A live tmux control client.","body":"One-shot commands start a tmux client, run one thing, and exit. A control\nsession keeps one client for as long as it is held, which is what makes\ntmux willing to report what happens while nobody asked: pane output, windows\nappearing, sessions changing.\n\nDisposing ends the client. Everything a caller reads comes through\n, which completes after a normal exit and faults after\nbuffered events when the control stream fails."},"source":{"file":"src/LibTmux/ControlMode/IControlModeSession.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IControlModeSession","product":"core","slug":"libtmux-icontrolmodesession"},{"id":"LibTmux.IControlModeSession.Events","name":"Events","kind":"property","modifiers":[],"parent":"LibTmux.IControlModeSession","signatures":[],"type":"IAsyncEnumerable","doc":{"summary":"Reads what tmux reports for as long as the client runs.","body":"The sequence completes after on a normal\nexit and faults after buffered events when the control stream fails.\nReading takes what it reads, so a later enumeration reads only what has\nnot already been taken, and one started while another is still reading\nthrows . A slow reader receives\n instead of silently missing data\nwhen the bounded buffer overflows. Pane output is discarded before any\nnotification, and a pane whose output was discarded is paused until the\nreader catches up, between and\n."},"source":{"file":"src/LibTmux/ControlMode/IControlModeSession.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IControlModeSession.Events","product":"core","slug":"libtmux-icontrolmodesession-events"},{"id":"LibTmux.IControlModeSession.IsRunning","name":"IsRunning","kind":"property","modifiers":[],"parent":"LibTmux.IControlModeSession","signatures":[],"type":"bool","doc":{"summary":"Gets whether the client is still running."},"source":{"file":"src/LibTmux/ControlMode/IControlModeSession.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IControlModeSession.IsRunning","product":"core","slug":"libtmux-icontrolmodesession-isrunning"},{"id":"LibTmux.IControlModeSession.SendAsync","name":"SendAsync","kind":"method","modifiers":[],"parent":"LibTmux.IControlModeSession","signatures":[{"params":[{"name":"command","type":"TmuxCommand","doc":"The typed command to run."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops waiting for the answer."}],"returns":"Task>","returnsDoc":"The lines tmux printed, empty when it printed nothing.","raises":[{"type":"ControlModeCommandException","doc":"Tmux reported the command failed."},{"type":"ArgumentException","doc":"The rendered command is too large for one bounded request."},{"type":"StaleServerGenerationException","doc":"The command targets a different tmux server generation."},{"type":"NotSupportedException","doc":"The command is a run-shell or run invocation without an\nunambiguous direct background shell option."},{"type":"InvalidOperationException","doc":"The client is no longer running or has too many unanswered commands."}]}],"doc":{"summary":"Runs one command on this client and reads what it answered.","body":"tmux answers commands in the order it received them, so this is safe to\ncall concurrently: each caller gets its own answer rather than someone\nelse's. Cancelling stops the wait, not the command; tmux has already\nbeen told. Foreground run-shell, its tmux command-name prefixes,\nand run are rejected before dispatch because their output is not\nframed as a command reply. Only direct background shell invocations are\naccepted. Use to read shell text where\ntmux returns it. A nonzero shell exit raises ;\n carries its exit status."},"source":{"file":"src/LibTmux/ControlMode/IControlModeSession.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IControlModeSession.SendAsync","product":"core","slug":"libtmux-icontrolmodesession-sendasync"},{"id":"LibTmux.TmuxPaneGoneEvent","name":"TmuxPaneGoneEvent","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record TmuxPaneGoneEvent(PaneId PaneId) : TmuxEvent;","params":[{"name":"PaneId","type":"PaneId","doc":"The pane that is gone."}]}],"doc":{"summary":"The pane a stream was watching left its window's arrangement.","body":"tmux's control protocol has no notification naming a killed pane\nspecifically, only a general %layout-change or window-close for the\nwindow it was in. This is synthesized by \nonce it confirms, by asking tmux directly, that the watched pane no longer\nresolves - after output buffered by a watermark-backed control session has\nbeen delivered."},"source":{"file":"src/LibTmux/ControlMode/PaneObservation.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxPaneGoneEvent","product":"core","slug":"libtmux-tmuxpanegoneevent"},{"id":"LibTmux.TmuxPaneGoneEvent.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.TmuxPaneGoneEvent","type":"PaneId","modifiers":[],"signatures":[],"doc":{"summary":"The pane that is gone."},"source":{"file":"src/LibTmux/ControlMode/PaneObservation.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxPaneGoneEvent.PaneId","product":"core","slug":"libtmux-tmuxpanegoneevent-paneid"},{"id":"LibTmux.PaneObservation","name":"PaneObservation","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Narrows a control client's event stream to some panes, and ends it cleanly.","body":"A killed pane's session and window usually survive it, so the general\nevent stream just keeps running - the closest thing tmux sends is a\n%layout-change for the window the pane left. Watching panes\nthrough this instead answers \"is the pane I care about still there\" as a\ntyped, terminal event rather than leaving a caller to infer it from a\nnotification shaped like any other."},"source":{"file":"src/LibTmux/ControlMode/PaneObservation.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneObservation","product":"core","slug":"libtmux-paneobservation"},{"id":"LibTmux.PaneObservation.WatchAsync","name":"WatchAsync","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.PaneObservation","signatures":[{"params":[{"name":"session","type":"IControlModeSession","doc":"The control client to watch through."},{"name":"pane","type":"Pane","doc":"The pane to watch."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops watching."}],"returns":"IAsyncEnumerable","returnsDoc":"The pane's own output, with and\n around output a slow reader missed,\nending with when the\ncontrol client itself ended, or with \nonce the pane is confirmed gone. Loss reports require resynchronization;\nbuffered output precedes pane termination for watermark-backed control\nsessions. The client remains borrowed.","raises":[{"type":"ArgumentException","doc":"When reading starts, the pane is in a session other than the one the\nclient is attached to; tmux sends a control client output only from its\nown session."},{"type":"InvalidOperationException","doc":"While reading, the pane's window left the client's session, or the\nclient moved to another session, so tmux sends none of its output any\nmore. tmux announces no change when swap-window trades the\nwindow with another session's, so that move leaves the watch silent."},{"type":"NotSupportedException","doc":"A control session without an event watermark cannot establish which\noutput was buffered before pane termination. Its watch fails when the\npane is confirmed gone, without consuming another event."}]},{"params":[{"name":"session","type":"IControlModeSession","doc":"The control client to watch through."},{"name":"panes","type":"IReadOnlyCollection","doc":"The panes to watch; at least one."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops watching."}],"returns":"IAsyncEnumerable","returnsDoc":"The panes' own output in the order tmux sent it, with\n and \naround output a slow reader missed. Each pane confirmed gone is reported\nby a after the output buffered before\nit went, unless the client ends first; panes found gone together are\nreported in the order given. The stream ends once every pane is gone,\nor with when the control client itself\nended. The client remains borrowed.","raises":[{"type":"ArgumentException","doc":" is empty, or, when reading starts, a pane is in\na session other than the one the client is attached to; tmux sends a\ncontrol client output only from its own session."},{"type":"InvalidOperationException","doc":"While reading, a pane's window left the client's session, or the client\nmoved to another session, so tmux sends none of its output any more.\ntmux announces no change when swap-window trades the window with\nanother session's, so that move leaves the watch silent."},{"type":"NotSupportedException","doc":"A control session without an event watermark cannot establish which\noutput was buffered before a pane ended. Its watch fails when a pane is\nconfirmed gone, without consuming another event."}]}],"doc":{"summary":"Watches one pane's output until it ends.","body":"tmux discards output it has not yet sent to a control client once the\npane's program exits, so the last lines of a program that exits at once\nmay never arrive. Read final output with\n, or\ncapture a pane kept with remain-on-exit."},"source":{"file":"src/LibTmux/ControlMode/PaneObservation.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneObservation.WatchAsync","product":"core","slug":"libtmux-paneobservation-watchasync"},{"id":"LibTmux.TmuxEvent","name":"TmuxEvent","kind":"class","modifiers":["abstract"],"signatures":[],"doc":{"summary":"One thing a tmux control client reported without being asked.","body":"tmux names a notification and then a version-dependent list of words after\nit. Modelling every name as its own type would freeze a set that moves\nbetween 3.2a and 3.7b, so the ones a caller reacts to are typed and the rest\narrive named but unparsed."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEvent","product":"core","slug":"libtmux-tmuxevent"},{"id":"LibTmux.TmuxOutputEvent","name":"TmuxOutputEvent","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record TmuxOutputEvent(PaneId PaneId, string Data) : TmuxEvent;","params":[{"name":"PaneId","type":"PaneId","doc":"The pane that produced the output."},{"name":"Data","type":"string","doc":"The text, with tmux's escaping already decoded. It is a fragment of a\nstream rather than a line: tmux sends whatever it has, so a single write by\nthe program in the pane can arrive split across events and one event can\ncarry several lines."}]}],"doc":{"summary":"Bytes a pane wrote."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOutputEvent","product":"core","slug":"libtmux-tmuxoutputevent"},{"id":"LibTmux.TmuxOutputEvent.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.TmuxOutputEvent","type":"PaneId","modifiers":[],"signatures":[],"doc":{"summary":"The pane that produced the output."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOutputEvent.PaneId","product":"core","slug":"libtmux-tmuxoutputevent-paneid"},{"id":"LibTmux.TmuxOutputEvent.Data","name":"Data","kind":"property","parent":"LibTmux.TmuxOutputEvent","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The text, with tmux's escaping already decoded. It is a fragment of a\nstream rather than a line: tmux sends whatever it has, so a single write by\nthe program in the pane can arrive split across events and one event can\ncarry several lines."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOutputEvent.Data","product":"core","slug":"libtmux-tmuxoutputevent-data"},{"id":"LibTmux.TmuxNotificationEvent","name":"TmuxNotificationEvent","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record TmuxNotificationEvent(\n string Name,\n IReadOnlyList Arguments) : TmuxEvent;","params":[{"name":"Name","type":"string","doc":"The notification name without its leading percent, such as window-add."},{"name":"Arguments","type":"IReadOnlyList","doc":"The words tmux printed after the name, unparsed."}]}],"doc":{"summary":"A notification this library does not parse further."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxNotificationEvent","product":"core","slug":"libtmux-tmuxnotificationevent"},{"id":"LibTmux.TmuxNotificationEvent.Name","name":"Name","kind":"property","parent":"LibTmux.TmuxNotificationEvent","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The notification name without its leading percent, such as window-add."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxNotificationEvent.Name","product":"core","slug":"libtmux-tmuxnotificationevent-name"},{"id":"LibTmux.TmuxNotificationEvent.Arguments","name":"Arguments","kind":"property","parent":"LibTmux.TmuxNotificationEvent","type":"IReadOnlyList","modifiers":[],"signatures":[],"doc":{"summary":"The words tmux printed after the name, unparsed."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxNotificationEvent.Arguments","product":"core","slug":"libtmux-tmuxnotificationevent-arguments"},{"id":"LibTmux.TmuxEventsDroppedEvent","name":"TmuxEventsDroppedEvent","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record TmuxEventsDroppedEvent(long Count, long TotalDropped) : TmuxEvent","params":[{"name":"Count","type":"long","doc":"The discarded events represented by this report."},{"name":"TotalDropped","type":"long","doc":"The cumulative events discarded by this client when the report was created."}]}],"doc":{"summary":"Reports notifications discarded because the bounded event buffer was full.","body":"A full buffer discards the oldest output of the pane with the most queued\nbytes under byte pressure, or events under count pressure. It discards\nnotifications only when no output is queued. An oversized event can produce\nloss by itself. Command replies use a separate queue."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEventsDroppedEvent","product":"core","slug":"libtmux-tmuxeventsdroppedevent"},{"id":"LibTmux.TmuxEventsDroppedEvent.OnlyOutput","name":"OnlyOutput","kind":"property","modifiers":[],"parent":"LibTmux.TmuxEventsDroppedEvent","signatures":[],"type":"bool","doc":{"summary":"Gets whether this report proves that only pane output was lost.","body":"A false value also covers uncertainty after the bounded loss history is compacted."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEventsDroppedEvent.OnlyOutput","product":"core","slug":"libtmux-tmuxeventsdroppedevent-onlyoutput"},{"id":"LibTmux.TmuxEventsDroppedEvent.Count","name":"Count","kind":"property","parent":"LibTmux.TmuxEventsDroppedEvent","type":"long","modifiers":[],"signatures":[],"doc":{"summary":"The discarded events represented by this report."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEventsDroppedEvent.Count","product":"core","slug":"libtmux-tmuxeventsdroppedevent-count"},{"id":"LibTmux.TmuxEventsDroppedEvent.TotalDropped","name":"TotalDropped","kind":"property","parent":"LibTmux.TmuxEventsDroppedEvent","type":"long","modifiers":[],"signatures":[],"doc":{"summary":"The cumulative events discarded by this client when the report was created."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEventsDroppedEvent.TotalDropped","product":"core","slug":"libtmux-tmuxeventsdroppedevent-totaldropped"},{"id":"LibTmux.TmuxPanePausedEvent","name":"TmuxPanePausedEvent","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record TmuxPanePausedEvent(PaneId PaneId) : TmuxEvent;","params":[{"name":"PaneId","type":"PaneId","doc":"The paused pane."}]}],"doc":{"summary":"tmux stopped sending a pane's output to this client.","body":"A control session pauses a pane whose output its full event buffer had to\ndiscard, so a flooding pane stops costing either side anything. Output the\npane prints while paused is never sent; capture the pane to read its\nscreen. The session resumes the pane once the reader catches up, and a\nreader that never reads leaves it paused. tmux's own %pause, from a\nclient with pause-after set, arrives as this event too."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxPanePausedEvent","product":"core","slug":"libtmux-tmuxpanepausedevent"},{"id":"LibTmux.TmuxPanePausedEvent.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.TmuxPanePausedEvent","type":"PaneId","modifiers":[],"signatures":[],"doc":{"summary":"The paused pane."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxPanePausedEvent.PaneId","product":"core","slug":"libtmux-tmuxpanepausedevent-paneid"},{"id":"LibTmux.TmuxPaneContinuedEvent","name":"TmuxPaneContinuedEvent","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record TmuxPaneContinuedEvent(PaneId PaneId) : TmuxEvent;","params":[{"name":"PaneId","type":"PaneId","doc":"The resumed pane."}]}],"doc":{"summary":"tmux resumed sending a pane's output to this client.","body":"Output resumes with what the pane prints next."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":60,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxPaneContinuedEvent","product":"core","slug":"libtmux-tmuxpanecontinuedevent"},{"id":"LibTmux.TmuxPaneContinuedEvent.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.TmuxPaneContinuedEvent","type":"PaneId","modifiers":[],"signatures":[],"doc":{"summary":"The resumed pane."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":60,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxPaneContinuedEvent.PaneId","product":"core","slug":"libtmux-tmuxpanecontinuedevent-paneid"},{"id":"LibTmux.TmuxExitEvent","name":"TmuxExitEvent","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record TmuxExitEvent(string? Reason) : TmuxEvent;","params":[{"name":"Reason","type":"string?","doc":"Why tmux said it ended, when it said anything. It is silent for an ordinary\nexit. For an abnormal one tmux sometimes names a reason and sometimes does\nnot: a server another client killed, for one, sends a bare %exit\nwith none. A null can also mean the reason exceeded\nthe event buffer's byte limit; a preceding dropped-event notice reports\nthat loss."}]}],"doc":{"summary":"The control client ended.","body":"This is always the last event, and the event stream completes after it."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxExitEvent","product":"core","slug":"libtmux-tmuxexitevent"},{"id":"LibTmux.TmuxExitEvent.Reason","name":"Reason","kind":"property","parent":"LibTmux.TmuxExitEvent","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"Why tmux said it ended, when it said anything. It is silent for an ordinary\nexit. For an abnormal one tmux sometimes names a reason and sometimes does\nnot: a server another client killed, for one, sends a bare %exit\nwith none. A null can also mean the reason exceeded\nthe event buffer's byte limit; a preceding dropped-event notice reports\nthat loss."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxExitEvent.Reason","product":"core","slug":"libtmux-tmuxexitevent-reason"},{"id":"LibTmux.TmuxDiagnostics","name":"TmuxDiagnostics","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Names the diagnostic sources this library publishes.","body":"Every tmux command a handle runs as its own tmux process is traced on the\nactivity source and measured on the meter named here. Commands sent through\na control client, including the reads a pane wait makes through one, are\nnot. Subscribing takes the name, not a reference, so a caller wires\nOpenTelemetry without this library referencing it:\nbuilder.AddSource(TmuxDiagnostics.ActivitySourceName) and\nbuilder.AddMeter(TmuxDiagnostics.MeterName)."},"source":{"file":"src/LibTmux/Diagnostics/TmuxDiagnostics.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxDiagnostics","product":"core","slug":"libtmux-tmuxdiagnostics"},{"id":"LibTmux.TmuxEnvironmentEntry","name":"TmuxEnvironmentEntry","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One variable in a tmux environment.","body":"tmux keeps three states, not two. A variable can hold a value, be absent, or\nbe marked removed, which tells tmux to strip it from the environment of\npanes it spawns even though the parent process has it."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironmentEntry","product":"core","slug":"libtmux-tmuxenvironmententry"},{"id":"LibTmux.TmuxEnvironmentEntry.TmuxEnvironmentEntry","name":"TmuxEnvironmentEntry","kind":"method","modifiers":[],"parent":"LibTmux.TmuxEnvironmentEntry","signatures":[{"params":[{"name":"name","type":"string","doc":"The variable name."},{"name":"value","type":"string?","doc":"The value, or null when the variable is marked removed."},{"name":"isRemoved","type":"bool","doc":"Whether tmux strips this variable from new panes."}]}],"doc":{"summary":"Initializes one environment variable."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironmentEntry.TmuxEnvironmentEntry","product":"core","slug":"libtmux-tmuxenvironmententry-tmuxenvironmententry"},{"id":"LibTmux.TmuxEnvironmentEntry.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.TmuxEnvironmentEntry","signatures":[],"type":"string","doc":{"summary":"Gets the variable name."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironmentEntry.Name","product":"core","slug":"libtmux-tmuxenvironmententry-name"},{"id":"LibTmux.TmuxEnvironmentEntry.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.TmuxEnvironmentEntry","signatures":[],"type":"string?","doc":{"summary":"Gets the value, or null when the variable is marked removed."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironmentEntry.Value","product":"core","slug":"libtmux-tmuxenvironmententry-value"},{"id":"LibTmux.TmuxEnvironmentEntry.IsRemoved","name":"IsRemoved","kind":"property","modifiers":[],"parent":"LibTmux.TmuxEnvironmentEntry","signatures":[],"type":"bool","doc":{"summary":"Gets whether tmux strips this variable from new panes."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironmentEntry.IsRemoved","product":"core","slug":"libtmux-tmuxenvironmententry-isremoved"},{"id":"LibTmux.TmuxEnvironment","name":"TmuxEnvironment","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"The environment tmux gives to the processes it spawns.","body":"A server has one environment and each session another. Which one a new pane\ninherits depends on where it is created, so the two are reached separately\nrather than merged."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironment","product":"core","slug":"libtmux-tmuxenvironment"},{"id":"LibTmux.TmuxEnvironment.GetAllAsync","name":"GetAllAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxEnvironment","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"Every variable tmux reported, in the order it reported them."}],"doc":{"summary":"Reads every variable in this environment.","body":"Hidden variables are omitted. tmux can use them in formats, but excludes\nthem from the environment of new processes."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironment.GetAllAsync","product":"core","slug":"libtmux-tmuxenvironment-getallasync"},{"id":"LibTmux.TmuxEnvironment.GetAsync","name":"GetAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxEnvironment","signatures":[{"params":[{"name":"name","type":"string","doc":"The variable name."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The variable, or null when this environment has no such name."}],"doc":{"summary":"Reads one variable."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":86,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironment.GetAsync","product":"core","slug":"libtmux-tmuxenvironment-getasync"},{"id":"LibTmux.TmuxEnvironment.SetAsync","name":"SetAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxEnvironment","signatures":[{"params":[{"name":"name","type":"string","doc":"The variable name."},{"name":"value","type":"string","doc":"The value to give it."},{"name":"expandFormats","type":"bool","default":"false","doc":"Whether tmux expands the value as a format first."},{"name":"hidden","type":"bool","default":"false","doc":"Whether the value is kept but not reported back."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The variable as tmux holds it afterwards."}],"doc":{"summary":"Sets one variable."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":118,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironment.SetAsync","product":"core","slug":"libtmux-tmuxenvironment-setasync"},{"id":"LibTmux.TmuxEnvironment.RemoveAsync","name":"RemoveAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxEnvironment","signatures":[{"params":[{"name":"name","type":"string","doc":"The variable name."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Marks a variable removed for the panes tmux spawns.","body":"This is not the same as unsetting. tmux remembers the removal so that a\npane it spawns does not inherit the variable from its own parent."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":167,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironment.RemoveAsync","product":"core","slug":"libtmux-tmuxenvironment-removeasync"},{"id":"LibTmux.TmuxEnvironment.UnsetAsync","name":"UnsetAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxEnvironment","signatures":[{"params":[{"name":"name","type":"string","doc":"The variable name."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Forgets a variable entirely."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":182,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironment.UnsetAsync","product":"core","slug":"libtmux-tmuxenvironment-unsetasync"},{"id":"LibTmux.ControlModeCommandException","name":"ControlModeCommandException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports a command rejected by a live tmux control client."},"source":{"file":"src/LibTmux/Exceptions/ControlModeCommandException.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ControlModeCommandException","product":"core","slug":"libtmux-controlmodecommandexception"},{"id":"LibTmux.ControlModeCommandException.ControlModeCommandException","name":"ControlModeCommandException","kind":"method","modifiers":[],"parent":"LibTmux.ControlModeCommandException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"command","type":"TmuxCommand"},{"name":"outputLines","type":"IReadOnlyList"},{"name":"errorLines","type":"IReadOnlyList"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes a control-mode command exception."},"source":{"file":"src/LibTmux/Exceptions/ControlModeCommandException.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ControlModeCommandException.ControlModeCommandException","product":"core","slug":"libtmux-controlmodecommandexception-controlmodecommandexception"},{"id":"LibTmux.ControlModeCommandException.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.ControlModeCommandException","signatures":[],"type":"TmuxCommand","doc":{"summary":"Gets the command tmux rejected."},"source":{"file":"src/LibTmux/Exceptions/ControlModeCommandException.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ControlModeCommandException.Command","product":"core","slug":"libtmux-controlmodecommandexception-command"},{"id":"LibTmux.ControlModeCommandException.OutputLines","name":"OutputLines","kind":"property","modifiers":[],"parent":"LibTmux.ControlModeCommandException","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets output produced before tmux rejected the command."},"source":{"file":"src/LibTmux/Exceptions/ControlModeCommandException.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ControlModeCommandException.OutputLines","product":"core","slug":"libtmux-controlmodecommandexception-outputlines"},{"id":"LibTmux.ControlModeCommandException.ErrorLines","name":"ErrorLines","kind":"property","modifiers":[],"parent":"LibTmux.ControlModeCommandException","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the error lines tmux reported."},"source":{"file":"src/LibTmux/Exceptions/ControlModeCommandException.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ControlModeCommandException.ErrorLines","product":"core","slug":"libtmux-controlmodecommandexception-errorlines"},{"id":"LibTmux.IncompleteSnapshotException","name":"IncompleteSnapshotException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Thrown when a snapshot never captured the requested relation."},"source":{"file":"src/LibTmux/Exceptions/IncompleteSnapshotException.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IncompleteSnapshotException","product":"core","slug":"libtmux-incompletesnapshotexception"},{"id":"LibTmux.IncompleteSnapshotException.IncompleteSnapshotException","name":"IncompleteSnapshotException","kind":"method","modifiers":[],"parent":"LibTmux.IncompleteSnapshotException","signatures":[{"params":[{"name":"relation","type":"string","doc":"The relation that was not captured."},{"name":"capturedDepth","type":"SnapshotDepth","doc":"The depth the snapshot reached."}]}],"doc":{"summary":"Initializes the exception for one uncaptured relation."},"source":{"file":"src/LibTmux/Exceptions/IncompleteSnapshotException.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IncompleteSnapshotException.IncompleteSnapshotException","product":"core","slug":"libtmux-incompletesnapshotexception-incompletesnapshotexception"},{"id":"LibTmux.IncompleteSnapshotException.Relation","name":"Relation","kind":"property","modifiers":[],"parent":"LibTmux.IncompleteSnapshotException","signatures":[],"type":"string","doc":{"summary":"Gets the relation the caller asked for."},"source":{"file":"src/LibTmux/Exceptions/IncompleteSnapshotException.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IncompleteSnapshotException.Relation","product":"core","slug":"libtmux-incompletesnapshotexception-relation"},{"id":"LibTmux.IncompleteSnapshotException.CapturedDepth","name":"CapturedDepth","kind":"property","modifiers":[],"parent":"LibTmux.IncompleteSnapshotException","signatures":[],"type":"SnapshotDepth","doc":{"summary":"Gets the depth the snapshot actually reached."},"source":{"file":"src/LibTmux/Exceptions/IncompleteSnapshotException.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IncompleteSnapshotException.CapturedDepth","product":"core","slug":"libtmux-incompletesnapshotexception-captureddepth"},{"id":"LibTmux.InconsistentSnapshotException","name":"InconsistentSnapshotException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports contradictory topology in completed snapshot reads."},"source":{"file":"src/LibTmux/Exceptions/InconsistentSnapshotException.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.InconsistentSnapshotException","product":"core","slug":"libtmux-inconsistentsnapshotexception"},{"id":"LibTmux.InconsistentSnapshotException.InconsistentSnapshotException","name":"InconsistentSnapshotException","kind":"method","modifiers":[],"parent":"LibTmux.InconsistentSnapshotException","signatures":[{"params":[{"name":"message","type":"string","doc":"The observed parent, placement, or count contradiction."},{"name":"requestedDepth","type":"SnapshotDepth","doc":"The depth requested by the caller."},{"name":"generation","type":"ServerGeneration","doc":"The daemon generation that answered the reads."}]}],"doc":{"summary":"Initializes a failure for one unsuccessful hierarchy acquisition."},"source":{"file":"src/LibTmux/Exceptions/InconsistentSnapshotException.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.InconsistentSnapshotException.InconsistentSnapshotException","product":"core","slug":"libtmux-inconsistentsnapshotexception-inconsistentsnapshotexception"},{"id":"LibTmux.InconsistentSnapshotException.RequestedDepth","name":"RequestedDepth","kind":"property","modifiers":[],"parent":"LibTmux.InconsistentSnapshotException","signatures":[],"type":"SnapshotDepth","doc":{"summary":"Gets the depth requested by the unsuccessful acquisition."},"source":{"file":"src/LibTmux/Exceptions/InconsistentSnapshotException.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.InconsistentSnapshotException.RequestedDepth","product":"core","slug":"libtmux-inconsistentsnapshotexception-requesteddepth"},{"id":"LibTmux.InconsistentSnapshotException.Generation","name":"Generation","kind":"property","modifiers":[],"parent":"LibTmux.InconsistentSnapshotException","signatures":[],"type":"ServerGeneration","doc":{"summary":"Gets the daemon generation that answered the completed reads."},"source":{"file":"src/LibTmux/Exceptions/InconsistentSnapshotException.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.InconsistentSnapshotException.Generation","product":"core","slug":"libtmux-inconsistentsnapshotexception-generation"},{"id":"LibTmux.LibTmuxException","name":"LibTmuxException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Provides the base exception for remote tmux failures.","body":"Every failure carries a state, so the question a\ncaller asks in a catch block — is it safe to run this again? — is answered\non the exception rather than inferred from its type.","examples":[{"lang":"csharp","code":"catch (LibTmuxException error) when (error.Dispatch == TmuxDispatchState.NotDispatched)\n{\n // tmux never saw it, so sending it again repeats nothing.\n}"}]},"source":{"file":"src/LibTmux/Exceptions/LibTmuxException.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LibTmuxException","product":"core","slug":"libtmux-libtmuxexception"},{"id":"LibTmux.LibTmuxException.LibTmuxException","name":"LibTmuxException","kind":"method","modifiers":["overload"],"parent":"LibTmux.LibTmuxException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"innerException","type":"Exception?","default":"null"}]},{"params":[{"name":"message","type":"string"},{"name":"dispatch","type":"TmuxDispatchState"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes a LibTmux exception whose dispatch state is unknown."},"source":{"file":"src/LibTmux/Exceptions/LibTmuxException.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LibTmuxException.LibTmuxException","product":"core","slug":"libtmux-libtmuxexception-libtmuxexception"},{"id":"LibTmux.LibTmuxException.Dispatch","name":"Dispatch","kind":"property","modifiers":[],"parent":"LibTmux.LibTmuxException","signatures":[],"type":"TmuxDispatchState","doc":{"summary":"Gets whether the command reached tmux, and so whether a retry is safe.","body":"Defaults to , which is the state\nthat does not invite an unsafe retry. A failure only claims\n where the code can see\nthat tmux was never started."},"source":{"file":"src/LibTmux/Exceptions/LibTmuxException.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LibTmuxException.Dispatch","product":"core","slug":"libtmux-libtmuxexception-dispatch"},{"id":"LibTmux.StaleServerGenerationException","name":"StaleServerGenerationException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports a stale server generation."},"source":{"file":"src/LibTmux/Exceptions/StaleServerGenerationException.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.StaleServerGenerationException","product":"core","slug":"libtmux-staleservergenerationexception"},{"id":"LibTmux.StaleServerGenerationException.StaleServerGenerationException","name":"StaleServerGenerationException","kind":"method","modifiers":["overload"],"parent":"LibTmux.StaleServerGenerationException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"expected","type":"ServerGeneration"},{"name":"innerException","type":"Exception?","default":"null"}]},{"params":[{"name":"message","type":"string"},{"name":"expected","type":"ServerGeneration"},{"name":"actual","type":"ServerGeneration"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes a stale-generation exception when the replacement is unknown."},"source":{"file":"src/LibTmux/Exceptions/StaleServerGenerationException.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.StaleServerGenerationException.StaleServerGenerationException","product":"core","slug":"libtmux-staleservergenerationexception-staleservergenerationexception"},{"id":"LibTmux.StaleServerGenerationException.Expected","name":"Expected","kind":"property","modifiers":[],"parent":"LibTmux.StaleServerGenerationException","signatures":[],"type":"ServerGeneration","doc":{"summary":"Gets the generation expected by the stale handle."},"source":{"file":"src/LibTmux/Exceptions/StaleServerGenerationException.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.StaleServerGenerationException.Expected","product":"core","slug":"libtmux-staleservergenerationexception-expected"},{"id":"LibTmux.StaleServerGenerationException.Actual","name":"Actual","kind":"property","modifiers":[],"parent":"LibTmux.StaleServerGenerationException","signatures":[],"type":"ServerGeneration?","doc":{"summary":"Gets the generation currently serving the endpoint, or when it could not be observed."},"source":{"file":"src/LibTmux/Exceptions/StaleServerGenerationException.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.StaleServerGenerationException.Actual","product":"core","slug":"libtmux-staleservergenerationexception-actual"},{"id":"LibTmux.TmuxCleanupException","name":"TmuxCleanupException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports a failure to clean up a canceled tmux client."},"source":{"file":"src/LibTmux/Exceptions/TmuxCleanupException.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCleanupException","product":"core","slug":"libtmux-tmuxcleanupexception"},{"id":"LibTmux.TmuxCleanupException.TmuxCleanupException","name":"TmuxCleanupException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCleanupException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"originalCancellation","type":"OperationCanceledException"},{"name":"clientProcessId","type":"int"},{"name":"cleanupFailure","type":"Exception"}]}],"doc":{"summary":"Initializes a cleanup exception."},"source":{"file":"src/LibTmux/Exceptions/TmuxCleanupException.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCleanupException.TmuxCleanupException","product":"core","slug":"libtmux-tmuxcleanupexception-tmuxcleanupexception"},{"id":"LibTmux.TmuxCleanupException.OriginalCancellation","name":"OriginalCancellation","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCleanupException","signatures":[],"type":"OperationCanceledException","doc":{"summary":"Gets the original cancellation."},"source":{"file":"src/LibTmux/Exceptions/TmuxCleanupException.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCleanupException.OriginalCancellation","product":"core","slug":"libtmux-tmuxcleanupexception-originalcancellation"},{"id":"LibTmux.TmuxCleanupException.ClientProcessId","name":"ClientProcessId","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCleanupException","signatures":[],"type":"int","doc":{"summary":"Gets the disposable client process identifier."},"source":{"file":"src/LibTmux/Exceptions/TmuxCleanupException.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCleanupException.ClientProcessId","product":"core","slug":"libtmux-tmuxcleanupexception-clientprocessid"},{"id":"LibTmux.TmuxCleanupException.CleanupFailure","name":"CleanupFailure","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCleanupException","signatures":[],"type":"Exception","doc":{"summary":"Gets the cleanup failure."},"source":{"file":"src/LibTmux/Exceptions/TmuxCleanupException.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCleanupException.CleanupFailure","product":"core","slug":"libtmux-tmuxcleanupexception-cleanupfailure"},{"id":"LibTmux.TmuxCommandException","name":"TmuxCommandException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports a command-policy failure."},"source":{"file":"src/LibTmux/Exceptions/TmuxCommandException.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandException","product":"core","slug":"libtmux-tmuxcommandexception"},{"id":"LibTmux.TmuxCommandException.TmuxCommandException","name":"TmuxCommandException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommandException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"result","type":"TmuxCommandResult"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes a command exception."},"source":{"file":"src/LibTmux/Exceptions/TmuxCommandException.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandException.TmuxCommandException","product":"core","slug":"libtmux-tmuxcommandexception-tmuxcommandexception"},{"id":"LibTmux.TmuxCommandException.Result","name":"Result","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommandException","signatures":[],"type":"TmuxCommandResult","doc":{"summary":"Gets the inspectable command result."},"source":{"file":"src/LibTmux/Exceptions/TmuxCommandException.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandException.Result","product":"core","slug":"libtmux-tmuxcommandexception-result"},{"id":"LibTmux.TmuxCommandNotFoundException","name":"TmuxCommandNotFoundException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports a missing tmux executable.","body":"Nothing ran, so this is always :\nfixing the path and trying again repeats no side effect."},"source":{"file":"src/LibTmux/Exceptions/TmuxCommandNotFoundException.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandNotFoundException","product":"core","slug":"libtmux-tmuxcommandnotfoundexception"},{"id":"LibTmux.TmuxCommandNotFoundException.TmuxCommandNotFoundException","name":"TmuxCommandNotFoundException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommandNotFoundException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"tmuxBinaryPath","type":"string"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes a command-not-found exception."},"source":{"file":"src/LibTmux/Exceptions/TmuxCommandNotFoundException.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandNotFoundException.TmuxCommandNotFoundException","product":"core","slug":"libtmux-tmuxcommandnotfoundexception-tmuxcommandnotfoundexception"},{"id":"LibTmux.TmuxCommandNotFoundException.TmuxBinaryPath","name":"TmuxBinaryPath","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommandNotFoundException","signatures":[],"type":"string","doc":{"summary":"Gets the configured tmux executable path."},"source":{"file":"src/LibTmux/Exceptions/TmuxCommandNotFoundException.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandNotFoundException.TmuxBinaryPath","product":"core","slug":"libtmux-tmuxcommandnotfoundexception-tmuxbinarypath"},{"id":"LibTmux.TmuxDispatchState","name":"TmuxDispatchState","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Says whether a failed command reached tmux, which is what decides if retrying is safe.","body":"Retrying is safe only when the command never reached tmux.\n is the default because assuming otherwise repeats\na side effect tmux already ran."},"source":{"file":"src/LibTmux/Exceptions/TmuxDispatchState.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxDispatchState","product":"core","slug":"libtmux-tmuxdispatchstate"},{"id":"LibTmux.TmuxDispatchState.Unknown","name":"Unknown","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxDispatchState","signatures":[],"doc":{"summary":"Whether tmux acted on the command cannot be determined. Treat a retry as capable of repeating whatever the command does."},"source":{"file":"src/LibTmux/Exceptions/TmuxDispatchState.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxDispatchState.Unknown","product":"core","slug":"libtmux-tmuxdispatchstate-unknown"},{"id":"LibTmux.TmuxDispatchState.NotDispatched","name":"NotDispatched","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxDispatchState","signatures":[],"doc":{"summary":"The command never reached tmux, so nothing was done and a retry repeats nothing. This is the only state in which retrying is unconditionally safe."},"source":{"file":"src/LibTmux/Exceptions/TmuxDispatchState.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxDispatchState.NotDispatched","product":"core","slug":"libtmux-tmuxdispatchstate-notdispatched"},{"id":"LibTmux.TmuxDispatchState.Dispatched","name":"Dispatched","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxDispatchState","signatures":[],"doc":{"summary":"tmux ran the command and answered. The failure is tmux refusing or reporting an error, not the command going missing, so any side effect it had before failing has already happened."},"source":{"file":"src/LibTmux/Exceptions/TmuxDispatchState.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxDispatchState.Dispatched","product":"core","slug":"libtmux-tmuxdispatchstate-dispatched"},{"id":"LibTmux.TmuxObjectNotFoundException","name":"TmuxObjectNotFoundException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports a missing tmux object."},"source":{"file":"src/LibTmux/Exceptions/TmuxObjectNotFoundException.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxObjectNotFoundException","product":"core","slug":"libtmux-tmuxobjectnotfoundexception"},{"id":"LibTmux.TmuxObjectNotFoundException.TmuxObjectNotFoundException","name":"TmuxObjectNotFoundException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxObjectNotFoundException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"target","type":"string"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes a missing-object exception."},"source":{"file":"src/LibTmux/Exceptions/TmuxObjectNotFoundException.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxObjectNotFoundException.TmuxObjectNotFoundException","product":"core","slug":"libtmux-tmuxobjectnotfoundexception-tmuxobjectnotfoundexception"},{"id":"LibTmux.TmuxObjectNotFoundException.Target","name":"Target","kind":"property","modifiers":[],"parent":"LibTmux.TmuxObjectNotFoundException","signatures":[],"type":"string","doc":{"summary":"Gets the missing tmux target."},"source":{"file":"src/LibTmux/Exceptions/TmuxObjectNotFoundException.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxObjectNotFoundException.Target","product":"core","slug":"libtmux-tmuxobjectnotfoundexception-target"},{"id":"LibTmux.TmuxOperationCanceledException","name":"TmuxOperationCanceledException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports cancellation after a tmux client started."},"source":{"file":"src/LibTmux/Exceptions/TmuxOperationCanceledException.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOperationCanceledException","product":"core","slug":"libtmux-tmuxoperationcanceledexception"},{"id":"LibTmux.TmuxOperationCanceledException.TmuxOperationCanceledException","name":"TmuxOperationCanceledException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxOperationCanceledException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"cancellationToken","type":"CancellationToken"},{"name":"commandMayHaveExecuted","type":"bool"},{"name":"clientProcessId","type":"int"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes a tmux cancellation exception."},"source":{"file":"src/LibTmux/Exceptions/TmuxOperationCanceledException.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOperationCanceledException.TmuxOperationCanceledException","product":"core","slug":"libtmux-tmuxoperationcanceledexception-tmuxoperationcanceledexception"},{"id":"LibTmux.TmuxOperationCanceledException.CommandMayHaveExecuted","name":"CommandMayHaveExecuted","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOperationCanceledException","signatures":[],"type":"bool","doc":{"summary":"Gets whether tmux may have observed the command."},"source":{"file":"src/LibTmux/Exceptions/TmuxOperationCanceledException.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOperationCanceledException.CommandMayHaveExecuted","product":"core","slug":"libtmux-tmuxoperationcanceledexception-commandmayhaveexecuted"},{"id":"LibTmux.TmuxOperationCanceledException.ClientProcessId","name":"ClientProcessId","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOperationCanceledException","signatures":[],"type":"int","doc":{"summary":"Gets the disposable client process identifier."},"source":{"file":"src/LibTmux/Exceptions/TmuxOperationCanceledException.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOperationCanceledException.ClientProcessId","product":"core","slug":"libtmux-tmuxoperationcanceledexception-clientprocessid"},{"id":"LibTmux.TmuxOptionException","name":"TmuxOptionException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Thrown when tmux refuses an option name or value.","body":"tmux distinguishes unknown, invalid, and ambiguous options, and which one it\nsays depends on its version rather than on anything a caller did. They are\none failure here, carrying tmux's own wording and the name that caused it."},"source":{"file":"src/LibTmux/Exceptions/TmuxOptionException.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionException","product":"core","slug":"libtmux-tmuxoptionexception"},{"id":"LibTmux.TmuxOptionException.TmuxOptionException","name":"TmuxOptionException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxOptionException","signatures":[{"params":[{"name":"message","type":"string","doc":"What tmux reported."},{"name":"optionName","type":"string","doc":"The option tmux was asked about."},{"name":"innerException","type":"Exception?","default":"null","doc":"The underlying failure, when any."}]}],"doc":{"summary":"Initializes the exception for one rejected option."},"source":{"file":"src/LibTmux/Exceptions/TmuxOptionException.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionException.TmuxOptionException","product":"core","slug":"libtmux-tmuxoptionexception-tmuxoptionexception"},{"id":"LibTmux.TmuxOptionException.OptionName","name":"OptionName","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOptionException","signatures":[],"type":"string","doc":{"summary":"Gets the option tmux was asked about."},"source":{"file":"src/LibTmux/Exceptions/TmuxOptionException.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionException.OptionName","product":"core","slug":"libtmux-tmuxoptionexception-optionname"},{"id":"LibTmux.TmuxPaneException","name":"TmuxPaneException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Thrown when a pane operation is refused before tmux sees it.","body":"Reserved for refusals that are about the pane rather than the shape of the\nrequest: an argument the caller got wrong stays an\n, and a command tmux rejected stays a\n."},"source":{"file":"src/LibTmux/Exceptions/TmuxPaneException.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxPaneException","product":"core","slug":"libtmux-tmuxpaneexception"},{"id":"LibTmux.TmuxPaneException.TmuxPaneException","name":"TmuxPaneException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxPaneException","signatures":[{"params":[{"name":"message","type":"string","doc":"What was refused."},{"name":"paneId","type":"PaneId","doc":"The pane the request named."},{"name":"innerException","type":"Exception?","default":"null","doc":"The underlying failure, when any."}]}],"doc":{"summary":"Initializes the exception for one pane."},"source":{"file":"src/LibTmux/Exceptions/TmuxPaneException.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxPaneException.TmuxPaneException","product":"core","slug":"libtmux-tmuxpaneexception-tmuxpaneexception"},{"id":"LibTmux.TmuxPaneException.PaneId","name":"PaneId","kind":"property","modifiers":[],"parent":"LibTmux.TmuxPaneException","signatures":[],"type":"PaneId","doc":{"summary":"Gets the pane the request named."},"source":{"file":"src/LibTmux/Exceptions/TmuxPaneException.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxPaneException.PaneId","product":"core","slug":"libtmux-tmuxpaneexception-paneid"},{"id":"LibTmux.TmuxProtocolException","name":"TmuxProtocolException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports an answer from tmux this library could not read.","body":"Distinct from , which means tmux reported\na failure it understood. This means tmux reported success, or sent an event,\nand the bytes did not decode into anything the library can use: a row\nmissing a field it must have, a framed value that never ended, a\ncontrol-mode block guard out of place. A caller cannot correct one of these\nby changing its arguments, so the useful response is to report it rather\nthan retry it — and says whether a\nretry would repeat a side effect anyway."},"source":{"file":"src/LibTmux/Exceptions/TmuxProtocolException.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxProtocolException","product":"core","slug":"libtmux-tmuxprotocolexception"},{"id":"LibTmux.TmuxProtocolException.TmuxProtocolException","name":"TmuxProtocolException","kind":"method","modifiers":["overload"],"parent":"LibTmux.TmuxProtocolException","signatures":[{"params":[{"name":"message","type":"string","doc":"What could not be read."},{"name":"dispatch","type":"TmuxDispatchState","doc":"Whether tmux had already acted."},{"name":"innerException","type":"Exception?","default":"null","doc":"The failure underneath, when there is one."}]},{"params":[{"name":"message","type":"string","doc":"What could not be read."},{"name":"payload","type":"string","doc":"The text that could not be read."},{"name":"dispatch","type":"TmuxDispatchState","doc":"Whether tmux had already acted."},{"name":"innerException","type":"Exception?","default":"null","doc":"The failure underneath, when there is one."}]}],"doc":{"summary":"Initializes the exception for an unreadable answer."},"source":{"file":"src/LibTmux/Exceptions/TmuxProtocolException.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxProtocolException.TmuxProtocolException","product":"core","slug":"libtmux-tmuxprotocolexception-tmuxprotocolexception"},{"id":"LibTmux.TmuxProtocolException.Payload","name":"Payload","kind":"property","modifiers":[],"parent":"LibTmux.TmuxProtocolException","signatures":[],"type":"string","doc":{"summary":"Gets what tmux sent that could not be read.","body":"Empty when the failure captured no single value."},"source":{"file":"src/LibTmux/Exceptions/TmuxProtocolException.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxProtocolException.Payload","product":"core","slug":"libtmux-tmuxprotocolexception-payload"},{"id":"LibTmux.TmuxSessionExistsException","name":"TmuxSessionExistsException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Thrown when a session name is already taken.","body":"Distinct from a generic command failure because a caller can act on it:\npick another name, or ask tmux to replace the existing session."},"source":{"file":"src/LibTmux/Exceptions/TmuxSessionExistsException.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxSessionExistsException","product":"core","slug":"libtmux-tmuxsessionexistsexception"},{"id":"LibTmux.TmuxSessionExistsException.TmuxSessionExistsException","name":"TmuxSessionExistsException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxSessionExistsException","signatures":[{"params":[{"name":"message","type":"string","doc":"What tmux reported."},{"name":"sessionName","type":"string","doc":"The name already in use."},{"name":"innerException","type":"Exception?","default":"null","doc":"The underlying failure, when any."}]}],"doc":{"summary":"Initializes the exception for one taken session name."},"source":{"file":"src/LibTmux/Exceptions/TmuxSessionExistsException.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxSessionExistsException.TmuxSessionExistsException","product":"core","slug":"libtmux-tmuxsessionexistsexception-tmuxsessionexistsexception"},{"id":"LibTmux.TmuxSessionExistsException.SessionName","name":"SessionName","kind":"property","modifiers":[],"parent":"LibTmux.TmuxSessionExistsException","signatures":[],"type":"string","doc":{"summary":"Gets the session name that is already in use."},"source":{"file":"src/LibTmux/Exceptions/TmuxSessionExistsException.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxSessionExistsException.SessionName","product":"core","slug":"libtmux-tmuxsessionexistsexception-sessionname"},{"id":"LibTmux.TmuxTransportException","name":"TmuxTransportException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports a process-transport failure."},"source":{"file":"src/LibTmux/Exceptions/TmuxTransportException.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxTransportException","product":"core","slug":"libtmux-tmuxtransportexception"},{"id":"LibTmux.TmuxTransportException.TmuxTransportException","name":"TmuxTransportException","kind":"method","modifiers":["overload"],"parent":"LibTmux.TmuxTransportException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"arguments","type":"IReadOnlyList"},{"name":"innerException","type":"Exception?","default":"null"}]},{"params":[{"name":"message","type":"string"},{"name":"arguments","type":"IReadOnlyList"},{"name":"dispatch","type":"TmuxDispatchState"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes a transport exception whose dispatch state is unknown."},"source":{"file":"src/LibTmux/Exceptions/TmuxTransportException.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxTransportException.TmuxTransportException","product":"core","slug":"libtmux-tmuxtransportexception-tmuxtransportexception"},{"id":"LibTmux.TmuxTransportException.Arguments","name":"Arguments","kind":"property","modifiers":[],"parent":"LibTmux.TmuxTransportException","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the logical tmux arguments."},"source":{"file":"src/LibTmux/Exceptions/TmuxTransportException.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxTransportException.Arguments","product":"core","slug":"libtmux-tmuxtransportexception-arguments"},{"id":"LibTmux.TmuxVersionTooLowException","name":"TmuxVersionTooLowException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports an unsupported tmux version."},"source":{"file":"src/LibTmux/Exceptions/TmuxVersionTooLowException.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersionTooLowException","product":"core","slug":"libtmux-tmuxversiontoolowexception"},{"id":"LibTmux.TmuxVersionTooLowException.TmuxVersionTooLowException","name":"TmuxVersionTooLowException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxVersionTooLowException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"requiredVersion","type":"TmuxVersion"},{"name":"actualVersion","type":"TmuxVersion"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes an unsupported-version exception."},"source":{"file":"src/LibTmux/Exceptions/TmuxVersionTooLowException.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersionTooLowException.TmuxVersionTooLowException","product":"core","slug":"libtmux-tmuxversiontoolowexception-tmuxversiontoolowexception"},{"id":"LibTmux.TmuxVersionTooLowException.RequiredVersion","name":"RequiredVersion","kind":"property","modifiers":[],"parent":"LibTmux.TmuxVersionTooLowException","signatures":[],"type":"TmuxVersion","doc":{"summary":"Gets the required tmux version."},"source":{"file":"src/LibTmux/Exceptions/TmuxVersionTooLowException.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersionTooLowException.RequiredVersion","product":"core","slug":"libtmux-tmuxversiontoolowexception-requiredversion"},{"id":"LibTmux.TmuxVersionTooLowException.ActualVersion","name":"ActualVersion","kind":"property","modifiers":[],"parent":"LibTmux.TmuxVersionTooLowException","signatures":[],"type":"TmuxVersion","doc":{"summary":"Gets the actual tmux version."},"source":{"file":"src/LibTmux/Exceptions/TmuxVersionTooLowException.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersionTooLowException.ActualVersion","product":"core","slug":"libtmux-tmuxversiontoolowexception-actualversion"},{"id":"LibTmux.TmuxWaitTimeoutException","name":"TmuxWaitTimeoutException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports an expired bounded wait."},"source":{"file":"src/LibTmux/Exceptions/TmuxWaitTimeoutException.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitTimeoutException","product":"core","slug":"libtmux-tmuxwaittimeoutexception"},{"id":"LibTmux.TmuxWaitTimeoutException.TmuxWaitTimeoutException","name":"TmuxWaitTimeoutException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxWaitTimeoutException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"timeout","type":"TimeSpan"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes a wait-timeout exception."},"source":{"file":"src/LibTmux/Exceptions/TmuxWaitTimeoutException.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitTimeoutException.TmuxWaitTimeoutException","product":"core","slug":"libtmux-tmuxwaittimeoutexception-tmuxwaittimeoutexception"},{"id":"LibTmux.TmuxWaitTimeoutException.Timeout","name":"Timeout","kind":"property","modifiers":[],"parent":"LibTmux.TmuxWaitTimeoutException","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the expired timeout."},"source":{"file":"src/LibTmux/Exceptions/TmuxWaitTimeoutException.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitTimeoutException.Timeout","product":"core","slug":"libtmux-tmuxwaittimeoutexception-timeout"},{"id":"LibTmux.TmuxWindowException","name":"TmuxWindowException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Thrown when a window operation is refused before tmux sees it.","body":"Some window requests cannot safely be handed to tmux to reject. tmux 3.3a\ncrashes its whole server on an unrecognised layout name, taking every\nsession on the socket with it, so a bad layout is refused here instead."},"source":{"file":"src/LibTmux/Exceptions/TmuxWindowException.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWindowException","product":"core","slug":"libtmux-tmuxwindowexception"},{"id":"LibTmux.TmuxWindowException.TmuxWindowException","name":"TmuxWindowException","kind":"method","modifiers":["overload"],"parent":"LibTmux.TmuxWindowException","signatures":[{"params":[{"name":"message","type":"string","doc":"What was refused."},{"name":"windowId","type":"WindowId","doc":"The window the request named."},{"name":"innerException","type":"Exception?","default":"null","doc":"The underlying failure, when any."}]},{"params":[{"name":"message","type":"string","doc":"What was refused."},{"name":"windowId","type":"WindowId","doc":"The window the request named."},{"name":"dispatch","type":"TmuxDispatchState","doc":"Whether the command reached tmux."},{"name":"innerException","type":"Exception?","default":"null","doc":"The underlying failure, when any."}]}],"doc":{"summary":"Initializes the exception for one window."},"source":{"file":"src/LibTmux/Exceptions/TmuxWindowException.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWindowException.TmuxWindowException","product":"core","slug":"libtmux-tmuxwindowexception-tmuxwindowexception"},{"id":"LibTmux.TmuxWindowException.WindowId","name":"WindowId","kind":"property","modifiers":[],"parent":"LibTmux.TmuxWindowException","signatures":[],"type":"WindowId","doc":{"summary":"Gets the window the request named."},"source":{"file":"src/LibTmux/Exceptions/TmuxWindowException.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWindowException.WindowId","product":"core","slug":"libtmux-tmuxwindowexception-windowid"},{"id":"LibTmux.UnsupportedQueryExpressionException","name":"UnsupportedQueryExpressionException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Thrown when an expression cannot be translated to a query.","body":"Translation never falls back to client evaluation. Silently evaluating an\nuntranslatable node would make one predicate mean different things\ndepending on where it ran."},"source":{"file":"src/LibTmux/Exceptions/UnsupportedQueryExpressionException.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsupportedQueryExpressionException","product":"core","slug":"libtmux-unsupportedqueryexpressionexception"},{"id":"LibTmux.UnsupportedQueryExpressionException.UnsupportedQueryExpressionException","name":"UnsupportedQueryExpressionException","kind":"method","modifiers":["overload"],"parent":"LibTmux.UnsupportedQueryExpressionException","signatures":[{"params":[{"name":"message","type":"string","doc":"What could not be translated."}]},{"params":[{"name":"message","type":"string","doc":"What could not be translated."},{"name":"expression","type":"string","doc":"The expression, as the caller wrote it."},{"name":"innerException","type":"Exception?","default":"null","doc":"The failure underneath, when there is one."}]}],"doc":{"summary":"Initializes the exception for one untranslatable expression."},"source":{"file":"src/LibTmux/Exceptions/UnsupportedQueryExpressionException.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsupportedQueryExpressionException.UnsupportedQueryExpressionException","product":"core","slug":"libtmux-unsupportedqueryexpressionexception-unsupportedqueryexpressionexception"},{"id":"LibTmux.UnsupportedQueryExpressionException.Expression","name":"Expression","kind":"property","modifiers":[],"parent":"LibTmux.UnsupportedQueryExpressionException","signatures":[],"type":"string","doc":{"summary":"Gets the expression that could not be translated.","body":"Empty when the refusal named no single expression."},"source":{"file":"src/LibTmux/Exceptions/UnsupportedQueryExpressionException.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsupportedQueryExpressionException.Expression","product":"core","slug":"libtmux-unsupportedqueryexpressionexception-expression"},{"id":"LibTmux.TmuxHookEntry","name":"TmuxHookEntry","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One command a hook runs, and where it sits in the order.","body":"The command is kept as tmux prints it. tmux normalises what it is given\nonce, on the way in, and prints the result unchanged from then on, so the\nprinted text can be handed straight back to set-hook."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHookEntry","product":"core","slug":"libtmux-tmuxhookentry"},{"id":"LibTmux.TmuxHookEntry.TmuxHookEntry","name":"TmuxHookEntry","kind":"method","modifiers":[],"parent":"LibTmux.TmuxHookEntry","signatures":[{"params":[{"name":"index","type":"int","doc":"Where the command sits in the hook's order."},{"name":"command","type":"string","doc":"The tmux command, as tmux prints it."}]}],"doc":{"summary":"Initializes one hook entry."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHookEntry.TmuxHookEntry","product":"core","slug":"libtmux-tmuxhookentry-tmuxhookentry"},{"id":"LibTmux.TmuxHookEntry.Index","name":"Index","kind":"property","modifiers":[],"parent":"LibTmux.TmuxHookEntry","signatures":[],"type":"int","doc":{"summary":"Gets where the command sits in the hook's order."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHookEntry.Index","product":"core","slug":"libtmux-tmuxhookentry-index"},{"id":"LibTmux.TmuxHookEntry.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.TmuxHookEntry","signatures":[],"type":"string","doc":{"summary":"Gets the tmux command, as tmux prints it."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHookEntry.Command","product":"core","slug":"libtmux-tmuxhookentry-command"},{"id":"LibTmux.TmuxHook","name":"TmuxHook","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One hook and every command it runs."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHook","product":"core","slug":"libtmux-tmuxhook"},{"id":"LibTmux.TmuxHook.TmuxHook","name":"TmuxHook","kind":"method","modifiers":[],"parent":"LibTmux.TmuxHook","signatures":[{"params":[{"name":"name","type":"string","doc":"The hook name, without an index."},{"name":"values","type":"IReadOnlyList","doc":"The commands it runs, in the order tmux reported."}]}],"doc":{"summary":"Initializes one hook."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHook.TmuxHook","product":"core","slug":"libtmux-tmuxhook-tmuxhook"},{"id":"LibTmux.TmuxHook.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.TmuxHook","signatures":[],"type":"string","doc":{"summary":"Gets the hook name, without an index."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHook.Name","product":"core","slug":"libtmux-tmuxhook-name"},{"id":"LibTmux.TmuxHook.Values","name":"Values","kind":"property","modifiers":[],"parent":"LibTmux.TmuxHook","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the commands it runs, in the order tmux reported."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHook.Values","product":"core","slug":"libtmux-tmuxhook-values"},{"id":"LibTmux.TmuxHooks","name":"TmuxHooks","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"The hooks of one server, session, window, or pane.","body":"Every hook is an array, even with one entry, so a hook is read as a name and\na run of indexed commands rather than as a single value."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":60,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHooks","product":"core","slug":"libtmux-tmuxhooks"},{"id":"LibTmux.TmuxHooks.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.TmuxHooks","signatures":[],"type":"OptionScope","doc":{"summary":"Gets the scope these hooks are read and written in by default."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHooks.Scope","product":"core","slug":"libtmux-tmuxhooks-scope"},{"id":"LibTmux.TmuxHooks.GetAsync","name":"GetAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxHooks","signatures":[{"params":[{"name":"request","type":"HookRequest","doc":"Which hook to read."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The hook, or null when nothing is set for that name.","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the hook name."}]}],"doc":{"summary":"Reads one hook."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":94,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHooks.GetAsync","product":"core","slug":"libtmux-tmuxhooks-getasync"},{"id":"LibTmux.TmuxHooks.GetAllAsync","name":"GetAllAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxHooks","signatures":[{"params":[{"name":"request","type":"ListHooksRequest?","default":"null","doc":"Which scope to read, or null for the plain reading."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"Every hook tmux reported, in the order it reported them."}],"doc":{"summary":"Reads every hook in the scope."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":113,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHooks.GetAllAsync","product":"core","slug":"libtmux-tmuxhooks-getallasync"},{"id":"LibTmux.TmuxHooks.SetAsync","name":"SetAsync","kind":"method","modifiers":["async","overload"],"parent":"LibTmux.TmuxHooks","signatures":[{"params":[{"name":"request","type":"SetHookRequest","doc":"Which hook to set, to what, and how."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The hook as tmux holds it afterwards.","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the hook or its command."}]},{"params":[{"name":"request","type":"SetHooksRequest","doc":"Which hook to set, to what, and how."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The hook as tmux holds it afterwards.","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the hook or a command."}]}],"doc":{"summary":"Sets one hook entry."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":239,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHooks.SetAsync","product":"core","slug":"libtmux-tmuxhooks-setasync"},{"id":"LibTmux.TmuxHooks.RunAsync","name":"RunAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxHooks","signatures":[{"params":[{"name":"request","type":"HookRequest","doc":"Which hook to run."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the hook name."}]}],"doc":{"summary":"Runs a hook's commands now, without waiting for it to fire."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":310,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHooks.RunAsync","product":"core","slug":"libtmux-tmuxhooks-runasync"},{"id":"LibTmux.TmuxHooks.UnsetAsync","name":"UnsetAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxHooks","signatures":[{"params":[{"name":"request","type":"HookRequest","doc":"Which hook to remove."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the hook name."}]}],"doc":{"summary":"Removes a hook."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":320,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHooks.UnsetAsync","product":"core","slug":"libtmux-tmuxhooks-unsetasync"},{"id":"LibTmux.TmuxKeys","name":"TmuxKeys","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"The key bindings of one server.","body":"Bindings live in named tables. The prefix table is what a key reaches after\nthe prefix key, and root is what it reaches without one."},"source":{"file":"src/LibTmux/Keys/TmuxKeys.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxKeys","product":"core","slug":"libtmux-tmuxkeys"},{"id":"LibTmux.TmuxKeys.BindAsync","name":"BindAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxKeys","signatures":[{"params":[{"name":"request","type":"BindKeyRequest","doc":"Which key, to what, and in which table."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A task that completes once the binding is in place.","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Binds a key to a tmux command."},"source":{"file":"src/LibTmux/Keys/TmuxKeys.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxKeys.BindAsync","product":"core","slug":"libtmux-tmuxkeys-bindasync"},{"id":"LibTmux.TmuxKeys.UnbindAsync","name":"UnbindAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxKeys","signatures":[{"params":[{"name":"request","type":"UnbindKeyRequest","doc":"Which key, or every key in a table."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A task that completes once the binding is gone.","raises":[{"type":"ArgumentNullException","doc":" is null."},{"type":"ArgumentException","doc":"The request names no key and does not ask for all."}]}],"doc":{"summary":"Removes a binding, or every binding in a table.","body":"Removing a binding nobody made is not an error: tmux treats the\nabsence as the state that was asked for."},"source":{"file":"src/LibTmux/Keys/TmuxKeys.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxKeys.UnbindAsync","product":"core","slug":"libtmux-tmuxkeys-unbindasync"},{"id":"LibTmux.TmuxKeys.GetAllAsync","name":"GetAllAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxKeys","signatures":[{"params":[{"name":"keyTable","type":"string?","default":"null","doc":"The table to read, or null for every table."},{"name":"format","type":"string?","default":"null","doc":"The tmux format each binding is rendered with."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"One line per binding."}],"doc":{"summary":"Reads the bindings as tmux rendered them.","body":"Rendering with a format arrived in tmux 3.7."},"source":{"file":"src/LibTmux/Keys/TmuxKeys.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxKeys.GetAllAsync","product":"core","slug":"libtmux-tmuxkeys-getallasync"},{"id":"LibTmux.TmuxOptionKey","name":"TmuxOptionKey","kind":"class","modifiers":["overload"],"signatures":[],"doc":{"summary":"A tmux option and the .NET type its value reads as.","body":"Declared by the caller rather than catalogued: tmux has hundreds of options,\nadds them between releases and changes a few of their types, so a closed\ncatalogue would be wrong somewhere on every release it did not track. A key\nsays how to read one option; the request methods on\n remain for anything else."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey","product":"core","slug":"libtmux-tmuxoptionkey"},{"id":"LibTmux.TmuxOptionKey.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOptionKey","signatures":[],"type":"string","doc":{"summary":"Gets the option's name, as tmux spells it."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.Name","product":"core","slug":"libtmux-tmuxoptionkey-name"},{"id":"LibTmux.TmuxOptionKey.ToString","name":"ToString","kind":"method","modifiers":[],"parent":"LibTmux.TmuxOptionKey","signatures":[{"params":[],"returns":"string"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.ToString","product":"core","slug":"libtmux-tmuxoptionkey-tostring"},{"id":"LibTmux.TmuxOptionKey.HistoryLimit","name":"HistoryLimit","kind":"property","modifiers":["static"],"parent":"LibTmux.TmuxOptionKey","signatures":[],"type":"TmuxOptionKey","doc":{"summary":"Gets how many lines of scrollback a pane keeps; a session option."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.HistoryLimit","product":"core","slug":"libtmux-tmuxoptionkey-historylimit"},{"id":"LibTmux.TmuxOptionKey.BaseIndex","name":"BaseIndex","kind":"property","modifiers":["static"],"parent":"LibTmux.TmuxOptionKey","signatures":[],"type":"TmuxOptionKey","doc":{"summary":"Gets the index a session's first window gets; a session option."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.BaseIndex","product":"core","slug":"libtmux-tmuxoptionkey-baseindex"},{"id":"LibTmux.TmuxOptionKey.EscapeTime","name":"EscapeTime","kind":"property","modifiers":["static"],"parent":"LibTmux.TmuxOptionKey","signatures":[],"type":"TmuxOptionKey","doc":{"summary":"Gets how many milliseconds tmux waits after an escape for a key sequence; a server option."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.EscapeTime","product":"core","slug":"libtmux-tmuxoptionkey-escapetime"},{"id":"LibTmux.TmuxOptionKey.Mouse","name":"Mouse","kind":"property","modifiers":["static"],"parent":"LibTmux.TmuxOptionKey","signatures":[],"type":"TmuxOptionKey","doc":{"summary":"Gets whether tmux captures the mouse; a session option."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":67,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.Mouse","product":"core","slug":"libtmux-tmuxoptionkey-mouse"},{"id":"LibTmux.TmuxOptionKey.AutomaticRename","name":"AutomaticRename","kind":"property","modifiers":["static"],"parent":"LibTmux.TmuxOptionKey","signatures":[],"type":"TmuxOptionKey","doc":{"summary":"Gets whether a window renames itself after what its pane runs; a window option."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.AutomaticRename","product":"core","slug":"libtmux-tmuxoptionkey-automaticrename"},{"id":"LibTmux.TmuxOptionKey.SynchronizePanes","name":"SynchronizePanes","kind":"property","modifiers":["static"],"parent":"LibTmux.TmuxOptionKey","signatures":[],"type":"TmuxOptionKey","doc":{"summary":"Gets whether keys typed into one pane go to every pane in its window; a window or pane option."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":73,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.SynchronizePanes","product":"core","slug":"libtmux-tmuxoptionkey-synchronizepanes"},{"id":"LibTmux.TmuxOptionKey.Text","name":"Text","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxOptionKey","signatures":[{"params":[{"name":"name","type":"string","doc":"The option name, such as status-style or a user option @name."}],"returns":"TmuxOptionKey","returnsDoc":"A key reading the option as text.","raises":[{"type":"ArgumentException","doc":"The name is blank."}]}],"doc":{"summary":"Declares an option read as the text tmux reports, which suits a string, a choice, a style or a colour."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":79,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.Text","product":"core","slug":"libtmux-tmuxoptionkey-text"},{"id":"LibTmux.TmuxOptionKey.Number","name":"Number","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxOptionKey","signatures":[{"params":[{"name":"name","type":"string","doc":"The option name."}],"returns":"TmuxOptionKey","returnsDoc":"A key reading the option as a number.","raises":[{"type":"ArgumentException","doc":"The name is blank."}]}],"doc":{"summary":"Declares an option tmux holds as a whole number."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":86,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.Number","product":"core","slug":"libtmux-tmuxoptionkey-number"},{"id":"LibTmux.TmuxOptionKey.Flag","name":"Flag","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxOptionKey","signatures":[{"params":[{"name":"name","type":"string","doc":"The option name."}],"returns":"TmuxOptionKey","returnsDoc":"A key reading the option as a flag.","raises":[{"type":"ArgumentException","doc":"The name is blank."}]}],"doc":{"summary":"Declares an option tmux holds as a flag, which it reports as on or off."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":98,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.Flag","product":"core","slug":"libtmux-tmuxoptionkey-flag"},{"id":"LibTmux.TmuxOptionState","name":"TmuxOptionState","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"What tmux reported for an option."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionState","product":"core","slug":"libtmux-tmuxoptionstate"},{"id":"LibTmux.TmuxOptionState.Absent","name":"Absent","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxOptionState","signatures":[],"doc":{"summary":"tmux named the option but gave it no value."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionState.Absent","product":"core","slug":"libtmux-tmuxoptionstate-absent"},{"id":"LibTmux.TmuxOptionState.Off","name":"Off","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxOptionState","signatures":[],"doc":{"summary":"tmux reported the flag value off."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionState.Off","product":"core","slug":"libtmux-tmuxoptionstate-off"},{"id":"LibTmux.TmuxOptionState.On","name":"On","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxOptionState","signatures":[],"doc":{"summary":"tmux reported the flag value on."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionState.On","product":"core","slug":"libtmux-tmuxoptionstate-on"},{"id":"LibTmux.TmuxOptionState.Value","name":"Value","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxOptionState","signatures":[],"doc":{"summary":"tmux reported a value that is neither on nor off."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionState.Value","product":"core","slug":"libtmux-tmuxoptionstate-value"},{"id":"LibTmux.TmuxOptionValue","name":"TmuxOptionValue","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One option value as tmux reported it.","body":"tmux has no types: every option comes back as text. The typed readings sit\nalongside rather than replacing it, so a caller that knows\nbetter than the guess can always reach what tmux actually said."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionValue","product":"core","slug":"libtmux-tmuxoptionvalue"},{"id":"LibTmux.TmuxOptionValue.TmuxOptionValue","name":"TmuxOptionValue","kind":"method","modifiers":[],"parent":"LibTmux.TmuxOptionValue","signatures":[{"params":[{"name":"raw","type":"string?","doc":"The unescaped text tmux reported, or null when it reported none."},{"name":"state","type":"TmuxOptionState","doc":"Whether the value is absent, a flag, or ordinary text."},{"name":"boolean","type":"bool?","doc":"The flag reading, or null when the value is not a flag."},{"name":"integer","type":"long?","doc":"The whole-number reading, or null when the value is not one."}]}],"doc":{"summary":"Initializes an option value."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionValue.TmuxOptionValue","product":"core","slug":"libtmux-tmuxoptionvalue-tmuxoptionvalue"},{"id":"LibTmux.TmuxOptionValue.Raw","name":"Raw","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOptionValue","signatures":[],"type":"string?","doc":{"summary":"Gets the unescaped text tmux reported, or null when it reported none."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionValue.Raw","product":"core","slug":"libtmux-tmuxoptionvalue-raw"},{"id":"LibTmux.TmuxOptionValue.State","name":"State","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOptionValue","signatures":[],"type":"TmuxOptionState","doc":{"summary":"Gets whether the value is absent, a flag, or ordinary text."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionValue.State","product":"core","slug":"libtmux-tmuxoptionvalue-state"},{"id":"LibTmux.TmuxOptionValue.Boolean","name":"Boolean","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOptionValue","signatures":[],"type":"bool?","doc":{"summary":"Gets the flag reading, or null when the value is not a flag."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":53,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionValue.Boolean","product":"core","slug":"libtmux-tmuxoptionvalue-boolean"},{"id":"LibTmux.TmuxOptionValue.Integer","name":"Integer","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOptionValue","signatures":[],"type":"long?","doc":{"summary":"Gets the whole-number reading, or null when the value is not one."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionValue.Integer","product":"core","slug":"libtmux-tmuxoptionvalue-integer"},{"id":"LibTmux.TmuxOption","name":"TmuxOption","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One option, with its array index when tmux gave it one.","body":"tmux array options are sparse: setting index 40 leaves 4 through 39 unset,\nand tmux reports only what exists. Carrying the index on each entry says so\nplainly, where a list would have to invent the gaps."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":69,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOption","product":"core","slug":"libtmux-tmuxoption"},{"id":"LibTmux.TmuxOption.TmuxOption","name":"TmuxOption","kind":"method","modifiers":[],"parent":"LibTmux.TmuxOption","signatures":[{"params":[{"name":"name","type":"string","doc":"The option name, without index or inheritance marker."},{"name":"value","type":"TmuxOptionValue","doc":"The value tmux reported."},{"name":"index","type":"int?","doc":"The array index, or null for an option that is not an array."},{"name":"inherited","type":"bool","default":"false","doc":"Whether the value came from a parent scope."}]}],"doc":{"summary":"Initializes an option."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":76,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOption.TmuxOption","product":"core","slug":"libtmux-tmuxoption-tmuxoption"},{"id":"LibTmux.TmuxOption.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOption","signatures":[],"type":"string","doc":{"summary":"Gets the option name, without index or inheritance marker."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":85,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOption.Name","product":"core","slug":"libtmux-tmuxoption-name"},{"id":"LibTmux.TmuxOption.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOption","signatures":[],"type":"TmuxOptionValue","doc":{"summary":"Gets the value tmux reported."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":88,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOption.Value","product":"core","slug":"libtmux-tmuxoption-value"},{"id":"LibTmux.TmuxOption.Index","name":"Index","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOption","signatures":[],"type":"int?","doc":{"summary":"Gets the array index, or null for an option that is not an array."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":91,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOption.Index","product":"core","slug":"libtmux-tmuxoption-index"},{"id":"LibTmux.TmuxOption.Inherited","name":"Inherited","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOption","signatures":[],"type":"bool","doc":{"summary":"Gets whether the value came from a parent scope.","body":"Only a read that asked for inherited values can tell. Without it tmux\nanswers nothing at all for an option set at a wider scope, so a false\nvalue there means \"not reported as inherited\", not \"set here\"."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":99,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOption.Inherited","product":"core","slug":"libtmux-tmuxoption-inherited"},{"id":"LibTmux.TmuxOptions","name":"TmuxOptions","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"The options of one server, session, window, or pane.","body":"tmux keeps four option tables and picks between them with a flag, so the\nscope is fixed when the accessor is reached rather than passed to every\ncall. A request may still name another scope, which is what makes a\nwindow-scoped read from a session possible without a second accessor."},"source":{"file":"src/LibTmux/Options/TmuxOptions.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptions","product":"core","slug":"libtmux-tmuxoptions"},{"id":"LibTmux.TmuxOptions.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOptions","signatures":[],"type":"OptionScope","doc":{"summary":"Gets the scope these options are read and written in by default."},"source":{"file":"src/LibTmux/Options/TmuxOptions.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptions.Scope","product":"core","slug":"libtmux-tmuxoptions-scope"},{"id":"LibTmux.TmuxOptions.GetAsync","name":"GetAsync","kind":"method","modifiers":["async","overload"],"parent":"LibTmux.TmuxOptions","signatures":[{"params":[{"name":"request","type":"GetOptionRequest","doc":"Which option to read, and how."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"Every entry tmux reported for the name: one for an ordinary option, and\none per set index for an array.","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the option name."}]},{"params":[{"name":"key","type":"TmuxOptionKey","doc":"The option and how to read it."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","typeParams":["T"],"returnsDoc":"The value tmux applies here, set in this scope or inherited from a parent.","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the name, reported no value, or reported one the key cannot read."}]}],"doc":{"summary":"Reads one option.","body":"Unescaping a doubled dollar sign needs the connected tmux's version, so\na table reached from a handle that has not found a live server yet\ndiscovers one first."},"source":{"file":"src/LibTmux/Options/TmuxOptions.cs","line":77,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptions.GetAsync","product":"core","slug":"libtmux-tmuxoptions-getasync"},{"id":"LibTmux.TmuxOptions.SetAsync","name":"SetAsync","kind":"method","modifiers":["overload"],"parent":"LibTmux.TmuxOptions","signatures":[{"params":[{"name":"key","type":"TmuxOptionKey","doc":"The option and how to write it."},{"name":"value","type":"T","doc":"The value to set."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","typeParams":["T"],"returnsDoc":"A task that completes when tmux has set the option.","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the name or the value."}]},{"params":[{"name":"request","type":"SetOptionRequest","doc":"Which option to set, to what, and how."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The value tmux holds afterwards.","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the option or its value."}]}],"doc":{"summary":"Sets an option in this scope from a value of its key's type."},"source":{"file":"src/LibTmux/Options/TmuxOptions.cs","line":132,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptions.SetAsync","product":"core","slug":"libtmux-tmuxoptions-setasync"},{"id":"LibTmux.TmuxOptions.GetAllAsync","name":"GetAllAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxOptions","signatures":[{"params":[{"name":"request","type":"GetOptionsRequest?","default":"null","doc":"How to read them, or null for the plain reading."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"Every option tmux reported, in the order it reported them.","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the request."}]}],"doc":{"summary":"Reads every option in the scope.","body":"Unescaping a doubled dollar sign needs the connected tmux's version, so\na table reached from a handle that has not found a live server yet\ndiscovers one first."},"source":{"file":"src/LibTmux/Options/TmuxOptions.cs","line":149,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptions.GetAllAsync","product":"core","slug":"libtmux-tmuxoptions-getallasync"},{"id":"LibTmux.TmuxOptions.UnsetAsync","name":"UnsetAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxOptions","signatures":[{"params":[{"name":"request","type":"UnsetOptionRequest","doc":"Which option to unset, and how."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the option name."}]}],"doc":{"summary":"Unsets one option, returning it to what it inherits."},"source":{"file":"src/LibTmux/Options/TmuxOptions.cs","line":245,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptions.UnsetAsync","product":"core","slug":"libtmux-tmuxoptions-unsetasync"},{"id":"LibTmux.Pane","name":"Pane","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Represents an immutable pane handle and snapshot.","body":"Thread-safe: the handle is immutable once constructed and may be shared\nfreely, including as a singleton. Every mutating call answers a new handle\nrather than changing this one."},"source":{"file":"src/LibTmux/Pane.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane","product":"core","slug":"libtmux-pane"},{"id":"LibTmux.Pane.CaptureAsync","name":"CaptureAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"CapturePaneRequest?","default":"null","doc":"What to capture."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The captured lines."}],"doc":{"summary":"Reads the pane's contents.","examples":[{"lang":"console","intro":"Send literal text and a named Enter key, wait for a private completion signal, then require a whole captured output line. All scopes are disposed after errors or cancellation. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/InputCapture.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-inputcapture-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/sh\" }, token);\nServer server = await Server.ConnectAsync(options, token);\nPane pane = (await server.GetPanesAsync(token)).Single();\nstring channel = \"capture-\" + Guid.NewGuid().ToString(\"N\");\nawait using TmuxWaitChannel wait = server.OpenWaitChannel(channel);\nconst string marker = \"api capture ready\";\nstring command = $\"printf '%s\\\\n' {QuoteShell(marker)}; \"\n + $\"{QuoteShell(binary)} -L {QuoteShell(socketName)} wait-for -S {QuoteShell(channel)}\";\n\nawait pane.SendKeysAsync(new SendKeysRequest { Text = command, Literal = true, Enter = false }, token);\nawait pane.SendKeysAsync(new SendKeysRequest { Text = \"Enter\", Enter = false }, token);\nif (!await wait.WaitAsync(TimeSpan.FromSeconds(5), token))\n{\n throw new InvalidOperationException(\"The pane did not signal that its output was ready.\");\n}\nIReadOnlyList lines = await pane.CaptureAsync(\n new CapturePaneRequest { JoinWrappedLines = true }, token);\n// Joining wrapped lines preserves terminal padding after the output.\nif (!lines.Any(line => string.Equals(line.TrimEnd(), marker, StringComparison.Ordinal)))\n{\n throw new InvalidOperationException(\"Capture did not contain the complete output line.\");\n}\nConsole.WriteLine(marker);\n\nstatic string QuoteShell(string value) => \"'\" + value.Replace(\"'\", \"'\\\\''\", StringComparison.Ordinal) + \"'\";\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"api capture ready\n"}]},"source":{"file":"src/LibTmux/Pane.Capture.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.CaptureAsync","product":"core","slug":"libtmux-pane-captureasync"},{"id":"LibTmux.Pane.ReadOutputSinceAsync","name":"ReadOutputSinceAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"position","type":"PaneOutputPosition?","default":"null","doc":"Where the last read finished, or null to start from what the pane shows now."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The new lines and the position to pass next time; a read without a position returns none.","raises":[{"type":"ArgumentException","doc":"The position came from another pane."},{"type":"TmuxObjectNotFoundException","doc":"tmux no longer has the pane."},{"type":"TmuxPaneException","doc":"The pane runs a different program than when the position was taken, its\nprogram has exited, or it changed during every read attempt."}]}],"doc":{"summary":"Reads what the pane has printed since a position, and where this read finished.","body":"A read captures what is new rather than everything the pane holds, so\nit costs about the same however long the pane has been printing, until\nhistory nears history-limit: a read then captures all of it to\nfind its place. Lines a program rewrote in place, such as a progress\nbar or a prompt redraw, are reported again when they change. A pane\nwhose program has exited reads as it stands."},"source":{"file":"src/LibTmux/Pane.Capture.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ReadOutputSinceAsync","product":"core","slug":"libtmux-pane-readoutputsinceasync"},{"id":"LibTmux.Pane.CaptureToBufferAsync","name":"CaptureToBufferAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"bufferName","type":"string","doc":"The buffer to write."},{"name":"request","type":"CapturePaneRequest?","default":"null","doc":"What to capture."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Captures the pane's contents into a tmux buffer."},"source":{"file":"src/LibTmux/Pane.Capture.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.CaptureToBufferAsync","product":"core","slug":"libtmux-pane-capturetobufferasync"},{"id":"LibTmux.Pane.PipeAsync","name":"PipeAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"PipePaneRequest?","default":"null","doc":"What to pipe."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Pipes the pane's input or output through a command."},"source":{"file":"src/LibTmux/Pane.Capture.cs","line":105,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.PipeAsync","product":"core","slug":"libtmux-pane-pipeasync"},{"id":"LibTmux.Pane.ExecuteCommandAsync","name":"ExecuteCommandAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"arguments","type":"IReadOnlyList"},{"name":"targetOverride","type":"string?","default":"null"},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Executes one raw tmux command against this pane."},"source":{"file":"src/LibTmux/Pane.Command.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ExecuteCommandAsync","product":"core","slug":"libtmux-pane-executecommandasync"},{"id":"LibTmux.Pane.DisplayPopupAsync","name":"DisplayPopupAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"DisplayPopupRequest?","default":"null","doc":"What the popup shows."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Shows a popup over the client viewing this pane.","body":"tmux waits for the popup to close before answering, so a popup whose\ncommand never exits keeps this call waiting until it is canceled."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":175,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.DisplayPopupAsync","product":"core","slug":"libtmux-pane-displaypopupasync"},{"id":"LibTmux.Pane.DisplayPaneNumbersAsync","name":"DisplayPaneNumbersAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"duration","type":"TimeSpan?","default":"null","doc":"How long the numbers stay up."},{"name":"noSelect","type":"bool","default":"false","doc":"Whether pressing a number does not select a pane."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Shows the pane numbers on every client.","body":"tmux takes no pane here: the command's target names a client, so this\nshows the numbers wherever the server has clients."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":193,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.DisplayPaneNumbersAsync","product":"core","slug":"libtmux-pane-displaypanenumbersasync"},{"id":"LibTmux.Pane.DisplayMessageAsync","name":"DisplayMessageAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"DisplayMessageRequest","doc":"The message to show."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task?>","returnsDoc":"The printed lines when the request asked for them, else null."}],"doc":{"summary":"Shows a message on the client viewing this pane.","body":"A message with no client to show it on is not a failure, so tmux's\ncomplaint is logged rather than raised."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":222,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.DisplayMessageAsync","product":"core","slug":"libtmux-pane-displaymessageasync"},{"id":"LibTmux.Pane.EnterCopyModeAsync","name":"EnterCopyModeAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"CopyModeRequest?","default":"null","doc":"How to enter it."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Puts the pane into copy mode."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":321,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.EnterCopyModeAsync","product":"core","slug":"libtmux-pane-entercopymodeasync"},{"id":"LibTmux.Pane.EnterClockModeAsync","name":"EnterClockModeAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Puts the pane into clock mode."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":333,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.EnterClockModeAsync","product":"core","slug":"libtmux-pane-enterclockmodeasync"},{"id":"LibTmux.Pane.EnterCustomizeModeAsync","name":"EnterCustomizeModeAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Puts the pane into customize mode."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":339,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.EnterCustomizeModeAsync","product":"core","slug":"libtmux-pane-entercustomizemodeasync"},{"id":"LibTmux.Pane.ChooseBufferAsync","name":"ChooseBufferAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Opens the buffer chooser in this pane.","body":"tmux does nothing, successfully, when there are no buffers."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":346,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ChooseBufferAsync","product":"core","slug":"libtmux-pane-choosebufferasync"},{"id":"LibTmux.Pane.ChooseClientAsync","name":"ChooseClientAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Opens the client chooser in this pane."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":352,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ChooseClientAsync","product":"core","slug":"libtmux-pane-chooseclientasync"},{"id":"LibTmux.Pane.ChooseTreeAsync","name":"ChooseTreeAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"ChooseTreeRequest?","default":"null","doc":"How the tree is shown."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Opens the session tree chooser in this pane."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":359,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ChooseTreeAsync","product":"core","slug":"libtmux-pane-choosetreeasync"},{"id":"LibTmux.Pane.FindWindowAsync","name":"FindWindowAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"FindWindowRequest","doc":"What to look for."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Opens the window finder in this pane."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":372,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.FindWindowAsync","product":"core","slug":"libtmux-pane-findwindowasync"},{"id":"LibTmux.Pane.FromEnvironmentAsync","name":"FromEnvironmentAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"environment","type":"IReadOnlyDictionary?","default":"null","doc":"The environment, or null for the process."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The resolved pane.","raises":[{"type":"TmuxObjectNotFoundException","doc":"The environment does not name a pane, or tmux no longer has it."}]}],"doc":{"summary":"Returns the pane this process was spawned in."},"source":{"file":"src/LibTmux/Pane.FromEnvironment.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.FromEnvironmentAsync","product":"core","slug":"libtmux-pane-fromenvironmentasync"},{"id":"LibTmux.Pane.RawFormatFields","name":"RawFormatFields","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the tmux fields captured when this handle materialized."},"source":{"file":"src/LibTmux/Pane.Identity.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.RawFormatFields","product":"core","slug":"libtmux-pane-rawformatfields"},{"id":"LibTmux.Pane.Id","name":"Id","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"PaneId","doc":{"summary":"Gets the pane identifier."},"source":{"file":"src/LibTmux/Pane.Identity.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Id","product":"core","slug":"libtmux-pane-id"},{"id":"LibTmux.Pane.Generation","name":"Generation","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"ServerGeneration","doc":{"summary":"Gets the server generation captured with this pane."},"source":{"file":"src/LibTmux/Pane.Identity.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Generation","product":"core","slug":"libtmux-pane-generation"},{"id":"LibTmux.Pane.Equals","name":"Equals","kind":"method","modifiers":["overload"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"other","type":"Pane?"}],"returns":"bool"},{"params":[{"name":"obj","type":"object?"}],"returns":"bool"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Pane.Identity.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Equals","product":"core","slug":"libtmux-pane-equals"},{"id":"LibTmux.Pane.GetHashCode","name":"GetHashCode","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[],"returns":"int"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Pane.Identity.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.GetHashCode","product":"core","slug":"libtmux-pane-gethashcode"},{"id":"LibTmux.Pane.SendKeysAsync","name":"SendKeysAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"SendKeysRequest","doc":"What to send."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","raises":[{"type":"ArgumentException","doc":"The request sends nothing or its text contains NUL."},{"type":"LibTmuxException","doc":"Text was sent, but a requested Enter failed. Its dispatch state is\nunknown, so the whole request must not be retried."}]}],"doc":{"summary":"Sends keys to the pane.","examples":[{"lang":"console","intro":"Send literal text and a named Enter key, wait for a private completion signal, then require a whole captured output line. All scopes are disposed after errors or cancellation. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/InputCapture.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-inputcapture-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/sh\" }, token);\nServer server = await Server.ConnectAsync(options, token);\nPane pane = (await server.GetPanesAsync(token)).Single();\nstring channel = \"capture-\" + Guid.NewGuid().ToString(\"N\");\nawait using TmuxWaitChannel wait = server.OpenWaitChannel(channel);\nconst string marker = \"api capture ready\";\nstring command = $\"printf '%s\\\\n' {QuoteShell(marker)}; \"\n + $\"{QuoteShell(binary)} -L {QuoteShell(socketName)} wait-for -S {QuoteShell(channel)}\";\n\nawait pane.SendKeysAsync(new SendKeysRequest { Text = command, Literal = true, Enter = false }, token);\nawait pane.SendKeysAsync(new SendKeysRequest { Text = \"Enter\", Enter = false }, token);\nif (!await wait.WaitAsync(TimeSpan.FromSeconds(5), token))\n{\n throw new InvalidOperationException(\"The pane did not signal that its output was ready.\");\n}\nIReadOnlyList lines = await pane.CaptureAsync(\n new CapturePaneRequest { JoinWrappedLines = true }, token);\n// Joining wrapped lines preserves terminal padding after the output.\nif (!lines.Any(line => string.Equals(line.TrimEnd(), marker, StringComparison.Ordinal)))\n{\n throw new InvalidOperationException(\"Capture did not contain the complete output line.\");\n}\nConsole.WriteLine(marker);\n\nstatic string QuoteShell(string value) => \"'\" + value.Replace(\"'\", \"'\\\\''\", StringComparison.Ordinal) + \"'\";\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"api capture ready\n"}]},"source":{"file":"src/LibTmux/Pane.Input.cs","line":89,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SendKeysAsync","product":"core","slug":"libtmux-pane-sendkeysasync"},{"id":"LibTmux.Pane.SendTextAsync","name":"SendTextAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"text","type":"string","doc":"The text to type."},{"name":"enter","type":"bool","default":"true","doc":"Whether Enter follows the text."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","raises":[{"type":"ArgumentException","doc":"The text contains NUL."},{"type":"LibTmuxException","doc":"Text was sent, but Enter failed. Its dispatch state is unknown, so the\nwhole request must not be retried."}]}],"doc":{"summary":"Types text into the pane."},"source":{"file":"src/LibTmux/Pane.Input.cs","line":114,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SendTextAsync","product":"core","slug":"libtmux-pane-sendtextasync"},{"id":"LibTmux.Pane.SendPrefixAsync","name":"SendPrefixAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"secondary","type":"bool","default":"false","doc":"Whether the secondary prefix is sent."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Sends the configured prefix key to the pane."},"source":{"file":"src/LibTmux/Pane.Input.cs","line":124,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SendPrefixAsync","product":"core","slug":"libtmux-pane-sendprefixasync"},{"id":"LibTmux.Pane.EnterAsync","name":"EnterAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the state afterwards."}],"doc":{"summary":"Presses Enter in the pane."},"source":{"file":"src/LibTmux/Pane.Input.cs","line":141,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.EnterAsync","product":"core","slug":"libtmux-pane-enterasync"},{"id":"LibTmux.Pane.ClearAsync","name":"ClearAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"A replacement handle carrying the state afterwards."}],"doc":{"summary":"Clears the pane by running the shell's reset."},"source":{"file":"src/LibTmux/Pane.Input.cs","line":153,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ClearAsync","product":"core","slug":"libtmux-pane-clearasync"},{"id":"LibTmux.Pane.ResetAsync","name":"ResetAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"A replacement handle carrying the state afterwards."}],"doc":{"summary":"Resets the pane's terminal state and drops its history.","body":"Python groups the two tmux commands so nothing runs between them. This\ndispatches them in turn, because the transport carries one command per\ncall and a trailing separator would reach tmux as data."},"source":{"file":"src/LibTmux/Pane.Input.cs","line":170,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ResetAsync","product":"core","slug":"libtmux-pane-resetasync"},{"id":"LibTmux.Pane.ClearHistoryAsync","name":"ClearHistoryAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"resetHyperlinks","type":"bool","default":"false","doc":"Whether stored hyperlinks are dropped too."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Drops the pane's scrollback history."},"source":{"file":"src/LibTmux/Pane.Input.cs","line":187,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ClearHistoryAsync","product":"core","slug":"libtmux-pane-clearhistoryasync"},{"id":"LibTmux.Pane.PasteBufferAsync","name":"PasteBufferAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"PasteBufferRequest?","default":"null","doc":"Which buffer and how."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Pastes a tmux buffer into the pane."},"source":{"file":"src/LibTmux/Pane.Input.cs","line":238,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.PasteBufferAsync","product":"core","slug":"libtmux-pane-pastebufferasync"},{"id":"LibTmux.Pane.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"Server","doc":{"summary":"Gets the server that owns this pane.","body":"Reading this uses the owner captured with the entity."},"source":{"file":"src/LibTmux/Pane.Relations.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Server","product":"core","slug":"libtmux-pane-server"},{"id":"LibTmux.Pane.Session","name":"Session","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"Session","doc":{"summary":"Gets the session containing this pane."},"source":{"file":"src/LibTmux/Pane.Relations.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Session","product":"core","slug":"libtmux-pane-session"},{"id":"LibTmux.Pane.Window","name":"Window","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"Window","doc":{"summary":"Gets the window containing this pane, with captured scalar state."},"source":{"file":"src/LibTmux/Pane.Relations.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Window","product":"core","slug":"libtmux-pane-window"},{"id":"LibTmux.Pane.RunAsync","name":"RunAsync","kind":"method","modifiers":["overload"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"command","type":"string","doc":"The shell command."},{"name":"timeout","type":"TimeSpan","doc":"How long to wait for it."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops waiting. A command already sent keeps running, so cancelling then raises\n saying it may have run, not ,\nwhich and F#'s Async.AwaitTask replace with a bare\n."}],"returns":"Task","returnsDoc":"The exit status and what the command printed.","raises":[{"type":"ArgumentException","doc":" is blank."},{"type":"TmuxPaneException","doc":"The pane is not at a POSIX shell, is in a mode, or its program has exited; or it changed during every read before the command was sent."},{"type":"TmuxObjectNotFoundException","doc":"tmux no longer has the pane."},{"type":"LibTmuxException","doc":"The command's result could not be read, or its private files could not be deleted; inspect the failure before retrying."}]},{"params":[{"name":"request","type":"PaneRunRequest","doc":"The command and how long to wait."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops waiting. A command already sent keeps running, so cancelling then raises\n saying it may have run, not ,\nwhich and F#'s Async.AwaitTask replace with a bare\n."}],"returns":"Task","returnsDoc":"The exit status and what the command printed.","raises":[{"type":"ArgumentOutOfRangeException","doc":"The timeout or output budget is invalid."},{"type":"TmuxPaneException","doc":"The pane is not at a POSIX shell, is in a mode, or its program has exited; or it changed during every read before the command was sent."},{"type":"TmuxObjectNotFoundException","doc":"tmux no longer has the pane."},{"type":"LibTmuxException","doc":"The command's result could not be read, or its private files could not be deleted; inspect the failure before retrying."}]}],"doc":{"summary":"Runs a shell command in the pane and waits for its exit status."},"source":{"file":"src/LibTmux/Pane.Running.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.RunAsync","product":"core","slug":"libtmux-pane-runasync"},{"id":"LibTmux.Pane.Options","name":"Options","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"TmuxOptions","doc":{"summary":"Gets the options of this pane."},"source":{"file":"src/LibTmux/Pane.Scopes.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Options","product":"core","slug":"libtmux-pane-options"},{"id":"LibTmux.Pane.Hooks","name":"Hooks","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"TmuxHooks","doc":{"summary":"Gets the hooks of this pane."},"source":{"file":"src/LibTmux/Pane.Scopes.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Hooks","product":"core","slug":"libtmux-pane-hooks"},{"id":"LibTmux.Pane.AtTop","name":"AtTop","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane touches the top of its window."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.AtTop","product":"core","slug":"libtmux-pane-attop"},{"id":"LibTmux.Pane.AtBottom","name":"AtBottom","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane touches the bottom of its window."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.AtBottom","product":"core","slug":"libtmux-pane-atbottom"},{"id":"LibTmux.Pane.AtLeft","name":"AtLeft","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane touches the left of its window."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.AtLeft","product":"core","slug":"libtmux-pane-atleft"},{"id":"LibTmux.Pane.AtRight","name":"AtRight","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane touches the right of its window."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.AtRight","product":"core","slug":"libtmux-pane-atright"},{"id":"LibTmux.Pane.Active","name":"Active","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane is its window's active pane."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Active","product":"core","slug":"libtmux-pane-active"},{"id":"LibTmux.Pane.Dead","name":"Dead","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane's program has exited and the pane remains.","body":"A pane outlives its program only while remain-on-exit is on."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Dead","product":"core","slug":"libtmux-pane-dead"},{"id":"LibTmux.Pane.DeadStatus","name":"DeadStatus","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"int?","doc":{"summary":"Gets the exit status of a dead pane's program.","body":"Null while the program runs, and when a signal ended it instead."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.DeadStatus","product":"core","slug":"libtmux-pane-deadstatus"},{"id":"LibTmux.Pane.HistorySize","name":"HistorySize","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"int","doc":{"summary":"Gets how many lines have scrolled into the pane's history.","body":"It changes with output, so a does not\npublish a view when only this changes."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.HistorySize","product":"core","slug":"libtmux-pane-historysize"},{"id":"LibTmux.Pane.Synchronized","name":"Synchronized","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"bool","doc":{"summary":"Gets whether keys typed into the pane go to every synchronized pane in its window."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Synchronized","product":"core","slug":"libtmux-pane-synchronized"},{"id":"LibTmux.Pane.InMode","name":"InMode","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane is in a mode, such as copy mode.","body":"tmux reports how many modes are stacked on the pane; any number but zero is true."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.InMode","product":"core","slug":"libtmux-pane-inmode"},{"id":"LibTmux.Pane.ProcessId","name":"ProcessId","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"int","doc":{"summary":"Gets the process ID of the program the pane started.","body":"A dead pane keeps the ID of the program that exited."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ProcessId","product":"core","slug":"libtmux-pane-processid"},{"id":"LibTmux.Pane.Height","name":"Height","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"int","doc":{"summary":"Gets the pane height captured with this handle."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Height","product":"core","slug":"libtmux-pane-height"},{"id":"LibTmux.Pane.Width","name":"Width","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"int","doc":{"summary":"Gets the pane width captured with this handle."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Width","product":"core","slug":"libtmux-pane-width"},{"id":"LibTmux.Pane.Left","name":"Left","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"int","doc":{"summary":"Gets the pane's left offset, in cells, from its window's edge."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Left","product":"core","slug":"libtmux-pane-left"},{"id":"LibTmux.Pane.Top","name":"Top","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"int","doc":{"summary":"Gets the pane's top offset, in cells, from its window's edge."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Top","product":"core","slug":"libtmux-pane-top"},{"id":"LibTmux.Pane.Index","name":"Index","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"int","doc":{"summary":"Gets the index this pane holds in its window."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":67,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Index","product":"core","slug":"libtmux-pane-index"},{"id":"LibTmux.Pane.Title","name":"Title","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"string?","doc":{"summary":"Gets the pane title captured with this handle."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Title","product":"core","slug":"libtmux-pane-title"},{"id":"LibTmux.Pane.CurrentCommand","name":"CurrentCommand","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"string?","doc":{"summary":"Gets the foreground command captured with this pane.","body":"Returns null for a captured unavailable value. Reading this never reaches tmux."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.CurrentCommand","product":"core","slug":"libtmux-pane-currentcommand"},{"id":"LibTmux.Pane.CurrentPath","name":"CurrentPath","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"string?","doc":{"summary":"Gets the current working directory captured with this pane.","body":"Returns null for a captured unavailable value. Reading this never reaches tmux."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":80,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.CurrentPath","product":"core","slug":"libtmux-pane-currentpath"},{"id":"LibTmux.Pane.Tty","name":"Tty","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"string?","doc":{"summary":"Gets the terminal device the pane's program reads and writes, such as /dev/pts/3."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":84,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Tty","product":"core","slug":"libtmux-pane-tty"},{"id":"LibTmux.Pane.StartCommand","name":"StartCommand","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"string?","doc":{"summary":"Gets the command the pane started, as tmux prints it, or empty for the default shell.","body":"tmux quotes a command given as one string, so sleep 60 reads \"sleep 60\"."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":89,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.StartCommand","product":"core","slug":"libtmux-pane-startcommand"},{"id":"LibTmux.Pane.RefreshAsync","name":"RefreshAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying current state."}],"doc":{"summary":"Re-reads this pane from tmux."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":99,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.RefreshAsync","product":"core","slug":"libtmux-pane-refreshasync"},{"id":"LibTmux.Pane.BreakAsync","name":"BreakAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"windowName","type":"string?","default":"null","doc":"The new window's name."},{"name":"detach","type":"bool","default":"true","doc":"Whether the new window is left unselected."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The window the pane now lives in."}],"doc":{"summary":"Moves this pane out into a window of its own."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":153,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.BreakAsync","product":"core","slug":"libtmux-pane-breakasync"},{"id":"LibTmux.Pane.SplitAsync","name":"SplitAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"SplitPaneRequest?","default":"null","doc":"How to split."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The created pane."}],"doc":{"summary":"Splits this pane.","examples":[{"lang":"console","intro":"Create entities directly inside an owned server scope, then read the session and window children. The outer scope stops its daemon and all created entities. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/CreateWindowPane.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-createwindowpane-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// The outer server scope owns everything created directly inside this daemon.\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nSession session = await owned.Value.CreateSessionAsync(\n new NewSessionRequest { Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\" }, token);\nWindow window = await session.CreateWindowAsync(\n new NewWindowRequest { Name = \"editor\", Command = \"/bin/cat\" }, token);\nPane original = (await window.GetPanesAsync(token)).Single();\nPane added = await original.SplitAsync(\n new SplitPaneRequest { Direction = PaneDirection.Right, Command = \"/bin/cat\" }, token);\n\nIReadOnlyList windows = await session.GetWindowsAsync(token);\nIReadOnlyList panes = await session.GetPanesAsync(token);\nif (windows.Count != 2 || panes.Count != 3 || added.Id == original.Id)\n{\n throw new InvalidOperationException(\"Expected two windows and three distinct panes.\");\n}\n\nConsole.WriteLine($\"Created session {session.Name} and window {window.Name}.\");\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Created session demo and window editor.\nWindows: 2; panes: 3\n"}]},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":223,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SplitAsync","product":"core","slug":"libtmux-pane-splitasync"},{"id":"LibTmux.Pane.CreatePaneAsync","name":"CreatePaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"NewPaneRequest?","default":"null","doc":"The pane to create."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The created pane.","raises":[{"type":"TmuxVersionTooLowException","doc":"The server predates tmux 3.7, which introduced the command."}]}],"doc":{"summary":"Creates a floating pane against this one."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":243,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.CreatePaneAsync","product":"core","slug":"libtmux-pane-createpaneasync"},{"id":"LibTmux.Pane.JoinAsync","name":"JoinAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"MovePaneRequest","doc":"Where the pane lands."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Joins this pane into another window."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":258,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.JoinAsync","product":"core","slug":"libtmux-pane-joinasync"},{"id":"LibTmux.Pane.MoveAsync","name":"MoveAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"MovePaneRequest","doc":"Where the pane lands."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Moves this pane to another position."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":267,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.MoveAsync","product":"core","slug":"libtmux-pane-moveasync"},{"id":"LibTmux.Pane.SwapAsync","name":"SwapAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"SwapPaneRequest","doc":"Which pane to swap with."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Swaps this pane with another."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":276,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SwapAsync","product":"core","slug":"libtmux-pane-swapasync"},{"id":"LibTmux.Pane.KillAsync","name":"KillAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"allExcept","type":"bool","default":"false","doc":"Whether every other pane in the window is stopped instead."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Stops this pane."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":289,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.KillAsync","product":"core","slug":"libtmux-pane-killasync"},{"id":"LibTmux.Pane.RespawnAsync","name":"RespawnAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"RespawnRequest?","default":"null","doc":"What to respawn, or null to reuse the original."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Restarts the command running in this pane.","body":"tmux refuses to respawn a pane that is still running unless the request\nkills it first."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":310,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.RespawnAsync","product":"core","slug":"libtmux-pane-respawnasync"},{"id":"LibTmux.Pane.ResizeAsync","name":"ResizeAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"ResizePaneRequest","doc":"The size to apply."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new size."}],"doc":{"summary":"Resizes this pane.","body":"tmux clamps a size that does not fit rather than refusing it, so the\nresult may differ from what was asked for."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":328,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ResizeAsync","product":"core","slug":"libtmux-pane-resizeasync"},{"id":"LibTmux.Pane.SetWidthAsync","name":"SetWidthAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"width","type":"int","doc":"The width in cells."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new size."}],"doc":{"summary":"Sets this pane's width."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":346,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SetWidthAsync","product":"core","slug":"libtmux-pane-setwidthasync"},{"id":"LibTmux.Pane.SetHeightAsync","name":"SetHeightAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"height","type":"int","doc":"The height in cells."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new size."}],"doc":{"summary":"Sets this pane's height."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":356,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SetHeightAsync","product":"core","slug":"libtmux-pane-setheightasync"},{"id":"LibTmux.Pane.SetTitleAsync","name":"SetTitleAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"title","type":"string","doc":"The new title."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new title."}],"doc":{"summary":"Sets this pane's title.","body":"tmux expands the title as a format, so a # in it does not survive\nverbatim."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":370,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SetTitleAsync","product":"core","slug":"libtmux-pane-settitleasync"},{"id":"LibTmux.Pane.SelectAsync","name":"SelectAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"SelectPaneRequest?","default":"null","doc":"How to select it."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the state afterwards."}],"doc":{"summary":"Selects this pane."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":386,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SelectAsync","product":"core","slug":"libtmux-pane-selectasync"},{"id":"LibTmux.Pane.WaitForTextAsync","name":"WaitForTextAsync","kind":"method","modifiers":["overload"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"text","type":"string","doc":"The text to wait for, matched within a line."},{"name":"timeout","type":"TimeSpan","doc":"How long to wait."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops the wait."}],"returns":"Task","returnsDoc":"How the wait ended.","raises":[{"type":"ArgumentException","doc":"The text is empty or contains a line break."},{"type":"ArgumentOutOfRangeException","doc":"The timeout is negative or longer than 49 days."},{"type":"TmuxTransportException","doc":"Control observation failed and polling was not enabled."},{"type":"TmuxObjectNotFoundException","doc":"tmux no longer has the pane when the wait begins."}]},{"params":[{"name":"request","type":"PaneWaitRequest","doc":"The patterns and time allowed."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops the wait."}],"returns":"Task","returnsDoc":"How the wait ended.","raises":[{"type":"ArgumentOutOfRangeException","doc":"The timeout is negative or longer than 49 days."},{"type":"TmuxTransportException","doc":"Control observation failed and polling was not enabled."},{"type":"TmuxObjectNotFoundException","doc":"tmux no longer has the pane when the wait begins."},{"type":"RegexMatchTimeoutException","doc":"A pattern exceeded its own match timeout."}]}],"doc":{"summary":"Waits until the pane shows literal text.","body":"Text already on screen ends the wait at once as\n. Matching is line by line,\nso the text cannot span lines."},"source":{"file":"src/LibTmux/Pane.Waiting.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.WaitForTextAsync","product":"core","slug":"libtmux-pane-waitfortextasync"},{"id":"LibTmux.Pane.SendTextAndWaitAsync","name":"SendTextAndWaitAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"line","type":"string","doc":"The line to type, sent verbatim."},{"name":"text","type":"string","doc":"The text to wait for, matched literally."},{"name":"timeout","type":"TimeSpan","doc":"How long to wait, counted from the call."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops the wait; a line already sent stays sent."}],"returns":"Task","returnsDoc":"How the wait ended.","raises":[{"type":"ArgumentNullException","doc":" is null."},{"type":"ArgumentException","doc":"The match text is empty or spans lines, or the typed line exceeds 65536 UTF-8 bytes."},{"type":"ArgumentOutOfRangeException","doc":"The timeout is negative or longer than 49 days."},{"type":"IOException","doc":"Echo projection exceeds its bounded work."},{"type":"RegexMatchTimeoutException","doc":"Echo matching exceeds its finite regex time."},{"type":"TmuxPaneException","doc":"The pane's program had already exited, or the pane changed during every read until the timeout, so nothing was sent."},{"type":"TmuxObjectNotFoundException","doc":"tmux no longer has the pane."},{"type":"LibTmuxException","doc":"The line was typed but Enter failed. The pane may already have acted\non it; do not retry the whole call."}]}],"doc":{"summary":"Types a line, presses Enter, and waits for a later line to contain the text.","body":" with 's\nkeys: the screen before the line is typed never ends the wait, and the\nline's echo is discounted. The typed line may be at most 65536 UTF-8\nbytes so echo projection fits within the wait's work budget."},"source":{"file":"src/LibTmux/Pane.Waiting.cs","line":95,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SendTextAndWaitAsync","product":"core","slug":"libtmux-pane-sendtextandwaitasync"},{"id":"LibTmux.Pane.SendKeysAndWaitAsync","name":"SendKeysAndWaitAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"keys","type":"SendKeysRequest","doc":"What to type."},{"name":"wait","type":"PaneWaitRequest","doc":"The patterns that end the wait, and how long to wait."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops the wait; keys already sent stay sent."}],"returns":"Task","returnsDoc":"How the wait ended.","raises":[{"type":"ArgumentException","doc":"The request has no patterns or typed literal text exceeds 65536 UTF-8 bytes."},{"type":"ArgumentOutOfRangeException","doc":"The timeout is negative or longer than 49 days."},{"type":"IOException","doc":"Echo projection exceeds its bounded work."},{"type":"RegexMatchTimeoutException","doc":"Echo matching exceeds its finite regex time."},{"type":"TmuxPaneException","doc":"The pane's program had already exited, or the pane changed during every read until the timeout, so nothing was sent."},{"type":"TmuxObjectNotFoundException","doc":"tmux no longer has the pane."},{"type":"LibTmuxException","doc":"The text was sent but a requested Enter failed. The pane may already\nhave acted on the text; do not retry the whole call."}]}],"doc":{"summary":"Sends keys to the pane and waits for what it prints in response.","body":"The wait reads the screen before the keys go, so output that follows at\nonce is not missed, and judges only what the pane prints afterwards:\ntext already on screen never ends it. A shell echoes typed text back, so\nliteral text (, as\n sends) is removed from what the pane shows\nbefore matching, including the part of a line the shell has echoed so\nfar. Waiting for done after typing echo done therefore\nwaits for the command's output, not for the line that was typed.\n\nThe removal is by text: output identical to a typed line, as a whole\nword, is removed too. Key names, and text sent with\n,\n or a copy-mode command, are not\nremoved.\n\nA typed line the pane wrapped onto a second row is still recognised.\nLike ,\nthe wait sleeps on the pane's output through a control-mode client.\nTyped literal text may be at most 65536 UTF-8 bytes; ordinary\n has no\necho-projection limit."},"source":{"file":"src/LibTmux/Pane.Waiting.cs","line":151,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SendKeysAndWaitAsync","product":"core","slug":"libtmux-pane-sendkeysandwaitasync"},{"id":"LibTmux.Pane.WaitUntilAsync","name":"WaitUntilAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"condition","type":"Func, bool>","doc":"Judges the visible rows, top to bottom."},{"name":"timeout","type":"TimeSpan","doc":"How long to wait."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops the wait."}],"returns":"Task","returnsDoc":"How the wait ended.","raises":[{"type":"ArgumentOutOfRangeException","doc":"The timeout is negative or longer than 49 days."},{"type":"TmuxTransportException","doc":"Control observation failed."},{"type":"TmuxObjectNotFoundException","doc":"tmux no longer has the pane when the wait begins."}]}],"doc":{"summary":"Waits until a condition holds over the rows the pane shows.","body":"The condition is tested when the wait begins and again each time the\npane prints or changes state, so a screen that is already right ends the\nwait at once as . Unlike\n, it\nsees the whole screen, including rows a full-screen program redraws.\nA program that exits leaving a screen the condition accepts ends the\nwait as , not\n."},"source":{"file":"src/LibTmux/Pane.Waiting.cs","line":191,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.WaitUntilAsync","product":"core","slug":"libtmux-pane-waituntilasync"},{"id":"LibTmux.PaneId","name":"PaneId","kind":"struct","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Represents a generation-independent tmux pane identifier."},"source":{"file":"src/LibTmux/PaneId.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneId","product":"core","slug":"libtmux-paneid"},{"id":"LibTmux.PaneId.PaneId","name":"PaneId","kind":"method","modifiers":[],"parent":"LibTmux.PaneId","signatures":[{"params":[{"name":"value","type":"int"}]}],"doc":{"summary":"Initializes a pane identifier."},"source":{"file":"src/LibTmux/PaneId.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneId.PaneId","product":"core","slug":"libtmux-paneid-paneid"},{"id":"LibTmux.PaneId.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.PaneId","signatures":[],"type":"int","doc":{"summary":"Gets the nonnegative numeric value."},"source":{"file":"src/LibTmux/PaneId.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneId.Value","product":"core","slug":"libtmux-paneid-value"},{"id":"LibTmux.PaneId.Parse","name":"Parse","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.PaneId","signatures":[{"params":[{"name":"text","type":"string"}],"returns":"PaneId"},{"params":[{"name":"text","type":"ReadOnlySpan","doc":"The text to parse."}],"returns":"PaneId","returnsDoc":"The parsed identifier.","raises":[{"type":"FormatException","doc":"The text is not a canonical pane identifier."}]}],"doc":{"summary":"Parses a prefixed pane identifier."},"source":{"file":"src/LibTmux/PaneId.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneId.Parse","product":"core","slug":"libtmux-paneid-parse"},{"id":"LibTmux.PaneId.TryParse","name":"TryParse","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.PaneId","signatures":[{"params":[{"name":"text","type":"string?"},{"name":"result","type":"PaneId"}],"returns":"bool"},{"params":[{"name":"text","type":"ReadOnlySpan","doc":"The text to parse."},{"name":"result","type":"PaneId","doc":"The parsed identifier when this succeeds."}],"returns":"bool","returnsDoc":" when the text was a canonical identifier."}],"doc":{"summary":"Tries to parse a prefixed pane identifier."},"source":{"file":"src/LibTmux/PaneId.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneId.TryParse","product":"core","slug":"libtmux-paneid-tryparse"},{"id":"LibTmux.PaneId.CompareTo","name":"CompareTo","kind":"method","modifiers":[],"parent":"LibTmux.PaneId","signatures":[{"params":[{"name":"other","type":"PaneId","doc":"The identifier to compare against."}],"returns":"int","returnsDoc":"A negative value, zero, or a positive value."}],"doc":{"summary":"Orders this identifier against another numerically.","body":"tmux hands out pane identifiers in increasing order, so the ordering\nis oldest first. Without it OrderBy and Array.Sort throw\nrather than sorting."},"source":{"file":"src/LibTmux/PaneId.cs","line":76,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneId.CompareTo","product":"core","slug":"libtmux-paneid-compareto"},{"id":"LibTmux.PaneId.ToString","name":"ToString","kind":"method","modifiers":[],"parent":"LibTmux.PaneId","signatures":[{"params":[],"returns":"string"}],"doc":{"summary":"Returns the canonical prefixed identifier."},"source":{"file":"src/LibTmux/PaneId.cs","line":124,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneId.ToString","product":"core","slug":"libtmux-paneid-tostring"},{"id":"LibTmux.PsmuxCaptureOptions","name":"PsmuxCaptureOptions","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Chooses the psmux pane text that can be captured safely."},"source":{"file":"src/LibTmux/Psmux/PsmuxCaptureOptions.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxCaptureOptions","product":"core","slug":"libtmux-psmuxcaptureoptions"},{"id":"LibTmux.PsmuxCaptureOptions.PsmuxCaptureOptions","name":"PsmuxCaptureOptions","kind":"method","modifiers":[],"parent":"LibTmux.PsmuxCaptureOptions","signatures":[{"params":[{"name":"startLine","type":"CapturePanePosition?","default":"null","doc":"The first line, or for psmux's default."},{"name":"endLine","type":"CapturePanePosition?","default":"null","doc":"The last line, or for psmux's default."},{"name":"escapeSequences","type":"bool","default":"false","doc":"Whether terminal escape sequences are preserved."},{"name":"joinWrappedLines","type":"bool","default":"false","doc":"Whether wrapped screen rows are joined."}]}],"doc":{"summary":"Initializes a bounded psmux capture."},"source":{"file":"src/LibTmux/Psmux/PsmuxCaptureOptions.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxCaptureOptions.PsmuxCaptureOptions","product":"core","slug":"libtmux-psmuxcaptureoptions-psmuxcaptureoptions"},{"id":"LibTmux.PsmuxCaptureOptions.StartLine","name":"StartLine","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxCaptureOptions","signatures":[],"type":"CapturePanePosition?","doc":{"summary":"Gets the first line to capture."},"source":{"file":"src/LibTmux/Psmux/PsmuxCaptureOptions.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxCaptureOptions.StartLine","product":"core","slug":"libtmux-psmuxcaptureoptions-startline"},{"id":"LibTmux.PsmuxCaptureOptions.EndLine","name":"EndLine","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxCaptureOptions","signatures":[],"type":"CapturePanePosition?","doc":{"summary":"Gets the last line to capture."},"source":{"file":"src/LibTmux/Psmux/PsmuxCaptureOptions.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxCaptureOptions.EndLine","product":"core","slug":"libtmux-psmuxcaptureoptions-endline"},{"id":"LibTmux.PsmuxCaptureOptions.EscapeSequences","name":"EscapeSequences","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxCaptureOptions","signatures":[],"type":"bool","doc":{"summary":"Gets whether terminal escape sequences are preserved."},"source":{"file":"src/LibTmux/Psmux/PsmuxCaptureOptions.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxCaptureOptions.EscapeSequences","product":"core","slug":"libtmux-psmuxcaptureoptions-escapesequences"},{"id":"LibTmux.PsmuxCaptureOptions.JoinWrappedLines","name":"JoinWrappedLines","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxCaptureOptions","signatures":[],"type":"bool","doc":{"summary":"Gets whether wrapped screen rows are joined."},"source":{"file":"src/LibTmux/Psmux/PsmuxCaptureOptions.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxCaptureOptions.JoinWrappedLines","product":"core","slug":"libtmux-psmuxcaptureoptions-joinwrappedlines"},{"id":"LibTmux.PsmuxConnectionOptions","name":"PsmuxConnectionOptions","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Configures the bounded psmux query preview.","body":"The executable is verified before every client launch. The already-running\npsmux server must have been provisioned separately with the same clean build,\ndata directory, namespace, and an alias-free configuration."},"source":{"file":"src/LibTmux/Psmux/PsmuxConnectionOptions.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxConnectionOptions","product":"core","slug":"libtmux-psmuxconnectionoptions"},{"id":"LibTmux.PsmuxConnectionOptions.PsmuxConnectionOptions","name":"PsmuxConnectionOptions","kind":"method","modifiers":[],"parent":"LibTmux.PsmuxConnectionOptions","signatures":[{"params":[{"name":"executablePath","type":"string","doc":"The fully qualified psmux.exe path on a fixed local Windows drive.\nUse its /mnt/... path when WSL launches psmux."},{"name":"expectedBinarySha256","type":"string","doc":"The exact audited client SHA-256 exposed by\n."},{"name":"dataDirectory","type":"string","doc":"A canonical, absolute data-directory path on a fixed local Windows drive."},{"name":"namespaceName","type":"string","doc":"A dedicated non-default -L namespace containing exactly one session."},{"name":"logger","type":"ILogger?","default":"null","doc":"The optional connection logger."}],"raises":[{"type":"ArgumentException","doc":"A path, hash, or namespace is absent, malformed, ambiguous, not fixed-drive,\nor not isolated."}]}],"doc":{"summary":"Initializes one explicit psmux endpoint."},"source":{"file":"src/LibTmux/Psmux/PsmuxConnectionOptions.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxConnectionOptions.PsmuxConnectionOptions","product":"core","slug":"libtmux-psmuxconnectionoptions-psmuxconnectionoptions"},{"id":"LibTmux.PsmuxConnectionOptions.ExecutablePath","name":"ExecutablePath","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxConnectionOptions","signatures":[],"type":"string","doc":{"summary":"Gets the local absolute psmux client executable path."},"source":{"file":"src/LibTmux/Psmux/PsmuxConnectionOptions.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxConnectionOptions.ExecutablePath","product":"core","slug":"libtmux-psmuxconnectionoptions-executablepath"},{"id":"LibTmux.PsmuxConnectionOptions.ExpectedBinarySha256","name":"ExpectedBinarySha256","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxConnectionOptions","signatures":[],"type":"string","doc":{"summary":"Gets the expected executable SHA-256 in lowercase hexadecimal."},"source":{"file":"src/LibTmux/Psmux/PsmuxConnectionOptions.cs","line":71,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxConnectionOptions.ExpectedBinarySha256","product":"core","slug":"libtmux-psmuxconnectionoptions-expectedbinarysha256"},{"id":"LibTmux.PsmuxConnectionOptions.DataDirectory","name":"DataDirectory","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxConnectionOptions","signatures":[],"type":"string","doc":{"summary":"Gets the canonical isolated data-directory path on a fixed local Windows drive."},"source":{"file":"src/LibTmux/Psmux/PsmuxConnectionOptions.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxConnectionOptions.DataDirectory","product":"core","slug":"libtmux-psmuxconnectionoptions-datadirectory"},{"id":"LibTmux.PsmuxConnectionOptions.NamespaceName","name":"NamespaceName","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxConnectionOptions","signatures":[],"type":"string","doc":{"summary":"Gets the explicit non-default psmux namespace."},"source":{"file":"src/LibTmux/Psmux/PsmuxConnectionOptions.cs","line":77,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxConnectionOptions.NamespaceName","product":"core","slug":"libtmux-psmuxconnectionoptions-namespacename"},{"id":"LibTmux.PsmuxConnectionOptions.Logger","name":"Logger","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxConnectionOptions","signatures":[],"type":"ILogger?","doc":{"summary":"Gets the optional connection logger."},"source":{"file":"src/LibTmux/Psmux/PsmuxConnectionOptions.cs","line":80,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxConnectionOptions.Logger","product":"core","slug":"libtmux-psmuxconnectionoptions-logger"},{"id":"LibTmux.PsmuxPane","name":"PsmuxPane","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"An immutable observation of one psmux pane.","body":"This observation is bound to 's captured generation.\nQueries throw after replacement;\ncall to obtain a fresh observation."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane","product":"core","slug":"libtmux-psmuxpane"},{"id":"LibTmux.PsmuxPane.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxPane","signatures":[],"type":"PsmuxServer","doc":{"summary":"Gets the psmux endpoint that produced this observation."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane.Server","product":"core","slug":"libtmux-psmuxpane-server"},{"id":"LibTmux.PsmuxPane.Id","name":"Id","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxPane","signatures":[],"type":"PaneId","doc":{"summary":"Gets the captured pane identifier."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane.Id","product":"core","slug":"libtmux-psmuxpane-id"},{"id":"LibTmux.PsmuxPane.SessionId","name":"SessionId","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxPane","signatures":[],"type":"SessionId","doc":{"summary":"Gets the captured parent session identifier."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane.SessionId","product":"core","slug":"libtmux-psmuxpane-sessionid"},{"id":"LibTmux.PsmuxPane.WindowId","name":"WindowId","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxPane","signatures":[],"type":"WindowId","doc":{"summary":"Gets the captured parent window identifier."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane.WindowId","product":"core","slug":"libtmux-psmuxpane-windowid"},{"id":"LibTmux.PsmuxPane.Index","name":"Index","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxPane","signatures":[],"type":"int","doc":{"summary":"Gets the captured pane index."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane.Index","product":"core","slug":"libtmux-psmuxpane-index"},{"id":"LibTmux.PsmuxPane.Width","name":"Width","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxPane","signatures":[],"type":"int","doc":{"summary":"Gets the captured width in columns."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane.Width","product":"core","slug":"libtmux-psmuxpane-width"},{"id":"LibTmux.PsmuxPane.Height","name":"Height","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxPane","signatures":[],"type":"int","doc":{"summary":"Gets the captured height in rows."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane.Height","product":"core","slug":"libtmux-psmuxpane-height"},{"id":"LibTmux.PsmuxPane.Title","name":"Title","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxPane","signatures":[],"type":"string?","doc":{"summary":"Gets the captured pane title."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane.Title","product":"core","slug":"libtmux-psmuxpane-title"},{"id":"LibTmux.PsmuxPane.CaptureAsync","name":"CaptureAsync","kind":"method","modifiers":[],"parent":"LibTmux.PsmuxPane","signatures":[{"params":[{"name":"options","type":"PsmuxCaptureOptions?","default":"null","doc":"The typed capture range and rendering choices."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the psmux query."}],"returns":"Task>","returnsDoc":"The captured lines.","raises":[{"type":"InvalidOperationException","doc":"The selected namespace has no live session."},{"type":"StaleServerGenerationException","doc":"The sole session was replaced after this observation was read."},{"type":"NotSupportedException","doc":"The selected namespace contains more than one session."},{"type":"TmuxObjectNotFoundException","doc":"The observed pane is no longer visible during the preflight."},{"type":"LibTmuxException","doc":"The verified client could not complete the query."}]}],"doc":{"summary":"Reads this pane's text through the audited capture subset.","body":"Target consistency is best effort. An external process can remove the\npane between LibTmux's existence preflight and psmux's capture."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane.CaptureAsync","product":"core","slug":"libtmux-psmuxpane-captureasync"},{"id":"LibTmux.PsmuxServer","name":"PsmuxServer","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reads one isolated, single-session psmux namespace.","body":"This type exposes only the query operations audited for the pinned psmux\nbuild. It is intentionally separate from , whose\nlifecycle, mutation, chaining, and control-mode contracts require real tmux.\nEach observation is bound to the session generation seen at connection time.\nUse to observe a replacement session."},"source":{"file":"src/LibTmux/Psmux/PsmuxServer.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxServer","product":"core","slug":"libtmux-psmuxserver"},{"id":"LibTmux.PsmuxServer.ConnectionOptions","name":"ConnectionOptions","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxServer","signatures":[],"type":"PsmuxConnectionOptions","doc":{"summary":"Gets the connection settings used for this observation."},"source":{"file":"src/LibTmux/Psmux/PsmuxServer.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxServer.ConnectionOptions","product":"core","slug":"libtmux-psmuxserver-connectionoptions"},{"id":"LibTmux.PsmuxServer.Version","name":"Version","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxServer","signatures":[],"type":"TmuxVersion","doc":{"summary":"Gets the psmux compatibility version reported at connection time."},"source":{"file":"src/LibTmux/Psmux/PsmuxServer.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxServer.Version","product":"core","slug":"libtmux-psmuxserver-version"},{"id":"LibTmux.PsmuxServer.ConnectAsync","name":"ConnectAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.PsmuxServer","signatures":[{"params":[{"name":"options","type":"PsmuxConnectionOptions","doc":"The executable trust and isolated endpoint settings."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels process startup and discovery."}],"returns":"Task","returnsDoc":"A query-only psmux server observation.","raises":[{"type":"ArgumentNullException","doc":" is null."},{"type":"InvalidOperationException","doc":"The selected namespace has no live session."},{"type":"NotSupportedException","doc":"The executable, build, namespace, session count, or requested behavior is outside\nthe audited preview contract."},{"type":"LibTmuxException","doc":"The verified client could not complete discovery."}]}],"doc":{"summary":"Connects to a separately provisioned psmux namespace."},"source":{"file":"src/LibTmux/Psmux/PsmuxServer.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxServer.ConnectAsync","product":"core","slug":"libtmux-psmuxserver-connectasync"},{"id":"LibTmux.PsmuxServer.GetSessionAsync","name":"GetSessionAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.PsmuxServer","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the psmux query."}],"returns":"Task","returnsDoc":"The current immutable session observation.","raises":[{"type":"InvalidOperationException","doc":"The selected namespace no longer has one live session."},{"type":"StaleServerGenerationException","doc":"The sole session was replaced after this server was connected."},{"type":"NotSupportedException","doc":"The selected namespace contains more than one session."},{"type":"LibTmuxException","doc":"The verified client could not complete the query."}]}],"doc":{"summary":"Reads the sole visible session."},"source":{"file":"src/LibTmux/Psmux/PsmuxServer.cs","line":85,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxServer.GetSessionAsync","product":"core","slug":"libtmux-psmuxserver-getsessionasync"},{"id":"LibTmux.PsmuxServer.GetWindowsAsync","name":"GetWindowsAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.PsmuxServer","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the psmux query."}],"returns":"Task>","returnsDoc":"Current immutable window observations.","raises":[{"type":"InvalidOperationException","doc":"The selected namespace has no live session."},{"type":"StaleServerGenerationException","doc":"The sole session was replaced after this server was connected."},{"type":"NotSupportedException","doc":"The selected namespace contains more than one session."},{"type":"LibTmuxException","doc":"The verified client could not complete the query."}]}],"doc":{"summary":"Reads every window in the sole session."},"source":{"file":"src/LibTmux/Psmux/PsmuxServer.cs","line":113,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxServer.GetWindowsAsync","product":"core","slug":"libtmux-psmuxserver-getwindowsasync"},{"id":"LibTmux.PsmuxServer.GetPanesAsync","name":"GetPanesAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.PsmuxServer","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the psmux query."}],"returns":"Task>","returnsDoc":"Current immutable pane observations.","raises":[{"type":"InvalidOperationException","doc":"The selected namespace has no live session."},{"type":"StaleServerGenerationException","doc":"The sole session was replaced after this server was connected."},{"type":"NotSupportedException","doc":"The selected namespace contains more than one session."},{"type":"LibTmuxException","doc":"The verified client could not complete the query."}]}],"doc":{"summary":"Reads every pane in the sole session."},"source":{"file":"src/LibTmux/Psmux/PsmuxServer.cs","line":135,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxServer.GetPanesAsync","product":"core","slug":"libtmux-psmuxserver-getpanesasync"},{"id":"LibTmux.PsmuxServer.RefreshAsync","name":"RefreshAsync","kind":"method","modifiers":[],"parent":"LibTmux.PsmuxServer","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels process startup and discovery."}],"returns":"Task","returnsDoc":"A replacement observation using the same endpoint settings.","raises":[{"type":"InvalidOperationException","doc":"The selected namespace has no live session."},{"type":"NotSupportedException","doc":"The executable, build, namespace, or session count is outside the preview contract."},{"type":"LibTmuxException","doc":"The verified client could not complete discovery."}]}],"doc":{"summary":"Reconnects and returns a fresh server observation."},"source":{"file":"src/LibTmux/Psmux/PsmuxServer.cs","line":154,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxServer.RefreshAsync","product":"core","slug":"libtmux-psmuxserver-refreshasync"},{"id":"LibTmux.PsmuxSession","name":"PsmuxSession","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"An immutable observation of the sole psmux session.","body":"This observation is bound to 's captured generation.\nQuery methods throw after replacement;\ncall to obtain a fresh observation."},"source":{"file":"src/LibTmux/Psmux/PsmuxSession.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxSession","product":"core","slug":"libtmux-psmuxsession"},{"id":"LibTmux.PsmuxSession.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxSession","signatures":[],"type":"PsmuxServer","doc":{"summary":"Gets the psmux endpoint that produced this observation."},"source":{"file":"src/LibTmux/Psmux/PsmuxSession.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxSession.Server","product":"core","slug":"libtmux-psmuxsession-server"},{"id":"LibTmux.PsmuxSession.Id","name":"Id","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxSession","signatures":[],"type":"SessionId","doc":{"summary":"Gets the captured session identifier."},"source":{"file":"src/LibTmux/Psmux/PsmuxSession.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxSession.Id","product":"core","slug":"libtmux-psmuxsession-id"},{"id":"LibTmux.PsmuxSession.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxSession","signatures":[],"type":"string","doc":{"summary":"Gets the captured session name."},"source":{"file":"src/LibTmux/Psmux/PsmuxSession.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxSession.Name","product":"core","slug":"libtmux-psmuxsession-name"},{"id":"LibTmux.PsmuxSession.Attached","name":"Attached","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxSession","signatures":[],"type":"bool","doc":{"summary":"Gets whether a client was attached when the session was read."},"source":{"file":"src/LibTmux/Psmux/PsmuxSession.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxSession.Attached","product":"core","slug":"libtmux-psmuxsession-attached"},{"id":"LibTmux.PsmuxSession.GetWindowsAsync","name":"GetWindowsAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.PsmuxSession","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the psmux query."}],"returns":"Task>","returnsDoc":"Current immutable window observations.","raises":[{"type":"InvalidOperationException","doc":"The selected namespace has no live session."},{"type":"StaleServerGenerationException","doc":"The sole session was replaced after this observation was read."},{"type":"NotSupportedException","doc":"The selected namespace contains more than one session."},{"type":"LibTmuxException","doc":"The verified client could not complete the query."}]}],"doc":{"summary":"Reads the session's current windows."},"source":{"file":"src/LibTmux/Psmux/PsmuxSession.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxSession.GetWindowsAsync","product":"core","slug":"libtmux-psmuxsession-getwindowsasync"},{"id":"LibTmux.PsmuxSession.GetPanesAsync","name":"GetPanesAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.PsmuxSession","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the psmux query."}],"returns":"Task>","returnsDoc":"Current immutable pane observations.","raises":[{"type":"InvalidOperationException","doc":"The selected namespace has no live session."},{"type":"StaleServerGenerationException","doc":"The sole session was replaced after this observation was read."},{"type":"NotSupportedException","doc":"The selected namespace contains more than one session."},{"type":"LibTmuxException","doc":"The verified client could not complete the query."}]}],"doc":{"summary":"Reads the session's current panes."},"source":{"file":"src/LibTmux/Psmux/PsmuxSession.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxSession.GetPanesAsync","product":"core","slug":"libtmux-psmuxsession-getpanesasync"},{"id":"LibTmux.PsmuxWindow","name":"PsmuxWindow","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"An immutable observation of one psmux window.","body":"This observation is bound to 's captured generation.\nQuery methods throw after replacement;\ncall to obtain a fresh observation."},"source":{"file":"src/LibTmux/Psmux/PsmuxWindow.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxWindow","product":"core","slug":"libtmux-psmuxwindow"},{"id":"LibTmux.PsmuxWindow.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxWindow","signatures":[],"type":"PsmuxServer","doc":{"summary":"Gets the psmux endpoint that produced this observation."},"source":{"file":"src/LibTmux/Psmux/PsmuxWindow.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxWindow.Server","product":"core","slug":"libtmux-psmuxwindow-server"},{"id":"LibTmux.PsmuxWindow.Id","name":"Id","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxWindow","signatures":[],"type":"WindowId","doc":{"summary":"Gets the captured window identifier."},"source":{"file":"src/LibTmux/Psmux/PsmuxWindow.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxWindow.Id","product":"core","slug":"libtmux-psmuxwindow-id"},{"id":"LibTmux.PsmuxWindow.SessionId","name":"SessionId","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxWindow","signatures":[],"type":"SessionId","doc":{"summary":"Gets the captured parent session identifier."},"source":{"file":"src/LibTmux/Psmux/PsmuxWindow.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxWindow.SessionId","product":"core","slug":"libtmux-psmuxwindow-sessionid"},{"id":"LibTmux.PsmuxWindow.Index","name":"Index","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxWindow","signatures":[],"type":"int","doc":{"summary":"Gets the captured window index."},"source":{"file":"src/LibTmux/Psmux/PsmuxWindow.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxWindow.Index","product":"core","slug":"libtmux-psmuxwindow-index"},{"id":"LibTmux.PsmuxWindow.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxWindow","signatures":[],"type":"string","doc":{"summary":"Gets the captured window name."},"source":{"file":"src/LibTmux/Psmux/PsmuxWindow.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxWindow.Name","product":"core","slug":"libtmux-psmuxwindow-name"},{"id":"LibTmux.PsmuxWindow.Width","name":"Width","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxWindow","signatures":[],"type":"int","doc":{"summary":"Gets the captured width in columns."},"source":{"file":"src/LibTmux/Psmux/PsmuxWindow.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxWindow.Width","product":"core","slug":"libtmux-psmuxwindow-width"},{"id":"LibTmux.PsmuxWindow.Height","name":"Height","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxWindow","signatures":[],"type":"int","doc":{"summary":"Gets the captured height in rows."},"source":{"file":"src/LibTmux/Psmux/PsmuxWindow.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxWindow.Height","product":"core","slug":"libtmux-psmuxwindow-height"},{"id":"LibTmux.PsmuxWindow.GetPanesAsync","name":"GetPanesAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.PsmuxWindow","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the psmux query."}],"returns":"Task>","returnsDoc":"Current immutable pane observations.","raises":[{"type":"InvalidOperationException","doc":"The selected namespace has no live session."},{"type":"StaleServerGenerationException","doc":"The sole session was replaced after this observation was read."},{"type":"NotSupportedException","doc":"The selected namespace contains more than one session."},{"type":"TmuxObjectNotFoundException","doc":"The observed window is no longer visible."},{"type":"LibTmuxException","doc":"The verified client could not complete the query."}]}],"doc":{"summary":"Reads the window's current panes."},"source":{"file":"src/LibTmux/Psmux/PsmuxWindow.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxWindow.GetPanesAsync","product":"core","slug":"libtmux-psmuxwindow-getpanesasync"},{"id":"LibTmux.Server","name":"Server","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Represents an immutable server handle and snapshot.","body":"Thread-safe: the handle is immutable once constructed and may be shared\nfreely, including as a singleton. Every mutating call answers a new handle\nrather than changing this one.","examples":[{"lang":"console","intro":"Distinguish an endpoint handle from a discovered server. Connection discovery returns an immutable replacement without capturing child relations. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerConstruction.cs","code":"using System;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverconstruction-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// Open records the endpoint without running tmux or reading its state.\nServer endpoint = Server.Open(options);\nif (endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Open must not discover a server.\");\n}\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n\n// Connect discovers the live daemon and returns a new materialized handle.\nServer connected = await endpoint.ConnectAsync(token);\nServer sameEndpoint = await Server.ConnectAsync(options, token);\nif (!connected.IsMaterialized || !sameEndpoint.IsMaterialized || endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Connecting must leave the original handle unchanged.\");\n}\nif (connected.Generation != sameEndpoint.Generation || connected.Sessions.IsCaptured)\n{\n throw new InvalidOperationException(\"Connection discovery must not capture the hierarchy.\");\n}\n\nConsole.WriteLine(\"Open records an endpoint; Connect discovers the running server.\");\nConsole.WriteLine(\"The original handle stays unmaterialized; relations remain uncaptured.\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Open records an endpoint; Connect discovers the running server.\nThe original handle stays unmaterialized; relations remain uncaptured.\n"}]},"source":{"file":"src/LibTmux/Server.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server","product":"core","slug":"libtmux-server"},{"id":"LibTmux.Server.SearchSessionsAsync","name":"SearchSessionsAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"filter","type":"UnsafeTmuxFilter","doc":"The raw tmux filter expression."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The sessions tmux kept."}],"doc":{"summary":"Runs a tmux-side filter over every session."},"source":{"file":"src/LibTmux/Query/NativeFilterSearch.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.SearchSessionsAsync","product":"core","slug":"libtmux-server-searchsessionsasync"},{"id":"LibTmux.Server.SearchWindowsAsync","name":"SearchWindowsAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"filter","type":"UnsafeTmuxFilter","doc":"The raw tmux filter expression."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The windows tmux kept."}],"doc":{"summary":"Runs a tmux-side filter over every window."},"source":{"file":"src/LibTmux/Query/NativeFilterSearch.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.SearchWindowsAsync","product":"core","slug":"libtmux-server-searchwindowsasync"},{"id":"LibTmux.Server.SearchPanesAsync","name":"SearchPanesAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"filter","type":"UnsafeTmuxFilter","doc":"The raw tmux filter expression."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The panes tmux kept."}],"doc":{"summary":"Runs a tmux-side filter over every pane."},"source":{"file":"src/LibTmux/Query/NativeFilterSearch.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.SearchPanesAsync","product":"core","slug":"libtmux-server-searchpanesasync"},{"id":"LibTmux.Server.SearchClientsAsync","name":"SearchClientsAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"filter","type":"UnsafeTmuxFilter","doc":"The raw tmux filter expression."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The clients tmux kept.","raises":[{"type":"TmuxVersionTooLowException","doc":"The server runs tmux older than 3.4, whose list-clients has no filter."}]}],"doc":{"summary":"Runs a tmux-side filter over every attached client."},"source":{"file":"src/LibTmux/Query/NativeFilterSearch.cs","line":62,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.SearchClientsAsync","product":"core","slug":"libtmux-server-searchclientsasync"},{"id":"LibTmux.AttachSessionRequest","name":"AttachSessionRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one attach-session invocation."},"source":{"file":"src/LibTmux/Requests/AttachSessionRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.AttachSessionRequest","product":"core","slug":"libtmux-attachsessionrequest"},{"id":"LibTmux.AttachSessionRequest.Target","name":"Target","kind":"property","modifiers":[],"parent":"LibTmux.AttachSessionRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the session to attach, or null for the caller's own."},"source":{"file":"src/LibTmux/Requests/AttachSessionRequest.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.AttachSessionRequest.Target","product":"core","slug":"libtmux-attachsessionrequest-target"},{"id":"LibTmux.AttachSessionRequest.DetachOthers","name":"DetachOthers","kind":"property","modifiers":[],"parent":"LibTmux.AttachSessionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether other clients are detached."},"source":{"file":"src/LibTmux/Requests/AttachSessionRequest.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.AttachSessionRequest.DetachOthers","product":"core","slug":"libtmux-attachsessionrequest-detachothers"},{"id":"LibTmux.AttachSessionRequest.ReadOnly","name":"ReadOnly","kind":"property","modifiers":[],"parent":"LibTmux.AttachSessionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the client attaches read-only."},"source":{"file":"src/LibTmux/Requests/AttachSessionRequest.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.AttachSessionRequest.ReadOnly","product":"core","slug":"libtmux-attachsessionrequest-readonly"},{"id":"LibTmux.AttachSessionRequest.ExitOnDetach","name":"ExitOnDetach","kind":"property","modifiers":[],"parent":"LibTmux.AttachSessionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the client exits when the session is destroyed."},"source":{"file":"src/LibTmux/Requests/AttachSessionRequest.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.AttachSessionRequest.ExitOnDetach","product":"core","slug":"libtmux-attachsessionrequest-exitondetach"},{"id":"LibTmux.AttachSessionRequest.ClientFlags","name":"ClientFlags","kind":"property","modifiers":[],"parent":"LibTmux.AttachSessionRequest","signatures":[],"type":"IReadOnlyList?","doc":{"summary":"Gets the client flags sent with -f."},"source":{"file":"src/LibTmux/Requests/AttachSessionRequest.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.AttachSessionRequest.ClientFlags","product":"core","slug":"libtmux-attachsessionrequest-clientflags"},{"id":"LibTmux.AttachSessionRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.AttachSessionRequest","signatures":[{"params":[{"name":"session","type":"Session","doc":"The session being attached to."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns an attach request as one tmux command."},"source":{"file":"src/LibTmux/Requests/AttachSessionRequest.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.AttachSessionRequest.ToCommand","product":"core","slug":"libtmux-attachsessionrequest-tocommand"},{"id":"LibTmux.BindKeyRequest","name":"BindKeyRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one bind-key invocation."},"source":{"file":"src/LibTmux/Requests/BindKeyRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.BindKeyRequest","product":"core","slug":"libtmux-bindkeyrequest"},{"id":"LibTmux.BindKeyRequest.BindKeyRequest","name":"BindKeyRequest","kind":"method","modifiers":[],"parent":"LibTmux.BindKeyRequest","signatures":[{"params":[{"name":"key","type":"string","doc":"The key to bind."},{"name":"command","type":"IReadOnlyList","doc":"The tmux command and its arguments."}]}],"doc":{"summary":"Initializes a key binding."},"source":{"file":"src/LibTmux/Requests/BindKeyRequest.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.BindKeyRequest.BindKeyRequest","product":"core","slug":"libtmux-bindkeyrequest-bindkeyrequest"},{"id":"LibTmux.BindKeyRequest.Key","name":"Key","kind":"property","modifiers":[],"parent":"LibTmux.BindKeyRequest","signatures":[],"type":"string","doc":{"summary":"Gets the key to bind."},"source":{"file":"src/LibTmux/Requests/BindKeyRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.BindKeyRequest.Key","product":"core","slug":"libtmux-bindkeyrequest-key"},{"id":"LibTmux.BindKeyRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.BindKeyRequest","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the tmux command and its arguments."},"source":{"file":"src/LibTmux/Requests/BindKeyRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.BindKeyRequest.Command","product":"core","slug":"libtmux-bindkeyrequest-command"},{"id":"LibTmux.BindKeyRequest.KeyTable","name":"KeyTable","kind":"property","modifiers":[],"parent":"LibTmux.BindKeyRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the key table, or null for the prefix table."},"source":{"file":"src/LibTmux/Requests/BindKeyRequest.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.BindKeyRequest.KeyTable","product":"core","slug":"libtmux-bindkeyrequest-keytable"},{"id":"LibTmux.BindKeyRequest.Note","name":"Note","kind":"property","modifiers":[],"parent":"LibTmux.BindKeyRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the note describing the binding."},"source":{"file":"src/LibTmux/Requests/BindKeyRequest.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.BindKeyRequest.Note","product":"core","slug":"libtmux-bindkeyrequest-note"},{"id":"LibTmux.BindKeyRequest.Repeat","name":"Repeat","kind":"property","modifiers":[],"parent":"LibTmux.BindKeyRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the key may repeat without the prefix."},"source":{"file":"src/LibTmux/Requests/BindKeyRequest.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.BindKeyRequest.Repeat","product":"core","slug":"libtmux-bindkeyrequest-repeat"},{"id":"LibTmux.BindKeyRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.BindKeyRequest","signatures":[{"params":[],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a ."}],"doc":{"summary":"Returns a key-binding request as one tmux command."},"source":{"file":"src/LibTmux/Requests/BindKeyRequest.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.BindKeyRequest.ToCommand","product":"core","slug":"libtmux-bindkeyrequest-tocommand"},{"id":"LibTmux.CapturePanePosition","name":"CapturePanePosition","kind":"struct","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Names one end of a capture range.","body":"tmux writes the extremes as a literal - rather than a number, which\nmeans the beginning of the history for a start and the end of the visible\npane for an end. The two named values carry that same absent line number and\ndiffer only in which flag they read well against."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePanePosition","product":"core","slug":"libtmux-capturepaneposition"},{"id":"LibTmux.CapturePanePosition.CapturePanePosition","name":"CapturePanePosition","kind":"method","modifiers":[],"parent":"LibTmux.CapturePanePosition","signatures":[{"params":[{"name":"lineNumber","type":"int","doc":"The line, where zero is the top of the visible pane."}]}],"doc":{"summary":"Initializes a position at one line."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePanePosition.CapturePanePosition","product":"core","slug":"libtmux-capturepaneposition-capturepaneposition"},{"id":"LibTmux.CapturePanePosition.BeginningOfHistory","name":"BeginningOfHistory","kind":"property","modifiers":["static"],"parent":"LibTmux.CapturePanePosition","signatures":[],"type":"CapturePanePosition","doc":{"summary":"Gets the oldest line tmux still holds."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePanePosition.BeginningOfHistory","product":"core","slug":"libtmux-capturepaneposition-beginningofhistory"},{"id":"LibTmux.CapturePanePosition.EndOfVisiblePane","name":"EndOfVisiblePane","kind":"property","modifiers":["static"],"parent":"LibTmux.CapturePanePosition","signatures":[],"type":"CapturePanePosition","doc":{"summary":"Gets the last line of the visible pane."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePanePosition.EndOfVisiblePane","product":"core","slug":"libtmux-capturepaneposition-endofvisiblepane"},{"id":"LibTmux.CapturePanePosition.LineNumber","name":"LineNumber","kind":"property","modifiers":[],"parent":"LibTmux.CapturePanePosition","signatures":[],"type":"int?","doc":{"summary":"Gets the line, or null for the extreme tmux writes as -."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePanePosition.LineNumber","product":"core","slug":"libtmux-capturepaneposition-linenumber"},{"id":"LibTmux.CapturePaneRequest","name":"CapturePaneRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one capture-pane invocation."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest","product":"core","slug":"libtmux-capturepanerequest"},{"id":"LibTmux.CapturePaneRequest.StartLine","name":"StartLine","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"CapturePanePosition?","doc":{"summary":"Gets the first line to capture."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.StartLine","product":"core","slug":"libtmux-capturepanerequest-startline"},{"id":"LibTmux.CapturePaneRequest.EndLine","name":"EndLine","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"CapturePanePosition?","doc":{"summary":"Gets the last line to capture."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.EndLine","product":"core","slug":"libtmux-capturepanerequest-endline"},{"id":"LibTmux.CapturePaneRequest.EscapeSequences","name":"EscapeSequences","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether escape sequences are preserved."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.EscapeSequences","product":"core","slug":"libtmux-capturepanerequest-escapesequences"},{"id":"LibTmux.CapturePaneRequest.EscapeNonPrintable","name":"EscapeNonPrintable","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether unprintable bytes are escaped as octal."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.EscapeNonPrintable","product":"core","slug":"libtmux-capturepanerequest-escapenonprintable"},{"id":"LibTmux.CapturePaneRequest.JoinWrappedLines","name":"JoinWrappedLines","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether wrapped lines are joined.","body":"tmux applies this in place of trailing-space handling."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.JoinWrappedLines","product":"core","slug":"libtmux-capturepanerequest-joinwrappedlines"},{"id":"LibTmux.CapturePaneRequest.PreserveTrailingSpaces","name":"PreserveTrailingSpaces","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether trailing spaces are kept."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.PreserveTrailingSpaces","product":"core","slug":"libtmux-capturepanerequest-preservetrailingspaces"},{"id":"LibTmux.CapturePaneRequest.TrimTrailingSpaces","name":"TrimTrailingSpaces","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether trailing spaces are removed."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.TrimTrailingSpaces","product":"core","slug":"libtmux-capturepanerequest-trimtrailingspaces"},{"id":"LibTmux.CapturePaneRequest.AlternateScreen","name":"AlternateScreen","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the alternate screen is captured.","body":"A pane with no alternate screen makes this an error unless\n is set."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.AlternateScreen","product":"core","slug":"libtmux-capturepanerequest-alternatescreen"},{"id":"LibTmux.CapturePaneRequest.Quiet","name":"Quiet","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a missing alternate screen is not an error.","body":"This does not quieten a target that cannot be resolved."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":60,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.Quiet","product":"core","slug":"libtmux-capturepanerequest-quiet"},{"id":"LibTmux.CapturePaneRequest.ModeScreen","name":"ModeScreen","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane's mode screen is captured."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":63,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.ModeScreen","product":"core","slug":"libtmux-capturepanerequest-modescreen"},{"id":"LibTmux.CapturePaneRequest.Pending","name":"Pending","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether pending output is captured."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.Pending","product":"core","slug":"libtmux-capturepanerequest-pending"},{"id":"LibTmux.CapturePaneRequest.Hyperlinks","name":"Hyperlinks","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether hyperlinks are captured."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":69,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.Hyperlinks","product":"core","slug":"libtmux-capturepanerequest-hyperlinks"},{"id":"LibTmux.CapturePaneRequest.LineNumbers","name":"LineNumbers","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether each line carries its number."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":72,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.LineNumbers","product":"core","slug":"libtmux-capturepanerequest-linenumbers"},{"id":"LibTmux.CapturePaneRequest.LineFlags","name":"LineFlags","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether each line carries its flags."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.LineFlags","product":"core","slug":"libtmux-capturepanerequest-lineflags"},{"id":"LibTmux.CapturePaneRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane being captured."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a capture request as one tmux command.","body":"Several capture flags arrived after tmux 3.2a, and the pane is what\nknows which tmux is answering, so the command it builds carries only\nthe flags that server accepts."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":86,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.ToCommand","product":"core","slug":"libtmux-capturepanerequest-tocommand"},{"id":"LibTmux.ChooseTreeSort","name":"ChooseTreeSort","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names how a chooser orders its rows."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeSort","product":"core","slug":"libtmux-choosetreesort"},{"id":"LibTmux.ChooseTreeSort.Index","name":"Index","kind":"constant","modifiers":[],"parent":"LibTmux.ChooseTreeSort","signatures":[],"doc":{"summary":"Order by index."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeSort.Index","product":"core","slug":"libtmux-choosetreesort-index"},{"id":"LibTmux.ChooseTreeSort.Name","name":"Name","kind":"constant","modifiers":[],"parent":"LibTmux.ChooseTreeSort","signatures":[],"doc":{"summary":"Order by name."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeSort.Name","product":"core","slug":"libtmux-choosetreesort-name"},{"id":"LibTmux.ChooseTreeSort.Time","name":"Time","kind":"constant","modifiers":[],"parent":"LibTmux.ChooseTreeSort","signatures":[],"doc":{"summary":"Order by activity time.","body":"tmux dropped this in 3.7 and rejects it there."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeSort.Time","product":"core","slug":"libtmux-choosetreesort-time"},{"id":"LibTmux.ChooseTreeSort.Size","name":"Size","kind":"constant","modifiers":[],"parent":"LibTmux.ChooseTreeSort","signatures":[],"doc":{"summary":"Order by size.","body":"Accepted on every supported tmux, but only sorts from 3.7."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeSort.Size","product":"core","slug":"libtmux-choosetreesort-size"},{"id":"LibTmux.ChooseTreeRequest","name":"ChooseTreeRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one choose-tree invocation."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeRequest","product":"core","slug":"libtmux-choosetreerequest"},{"id":"LibTmux.ChooseTreeRequest.SessionsCollapsed","name":"SessionsCollapsed","kind":"property","modifiers":[],"parent":"LibTmux.ChooseTreeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether sessions start collapsed."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeRequest.SessionsCollapsed","product":"core","slug":"libtmux-choosetreerequest-sessionscollapsed"},{"id":"LibTmux.ChooseTreeRequest.WindowsCollapsed","name":"WindowsCollapsed","kind":"property","modifiers":[],"parent":"LibTmux.ChooseTreeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether windows start collapsed."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeRequest.WindowsCollapsed","product":"core","slug":"libtmux-choosetreerequest-windowscollapsed"},{"id":"LibTmux.ChooseTreeRequest.Format","name":"Format","kind":"property","modifiers":[],"parent":"LibTmux.ChooseTreeRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the format each row renders with."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeRequest.Format","product":"core","slug":"libtmux-choosetreerequest-format"},{"id":"LibTmux.ChooseTreeRequest.NativeFilter","name":"NativeFilter","kind":"property","modifiers":[],"parent":"LibTmux.ChooseTreeRequest","signatures":[],"type":"UnsafeTmuxFilter?","doc":{"summary":"Gets the raw tmux filter limiting the rows."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeRequest.NativeFilter","product":"core","slug":"libtmux-choosetreerequest-nativefilter"},{"id":"LibTmux.ChooseTreeRequest.Sort","name":"Sort","kind":"property","modifiers":[],"parent":"LibTmux.ChooseTreeRequest","signatures":[],"type":"ChooseTreeSort?","doc":{"summary":"Gets how the rows are ordered."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeRequest.Sort","product":"core","slug":"libtmux-choosetreerequest-sort"},{"id":"LibTmux.ChooseTreeRequest.Reverse","name":"Reverse","kind":"property","modifiers":[],"parent":"LibTmux.ChooseTreeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the order is reversed."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeRequest.Reverse","product":"core","slug":"libtmux-choosetreerequest-reverse"},{"id":"LibTmux.ChooseTreeRequest.Zoom","name":"Zoom","kind":"property","modifiers":[],"parent":"LibTmux.ChooseTreeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the chooser pane is zoomed."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeRequest.Zoom","product":"core","slug":"libtmux-choosetreerequest-zoom"},{"id":"LibTmux.ChooseTreeRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.ChooseTreeRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane the chooser opens in."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a chooser request as one tmux command.","body":"tmux 3.7 dropped the activity-time sort order and rejects it by name,\nso the pane decides whether the built command carries it."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeRequest.ToCommand","product":"core","slug":"libtmux-choosetreerequest-tocommand"},{"id":"LibTmux.PromptType","name":"PromptType","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"What a command prompt is asking for.","body":"tmux uses the type to decide which history the prompt draws on and how it\ncompletes what is typed."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PromptType","product":"core","slug":"libtmux-prompttype"},{"id":"LibTmux.PromptType.Command","name":"Command","kind":"constant","modifiers":[],"parent":"LibTmux.PromptType","signatures":[],"doc":{"summary":"A tmux command."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PromptType.Command","product":"core","slug":"libtmux-prompttype-command"},{"id":"LibTmux.PromptType.Search","name":"Search","kind":"constant","modifiers":[],"parent":"LibTmux.PromptType","signatures":[],"doc":{"summary":"Text to search for."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PromptType.Search","product":"core","slug":"libtmux-prompttype-search"},{"id":"LibTmux.PromptType.Target","name":"Target","kind":"constant","modifiers":[],"parent":"LibTmux.PromptType","signatures":[],"doc":{"summary":"A target to act on."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PromptType.Target","product":"core","slug":"libtmux-prompttype-target"},{"id":"LibTmux.PromptType.WindowTarget","name":"WindowTarget","kind":"constant","modifiers":[],"parent":"LibTmux.PromptType","signatures":[],"doc":{"summary":"A window to act on."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PromptType.WindowTarget","product":"core","slug":"libtmux-prompttype-windowtarget"},{"id":"LibTmux.CommandPromptRequest","name":"CommandPromptRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one command-prompt invocation."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest","product":"core","slug":"libtmux-commandpromptrequest"},{"id":"LibTmux.CommandPromptRequest.CommandPromptRequest","name":"CommandPromptRequest","kind":"method","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[{"params":[{"name":"template","type":"string","doc":"The command to run, with the answer substituted in."}]}],"doc":{"summary":"Initializes a command prompt."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.CommandPromptRequest","product":"core","slug":"libtmux-commandpromptrequest-commandpromptrequest"},{"id":"LibTmux.CommandPromptRequest.Template","name":"Template","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"string","doc":{"summary":"Gets the command to run, with the answer substituted in."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.Template","product":"core","slug":"libtmux-commandpromptrequest-template"},{"id":"LibTmux.CommandPromptRequest.Prompt","name":"Prompt","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the text shown to the person answering."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.Prompt","product":"core","slug":"libtmux-commandpromptrequest-prompt"},{"id":"LibTmux.CommandPromptRequest.Inputs","name":"Inputs","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the answer the prompt starts with."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.Inputs","product":"core","slug":"libtmux-commandpromptrequest-inputs"},{"id":"LibTmux.CommandPromptRequest.TargetClient","name":"TargetClient","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the client to prompt, or null for the caller's own."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.TargetClient","product":"core","slug":"libtmux-commandpromptrequest-targetclient"},{"id":"LibTmux.CommandPromptRequest.OneKey","name":"OneKey","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether one keypress answers it."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.OneKey","product":"core","slug":"libtmux-commandpromptrequest-onekey"},{"id":"LibTmux.CommandPromptRequest.KeyOnly","name":"KeyOnly","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the answer is the key itself rather than text."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.KeyOnly","product":"core","slug":"libtmux-commandpromptrequest-keyonly"},{"id":"LibTmux.CommandPromptRequest.OnInputChange","name":"OnInputChange","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the command runs on every keystroke."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.OnInputChange","product":"core","slug":"libtmux-commandpromptrequest-oninputchange"},{"id":"LibTmux.CommandPromptRequest.Numeric","name":"Numeric","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether only digits are accepted."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.Numeric","product":"core","slug":"libtmux-commandpromptrequest-numeric"},{"id":"LibTmux.CommandPromptRequest.Type","name":"Type","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"PromptType?","doc":{"summary":"Gets what the prompt is asking for."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.Type","product":"core","slug":"libtmux-commandpromptrequest-type"},{"id":"LibTmux.CommandPromptRequest.ExpandFormat","name":"ExpandFormat","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the template is expanded as a format."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.ExpandFormat","product":"core","slug":"libtmux-commandpromptrequest-expandformat"},{"id":"LibTmux.CommandPromptRequest.Literal","name":"Literal","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the answer is taken literally."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":67,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.Literal","product":"core","slug":"libtmux-commandpromptrequest-literal"},{"id":"LibTmux.CommandPromptRequest.BackspaceExits","name":"BackspaceExits","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether backspace on an empty prompt closes it."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.BackspaceExits","product":"core","slug":"libtmux-commandpromptrequest-backspaceexits"},{"id":"LibTmux.CommandPromptRequest.NoFreeze","name":"NoFreeze","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the client keeps redrawing while prompting."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":73,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.NoFreeze","product":"core","slug":"libtmux-commandpromptrequest-nofreeze"},{"id":"LibTmux.CommandPromptRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[{"params":[{"name":"server","type":"Server","doc":"The server the prompt is shown on."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."},{"type":"TmuxVersionTooLowException","doc":"The request asks for a format or a prompt type and tmux is older than 3.3."}]}],"doc":{"summary":"Returns a prompt request as one tmux command.","body":"Batching does not soften the refusal below tmux 3.3: that version reads\nthe type flag as something else, so a prompt asking for one is refused\nhere exactly as it is when run alone."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.ToCommand","product":"core","slug":"libtmux-commandpromptrequest-tocommand"},{"id":"LibTmux.ConfirmBeforeRequest","name":"ConfirmBeforeRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one confirm-before invocation."},"source":{"file":"src/LibTmux/Requests/ConfirmBeforeRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ConfirmBeforeRequest","product":"core","slug":"libtmux-confirmbeforerequest"},{"id":"LibTmux.ConfirmBeforeRequest.ConfirmBeforeRequest","name":"ConfirmBeforeRequest","kind":"method","modifiers":[],"parent":"LibTmux.ConfirmBeforeRequest","signatures":[{"params":[{"name":"command","type":"IReadOnlyList","doc":"The tmux command to run once confirmed."}]}],"doc":{"summary":"Initializes a confirmation."},"source":{"file":"src/LibTmux/Requests/ConfirmBeforeRequest.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ConfirmBeforeRequest.ConfirmBeforeRequest","product":"core","slug":"libtmux-confirmbeforerequest-confirmbeforerequest"},{"id":"LibTmux.ConfirmBeforeRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.ConfirmBeforeRequest","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the tmux command to run once confirmed."},"source":{"file":"src/LibTmux/Requests/ConfirmBeforeRequest.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ConfirmBeforeRequest.Command","product":"core","slug":"libtmux-confirmbeforerequest-command"},{"id":"LibTmux.ConfirmBeforeRequest.Prompt","name":"Prompt","kind":"property","modifiers":[],"parent":"LibTmux.ConfirmBeforeRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the question shown, or null for tmux's own wording."},"source":{"file":"src/LibTmux/Requests/ConfirmBeforeRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ConfirmBeforeRequest.Prompt","product":"core","slug":"libtmux-confirmbeforerequest-prompt"},{"id":"LibTmux.ConfirmBeforeRequest.ConfirmKey","name":"ConfirmKey","kind":"property","modifiers":[],"parent":"LibTmux.ConfirmBeforeRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the key that confirms, or null for tmux's default."},"source":{"file":"src/LibTmux/Requests/ConfirmBeforeRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ConfirmBeforeRequest.ConfirmKey","product":"core","slug":"libtmux-confirmbeforerequest-confirmkey"},{"id":"LibTmux.ConfirmBeforeRequest.DefaultYes","name":"DefaultYes","kind":"property","modifiers":[],"parent":"LibTmux.ConfirmBeforeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether pressing enter confirms rather than cancels."},"source":{"file":"src/LibTmux/Requests/ConfirmBeforeRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ConfirmBeforeRequest.DefaultYes","product":"core","slug":"libtmux-confirmbeforerequest-defaultyes"},{"id":"LibTmux.ConfirmBeforeRequest.TargetClient","name":"TargetClient","kind":"property","modifiers":[],"parent":"LibTmux.ConfirmBeforeRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the client to ask, or null for the caller's own."},"source":{"file":"src/LibTmux/Requests/ConfirmBeforeRequest.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ConfirmBeforeRequest.TargetClient","product":"core","slug":"libtmux-confirmbeforerequest-targetclient"},{"id":"LibTmux.ConfirmBeforeRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.ConfirmBeforeRequest","signatures":[{"params":[{"name":"server","type":"Server","doc":"The server the confirmation is shown on."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a confirmation request as one tmux command.","body":"Naming the accepting key, and defaulting to yes, arrived in tmux 3.4,\nso the server decides whether the built command carries them."},"source":{"file":"src/LibTmux/Requests/ConfirmBeforeRequest.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ConfirmBeforeRequest.ToCommand","product":"core","slug":"libtmux-confirmbeforerequest-tocommand"},{"id":"LibTmux.CopyModeRequest","name":"CopyModeRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one copy-mode invocation."},"source":{"file":"src/LibTmux/Requests/CopyModeRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CopyModeRequest","product":"core","slug":"libtmux-copymoderequest"},{"id":"LibTmux.CopyModeRequest.ScrollUp","name":"ScrollUp","kind":"property","modifiers":[],"parent":"LibTmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane scrolls up one page on entry."},"source":{"file":"src/LibTmux/Requests/CopyModeRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CopyModeRequest.ScrollUp","product":"core","slug":"libtmux-copymoderequest-scrollup"},{"id":"LibTmux.CopyModeRequest.ExitOnBottom","name":"ExitOnBottom","kind":"property","modifiers":[],"parent":"LibTmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether reaching the bottom leaves copy mode."},"source":{"file":"src/LibTmux/Requests/CopyModeRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CopyModeRequest.ExitOnBottom","product":"core","slug":"libtmux-copymoderequest-exitonbottom"},{"id":"LibTmux.CopyModeRequest.MouseDrag","name":"MouseDrag","kind":"property","modifiers":[],"parent":"LibTmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the mode is entered for a mouse drag.","body":"Without a real mouse event tmux accepts this and enters no mode."},"source":{"file":"src/LibTmux/Requests/CopyModeRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CopyModeRequest.MouseDrag","product":"core","slug":"libtmux-copymoderequest-mousedrag"},{"id":"LibTmux.CopyModeRequest.Cancel","name":"Cancel","kind":"property","modifiers":[],"parent":"LibTmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether copy mode is left instead of entered."},"source":{"file":"src/LibTmux/Requests/CopyModeRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CopyModeRequest.Cancel","product":"core","slug":"libtmux-copymoderequest-cancel"},{"id":"LibTmux.CopyModeRequest.PageDown","name":"PageDown","kind":"property","modifiers":[],"parent":"LibTmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane scrolls down one page on entry.","body":"tmux gained this in 3.5."},"source":{"file":"src/LibTmux/Requests/CopyModeRequest.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CopyModeRequest.PageDown","product":"core","slug":"libtmux-copymoderequest-pagedown"},{"id":"LibTmux.CopyModeRequest.SourcePane","name":"SourcePane","kind":"property","modifiers":[],"parent":"LibTmux.CopyModeRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the pane whose content is shown instead."},"source":{"file":"src/LibTmux/Requests/CopyModeRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CopyModeRequest.SourcePane","product":"core","slug":"libtmux-copymoderequest-sourcepane"},{"id":"LibTmux.CopyModeRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.CopyModeRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane entering copy mode."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a copy-mode request as one tmux command.","body":"Paging down on entry arrived in tmux 3.5, so the pane decides whether\nthe built command carries that flag."},"source":{"file":"src/LibTmux/Requests/CopyModeRequest.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CopyModeRequest.ToCommand","product":"core","slug":"libtmux-copymoderequest-tocommand"},{"id":"LibTmux.DisplayMenuRequest","name":"DisplayMenuRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one display-menu invocation."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest","product":"core","slug":"libtmux-displaymenurequest"},{"id":"LibTmux.DisplayMenuRequest.DisplayMenuRequest","name":"DisplayMenuRequest","kind":"method","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[{"params":[{"name":"items","type":"IReadOnlyList","doc":"The lines the menu offers."}]}],"doc":{"summary":"Initializes a menu."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.DisplayMenuRequest","product":"core","slug":"libtmux-displaymenurequest-displaymenurequest"},{"id":"LibTmux.DisplayMenuRequest.Items","name":"Items","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the lines the menu offers."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.Items","product":"core","slug":"libtmux-displaymenurequest-items"},{"id":"LibTmux.DisplayMenuRequest.Title","name":"Title","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the title shown above them.","body":"tmux expands it as a format, so a # in it does not survive\nverbatim."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.Title","product":"core","slug":"libtmux-displaymenurequest-title"},{"id":"LibTmux.DisplayMenuRequest.TargetPane","name":"TargetPane","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the pane the menu belongs to."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.TargetPane","product":"core","slug":"libtmux-displaymenurequest-targetpane"},{"id":"LibTmux.DisplayMenuRequest.TargetClient","name":"TargetClient","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the client shown the menu."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.TargetClient","product":"core","slug":"libtmux-displaymenurequest-targetclient"},{"id":"LibTmux.DisplayMenuRequest.X","name":"X","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets where the menu sits across the screen."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.X","product":"core","slug":"libtmux-displaymenurequest-x"},{"id":"LibTmux.DisplayMenuRequest.Y","name":"Y","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets where the menu sits down the screen."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.Y","product":"core","slug":"libtmux-displaymenurequest-y"},{"id":"LibTmux.DisplayMenuRequest.StartingChoice","name":"StartingChoice","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the item selected when it opens."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.StartingChoice","product":"core","slug":"libtmux-displaymenurequest-startingchoice"},{"id":"LibTmux.DisplayMenuRequest.BorderLines","name":"BorderLines","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets which line style draws the border."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.BorderLines","product":"core","slug":"libtmux-displaymenurequest-borderlines"},{"id":"LibTmux.DisplayMenuRequest.Style","name":"Style","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the style of the menu itself."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.Style","product":"core","slug":"libtmux-displaymenurequest-style"},{"id":"LibTmux.DisplayMenuRequest.BorderStyle","name":"BorderStyle","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the style of its border."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":53,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.BorderStyle","product":"core","slug":"libtmux-displaymenurequest-borderstyle"},{"id":"LibTmux.DisplayMenuRequest.SelectedStyle","name":"SelectedStyle","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the style of the selected line."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.SelectedStyle","product":"core","slug":"libtmux-displaymenurequest-selectedstyle"},{"id":"LibTmux.DisplayMenuRequest.Mouse","name":"Mouse","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the mouse can choose an item."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":59,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.Mouse","product":"core","slug":"libtmux-displaymenurequest-mouse"},{"id":"LibTmux.DisplayMenuRequest.StayOpen","name":"StayOpen","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the menu stays open after a choice."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":62,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.StayOpen","product":"core","slug":"libtmux-displaymenurequest-stayopen"},{"id":"LibTmux.DisplayMenuRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[{"params":[{"name":"server","type":"Server","doc":"The server the menu is shown on."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a menu request as one tmux command.","body":"The style flags arrived in tmux 3.4 and the mouse flag in 3.5, so the\nserver decides which of them the built command carries."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":72,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.ToCommand","product":"core","slug":"libtmux-displaymenurequest-tocommand"},{"id":"LibTmux.DisplayMessageRequest","name":"DisplayMessageRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one display-message invocation."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest","product":"core","slug":"libtmux-displaymessagerequest"},{"id":"LibTmux.DisplayMessageRequest.Message","name":"Message","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"string","doc":{"summary":"Gets the message, which tmux expands as a format."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.Message","product":"core","slug":"libtmux-displaymessagerequest-message"},{"id":"LibTmux.DisplayMessageRequest.ReturnText","name":"ReturnText","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the message is printed rather than shown."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.ReturnText","product":"core","slug":"libtmux-displaymessagerequest-returntext"},{"id":"LibTmux.DisplayMessageRequest.Format","name":"Format","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the format string used in place of the message."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.Format","product":"core","slug":"libtmux-displaymessagerequest-format"},{"id":"LibTmux.DisplayMessageRequest.AllFormats","name":"AllFormats","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether every format variable is listed."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.AllFormats","product":"core","slug":"libtmux-displaymessagerequest-allformats"},{"id":"LibTmux.DisplayMessageRequest.Verbose","name":"Verbose","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether format expansion is reported."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.Verbose","product":"core","slug":"libtmux-displaymessagerequest-verbose"},{"id":"LibTmux.DisplayMessageRequest.NoExpand","name":"NoExpand","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the message is sent without format expansion.","body":"tmux gained this in 3.4; older servers always expand."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.NoExpand","product":"core","slug":"libtmux-displaymessagerequest-noexpand"},{"id":"LibTmux.DisplayMessageRequest.TargetClient","name":"TargetClient","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the client to show the message on."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.TargetClient","product":"core","slug":"libtmux-displaymessagerequest-targetclient"},{"id":"LibTmux.DisplayMessageRequest.Delay","name":"Delay","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"TimeSpan?","doc":{"summary":"Gets how long the message stays up."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.Delay","product":"core","slug":"libtmux-displaymessagerequest-delay"},{"id":"LibTmux.DisplayMessageRequest.Notify","name":"Notify","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the message is delivered as a notification."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.Notify","product":"core","slug":"libtmux-displaymessagerequest-notify"},{"id":"LibTmux.DisplayMessageRequest.UpdatePane","name":"UpdatePane","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane is redrawn while the message is shown.","body":"Only a pane can honour this; a window-scoped call rejects it."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":65,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.UpdatePane","product":"core","slug":"libtmux-displaymessagerequest-updatepane"},{"id":"LibTmux.DisplayMessageRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[{"params":[{"name":"server","type":"Server","doc":"The server the message is shown on."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a message request as one tmux command.","body":"This takes the server because two of the flags depend on which tmux is\nanswering: literal expansion arrived in 3.4, and 3.2a refuses the\ntarget-client flag even for a client that is really attached."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":76,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.ToCommand","product":"core","slug":"libtmux-displaymessagerequest-tocommand"},{"id":"LibTmux.PopupCloseMode","name":"PopupCloseMode","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names when a popup closes on its own."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PopupCloseMode","product":"core","slug":"libtmux-popupclosemode"},{"id":"LibTmux.PopupCloseMode.AnyExit","name":"AnyExit","kind":"constant","modifiers":[],"parent":"LibTmux.PopupCloseMode","signatures":[],"doc":{"summary":"Close when the command exits, however it exits."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PopupCloseMode.AnyExit","product":"core","slug":"libtmux-popupclosemode-anyexit"},{"id":"LibTmux.PopupCloseMode.SuccessfulExit","name":"SuccessfulExit","kind":"constant","modifiers":[],"parent":"LibTmux.PopupCloseMode","signatures":[],"doc":{"summary":"Close only when the command exits successfully."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PopupCloseMode.SuccessfulExit","product":"core","slug":"libtmux-popupclosemode-successfulexit"},{"id":"LibTmux.DisplayPopupRequest","name":"DisplayPopupRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one display-popup invocation.","body":"A popup needs an attached client and blocks the invoking command until it\ncloses, so a caller with no client, or with a command that never exits, will\nwait. Cancel the call rather than expecting it to return."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest","product":"core","slug":"libtmux-displaypopuprequest"},{"id":"LibTmux.DisplayPopupRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the command the popup runs."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.Command","product":"core","slug":"libtmux-displaypopuprequest-command"},{"id":"LibTmux.DisplayPopupRequest.CloseMode","name":"CloseMode","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"PopupCloseMode?","doc":{"summary":"Gets when the popup closes on its own."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.CloseMode","product":"core","slug":"libtmux-displaypopuprequest-closemode"},{"id":"LibTmux.DisplayPopupRequest.CloseExisting","name":"CloseExisting","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether an open popup is closed instead."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.CloseExisting","product":"core","slug":"libtmux-displaypopuprequest-closeexisting"},{"id":"LibTmux.DisplayPopupRequest.TargetClient","name":"TargetClient","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the client to show the popup on."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.TargetClient","product":"core","slug":"libtmux-displaypopuprequest-targetclient"},{"id":"LibTmux.DisplayPopupRequest.Width","name":"Width","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the popup width."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.Width","product":"core","slug":"libtmux-displaypopuprequest-width"},{"id":"LibTmux.DisplayPopupRequest.Height","name":"Height","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the popup height."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.Height","product":"core","slug":"libtmux-displaypopuprequest-height"},{"id":"LibTmux.DisplayPopupRequest.X","name":"X","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the column to place the popup at."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.X","product":"core","slug":"libtmux-displaypopuprequest-x"},{"id":"LibTmux.DisplayPopupRequest.Y","name":"Y","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the row to place the popup at."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.Y","product":"core","slug":"libtmux-displaypopuprequest-y"},{"id":"LibTmux.DisplayPopupRequest.StartDirectory","name":"StartDirectory","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the working directory for the command.","body":"tmux expands it as a format, so a # in it does not survive\nverbatim."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.StartDirectory","product":"core","slug":"libtmux-displaypopuprequest-startdirectory"},{"id":"LibTmux.DisplayPopupRequest.Title","name":"Title","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the popup title.","body":"tmux expands it as a format, so a # in it does not survive\nverbatim."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.Title","product":"core","slug":"libtmux-displaypopuprequest-title"},{"id":"LibTmux.DisplayPopupRequest.BorderLines","name":"BorderLines","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the border line style."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":78,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.BorderLines","product":"core","slug":"libtmux-displaypopuprequest-borderlines"},{"id":"LibTmux.DisplayPopupRequest.Style","name":"Style","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the popup style."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":81,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.Style","product":"core","slug":"libtmux-displaypopuprequest-style"},{"id":"LibTmux.DisplayPopupRequest.BorderStyle","name":"BorderStyle","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the popup border style."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":84,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.BorderStyle","product":"core","slug":"libtmux-displaypopuprequest-borderstyle"},{"id":"LibTmux.DisplayPopupRequest.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"IReadOnlyDictionary?","doc":{"summary":"Gets the environment entries set on the command."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.Environment","product":"core","slug":"libtmux-displaypopuprequest-environment"},{"id":"LibTmux.DisplayPopupRequest.NoBorder","name":"NoBorder","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the popup has no border."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":100,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.NoBorder","product":"core","slug":"libtmux-displaypopuprequest-noborder"},{"id":"LibTmux.DisplayPopupRequest.CloseOnAnyKey","name":"CloseOnAnyKey","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether any key closes the popup."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":103,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.CloseOnAnyKey","product":"core","slug":"libtmux-displaypopuprequest-closeonanykey"},{"id":"LibTmux.DisplayPopupRequest.NoKeys","name":"NoKeys","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the popup ignores keys."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":106,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.NoKeys","product":"core","slug":"libtmux-displaypopuprequest-nokeys"},{"id":"LibTmux.DisplayPopupRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane the popup belongs to."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a popup request as one tmux command.","body":"Popup options arrived in tmux 3.3 and the key policy in 3.6, so the\npane decides which of them the built command carries."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":116,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.ToCommand","product":"core","slug":"libtmux-displaypopuprequest-tocommand"},{"id":"LibTmux.FindWindowRequest","name":"FindWindowRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one find-window invocation."},"source":{"file":"src/LibTmux/Requests/FindWindowRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.FindWindowRequest","product":"core","slug":"libtmux-findwindowrequest"},{"id":"LibTmux.FindWindowRequest.FindWindowRequest","name":"FindWindowRequest","kind":"method","modifiers":[],"parent":"LibTmux.FindWindowRequest","signatures":[{"params":[{"name":"pattern","type":"string","doc":"The text to look for."}],"raises":[{"type":"ArgumentException","doc":" is blank."}]}],"doc":{"summary":"Initializes a window-search request."},"source":{"file":"src/LibTmux/Requests/FindWindowRequest.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.FindWindowRequest.FindWindowRequest","product":"core","slug":"libtmux-findwindowrequest-findwindowrequest"},{"id":"LibTmux.FindWindowRequest.Pattern","name":"Pattern","kind":"property","modifiers":[],"parent":"LibTmux.FindWindowRequest","signatures":[],"type":"string","doc":{"summary":"Gets the text to look for."},"source":{"file":"src/LibTmux/Requests/FindWindowRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.FindWindowRequest.Pattern","product":"core","slug":"libtmux-findwindowrequest-pattern"},{"id":"LibTmux.FindWindowRequest.MatchContent","name":"MatchContent","kind":"property","modifiers":[],"parent":"LibTmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether pane content is searched."},"source":{"file":"src/LibTmux/Requests/FindWindowRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.FindWindowRequest.MatchContent","product":"core","slug":"libtmux-findwindowrequest-matchcontent"},{"id":"LibTmux.FindWindowRequest.IgnoreCase","name":"IgnoreCase","kind":"property","modifiers":[],"parent":"LibTmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the search ignores case."},"source":{"file":"src/LibTmux/Requests/FindWindowRequest.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.FindWindowRequest.IgnoreCase","product":"core","slug":"libtmux-findwindowrequest-ignorecase"},{"id":"LibTmux.FindWindowRequest.MatchName","name":"MatchName","kind":"property","modifiers":[],"parent":"LibTmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether window names are searched."},"source":{"file":"src/LibTmux/Requests/FindWindowRequest.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.FindWindowRequest.MatchName","product":"core","slug":"libtmux-findwindowrequest-matchname"},{"id":"LibTmux.FindWindowRequest.Regex","name":"Regex","kind":"property","modifiers":[],"parent":"LibTmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pattern is a regular expression."},"source":{"file":"src/LibTmux/Requests/FindWindowRequest.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.FindWindowRequest.Regex","product":"core","slug":"libtmux-findwindowrequest-regex"},{"id":"LibTmux.FindWindowRequest.MatchTitle","name":"MatchTitle","kind":"property","modifiers":[],"parent":"LibTmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether pane titles are searched."},"source":{"file":"src/LibTmux/Requests/FindWindowRequest.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.FindWindowRequest.MatchTitle","product":"core","slug":"libtmux-findwindowrequest-matchtitle"},{"id":"LibTmux.FindWindowRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.FindWindowRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane the search starts from."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a window-search request as one tmux command."},"source":{"file":"src/LibTmux/Requests/FindWindowRequest.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.FindWindowRequest.ToCommand","product":"core","slug":"libtmux-findwindowrequest-tocommand"},{"id":"LibTmux.GetOptionRequest","name":"GetOptionRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one show-options invocation for a single option."},"source":{"file":"src/LibTmux/Requests/GetOptionRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionRequest","product":"core","slug":"libtmux-getoptionrequest"},{"id":"LibTmux.GetOptionRequest.GetOptionRequest","name":"GetOptionRequest","kind":"method","modifiers":[],"parent":"LibTmux.GetOptionRequest","signatures":[{"params":[{"name":"name","type":"string","doc":"The option to read."}]}],"doc":{"summary":"Initializes a request for one option."},"source":{"file":"src/LibTmux/Requests/GetOptionRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionRequest.GetOptionRequest","product":"core","slug":"libtmux-getoptionrequest-getoptionrequest"},{"id":"LibTmux.GetOptionRequest.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionRequest","signatures":[],"type":"string","doc":{"summary":"Gets the option to read.","body":"tmux expands it as a format before it names anything, so a # in\nit does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/GetOptionRequest.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionRequest.Name","product":"core","slug":"libtmux-getoptionrequest-name"},{"id":"LibTmux.GetOptionRequest.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionRequest","signatures":[],"type":"OptionScope?","doc":{"summary":"Gets the scope to read in, or null for the owner's own."},"source":{"file":"src/LibTmux/Requests/GetOptionRequest.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionRequest.Scope","product":"core","slug":"libtmux-getoptionrequest-scope"},{"id":"LibTmux.GetOptionRequest.Global","name":"Global","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the global table is read instead of the local one."},"source":{"file":"src/LibTmux/Requests/GetOptionRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionRequest.Global","product":"core","slug":"libtmux-getoptionrequest-global"},{"id":"LibTmux.GetOptionRequest.IncludeHooks","name":"IncludeHooks","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether hooks are listed alongside options."},"source":{"file":"src/LibTmux/Requests/GetOptionRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionRequest.IncludeHooks","product":"core","slug":"libtmux-getoptionrequest-includehooks"},{"id":"LibTmux.GetOptionRequest.IncludeInherited","name":"IncludeInherited","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether values inherited from a parent scope are included."},"source":{"file":"src/LibTmux/Requests/GetOptionRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionRequest.IncludeInherited","product":"core","slug":"libtmux-getoptionrequest-includeinherited"},{"id":"LibTmux.GetOptionRequest.Quiet","name":"Quiet","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a missing option is answered with nothing instead of an error."},"source":{"file":"src/LibTmux/Requests/GetOptionRequest.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionRequest.Quiet","product":"core","slug":"libtmux-getoptionrequest-quiet"},{"id":"LibTmux.GetOptionRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.GetOptionRequest","signatures":[{"params":[{"name":"options","type":"TmuxOptions","doc":"The options handle whose scope is read."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a named option read as one tmux command.","body":"A chain returns one combined output stream, so several reads batched\ntogether arrive undelimited. Reach for this to read something beside\nthe changes a chain makes; reach for the handle's own accessor when\nwhat you want is a parsed value."},"source":{"file":"src/LibTmux/Requests/GetOptionRequest.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionRequest.ToCommand","product":"core","slug":"libtmux-getoptionrequest-tocommand"},{"id":"LibTmux.GetOptionsRequest","name":"GetOptionsRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one show-options invocation for every option in a scope."},"source":{"file":"src/LibTmux/Requests/GetOptionsRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionsRequest","product":"core","slug":"libtmux-getoptionsrequest"},{"id":"LibTmux.GetOptionsRequest.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionsRequest","signatures":[],"type":"OptionScope?","doc":{"summary":"Gets the scope to read in, or null for the owner's own."},"source":{"file":"src/LibTmux/Requests/GetOptionsRequest.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionsRequest.Scope","product":"core","slug":"libtmux-getoptionsrequest-scope"},{"id":"LibTmux.GetOptionsRequest.Global","name":"Global","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionsRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the global table is read instead of the local one."},"source":{"file":"src/LibTmux/Requests/GetOptionsRequest.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionsRequest.Global","product":"core","slug":"libtmux-getoptionsrequest-global"},{"id":"LibTmux.GetOptionsRequest.IncludeHooks","name":"IncludeHooks","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionsRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether hooks are listed alongside options."},"source":{"file":"src/LibTmux/Requests/GetOptionsRequest.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionsRequest.IncludeHooks","product":"core","slug":"libtmux-getoptionsrequest-includehooks"},{"id":"LibTmux.GetOptionsRequest.IncludeInherited","name":"IncludeInherited","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionsRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether values inherited from a parent scope are included."},"source":{"file":"src/LibTmux/Requests/GetOptionsRequest.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionsRequest.IncludeInherited","product":"core","slug":"libtmux-getoptionsrequest-includeinherited"},{"id":"LibTmux.GetOptionsRequest.Quiet","name":"Quiet","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionsRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether an empty table is answered with nothing instead of an error."},"source":{"file":"src/LibTmux/Requests/GetOptionsRequest.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionsRequest.Quiet","product":"core","slug":"libtmux-getoptionsrequest-quiet"},{"id":"LibTmux.GetOptionsRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.GetOptionsRequest","signatures":[{"params":[{"name":"options","type":"TmuxOptions","doc":"The options handle whose scope is read."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a whole-scope option read as one tmux command."},"source":{"file":"src/LibTmux/Requests/GetOptionsRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionsRequest.ToCommand","product":"core","slug":"libtmux-getoptionsrequest-tocommand"},{"id":"LibTmux.HookRequest","name":"HookRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one hook to read, run, or unset."},"source":{"file":"src/LibTmux/Requests/HookRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.HookRequest","product":"core","slug":"libtmux-hookrequest"},{"id":"LibTmux.HookRequest.HookRequest","name":"HookRequest","kind":"method","modifiers":[],"parent":"LibTmux.HookRequest","signatures":[{"params":[{"name":"name","type":"string","doc":"The hook name."}]}],"doc":{"summary":"Initializes a request naming one hook."},"source":{"file":"src/LibTmux/Requests/HookRequest.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.HookRequest.HookRequest","product":"core","slug":"libtmux-hookrequest-hookrequest"},{"id":"LibTmux.HookRequest.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.HookRequest","signatures":[],"type":"string","doc":{"summary":"Gets the hook name.","body":"tmux expands it as a format before it names anything, so a # in\nit does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/HookRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.HookRequest.Name","product":"core","slug":"libtmux-hookrequest-name"},{"id":"LibTmux.HookRequest.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.HookRequest","signatures":[],"type":"OptionScope?","doc":{"summary":"Gets the scope to reach it in, or null for the owner's own."},"source":{"file":"src/LibTmux/Requests/HookRequest.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.HookRequest.Scope","product":"core","slug":"libtmux-hookrequest-scope"},{"id":"LibTmux.HookRequest.Global","name":"Global","kind":"property","modifiers":[],"parent":"LibTmux.HookRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the global table is used instead of the local one."},"source":{"file":"src/LibTmux/Requests/HookRequest.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.HookRequest.Global","product":"core","slug":"libtmux-hookrequest-global"},{"id":"LibTmux.IfShellRequest","name":"IfShellRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one if-shell invocation."},"source":{"file":"src/LibTmux/Requests/IfShellRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IfShellRequest","product":"core","slug":"libtmux-ifshellrequest"},{"id":"LibTmux.IfShellRequest.IfShellRequest","name":"IfShellRequest","kind":"method","modifiers":[],"parent":"LibTmux.IfShellRequest","signatures":[{"params":[{"name":"shellCommand","type":"string","doc":"The shell command whose success decides."},{"name":"thenCommand","type":"IReadOnlyList","doc":"The tmux command run when it succeeds."}]}],"doc":{"summary":"Initializes a conditional command."},"source":{"file":"src/LibTmux/Requests/IfShellRequest.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IfShellRequest.IfShellRequest","product":"core","slug":"libtmux-ifshellrequest-ifshellrequest"},{"id":"LibTmux.IfShellRequest.ShellCommand","name":"ShellCommand","kind":"property","modifiers":[],"parent":"LibTmux.IfShellRequest","signatures":[],"type":"string","doc":{"summary":"Gets the shell command whose success decides.","body":"tmux expands it as a format before running it, so a # in it does\nnot survive verbatim."},"source":{"file":"src/LibTmux/Requests/IfShellRequest.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IfShellRequest.ShellCommand","product":"core","slug":"libtmux-ifshellrequest-shellcommand"},{"id":"LibTmux.IfShellRequest.ThenCommand","name":"ThenCommand","kind":"property","modifiers":[],"parent":"LibTmux.IfShellRequest","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the tmux command run when it succeeds."},"source":{"file":"src/LibTmux/Requests/IfShellRequest.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IfShellRequest.ThenCommand","product":"core","slug":"libtmux-ifshellrequest-thencommand"},{"id":"LibTmux.IfShellRequest.ElseCommand","name":"ElseCommand","kind":"property","modifiers":[],"parent":"LibTmux.IfShellRequest","signatures":[],"type":"IReadOnlyList?","doc":{"summary":"Gets the tmux command run when it fails, when any."},"source":{"file":"src/LibTmux/Requests/IfShellRequest.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IfShellRequest.ElseCommand","product":"core","slug":"libtmux-ifshellrequest-elsecommand"},{"id":"LibTmux.IfShellRequest.Background","name":"Background","kind":"property","modifiers":[],"parent":"LibTmux.IfShellRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether tmux runs the shell command without waiting."},"source":{"file":"src/LibTmux/Requests/IfShellRequest.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IfShellRequest.Background","product":"core","slug":"libtmux-ifshellrequest-background"},{"id":"LibTmux.IfShellRequest.TargetPane","name":"TargetPane","kind":"property","modifiers":[],"parent":"LibTmux.IfShellRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the pane the commands run against."},"source":{"file":"src/LibTmux/Requests/IfShellRequest.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IfShellRequest.TargetPane","product":"core","slug":"libtmux-ifshellrequest-targetpane"},{"id":"LibTmux.IfShellRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.IfShellRequest","signatures":[{"params":[],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a ."}],"doc":{"summary":"Returns a conditional request as one tmux command."},"source":{"file":"src/LibTmux/Requests/IfShellRequest.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IfShellRequest.ToCommand","product":"core","slug":"libtmux-ifshellrequest-tocommand"},{"id":"LibTmux.LinkWindowRequest","name":"LinkWindowRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one link-window invocation."},"source":{"file":"src/LibTmux/Requests/LinkWindowRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LinkWindowRequest","product":"core","slug":"libtmux-linkwindowrequest"},{"id":"LibTmux.LinkWindowRequest.LinkWindowRequest","name":"LinkWindowRequest","kind":"method","modifiers":[],"parent":"LibTmux.LinkWindowRequest","signatures":[{"params":[{"name":"targetSession","type":"string","doc":"The session the window is linked into."}],"raises":[{"type":"ArgumentException","doc":" is blank."}]}],"doc":{"summary":"Initializes a window-link request."},"source":{"file":"src/LibTmux/Requests/LinkWindowRequest.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LinkWindowRequest.LinkWindowRequest","product":"core","slug":"libtmux-linkwindowrequest-linkwindowrequest"},{"id":"LibTmux.LinkWindowRequest.TargetSession","name":"TargetSession","kind":"property","modifiers":[],"parent":"LibTmux.LinkWindowRequest","signatures":[],"type":"string","doc":{"summary":"Gets the session the window is linked into."},"source":{"file":"src/LibTmux/Requests/LinkWindowRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LinkWindowRequest.TargetSession","product":"core","slug":"libtmux-linkwindowrequest-targetsession"},{"id":"LibTmux.LinkWindowRequest.TargetIndex","name":"TargetIndex","kind":"property","modifiers":[],"parent":"LibTmux.LinkWindowRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the index to link at, or null for the next free one."},"source":{"file":"src/LibTmux/Requests/LinkWindowRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LinkWindowRequest.TargetIndex","product":"core","slug":"libtmux-linkwindowrequest-targetindex"},{"id":"LibTmux.LinkWindowRequest.Direction","name":"Direction","kind":"property","modifiers":[],"parent":"LibTmux.LinkWindowRequest","signatures":[],"type":"WindowDirection?","doc":{"summary":"Gets whether to insert before or after the target.","body":"Without an index tmux inserts relative to the destination session's\ncurrent window, not its first or last."},"source":{"file":"src/LibTmux/Requests/LinkWindowRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LinkWindowRequest.Direction","product":"core","slug":"libtmux-linkwindowrequest-direction"},{"id":"LibTmux.LinkWindowRequest.ReplaceExisting","name":"ReplaceExisting","kind":"property","modifiers":[],"parent":"LibTmux.LinkWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a window already at the index is replaced."},"source":{"file":"src/LibTmux/Requests/LinkWindowRequest.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LinkWindowRequest.ReplaceExisting","product":"core","slug":"libtmux-linkwindowrequest-replaceexisting"},{"id":"LibTmux.LinkWindowRequest.Detach","name":"Detach","kind":"property","modifiers":[],"parent":"LibTmux.LinkWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the linked window is left unselected."},"source":{"file":"src/LibTmux/Requests/LinkWindowRequest.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LinkWindowRequest.Detach","product":"core","slug":"libtmux-linkwindowrequest-detach"},{"id":"LibTmux.LinkWindowRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.LinkWindowRequest","signatures":[{"params":[{"name":"window","type":"Window","doc":"The window being linked."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a link request as one tmux command.","body":"The source names the session and index captured with the window."},"source":{"file":"src/LibTmux/Requests/LinkWindowRequest.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LinkWindowRequest.ToCommand","product":"core","slug":"libtmux-linkwindowrequest-tocommand"},{"id":"LibTmux.ListBuffersRequest","name":"ListBuffersRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one list-buffers invocation."},"source":{"file":"src/LibTmux/Requests/ListBuffersRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ListBuffersRequest","product":"core","slug":"libtmux-listbuffersrequest"},{"id":"LibTmux.ListBuffersRequest.Format","name":"Format","kind":"property","modifiers":[],"parent":"LibTmux.ListBuffersRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the tmux format each buffer is rendered with."},"source":{"file":"src/LibTmux/Requests/ListBuffersRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ListBuffersRequest.Format","product":"core","slug":"libtmux-listbuffersrequest-format"},{"id":"LibTmux.ListBuffersRequest.Filter","name":"Filter","kind":"property","modifiers":[],"parent":"LibTmux.ListBuffersRequest","signatures":[],"type":"UnsafeTmuxFilter?","doc":{"summary":"Gets the tmux filter expression, kept as written."},"source":{"file":"src/LibTmux/Requests/ListBuffersRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ListBuffersRequest.Filter","product":"core","slug":"libtmux-listbuffersrequest-filter"},{"id":"LibTmux.ListBuffersRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.ListBuffersRequest","signatures":[{"params":[],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a ."}],"doc":{"summary":"Returns a buffer-listing request as one tmux command."},"source":{"file":"src/LibTmux/Requests/ListBuffersRequest.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ListBuffersRequest.ToCommand","product":"core","slug":"libtmux-listbuffersrequest-tocommand"},{"id":"LibTmux.ListHooksRequest","name":"ListHooksRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one show-hooks invocation."},"source":{"file":"src/LibTmux/Requests/ListHooksRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ListHooksRequest","product":"core","slug":"libtmux-listhooksrequest"},{"id":"LibTmux.ListHooksRequest.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.ListHooksRequest","signatures":[],"type":"OptionScope?","doc":{"summary":"Gets the scope to read, or null for the owner's own."},"source":{"file":"src/LibTmux/Requests/ListHooksRequest.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ListHooksRequest.Scope","product":"core","slug":"libtmux-listhooksrequest-scope"},{"id":"LibTmux.ListHooksRequest.Global","name":"Global","kind":"property","modifiers":[],"parent":"LibTmux.ListHooksRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the global table is read instead of the local one."},"source":{"file":"src/LibTmux/Requests/ListHooksRequest.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ListHooksRequest.Global","product":"core","slug":"libtmux-listhooksrequest-global"},{"id":"LibTmux.ListHooksRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.ListHooksRequest","signatures":[{"params":[{"name":"hooks","type":"TmuxHooks","doc":"The hooks handle whose scope is listed."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a hook listing as one tmux command.","body":"A chain returns one combined output stream, so batch a listing to see\nwhat the same invocation just installed. \nanswers the same question with the hooks already parsed."},"source":{"file":"src/LibTmux/Requests/ListHooksRequest.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ListHooksRequest.ToCommand","product":"core","slug":"libtmux-listhooksrequest-tocommand"},{"id":"LibTmux.MovePaneRequest","name":"MovePaneRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one move-pane or join-pane invocation."},"source":{"file":"src/LibTmux/Requests/MovePaneRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MovePaneRequest","product":"core","slug":"libtmux-movepanerequest"},{"id":"LibTmux.MovePaneRequest.MovePaneRequest","name":"MovePaneRequest","kind":"method","modifiers":[],"parent":"LibTmux.MovePaneRequest","signatures":[{"params":[{"name":"target","type":"string","doc":"The pane or window to move against."}],"raises":[{"type":"ArgumentException","doc":" is blank."}]}],"doc":{"summary":"Initializes a pane-move request."},"source":{"file":"src/LibTmux/Requests/MovePaneRequest.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MovePaneRequest.MovePaneRequest","product":"core","slug":"libtmux-movepanerequest-movepanerequest"},{"id":"LibTmux.MovePaneRequest.Target","name":"Target","kind":"property","modifiers":[],"parent":"LibTmux.MovePaneRequest","signatures":[],"type":"string","doc":{"summary":"Gets the pane or window to move against."},"source":{"file":"src/LibTmux/Requests/MovePaneRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MovePaneRequest.Target","product":"core","slug":"libtmux-movepanerequest-target"},{"id":"LibTmux.MovePaneRequest.Direction","name":"Direction","kind":"property","modifiers":[],"parent":"LibTmux.MovePaneRequest","signatures":[],"type":"PaneDirection","doc":{"summary":"Gets which side of the target the pane lands on.","body":"Only the axis comes from the direction; landing before the target is\n, which an above or left direction implies."},"source":{"file":"src/LibTmux/Requests/MovePaneRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MovePaneRequest.Direction","product":"core","slug":"libtmux-movepanerequest-direction"},{"id":"LibTmux.MovePaneRequest.Size","name":"Size","kind":"property","modifiers":[],"parent":"LibTmux.MovePaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the size in cells or as a percentage.","body":"Sent as one sizing flag on every supported tmux, because the percentage\nflag is broken from 3.4 through 3.6."},"source":{"file":"src/LibTmux/Requests/MovePaneRequest.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MovePaneRequest.Size","product":"core","slug":"libtmux-movepanerequest-size"},{"id":"LibTmux.MovePaneRequest.Detach","name":"Detach","kind":"property","modifiers":[],"parent":"LibTmux.MovePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the moved pane is left unselected."},"source":{"file":"src/LibTmux/Requests/MovePaneRequest.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MovePaneRequest.Detach","product":"core","slug":"libtmux-movepanerequest-detach"},{"id":"LibTmux.MovePaneRequest.FullWindow","name":"FullWindow","kind":"property","modifiers":[],"parent":"LibTmux.MovePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the split spans the whole window."},"source":{"file":"src/LibTmux/Requests/MovePaneRequest.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MovePaneRequest.FullWindow","product":"core","slug":"libtmux-movepanerequest-fullwindow"},{"id":"LibTmux.MovePaneRequest.Before","name":"Before","kind":"property","modifiers":[],"parent":"LibTmux.MovePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane lands before the target."},"source":{"file":"src/LibTmux/Requests/MovePaneRequest.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MovePaneRequest.Before","product":"core","slug":"libtmux-movepanerequest-before"},{"id":"LibTmux.MovePaneRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.MovePaneRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane being moved."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a pane-move request as one tmux command."},"source":{"file":"src/LibTmux/Requests/MovePaneRequest.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MovePaneRequest.ToCommand","product":"core","slug":"libtmux-movepanerequest-tocommand"},{"id":"LibTmux.MoveWindowRequest","name":"MoveWindowRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one move-window invocation."},"source":{"file":"src/LibTmux/Requests/MoveWindowRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MoveWindowRequest","product":"core","slug":"libtmux-movewindowrequest"},{"id":"LibTmux.MoveWindowRequest.Destination","name":"Destination","kind":"property","modifiers":[],"parent":"LibTmux.MoveWindowRequest","signatures":[],"type":"string","doc":{"summary":"Gets the window part of the target, empty for the next free index."},"source":{"file":"src/LibTmux/Requests/MoveWindowRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MoveWindowRequest.Destination","product":"core","slug":"libtmux-movewindowrequest-destination"},{"id":"LibTmux.MoveWindowRequest.Session","name":"Session","kind":"property","modifiers":[],"parent":"LibTmux.MoveWindowRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the destination session, or null for the window's own."},"source":{"file":"src/LibTmux/Requests/MoveWindowRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MoveWindowRequest.Session","product":"core","slug":"libtmux-movewindowrequest-session"},{"id":"LibTmux.MoveWindowRequest.Direction","name":"Direction","kind":"property","modifiers":[],"parent":"LibTmux.MoveWindowRequest","signatures":[],"type":"WindowDirection?","doc":{"summary":"Gets whether to insert before or after the destination.","body":"A relative target or a numeric index with no window inserts beside the\ndestination session's active window, following tmux target resolution."},"source":{"file":"src/LibTmux/Requests/MoveWindowRequest.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MoveWindowRequest.Direction","product":"core","slug":"libtmux-movewindowrequest-direction"},{"id":"LibTmux.MoveWindowRequest.NoSelect","name":"NoSelect","kind":"property","modifiers":[],"parent":"LibTmux.MoveWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the moved window is left unselected."},"source":{"file":"src/LibTmux/Requests/MoveWindowRequest.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MoveWindowRequest.NoSelect","product":"core","slug":"libtmux-movewindowrequest-noselect"},{"id":"LibTmux.MoveWindowRequest.ReplaceExisting","name":"ReplaceExisting","kind":"property","modifiers":[],"parent":"LibTmux.MoveWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a window already at the index is replaced."},"source":{"file":"src/LibTmux/Requests/MoveWindowRequest.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MoveWindowRequest.ReplaceExisting","product":"core","slug":"libtmux-movewindowrequest-replaceexisting"},{"id":"LibTmux.MoveWindowRequest.Renumber","name":"Renumber","kind":"property","modifiers":[],"parent":"LibTmux.MoveWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the destination session's windows are renumbered.","body":"tmux renumbers and returns without moving anything, ignoring every other\nflag on the request, so this is a renumber request rather than a move\nthat also renumbers."},"source":{"file":"src/LibTmux/Requests/MoveWindowRequest.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MoveWindowRequest.Renumber","product":"core","slug":"libtmux-movewindowrequest-renumber"},{"id":"LibTmux.MoveWindowRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.MoveWindowRequest","signatures":[{"params":[{"name":"window","type":"Window","doc":"The window being moved."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a window-move request as one tmux command."},"source":{"file":"src/LibTmux/Requests/MoveWindowRequest.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MoveWindowRequest.ToCommand","product":"core","slug":"libtmux-movewindowrequest-tocommand"},{"id":"LibTmux.NewPaneRequest","name":"NewPaneRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one new-pane invocation.","body":"new-pane arrived in tmux 3.7. Unlike a split it places a floating\npane, so it carries a position as well as a size."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest","product":"core","slug":"libtmux-newpanerequest"},{"id":"LibTmux.NewPaneRequest.Target","name":"Target","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the window or pane to place against."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Target","product":"core","slug":"libtmux-newpanerequest-target"},{"id":"LibTmux.NewPaneRequest.StartDirectory","name":"StartDirectory","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the working directory for the new pane.","body":"tmux expands it as a format before it changes directory, so a #\nin it does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.StartDirectory","product":"core","slug":"libtmux-newpanerequest-startdirectory"},{"id":"LibTmux.NewPaneRequest.Attach","name":"Attach","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the new pane becomes active."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Attach","product":"core","slug":"libtmux-newpanerequest-attach"},{"id":"LibTmux.NewPaneRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the command the new pane runs."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Command","product":"core","slug":"libtmux-newpanerequest-command"},{"id":"LibTmux.NewPaneRequest.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"IReadOnlyDictionary?","doc":{"summary":"Gets the environment entries set on the new pane."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Environment","product":"core","slug":"libtmux-newpanerequest-environment"},{"id":"LibTmux.NewPaneRequest.Width","name":"Width","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"int?","doc":{"summary":"Gets the pane width in cells."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Width","product":"core","slug":"libtmux-newpanerequest-width"},{"id":"LibTmux.NewPaneRequest.Height","name":"Height","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"int?","doc":{"summary":"Gets the pane height in cells."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":62,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Height","product":"core","slug":"libtmux-newpanerequest-height"},{"id":"LibTmux.NewPaneRequest.X","name":"X","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"int?","doc":{"summary":"Gets the column to place the pane at."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.X","product":"core","slug":"libtmux-newpanerequest-x"},{"id":"LibTmux.NewPaneRequest.Y","name":"Y","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"int?","doc":{"summary":"Gets the row to place the pane at."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":88,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Y","product":"core","slug":"libtmux-newpanerequest-y"},{"id":"LibTmux.NewPaneRequest.Zoom","name":"Zoom","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the new pane is zoomed."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":100,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Zoom","product":"core","slug":"libtmux-newpanerequest-zoom"},{"id":"LibTmux.NewPaneRequest.Empty","name":"Empty","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane starts with no command."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":103,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Empty","product":"core","slug":"libtmux-newpanerequest-empty"},{"id":"LibTmux.NewPaneRequest.Style","name":"Style","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the pane style."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":106,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Style","product":"core","slug":"libtmux-newpanerequest-style"},{"id":"LibTmux.NewPaneRequest.ActiveBorderStyle","name":"ActiveBorderStyle","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the border style while the pane is active."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":109,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.ActiveBorderStyle","product":"core","slug":"libtmux-newpanerequest-activeborderstyle"},{"id":"LibTmux.NewPaneRequest.InactiveBorderStyle","name":"InactiveBorderStyle","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the border style while the pane is not active."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":112,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.InactiveBorderStyle","product":"core","slug":"libtmux-newpanerequest-inactiveborderstyle"},{"id":"LibTmux.NewPaneRequest.Message","name":"Message","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the message shown in the pane."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":115,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Message","product":"core","slug":"libtmux-newpanerequest-message"},{"id":"LibTmux.NewPaneRequest.KeepOpen","name":"KeepOpen","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane stays after its command exits."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":118,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.KeepOpen","product":"core","slug":"libtmux-newpanerequest-keepopen"},{"id":"LibTmux.NewPaneRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane the new one is created from."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."},{"type":"TmuxVersionTooLowException","doc":"tmux is older than 3.7."}]}],"doc":{"summary":"Returns a floating-pane request as one tmux command.","body":"The command arrived whole in tmux 3.7, so batching does not soften the\nrefusal below that: an older server has nothing to send it to."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":148,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.ToCommand","product":"core","slug":"libtmux-newpanerequest-tocommand"},{"id":"LibTmux.NewSessionRequest","name":"NewSessionRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one new-session invocation.","body":"Every flag is explicit rather than inferred, so the argv tmux receives is\nreadable from the call site instead of assembled by hidden defaults."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest","product":"core","slug":"libtmux-newsessionrequest"},{"id":"LibTmux.NewSessionRequest.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the session name, or null to let tmux choose.","body":"tmux expands the name as a format, so a # in it does not survive\nverbatim."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.Name","product":"core","slug":"libtmux-newsessionrequest-name"},{"id":"LibTmux.NewSessionRequest.ReplaceExisting","name":"ReplaceExisting","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a session of the same name is removed first."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.ReplaceExisting","product":"core","slug":"libtmux-newsessionrequest-replaceexisting"},{"id":"LibTmux.NewSessionRequest.ExpectedGeneration","name":"ExpectedGeneration","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"ServerGeneration?","doc":{"summary":"Gets the daemon generation required for creation, or null for endpoint-scoped creation.","body":"Use a generation obtained from \nto refuse creation on a replacement daemon. An absent daemon is never\nstarted and its configuration is not loaded. Cannot be combined with\n."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.ExpectedGeneration","product":"core","slug":"libtmux-newsessionrequest-expectedgeneration"},{"id":"LibTmux.NewSessionRequest.Attach","name":"Attach","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the new session is attached rather than detached."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.Attach","product":"core","slug":"libtmux-newsessionrequest-attach"},{"id":"LibTmux.NewSessionRequest.StartDirectory","name":"StartDirectory","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the working directory for the first pane.","body":"tmux expands it as a format before it changes directory, so a #\nin it does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.StartDirectory","product":"core","slug":"libtmux-newsessionrequest-startdirectory"},{"id":"LibTmux.NewSessionRequest.WindowName","name":"WindowName","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the name of the first window.","body":"tmux expands it as a format before it names anything, so a # in\nit does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":62,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.WindowName","product":"core","slug":"libtmux-newsessionrequest-windowname"},{"id":"LibTmux.NewSessionRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the command the first pane runs."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":65,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.Command","product":"core","slug":"libtmux-newsessionrequest-command"},{"id":"LibTmux.NewSessionRequest.Width","name":"Width","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the requested width."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.Width","product":"core","slug":"libtmux-newsessionrequest-width"},{"id":"LibTmux.NewSessionRequest.Height","name":"Height","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the requested height."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":71,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.Height","product":"core","slug":"libtmux-newsessionrequest-height"},{"id":"LibTmux.NewSessionRequest.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"IReadOnlyDictionary?","doc":{"summary":"Gets the environment entries set on the session."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.Environment","product":"core","slug":"libtmux-newsessionrequest-environment"},{"id":"LibTmux.NewSessionRequest.DetachOthers","name":"DetachOthers","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether other clients are detached on attach."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.DetachOthers","product":"core","slug":"libtmux-newsessionrequest-detachothers"},{"id":"LibTmux.NewSessionRequest.NoSize","name":"NoSize","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether tmux may ignore the requested size."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":90,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.NoSize","product":"core","slug":"libtmux-newsessionrequest-nosize"},{"id":"LibTmux.NewSessionRequest.ClientFlags","name":"ClientFlags","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the comma-separated client flags passed with -f."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":93,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.ClientFlags","product":"core","slug":"libtmux-newsessionrequest-clientflags"},{"id":"LibTmux.NewSessionRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[{"params":[],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentException","doc":"The name is blank or contains ':' or '.', or generation-bound creation requests replacement."}]}],"doc":{"summary":"Returns a session request as one tmux command."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":98,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.ToCommand","product":"core","slug":"libtmux-newsessionrequest-tocommand"},{"id":"LibTmux.NewWindowRequest","name":"NewWindowRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one new-window invocation."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest","product":"core","slug":"libtmux-newwindowrequest"},{"id":"LibTmux.NewWindowRequest.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the window name.","body":"tmux expands the name as a format, so a # in it does not survive\nverbatim."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.Name","product":"core","slug":"libtmux-newwindowrequest-name"},{"id":"LibTmux.NewWindowRequest.StartDirectory","name":"StartDirectory","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the working directory for the first pane.","body":"tmux expands it as a format before it changes directory, so a #\nin it does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.StartDirectory","product":"core","slug":"libtmux-newwindowrequest-startdirectory"},{"id":"LibTmux.NewWindowRequest.Attach","name":"Attach","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the new window becomes current."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.Attach","product":"core","slug":"libtmux-newwindowrequest-attach"},{"id":"LibTmux.NewWindowRequest.Index","name":"Index","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the window index to create at."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.Index","product":"core","slug":"libtmux-newwindowrequest-index"},{"id":"LibTmux.NewWindowRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the command the first pane runs."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.Command","product":"core","slug":"libtmux-newwindowrequest-command"},{"id":"LibTmux.NewWindowRequest.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"IReadOnlyDictionary?","doc":{"summary":"Gets the environment entries set on the window."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.Environment","product":"core","slug":"libtmux-newwindowrequest-environment"},{"id":"LibTmux.NewWindowRequest.Direction","name":"Direction","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"WindowDirection?","doc":{"summary":"Gets whether to insert before or after the target."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.Direction","product":"core","slug":"libtmux-newwindowrequest-direction"},{"id":"LibTmux.NewWindowRequest.TargetWindow","name":"TargetWindow","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the window to insert relative to."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.TargetWindow","product":"core","slug":"libtmux-newwindowrequest-targetwindow"},{"id":"LibTmux.NewWindowRequest.KillExisting","name":"KillExisting","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether an existing window at the index is replaced."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":53,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.KillExisting","product":"core","slug":"libtmux-newwindowrequest-killexisting"},{"id":"LibTmux.NewWindowRequest.SelectExisting","name":"SelectExisting","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether an existing window is selected instead."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.SelectExisting","product":"core","slug":"libtmux-newwindowrequest-selectexisting"},{"id":"LibTmux.NewWindowRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[{"params":[{"name":"session","type":"Session","doc":"The session the window is created in."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a window request as one tmux command."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":92,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.ToCommand","product":"core","slug":"libtmux-newwindowrequest-tocommand"},{"id":"LibTmux.PaneRunRequest","name":"PaneRunRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes a shell command to run in a pane and wait for."},"source":{"file":"src/LibTmux/Requests/PaneRunRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunRequest","product":"core","slug":"libtmux-panerunrequest"},{"id":"LibTmux.PaneRunRequest.PaneRunRequest","name":"PaneRunRequest","kind":"method","modifiers":[],"parent":"LibTmux.PaneRunRequest","signatures":[{"params":[{"name":"command","type":"string","doc":"The shell command, run in a subshell of the pane's shell."}],"raises":[{"type":"ArgumentException","doc":" is blank."}]}],"doc":{"summary":"Initializes a run request."},"source":{"file":"src/LibTmux/Requests/PaneRunRequest.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunRequest.PaneRunRequest","product":"core","slug":"libtmux-panerunrequest-panerunrequest"},{"id":"LibTmux.PaneRunRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunRequest","signatures":[],"type":"string","doc":{"summary":"Gets the shell command."},"source":{"file":"src/LibTmux/Requests/PaneRunRequest.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunRequest.Command","product":"core","slug":"libtmux-panerunrequest-command"},{"id":"LibTmux.PaneRunRequest.Timeout","name":"Timeout","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunRequest","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets how long to wait for the command to finish."},"source":{"file":"src/LibTmux/Requests/PaneRunRequest.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunRequest.Timeout","product":"core","slug":"libtmux-panerunrequest-timeout"},{"id":"LibTmux.PaneRunRequest.KeepOutOfHistory","name":"KeepOutOfHistory","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the line the shell reads starts with a space, which many shells keep out of history."},"source":{"file":"src/LibTmux/Requests/PaneRunRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunRequest.KeepOutOfHistory","product":"core","slug":"libtmux-panerunrequest-keepoutofhistory"},{"id":"LibTmux.PaneRunRequest.MaxOutputLines","name":"MaxOutputLines","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunRequest","signatures":[],"type":"int","doc":{"summary":"Gets the most recent rendered output lines to return."},"source":{"file":"src/LibTmux/Requests/PaneRunRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunRequest.MaxOutputLines","product":"core","slug":"libtmux-panerunrequest-maxoutputlines"},{"id":"LibTmux.PaneRunRequest.MaxOutputBytes","name":"MaxOutputBytes","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunRequest","signatures":[],"type":"int","doc":{"summary":"Gets the maximum UTF-8 bytes of rendered output to return."},"source":{"file":"src/LibTmux/Requests/PaneRunRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunRequest.MaxOutputBytes","product":"core","slug":"libtmux-panerunrequest-maxoutputbytes"},{"id":"LibTmux.PaneRunRequest.Validate","name":"Validate","kind":"method","modifiers":[],"parent":"LibTmux.PaneRunRequest","signatures":[{"params":[],"returns":"void","raises":[{"type":"ArgumentException","doc":"The command is blank, contains NUL, or exceeds 65536 UTF-8 bytes."},{"type":"ArgumentOutOfRangeException","doc":"The timeout or output bounds are invalid."}]}],"doc":{"summary":"Validates the request without reading a pane or creating tmux resources."},"source":{"file":"src/LibTmux/Requests/PaneRunRequest.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunRequest.Validate","product":"core","slug":"libtmux-panerunrequest-validate"},{"id":"LibTmux.PaneWaitRequest","name":"PaneWaitRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes rendered output to wait for in a pane.","body":"Patterns are tested line by line, first against the current screen and then\nagainst rows the pane writes or rewrites. Text typed into the pane is output\ntoo; command completion requires ."},"source":{"file":"src/LibTmux/Requests/PaneWaitRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitRequest","product":"core","slug":"libtmux-panewaitrequest"},{"id":"LibTmux.PaneWaitRequest.Patterns","name":"Patterns","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitRequest","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets patterns that end the wait; none means any new output does."},"source":{"file":"src/LibTmux/Requests/PaneWaitRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitRequest.Patterns","product":"core","slug":"libtmux-panewaitrequest-patterns"},{"id":"LibTmux.PaneWaitRequest.StopPatterns","name":"StopPatterns","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitRequest","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets stop patterns, checked before wanted patterns even at entry."},"source":{"file":"src/LibTmux/Requests/PaneWaitRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitRequest.StopPatterns","product":"core","slug":"libtmux-panewaitrequest-stoppatterns"},{"id":"LibTmux.PaneWaitRequest.Timeout","name":"Timeout","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitRequest","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the total time allowed, including attach and captures."},"source":{"file":"src/LibTmux/Requests/PaneWaitRequest.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitRequest.Timeout","product":"core","slug":"libtmux-panewaitrequest-timeout"},{"id":"LibTmux.PaneWaitRequest.AllowPollingFallback","name":"AllowPollingFallback","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitRequest","signatures":[],"type":"bool","doc":{"summary":"Permits observable timed reads when the control stream fails."},"source":{"file":"src/LibTmux/Requests/PaneWaitRequest.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitRequest.AllowPollingFallback","product":"core","slug":"libtmux-panewaitrequest-allowpollingfallback"},{"id":"LibTmux.PaneWaitRequest.TailLines","name":"TailLines","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitRequest","signatures":[],"type":"int","doc":{"summary":"Gets the maximum recent rendered lines returned, from 1 through 1000."},"source":{"file":"src/LibTmux/Requests/PaneWaitRequest.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitRequest.TailLines","product":"core","slug":"libtmux-panewaitrequest-taillines"},{"id":"LibTmux.PaneWaitRequest.MaxOutputBytes","name":"MaxOutputBytes","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitRequest","signatures":[],"type":"int","doc":{"summary":"Gets the maximum UTF-8 bytes returned in the tail, from 1 through 1048576."},"source":{"file":"src/LibTmux/Requests/PaneWaitRequest.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitRequest.MaxOutputBytes","product":"core","slug":"libtmux-panewaitrequest-maxoutputbytes"},{"id":"LibTmux.PaneWaitRequest.FromTextPatterns","name":"FromTextPatterns","kind":"method","modifiers":["static"],"parent":"LibTmux.PaneWaitRequest","signatures":[{"params":[{"name":"patterns","type":"IReadOnlyList?","default":"null","doc":"Wanted patterns, or null for any new output."},{"name":"stopPatterns","type":"IReadOnlyList?","default":"null","doc":"Patterns that stop the wait."},{"name":"ignoreCase","type":"bool","default":"false","doc":"Whether text matching ignores case."},{"name":"simpleMatch","type":"bool","default":"false","doc":"Whether pattern text is matched literally."}],"returns":"PaneWaitRequest","returnsDoc":"A request with owned, bounded regular expressions.","raises":[{"type":"ArgumentException","doc":"A pattern is empty, oversized, or invalid."}]}],"doc":{"summary":"Builds a request from text patterns while retaining their original spelling."},"source":{"file":"src/LibTmux/Requests/PaneWaitRequest.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitRequest.FromTextPatterns","product":"core","slug":"libtmux-panewaitrequest-fromtextpatterns"},{"id":"LibTmux.PaneWaitRequest.Validate","name":"Validate","kind":"method","modifiers":[],"parent":"LibTmux.PaneWaitRequest","signatures":[{"params":[],"returns":"void"}],"doc":{"summary":"Validates and copies bounded patterns before pane I/O."},"source":{"file":"src/LibTmux/Requests/PaneWaitRequest.cs","line":84,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitRequest.Validate","product":"core","slug":"libtmux-panewaitrequest-validate"},{"id":"LibTmux.PasteBufferRequest","name":"PasteBufferRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one paste-buffer invocation."},"source":{"file":"src/LibTmux/Requests/PasteBufferRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PasteBufferRequest","product":"core","slug":"libtmux-pastebufferrequest"},{"id":"LibTmux.PasteBufferRequest.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.PasteBufferRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the buffer to paste, or null for the most recent."},"source":{"file":"src/LibTmux/Requests/PasteBufferRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PasteBufferRequest.Name","product":"core","slug":"libtmux-pastebufferrequest-name"},{"id":"LibTmux.PasteBufferRequest.DeleteAfter","name":"DeleteAfter","kind":"property","modifiers":[],"parent":"LibTmux.PasteBufferRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the buffer is deleted once pasted."},"source":{"file":"src/LibTmux/Requests/PasteBufferRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PasteBufferRequest.DeleteAfter","product":"core","slug":"libtmux-pastebufferrequest-deleteafter"},{"id":"LibTmux.PasteBufferRequest.UseLineFeedSeparator","name":"UseLineFeedSeparator","kind":"property","modifiers":[],"parent":"LibTmux.PasteBufferRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether line feeds separate the lines."},"source":{"file":"src/LibTmux/Requests/PasteBufferRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PasteBufferRequest.UseLineFeedSeparator","product":"core","slug":"libtmux-pastebufferrequest-uselinefeedseparator"},{"id":"LibTmux.PasteBufferRequest.Bracketed","name":"Bracketed","kind":"property","modifiers":[],"parent":"LibTmux.PasteBufferRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the paste is bracketed."},"source":{"file":"src/LibTmux/Requests/PasteBufferRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PasteBufferRequest.Bracketed","product":"core","slug":"libtmux-pastebufferrequest-bracketed"},{"id":"LibTmux.PasteBufferRequest.Separator","name":"Separator","kind":"property","modifiers":[],"parent":"LibTmux.PasteBufferRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the separator used between lines."},"source":{"file":"src/LibTmux/Requests/PasteBufferRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PasteBufferRequest.Separator","product":"core","slug":"libtmux-pastebufferrequest-separator"},{"id":"LibTmux.PasteBufferRequest.RawBytes","name":"RawBytes","kind":"property","modifiers":[],"parent":"LibTmux.PasteBufferRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the bytes are pasted without translation.","body":"tmux gained the flag in 3.7. Older servers already paste raw bytes, so\nomitting it there asks for what they already do."},"source":{"file":"src/LibTmux/Requests/PasteBufferRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PasteBufferRequest.RawBytes","product":"core","slug":"libtmux-pastebufferrequest-rawbytes"},{"id":"LibTmux.PasteBufferRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.PasteBufferRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane being pasted into."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a paste request as one tmux command.","body":"Pasting raw bytes arrived in tmux 3.7, so the pane decides whether the\nbuilt command carries that flag."},"source":{"file":"src/LibTmux/Requests/PasteBufferRequest.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PasteBufferRequest.ToCommand","product":"core","slug":"libtmux-pastebufferrequest-tocommand"},{"id":"LibTmux.PipePaneRequest","name":"PipePaneRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one pipe-pane invocation."},"source":{"file":"src/LibTmux/Requests/PipePaneRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PipePaneRequest","product":"core","slug":"libtmux-pipepanerequest"},{"id":"LibTmux.PipePaneRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.PipePaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the command to pipe through, or null to stop piping.","body":"Omitting a command does not leave an existing pipe alone: it stops it."},"source":{"file":"src/LibTmux/Requests/PipePaneRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PipePaneRequest.Command","product":"core","slug":"libtmux-pipepanerequest-command"},{"id":"LibTmux.PipePaneRequest.OutputOnly","name":"OutputOnly","kind":"property","modifiers":[],"parent":"LibTmux.PipePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether only pane output is piped."},"source":{"file":"src/LibTmux/Requests/PipePaneRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PipePaneRequest.OutputOnly","product":"core","slug":"libtmux-pipepanerequest-outputonly"},{"id":"LibTmux.PipePaneRequest.InputOnly","name":"InputOnly","kind":"property","modifiers":[],"parent":"LibTmux.PipePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether only pane input is piped."},"source":{"file":"src/LibTmux/Requests/PipePaneRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PipePaneRequest.InputOnly","product":"core","slug":"libtmux-pipepanerequest-inputonly"},{"id":"LibTmux.PipePaneRequest.Toggle","name":"Toggle","kind":"property","modifiers":[],"parent":"LibTmux.PipePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether an identical existing pipe is stopped instead."},"source":{"file":"src/LibTmux/Requests/PipePaneRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PipePaneRequest.Toggle","product":"core","slug":"libtmux-pipepanerequest-toggle"},{"id":"LibTmux.PipePaneRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.PipePaneRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane being piped."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a pane-piping request as one tmux command."},"source":{"file":"src/LibTmux/Requests/PipePaneRequest.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PipePaneRequest.ToCommand","product":"core","slug":"libtmux-pipepanerequest-tocommand"},{"id":"LibTmux.ResizePaneRequest","name":"ResizePaneRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one resize-pane invocation.","body":"Trimming is an exclusive operation: tmux handles it before sizing, zoom or\nmouse adjustment. Combining those modes would silently ignore the resize."},"source":{"file":"src/LibTmux/Requests/ResizePaneRequest.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizePaneRequest","product":"core","slug":"libtmux-resizepanerequest"},{"id":"LibTmux.ResizePaneRequest.Direction","name":"Direction","kind":"property","modifiers":[],"parent":"LibTmux.ResizePaneRequest","signatures":[],"type":"ResizeDirection?","doc":{"summary":"Gets the edge to move."},"source":{"file":"src/LibTmux/Requests/ResizePaneRequest.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizePaneRequest.Direction","product":"core","slug":"libtmux-resizepanerequest-direction"},{"id":"LibTmux.ResizePaneRequest.Adjustment","name":"Adjustment","kind":"property","modifiers":[],"parent":"LibTmux.ResizePaneRequest","signatures":[],"type":"int?","doc":{"summary":"Gets how many cells to move the edge by."},"source":{"file":"src/LibTmux/Requests/ResizePaneRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizePaneRequest.Adjustment","product":"core","slug":"libtmux-resizepanerequest-adjustment"},{"id":"LibTmux.ResizePaneRequest.Width","name":"Width","kind":"property","modifiers":[],"parent":"LibTmux.ResizePaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the explicit width in cells or as a percentage."},"source":{"file":"src/LibTmux/Requests/ResizePaneRequest.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizePaneRequest.Width","product":"core","slug":"libtmux-resizepanerequest-width"},{"id":"LibTmux.ResizePaneRequest.Height","name":"Height","kind":"property","modifiers":[],"parent":"LibTmux.ResizePaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the explicit height in cells or as a percentage."},"source":{"file":"src/LibTmux/Requests/ResizePaneRequest.cs","line":65,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizePaneRequest.Height","product":"core","slug":"libtmux-resizepanerequest-height"},{"id":"LibTmux.ResizePaneRequest.Zoom","name":"Zoom","kind":"property","modifiers":[],"parent":"LibTmux.ResizePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane's zoom is toggled."},"source":{"file":"src/LibTmux/Requests/ResizePaneRequest.cs","line":77,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizePaneRequest.Zoom","product":"core","slug":"libtmux-resizepanerequest-zoom"},{"id":"LibTmux.ResizePaneRequest.Mouse","name":"Mouse","kind":"property","modifiers":[],"parent":"LibTmux.ResizePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the resize follows the mouse."},"source":{"file":"src/LibTmux/Requests/ResizePaneRequest.cs","line":80,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizePaneRequest.Mouse","product":"core","slug":"libtmux-resizepanerequest-mouse"},{"id":"LibTmux.ResizePaneRequest.TrimBelow","name":"TrimBelow","kind":"property","modifiers":[],"parent":"LibTmux.ResizePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether lines below the cursor are trimmed."},"source":{"file":"src/LibTmux/Requests/ResizePaneRequest.cs","line":83,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizePaneRequest.TrimBelow","product":"core","slug":"libtmux-resizepanerequest-trimbelow"},{"id":"LibTmux.ResizePaneRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.ResizePaneRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane being resized."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a pane-resize request as one tmux command."},"source":{"file":"src/LibTmux/Requests/ResizePaneRequest.cs","line":153,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizePaneRequest.ToCommand","product":"core","slug":"libtmux-resizepanerequest-tocommand"},{"id":"LibTmux.WindowResizeMode","name":"WindowResizeMode","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names how a window is resized against its clients."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowResizeMode","product":"core","slug":"libtmux-windowresizemode"},{"id":"LibTmux.WindowResizeMode.Expand","name":"Expand","kind":"constant","modifiers":[],"parent":"LibTmux.WindowResizeMode","signatures":[],"doc":{"summary":"Size the window to its largest client."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowResizeMode.Expand","product":"core","slug":"libtmux-windowresizemode-expand"},{"id":"LibTmux.WindowResizeMode.Shrink","name":"Shrink","kind":"constant","modifiers":[],"parent":"LibTmux.WindowResizeMode","signatures":[],"doc":{"summary":"Size the window to its smallest client."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowResizeMode.Shrink","product":"core","slug":"libtmux-windowresizemode-shrink"},{"id":"LibTmux.ResizeWindowRequest","name":"ResizeWindowRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one resize-window invocation.","body":"tmux applies a mode after a direction or an explicit size and silently\ndiscards the loser, so the request refuses the ambiguity instead."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeWindowRequest","product":"core","slug":"libtmux-resizewindowrequest"},{"id":"LibTmux.ResizeWindowRequest.Direction","name":"Direction","kind":"property","modifiers":[],"parent":"LibTmux.ResizeWindowRequest","signatures":[],"type":"ResizeDirection?","doc":{"summary":"Gets the edge to move."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeWindowRequest.Direction","product":"core","slug":"libtmux-resizewindowrequest-direction"},{"id":"LibTmux.ResizeWindowRequest.Adjustment","name":"Adjustment","kind":"property","modifiers":[],"parent":"LibTmux.ResizeWindowRequest","signatures":[],"type":"int?","doc":{"summary":"Gets how many cells to move the edge by."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeWindowRequest.Adjustment","product":"core","slug":"libtmux-resizewindowrequest-adjustment"},{"id":"LibTmux.ResizeWindowRequest.Width","name":"Width","kind":"property","modifiers":[],"parent":"LibTmux.ResizeWindowRequest","signatures":[],"type":"int?","doc":{"summary":"Gets the explicit width."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeWindowRequest.Width","product":"core","slug":"libtmux-resizewindowrequest-width"},{"id":"LibTmux.ResizeWindowRequest.Height","name":"Height","kind":"property","modifiers":[],"parent":"LibTmux.ResizeWindowRequest","signatures":[],"type":"int?","doc":{"summary":"Gets the explicit height."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeWindowRequest.Height","product":"core","slug":"libtmux-resizewindowrequest-height"},{"id":"LibTmux.ResizeWindowRequest.Mode","name":"Mode","kind":"property","modifiers":[],"parent":"LibTmux.ResizeWindowRequest","signatures":[],"type":"WindowResizeMode?","doc":{"summary":"Gets the sizing to follow against the window's clients."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":83,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeWindowRequest.Mode","product":"core","slug":"libtmux-resizewindowrequest-mode"},{"id":"LibTmux.ResizeWindowRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.ResizeWindowRequest","signatures":[{"params":[{"name":"window","type":"Window","doc":"The window being resized."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a window-resize request as one tmux command."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":148,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeWindowRequest.ToCommand","product":"core","slug":"libtmux-resizewindowrequest-tocommand"},{"id":"LibTmux.RespawnRequest","name":"RespawnRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one respawn-window or respawn-pane invocation.","body":"tmux refuses to respawn anything still running, so a caller who means to\nrestart a live window or pane has to say so with\n."},"source":{"file":"src/LibTmux/Requests/RespawnRequest.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RespawnRequest","product":"core","slug":"libtmux-respawnrequest"},{"id":"LibTmux.RespawnRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.RespawnRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the command to run, or null to reuse the original."},"source":{"file":"src/LibTmux/Requests/RespawnRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RespawnRequest.Command","product":"core","slug":"libtmux-respawnrequest-command"},{"id":"LibTmux.RespawnRequest.StartDirectory","name":"StartDirectory","kind":"property","modifiers":[],"parent":"LibTmux.RespawnRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the working directory to respawn in.","body":"tmux expands it as a format before it changes directory, so a #\nin it does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/RespawnRequest.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RespawnRequest.StartDirectory","product":"core","slug":"libtmux-respawnrequest-startdirectory"},{"id":"LibTmux.RespawnRequest.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.RespawnRequest","signatures":[],"type":"IReadOnlyDictionary?","doc":{"summary":"Gets the environment entries set on the respawned target."},"source":{"file":"src/LibTmux/Requests/RespawnRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RespawnRequest.Environment","product":"core","slug":"libtmux-respawnrequest-environment"},{"id":"LibTmux.RespawnRequest.KillExistingProcess","name":"KillExistingProcess","kind":"property","modifiers":[],"parent":"LibTmux.RespawnRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a running process is killed first.","body":"Respawning a live target fails without this."},"source":{"file":"src/LibTmux/Requests/RespawnRequest.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RespawnRequest.KillExistingProcess","product":"core","slug":"libtmux-respawnrequest-killexistingprocess"},{"id":"LibTmux.RespawnRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.RespawnRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane being respawned."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a respawn request as one tmux command for a pane."},"source":{"file":"src/LibTmux/Requests/RespawnRequest.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RespawnRequest.ToCommand","product":"core","slug":"libtmux-respawnrequest-tocommand"},{"id":"LibTmux.RunShellRequest","name":"RunShellRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one run-shell invocation."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest","product":"core","slug":"libtmux-runshellrequest"},{"id":"LibTmux.RunShellRequest.RunShellRequest","name":"RunShellRequest","kind":"method","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[{"params":[{"name":"command","type":"string","doc":"The command to run."}]}],"doc":{"summary":"Initializes a shell command."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.RunShellRequest","product":"core","slug":"libtmux-runshellrequest-runshellrequest"},{"id":"LibTmux.RunShellRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[],"type":"string","doc":{"summary":"Gets the command to run."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.Command","product":"core","slug":"libtmux-runshellrequest-command"},{"id":"LibTmux.RunShellRequest.Arguments","name":"Arguments","kind":"property","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[],"type":"IReadOnlyList?","doc":{"summary":"Gets arguments passed to it without a shell in between."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.Arguments","product":"core","slug":"libtmux-runshellrequest-arguments"},{"id":"LibTmux.RunShellRequest.Background","name":"Background","kind":"property","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether tmux returns without waiting for it."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.Background","product":"core","slug":"libtmux-runshellrequest-background"},{"id":"LibTmux.RunShellRequest.Delay","name":"Delay","kind":"property","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[],"type":"TimeSpan?","doc":{"summary":"Gets how long tmux waits before starting it."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.Delay","product":"core","slug":"libtmux-runshellrequest-delay"},{"id":"LibTmux.RunShellRequest.AsTmuxCommand","name":"AsTmuxCommand","kind":"property","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the text is a tmux command rather than a shell one."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":51,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.AsTmuxCommand","product":"core","slug":"libtmux-runshellrequest-astmuxcommand"},{"id":"LibTmux.RunShellRequest.TargetPane","name":"TargetPane","kind":"property","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the pane the command runs against."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.TargetPane","product":"core","slug":"libtmux-runshellrequest-targetpane"},{"id":"LibTmux.RunShellRequest.WorkingDirectory","name":"WorkingDirectory","kind":"property","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the directory it starts in."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.WorkingDirectory","product":"core","slug":"libtmux-runshellrequest-workingdirectory"},{"id":"LibTmux.RunShellRequest.ShowStandardError","name":"ShowStandardError","kind":"property","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether its error output is shown too."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":60,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.ShowStandardError","product":"core","slug":"libtmux-runshellrequest-showstandarderror"},{"id":"LibTmux.RunShellRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[{"params":[{"name":"server","type":"Server","doc":"The server that runs it."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a shell request as one tmux command.","body":"Three of this command's flags arrived at different tmux versions, so\nthe server is what decides which of them the built command carries."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.ToCommand","product":"core","slug":"libtmux-runshellrequest-tocommand"},{"id":"LibTmux.SelectLayoutMode","name":"SelectLayoutMode","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names a layout change that needs no layout string."},"source":{"file":"src/LibTmux/Requests/SelectLayoutRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectLayoutMode","product":"core","slug":"libtmux-selectlayoutmode"},{"id":"LibTmux.SelectLayoutMode.Spread","name":"Spread","kind":"constant","modifiers":[],"parent":"LibTmux.SelectLayoutMode","signatures":[],"doc":{"summary":"Spread the panes out evenly."},"source":{"file":"src/LibTmux/Requests/SelectLayoutRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectLayoutMode.Spread","product":"core","slug":"libtmux-selectlayoutmode-spread"},{"id":"LibTmux.SelectLayoutMode.Next","name":"Next","kind":"constant","modifiers":[],"parent":"LibTmux.SelectLayoutMode","signatures":[],"doc":{"summary":"Move to the next layout."},"source":{"file":"src/LibTmux/Requests/SelectLayoutRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectLayoutMode.Next","product":"core","slug":"libtmux-selectlayoutmode-next"},{"id":"LibTmux.SelectLayoutMode.Previous","name":"Previous","kind":"constant","modifiers":[],"parent":"LibTmux.SelectLayoutMode","signatures":[],"doc":{"summary":"Move to the previous layout."},"source":{"file":"src/LibTmux/Requests/SelectLayoutRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectLayoutMode.Previous","product":"core","slug":"libtmux-selectlayoutmode-previous"},{"id":"LibTmux.SelectLayoutRequest","name":"SelectLayoutRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one select-layout invocation."},"source":{"file":"src/LibTmux/Requests/SelectLayoutRequest.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectLayoutRequest","product":"core","slug":"libtmux-selectlayoutrequest"},{"id":"LibTmux.SelectLayoutRequest.Layout","name":"Layout","kind":"property","modifiers":[],"parent":"LibTmux.SelectLayoutRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the named layout, or a layout string tmux dumped."},"source":{"file":"src/LibTmux/Requests/SelectLayoutRequest.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectLayoutRequest.Layout","product":"core","slug":"libtmux-selectlayoutrequest-layout"},{"id":"LibTmux.SelectLayoutRequest.Mode","name":"Mode","kind":"property","modifiers":[],"parent":"LibTmux.SelectLayoutRequest","signatures":[],"type":"SelectLayoutMode?","doc":{"summary":"Gets the layout change that needs no name."},"source":{"file":"src/LibTmux/Requests/SelectLayoutRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectLayoutRequest.Mode","product":"core","slug":"libtmux-selectlayoutrequest-mode"},{"id":"LibTmux.SelectLayoutRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.SelectLayoutRequest","signatures":[{"params":[{"name":"window","type":"Window","doc":"The window the layout applies to."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."},{"type":"TmuxWindowException","doc":"The layout is one tmux may not recognise."}]}],"doc":{"summary":"Returns a layout request as one tmux command for a window.","body":"This takes the window because a layout name is checked against the ones\nthe running tmux knows, and an unrecognised name takes the whole server\ndown on tmux 3.3a. Batching a layout must not skip that check."},"source":{"file":"src/LibTmux/Requests/SelectLayoutRequest.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectLayoutRequest.ToCommand","product":"core","slug":"libtmux-selectlayoutrequest-tocommand"},{"id":"LibTmux.PaneSelectDirection","name":"PaneSelectDirection","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names which pane a selection moves to."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneSelectDirection","product":"core","slug":"libtmux-paneselectdirection"},{"id":"LibTmux.PaneSelectDirection.Up","name":"Up","kind":"constant","modifiers":[],"parent":"LibTmux.PaneSelectDirection","signatures":[],"doc":{"summary":"The pane above."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneSelectDirection.Up","product":"core","slug":"libtmux-paneselectdirection-up"},{"id":"LibTmux.PaneSelectDirection.Down","name":"Down","kind":"constant","modifiers":[],"parent":"LibTmux.PaneSelectDirection","signatures":[],"doc":{"summary":"The pane below."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneSelectDirection.Down","product":"core","slug":"libtmux-paneselectdirection-down"},{"id":"LibTmux.PaneSelectDirection.Left","name":"Left","kind":"constant","modifiers":[],"parent":"LibTmux.PaneSelectDirection","signatures":[],"doc":{"summary":"The pane to the left."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneSelectDirection.Left","product":"core","slug":"libtmux-paneselectdirection-left"},{"id":"LibTmux.PaneSelectDirection.Right","name":"Right","kind":"constant","modifiers":[],"parent":"LibTmux.PaneSelectDirection","signatures":[],"doc":{"summary":"The pane to the right."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneSelectDirection.Right","product":"core","slug":"libtmux-paneselectdirection-right"},{"id":"LibTmux.PaneSelectDirection.Last","name":"Last","kind":"constant","modifiers":[],"parent":"LibTmux.PaneSelectDirection","signatures":[],"doc":{"summary":"The pane that was last active."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneSelectDirection.Last","product":"core","slug":"libtmux-paneselectdirection-last"},{"id":"LibTmux.SelectPaneRequest","name":"SelectPaneRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one select-pane invocation."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectPaneRequest","product":"core","slug":"libtmux-selectpanerequest"},{"id":"LibTmux.SelectPaneRequest.Direction","name":"Direction","kind":"property","modifiers":[],"parent":"LibTmux.SelectPaneRequest","signatures":[],"type":"PaneSelectDirection?","doc":{"summary":"Gets which pane to move to.","body":" and are two\nspellings of the same tmux flag, which is sent once either way."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectPaneRequest.Direction","product":"core","slug":"libtmux-selectpanerequest-direction"},{"id":"LibTmux.SelectPaneRequest.KeepZoom","name":"KeepZoom","kind":"property","modifiers":[],"parent":"LibTmux.SelectPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a zoomed pane stays zoomed."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectPaneRequest.KeepZoom","product":"core","slug":"libtmux-selectpanerequest-keepzoom"},{"id":"LibTmux.SelectPaneRequest.Mark","name":"Mark","kind":"property","modifiers":[],"parent":"LibTmux.SelectPaneRequest","signatures":[],"type":"bool?","doc":{"summary":"Gets whether the pane is marked, unmarked, or left alone.","body":"Null omits both flags, so tmux leaves the mark as it is."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectPaneRequest.Mark","product":"core","slug":"libtmux-selectpanerequest-mark"},{"id":"LibTmux.SelectPaneRequest.InputEnabled","name":"InputEnabled","kind":"property","modifiers":[],"parent":"LibTmux.SelectPaneRequest","signatures":[],"type":"bool?","doc":{"summary":"Gets whether input is enabled, disabled, or left alone.","body":"Null omits both flags, so tmux leaves input as it is."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectPaneRequest.InputEnabled","product":"core","slug":"libtmux-selectpanerequest-inputenabled"},{"id":"LibTmux.SelectPaneRequest.Last","name":"Last","kind":"property","modifiers":[],"parent":"LibTmux.SelectPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the last active pane is selected."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":59,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectPaneRequest.Last","product":"core","slug":"libtmux-selectpanerequest-last"},{"id":"LibTmux.SelectPaneRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.SelectPaneRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane the selection is relative to."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a pane-selection request as one tmux command."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":65,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectPaneRequest.ToCommand","product":"core","slug":"libtmux-selectpanerequest-tocommand"},{"id":"LibTmux.SendKeysRequest","name":"SendKeysRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes keys and an optional following Enter for a pane."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest","product":"core","slug":"libtmux-sendkeysrequest"},{"id":"LibTmux.SendKeysRequest.Text","name":"Text","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the text or key names to send."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.Text","product":"core","slug":"libtmux-sendkeysrequest-text"},{"id":"LibTmux.SendKeysRequest.Enter","name":"Enter","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether Enter follows the text.","body":"Enter is a second command rather than an appended key, because a literal\nsend would otherwise type the five characters of its name."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.Enter","product":"core","slug":"libtmux-sendkeysrequest-enter"},{"id":"LibTmux.SendKeysRequest.SuppressHistory","name":"SuppressHistory","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the shell is asked not to record the line.","body":"There is no tmux flag for this: the text is sent with a leading space,\nwhich most shells take as a signal to keep it out of history."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.SuppressHistory","product":"core","slug":"libtmux-sendkeysrequest-suppresshistory"},{"id":"LibTmux.SendKeysRequest.Literal","name":"Literal","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the text is sent verbatim rather than as key names."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.Literal","product":"core","slug":"libtmux-sendkeysrequest-literal"},{"id":"LibTmux.SendKeysRequest.Reset","name":"Reset","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane's terminal state is reset first."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.Reset","product":"core","slug":"libtmux-sendkeysrequest-reset"},{"id":"LibTmux.SendKeysRequest.CopyModeCommand","name":"CopyModeCommand","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the copy-mode command to send instead of text."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.CopyModeCommand","product":"core","slug":"libtmux-sendkeysrequest-copymodecommand"},{"id":"LibTmux.SendKeysRequest.Repeat","name":"Repeat","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"int?","doc":{"summary":"Gets how many times the keys repeat."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.Repeat","product":"core","slug":"libtmux-sendkeysrequest-repeat"},{"id":"LibTmux.SendKeysRequest.ExpandFormats","name":"ExpandFormats","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the text is expanded as a format."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.ExpandFormats","product":"core","slug":"libtmux-sendkeysrequest-expandformats"},{"id":"LibTmux.SendKeysRequest.HexKeys","name":"HexKeys","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether key names are read as hexadecimal."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.HexKeys","product":"core","slug":"libtmux-sendkeysrequest-hexkeys"},{"id":"LibTmux.SendKeysRequest.TargetClient","name":"TargetClient","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the client whose keys are sent.","body":"tmux gained this in 3.4."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.TargetClient","product":"core","slug":"libtmux-sendkeysrequest-targetclient"},{"id":"LibTmux.SendKeysRequest.KeyName","name":"KeyName","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the text names a key rather than a string.","body":"tmux gained this in 3.4."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.KeyName","product":"core","slug":"libtmux-sendkeysrequest-keyname"},{"id":"LibTmux.SendKeysRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane that receives them."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."},{"type":"ArgumentException","doc":"The request sends nothing or needs separate text and Enter commands."}]}],"doc":{"summary":"Returns a key request that needs only one tmux command."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.ToCommand","product":"core","slug":"libtmux-sendkeysrequest-tocommand"},{"id":"LibTmux.SendKeysRequest.ToCommands","name":"ToCommands","kind":"method","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane that receives the keys."}],"returns":"IReadOnlyList","returnsDoc":"The text command followed by Enter when requested.","raises":[{"type":"ArgumentNullException","doc":" is null."},{"type":"ArgumentException","doc":"The request sends nothing or its text contains NUL."}]}],"doc":{"summary":"Returns every command the key request sends, in order.","body":"Enter uses a separate command so literal mode types the text and then presses the key."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":72,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.ToCommands","product":"core","slug":"libtmux-sendkeysrequest-tocommands"},{"id":"LibTmux.ServerAccessRequest","name":"ServerAccessRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one server-access invocation.","body":"tmux lets other users attach to a server over its socket. Access is granted\nper user, and read-only or read-write says what a granted user may do."},"source":{"file":"src/LibTmux/Requests/ServerAccessRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerAccessRequest","product":"core","slug":"libtmux-serveraccessrequest"},{"id":"LibTmux.ServerAccessRequest.AllowUser","name":"AllowUser","kind":"property","modifiers":[],"parent":"LibTmux.ServerAccessRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the user to grant access to."},"source":{"file":"src/LibTmux/Requests/ServerAccessRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerAccessRequest.AllowUser","product":"core","slug":"libtmux-serveraccessrequest-allowuser"},{"id":"LibTmux.ServerAccessRequest.DenyUser","name":"DenyUser","kind":"property","modifiers":[],"parent":"LibTmux.ServerAccessRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the user to take access from."},"source":{"file":"src/LibTmux/Requests/ServerAccessRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerAccessRequest.DenyUser","product":"core","slug":"libtmux-serveraccessrequest-denyuser"},{"id":"LibTmux.ServerAccessRequest.List","name":"List","kind":"property","modifiers":[],"parent":"LibTmux.ServerAccessRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the current list is reported."},"source":{"file":"src/LibTmux/Requests/ServerAccessRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerAccessRequest.List","product":"core","slug":"libtmux-serveraccessrequest-list"},{"id":"LibTmux.ServerAccessRequest.ReadOnly","name":"ReadOnly","kind":"property","modifiers":[],"parent":"LibTmux.ServerAccessRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the granted user may only look."},"source":{"file":"src/LibTmux/Requests/ServerAccessRequest.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerAccessRequest.ReadOnly","product":"core","slug":"libtmux-serveraccessrequest-readonly"},{"id":"LibTmux.ServerAccessRequest.ReadWrite","name":"ReadWrite","kind":"property","modifiers":[],"parent":"LibTmux.ServerAccessRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the granted user may also act."},"source":{"file":"src/LibTmux/Requests/ServerAccessRequest.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerAccessRequest.ReadWrite","product":"core","slug":"libtmux-serveraccessrequest-readwrite"},{"id":"LibTmux.ServerAccessRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.ServerAccessRequest","signatures":[{"params":[{"name":"server","type":"Server","doc":"The server whose access is changed."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."},{"type":"TmuxVersionTooLowException","doc":"tmux is older than 3.3."}]}],"doc":{"summary":"Returns an access request as one tmux command.","body":"The command itself arrived in tmux 3.3, so batching does not soften the\nrefusal below that: an older server has nothing to send it to."},"source":{"file":"src/LibTmux/Requests/ServerAccessRequest.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerAccessRequest.ToCommand","product":"core","slug":"libtmux-serveraccessrequest-tocommand"},{"id":"LibTmux.SetHookRequest","name":"SetHookRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one set-hook invocation."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest","product":"core","slug":"libtmux-sethookrequest"},{"id":"LibTmux.SetHookRequest.SetHookRequest","name":"SetHookRequest","kind":"method","modifiers":[],"parent":"LibTmux.SetHookRequest","signatures":[{"params":[{"name":"name","type":"string","doc":"The hook name, optionally with an array index."},{"name":"value","type":"string","doc":"The tmux command to run when the hook fires."}]}],"doc":{"summary":"Initializes a request to set one hook."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest.SetHookRequest","product":"core","slug":"libtmux-sethookrequest-sethookrequest"},{"id":"LibTmux.SetHookRequest.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.SetHookRequest","signatures":[],"type":"string","doc":{"summary":"Gets the hook name, optionally with an array index.","body":"tmux expands it as a format before it names anything, so a # in\nit does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest.Name","product":"core","slug":"libtmux-sethookrequest-name"},{"id":"LibTmux.SetHookRequest.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.SetHookRequest","signatures":[],"type":"string","doc":{"summary":"Gets the tmux command to run when the hook fires."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest.Value","product":"core","slug":"libtmux-sethookrequest-value"},{"id":"LibTmux.SetHookRequest.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.SetHookRequest","signatures":[],"type":"OptionScope?","doc":{"summary":"Gets the scope to set in, or null for the owner's own."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest.Scope","product":"core","slug":"libtmux-sethookrequest-scope"},{"id":"LibTmux.SetHookRequest.Global","name":"Global","kind":"property","modifiers":[],"parent":"LibTmux.SetHookRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the global table is set instead of the local one."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest.Global","product":"core","slug":"libtmux-sethookrequest-global"},{"id":"LibTmux.SetHookRequest.Unset","name":"Unset","kind":"property","modifiers":[],"parent":"LibTmux.SetHookRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the hook is removed rather than set."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest.Unset","product":"core","slug":"libtmux-sethookrequest-unset"},{"id":"LibTmux.SetHookRequest.RunImmediately","name":"RunImmediately","kind":"property","modifiers":[],"parent":"LibTmux.SetHookRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether tmux also runs the command now."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest.RunImmediately","product":"core","slug":"libtmux-sethookrequest-runimmediately"},{"id":"LibTmux.SetHookRequest.Append","name":"Append","kind":"property","modifiers":[],"parent":"LibTmux.SetHookRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the command joins the hook's existing entries."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest.Append","product":"core","slug":"libtmux-sethookrequest-append"},{"id":"LibTmux.SetHookRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.SetHookRequest","signatures":[{"params":[{"name":"hooks","type":"TmuxHooks","doc":"The hooks handle whose scope the hook is set in."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a hook request as one tmux command."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest.ToCommand","product":"core","slug":"libtmux-sethookrequest-tocommand"},{"id":"LibTmux.SetHooksRequest","name":"SetHooksRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes setting several entries of one hook.","body":"A tmux hook is an array, and the indices decide the order its commands run\nin. Entries are written sequentially in index order, without a transaction.\nThe hook may fire between writes, and failure leaves earlier writes applied."},"source":{"file":"src/LibTmux/Requests/SetHooksRequest.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHooksRequest","product":"core","slug":"libtmux-sethooksrequest"},{"id":"LibTmux.SetHooksRequest.SetHooksRequest","name":"SetHooksRequest","kind":"method","modifiers":[],"parent":"LibTmux.SetHooksRequest","signatures":[{"params":[{"name":"name","type":"string","doc":"The hook name, without an index."},{"name":"values","type":"IReadOnlyDictionary","doc":"The command to place at each index."}]}],"doc":{"summary":"Initializes a request to set several entries of one hook."},"source":{"file":"src/LibTmux/Requests/SetHooksRequest.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHooksRequest.SetHooksRequest","product":"core","slug":"libtmux-sethooksrequest-sethooksrequest"},{"id":"LibTmux.SetHooksRequest.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.SetHooksRequest","signatures":[],"type":"string","doc":{"summary":"Gets the hook name, without an index.","body":"tmux expands it as a format before it names anything, so a # in\nit does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/SetHooksRequest.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHooksRequest.Name","product":"core","slug":"libtmux-sethooksrequest-name"},{"id":"LibTmux.SetHooksRequest.Values","name":"Values","kind":"property","modifiers":[],"parent":"LibTmux.SetHooksRequest","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the command to place at each index."},"source":{"file":"src/LibTmux/Requests/SetHooksRequest.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHooksRequest.Values","product":"core","slug":"libtmux-sethooksrequest-values"},{"id":"LibTmux.SetHooksRequest.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.SetHooksRequest","signatures":[],"type":"OptionScope?","doc":{"summary":"Gets the scope to set in, or null for the owner's own."},"source":{"file":"src/LibTmux/Requests/SetHooksRequest.cs","line":60,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHooksRequest.Scope","product":"core","slug":"libtmux-sethooksrequest-scope"},{"id":"LibTmux.SetHooksRequest.Global","name":"Global","kind":"property","modifiers":[],"parent":"LibTmux.SetHooksRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the global table is set instead of the local one."},"source":{"file":"src/LibTmux/Requests/SetHooksRequest.cs","line":63,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHooksRequest.Global","product":"core","slug":"libtmux-sethooksrequest-global"},{"id":"LibTmux.SetHooksRequest.ClearExisting","name":"ClearExisting","kind":"property","modifiers":[],"parent":"LibTmux.SetHooksRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether entries already there are removed first."},"source":{"file":"src/LibTmux/Requests/SetHooksRequest.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHooksRequest.ClearExisting","product":"core","slug":"libtmux-sethooksrequest-clearexisting"},{"id":"LibTmux.SetOptionRequest","name":"SetOptionRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one set-option invocation."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest","product":"core","slug":"libtmux-setoptionrequest"},{"id":"LibTmux.SetOptionRequest.SetOptionRequest","name":"SetOptionRequest","kind":"method","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[{"params":[{"name":"name","type":"string","doc":"The option to set, optionally with an array index."},{"name":"value","type":"string","doc":"The value to store."}]}],"doc":{"summary":"Initializes a request to set one option."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.SetOptionRequest","product":"core","slug":"libtmux-setoptionrequest-setoptionrequest"},{"id":"LibTmux.SetOptionRequest.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[],"type":"string","doc":{"summary":"Gets the option to set, optionally with an array index.","body":"tmux expands it as a format before it names anything, so a # in\nit does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.Name","product":"core","slug":"libtmux-setoptionrequest-name"},{"id":"LibTmux.SetOptionRequest.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[],"type":"string","doc":{"summary":"Gets the value to store."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.Value","product":"core","slug":"libtmux-setoptionrequest-value"},{"id":"LibTmux.SetOptionRequest.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[],"type":"OptionScope?","doc":{"summary":"Gets the scope to set in, or null for the owner's own."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.Scope","product":"core","slug":"libtmux-setoptionrequest-scope"},{"id":"LibTmux.SetOptionRequest.ExpandFormat","name":"ExpandFormat","kind":"property","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether tmux expands the value as a format before storing it."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.ExpandFormat","product":"core","slug":"libtmux-setoptionrequest-expandformat"},{"id":"LibTmux.SetOptionRequest.PreventOverwrite","name":"PreventOverwrite","kind":"property","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether an already-set option is left alone."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.PreventOverwrite","product":"core","slug":"libtmux-setoptionrequest-preventoverwrite"},{"id":"LibTmux.SetOptionRequest.Quiet","name":"Quiet","kind":"property","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a rejected option is answered with nothing instead of an error."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.Quiet","product":"core","slug":"libtmux-setoptionrequest-quiet"},{"id":"LibTmux.SetOptionRequest.Append","name":"Append","kind":"property","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the value is appended to the existing one."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.Append","product":"core","slug":"libtmux-setoptionrequest-append"},{"id":"LibTmux.SetOptionRequest.Global","name":"Global","kind":"property","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the global table is set instead of the local one."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.Global","product":"core","slug":"libtmux-setoptionrequest-global"},{"id":"LibTmux.SetOptionRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[{"params":[{"name":"options","type":"TmuxOptions","doc":"The options handle whose scope the option is set in."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns an option request as one tmux command.","body":"This takes the options handle rather than a server, because which\nscope flags and target tmux receives follow from the handle the caller\nreached for: a window's options and a server's are the same request\nspelled differently."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":59,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.ToCommand","product":"core","slug":"libtmux-setoptionrequest-tocommand"},{"id":"LibTmux.SplitPaneRequest","name":"SplitPaneRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one split-window invocation.","body":"Every option is set through an initializer rather than a constructor\nargument. tmux gains flags, and a constructor that grew one would break\nevery caller already compiled against the old signature; a property added\nbeside these does not."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest","product":"core","slug":"libtmux-splitpanerequest"},{"id":"LibTmux.SplitPaneRequest.Target","name":"Target","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the pane to split, or null for the active one."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Target","product":"core","slug":"libtmux-splitpanerequest-target"},{"id":"LibTmux.SplitPaneRequest.ExpectedWindowId","name":"ExpectedWindowId","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"WindowId?","doc":{"summary":"Gets the window that must contain the target pane at dispatch.","body":"When supplied, a nonwaiting native guard checks the resolved target's\nwindow immediately before splitting. Null keeps ordinary tmux target\nsemantics. This check does not prevent a later move during readback."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.ExpectedWindowId","product":"core","slug":"libtmux-splitpanerequest-expectedwindowid"},{"id":"LibTmux.SplitPaneRequest.StartDirectory","name":"StartDirectory","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the working directory for the new pane.","body":"tmux expands it as a format before it changes directory, so a #\nin it does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.StartDirectory","product":"core","slug":"libtmux-splitpanerequest-startdirectory"},{"id":"LibTmux.SplitPaneRequest.Attach","name":"Attach","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the new pane becomes active."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Attach","product":"core","slug":"libtmux-splitpanerequest-attach"},{"id":"LibTmux.SplitPaneRequest.Direction","name":"Direction","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"PaneDirection?","doc":{"summary":"Gets where the new pane goes."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Direction","product":"core","slug":"libtmux-splitpanerequest-direction"},{"id":"LibTmux.SplitPaneRequest.FullWindow","name":"FullWindow","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the split spans the whole window."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.FullWindow","product":"core","slug":"libtmux-splitpanerequest-fullwindow"},{"id":"LibTmux.SplitPaneRequest.Zoom","name":"Zoom","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the new pane is zoomed."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Zoom","product":"core","slug":"libtmux-splitpanerequest-zoom"},{"id":"LibTmux.SplitPaneRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the command the new pane runs."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Command","product":"core","slug":"libtmux-splitpanerequest-command"},{"id":"LibTmux.SplitPaneRequest.Size","name":"Size","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the explicit size in cells."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Size","product":"core","slug":"libtmux-splitpanerequest-size"},{"id":"LibTmux.SplitPaneRequest.Percentage","name":"Percentage","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"int?","doc":{"summary":"Gets the size as a percentage of the window."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Percentage","product":"core","slug":"libtmux-splitpanerequest-percentage"},{"id":"LibTmux.SplitPaneRequest.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"IReadOnlyDictionary?","doc":{"summary":"Gets the environment entries set on the new pane."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Environment","product":"core","slug":"libtmux-splitpanerequest-environment"},{"id":"LibTmux.SplitPaneRequest.Empty","name":"Empty","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane starts with no command."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Empty","product":"core","slug":"libtmux-splitpanerequest-empty"},{"id":"LibTmux.SplitPaneRequest.Style","name":"Style","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the pane style."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":90,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Style","product":"core","slug":"libtmux-splitpanerequest-style"},{"id":"LibTmux.SplitPaneRequest.ActiveBorderStyle","name":"ActiveBorderStyle","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the border style while the pane is active."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":93,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.ActiveBorderStyle","product":"core","slug":"libtmux-splitpanerequest-activeborderstyle"},{"id":"LibTmux.SplitPaneRequest.InactiveBorderStyle","name":"InactiveBorderStyle","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the border style while it is not."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":96,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.InactiveBorderStyle","product":"core","slug":"libtmux-splitpanerequest-inactiveborderstyle"},{"id":"LibTmux.SplitPaneRequest.Message","name":"Message","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the message shown in the pane."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":99,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Message","product":"core","slug":"libtmux-splitpanerequest-message"},{"id":"LibTmux.SplitPaneRequest.KeepOpen","name":"KeepOpen","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane stays after its command exits."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":102,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.KeepOpen","product":"core","slug":"libtmux-splitpanerequest-keepopen"},{"id":"LibTmux.SplitPaneRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane being split."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a split request as one tmux command.","body":"Splitting into an empty pane arrived in tmux 3.7 and the appearance\nflags in 3.6, so the pane decides which of them the built command\ncarries. It prints the new pane's identifier the same way the one-shot\npath does."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":133,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.ToCommand","product":"core","slug":"libtmux-splitpanerequest-tocommand"},{"id":"LibTmux.PaneSwapDirection","name":"PaneSwapDirection","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names which neighbouring pane a swap uses."},"source":{"file":"src/LibTmux/Requests/SwapPaneRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneSwapDirection","product":"core","slug":"libtmux-paneswapdirection"},{"id":"LibTmux.PaneSwapDirection.Up","name":"Up","kind":"constant","modifiers":[],"parent":"LibTmux.PaneSwapDirection","signatures":[],"doc":{"summary":"The pane above."},"source":{"file":"src/LibTmux/Requests/SwapPaneRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneSwapDirection.Up","product":"core","slug":"libtmux-paneswapdirection-up"},{"id":"LibTmux.PaneSwapDirection.Down","name":"Down","kind":"constant","modifiers":[],"parent":"LibTmux.PaneSwapDirection","signatures":[],"doc":{"summary":"The pane below."},"source":{"file":"src/LibTmux/Requests/SwapPaneRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneSwapDirection.Down","product":"core","slug":"libtmux-paneswapdirection-down"},{"id":"LibTmux.SwapPaneRequest","name":"SwapPaneRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one swap-pane invocation.","body":"tmux replaces a named source with the neighbour whenever a direction is\ngiven, so sending both would quietly drop the name."},"source":{"file":"src/LibTmux/Requests/SwapPaneRequest.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SwapPaneRequest","product":"core","slug":"libtmux-swappanerequest"},{"id":"LibTmux.SwapPaneRequest.Target","name":"Target","kind":"property","modifiers":[],"parent":"LibTmux.SwapPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the pane to swap with."},"source":{"file":"src/LibTmux/Requests/SwapPaneRequest.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SwapPaneRequest.Target","product":"core","slug":"libtmux-swappanerequest-target"},{"id":"LibTmux.SwapPaneRequest.Direction","name":"Direction","kind":"property","modifiers":[],"parent":"LibTmux.SwapPaneRequest","signatures":[],"type":"PaneSwapDirection?","doc":{"summary":"Gets the neighbour to swap with instead."},"source":{"file":"src/LibTmux/Requests/SwapPaneRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SwapPaneRequest.Direction","product":"core","slug":"libtmux-swappanerequest-direction"},{"id":"LibTmux.SwapPaneRequest.Detach","name":"Detach","kind":"property","modifiers":[],"parent":"LibTmux.SwapPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the swapped pane is left unselected."},"source":{"file":"src/LibTmux/Requests/SwapPaneRequest.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SwapPaneRequest.Detach","product":"core","slug":"libtmux-swappanerequest-detach"},{"id":"LibTmux.SwapPaneRequest.KeepZoom","name":"KeepZoom","kind":"property","modifiers":[],"parent":"LibTmux.SwapPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a zoomed pane stays zoomed."},"source":{"file":"src/LibTmux/Requests/SwapPaneRequest.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SwapPaneRequest.KeepZoom","product":"core","slug":"libtmux-swappanerequest-keepzoom"},{"id":"LibTmux.SwapPaneRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.SwapPaneRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane being swapped."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a pane-swap request as one tmux command."},"source":{"file":"src/LibTmux/Requests/SwapPaneRequest.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SwapPaneRequest.ToCommand","product":"core","slug":"libtmux-swappanerequest-tocommand"},{"id":"LibTmux.UnbindKeyRequest","name":"UnbindKeyRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one unbind-key invocation."},"source":{"file":"src/LibTmux/Requests/UnbindKeyRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnbindKeyRequest","product":"core","slug":"libtmux-unbindkeyrequest"},{"id":"LibTmux.UnbindKeyRequest.Key","name":"Key","kind":"property","modifiers":[],"parent":"LibTmux.UnbindKeyRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the key to unbind, or null when removing them all."},"source":{"file":"src/LibTmux/Requests/UnbindKeyRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnbindKeyRequest.Key","product":"core","slug":"libtmux-unbindkeyrequest-key"},{"id":"LibTmux.UnbindKeyRequest.KeyTable","name":"KeyTable","kind":"property","modifiers":[],"parent":"LibTmux.UnbindKeyRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the key table, or null for the prefix table."},"source":{"file":"src/LibTmux/Requests/UnbindKeyRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnbindKeyRequest.KeyTable","product":"core","slug":"libtmux-unbindkeyrequest-keytable"},{"id":"LibTmux.UnbindKeyRequest.All","name":"All","kind":"property","modifiers":[],"parent":"LibTmux.UnbindKeyRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether every binding in the table goes."},"source":{"file":"src/LibTmux/Requests/UnbindKeyRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnbindKeyRequest.All","product":"core","slug":"libtmux-unbindkeyrequest-all"},{"id":"LibTmux.UnbindKeyRequest.Quiet","name":"Quiet","kind":"property","modifiers":[],"parent":"LibTmux.UnbindKeyRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether an absent binding is passed over in silence."},"source":{"file":"src/LibTmux/Requests/UnbindKeyRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnbindKeyRequest.Quiet","product":"core","slug":"libtmux-unbindkeyrequest-quiet"},{"id":"LibTmux.UnbindKeyRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.UnbindKeyRequest","signatures":[{"params":[],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a ."}],"doc":{"summary":"Returns a key-unbinding request as one tmux command."},"source":{"file":"src/LibTmux/Requests/UnbindKeyRequest.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnbindKeyRequest.ToCommand","product":"core","slug":"libtmux-unbindkeyrequest-tocommand"},{"id":"LibTmux.UnsetOptionRequest","name":"UnsetOptionRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one set-option -u invocation."},"source":{"file":"src/LibTmux/Requests/UnsetOptionRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsetOptionRequest","product":"core","slug":"libtmux-unsetoptionrequest"},{"id":"LibTmux.UnsetOptionRequest.UnsetOptionRequest","name":"UnsetOptionRequest","kind":"method","modifiers":[],"parent":"LibTmux.UnsetOptionRequest","signatures":[{"params":[{"name":"name","type":"string","doc":"The option to unset, optionally with an array index."}]}],"doc":{"summary":"Initializes a request to unset one option."},"source":{"file":"src/LibTmux/Requests/UnsetOptionRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsetOptionRequest.UnsetOptionRequest","product":"core","slug":"libtmux-unsetoptionrequest-unsetoptionrequest"},{"id":"LibTmux.UnsetOptionRequest.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.UnsetOptionRequest","signatures":[],"type":"string","doc":{"summary":"Gets the option to unset, optionally with an array index.","body":"tmux expands it as a format before it names anything, so a # in\nit does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/UnsetOptionRequest.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsetOptionRequest.Name","product":"core","slug":"libtmux-unsetoptionrequest-name"},{"id":"LibTmux.UnsetOptionRequest.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.UnsetOptionRequest","signatures":[],"type":"OptionScope?","doc":{"summary":"Gets the scope to unset in, or null for the owner's own."},"source":{"file":"src/LibTmux/Requests/UnsetOptionRequest.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsetOptionRequest.Scope","product":"core","slug":"libtmux-unsetoptionrequest-scope"},{"id":"LibTmux.UnsetOptionRequest.Global","name":"Global","kind":"property","modifiers":[],"parent":"LibTmux.UnsetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the global table is unset instead of the local one."},"source":{"file":"src/LibTmux/Requests/UnsetOptionRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsetOptionRequest.Global","product":"core","slug":"libtmux-unsetoptionrequest-global"},{"id":"LibTmux.UnsetOptionRequest.UnsetPaneOverrides","name":"UnsetPaneOverrides","kind":"property","modifiers":[],"parent":"LibTmux.UnsetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether every pane's override of the option goes too."},"source":{"file":"src/LibTmux/Requests/UnsetOptionRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsetOptionRequest.UnsetPaneOverrides","product":"core","slug":"libtmux-unsetoptionrequest-unsetpaneoverrides"},{"id":"LibTmux.UnsetOptionRequest.Quiet","name":"Quiet","kind":"property","modifiers":[],"parent":"LibTmux.UnsetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a missing option is answered with nothing instead of an error."},"source":{"file":"src/LibTmux/Requests/UnsetOptionRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsetOptionRequest.Quiet","product":"core","slug":"libtmux-unsetoptionrequest-quiet"},{"id":"LibTmux.UnsetOptionRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.UnsetOptionRequest","signatures":[{"params":[{"name":"options","type":"TmuxOptions","doc":"The options handle whose scope the option is unset in."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns an unset request as one tmux command."},"source":{"file":"src/LibTmux/Requests/UnsetOptionRequest.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsetOptionRequest.ToCommand","product":"core","slug":"libtmux-unsetoptionrequest-tocommand"},{"id":"LibTmux.TmuxWaitMode","name":"TmuxWaitMode","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"What to do with a wait-for channel."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitMode","product":"core","slug":"libtmux-tmuxwaitmode"},{"id":"LibTmux.TmuxWaitMode.Wait","name":"Wait","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxWaitMode","signatures":[],"doc":{"summary":"Block until the channel is signalled."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitMode.Wait","product":"core","slug":"libtmux-tmuxwaitmode-wait"},{"id":"LibTmux.TmuxWaitMode.Signal","name":"Signal","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxWaitMode","signatures":[],"doc":{"summary":"Release everything waiting on the channel."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitMode.Signal","product":"core","slug":"libtmux-tmuxwaitmode-signal"},{"id":"LibTmux.TmuxWaitMode.Lock","name":"Lock","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxWaitMode","signatures":[],"doc":{"summary":"Take the channel's lock, blocking until it is free."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitMode.Lock","product":"core","slug":"libtmux-tmuxwaitmode-lock"},{"id":"LibTmux.TmuxWaitMode.Unlock","name":"Unlock","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxWaitMode","signatures":[],"doc":{"summary":"Release the channel's lock."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitMode.Unlock","product":"core","slug":"libtmux-tmuxwaitmode-unlock"},{"id":"LibTmux.WaitForRequest","name":"WaitForRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one wait-for invocation.","body":"tmux channels let a command wait for something another command will do.\nWaiting blocks the tmux client, so a call that waits has nothing to answer\nuntil whoever it is waiting for arrives."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WaitForRequest","product":"core","slug":"libtmux-waitforrequest"},{"id":"LibTmux.WaitForRequest.WaitForRequest","name":"WaitForRequest","kind":"method","modifiers":[],"parent":"LibTmux.WaitForRequest","signatures":[{"params":[{"name":"channel","type":"string","doc":"The channel name."},{"name":"mode","type":"TmuxWaitMode","doc":"What to do with it."}]}],"doc":{"summary":"Initializes a channel request."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WaitForRequest.WaitForRequest","product":"core","slug":"libtmux-waitforrequest-waitforrequest"},{"id":"LibTmux.WaitForRequest.Channel","name":"Channel","kind":"property","modifiers":[],"parent":"LibTmux.WaitForRequest","signatures":[],"type":"string","doc":{"summary":"Gets the channel name."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WaitForRequest.Channel","product":"core","slug":"libtmux-waitforrequest-channel"},{"id":"LibTmux.WaitForRequest.Mode","name":"Mode","kind":"property","modifiers":[],"parent":"LibTmux.WaitForRequest","signatures":[],"type":"TmuxWaitMode","doc":{"summary":"Gets what to do with it."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WaitForRequest.Mode","product":"core","slug":"libtmux-waitforrequest-mode"},{"id":"LibTmux.WaitForRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.WaitForRequest","signatures":[{"params":[],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a ."}],"doc":{"summary":"Returns a channel request as one tmux command."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WaitForRequest.ToCommand","product":"core","slug":"libtmux-waitforrequest-tocommand"},{"id":"LibTmux.Server.ConfigureAccessAsync","name":"ConfigureAccessAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"ServerAccessRequest","doc":"Who, and what they may do."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task?>","returnsDoc":"The current list when it was asked for, and null otherwise.","raises":[{"type":"TmuxVersionTooLowException","doc":"tmux is older than 3.3."}]}],"doc":{"summary":"Grants or withdraws another user's access to this server."},"source":{"file":"src/LibTmux/Server.Administration.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ConfigureAccessAsync","product":"core","slug":"libtmux-server-configureaccessasync"},{"id":"LibTmux.Server.SourceFileAsync","name":"SourceFileAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"path","type":"string","doc":"The file to read."},{"name":"quiet","type":"bool","default":"false","doc":"Whether a missing file is passed over in silence."},{"name":"parseOnly","type":"bool","default":"false","doc":"Whether the file is checked rather than run."},{"name":"verbose","type":"bool","default":"false","doc":"Whether each command read is reported."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Reads a tmux configuration file."},"source":{"file":"src/LibTmux/Server.Administration.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.SourceFileAsync","product":"core","slug":"libtmux-server-sourcefileasync"},{"id":"LibTmux.Server.LockAsync","name":"LockAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Locks every client attached to this server."},"source":{"file":"src/LibTmux/Server.Administration.cs","line":78,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.LockAsync","product":"core","slug":"libtmux-server-lockasync"},{"id":"LibTmux.Server.GetMessagesAsync","name":"GetMessagesAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"targetClient","type":"string?","default":"null","doc":"The client to read for, or null for the server."},{"name":"mode","type":"ShowMessagesMode","default":"ShowMessagesMode.Messages","doc":"Which log to read."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"One line per entry."}],"doc":{"summary":"Reads what the server has been logging."},"source":{"file":"src/LibTmux/Server.Administration.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetMessagesAsync","product":"core","slug":"libtmux-server-getmessagesasync"},{"id":"LibTmux.Server.GetCommandsAsync","name":"GetCommandsAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"name","type":"string?","default":"null","doc":"One command to describe, or null for all of them."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"One line per command, giving its syntax."}],"doc":{"summary":"Reads the commands this tmux knows."},"source":{"file":"src/LibTmux/Server.Administration.cs","line":107,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetCommandsAsync","product":"core","slug":"libtmux-server-getcommandsasync"},{"id":"LibTmux.Server.Chain","name":"Chain","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[],"returns":"TmuxChain","returnsDoc":"An empty chain bound to this server.","raises":[{"type":"InvalidOperationException","doc":"The handle has no connection."}]}],"doc":{"summary":"Begins a chain that runs its commands in one tmux invocation.","body":"This is the batched counterpart to the one-shot methods. Which one is\nin use is visible where the call starts rather than in an option, and\nnothing runs until the chain is executed."},"source":{"file":"src/LibTmux/Server.Chaining.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Chain","product":"core","slug":"libtmux-server-chain"},{"id":"LibTmux.Server.GetClientsAsync","name":"GetClientsAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The clients tmux reports.","raises":[{"type":"LibTmuxException","doc":"The listing failed, including an absent daemon."}]}],"doc":{"summary":"Reads the clients attached to this server.","body":"A handle that has not found a live server yet discovers one first.","examples":[{"lang":"console","intro":"Read scalar listings from two detached sessions on a private server. Fresh rows do not imply captured child relations. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerListings.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverlistings-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope demo = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\nawait using OwnedSessionScope worker = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"worker\", Command = \"/bin/cat\" }, token);\nServer server = await Server.ConnectAsync(options, token);\n\nIReadOnlyList sessions = await server.GetSessionsAsync(token);\nIReadOnlyList windows = await server.GetWindowsAsync(token);\nIReadOnlyList panes = await server.GetPanesAsync(token);\nIReadOnlyList clients = await server.GetClientsAsync(token);\nif (sessions.Count != 2 || windows.Count != 2 || panes.Count != 2 || clients.Count != 0)\n{\n throw new InvalidOperationException(\"Expected two detached sessions, each with one window and pane.\");\n}\nif (sessions.Any(session => session.Windows.IsCaptured))\n{\n throw new InvalidOperationException(\"Scalar listings must not imply captured child relations.\");\n}\n\nforeach (Session session in sessions.OrderBy(session => session.Name, StringComparer.Ordinal))\n{\n Console.WriteLine($\"Session: {session.Name} ({session.Id})\");\n}\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}; clients: {clients.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Session: demo ($0)\nSession: worker ($1)\nWindows: 2; panes: 2; clients: 0\n"}]},"source":{"file":"src/LibTmux/Server.Clients.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetClientsAsync","product":"core","slug":"libtmux-server-getclientsasync"},{"id":"LibTmux.Server.DetachClientAsync","name":"DetachClientAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"targetClient","type":"string?","default":"null","doc":"The client, or null for the caller's own."},{"name":"shellCommand","type":"string?","default":"null","doc":"A command the detached client runs."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Detaches one client."},"source":{"file":"src/LibTmux/Server.Clients.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.DetachClientAsync","product":"core","slug":"libtmux-server-detachclientasync"},{"id":"LibTmux.Server.DetachAllClientsAsync","name":"DetachAllClientsAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"keepClient","type":"string?","default":"null","doc":"The client to leave attached."},{"name":"shellCommand","type":"string?","default":"null","doc":"A command the detached clients run."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Detaches every client except one.","body":"tmux reads the kept client from the same target flag it uses to name a\nclient, so this always spares one. Naming none does not mean \"spare\nnone\": tmux falls back to whichever client it resolves for the caller,\nwhich from a process with no client of its own leaves that client\nattached and detaches nothing."},"source":{"file":"src/LibTmux/Server.Clients.cs","line":63,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.DetachAllClientsAsync","product":"core","slug":"libtmux-server-detachallclientsasync"},{"id":"LibTmux.Server.LockClientAsync","name":"LockClientAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"targetClient","type":"string?","default":"null","doc":"The client, or null for the caller's own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Locks one client."},"source":{"file":"src/LibTmux/Server.Clients.cs","line":73,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.LockClientAsync","product":"core","slug":"libtmux-server-lockclientasync"},{"id":"LibTmux.Server.SuspendClientAsync","name":"SuspendClientAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"targetClient","type":"string?","default":"null","doc":"The client, or null for the caller's own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Suspends one client."},"source":{"file":"src/LibTmux/Server.Clients.cs","line":82,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.SuspendClientAsync","product":"core","slug":"libtmux-server-suspendclientasync"},{"id":"LibTmux.Server.RefreshClientAsync","name":"RefreshClientAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"targetClient","type":"string?","default":"null","doc":"The client, or null for the caller's own."},{"name":"requestClipboard","type":"bool","default":"false","doc":"Whether the client is asked for its clipboard."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Redraws one client.","body":"Asking for the clipboard arrived in tmux 3.7. Older servers are asked to\nredraw and nothing else."},"source":{"file":"src/LibTmux/Server.Clients.cs","line":96,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.RefreshClientAsync","product":"core","slug":"libtmux-server-refreshclientasync"},{"id":"LibTmux.Server.SwitchClientAsync","name":"SwitchClientAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"targetSession","type":"string","doc":"The session to switch to."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Switches the caller's client to another session."},"source":{"file":"src/LibTmux/Server.Clients.cs","line":115,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.SwitchClientAsync","product":"core","slug":"libtmux-server-switchclientasync"},{"id":"LibTmux.Server.GetSessionsAsync","name":"GetSessionsAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The sessions reported by a successful read.","raises":[{"type":"LibTmuxException","doc":"The listing failed, including an absent daemon."}]}],"doc":{"summary":"Reads every session on this server.","body":"A handle that has not found a live server yet discovers one first.","examples":[{"lang":"console","intro":"Read scalar listings from two detached sessions on a private server. Fresh rows do not imply captured child relations. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerListings.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverlistings-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope demo = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\nawait using OwnedSessionScope worker = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"worker\", Command = \"/bin/cat\" }, token);\nServer server = await Server.ConnectAsync(options, token);\n\nIReadOnlyList sessions = await server.GetSessionsAsync(token);\nIReadOnlyList windows = await server.GetWindowsAsync(token);\nIReadOnlyList panes = await server.GetPanesAsync(token);\nIReadOnlyList clients = await server.GetClientsAsync(token);\nif (sessions.Count != 2 || windows.Count != 2 || panes.Count != 2 || clients.Count != 0)\n{\n throw new InvalidOperationException(\"Expected two detached sessions, each with one window and pane.\");\n}\nif (sessions.Any(session => session.Windows.IsCaptured))\n{\n throw new InvalidOperationException(\"Scalar listings must not imply captured child relations.\");\n}\n\nforeach (Session session in sessions.OrderBy(session => session.Name, StringComparer.Ordinal))\n{\n Console.WriteLine($\"Session: {session.Name} ({session.Id})\");\n}\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}; clients: {clients.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Session: demo ($0)\nSession: worker ($1)\nWindows: 2; panes: 2; clients: 0\n"}]},"source":{"file":"src/LibTmux/Server.Collections.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetSessionsAsync","product":"core","slug":"libtmux-server-getsessionsasync"},{"id":"LibTmux.Server.GetAttachedSessionsAsync","name":"GetAttachedSessionsAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The attached sessions reported by a successful read.","raises":[{"type":"LibTmuxException","doc":"The listing failed, including an absent daemon."}]}],"doc":{"summary":"Reads every session with at least one attached client.","body":"A handle that has not found a live server yet discovers one first."},"source":{"file":"src/LibTmux/Server.Collections.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetAttachedSessionsAsync","product":"core","slug":"libtmux-server-getattachedsessionsasync"},{"id":"LibTmux.Server.GetWindowsAsync","name":"GetWindowsAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The windows reported by a successful read.","raises":[{"type":"LibTmuxException","doc":"The listing failed, including an absent daemon."}]}],"doc":{"summary":"Reads every window on this server.","body":"A handle that has not found a live server yet discovers one first.","examples":[{"lang":"console","intro":"Read scalar listings from two detached sessions on a private server. Fresh rows do not imply captured child relations. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerListings.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverlistings-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope demo = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\nawait using OwnedSessionScope worker = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"worker\", Command = \"/bin/cat\" }, token);\nServer server = await Server.ConnectAsync(options, token);\n\nIReadOnlyList sessions = await server.GetSessionsAsync(token);\nIReadOnlyList windows = await server.GetWindowsAsync(token);\nIReadOnlyList panes = await server.GetPanesAsync(token);\nIReadOnlyList clients = await server.GetClientsAsync(token);\nif (sessions.Count != 2 || windows.Count != 2 || panes.Count != 2 || clients.Count != 0)\n{\n throw new InvalidOperationException(\"Expected two detached sessions, each with one window and pane.\");\n}\nif (sessions.Any(session => session.Windows.IsCaptured))\n{\n throw new InvalidOperationException(\"Scalar listings must not imply captured child relations.\");\n}\n\nforeach (Session session in sessions.OrderBy(session => session.Name, StringComparer.Ordinal))\n{\n Console.WriteLine($\"Session: {session.Name} ({session.Id})\");\n}\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}; clients: {clients.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Session: demo ($0)\nSession: worker ($1)\nWindows: 2; panes: 2; clients: 0\n"}]},"source":{"file":"src/LibTmux/Server.Collections.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetWindowsAsync","product":"core","slug":"libtmux-server-getwindowsasync"},{"id":"LibTmux.Server.GetPanesAsync","name":"GetPanesAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The panes reported by a successful read.","raises":[{"type":"LibTmuxException","doc":"The listing failed, including an absent daemon."}]}],"doc":{"summary":"Reads every pane on this server.","body":"A handle that has not found a live server yet discovers one first.","examples":[{"lang":"console","intro":"Read scalar listings from two detached sessions on a private server. Fresh rows do not imply captured child relations. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerListings.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverlistings-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope demo = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\nawait using OwnedSessionScope worker = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"worker\", Command = \"/bin/cat\" }, token);\nServer server = await Server.ConnectAsync(options, token);\n\nIReadOnlyList sessions = await server.GetSessionsAsync(token);\nIReadOnlyList windows = await server.GetWindowsAsync(token);\nIReadOnlyList panes = await server.GetPanesAsync(token);\nIReadOnlyList clients = await server.GetClientsAsync(token);\nif (sessions.Count != 2 || windows.Count != 2 || panes.Count != 2 || clients.Count != 0)\n{\n throw new InvalidOperationException(\"Expected two detached sessions, each with one window and pane.\");\n}\nif (sessions.Any(session => session.Windows.IsCaptured))\n{\n throw new InvalidOperationException(\"Scalar listings must not imply captured child relations.\");\n}\n\nforeach (Session session in sessions.OrderBy(session => session.Name, StringComparer.Ordinal))\n{\n Console.WriteLine($\"Session: {session.Name} ({session.Id})\");\n}\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}; clients: {clients.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Session: demo ($0)\nSession: worker ($1)\nWindows: 2; panes: 2; clients: 0\n"}]},"source":{"file":"src/LibTmux/Server.Collections.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetPanesAsync","product":"core","slug":"libtmux-server-getpanesasync"},{"id":"LibTmux.Server.ExecuteCommandAsync","name":"ExecuteCommandAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"arguments","type":"IReadOnlyList"},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Executes one raw tmux command."},"source":{"file":"src/LibTmux/Server.Command.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ExecuteCommandAsync","product":"core","slug":"libtmux-server-executecommandasync"},{"id":"LibTmux.Server.EndpointArguments","name":"EndpointArguments","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the endpoint selection arguments -- -L, -S, or a configuration file flag -- this handle's connection resolved.","body":"Prepend these to 's result, and\nto , to invoke tmux\nas this process's own child rather than through this library's\ndispatch -- the shape an interactive attach needs, since attaching must\ninherit the caller's own terminal."},"source":{"file":"src/LibTmux/Server.Command.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.EndpointArguments","product":"core","slug":"libtmux-server-endpointarguments"},{"id":"LibTmux.Server.BuildGuardedCommandLine","name":"BuildGuardedCommandLine","kind":"method","modifiers":["static"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"expected","type":"ServerGeneration","doc":"The generation the command requires."},{"name":"mismatchCommand","type":"string","doc":"A tmux command run instead when the generation has changed. The caller\nalready committed to spawning a process expecting\n, so this is typically one that fails\nloudly rather than one that repairs anything."},{"name":"IReadOnlyList[]","type":"IReadOnlyList"},{"name":"commands","doc":"One or more tmux commands to run when the generation still matches,\neach its own argument vector."}],"returns":"IReadOnlyList","returnsDoc":"The encoded arguments. Prepend before\npassing this to a process started at\n."}],"doc":{"summary":"Builds the argument vector for a raw tmux invocation that only takes effect while the named server generation is still current.","body":"A command this library dispatches itself is already guarded by\n through\n. This is for the one case that cannot go\nthrough that dispatch -- an interactive attach, which must run as its\nown foreground process to inherit the caller's terminal, so the guard\nhas to travel inside the argument vector instead."},"source":{"file":"src/LibTmux/Server.Command.cs","line":65,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.BuildGuardedCommandLine","product":"core","slug":"libtmux-server-buildguardedcommandline"},{"id":"LibTmux.Server.EnterControlModeAsync","name":"EnterControlModeAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"target","type":"string?","default":"null","doc":"The session to attach to, or to let tmux pick\nthe most recently used one."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels starting the client."}],"returns":"Task","returnsDoc":"A session that reports what tmux does until it is disposed.","raises":[{"type":"InvalidOperationException","doc":"The handle has no connection."},{"type":"StaleServerGenerationException","doc":"The endpoint changed servers while the control client was attaching."}]}],"doc":{"summary":"Starts a tmux control client and keeps it running.","body":"This is the streaming counterpart to the one-shot methods, not a mode\nthey can be switched into: the rest of this type starts a client, runs\none command, and lets it exit, which is why it never sees anything it\ndid not ask for. Hold the returned session and read\n to see the rest."},"source":{"file":"src/LibTmux/Server.ControlMode.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.EnterControlModeAsync","product":"core","slug":"libtmux-server-entercontrolmodeasync"},{"id":"LibTmux.Server.DisplayMessageAsync","name":"DisplayMessageAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"DisplayMessageRequest","doc":"What to show, and how."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task?>","returnsDoc":"The rendered text when it was asked for, and null otherwise."}],"doc":{"summary":"Shows a message on a client.","body":"tmux reports a bad format on its error stream rather than by failing, so\na message it would not render is logged and answered with nothing."},"source":{"file":"src/LibTmux/Server.Display.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.DisplayMessageAsync","product":"core","slug":"libtmux-server-displaymessageasync"},{"id":"LibTmux.Server.RunShellAsync","name":"RunShellAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"RunShellRequest","doc":"What to run, and how."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels waiting for tmux's reply. tmux itself is not told: the server,\nnot this process, owns run-shell's spawned command, so cancelling\nstops this call from waiting on it, not the command from running. Nor\ndoes stopping the whole server: does not reap\na run-shell child either, so it keeps running as its own\norphaned process."}],"returns":"Task?>","returnsDoc":"What the command printed, or null when tmux did not wait for it."}],"doc":{"summary":"Runs a shell command and reports what it printed.","body":"The directory flag arrived in tmux 3.4, the error-output flag in 3.6,\nand passing arguments without a shell in 3.7.\nOn tmux 3.3a and 3.4, shell text goes to pane view mode, so the process\nrequest can return an empty collection even when the shell printed lines."},"source":{"file":"src/LibTmux/Server.Execution.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.RunShellAsync","product":"core","slug":"libtmux-server-runshellasync"},{"id":"LibTmux.Server.IfShellAsync","name":"IfShellAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"IfShellRequest","doc":"What to test, and what to run either way."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Runs one tmux command or another depending on a shell command."},"source":{"file":"src/LibTmux/Server.Execution.cs","line":95,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.IfShellAsync","product":"core","slug":"libtmux-server-ifshellasync"},{"id":"LibTmux.Server.WaitForAsync","name":"WaitForAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"WaitForRequest","doc":"Which channel, and what to do with it."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels waiting for tmux's reply. For \nthis kills the client, and tmux before 3.8 keeps its queue entry, which\ntakes the next signal: a signal sent while nothing else waits is then\nspent on that entry instead of waking the next wait. Prefer\n whenever a \nneeds a deadline. For\n cancelling never kills the client, since\ntmux hands a released lock to whichever queued client is still alive: the\nclient keeps running, and a lock it goes on to acquire is released again\nautomatically once this call has already given up on it. A lock that is\nnever released therefore keeps one tmux client queued per cancelled call."}],"returns":"Task"}],"doc":{"summary":"Waits on, signals, locks, or unlocks a tmux channel.","body":"Waiting blocks until something else signals the channel, so a call that\nwaits does not return on its own. A wait or a lock is not bounded by\n: it waits for another\nclient by design, and ending it would leave tmux holding its place."},"source":{"file":"src/LibTmux/Server.Execution.cs","line":139,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.WaitForAsync","product":"core","slug":"libtmux-server-waitforasync"},{"id":"LibTmux.Server.OpenWaitChannel","name":"OpenWaitChannel","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"channel","type":"string","doc":"The channel to wait on."}],"returns":"TmuxWaitChannel","returnsDoc":"The open wait, which must be disposed to withdraw it."}],"doc":{"summary":"Opens a wait on a channel that survives a timed attempt.","body":"Prefer this to whenever the wait has a\ndeadline. Cancelling a waiting wait-for kills its client, and tmux\nbefore 3.8 keeps the registration, which takes the next signal.","examples":[{"lang":"console","intro":"Send literal text and a named Enter key, wait for a private completion signal, then require a whole captured output line. All scopes are disposed after errors or cancellation. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/InputCapture.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-inputcapture-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/sh\" }, token);\nServer server = await Server.ConnectAsync(options, token);\nPane pane = (await server.GetPanesAsync(token)).Single();\nstring channel = \"capture-\" + Guid.NewGuid().ToString(\"N\");\nawait using TmuxWaitChannel wait = server.OpenWaitChannel(channel);\nconst string marker = \"api capture ready\";\nstring command = $\"printf '%s\\\\n' {QuoteShell(marker)}; \"\n + $\"{QuoteShell(binary)} -L {QuoteShell(socketName)} wait-for -S {QuoteShell(channel)}\";\n\nawait pane.SendKeysAsync(new SendKeysRequest { Text = command, Literal = true, Enter = false }, token);\nawait pane.SendKeysAsync(new SendKeysRequest { Text = \"Enter\", Enter = false }, token);\nif (!await wait.WaitAsync(TimeSpan.FromSeconds(5), token))\n{\n throw new InvalidOperationException(\"The pane did not signal that its output was ready.\");\n}\nIReadOnlyList lines = await pane.CaptureAsync(\n new CapturePaneRequest { JoinWrappedLines = true }, token);\n// Joining wrapped lines preserves terminal padding after the output.\nif (!lines.Any(line => string.Equals(line.TrimEnd(), marker, StringComparison.Ordinal)))\n{\n throw new InvalidOperationException(\"Capture did not contain the complete output line.\");\n}\nConsole.WriteLine(marker);\n\nstatic string QuoteShell(string value) => \"'\" + value.Replace(\"'\", \"'\\\\''\", StringComparison.Ordinal) + \"'\";\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"api capture ready\n"}]},"source":{"file":"src/LibTmux/Server.Execution.cs","line":228,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.OpenWaitChannel","product":"core","slug":"libtmux-server-openwaitchannel"},{"id":"LibTmux.Server.FromEnvironment","name":"FromEnvironment","kind":"method","modifiers":["static"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"environment","type":"IReadOnlyDictionary?","default":"null","doc":"The environment, or null for the process."}],"returns":"Server","returnsDoc":"An unmaterialized handle for the exported socket.","raises":[{"type":"TmuxObjectNotFoundException","doc":"The environment does not name a tmux server."}]}],"doc":{"summary":"Returns the server whose pane this process was spawned in.","body":"Only the socket path is used. The pid and session id in TMUX are\nfrozen at pane spawn, and the session id goes stale as soon as the\npane's window moves between sessions. Costs no tmux subprocess."},"source":{"file":"src/LibTmux/Server.FromEnvironment.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.FromEnvironment","product":"core","slug":"libtmux-server-fromenvironment"},{"id":"LibTmux.Server.ConnectionOptions","name":"ConnectionOptions","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"ServerConnectionOptions","doc":{"summary":"Gets the connection options."},"source":{"file":"src/LibTmux/Server.Identity.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ConnectionOptions","product":"core","slug":"libtmux-server-connectionoptions"},{"id":"LibTmux.Server.Generation","name":"Generation","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"ServerGeneration?","doc":{"summary":"Gets the materialized server generation."},"source":{"file":"src/LibTmux/Server.Identity.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Generation","product":"core","slug":"libtmux-server-generation"},{"id":"LibTmux.Server.IsMaterialized","name":"IsMaterialized","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"bool","doc":{"summary":"Gets whether this handle has discovered a live server."},"source":{"file":"src/LibTmux/Server.Identity.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.IsMaterialized","product":"core","slug":"libtmux-server-ismaterialized"},{"id":"LibTmux.Server.Within","name":"Within","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"timeout","type":"TimeSpan","doc":"How long tmux may take to answer each command."}],"returns":"Server","returnsDoc":"A handle to the same server. Every session, window, pane and client\ntaken from it gives tmux the same bound.","raises":[{"type":"InvalidOperationException","doc":"This server has no connection identity."},{"type":"ArgumentOutOfRangeException","doc":"The timeout does not run forward."}]}],"doc":{"summary":"Returns this server with every command bounded by a timeout of the caller's choosing.","body":"The handle shares this one's connection, so nothing is started or\nverified again, and it compares equal to this one. A command that\noutlasts the bound throws whose\n is\n, as with\n. A caller's own\ncancellation still reads as cancellation."},"source":{"file":"src/LibTmux/Server.Identity.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Within","product":"core","slug":"libtmux-server-within"},{"id":"LibTmux.Server.Open","name":"Open","kind":"method","modifiers":["static"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"options","type":"ServerConnectionOptions?","default":"null"}],"returns":"Server"}],"doc":{"summary":"Opens an unmaterialized server connection handle.","examples":[{"lang":"console","intro":"Distinguish an endpoint handle from a discovered server. Connection discovery returns an immutable replacement without capturing child relations. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerConstruction.cs","code":"using System;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverconstruction-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// Open records the endpoint without running tmux or reading its state.\nServer endpoint = Server.Open(options);\nif (endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Open must not discover a server.\");\n}\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n\n// Connect discovers the live daemon and returns a new materialized handle.\nServer connected = await endpoint.ConnectAsync(token);\nServer sameEndpoint = await Server.ConnectAsync(options, token);\nif (!connected.IsMaterialized || !sameEndpoint.IsMaterialized || endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Connecting must leave the original handle unchanged.\");\n}\nif (connected.Generation != sameEndpoint.Generation || connected.Sessions.IsCaptured)\n{\n throw new InvalidOperationException(\"Connection discovery must not capture the hierarchy.\");\n}\n\nConsole.WriteLine(\"Open records an endpoint; Connect discovers the running server.\");\nConsole.WriteLine(\"The original handle stays unmaterialized; relations remain uncaptured.\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Open records an endpoint; Connect discovers the running server.\nThe original handle stays unmaterialized; relations remain uncaptured.\n"}]},"source":{"file":"src/LibTmux/Server.Identity.cs","line":69,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Open","product":"core","slug":"libtmux-server-open"},{"id":"LibTmux.Server.ConnectAsync","name":"ConnectAsync","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"options","type":"ServerConnectionOptions?","default":"null"},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"},{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Connects to a configured tmux endpoint.","examples":[{"lang":"console","intro":"Distinguish an endpoint handle from a discovered server. Connection discovery returns an immutable replacement without capturing child relations. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerConstruction.cs","code":"using System;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverconstruction-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// Open records the endpoint without running tmux or reading its state.\nServer endpoint = Server.Open(options);\nif (endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Open must not discover a server.\");\n}\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n\n// Connect discovers the live daemon and returns a new materialized handle.\nServer connected = await endpoint.ConnectAsync(token);\nServer sameEndpoint = await Server.ConnectAsync(options, token);\nif (!connected.IsMaterialized || !sameEndpoint.IsMaterialized || endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Connecting must leave the original handle unchanged.\");\n}\nif (connected.Generation != sameEndpoint.Generation || connected.Sessions.IsCaptured)\n{\n throw new InvalidOperationException(\"Connection discovery must not capture the hierarchy.\");\n}\n\nConsole.WriteLine(\"Open records an endpoint; Connect discovers the running server.\");\nConsole.WriteLine(\"The original handle stays unmaterialized; relations remain uncaptured.\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Open records an endpoint; Connect discovers the running server.\nThe original handle stays unmaterialized; relations remain uncaptured.\n"}]},"source":{"file":"src/LibTmux/Server.Identity.cs","line":76,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ConnectAsync","product":"core","slug":"libtmux-server-connectasync"},{"id":"LibTmux.Server.InspectAsync","name":"InspectAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels inspection before publication."}],"returns":"Task","returnsDoc":"A materialized identity-only handle, or null when no daemon is listening.","raises":[{"type":"StaleServerGenerationException","doc":"A different daemon owns the endpoint."},{"type":"LibTmuxException","doc":"Inspection failed for a reason other than verified daemon absence."},{"type":"InvalidOperationException","doc":"This handle has no connection identity."},{"type":"OperationCanceledException","doc":"Inspection was cancelled before publication."}]}],"doc":{"summary":"Reads the live endpoint identity without running its initializer.","body":"Reuses the resolved endpoint and reads its current generation and daemon version.\nNo initializer runs, including when the returned handle is subsequently connected.\nCaptured relationships are not acquired or copied. A materialized input remains\nbound to its generation and cannot adopt a replacement daemon."},"source":{"file":"src/LibTmux/Server.Identity.cs","line":112,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.InspectAsync","product":"core","slug":"libtmux-server-inspectasync"},{"id":"LibTmux.Server.GetSessionAsync","name":"GetSessionAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"id","type":"SessionId","doc":"The session identifier."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A materialized session carrying captured scalar state.","raises":[{"type":"TmuxObjectNotFoundException","doc":"The session does not exist."},{"type":"LibTmuxException","doc":"The lookup failed, including an absent daemon."}]}],"doc":{"summary":"Reads one session by identifier, throwing when it is absent.","body":"A handle that has not found a live server yet discovers one first.","examples":[{"lang":"console","intro":"Use typed required lookups, nullable absence and explicit errors. Cancellation, invalid input and a stopped server remain exceptions. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/EntityLookups.cs","code":"using System;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-entitylookups-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nServer stoppedServer;\nawait using (OwnedServerScope owned = await Server.CreateOwnedAsync(options, token))\n{\n await using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n Server server = await Server.ConnectAsync(options, token);\n Session found = await server.GetSessionAsync(session.Value.Id, token);\n Window listedWindow = (await found.GetWindowsAsync(token)).Single();\n Window window = await server.GetWindowAsync(listedWindow.Id, token);\n Pane listedPane = (await window.GetPanesAsync(token)).Single();\n Pane pane = await server.GetPaneAsync(listedPane.Id, token);\n if (found.Id != session.Value.Id || pane.Id != listedPane.Id)\n {\n throw new InvalidOperationException(\"Typed lookup returned an unexpected entity.\");\n }\n\n SessionId missingId = new(int.MaxValue);\n Session? missing = await server.FindSessionAsync(missingId, token);\n if (missing is not null)\n {\n throw new InvalidOperationException(\"The absent session unexpectedly exists.\");\n }\n Console.WriteLine(\"A successful lookup can return null.\");\n try\n {\n _ = await server.GetSessionAsync(missingId, token);\n throw new InvalidOperationException(\"GetSessionAsync must throw for an absent session.\");\n }\n catch (TmuxObjectNotFoundException)\n {\n Console.WriteLine(\"Required lookup reports TmuxObjectNotFoundException.\");\n }\n\n using CancellationTokenSource cancelled = new();\n cancelled.Cancel();\n try\n {\n _ = await server.FindSessionAsync(session.Value.Id, cancelled.Token);\n throw new InvalidOperationException(\"Cancelled lookup must throw.\");\n }\n catch (OperationCanceledException)\n {\n Console.WriteLine(\"Cancellation remains OperationCanceledException.\");\n }\n try\n {\n _ = await window.FindPaneAsync(\" \", token);\n throw new InvalidOperationException(\"A blank pane target must be rejected.\");\n }\n catch (ArgumentException)\n {\n Console.WriteLine(\"A blank pane target remains ArgumentException.\");\n }\n stoppedServer = server;\n}\n\ntry\n{\n _ = await stoppedServer.FindSessionAsync(new SessionId(int.MaxValue), token);\n throw new InvalidOperationException(\"A failed read must not become null.\");\n}\ncatch (LibTmuxException)\n{\n Console.WriteLine(\"A stopped server remains a LibTmuxException.\");\n}\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"A successful lookup can return null.\nRequired lookup reports TmuxObjectNotFoundException.\nCancellation remains OperationCanceledException.\nA blank pane target remains ArgumentException.\nA stopped server remains a LibTmuxException.\n"}]},"source":{"file":"src/LibTmux/Server.Identity.cs","line":210,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetSessionAsync","product":"core","slug":"libtmux-server-getsessionasync"},{"id":"LibTmux.Server.FindSessionAsync","name":"FindSessionAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"id","type":"SessionId","doc":"The session identifier."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A materialized session, or null after a successful read finds no match.","raises":[{"type":"LibTmuxException","doc":"The lookup failed, including an absent daemon."}]}],"doc":{"summary":"Reads one session by identifier, returning null when it is absent.","body":"A handle that has not found a live server yet discovers one first.","examples":[{"lang":"console","intro":"Use typed required lookups, nullable absence and explicit errors. Cancellation, invalid input and a stopped server remain exceptions. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/EntityLookups.cs","code":"using System;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-entitylookups-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nServer stoppedServer;\nawait using (OwnedServerScope owned = await Server.CreateOwnedAsync(options, token))\n{\n await using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n Server server = await Server.ConnectAsync(options, token);\n Session found = await server.GetSessionAsync(session.Value.Id, token);\n Window listedWindow = (await found.GetWindowsAsync(token)).Single();\n Window window = await server.GetWindowAsync(listedWindow.Id, token);\n Pane listedPane = (await window.GetPanesAsync(token)).Single();\n Pane pane = await server.GetPaneAsync(listedPane.Id, token);\n if (found.Id != session.Value.Id || pane.Id != listedPane.Id)\n {\n throw new InvalidOperationException(\"Typed lookup returned an unexpected entity.\");\n }\n\n SessionId missingId = new(int.MaxValue);\n Session? missing = await server.FindSessionAsync(missingId, token);\n if (missing is not null)\n {\n throw new InvalidOperationException(\"The absent session unexpectedly exists.\");\n }\n Console.WriteLine(\"A successful lookup can return null.\");\n try\n {\n _ = await server.GetSessionAsync(missingId, token);\n throw new InvalidOperationException(\"GetSessionAsync must throw for an absent session.\");\n }\n catch (TmuxObjectNotFoundException)\n {\n Console.WriteLine(\"Required lookup reports TmuxObjectNotFoundException.\");\n }\n\n using CancellationTokenSource cancelled = new();\n cancelled.Cancel();\n try\n {\n _ = await server.FindSessionAsync(session.Value.Id, cancelled.Token);\n throw new InvalidOperationException(\"Cancelled lookup must throw.\");\n }\n catch (OperationCanceledException)\n {\n Console.WriteLine(\"Cancellation remains OperationCanceledException.\");\n }\n try\n {\n _ = await window.FindPaneAsync(\" \", token);\n throw new InvalidOperationException(\"A blank pane target must be rejected.\");\n }\n catch (ArgumentException)\n {\n Console.WriteLine(\"A blank pane target remains ArgumentException.\");\n }\n stoppedServer = server;\n}\n\ntry\n{\n _ = await stoppedServer.FindSessionAsync(new SessionId(int.MaxValue), token);\n throw new InvalidOperationException(\"A failed read must not become null.\");\n}\ncatch (LibTmuxException)\n{\n Console.WriteLine(\"A stopped server remains a LibTmuxException.\");\n}\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"A successful lookup can return null.\nRequired lookup reports TmuxObjectNotFoundException.\nCancellation remains OperationCanceledException.\nA blank pane target remains ArgumentException.\nA stopped server remains a LibTmuxException.\n"}]},"source":{"file":"src/LibTmux/Server.Identity.cs","line":223,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.FindSessionAsync","product":"core","slug":"libtmux-server-findsessionasync"},{"id":"LibTmux.Server.GetWindowAsync","name":"GetWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"id","type":"WindowId","doc":"The window identifier."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A materialized window carrying captured scalar state.","raises":[{"type":"TmuxObjectNotFoundException","doc":"The window does not exist."},{"type":"LibTmuxException","doc":"The lookup failed, including an absent daemon."}]}],"doc":{"summary":"Reads one window by identifier, throwing when it is absent.","body":"A handle that has not found a live server yet discovers one first.","examples":[{"lang":"console","intro":"Use typed required lookups, nullable absence and explicit errors. Cancellation, invalid input and a stopped server remain exceptions. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/EntityLookups.cs","code":"using System;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-entitylookups-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nServer stoppedServer;\nawait using (OwnedServerScope owned = await Server.CreateOwnedAsync(options, token))\n{\n await using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n Server server = await Server.ConnectAsync(options, token);\n Session found = await server.GetSessionAsync(session.Value.Id, token);\n Window listedWindow = (await found.GetWindowsAsync(token)).Single();\n Window window = await server.GetWindowAsync(listedWindow.Id, token);\n Pane listedPane = (await window.GetPanesAsync(token)).Single();\n Pane pane = await server.GetPaneAsync(listedPane.Id, token);\n if (found.Id != session.Value.Id || pane.Id != listedPane.Id)\n {\n throw new InvalidOperationException(\"Typed lookup returned an unexpected entity.\");\n }\n\n SessionId missingId = new(int.MaxValue);\n Session? missing = await server.FindSessionAsync(missingId, token);\n if (missing is not null)\n {\n throw new InvalidOperationException(\"The absent session unexpectedly exists.\");\n }\n Console.WriteLine(\"A successful lookup can return null.\");\n try\n {\n _ = await server.GetSessionAsync(missingId, token);\n throw new InvalidOperationException(\"GetSessionAsync must throw for an absent session.\");\n }\n catch (TmuxObjectNotFoundException)\n {\n Console.WriteLine(\"Required lookup reports TmuxObjectNotFoundException.\");\n }\n\n using CancellationTokenSource cancelled = new();\n cancelled.Cancel();\n try\n {\n _ = await server.FindSessionAsync(session.Value.Id, cancelled.Token);\n throw new InvalidOperationException(\"Cancelled lookup must throw.\");\n }\n catch (OperationCanceledException)\n {\n Console.WriteLine(\"Cancellation remains OperationCanceledException.\");\n }\n try\n {\n _ = await window.FindPaneAsync(\" \", token);\n throw new InvalidOperationException(\"A blank pane target must be rejected.\");\n }\n catch (ArgumentException)\n {\n Console.WriteLine(\"A blank pane target remains ArgumentException.\");\n }\n stoppedServer = server;\n}\n\ntry\n{\n _ = await stoppedServer.FindSessionAsync(new SessionId(int.MaxValue), token);\n throw new InvalidOperationException(\"A failed read must not become null.\");\n}\ncatch (LibTmuxException)\n{\n Console.WriteLine(\"A stopped server remains a LibTmuxException.\");\n}\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"A successful lookup can return null.\nRequired lookup reports TmuxObjectNotFoundException.\nCancellation remains OperationCanceledException.\nA blank pane target remains ArgumentException.\nA stopped server remains a LibTmuxException.\n"}]},"source":{"file":"src/LibTmux/Server.Identity.cs","line":247,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetWindowAsync","product":"core","slug":"libtmux-server-getwindowasync"},{"id":"LibTmux.Server.FindWindowAsync","name":"FindWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"id","type":"WindowId","doc":"The window identifier."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A materialized window, or null after a successful read finds no match.","raises":[{"type":"LibTmuxException","doc":"The lookup failed, including an absent daemon."}]}],"doc":{"summary":"Reads one window by identifier, returning null when it is absent.","body":"A handle that has not found a live server yet discovers one first."},"source":{"file":"src/LibTmux/Server.Identity.cs","line":260,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.FindWindowAsync","product":"core","slug":"libtmux-server-findwindowasync"},{"id":"LibTmux.Server.GetPaneAsync","name":"GetPaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"id","type":"PaneId","doc":"The pane identifier."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A materialized pane carrying captured scalar state.","raises":[{"type":"TmuxObjectNotFoundException","doc":"The pane does not exist."},{"type":"LibTmuxException","doc":"The lookup failed, including an absent daemon."}]}],"doc":{"summary":"Reads one pane by identifier, throwing when it is absent.","body":"A handle that has not found a live server yet discovers one first.","examples":[{"lang":"console","intro":"Use typed required lookups, nullable absence and explicit errors. Cancellation, invalid input and a stopped server remain exceptions. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/EntityLookups.cs","code":"using System;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-entitylookups-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nServer stoppedServer;\nawait using (OwnedServerScope owned = await Server.CreateOwnedAsync(options, token))\n{\n await using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n Server server = await Server.ConnectAsync(options, token);\n Session found = await server.GetSessionAsync(session.Value.Id, token);\n Window listedWindow = (await found.GetWindowsAsync(token)).Single();\n Window window = await server.GetWindowAsync(listedWindow.Id, token);\n Pane listedPane = (await window.GetPanesAsync(token)).Single();\n Pane pane = await server.GetPaneAsync(listedPane.Id, token);\n if (found.Id != session.Value.Id || pane.Id != listedPane.Id)\n {\n throw new InvalidOperationException(\"Typed lookup returned an unexpected entity.\");\n }\n\n SessionId missingId = new(int.MaxValue);\n Session? missing = await server.FindSessionAsync(missingId, token);\n if (missing is not null)\n {\n throw new InvalidOperationException(\"The absent session unexpectedly exists.\");\n }\n Console.WriteLine(\"A successful lookup can return null.\");\n try\n {\n _ = await server.GetSessionAsync(missingId, token);\n throw new InvalidOperationException(\"GetSessionAsync must throw for an absent session.\");\n }\n catch (TmuxObjectNotFoundException)\n {\n Console.WriteLine(\"Required lookup reports TmuxObjectNotFoundException.\");\n }\n\n using CancellationTokenSource cancelled = new();\n cancelled.Cancel();\n try\n {\n _ = await server.FindSessionAsync(session.Value.Id, cancelled.Token);\n throw new InvalidOperationException(\"Cancelled lookup must throw.\");\n }\n catch (OperationCanceledException)\n {\n Console.WriteLine(\"Cancellation remains OperationCanceledException.\");\n }\n try\n {\n _ = await window.FindPaneAsync(\" \", token);\n throw new InvalidOperationException(\"A blank pane target must be rejected.\");\n }\n catch (ArgumentException)\n {\n Console.WriteLine(\"A blank pane target remains ArgumentException.\");\n }\n stoppedServer = server;\n}\n\ntry\n{\n _ = await stoppedServer.FindSessionAsync(new SessionId(int.MaxValue), token);\n throw new InvalidOperationException(\"A failed read must not become null.\");\n}\ncatch (LibTmuxException)\n{\n Console.WriteLine(\"A stopped server remains a LibTmuxException.\");\n}\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"A successful lookup can return null.\nRequired lookup reports TmuxObjectNotFoundException.\nCancellation remains OperationCanceledException.\nA blank pane target remains ArgumentException.\nA stopped server remains a LibTmuxException.\n"}]},"source":{"file":"src/LibTmux/Server.Identity.cs","line":284,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetPaneAsync","product":"core","slug":"libtmux-server-getpaneasync"},{"id":"LibTmux.Server.FindPaneAsync","name":"FindPaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"id","type":"PaneId","doc":"The pane identifier."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A materialized pane, or null after a successful read finds no match.","raises":[{"type":"LibTmuxException","doc":"The lookup failed, including an absent daemon."}]}],"doc":{"summary":"Reads one pane by identifier, returning null when it is absent.","body":"A handle that has not found a live server yet discovers one first."},"source":{"file":"src/LibTmux/Server.Identity.cs","line":297,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.FindPaneAsync","product":"core","slug":"libtmux-server-findpaneasync"},{"id":"LibTmux.Server.Equals","name":"Equals","kind":"method","modifiers":["overload"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"other","type":"Server?"}],"returns":"bool"},{"params":[{"name":"obj","type":"object?"}],"returns":"bool"}],"doc":{"summary":"","body":"A handle that has not reached tmux has no endpoint to compare, so it\nequals only itself."},"source":{"file":"src/LibTmux/Server.Identity.cs","line":332,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Equals","product":"core","slug":"libtmux-server-equals"},{"id":"LibTmux.Server.GetHashCode","name":"GetHashCode","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[],"returns":"int"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Server.Identity.cs","line":343,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetHashCode","product":"core","slug":"libtmux-server-gethashcode"},{"id":"LibTmux.Server.ShowCommandPromptAsync","name":"ShowCommandPromptAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"CommandPromptRequest","doc":"What to ask, and how."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","raises":[{"type":"TmuxVersionTooLowException","doc":"The request asks for a format or a prompt type and tmux is older than 3.3."}]}],"doc":{"summary":"Asks a client for input and runs a command with the answer."},"source":{"file":"src/LibTmux/Server.Interaction.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ShowCommandPromptAsync","product":"core","slug":"libtmux-server-showcommandpromptasync"},{"id":"LibTmux.Server.ClearPromptHistoryAsync","name":"ClearPromptHistoryAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"type","type":"PromptType?","default":"null","doc":"Which history to clear, or null for all of them."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","raises":[{"type":"TmuxVersionTooLowException","doc":"tmux is older than 3.3."}]}],"doc":{"summary":"Forgets what has been typed at command prompts."},"source":{"file":"src/LibTmux/Server.Interaction.cs","line":90,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ClearPromptHistoryAsync","product":"core","slug":"libtmux-server-clearprompthistoryasync"},{"id":"LibTmux.Server.GetPromptHistoryAsync","name":"GetPromptHistoryAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"type","type":"PromptType?","default":"null","doc":"Which history to read, or null for all of them."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"One line per remembered entry.","raises":[{"type":"TmuxVersionTooLowException","doc":"tmux is older than 3.3."}]}],"doc":{"summary":"Reads what has been typed at command prompts."},"source":{"file":"src/LibTmux/Server.Interaction.cs","line":111,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetPromptHistoryAsync","product":"core","slug":"libtmux-server-getprompthistoryasync"},{"id":"LibTmux.Server.ConfirmBeforeAsync","name":"ConfirmBeforeAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"ConfirmBeforeRequest","doc":"What to run, and how to ask."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Asks a client to confirm before running a command.","body":"Naming the key, and defaulting to yes, arrived in tmux 3.4."},"source":{"file":"src/LibTmux/Server.Interaction.cs","line":161,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ConfirmBeforeAsync","product":"core","slug":"libtmux-server-confirmbeforeasync"},{"id":"LibTmux.Server.ShowMenuAsync","name":"ShowMenuAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"DisplayMenuRequest","doc":"What the menu offers, and how it looks."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Shows a menu on a client.","body":"The style flags arrived in tmux 3.4 and the mouse flag in 3.5. Older\nservers are shown the same menu without them."},"source":{"file":"src/LibTmux/Server.Interaction.cs","line":222,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ShowMenuAsync","product":"core","slug":"libtmux-server-showmenuasync"},{"id":"LibTmux.Server.IsValidLayoutCandidate","name":"IsValidLayoutCandidate","kind":"method","modifiers":["static"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"layout","type":"string","doc":"A custom layout string or a named layout."},{"name":"paneCount","type":"int","doc":"The number of panes the layout must accommodate."}],"returns":"bool","returnsDoc":" when the checksum, cell tree and cell count are\nconsistent for a custom layout, or the name is an unambiguous prefix of\na named layout."}],"doc":{"summary":"Checks a layout's syntax without contacting a server.","body":"This is the version-independent half of :\nit never contacts tmux, so it cannot catch a named layout that only some\ndaemon versions accept. Call it at parse time, before a document is\notherwise trusted; call afterward to\ncatch a version-sensitive name."},"source":{"file":"src/LibTmux/Server.Layout.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.IsValidLayoutCandidate","product":"core","slug":"libtmux-server-isvalidlayoutcandidate"},{"id":"LibTmux.Server.ValidateLayoutsAsync","name":"ValidateLayoutsAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"layouts","type":"IEnumerable<(string Layout, int PaneCount)>","doc":"Layouts and the number of panes each must accommodate."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels version discovery."}],"returns":"Task","returnsDoc":"A task completing when every layout is safe to send.","raises":[{"type":"ArgumentNullException","doc":"The layouts collection is null."},{"type":"ArgumentException","doc":"A layout or pane count is invalid."},{"type":"InvalidDataException","doc":"The daemon version reply is malformed."},{"type":"OperationCanceledException","doc":"Validation was canceled."},{"type":"StaleServerGenerationException","doc":"The daemon changed."},{"type":"TmuxCommandException","doc":"The daemon version query failed."}]}],"doc":{"summary":"Checks layouts before a workspace changes the server.","body":"Checks custom syntax, checksums, and minimum cell counts without checking\ngeometry. Version-sensitive names use the daemon version, or the client\nversion when no daemon is running. This never starts or changes a server."},"source":{"file":"src/LibTmux/Server.Layout.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ValidateLayoutsAsync","product":"core","slug":"libtmux-server-validatelayoutsasync"},{"id":"LibTmux.Server.StartServerAsync","name":"StartServerAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Starts the tmux server without creating a session.","body":"No handle comes back because there may be nothing to describe: a tmux\nserver holding no sessions exits as soon as it starts. Materialize with\n once a session exists."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.StartServerAsync","product":"core","slug":"libtmux-server-startserverasync"},{"id":"LibTmux.Server.IsAliveAsync","name":"IsAliveAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"True when the server responded."}],"doc":{"summary":"Reports whether a tmux server is answering.","body":"A probe may answer no; it never reports a failure."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.IsAliveAsync","product":"core","slug":"libtmux-server-isaliveasync"},{"id":"LibTmux.Server.ThrowIfDeadAsync","name":"ThrowIfDeadAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Throws unless a tmux server is answering."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ThrowIfDeadAsync","product":"core","slug":"libtmux-server-throwifdeadasync"},{"id":"LibTmux.Server.KillAsync","name":"KillAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Stops the tmux server.","body":"A server that is already gone is the requested outcome, so an absent\ndaemon succeeds rather than failing."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.KillAsync","product":"core","slug":"libtmux-server-killasync"},{"id":"LibTmux.Server.KillSessionAsync","name":"KillSessionAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"target","type":"string","doc":"The session to stop."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Stops one session."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":80,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.KillSessionAsync","product":"core","slug":"libtmux-server-killsessionasync"},{"id":"LibTmux.Server.HasSessionAsync","name":"HasSessionAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"target","type":"string","doc":"The session to look for."},{"name":"exact","type":"bool","default":"true","doc":"Whether the name must match in full."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"True when tmux reports the session."}],"doc":{"summary":"Reports whether a session exists."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":101,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.HasSessionAsync","product":"core","slug":"libtmux-server-hassessionasync"},{"id":"LibTmux.Server.CreateSessionAsync","name":"CreateSessionAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"NewSessionRequest?","default":"null","doc":"The session to create."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The created session.","raises":[{"type":"TmuxSessionExistsException","doc":"The name is already taken."},{"type":"ArgumentException","doc":"The name is invalid, or generation-bound creation requests replacement."}]}],"doc":{"summary":"Creates a session.","body":"Set to require one daemon before\ncreation. Readback always uses the generation reported by creation itself. A daemon\nchange after creation reports a partial failure rather than returning its replacement.","examples":[{"lang":"console","intro":"Create entities directly inside an owned server scope, then read the session and window children. The outer scope stops its daemon and all created entities. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/CreateWindowPane.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-createwindowpane-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// The outer server scope owns everything created directly inside this daemon.\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nSession session = await owned.Value.CreateSessionAsync(\n new NewSessionRequest { Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\" }, token);\nWindow window = await session.CreateWindowAsync(\n new NewWindowRequest { Name = \"editor\", Command = \"/bin/cat\" }, token);\nPane original = (await window.GetPanesAsync(token)).Single();\nPane added = await original.SplitAsync(\n new SplitPaneRequest { Direction = PaneDirection.Right, Command = \"/bin/cat\" }, token);\n\nIReadOnlyList windows = await session.GetWindowsAsync(token);\nIReadOnlyList panes = await session.GetPanesAsync(token);\nif (windows.Count != 2 || panes.Count != 3 || added.Id == original.Id)\n{\n throw new InvalidOperationException(\"Expected two windows and three distinct panes.\");\n}\n\nConsole.WriteLine($\"Created session {session.Name} and window {window.Name}.\");\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Created session demo and window editor.\nWindows: 2; panes: 3\n"}]},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":131,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.CreateSessionAsync","product":"core","slug":"libtmux-server-createsessionasync"},{"id":"LibTmux.Server.CreateSessionWithReceiptAsync","name":"CreateSessionWithReceiptAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"NewSessionRequest?","default":"null","doc":"The session to create."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels creation and readback."}],"returns":"Task","returnsDoc":"The created session and child identifiers from the same creation reply.","raises":[{"type":"ArgumentException","doc":"The name is invalid, or generation-bound creation requests replacement."},{"type":"TmuxSessionExistsException","doc":"The name is already taken."},{"type":"LibTmuxException","doc":"Creation or readback failed; a failure after creation has unknown dispatch outcome."}]}],"doc":{"summary":"Creates a session and returns its initial window and pane identities.","body":"The returned session is bound to the creating daemon. Its child identifiers are\ncreation-time facts, not a snapshot or a promise that the children still belong\nto the session. A failed readback publishes no receipt or cleanup ownership."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":149,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.CreateSessionWithReceiptAsync","product":"core","slug":"libtmux-server-createsessionwithreceiptasync"},{"id":"LibTmux.Server.CreateOwnedAsync","name":"CreateOwnedAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"options","type":"ServerConnectionOptions?","default":"null","doc":"Connection options."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"A scope that stops the server when disposed.","raises":[{"type":"InvalidOperationException","doc":"A server is already listening on the default socket."},{"type":"TmuxCommandException","doc":"tmux failed to say whether a server is listening, such as on a socket it may not open."}]}],"doc":{"summary":"Starts a server and takes ownership of it.","body":"The scope holds an endpoint rather than a materialized server, because\na tmux server with no sessions exits at once. \nstays that endpoint after a session is created through it; its session,\nwindow, and pane listings and \ndiscover the live server on each call, and the objects they return\ncarry the discovered handle.\n\nOn the default socket, the one a caller gets by naming none, a server\nalready listening is refused rather than adopted: disposing the scope\nstops the server, and on a developer's machine the default socket holds\nthe one they are using. A named socket or path stays the caller's to\nadopt deliberately. The check and the start are two tmux calls, so two\ncallers that own the default socket at the same moment can both pass\nit; give each owned server a socket of its own.\n\nA call that fails or is cancelled after starting a server stops it, since\nno scope reaches the caller to do so; a server it found running is left.","examples":[{"lang":"console","intro":"Distinguish an endpoint handle from a discovered server. Connection discovery returns an immutable replacement without capturing child relations. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerConstruction.cs","code":"using System;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverconstruction-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// Open records the endpoint without running tmux or reading its state.\nServer endpoint = Server.Open(options);\nif (endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Open must not discover a server.\");\n}\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n\n// Connect discovers the live daemon and returns a new materialized handle.\nServer connected = await endpoint.ConnectAsync(token);\nServer sameEndpoint = await Server.ConnectAsync(options, token);\nif (!connected.IsMaterialized || !sameEndpoint.IsMaterialized || endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Connecting must leave the original handle unchanged.\");\n}\nif (connected.Generation != sameEndpoint.Generation || connected.Sessions.IsCaptured)\n{\n throw new InvalidOperationException(\"Connection discovery must not capture the hierarchy.\");\n}\n\nConsole.WriteLine(\"Open records an endpoint; Connect discovers the running server.\");\nConsole.WriteLine(\"The original handle stays unmaterialized; relations remain uncaptured.\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Open records an endpoint; Connect discovers the running server.\nThe original handle stays unmaterialized; relations remain uncaptured.\n"}]},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":250,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.CreateOwnedAsync","product":"core","slug":"libtmux-server-createownedasync"},{"id":"LibTmux.Server.CreateOwnedSessionAsync","name":"CreateOwnedSessionAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"NewSessionRequest?","default":"null","doc":"The session to create."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"A scope that stops the session when disposed."}],"doc":{"summary":"Creates a session and takes ownership of it.","examples":[{"lang":"console","intro":"Distinguish an endpoint handle from a discovered server. Connection discovery returns an immutable replacement without capturing child relations. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerConstruction.cs","code":"using System;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverconstruction-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// Open records the endpoint without running tmux or reading its state.\nServer endpoint = Server.Open(options);\nif (endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Open must not discover a server.\");\n}\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n\n// Connect discovers the live daemon and returns a new materialized handle.\nServer connected = await endpoint.ConnectAsync(token);\nServer sameEndpoint = await Server.ConnectAsync(options, token);\nif (!connected.IsMaterialized || !sameEndpoint.IsMaterialized || endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Connecting must leave the original handle unchanged.\");\n}\nif (connected.Generation != sameEndpoint.Generation || connected.Sessions.IsCaptured)\n{\n throw new InvalidOperationException(\"Connection discovery must not capture the hierarchy.\");\n}\n\nConsole.WriteLine(\"Open records an endpoint; Connect discovers the running server.\");\nConsole.WriteLine(\"The original handle stays unmaterialized; relations remain uncaptured.\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Open records an endpoint; Connect discovers the running server.\nThe original handle stays unmaterialized; relations remain uncaptured.\n"}]},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":321,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.CreateOwnedSessionAsync","product":"core","slug":"libtmux-server-createownedsessionasync"},{"id":"LibTmux.Server.AttachSessionAsync","name":"AttachSessionAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"AttachSessionRequest","doc":"Attachment options naming the session."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Attaches a client to a session on this server."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":336,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.AttachSessionAsync","product":"core","slug":"libtmux-server-attachsessionasync"},{"id":"LibTmux.OwnedServerScope","name":"OwnedServerScope","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Owns a server and stops it when disposed.","body":"Ownership is explicit: a handle obtained any other way never tears its\nserver down, so a caller cannot accidentally kill a server it merely\nconnected to."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":465,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OwnedServerScope","product":"core","slug":"libtmux-ownedserverscope"},{"id":"LibTmux.OwnedServerScope.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.OwnedServerScope","signatures":[],"type":"Server","doc":{"summary":"Gets the owned server."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":478,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OwnedServerScope.Value","product":"core","slug":"libtmux-ownedserverscope-value"},{"id":"LibTmux.OwnedServerScope.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":[],"parent":"LibTmux.OwnedServerScope","signatures":[{"params":[],"returns":"ValueTask","returnsDoc":"A task that completes once the server process has exited.","raises":[{"type":"LibTmuxException","doc":"The server could not be stopped, or had not exited within five seconds."}]}],"doc":{"summary":"Stops the owned server.","body":"Calls made while a stop is under way share it, and complete or fail with\nit. A call after a failed stop tries again; one after a stop that\nsucceeded returns at once."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":488,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OwnedServerScope.DisposeAsync","product":"core","slug":"libtmux-ownedserverscope-disposeasync"},{"id":"LibTmux.Server.Options","name":"Options","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"TmuxOptions","doc":{"summary":"Gets the options of this server.","body":"Server options belong to the daemon rather than to anything inside it,\nso nothing is targeted and the global table is the only one there is."},"source":{"file":"src/LibTmux/Server.Scopes.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Options","product":"core","slug":"libtmux-server-options"},{"id":"LibTmux.Server.Hooks","name":"Hooks","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"TmuxHooks","doc":{"summary":"Gets the hooks of this server.","body":"tmux has no server hook table of its own: the global one is it, which is\nwhy these are reached with the global flag rather than a server flag."},"source":{"file":"src/LibTmux/Server.Scopes.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Hooks","product":"core","slug":"libtmux-server-hooks"},{"id":"LibTmux.Server.Buffers","name":"Buffers","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"TmuxBuffers","doc":{"summary":"Gets the paste buffers of this server."},"source":{"file":"src/LibTmux/Server.Scopes.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Buffers","product":"core","slug":"libtmux-server-buffers"},{"id":"LibTmux.Server.Keys","name":"Keys","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"TmuxKeys","doc":{"summary":"Gets the key bindings of this server."},"source":{"file":"src/LibTmux/Server.Scopes.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Keys","product":"core","slug":"libtmux-server-keys"},{"id":"LibTmux.Server.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"TmuxEnvironment","doc":{"summary":"Gets the environment new sessions inherit from."},"source":{"file":"src/LibTmux/Server.Scopes.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Environment","product":"core","slug":"libtmux-server-environment"},{"id":"LibTmux.Server.SnapshotMetadata","name":"SnapshotMetadata","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"SnapshotMetadata?","doc":{"summary":"Gets acquisition metadata, or null when this handle was not captured."},"source":{"file":"src/LibTmux/Server.Snapshots.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.SnapshotMetadata","product":"core","slug":"libtmux-server-snapshotmetadata"},{"id":"LibTmux.Server.Sessions","name":"Sessions","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"CapturedRelation","doc":{"summary":"Gets the sessions this handle captured."},"source":{"file":"src/LibTmux/Server.Snapshots.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Sessions","product":"core","slug":"libtmux-server-sessions"},{"id":"LibTmux.Server.Windows","name":"Windows","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"CapturedRelation","doc":{"summary":"Gets the windows this handle captured, across every session.","body":"Each session/index placement appears separately, including repeated links\nin one session. Each handle preserves its captured parent and children."},"source":{"file":"src/LibTmux/Server.Snapshots.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Windows","product":"core","slug":"libtmux-server-windows"},{"id":"LibTmux.Server.Panes","name":"Panes","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"CapturedRelation","doc":{"summary":"Gets the panes this handle captured, across every window.","body":"tmux lists panes per window rather than per server, so a capture that\nstopped short of panes leaves this uncaptured even when the windows are\nthere."},"source":{"file":"src/LibTmux/Server.Snapshots.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Panes","product":"core","slug":"libtmux-server-panes"},{"id":"LibTmux.Server.Clients","name":"Clients","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"CapturedRelation","doc":{"summary":"Gets the clients this handle captured.","body":"A capture reads the hierarchy, which clients are not part of: a client\nis attached to a session rather than contained by one. Reading them is\n."},"source":{"file":"src/LibTmux/Server.Snapshots.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Clients","product":"core","slug":"libtmux-server-clients"},{"id":"LibTmux.Server.CaptureSnapshotAsync","name":"CaptureSnapshotAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"depth","type":"SnapshotDepth","default":"SnapshotDepth.Panes","doc":"How far down the hierarchy to read."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"A handle whose relations are the ones this reading found.","raises":[{"type":"InvalidOperationException","doc":"The handle has no connection."},{"type":"ArgumentOutOfRangeException","doc":"The depth is undefined."},{"type":"InconsistentSnapshotException","doc":"The acquired parent, placement, or child-count rows contradict each other."},{"type":"StaleServerGenerationException","doc":"The endpoint now names a different daemon generation."},{"type":"OperationCanceledException","doc":"Acquisition was cancelled before publication."}]}],"doc":{"summary":"Reads the server and answers a handle carrying what it found.","body":"A handle that has not yet found a live server discovers one first,\nbecause a scope hands back the unmaterialized endpoint it started.\n\nEvery depth performs a fresh guarded read. Separate reads are not an\natomic observation; detected topology contradictions fail the attempt\nwithout retrying or publishing partial relations.","examples":[{"lang":"console","intro":"Capture a new immutable hierarchy, check optional pane state, and distinguish an empty captured relation from one that has not been read. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/SnapshotAccess.cs","code":"using System;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-snapshotaccess-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nServer server;\nawait using (OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token))\n{\n server = await Server.ConnectAsync(options, token);\n if (server.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"Connecting must not capture the hierarchy.\");\n }\n Console.WriteLine(\"Sessions have not been captured.\");\n\n Server captured = await server.CaptureSnapshotAsync(SnapshotDepth.Panes, token);\n if (!captured.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"The requested sessions were not captured.\");\n }\n Session capturedSession = captured.Sessions.Single();\n if (!capturedSession.ActivePane.IsCaptured)\n {\n throw new InvalidOperationException(\"The active pane was not captured.\");\n }\n Pane pane = capturedSession.ActivePane.Value;\n if (pane.CurrentPath is null || pane.CurrentCommand is null)\n {\n throw new InvalidOperationException(\"The running pane should report its path and command.\");\n }\n Console.WriteLine(\"The captured active pane has a path and command.\");\n if (server.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"Capturing must return a new immutable handle.\");\n }\n Console.WriteLine(\"The original handle is still uncaptured.\");\n\n // Keep this private daemon alive after its only owned session is disposed.\n TmuxCommandResult result = await server.ExecuteCommandAsync(\n [\"set-option\", \"-s\", \"exit-empty\", \"off\"], token);\n if (result.ExitCode != 0)\n {\n throw new InvalidOperationException(\"Could not keep the empty server alive.\");\n }\n}\nServer empty = await server.CaptureSnapshotAsync(SnapshotDepth.Sessions, token);\nif (!empty.Sessions.IsCaptured || empty.Sessions.Count != 0)\n{\n throw new InvalidOperationException(\"An empty captured relation differs from an uncaptured relation.\");\n}\nConsole.WriteLine(\"Captured sessions can be empty.\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux/Server.Snapshots.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.CaptureSnapshotAsync","product":"core","slug":"libtmux-server-capturesnapshotasync"},{"id":"LibTmux.ShowMessagesMode","name":"ShowMessagesMode","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"What show-messages should list."},"source":{"file":"src/LibTmux/Server.Utilities.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ShowMessagesMode","product":"core","slug":"libtmux-showmessagesmode"},{"id":"LibTmux.ShowMessagesMode.Messages","name":"Messages","kind":"constant","modifiers":[],"parent":"LibTmux.ShowMessagesMode","signatures":[],"doc":{"summary":"The server's own message log."},"source":{"file":"src/LibTmux/Server.Utilities.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ShowMessagesMode.Messages","product":"core","slug":"libtmux-showmessagesmode-messages"},{"id":"LibTmux.ShowMessagesMode.Jobs","name":"Jobs","kind":"constant","modifiers":[],"parent":"LibTmux.ShowMessagesMode","signatures":[],"doc":{"summary":"The jobs the server is running."},"source":{"file":"src/LibTmux/Server.Utilities.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ShowMessagesMode.Jobs","product":"core","slug":"libtmux-showmessagesmode-jobs"},{"id":"LibTmux.ShowMessagesMode.Terminals","name":"Terminals","kind":"constant","modifiers":[],"parent":"LibTmux.ShowMessagesMode","signatures":[],"doc":{"summary":"What the server knows about attached terminals."},"source":{"file":"src/LibTmux/Server.Utilities.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ShowMessagesMode.Terminals","product":"core","slug":"libtmux-showmessagesmode-terminals"},{"id":"LibTmux.Server.DaemonVersion","name":"DaemonVersion","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"TmuxVersion?","doc":{"summary":"Gets the daemon version read by inspection, or null when it was not acquired."},"source":{"file":"src/LibTmux/Server.Version.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.DaemonVersion","product":"core","slug":"libtmux-server-daemonversion"},{"id":"LibTmux.Server.Version","name":"Version","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"TmuxVersion?","doc":{"summary":"Gets the verified tmux client executable version."},"source":{"file":"src/LibTmux/Server.Version.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Version","product":"core","slug":"libtmux-server-version"},{"id":"LibTmux.Session","name":"Session","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Represents an immutable session handle and snapshot.","body":"Thread-safe: the handle is immutable once constructed and may be shared\nfreely, including as a singleton. Every mutating call answers a new handle\nrather than changing this one."},"source":{"file":"src/LibTmux/Session.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session","product":"core","slug":"libtmux-session"},{"id":"LibTmux.Session.ExecuteCommandAsync","name":"ExecuteCommandAsync","kind":"method","modifiers":[],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"arguments","type":"IReadOnlyList"},{"name":"targetOverride","type":"string?","default":"null"},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Executes one raw tmux command against this session."},"source":{"file":"src/LibTmux/Session.Command.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.ExecuteCommandAsync","product":"core","slug":"libtmux-session-executecommandasync"},{"id":"LibTmux.Session.FromEnvironmentAsync","name":"FromEnvironmentAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"environment","type":"IReadOnlyDictionary?","default":"null","doc":"The environment, or null for the process."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The resolved session."}],"doc":{"summary":"Returns the session holding the pane this process runs in.","body":"Resolved through the pane rather than through the session id in\nTMUX. That id is frozen at pane spawn, so it names the wrong\nsession once the pane's window is moved or linked elsewhere."},"source":{"file":"src/LibTmux/Session.FromEnvironment.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.FromEnvironmentAsync","product":"core","slug":"libtmux-session-fromenvironmentasync"},{"id":"LibTmux.Session.RawFormatFields","name":"RawFormatFields","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the tmux fields captured when this handle materialized."},"source":{"file":"src/LibTmux/Session.Identity.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.RawFormatFields","product":"core","slug":"libtmux-session-rawformatfields"},{"id":"LibTmux.Session.Id","name":"Id","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"SessionId","doc":{"summary":"Gets the session identifier."},"source":{"file":"src/LibTmux/Session.Identity.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Id","product":"core","slug":"libtmux-session-id"},{"id":"LibTmux.Session.Generation","name":"Generation","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"ServerGeneration","doc":{"summary":"Gets the server generation captured with this session."},"source":{"file":"src/LibTmux/Session.Identity.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Generation","product":"core","slug":"libtmux-session-generation"},{"id":"LibTmux.Session.Equals","name":"Equals","kind":"method","modifiers":["overload"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"other","type":"Session?"}],"returns":"bool"},{"params":[{"name":"obj","type":"object?"}],"returns":"bool"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Session.Identity.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Equals","product":"core","slug":"libtmux-session-equals"},{"id":"LibTmux.Session.GetHashCode","name":"GetHashCode","kind":"method","modifiers":[],"parent":"LibTmux.Session","signatures":[{"params":[],"returns":"int"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Session.Identity.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.GetHashCode","product":"core","slug":"libtmux-session-gethashcode"},{"id":"LibTmux.Session.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"string","doc":{"summary":"Gets the session name captured with this handle."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Name","product":"core","slug":"libtmux-session-name"},{"id":"LibTmux.Session.Attached","name":"Attached","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"bool","doc":{"summary":"Gets whether a client was attached when this session was read.","body":"This is captured state rather than a live one: it says what tmux\nreported when the handle was made, which is what makes a reading of a\nhierarchy consistent with itself."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Attached","product":"core","slug":"libtmux-session-attached"},{"id":"LibTmux.Session.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"Server","doc":{"summary":"Gets the server that owns this session.","body":"Reading this uses the owner captured with the entity."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Server","product":"core","slug":"libtmux-session-server"},{"id":"LibTmux.Session.RefreshAsync","name":"RefreshAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying current state."}],"doc":{"summary":"Re-reads this session from tmux."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.RefreshAsync","product":"core","slug":"libtmux-session-refreshasync"},{"id":"LibTmux.Session.RenameAsync","name":"RenameAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"name","type":"string","doc":"The new name."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new name."}],"doc":{"summary":"Renames this session.","body":"tmux expands the name as a format, so a # in it does not survive\nverbatim."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.RenameAsync","product":"core","slug":"libtmux-session-renameasync"},{"id":"LibTmux.Session.KillAsync","name":"KillAsync","kind":"method","modifiers":[],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"allExcept","type":"bool","default":"false","doc":"Whether every other session is stopped instead of this one."},{"name":"clearAlerts","type":"bool","default":"false","doc":"Whether alerts are cleared in every window instead."},{"name":"group","type":"bool","default":"false","doc":"Whether every session in this session's group is stopped."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Stops this session.","body":"Group stopping arrived in tmux 3.7. Older servers reject the flag and\nstop nothing at all, so against those the request is logged and the flag\nomitted: this session still dies, its group siblings do not."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":88,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.KillAsync","product":"core","slug":"libtmux-session-killasync"},{"id":"LibTmux.Session.LockAsync","name":"LockAsync","kind":"method","modifiers":[],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Locks this session."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":118,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.LockAsync","product":"core","slug":"libtmux-session-lockasync"},{"id":"LibTmux.Session.DetachClientAsync","name":"DetachClientAsync","kind":"method","modifiers":[],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"shellCommand","type":"string?","default":"null","doc":"A command the detached clients run, when any."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Detaches every client attached to this session.","body":"The session scope is always sent, because -s is the only\ndetach-client flag group that names a session rather than a\nclient."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":130,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.DetachClientAsync","product":"core","slug":"libtmux-session-detachclientasync"},{"id":"LibTmux.Session.SelectWindowAsync","name":"SelectWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"target","type":"string","doc":"The window target."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The window that is active afterwards."}],"doc":{"summary":"Selects a window in this session."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":144,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.SelectWindowAsync","product":"core","slug":"libtmux-session-selectwindowasync"},{"id":"LibTmux.Session.SelectNextWindowAsync","name":"SelectNextWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The window that is active afterwards."}],"doc":{"summary":"Selects the next window."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":159,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.SelectNextWindowAsync","product":"core","slug":"libtmux-session-selectnextwindowasync"},{"id":"LibTmux.Session.SelectPreviousWindowAsync","name":"SelectPreviousWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The window that is active afterwards."}],"doc":{"summary":"Selects the previous window."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":171,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.SelectPreviousWindowAsync","product":"core","slug":"libtmux-session-selectpreviouswindowasync"},{"id":"LibTmux.Session.KillWindowAsync","name":"KillWindowAsync","kind":"method","modifiers":[],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"target","type":"string?","default":"null","doc":"The window target, or null for the active window."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Stops one window in this session."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":184,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.KillWindowAsync","product":"core","slug":"libtmux-session-killwindowasync"},{"id":"LibTmux.Session.SwitchClientAsync","name":"SwitchClientAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the state after the switch."}],"doc":{"summary":"Switches the current client to this session."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":195,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.SwitchClientAsync","product":"core","slug":"libtmux-session-switchclientasync"},{"id":"LibTmux.Session.SearchWindowsAsync","name":"SearchWindowsAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"filter","type":"UnsafeTmuxFilter","doc":"The raw tmux filter expression."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The windows tmux kept."}],"doc":{"summary":"Runs a tmux-side filter over this session's windows."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":208,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.SearchWindowsAsync","product":"core","slug":"libtmux-session-searchwindowsasync"},{"id":"LibTmux.Session.SearchPanesAsync","name":"SearchPanesAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"filter","type":"UnsafeTmuxFilter","doc":"The raw tmux filter expression."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The panes tmux kept."}],"doc":{"summary":"Runs a tmux-side filter over this session's panes."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":229,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.SearchPanesAsync","product":"core","slug":"libtmux-session-searchpanesasync"},{"id":"LibTmux.Session.AttachAsync","name":"AttachAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"request","type":"AttachSessionRequest?","default":"null","doc":"Attachment options."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A refreshed handle for this session."}],"doc":{"summary":"Attaches a client to this session.","body":"Attaching inherits the caller's terminal on stdin and waits for detach.\nA positive acknowledgement is required within five seconds, or a shorter\n. CommandTimeout\nstill bounds the whole attachment; null permits an indefinite interactive\nlifetime after acknowledgement. Cancellation stops only the owned client.\n remains a raw target override;\nleave it unset to attach this session by its identifier."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":259,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.AttachAsync","product":"core","slug":"libtmux-session-attachasync"},{"id":"LibTmux.Session.CreateWindowAsync","name":"CreateWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"request","type":"NewWindowRequest?","default":"null","doc":"The window to create."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The created window."}],"doc":{"summary":"Creates a window in this session.","examples":[{"lang":"console","intro":"Create entities directly inside an owned server scope, then read the session and window children. The outer scope stops its daemon and all created entities. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/CreateWindowPane.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-createwindowpane-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// The outer server scope owns everything created directly inside this daemon.\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nSession session = await owned.Value.CreateSessionAsync(\n new NewSessionRequest { Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\" }, token);\nWindow window = await session.CreateWindowAsync(\n new NewWindowRequest { Name = \"editor\", Command = \"/bin/cat\" }, token);\nPane original = (await window.GetPanesAsync(token)).Single();\nPane added = await original.SplitAsync(\n new SplitPaneRequest { Direction = PaneDirection.Right, Command = \"/bin/cat\" }, token);\n\nIReadOnlyList windows = await session.GetWindowsAsync(token);\nIReadOnlyList panes = await session.GetPanesAsync(token);\nif (windows.Count != 2 || panes.Count != 3 || added.Id == original.Id)\n{\n throw new InvalidOperationException(\"Expected two windows and three distinct panes.\");\n}\n\nConsole.WriteLine($\"Created session {session.Name} and window {window.Name}.\");\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Created session demo and window editor.\nWindows: 2; panes: 3\n"}]},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":285,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.CreateWindowAsync","product":"core","slug":"libtmux-session-createwindowasync"},{"id":"LibTmux.Session.CreateWindowWithReceiptAsync","name":"CreateWindowWithReceiptAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"request","type":"NewWindowRequest?","default":"null","doc":"The window to create."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels creation and readback."}],"returns":"Task","returnsDoc":"The created window in this session and its initial pane identifier.","raises":[{"type":"ArgumentException","doc":"The request may select an existing window."},{"type":"LibTmuxException","doc":"Creation or readback failed; a failure after creation has unknown dispatch outcome."}]}],"doc":{"summary":"Creates a window and returns its initial pane identity.","body":"Rejects before dispatch because an\nexisting window has no creation receipt. The pane identifier comes from creation,\nnot a later listing; the pane may have moved or disappeared before readback.\nA failed readback publishes no receipt or cleanup ownership."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":304,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.CreateWindowWithReceiptAsync","product":"core","slug":"libtmux-session-createwindowwithreceiptasync"},{"id":"LibTmux.OwnedSessionScope","name":"OwnedSessionScope","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Owns a session and stops it when disposed."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":576,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OwnedSessionScope","product":"core","slug":"libtmux-ownedsessionscope"},{"id":"LibTmux.OwnedSessionScope.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.OwnedSessionScope","signatures":[],"type":"Session","doc":{"summary":"Gets the owned session."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":584,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OwnedSessionScope.Value","product":"core","slug":"libtmux-ownedsessionscope-value"},{"id":"LibTmux.OwnedSessionScope.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.OwnedSessionScope","signatures":[{"params":[],"returns":"ValueTask","returnsDoc":"A task that completes once the session is gone.","raises":[{"type":"LibTmuxException","doc":"The session could not be stopped."}]}],"doc":{"summary":"Stops the owned session."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":589,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OwnedSessionScope.DisposeAsync","product":"core","slug":"libtmux-ownedsessionscope-disposeasync"},{"id":"LibTmux.Session.ActiveWindow","name":"ActiveWindow","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"CapturedValue","doc":{"summary":"Gets the captured active window, or an uncaptured relation.","body":"Reading this is local. A session reached through an inactive window\ncarries that window's row, so its active window was not captured."},"source":{"file":"src/LibTmux/Session.Relations.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.ActiveWindow","product":"core","slug":"libtmux-session-activewindow"},{"id":"LibTmux.Session.ActivePane","name":"ActivePane","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"CapturedValue","doc":{"summary":"Gets the captured active pane, or an uncaptured relation.","body":"Reading this is local. The row must describe the active pane in the\nsession's active window; other rows leave this relation uncaptured."},"source":{"file":"src/LibTmux/Session.Relations.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.ActivePane","product":"core","slug":"libtmux-session-activepane"},{"id":"LibTmux.Session.Windows","name":"Windows","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"CapturedRelation","doc":{"summary":"Gets the windows the capture found in this session.","body":"Reading this never reaches tmux; unacquired relations remain uncaptured."},"source":{"file":"src/LibTmux/Session.Relations.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Windows","product":"core","slug":"libtmux-session-windows"},{"id":"LibTmux.Session.Panes","name":"Panes","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"CapturedRelation","doc":{"summary":"Gets the panes the capture found in this session.","body":"Reading this never reaches tmux."},"source":{"file":"src/LibTmux/Session.Relations.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Panes","product":"core","slug":"libtmux-session-panes"},{"id":"LibTmux.Session.GetWindowAsync","name":"GetWindowAsync","kind":"method","modifiers":["async","overload"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"id","type":"WindowId","doc":"The window identifier."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The materialized window in this session.","raises":[{"type":"TmuxObjectNotFoundException","doc":"This session has no matching window."},{"type":"LibTmuxException","doc":"The lookup failed."}]},{"params":[{"name":"target","type":"string","doc":"The window identifier or name."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The materialized window in this session.","raises":[{"type":"TmuxObjectNotFoundException","doc":"This session has no matching window."},{"type":"LibTmuxException","doc":"The lookup failed."}]}],"doc":{"summary":"Reads one window in this session, throwing when it is absent."},"source":{"file":"src/LibTmux/Session.Relations.cs","line":59,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.GetWindowAsync","product":"core","slug":"libtmux-session-getwindowasync"},{"id":"LibTmux.Session.FindWindowAsync","name":"FindWindowAsync","kind":"method","modifiers":["async","overload"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"id","type":"WindowId","doc":"The window identifier to look for."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The window, or null when this session has no such window."},{"params":[{"name":"target","type":"string","doc":"A tmux window target inside this session."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The window, or null when this session has no such window."}],"doc":{"summary":"Reads one of this session's windows by identifier.","body":"A typed identifier is unique in a session that links a window at only\none index; the string overload also accepts a window name, which two\nwindows can share. When this session links the same window at more\nthan one index, this returns whichever placement tmux lists first."},"source":{"file":"src/LibTmux/Session.Relations.cs","line":91,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.FindWindowAsync","product":"core","slug":"libtmux-session-findwindowasync"},{"id":"LibTmux.Session.GetWindowsAsync","name":"GetWindowsAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The windows tmux reports for this session."}],"doc":{"summary":"Reads this session's windows from tmux.","examples":[{"lang":"console","intro":"Create entities directly inside an owned server scope, then read the session and window children. The outer scope stops its daemon and all created entities. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/CreateWindowPane.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-createwindowpane-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// The outer server scope owns everything created directly inside this daemon.\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nSession session = await owned.Value.CreateSessionAsync(\n new NewSessionRequest { Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\" }, token);\nWindow window = await session.CreateWindowAsync(\n new NewWindowRequest { Name = \"editor\", Command = \"/bin/cat\" }, token);\nPane original = (await window.GetPanesAsync(token)).Single();\nPane added = await original.SplitAsync(\n new SplitPaneRequest { Direction = PaneDirection.Right, Command = \"/bin/cat\" }, token);\n\nIReadOnlyList windows = await session.GetWindowsAsync(token);\nIReadOnlyList panes = await session.GetPanesAsync(token);\nif (windows.Count != 2 || panes.Count != 3 || added.Id == original.Id)\n{\n throw new InvalidOperationException(\"Expected two windows and three distinct panes.\");\n}\n\nConsole.WriteLine($\"Created session {session.Name} and window {window.Name}.\");\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Created session demo and window editor.\nWindows: 2; panes: 3\n"}]},"source":{"file":"src/LibTmux/Session.Relations.cs","line":147,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.GetWindowsAsync","product":"core","slug":"libtmux-session-getwindowsasync"},{"id":"LibTmux.Session.GetPanesAsync","name":"GetPanesAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The panes tmux reports for this session."}],"doc":{"summary":"Reads this session's panes from tmux.","examples":[{"lang":"console","intro":"Create entities directly inside an owned server scope, then read the session and window children. The outer scope stops its daemon and all created entities. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/CreateWindowPane.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-createwindowpane-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// The outer server scope owns everything created directly inside this daemon.\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nSession session = await owned.Value.CreateSessionAsync(\n new NewSessionRequest { Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\" }, token);\nWindow window = await session.CreateWindowAsync(\n new NewWindowRequest { Name = \"editor\", Command = \"/bin/cat\" }, token);\nPane original = (await window.GetPanesAsync(token)).Single();\nPane added = await original.SplitAsync(\n new SplitPaneRequest { Direction = PaneDirection.Right, Command = \"/bin/cat\" }, token);\n\nIReadOnlyList windows = await session.GetWindowsAsync(token);\nIReadOnlyList panes = await session.GetPanesAsync(token);\nif (windows.Count != 2 || panes.Count != 3 || added.Id == original.Id)\n{\n throw new InvalidOperationException(\"Expected two windows and three distinct panes.\");\n}\n\nConsole.WriteLine($\"Created session {session.Name} and window {window.Name}.\");\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Created session demo and window editor.\nWindows: 2; panes: 3\n"}]},"source":{"file":"src/LibTmux/Session.Relations.cs","line":161,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.GetPanesAsync","product":"core","slug":"libtmux-session-getpanesasync"},{"id":"LibTmux.Session.GetActivePaneAsync","name":"GetActivePaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The pane tmux reports.","raises":[{"type":"TmuxObjectNotFoundException","doc":"tmux reports no such pane."}]}],"doc":{"summary":"Reads from tmux the pane this session shows: its current window's active pane.","body":"Asks tmux now, where holds what a capture saw."},"source":{"file":"src/LibTmux/Session.Relations.cs","line":177,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.GetActivePaneAsync","product":"core","slug":"libtmux-session-getactivepaneasync"},{"id":"LibTmux.Session.HoldWaitClientAsync","name":"HoldWaitClientAsync","kind":"method","modifiers":[],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels attaching the client."}],"returns":"Task","returnsDoc":"A handle; disposing it lets the client detach once no wait needs it."}],"doc":{"summary":"Keeps the control client that waits on this session's panes use attached until the handle is disposed.","body":"A wait on a pane attaches a control client to the pane's session and\nreads through it, and lets it go when the wait ends unless another wait\nstill needs it. Attaching costs about as much as a tmux process start,\nso holding the client saves that for each wait in a series, which then\ncosts little more than the keys it sends.\n\nThe client ignores its size, so it leaves window sizes alone, and is\nexcluded wherever this library tells observers from people attached.\ntmux itself still lists it among the session's clients while it is\nheld, so the session counts as attached for destroy-unattached,\nand the client keeps reading the session's output while no wait runs.\nThe hold is for this server process: one started again needs a new\none. When control mode is unavailable the waits poll, and the handle\nholds nothing."},"source":{"file":"src/LibTmux/Session.Scopes.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.HoldWaitClientAsync","product":"core","slug":"libtmux-session-holdwaitclientasync"},{"id":"LibTmux.Session.Options","name":"Options","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"TmuxOptions","doc":{"summary":"Gets the options of this session."},"source":{"file":"src/LibTmux/Session.Scopes.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Options","product":"core","slug":"libtmux-session-options"},{"id":"LibTmux.Session.Hooks","name":"Hooks","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"TmuxHooks","doc":{"summary":"Gets the hooks of this session."},"source":{"file":"src/LibTmux/Session.Scopes.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Hooks","product":"core","slug":"libtmux-session-hooks"},{"id":"LibTmux.Session.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"TmuxEnvironment","doc":{"summary":"Gets the environment panes created in this session inherit from."},"source":{"file":"src/LibTmux/Session.Scopes.cs","line":60,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Environment","product":"core","slug":"libtmux-session-environment"},{"id":"LibTmux.Session.SelectLastWindowAsync","name":"SelectLastWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The window that is active afterwards."}],"doc":{"summary":"Selects the window that was last active."},"source":{"file":"src/LibTmux/Session.WindowNavigation.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.SelectLastWindowAsync","product":"core","slug":"libtmux-session-selectlastwindowasync"},{"id":"LibTmux.Session.CreateOwnedWindowAsync","name":"CreateOwnedWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"request","type":"NewWindowRequest?","default":"null","doc":"The window to create."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"A scope that stops the window when disposed."}],"doc":{"summary":"Creates a window in this session and takes ownership of it."},"source":{"file":"src/LibTmux/Session.WindowNavigation.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.CreateOwnedWindowAsync","product":"core","slug":"libtmux-session-createownedwindowasync"},{"id":"LibTmux.OwnedWindowScope","name":"OwnedWindowScope","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Owns a window and stops it when disposed."},"source":{"file":"src/LibTmux/Session.WindowNavigation.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OwnedWindowScope","product":"core","slug":"libtmux-ownedwindowscope"},{"id":"LibTmux.OwnedWindowScope.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.OwnedWindowScope","signatures":[],"type":"Window","doc":{"summary":"Gets the owned window."},"source":{"file":"src/LibTmux/Session.WindowNavigation.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OwnedWindowScope.Value","product":"core","slug":"libtmux-ownedwindowscope-value"},{"id":"LibTmux.OwnedWindowScope.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.OwnedWindowScope","signatures":[{"params":[],"returns":"ValueTask","returnsDoc":"A task that completes once the window is gone.","raises":[{"type":"LibTmuxException","doc":"The window could not be stopped."}]}],"doc":{"summary":"Stops the owned window."},"source":{"file":"src/LibTmux/Session.WindowNavigation.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OwnedWindowScope.DisposeAsync","product":"core","slug":"libtmux-ownedwindowscope-disposeasync"},{"id":"LibTmux.SessionCreationResult","name":"SessionCreationResult","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A created session and the initial child identities reported by its creation command.","body":"The identifiers belong to 's endpoint and generation.\nThey describe creation time, not captured relationships or current membership.\nResolve those exact identifiers before acting on the children; another client\nor hook may already have moved or removed them."},"source":{"file":"src/LibTmux/SessionCreationResult.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionCreationResult","product":"core","slug":"libtmux-sessioncreationresult"},{"id":"LibTmux.SessionCreationResult.Session","name":"Session","kind":"property","modifiers":[],"parent":"LibTmux.SessionCreationResult","signatures":[],"type":"Session","doc":{"summary":"Gets the created session, bound to the daemon that acknowledged creation."},"source":{"file":"src/LibTmux/SessionCreationResult.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionCreationResult.Session","product":"core","slug":"libtmux-sessioncreationresult-session"},{"id":"LibTmux.SessionCreationResult.InitialWindowId","name":"InitialWindowId","kind":"property","modifiers":[],"parent":"LibTmux.SessionCreationResult","signatures":[],"type":"WindowId","doc":{"summary":"Gets the initial window identifier from the creation reply."},"source":{"file":"src/LibTmux/SessionCreationResult.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionCreationResult.InitialWindowId","product":"core","slug":"libtmux-sessioncreationresult-initialwindowid"},{"id":"LibTmux.SessionCreationResult.InitialWindowIndex","name":"InitialWindowIndex","kind":"property","modifiers":[],"parent":"LibTmux.SessionCreationResult","signatures":[],"type":"int","doc":{"summary":"Gets the initial window's session-relative index from the creation reply."},"source":{"file":"src/LibTmux/SessionCreationResult.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionCreationResult.InitialWindowIndex","product":"core","slug":"libtmux-sessioncreationresult-initialwindowindex"},{"id":"LibTmux.SessionCreationResult.InitialPaneId","name":"InitialPaneId","kind":"property","modifiers":[],"parent":"LibTmux.SessionCreationResult","signatures":[],"type":"PaneId","doc":{"summary":"Gets the initial pane identifier from the creation reply."},"source":{"file":"src/LibTmux/SessionCreationResult.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionCreationResult.InitialPaneId","product":"core","slug":"libtmux-sessioncreationresult-initialpaneid"},{"id":"LibTmux.SessionId","name":"SessionId","kind":"struct","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Represents a generation-independent tmux session identifier."},"source":{"file":"src/LibTmux/SessionId.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionId","product":"core","slug":"libtmux-sessionid"},{"id":"LibTmux.SessionId.SessionId","name":"SessionId","kind":"method","modifiers":[],"parent":"LibTmux.SessionId","signatures":[{"params":[{"name":"value","type":"int"}]}],"doc":{"summary":"Initializes a session identifier."},"source":{"file":"src/LibTmux/SessionId.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionId.SessionId","product":"core","slug":"libtmux-sessionid-sessionid"},{"id":"LibTmux.SessionId.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.SessionId","signatures":[],"type":"int","doc":{"summary":"Gets the nonnegative numeric value."},"source":{"file":"src/LibTmux/SessionId.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionId.Value","product":"core","slug":"libtmux-sessionid-value"},{"id":"LibTmux.SessionId.Parse","name":"Parse","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.SessionId","signatures":[{"params":[{"name":"text","type":"string"}],"returns":"SessionId"},{"params":[{"name":"text","type":"ReadOnlySpan","doc":"The text to parse."}],"returns":"SessionId","returnsDoc":"The parsed identifier.","raises":[{"type":"FormatException","doc":"The text is not a canonical session identifier."}]}],"doc":{"summary":"Parses a prefixed session identifier."},"source":{"file":"src/LibTmux/SessionId.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionId.Parse","product":"core","slug":"libtmux-sessionid-parse"},{"id":"LibTmux.SessionId.TryParse","name":"TryParse","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.SessionId","signatures":[{"params":[{"name":"text","type":"string?"},{"name":"result","type":"SessionId"}],"returns":"bool"},{"params":[{"name":"text","type":"ReadOnlySpan","doc":"The text to parse."},{"name":"result","type":"SessionId","doc":"The parsed identifier when this succeeds."}],"returns":"bool","returnsDoc":" when the text was a canonical identifier."}],"doc":{"summary":"Tries to parse a prefixed session identifier."},"source":{"file":"src/LibTmux/SessionId.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionId.TryParse","product":"core","slug":"libtmux-sessionid-tryparse"},{"id":"LibTmux.SessionId.CompareTo","name":"CompareTo","kind":"method","modifiers":[],"parent":"LibTmux.SessionId","signatures":[{"params":[{"name":"other","type":"SessionId","doc":"The identifier to compare against."}],"returns":"int","returnsDoc":"A negative value, zero, or a positive value."}],"doc":{"summary":"Orders this identifier against another numerically.","body":"tmux hands out session identifiers in increasing order, so the ordering\nis oldest first. Without it OrderBy and Array.Sort throw\nrather than sorting."},"source":{"file":"src/LibTmux/SessionId.cs","line":76,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionId.CompareTo","product":"core","slug":"libtmux-sessionid-compareto"},{"id":"LibTmux.SessionId.ToString","name":"ToString","kind":"method","modifiers":[],"parent":"LibTmux.SessionId","signatures":[{"params":[],"returns":"string"}],"doc":{"summary":"Returns the canonical prefixed identifier."},"source":{"file":"src/LibTmux/SessionId.cs","line":124,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionId.ToString","product":"core","slug":"libtmux-sessionid-tostring"},{"id":"LibTmux.CapturedRelation","name":"CapturedRelation","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Holds the children a snapshot captured for one relation.","body":"An uncaptured relation is not an empty one. Enumerating a relation the\nsnapshot never read throws instead of reporting zero children, so a caller\ncannot mistake unread state for absent state."},"source":{"file":"src/LibTmux/Snapshots/CapturedRelation.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedRelation","product":"core","slug":"libtmux-capturedrelation"},{"id":"LibTmux.CapturedRelation.Relation","name":"Relation","kind":"property","modifiers":[],"parent":"LibTmux.CapturedRelation","signatures":[],"type":"string","doc":{"summary":"Gets the relation name this instance carries."},"source":{"file":"src/LibTmux/Snapshots/CapturedRelation.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedRelation.Relation","product":"core","slug":"libtmux-capturedrelation-relation"},{"id":"LibTmux.CapturedRelation.CapturedDepth","name":"CapturedDepth","kind":"property","modifiers":[],"parent":"LibTmux.CapturedRelation","signatures":[],"type":"SnapshotDepth","doc":{"summary":"Gets the depth the owning snapshot reached."},"source":{"file":"src/LibTmux/Snapshots/CapturedRelation.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedRelation.CapturedDepth","product":"core","slug":"libtmux-capturedrelation-captureddepth"},{"id":"LibTmux.CapturedRelation.IsCaptured","name":"IsCaptured","kind":"property","modifiers":[],"parent":"LibTmux.CapturedRelation","signatures":[],"type":"bool","doc":{"summary":"Gets whether the snapshot read this relation.","examples":[{"lang":"console","intro":"Capture a new immutable hierarchy, check optional pane state, and distinguish an empty captured relation from one that has not been read. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/SnapshotAccess.cs","code":"using System;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-snapshotaccess-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nServer server;\nawait using (OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token))\n{\n server = await Server.ConnectAsync(options, token);\n if (server.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"Connecting must not capture the hierarchy.\");\n }\n Console.WriteLine(\"Sessions have not been captured.\");\n\n Server captured = await server.CaptureSnapshotAsync(SnapshotDepth.Panes, token);\n if (!captured.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"The requested sessions were not captured.\");\n }\n Session capturedSession = captured.Sessions.Single();\n if (!capturedSession.ActivePane.IsCaptured)\n {\n throw new InvalidOperationException(\"The active pane was not captured.\");\n }\n Pane pane = capturedSession.ActivePane.Value;\n if (pane.CurrentPath is null || pane.CurrentCommand is null)\n {\n throw new InvalidOperationException(\"The running pane should report its path and command.\");\n }\n Console.WriteLine(\"The captured active pane has a path and command.\");\n if (server.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"Capturing must return a new immutable handle.\");\n }\n Console.WriteLine(\"The original handle is still uncaptured.\");\n\n // Keep this private daemon alive after its only owned session is disposed.\n TmuxCommandResult result = await server.ExecuteCommandAsync(\n [\"set-option\", \"-s\", \"exit-empty\", \"off\"], token);\n if (result.ExitCode != 0)\n {\n throw new InvalidOperationException(\"Could not keep the empty server alive.\");\n }\n}\nServer empty = await server.CaptureSnapshotAsync(SnapshotDepth.Sessions, token);\nif (!empty.Sessions.IsCaptured || empty.Sessions.Count != 0)\n{\n throw new InvalidOperationException(\"An empty captured relation differs from an uncaptured relation.\");\n}\nConsole.WriteLine(\"Captured sessions can be empty.\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux/Snapshots/CapturedRelation.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedRelation.IsCaptured","product":"core","slug":"libtmux-capturedrelation-iscaptured"},{"id":"LibTmux.CapturedRelation.Count","name":"Count","kind":"property","modifiers":[],"parent":"LibTmux.CapturedRelation","signatures":[],"type":"int","doc":{"summary":""},"source":{"file":"src/LibTmux/Snapshots/CapturedRelation.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedRelation.Count","product":"core","slug":"libtmux-capturedrelation-count"},{"id":"LibTmux.CapturedRelation.GetEnumerator","name":"GetEnumerator","kind":"method","modifiers":[],"parent":"LibTmux.CapturedRelation","signatures":[{"params":[],"returns":"IEnumerator"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Snapshots/CapturedRelation.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedRelation.GetEnumerator","product":"core","slug":"libtmux-capturedrelation-getenumerator"},{"id":"LibTmux.CapturedRelation.OrEmpty","name":"OrEmpty","kind":"method","modifiers":[],"parent":"LibTmux.CapturedRelation","signatures":[{"params":[],"returns":"IReadOnlyList","returnsDoc":"The children, empty when the relation was never captured."}],"doc":{"summary":"Returns the captured children, or an empty list when unread."},"source":{"file":"src/LibTmux/Snapshots/CapturedRelation.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedRelation.OrEmpty","product":"core","slug":"libtmux-capturedrelation-orempty"},{"id":"LibTmux.CapturedValue","name":"CapturedValue","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Holds the one child a snapshot captured for a relation, if it read it.","body":"A relation that holds at most one child says so in its type. An uncaptured\nvalue is not an absent one: reading when the snapshot\nnever looked throws rather than\nanswering null, so a caller cannot mistake unread state for absent state."},"source":{"file":"src/LibTmux/Snapshots/CapturedValue.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedValue","product":"core","slug":"libtmux-capturedvalue"},{"id":"LibTmux.CapturedValue.Relation","name":"Relation","kind":"property","modifiers":[],"parent":"LibTmux.CapturedValue","signatures":[],"type":"string","doc":{"summary":"Gets the relation name this instance carries."},"source":{"file":"src/LibTmux/Snapshots/CapturedValue.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedValue.Relation","product":"core","slug":"libtmux-capturedvalue-relation"},{"id":"LibTmux.CapturedValue.CapturedDepth","name":"CapturedDepth","kind":"property","modifiers":[],"parent":"LibTmux.CapturedValue","signatures":[],"type":"SnapshotDepth","doc":{"summary":"Gets the depth the owning snapshot reached."},"source":{"file":"src/LibTmux/Snapshots/CapturedValue.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedValue.CapturedDepth","product":"core","slug":"libtmux-capturedvalue-captureddepth"},{"id":"LibTmux.CapturedValue.IsCaptured","name":"IsCaptured","kind":"property","modifiers":[],"parent":"LibTmux.CapturedValue","signatures":[],"type":"bool","doc":{"summary":"Gets whether the snapshot read this relation.","examples":[{"lang":"console","intro":"Capture a new immutable hierarchy, check optional pane state, and distinguish an empty captured relation from one that has not been read. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/SnapshotAccess.cs","code":"using System;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-snapshotaccess-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nServer server;\nawait using (OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token))\n{\n server = await Server.ConnectAsync(options, token);\n if (server.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"Connecting must not capture the hierarchy.\");\n }\n Console.WriteLine(\"Sessions have not been captured.\");\n\n Server captured = await server.CaptureSnapshotAsync(SnapshotDepth.Panes, token);\n if (!captured.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"The requested sessions were not captured.\");\n }\n Session capturedSession = captured.Sessions.Single();\n if (!capturedSession.ActivePane.IsCaptured)\n {\n throw new InvalidOperationException(\"The active pane was not captured.\");\n }\n Pane pane = capturedSession.ActivePane.Value;\n if (pane.CurrentPath is null || pane.CurrentCommand is null)\n {\n throw new InvalidOperationException(\"The running pane should report its path and command.\");\n }\n Console.WriteLine(\"The captured active pane has a path and command.\");\n if (server.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"Capturing must return a new immutable handle.\");\n }\n Console.WriteLine(\"The original handle is still uncaptured.\");\n\n // Keep this private daemon alive after its only owned session is disposed.\n TmuxCommandResult result = await server.ExecuteCommandAsync(\n [\"set-option\", \"-s\", \"exit-empty\", \"off\"], token);\n if (result.ExitCode != 0)\n {\n throw new InvalidOperationException(\"Could not keep the empty server alive.\");\n }\n}\nServer empty = await server.CaptureSnapshotAsync(SnapshotDepth.Sessions, token);\nif (!empty.Sessions.IsCaptured || empty.Sessions.Count != 0)\n{\n throw new InvalidOperationException(\"An empty captured relation differs from an uncaptured relation.\");\n}\nConsole.WriteLine(\"Captured sessions can be empty.\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux/Snapshots/CapturedValue.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedValue.IsCaptured","product":"core","slug":"libtmux-capturedvalue-iscaptured"},{"id":"LibTmux.CapturedValue.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.CapturedValue","signatures":[],"type":"T","doc":{"summary":"Gets the captured child.","examples":[{"lang":"console","intro":"Capture a new immutable hierarchy, check optional pane state, and distinguish an empty captured relation from one that has not been read. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/SnapshotAccess.cs","code":"using System;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-snapshotaccess-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nServer server;\nawait using (OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token))\n{\n server = await Server.ConnectAsync(options, token);\n if (server.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"Connecting must not capture the hierarchy.\");\n }\n Console.WriteLine(\"Sessions have not been captured.\");\n\n Server captured = await server.CaptureSnapshotAsync(SnapshotDepth.Panes, token);\n if (!captured.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"The requested sessions were not captured.\");\n }\n Session capturedSession = captured.Sessions.Single();\n if (!capturedSession.ActivePane.IsCaptured)\n {\n throw new InvalidOperationException(\"The active pane was not captured.\");\n }\n Pane pane = capturedSession.ActivePane.Value;\n if (pane.CurrentPath is null || pane.CurrentCommand is null)\n {\n throw new InvalidOperationException(\"The running pane should report its path and command.\");\n }\n Console.WriteLine(\"The captured active pane has a path and command.\");\n if (server.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"Capturing must return a new immutable handle.\");\n }\n Console.WriteLine(\"The original handle is still uncaptured.\");\n\n // Keep this private daemon alive after its only owned session is disposed.\n TmuxCommandResult result = await server.ExecuteCommandAsync(\n [\"set-option\", \"-s\", \"exit-empty\", \"off\"], token);\n if (result.ExitCode != 0)\n {\n throw new InvalidOperationException(\"Could not keep the empty server alive.\");\n }\n}\nServer empty = await server.CaptureSnapshotAsync(SnapshotDepth.Sessions, token);\nif (!empty.Sessions.IsCaptured || empty.Sessions.Count != 0)\n{\n throw new InvalidOperationException(\"An empty captured relation differs from an uncaptured relation.\");\n}\nConsole.WriteLine(\"Captured sessions can be empty.\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux/Snapshots/CapturedValue.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedValue.Value","product":"core","slug":"libtmux-capturedvalue-value"},{"id":"LibTmux.CapturedValue.OrNull","name":"OrNull","kind":"method","modifiers":[],"parent":"LibTmux.CapturedValue","signatures":[{"params":[],"returns":"T?","returnsDoc":"The child, or null."}],"doc":{"summary":"Gets the captured child, or null when the snapshot never read it."},"source":{"file":"src/LibTmux/Snapshots/CapturedValue.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedValue.OrNull","product":"core","slug":"libtmux-capturedvalue-ornull"},{"id":"LibTmux.CapturedValue.TryGetValue","name":"TryGetValue","kind":"method","modifiers":[],"parent":"LibTmux.CapturedValue","signatures":[{"params":[{"name":"value","type":"T?","doc":"The child when the snapshot read it."}],"returns":"bool","returnsDoc":" when the snapshot read it."}],"doc":{"summary":"Tries to read the captured child."},"source":{"file":"src/LibTmux/Snapshots/CapturedValue.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedValue.TryGetValue","product":"core","slug":"libtmux-capturedvalue-trygetvalue"},{"id":"LibTmux.ServerMirrorView","name":"ServerMirrorView","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record ServerMirrorView(long Epoch, Server Server, IReadOnlyList Clients);","params":[{"name":"Epoch","type":"long","doc":"How many views the mirror published before this one."},{"name":"Server","type":"Server","doc":"The server as the rebuild captured it, down to its panes."},{"name":"Clients","type":"IReadOnlyList","doc":"The clients attached when it was captured."}]}],"doc":{"summary":"One state of a mirrored server."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirrorView","product":"core","slug":"libtmux-servermirrorview"},{"id":"LibTmux.ServerMirrorView.Epoch","name":"Epoch","kind":"property","parent":"LibTmux.ServerMirrorView","type":"long","modifiers":[],"signatures":[],"doc":{"summary":"How many views the mirror published before this one."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirrorView.Epoch","product":"core","slug":"libtmux-servermirrorview-epoch"},{"id":"LibTmux.ServerMirrorView.Server","name":"Server","kind":"property","parent":"LibTmux.ServerMirrorView","type":"Server","modifiers":[],"signatures":[],"doc":{"summary":"The server as the rebuild captured it, down to its panes."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirrorView.Server","product":"core","slug":"libtmux-servermirrorview-server"},{"id":"LibTmux.ServerMirrorView.Clients","name":"Clients","kind":"property","parent":"LibTmux.ServerMirrorView","type":"IReadOnlyList","modifiers":[],"signatures":[],"doc":{"summary":"The clients attached when it was captured."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirrorView.Clients","product":"core","slug":"libtmux-servermirrorview-clients"},{"id":"LibTmux.ServerMirror","name":"ServerMirror","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A live copy of one tmux server's sessions, windows, panes and clients, rebuilt whenever tmux announces a change.","body":"A control client attached to an anchor session hears what tmux announces. Any\nannouncement, or the loss of one, starts a fresh capture, never a patch of the\nlast one, since an announcement says that something changed, not everything\nthat did. Announcements that arrive during a capture collapse into one more,\nand a capture that finds nothing different publishes nothing; activity\ntimes, cursor positions and history sizes, which change with every\nkeystroke, do not count as different. Each published view carries an epoch\none above the last, counted by this mirror.\n\ntmux announces only some changes to a client: not a pane's running command or\nworking directory, and not a layout change in a session the client is not\nattached to. Give a refresh interval to see those within that long.\n\nWhen the control client ends, the mirror finds the anchor session again by its\nID and attaches through it; if the session has gone, the mirror ends with\n, and if the server has, with the\nfailure that said so. The client asks tmux for notifications only, not pane\noutput, and does not affect window sizes."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirror","product":"core","slug":"libtmux-servermirror"},{"id":"LibTmux.ServerMirror.Current","name":"Current","kind":"property","modifiers":[],"parent":"LibTmux.ServerMirror","signatures":[],"type":"ServerMirrorView","doc":{"summary":"Gets the latest published view."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":104,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirror.Current","product":"core","slug":"libtmux-servermirror-current"},{"id":"LibTmux.ServerMirror.IsEnded","name":"IsEnded","kind":"property","modifiers":[],"parent":"LibTmux.ServerMirror","signatures":[],"type":"bool","doc":{"summary":"Gets whether the mirror has stopped publishing, because it was disposed or its anchor has gone."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":116,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirror.IsEnded","product":"core","slug":"libtmux-servermirror-isended"},{"id":"LibTmux.ServerMirror.Failure","name":"Failure","kind":"property","modifiers":[],"parent":"LibTmux.ServerMirror","signatures":[],"type":"Exception?","doc":{"summary":"Gets why the mirror ended, when something other than disposal ended it."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":128,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirror.Failure","product":"core","slug":"libtmux-servermirror-failure"},{"id":"LibTmux.ServerMirror.OpenAsync","name":"OpenAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.ServerMirror","signatures":[{"params":[{"name":"anchor","type":"Session","doc":"The session the mirror's control client attaches to."},{"name":"refreshEvery","type":"TimeSpan","default":"default","doc":"How long a quiet mirror waits before capturing anyway, so a change tmux\ndoes not announce is seen within that long; zero never does."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels attaching and the first capture."}],"returns":"Task","returnsDoc":"A mirror whose first view is already captured.","raises":[{"type":"ArgumentOutOfRangeException","doc":"The refresh interval is negative."},{"type":"IncompleteSnapshotException","doc":"The session was not read through a server."}]}],"doc":{"summary":"Mirrors the server an anchor session belongs to."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":149,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirror.OpenAsync","product":"core","slug":"libtmux-servermirror-openasync"},{"id":"LibTmux.ServerMirror.WaitForNewerAsync","name":"WaitForNewerAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.ServerMirror","signatures":[{"params":[{"name":"epoch","type":"long","doc":"The epoch of the view the caller already has."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops waiting."}],"returns":"Task","returnsDoc":"The newer view, or null once the mirror has ended without one."}],"doc":{"summary":"Waits for a view newer than an epoch."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":175,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirror.WaitForNewerAsync","product":"core","slug":"libtmux-servermirror-waitfornewerasync"},{"id":"LibTmux.ServerMirror.WaitUntilAsync","name":"WaitUntilAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.ServerMirror","signatures":[{"params":[{"name":"condition","type":"Func","doc":"Judges each view."},{"name":"timeout","type":"TimeSpan","doc":"How long to wait, or ."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops waiting."}],"returns":"Task","returnsDoc":"The first view the condition accepts.","raises":[{"type":"TmuxWaitTimeoutException","doc":"No view satisfied the condition in time."},{"type":"InvalidOperationException","doc":"The mirror ended first; its failure, if any, is the inner exception."}]}],"doc":{"summary":"Waits until a view satisfies a condition, testing the current view first."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":206,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirror.WaitUntilAsync","product":"core","slug":"libtmux-servermirror-waituntilasync"},{"id":"LibTmux.ServerMirror.WatchAsync","name":"WatchAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.ServerMirror","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops the stream."}],"returns":"IAsyncEnumerable","returnsDoc":"Views in epoch order, ending when the mirror ends; a failure that ended it is thrown."}],"doc":{"summary":"Streams the current view and then each newer one, skipping any published while the reader was busy."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":239,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirror.WatchAsync","product":"core","slug":"libtmux-servermirror-watchasync"},{"id":"LibTmux.ServerMirror.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.ServerMirror","signatures":[{"params":[],"returns":"ValueTask","returnsDoc":"A task that completes when the mirror has stopped."}],"doc":{"summary":"Stops listening and detaches the control client; the last view stays readable."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":257,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirror.DisposeAsync","product":"core","slug":"libtmux-servermirror-disposeasync"},{"id":"LibTmux.SessionWindowEdge","name":"SessionWindowEdge","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Places one window at one index inside one session.","body":"A window can occupy several indexes in the same session or be linked into\nseveral sessions. Each indexed placement has its own edge. The ordinal\nstays null until a snapshot orders a session's edges."},"source":{"file":"src/LibTmux/Snapshots/SessionWindowEdge.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionWindowEdge","product":"core","slug":"libtmux-sessionwindowedge"},{"id":"LibTmux.SessionWindowEdge.SessionId","name":"SessionId","kind":"property","modifiers":[],"parent":"LibTmux.SessionWindowEdge","signatures":[],"type":"SessionId","doc":{"summary":"Gets the session the window is linked into."},"source":{"file":"src/LibTmux/Snapshots/SessionWindowEdge.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionWindowEdge.SessionId","product":"core","slug":"libtmux-sessionwindowedge-sessionid"},{"id":"LibTmux.SessionWindowEdge.WindowId","name":"WindowId","kind":"property","modifiers":[],"parent":"LibTmux.SessionWindowEdge","signatures":[],"type":"WindowId","doc":{"summary":"Gets the linked window."},"source":{"file":"src/LibTmux/Snapshots/SessionWindowEdge.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionWindowEdge.WindowId","product":"core","slug":"libtmux-sessionwindowedge-windowid"},{"id":"LibTmux.SessionWindowEdge.WindowIndex","name":"WindowIndex","kind":"property","modifiers":[],"parent":"LibTmux.SessionWindowEdge","signatures":[],"type":"int","doc":{"summary":"Gets the tmux window index inside the session."},"source":{"file":"src/LibTmux/Snapshots/SessionWindowEdge.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionWindowEdge.WindowIndex","product":"core","slug":"libtmux-sessionwindowedge-windowindex"},{"id":"LibTmux.SessionWindowEdge.Ordinal","name":"Ordinal","kind":"property","modifiers":[],"parent":"LibTmux.SessionWindowEdge","signatures":[],"type":"int?","doc":{"summary":"Gets the edge's position in the session's window order."},"source":{"file":"src/LibTmux/Snapshots/SessionWindowEdge.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionWindowEdge.Ordinal","product":"core","slug":"libtmux-sessionwindowedge-ordinal"},{"id":"LibTmux.SessionWindowEdge.Key","name":"Key","kind":"property","modifiers":[],"parent":"LibTmux.SessionWindowEdge","signatures":[],"type":"WindowEntityKey","doc":{"summary":"Gets the session, window and index this edge joins."},"source":{"file":"src/LibTmux/Snapshots/SessionWindowEdge.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionWindowEdge.Key","product":"core","slug":"libtmux-sessionwindowedge-key"},{"id":"LibTmux.SnapshotDepth","name":"SnapshotDepth","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names how far down the tmux hierarchy a snapshot captured.","body":"Depth is recorded rather than inferred so a caller can tell an empty level\napart from a level that was never read."},"source":{"file":"src/LibTmux/Snapshots/SnapshotDepth.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotDepth","product":"core","slug":"libtmux-snapshotdepth"},{"id":"LibTmux.SnapshotDepth.Server","name":"Server","kind":"constant","modifiers":[],"parent":"LibTmux.SnapshotDepth","signatures":[],"doc":{"summary":"Only the server itself was captured."},"source":{"file":"src/LibTmux/Snapshots/SnapshotDepth.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotDepth.Server","product":"core","slug":"libtmux-snapshotdepth-server"},{"id":"LibTmux.SnapshotDepth.Sessions","name":"Sessions","kind":"constant","modifiers":[],"parent":"LibTmux.SnapshotDepth","signatures":[],"doc":{"summary":"Sessions were captured, but not their windows."},"source":{"file":"src/LibTmux/Snapshots/SnapshotDepth.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotDepth.Sessions","product":"core","slug":"libtmux-snapshotdepth-sessions"},{"id":"LibTmux.SnapshotDepth.Windows","name":"Windows","kind":"constant","modifiers":[],"parent":"LibTmux.SnapshotDepth","signatures":[],"doc":{"summary":"Sessions and their windows were captured."},"source":{"file":"src/LibTmux/Snapshots/SnapshotDepth.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotDepth.Windows","product":"core","slug":"libtmux-snapshotdepth-windows"},{"id":"LibTmux.SnapshotDepth.Panes","name":"Panes","kind":"constant","modifiers":[],"parent":"LibTmux.SnapshotDepth","signatures":[],"doc":{"summary":"Sessions, windows, and their panes were captured."},"source":{"file":"src/LibTmux/Snapshots/SnapshotDepth.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotDepth.Panes","product":"core","slug":"libtmux-snapshotdepth-panes"},{"id":"LibTmux.SnapshotMetadata","name":"SnapshotMetadata","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes the interval and scope of one successful hierarchy acquisition.","body":"Separate tmux reads do not form a transaction. The recorded interval includes\ndiscovery, initialization, reads, validation, and graph assembly."},"source":{"file":"src/LibTmux/Snapshots/SnapshotMetadata.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotMetadata","product":"core","slug":"libtmux-snapshotmetadata"},{"id":"LibTmux.SnapshotMetadata.Depth","name":"Depth","kind":"property","modifiers":[],"parent":"LibTmux.SnapshotMetadata","signatures":[],"type":"SnapshotDepth","doc":{"summary":"Gets the requested depth that was successfully acquired."},"source":{"file":"src/LibTmux/Snapshots/SnapshotMetadata.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotMetadata.Depth","product":"core","slug":"libtmux-snapshotmetadata-depth"},{"id":"LibTmux.SnapshotMetadata.Generation","name":"Generation","kind":"property","modifiers":[],"parent":"LibTmux.SnapshotMetadata","signatures":[],"type":"ServerGeneration","doc":{"summary":"Gets the daemon generation that answered the acquisition."},"source":{"file":"src/LibTmux/Snapshots/SnapshotMetadata.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotMetadata.Generation","product":"core","slug":"libtmux-snapshotmetadata-generation"},{"id":"LibTmux.SnapshotMetadata.StartedAtUtc","name":"StartedAtUtc","kind":"property","modifiers":[],"parent":"LibTmux.SnapshotMetadata","signatures":[],"type":"DateTimeOffset","doc":{"summary":"Gets the UTC clock reading before acquisition began."},"source":{"file":"src/LibTmux/Snapshots/SnapshotMetadata.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotMetadata.StartedAtUtc","product":"core","slug":"libtmux-snapshotmetadata-startedatutc"},{"id":"LibTmux.SnapshotMetadata.CompletedAtUtc","name":"CompletedAtUtc","kind":"property","modifiers":[],"parent":"LibTmux.SnapshotMetadata","signatures":[],"type":"DateTimeOffset","doc":{"summary":"Gets the UTC clock reading after graph assembly completed.","body":"Clock adjustment can place this before .\nUse for the duration."},"source":{"file":"src/LibTmux/Snapshots/SnapshotMetadata.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotMetadata.CompletedAtUtc","product":"core","slug":"libtmux-snapshotmetadata-completedatutc"},{"id":"LibTmux.SnapshotMetadata.Elapsed","name":"Elapsed","kind":"property","modifiers":[],"parent":"LibTmux.SnapshotMetadata","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the acquisition duration measured with a monotonic clock."},"source":{"file":"src/LibTmux/Snapshots/SnapshotMetadata.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotMetadata.Elapsed","product":"core","slug":"libtmux-snapshotmetadata-elapsed"},{"id":"LibTmux.WindowEntityKey","name":"WindowEntityKey","kind":"struct","modifiers":["readonly"],"signatures":[{"raw":"public readonly record struct WindowEntityKey(SessionId SessionId, WindowId WindowId, int WindowIndex)","params":[{"name":"SessionId","type":"SessionId","doc":"The session the window is linked into."},{"name":"WindowId","type":"WindowId","doc":"The linked window."},{"name":"WindowIndex","type":"int","doc":"The index of this placement in the session."}]}],"doc":{"summary":"Identifies one window linked into one session.","body":"tmux can link a window at several indexes in the same session. This key\nnames one placement within a captured server generation; window equality\ncontinues to compare the generation and window identifier."},"source":{"file":"src/LibTmux/Snapshots/WindowEntityKey.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowEntityKey","product":"core","slug":"libtmux-windowentitykey"},{"id":"LibTmux.WindowEntityKey.ToString","name":"ToString","kind":"method","modifiers":[],"parent":"LibTmux.WindowEntityKey","signatures":[{"params":[],"returns":"string"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Snapshots/WindowEntityKey.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowEntityKey.ToString","product":"core","slug":"libtmux-windowentitykey-tostring"},{"id":"LibTmux.WindowEntityKey.SessionId","name":"SessionId","kind":"property","parent":"LibTmux.WindowEntityKey","type":"SessionId","modifiers":[],"signatures":[],"doc":{"summary":"The session the window is linked into."},"source":{"file":"src/LibTmux/Snapshots/WindowEntityKey.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowEntityKey.SessionId","product":"core","slug":"libtmux-windowentitykey-sessionid"},{"id":"LibTmux.WindowEntityKey.WindowId","name":"WindowId","kind":"property","parent":"LibTmux.WindowEntityKey","type":"WindowId","modifiers":[],"signatures":[],"doc":{"summary":"The linked window."},"source":{"file":"src/LibTmux/Snapshots/WindowEntityKey.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowEntityKey.WindowId","product":"core","slug":"libtmux-windowentitykey-windowid"},{"id":"LibTmux.WindowEntityKey.WindowIndex","name":"WindowIndex","kind":"property","parent":"LibTmux.WindowEntityKey","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"The index of this placement in the session."},"source":{"file":"src/LibTmux/Snapshots/WindowEntityKey.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowEntityKey.WindowIndex","product":"core","slug":"libtmux-windowentitykey-windowindex"},{"id":"LibTmux.PaneOutputPosition","name":"PaneOutputPosition","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Where a read of a pane's output finished, so the next read returns only what is new.","body":"Opaque, and good only for the pane that issued it while it runs the same\nprogram. It survives scrolling, history trimming and resizing: a later read\nfinds its place again or says it could not."},"source":{"file":"src/LibTmux/Streaming/PaneOutputSince.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneOutputPosition","product":"core","slug":"libtmux-paneoutputposition"},{"id":"LibTmux.PaneOutputSince","name":"PaneOutputSince","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record PaneOutputSince(IReadOnlyList Lines, PaneOutputPosition Position, bool LinesMissed);","params":[{"name":"Lines","type":"IReadOnlyList","doc":"The new lines, oldest first; none on a read that starts without a position."},{"name":"Position","type":"PaneOutputPosition","doc":"Where this read finished; pass it to the next read."},{"name":"LinesMissed","type":"bool","doc":"Whether output may be missing: scrollback dropped lines before this read\nsaw them, or the position could not be found again. \nis then what the pane shows rather than exactly what is new."}]}],"doc":{"summary":"What a pane printed since a position, and where this read finished."},"source":{"file":"src/LibTmux/Streaming/PaneOutputSince.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneOutputSince","product":"core","slug":"libtmux-paneoutputsince"},{"id":"LibTmux.PaneOutputSince.Lines","name":"Lines","kind":"property","parent":"LibTmux.PaneOutputSince","type":"IReadOnlyList","modifiers":[],"signatures":[],"doc":{"summary":"The new lines, oldest first; none on a read that starts without a position."},"source":{"file":"src/LibTmux/Streaming/PaneOutputSince.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneOutputSince.Lines","product":"core","slug":"libtmux-paneoutputsince-lines"},{"id":"LibTmux.PaneOutputSince.Position","name":"Position","kind":"property","parent":"LibTmux.PaneOutputSince","type":"PaneOutputPosition","modifiers":[],"signatures":[],"doc":{"summary":"Where this read finished; pass it to the next read."},"source":{"file":"src/LibTmux/Streaming/PaneOutputSince.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneOutputSince.Position","product":"core","slug":"libtmux-paneoutputsince-position"},{"id":"LibTmux.PaneOutputSince.LinesMissed","name":"LinesMissed","kind":"property","parent":"LibTmux.PaneOutputSince","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether output may be missing: scrollback dropped lines before this read\nsaw them, or the position could not be found again. \nis then what the pane shows rather than exactly what is new."},"source":{"file":"src/LibTmux/Streaming/PaneOutputSince.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneOutputSince.LinesMissed","product":"core","slug":"libtmux-paneoutputsince-linesmissed"},{"id":"LibTmux.PaneRunResult","name":"PaneRunResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record PaneRunResult(\n int? ExitStatus,\n bool TimedOut,\n IReadOnlyList Output,\n TimeSpan Elapsed,\n bool Started,\n bool LinesMissed)","params":[{"name":"ExitStatus","type":"int?","doc":"The command's exit status, or null when it had not finished."},{"name":"TimedOut","type":"bool","doc":"Whether the time allowed ran out first; the command may still be running."},{"name":"Output","type":"IReadOnlyList","doc":"Bounded rendered lines from the command, not byte-exact stdout or stderr."},{"name":"Elapsed","type":"TimeSpan","doc":"How long the command ran, or how long it was waited for."},{"name":"Started","type":"bool","doc":"Whether the wrapper's begin marker was observed; false does not prove nonexecution."},{"name":"LinesMissed","type":"bool","doc":"Whether scrollback dropped output before it was read; \nthen holds only what the pane still showed."}]}],"doc":{"summary":"Describes how a command run in a pane ended."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult","product":"core","slug":"libtmux-panerunresult"},{"id":"LibTmux.PaneRunResult.PaneId","name":"PaneId","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunResult","signatures":[],"type":"PaneId","doc":{"summary":"Gets the pane that received the command."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.PaneId","product":"core","slug":"libtmux-panerunresult-paneid"},{"id":"LibTmux.PaneRunResult.EffectiveTimeout","name":"EffectiveTimeout","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunResult","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the completion-wait budget applied after dispatch."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.EffectiveTimeout","product":"core","slug":"libtmux-panerunresult-effectivetimeout"},{"id":"LibTmux.PaneRunResult.AnchorLost","name":"AnchorLost","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether the output cursor's previous grid anchor was lost."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.AnchorLost","product":"core","slug":"libtmux-panerunresult-anchorlost"},{"id":"LibTmux.PaneRunResult.OmittedOutputLines","name":"OmittedOutputLines","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunResult","signatures":[],"type":"int","doc":{"summary":"Gets the number of whole rendered lines omitted by output limits."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.OmittedOutputLines","product":"core","slug":"libtmux-panerunresult-omittedoutputlines"},{"id":"LibTmux.PaneRunResult.OmittedOutputBytes","name":"OmittedOutputBytes","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunResult","signatures":[],"type":"int","doc":{"summary":"Gets the number of UTF-8 output bytes omitted by output limits."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.OmittedOutputBytes","product":"core","slug":"libtmux-panerunresult-omittedoutputbytes"},{"id":"LibTmux.PaneRunResult.Succeeded","name":"Succeeded","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether the command finished with exit status 0."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.Succeeded","product":"core","slug":"libtmux-panerunresult-succeeded"},{"id":"LibTmux.PaneRunResult.PaneExited","name":"PaneExited","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane's program exited before the command reported its status.","body":"The run ends within five seconds of the exit, sooner early in the run,\nrather than at its timeout.\n is then null, and holds\nwhat the pane still showed, including any line tmux writes for a dead\npane, or nothing when tmux closed the pane."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.PaneExited","product":"core","slug":"libtmux-panerunresult-paneexited"},{"id":"LibTmux.PaneRunResult.ExitStatus","name":"ExitStatus","kind":"property","parent":"LibTmux.PaneRunResult","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"The command's exit status, or null when it had not finished."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.ExitStatus","product":"core","slug":"libtmux-panerunresult-exitstatus"},{"id":"LibTmux.PaneRunResult.TimedOut","name":"TimedOut","kind":"property","parent":"LibTmux.PaneRunResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the time allowed ran out first; the command may still be running."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.TimedOut","product":"core","slug":"libtmux-panerunresult-timedout"},{"id":"LibTmux.PaneRunResult.Output","name":"Output","kind":"property","parent":"LibTmux.PaneRunResult","type":"IReadOnlyList","modifiers":[],"signatures":[],"doc":{"summary":"Bounded rendered lines from the command, not byte-exact stdout or stderr."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.Output","product":"core","slug":"libtmux-panerunresult-output"},{"id":"LibTmux.PaneRunResult.Elapsed","name":"Elapsed","kind":"property","parent":"LibTmux.PaneRunResult","type":"TimeSpan","modifiers":[],"signatures":[],"doc":{"summary":"How long the command ran, or how long it was waited for."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.Elapsed","product":"core","slug":"libtmux-panerunresult-elapsed"},{"id":"LibTmux.PaneRunResult.Started","name":"Started","kind":"property","parent":"LibTmux.PaneRunResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the wrapper's begin marker was observed; false does not prove nonexecution."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.Started","product":"core","slug":"libtmux-panerunresult-started"},{"id":"LibTmux.PaneRunResult.LinesMissed","name":"LinesMissed","kind":"property","parent":"LibTmux.PaneRunResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether scrollback dropped output before it was read; \nthen holds only what the pane still showed."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.LinesMissed","product":"core","slug":"libtmux-panerunresult-linesmissed"},{"id":"LibTmux.PaneWaitOutcome","name":"PaneWaitOutcome","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names how a wait on a pane's rendered output ended."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitOutcome","product":"core","slug":"libtmux-panewaitoutcome"},{"id":"LibTmux.PaneWaitOutcome.Matched","name":"Matched","kind":"constant","modifiers":[],"parent":"LibTmux.PaneWaitOutcome","signatures":[],"doc":{"summary":"New output matched a pattern."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitOutcome.Matched","product":"core","slug":"libtmux-panewaitoutcome-matched"},{"id":"LibTmux.PaneWaitOutcome.PresentAtEntry","name":"PresentAtEntry","kind":"constant","modifiers":[],"parent":"LibTmux.PaneWaitOutcome","signatures":[],"doc":{"summary":"A wanted pattern already matched when the wait began."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitOutcome.PresentAtEntry","product":"core","slug":"libtmux-panewaitoutcome-presentatentry"},{"id":"LibTmux.PaneWaitOutcome.AnyOutput","name":"AnyOutput","kind":"constant","modifiers":[],"parent":"LibTmux.PaneWaitOutcome","signatures":[],"doc":{"summary":"The pane printed something, and no wanted pattern was given."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitOutcome.AnyOutput","product":"core","slug":"libtmux-panewaitoutcome-anyoutput"},{"id":"LibTmux.PaneWaitOutcome.Stopped","name":"Stopped","kind":"constant","modifiers":[],"parent":"LibTmux.PaneWaitOutcome","signatures":[],"doc":{"summary":"A stop pattern matched, including at entry."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitOutcome.Stopped","product":"core","slug":"libtmux-panewaitoutcome-stopped"},{"id":"LibTmux.PaneWaitOutcome.TimedOut","name":"TimedOut","kind":"constant","modifiers":[],"parent":"LibTmux.PaneWaitOutcome","signatures":[],"doc":{"summary":"The complete time budget ran out without a match."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitOutcome.TimedOut","product":"core","slug":"libtmux-panewaitoutcome-timedout"},{"id":"LibTmux.PaneWaitOutcome.PaneExited","name":"PaneExited","kind":"constant","modifiers":[],"parent":"LibTmux.PaneWaitOutcome","signatures":[],"doc":{"summary":"The pane's original program exited or its pane closed."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitOutcome.PaneExited","product":"core","slug":"libtmux-panewaitoutcome-paneexited"},{"id":"LibTmux.PaneWaitOutcome.AlternateScreen","name":"AlternateScreen","kind":"constant","modifiers":[],"parent":"LibTmux.PaneWaitOutcome","signatures":[],"doc":{"summary":"An observation source could not continue across an alternate screen."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitOutcome.AlternateScreen","product":"core","slug":"libtmux-panewaitoutcome-alternatescreen"},{"id":"LibTmux.PaneWaitResult","name":"PaneWaitResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record PaneWaitResult(PaneWaitOutcome Outcome, string? Pattern, TimeSpan Elapsed)","params":[{"name":"Outcome","type":"PaneWaitOutcome","doc":"How the wait ended."},{"name":"Pattern","type":"string?","doc":"The original pattern spelling that matched, when one did."},{"name":"Elapsed","type":"TimeSpan","doc":"How long the wait ran."}]}],"doc":{"summary":"Describes how a wait on a pane's rendered output ended."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult","product":"core","slug":"libtmux-panewaitresult"},{"id":"LibTmux.PaneWaitResult.Found","name":"Found","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether the awaited text appeared, before or during the wait."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":63,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.Found","product":"core","slug":"libtmux-panewaitresult-found"},{"id":"LibTmux.PaneWaitResult.PaneId","name":"PaneId","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"PaneId","doc":{"summary":"Gets the watched pane's typed ID."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.PaneId","product":"core","slug":"libtmux-panewaitresult-paneid"},{"id":"LibTmux.PaneWaitResult.Tail","name":"Tail","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets an owned, bounded tail of rendered pane lines."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":69,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.Tail","product":"core","slug":"libtmux-panewaitresult-tail"},{"id":"LibTmux.PaneWaitResult.EffectiveTimeout","name":"EffectiveTimeout","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the requested time budget applied to this wait."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":72,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.EffectiveTimeout","product":"core","slug":"libtmux-panewaitresult-effectivetimeout"},{"id":"LibTmux.PaneWaitResult.EventsDropped","name":"EventsDropped","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"long","doc":{"summary":"Gets session events dropped during this wait."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.EventsDropped","product":"core","slug":"libtmux-panewaitresult-eventsdropped"},{"id":"LibTmux.PaneWaitResult.PollingFallback","name":"PollingFallback","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether this wait used explicitly permitted polling."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":78,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.PollingFallback","product":"core","slug":"libtmux-panewaitresult-pollingfallback"},{"id":"LibTmux.PaneWaitResult.PollingInterval","name":"PollingInterval","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"TimeSpan?","doc":{"summary":"Gets the timed-read interval when fallback was used."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":81,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.PollingInterval","product":"core","slug":"libtmux-panewaitresult-pollinginterval"},{"id":"LibTmux.PaneWaitResult.LinesMissed","name":"LinesMissed","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether scrollback or event loss may have hidden lines."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":84,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.LinesMissed","product":"core","slug":"libtmux-panewaitresult-linesmissed"},{"id":"LibTmux.PaneWaitResult.AnchorLost","name":"AnchorLost","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether the previous grid anchor was lost."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.AnchorLost","product":"core","slug":"libtmux-panewaitresult-anchorlost"},{"id":"LibTmux.PaneWaitResult.OmittedTailLines","name":"OmittedTailLines","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"int","doc":{"summary":"Gets how many complete tail lines were omitted by limits."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":90,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.OmittedTailLines","product":"core","slug":"libtmux-panewaitresult-omittedtaillines"},{"id":"LibTmux.PaneWaitResult.OmittedTailBytes","name":"OmittedTailBytes","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"int","doc":{"summary":"Gets how many UTF-8 tail bytes were omitted by limits."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":93,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.OmittedTailBytes","product":"core","slug":"libtmux-panewaitresult-omittedtailbytes"},{"id":"LibTmux.PaneWaitResult.Outcome","name":"Outcome","kind":"property","parent":"LibTmux.PaneWaitResult","type":"PaneWaitOutcome","modifiers":[],"signatures":[],"doc":{"summary":"How the wait ended."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.Outcome","product":"core","slug":"libtmux-panewaitresult-outcome"},{"id":"LibTmux.PaneWaitResult.Pattern","name":"Pattern","kind":"property","parent":"LibTmux.PaneWaitResult","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The original pattern spelling that matched, when one did."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.Pattern","product":"core","slug":"libtmux-panewaitresult-pattern"},{"id":"LibTmux.PaneWaitResult.Elapsed","name":"Elapsed","kind":"property","parent":"LibTmux.PaneWaitResult","type":"TimeSpan","modifiers":[],"signatures":[],"doc":{"summary":"How long the wait ran."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.Elapsed","product":"core","slug":"libtmux-panewaitresult-elapsed"},{"id":"LibTmux.TmuxColorMode","name":"TmuxColorMode","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Defines the tmux client color mode."},"source":{"file":"src/LibTmux/TmuxColorMode.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxColorMode","product":"core","slug":"libtmux-tmuxcolormode"},{"id":"LibTmux.TmuxColorMode.Default","name":"Default","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxColorMode","signatures":[],"doc":{"summary":"Uses tmux's default color behavior."},"source":{"file":"src/LibTmux/TmuxColorMode.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxColorMode.Default","product":"core","slug":"libtmux-tmuxcolormode-default"},{"id":"LibTmux.TmuxColorMode.Colors256","name":"Colors256","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxColorMode","signatures":[],"doc":{"summary":"Requests 256-color mode."},"source":{"file":"src/LibTmux/TmuxColorMode.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxColorMode.Colors256","product":"core","slug":"libtmux-tmuxcolormode-colors256"},{"id":"LibTmux.TmuxColorMode.TrueColor","name":"TrueColor","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxColorMode","signatures":[],"doc":{"summary":"Requests RGB true-color mode."},"source":{"file":"src/LibTmux/TmuxColorMode.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxColorMode.TrueColor","product":"core","slug":"libtmux-tmuxcolormode-truecolor"},{"id":"LibTmux.TmuxCommandResult","name":"TmuxCommandResult","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Contains the inspectable result of one raw tmux command."},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult","product":"core","slug":"libtmux-tmuxcommandresult"},{"id":"LibTmux.TmuxCommandResult.TmuxCommandResult","name":"TmuxCommandResult","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommandResult","signatures":[{"params":[{"name":"arguments","type":"IReadOnlyList"},{"name":"exitCode","type":"int"},{"name":"standardOutput","type":"ReadOnlyMemory"},{"name":"standardError","type":"ReadOnlyMemory"},{"name":"standardOutputLines","type":"IReadOnlyList"},{"name":"standardErrorLines","type":"IReadOnlyList"}]}],"doc":{"summary":"Initializes a command result."},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult.TmuxCommandResult","product":"core","slug":"libtmux-tmuxcommandresult-tmuxcommandresult"},{"id":"LibTmux.TmuxCommandResult.Arguments","name":"Arguments","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommandResult","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the logical tmux arguments."},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult.Arguments","product":"core","slug":"libtmux-tmuxcommandresult-arguments"},{"id":"LibTmux.TmuxCommandResult.ExitCode","name":"ExitCode","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommandResult","signatures":[],"type":"int","doc":{"summary":"Gets the client exit code."},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult.ExitCode","product":"core","slug":"libtmux-tmuxcommandresult-exitcode"},{"id":"LibTmux.TmuxCommandResult.StandardOutput","name":"StandardOutput","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommandResult","signatures":[],"type":"ReadOnlyMemory","doc":{"summary":"Gets the exact standard-output bytes."},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult.StandardOutput","product":"core","slug":"libtmux-tmuxcommandresult-standardoutput"},{"id":"LibTmux.TmuxCommandResult.StandardError","name":"StandardError","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommandResult","signatures":[],"type":"ReadOnlyMemory","doc":{"summary":"Gets the exact standard-error bytes."},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult.StandardError","product":"core","slug":"libtmux-tmuxcommandresult-standarderror"},{"id":"LibTmux.TmuxCommandResult.StandardOutputLines","name":"StandardOutputLines","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommandResult","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the projected standard-output lines."},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult.StandardOutputLines","product":"core","slug":"libtmux-tmuxcommandresult-standardoutputlines"},{"id":"LibTmux.TmuxCommandResult.StandardErrorLines","name":"StandardErrorLines","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommandResult","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the projected standard-error lines."},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":51,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult.StandardErrorLines","product":"core","slug":"libtmux-tmuxcommandresult-standarderrorlines"},{"id":"LibTmux.TmuxCommandResult.Equals","name":"Equals","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommandResult","signatures":[{"params":[{"name":"other","type":"TmuxCommandResult?"}],"returns":"bool"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult.Equals","product":"core","slug":"libtmux-tmuxcommandresult-equals"},{"id":"LibTmux.TmuxCommandResult.GetHashCode","name":"GetHashCode","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommandResult","signatures":[{"params":[],"returns":"int"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult.GetHashCode","product":"core","slug":"libtmux-tmuxcommandresult-gethashcode"},{"id":"LibTmux.TmuxInvocation","name":"TmuxInvocation","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One tmux invocation, as a sees it."},"source":{"file":"src/LibTmux/Transport/TmuxInterceptor.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxInvocation","product":"core","slug":"libtmux-tmuxinvocation"},{"id":"LibTmux.TmuxInvocation.TmuxInvocation","name":"TmuxInvocation","kind":"method","modifiers":[],"parent":"LibTmux.TmuxInvocation","signatures":[{"params":[{"name":"arguments","type":"IReadOnlyList","doc":"The arguments tmux receives."}],"raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Initializes an invocation."},"source":{"file":"src/LibTmux/Transport/TmuxInterceptor.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxInvocation.TmuxInvocation","product":"core","slug":"libtmux-tmuxinvocation-tmuxinvocation"},{"id":"LibTmux.TmuxInvocation.Arguments","name":"Arguments","kind":"property","modifiers":[],"parent":"LibTmux.TmuxInvocation","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the arguments tmux receives.","body":"These follow the socket and configuration flags, which the connection\nadds itself, and match on a\nresult tmux produced. Grouped commands are separated by a ;\nargument."},"source":{"file":"src/LibTmux/Transport/TmuxInterceptor.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxInvocation.Arguments","product":"core","slug":"libtmux-tmuxinvocation-arguments"},{"id":"LibTmux.UnsafeTmuxFilter","name":"UnsafeTmuxFilter","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record UnsafeTmuxFilter(string Value);","params":[{"name":"Value","type":"string","doc":"The raw tmux -f filter text."}]}],"doc":{"summary":"A tmux filter expression passed through without translation.","body":"tmux evaluates the text itself, so nothing here is validated against the\nclosed field catalog. A malformed or unknown token makes tmux return no\nrows rather than report an error, which reads as an empty result."},"source":{"file":"src/LibTmux/UnsafeTmuxFilter.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsafeTmuxFilter","product":"core","slug":"libtmux-unsafetmuxfilter"},{"id":"LibTmux.UnsafeTmuxFilter.Value","name":"Value","kind":"property","parent":"LibTmux.UnsafeTmuxFilter","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The raw tmux -f filter text."},"source":{"file":"src/LibTmux/UnsafeTmuxFilter.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsafeTmuxFilter.Value","product":"core","slug":"libtmux-unsafetmuxfilter-value"},{"id":"LibTmux.TmuxBuffer","name":"TmuxBuffer","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One tmux paste buffer.","body":"tmux lists a buffer's size and the start of its contents, not the whole\nthing. Reading a buffer in full is a separate command, so what is listed is\nenough to choose between buffers rather than to use one."},"source":{"file":"src/LibTmux/Utilities/TmuxBuffer.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffer","product":"core","slug":"libtmux-tmuxbuffer"},{"id":"LibTmux.TmuxBuffer.TmuxBuffer","name":"TmuxBuffer","kind":"method","modifiers":[],"parent":"LibTmux.TmuxBuffer","signatures":[{"params":[{"name":"name","type":"string","doc":"The buffer name."},{"name":"size","type":"long","doc":"How many bytes it holds."},{"name":"sample","type":"string?","doc":"The start of its contents, as tmux chose to show it."}]}],"doc":{"summary":"Initializes one buffer."},"source":{"file":"src/LibTmux/Utilities/TmuxBuffer.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffer.TmuxBuffer","product":"core","slug":"libtmux-tmuxbuffer-tmuxbuffer"},{"id":"LibTmux.TmuxBuffer.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.TmuxBuffer","signatures":[],"type":"string","doc":{"summary":"Gets the buffer name."},"source":{"file":"src/LibTmux/Utilities/TmuxBuffer.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffer.Name","product":"core","slug":"libtmux-tmuxbuffer-name"},{"id":"LibTmux.TmuxBuffer.Size","name":"Size","kind":"property","modifiers":[],"parent":"LibTmux.TmuxBuffer","signatures":[],"type":"long","doc":{"summary":"Gets how many bytes it holds."},"source":{"file":"src/LibTmux/Utilities/TmuxBuffer.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffer.Size","product":"core","slug":"libtmux-tmuxbuffer-size"},{"id":"LibTmux.TmuxBuffer.Sample","name":"Sample","kind":"property","modifiers":[],"parent":"LibTmux.TmuxBuffer","signatures":[],"type":"string?","doc":{"summary":"Gets the start of its contents, as tmux chose to show it."},"source":{"file":"src/LibTmux/Utilities/TmuxBuffer.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffer.Sample","product":"core","slug":"libtmux-tmuxbuffer-sample"},{"id":"LibTmux.TmuxMenuItem","name":"TmuxMenuItem","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One line of a tmux menu.","body":"tmux takes menu items as bare triples on the command line rather than as\nflags, so the order of the three is what tells them apart."},"source":{"file":"src/LibTmux/Utilities/TmuxMenuItem.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxMenuItem","product":"core","slug":"libtmux-tmuxmenuitem"},{"id":"LibTmux.TmuxMenuItem.TmuxMenuItem","name":"TmuxMenuItem","kind":"method","modifiers":[],"parent":"LibTmux.TmuxMenuItem","signatures":[{"params":[{"name":"name","type":"string","doc":"The text shown for the item."},{"name":"key","type":"string","doc":"The key that chooses it."},{"name":"command","type":"string","doc":"The tmux command it runs."}]}],"doc":{"summary":"Initializes one menu item."},"source":{"file":"src/LibTmux/Utilities/TmuxMenuItem.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxMenuItem.TmuxMenuItem","product":"core","slug":"libtmux-tmuxmenuitem-tmuxmenuitem"},{"id":"LibTmux.TmuxMenuItem.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.TmuxMenuItem","signatures":[],"type":"string","doc":{"summary":"Gets the text shown for the item."},"source":{"file":"src/LibTmux/Utilities/TmuxMenuItem.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxMenuItem.Name","product":"core","slug":"libtmux-tmuxmenuitem-name"},{"id":"LibTmux.TmuxMenuItem.Key","name":"Key","kind":"property","modifiers":[],"parent":"LibTmux.TmuxMenuItem","signatures":[],"type":"string","doc":{"summary":"Gets the key that chooses it."},"source":{"file":"src/LibTmux/Utilities/TmuxMenuItem.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxMenuItem.Key","product":"core","slug":"libtmux-tmuxmenuitem-key"},{"id":"LibTmux.TmuxMenuItem.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.TmuxMenuItem","signatures":[],"type":"string","doc":{"summary":"Gets the tmux command it runs."},"source":{"file":"src/LibTmux/Utilities/TmuxMenuItem.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxMenuItem.Command","product":"core","slug":"libtmux-tmuxmenuitem-command"},{"id":"LibTmux.TmuxVersion","name":"TmuxVersion","kind":"struct","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Represents one lossless parsed tmux version."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion","product":"core","slug":"libtmux-tmuxversion"},{"id":"LibTmux.TmuxVersion.TmuxVersion","name":"TmuxVersion","kind":"method","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"raw","type":"string"}]}],"doc":{"summary":"Initializes a tmux version."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.TmuxVersion","product":"core","slug":"libtmux-tmuxversion-tmuxversion"},{"id":"LibTmux.TmuxVersion.IsValid","name":"IsValid","kind":"property","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[],"type":"bool","doc":{"summary":"Gets whether this value contains a parsed tmux version."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.IsValid","product":"core","slug":"libtmux-tmuxversion-isvalid"},{"id":"LibTmux.TmuxVersion.Major","name":"Major","kind":"property","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[],"type":"int","doc":{"summary":"Gets the parsed major version."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":65,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.Major","product":"core","slug":"libtmux-tmuxversion-major"},{"id":"LibTmux.TmuxVersion.Minor","name":"Minor","kind":"property","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[],"type":"int","doc":{"summary":"Gets the parsed minor version."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.Minor","product":"core","slug":"libtmux-tmuxversion-minor"},{"id":"LibTmux.TmuxVersion.Raw","name":"Raw","kind":"property","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[],"type":"string","doc":{"summary":"Gets the exact normalized tmux version text."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":71,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.Raw","product":"core","slug":"libtmux-tmuxversion-raw"},{"id":"LibTmux.TmuxVersion.Suffix","name":"Suffix","kind":"property","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[],"type":"string?","doc":{"summary":"Gets the exact preserved suffix projection."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.Suffix","product":"core","slug":"libtmux-tmuxversion-suffix"},{"id":"LibTmux.TmuxVersion.Parse","name":"Parse","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"text","type":"string"}],"returns":"TmuxVersion"}],"doc":{"summary":"Parses a tmux version string."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":77,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.Parse","product":"core","slug":"libtmux-tmuxversion-parse"},{"id":"LibTmux.TmuxVersion.TryParse","name":"TryParse","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"text","type":"string?"},{"name":"result","type":"TmuxVersion"}],"returns":"bool"}],"doc":{"summary":"Tries to parse a tmux version string."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":84,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.TryParse","product":"core","slug":"libtmux-tmuxversion-tryparse"},{"id":"LibTmux.TmuxVersion.CompareTo","name":"CompareTo","kind":"method","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"other","type":"TmuxVersion"}],"returns":"int"}],"doc":{"summary":"Compares parsed tmux versions."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":97,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.CompareTo","product":"core","slug":"libtmux-tmuxversion-compareto"},{"id":"LibTmux.TmuxVersion.IsAtLeast","name":"IsAtLeast","kind":"method","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"minimum","type":"TmuxVersion"}],"returns":"bool"}],"doc":{"summary":"Reports whether this version meets a minimum."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":143,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.IsAtLeast","product":"core","slug":"libtmux-tmuxversion-isatleast"},{"id":"LibTmux.TmuxVersion.EnsureAtLeast","name":"EnsureAtLeast","kind":"method","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"minimum","type":"TmuxVersion"}],"returns":"void"}],"doc":{"summary":"Throws when this version is below a minimum."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":146,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.EnsureAtLeast","product":"core","slug":"libtmux-tmuxversion-ensureatleast"},{"id":"LibTmux.TmuxVersion.DetectStringAsync","name":"DetectStringAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Detects the selected tmux executable version string."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":158,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.DetectStringAsync","product":"core","slug":"libtmux-tmuxversion-detectstringasync"},{"id":"LibTmux.TmuxVersion.DetectAsync","name":"DetectAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Detects the selected tmux executable version."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":208,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.DetectAsync","product":"core","slug":"libtmux-tmuxversion-detectasync"},{"id":"LibTmux.TmuxVersion.IsInstalledNewerThanAsync","name":"IsInstalledNewerThanAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"version","type":"TmuxVersion"},{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Checks whether installed tmux is newer."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":215,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.IsInstalledNewerThanAsync","product":"core","slug":"libtmux-tmuxversion-isinstallednewerthanasync"},{"id":"LibTmux.TmuxVersion.IsInstalledAtLeastAsync","name":"IsInstalledAtLeastAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"version","type":"TmuxVersion"},{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Checks whether installed tmux meets a minimum."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":223,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.IsInstalledAtLeastAsync","product":"core","slug":"libtmux-tmuxversion-isinstalledatleastasync"},{"id":"LibTmux.TmuxVersion.IsInstalledOlderThanAsync","name":"IsInstalledOlderThanAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"version","type":"TmuxVersion"},{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Checks whether installed tmux is older."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":231,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.IsInstalledOlderThanAsync","product":"core","slug":"libtmux-tmuxversion-isinstalledolderthanasync"},{"id":"LibTmux.TmuxVersion.IsInstalledAtMostAsync","name":"IsInstalledAtMostAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"version","type":"TmuxVersion"},{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Checks whether installed tmux is at most a maximum."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":239,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.IsInstalledAtMostAsync","product":"core","slug":"libtmux-tmuxversion-isinstalledatmostasync"},{"id":"LibTmux.TmuxVersion.IsInstalledVersionAsync","name":"IsInstalledVersionAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"version","type":"TmuxVersion"},{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Checks exact installed version equality."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":247,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.IsInstalledVersionAsync","product":"core","slug":"libtmux-tmuxversion-isinstalledversionasync"},{"id":"LibTmux.TmuxVersion.CheckMinimumSupportedVersionAsync","name":"CheckMinimumSupportedVersionAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"throwIfUnsupported","type":"bool","default":"true"},{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Checks the package minimum and optionally throws."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":255,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.CheckMinimumSupportedVersionAsync","product":"core","slug":"libtmux-tmuxversion-checkminimumsupportedversionasync"},{"id":"LibTmux.TmuxVersion.IsMinimumSupportedVersionInstalledAsync","name":"IsMinimumSupportedVersionInstalledAsync","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Reports whether installed tmux meets the package minimum."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":277,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.IsMinimumSupportedVersionInstalledAsync","product":"core","slug":"libtmux-tmuxversion-isminimumsupportedversioninstalledasync"},{"id":"LibTmux.TmuxVersion.EnsureMinimumSupportedVersionAsync","name":"EnsureMinimumSupportedVersionAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Throws when installed tmux is below the package minimum."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":287,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.EnsureMinimumSupportedVersionAsync","product":"core","slug":"libtmux-tmuxversion-ensureminimumsupportedversionasync"},{"id":"LibTmux.TmuxVersion.ToString","name":"ToString","kind":"method","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[],"returns":"string"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":298,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.ToString","product":"core","slug":"libtmux-tmuxversion-tostring"},{"id":"LibTmux.TmuxWait","name":"TmuxWait","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Waits for tmux to reach a state instead of sleeping.","body":"tmux answers a command as soon as it has accepted it, not once the effect\nhas landed, so code that acts and then reads immediately is racing the\nserver. A fixed delay only hides that on an idle machine; waiting for the\nstate itself is what makes the read say what it means. This is ordinary\nclient work, not test scaffolding: reading back what a command produced is\nthe common case, so it ships in the client rather than in\nLibTmux.Testing."},"source":{"file":"src/LibTmux/Waiting/TmuxWait.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWait","product":"core","slug":"libtmux-tmuxwait"},{"id":"LibTmux.TmuxWait.UntilAsync","name":"UntilAsync","kind":"method","modifiers":["static","async","overload"],"parent":"LibTmux.TmuxWait","signatures":[{"params":[{"name":"probe","type":"Func>","doc":"Answers whether the state has been reached."},{"name":"timeout","type":"TimeSpan","doc":"How long to keep asking."},{"name":"interval","type":"TimeSpan","doc":"How long to wait between askings."},{"name":"throwOnTimeout","type":"bool","default":"true","doc":"Whether running out is a failure."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the wait."}],"returns":"Task","returnsDoc":"True when the state was reached.","raises":[{"type":"TmuxWaitTimeoutException","doc":"The state was not reached and running out was to be a failure."}]},{"params":[{"name":"probe","type":"Func>","doc":"Reads the current value."},{"name":"predicate","type":"Func","doc":"Answers whether a reading is the wanted one."},{"name":"timeout","type":"TimeSpan","doc":"How long to keep reading."},{"name":"interval","type":"TimeSpan","doc":"How long to wait between readings."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the wait."}],"returns":"Task","typeParams":["T"],"returnsDoc":"The first reading the predicate accepted.","raises":[{"type":"TmuxWaitTimeoutException","doc":"No reading was accepted in time."}]}],"doc":{"summary":"Waits until a probe reports the state was reached."},"source":{"file":"src/LibTmux/Waiting/TmuxWait.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWait.UntilAsync","product":"core","slug":"libtmux-tmuxwait-untilasync"},{"id":"LibTmux.TmuxWaitChannel","name":"TmuxWaitChannel","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"An open wait on a tmux wait-for channel.","body":"tmux gives a signal to whoever is registered on the channel and raises the\nchannel's pending flag only when nobody is. A waiter whose client dies stays\nregistered — tmux clears waiters when the server exits and at no other time\n— so it goes on eating signals that can no longer reach anybody. Killing a\nwaiting client to enforce a timeout therefore destroys the next signal, and\neach timed-out retry leaves another corpse to destroy the one after that.\n\n returning false means that attempt expired without\nobserving completion. The open wait remains owned and may already have\ncompleted from a racing signal. Closing attempts withdrawal before ending\nthe local client; failed withdrawal leaves remote registration unknown."},"source":{"file":"src/LibTmux/Waiting/TmuxWaitChannel.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitChannel","product":"core","slug":"libtmux-tmuxwaitchannel"},{"id":"LibTmux.TmuxWaitChannel.Channel","name":"Channel","kind":"property","modifiers":[],"parent":"LibTmux.TmuxWaitChannel","signatures":[],"type":"string","doc":{"summary":"Gets the channel being waited on."},"source":{"file":"src/LibTmux/Waiting/TmuxWaitChannel.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitChannel.Channel","product":"core","slug":"libtmux-tmuxwaitchannel-channel"},{"id":"LibTmux.TmuxWaitChannel.Signalled","name":"Signalled","kind":"property","modifiers":[],"parent":"LibTmux.TmuxWaitChannel","signatures":[],"type":"bool","doc":{"summary":"Gets whether the wait completed before withdrawal began.","body":"A false value does not prove that no signal arrived. Withdrawing must\nsignal the same channel, so tmux cannot attribute a completion that\nraces the decision to withdraw."},"source":{"file":"src/LibTmux/Waiting/TmuxWaitChannel.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitChannel.Signalled","product":"core","slug":"libtmux-tmuxwaitchannel-signalled"},{"id":"LibTmux.TmuxWaitChannel.WaitAsync","name":"WaitAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxWaitChannel","signatures":[{"params":[{"name":"budget","type":"TimeSpan","doc":"How long this attempt may take."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Abandons this attempt, not the waiter."}],"returns":"Task","returnsDoc":"True when the channel was signalled, false when the budget ran out."}],"doc":{"summary":"Waits for the signal, giving this attempt a budget.","examples":[{"lang":"console","intro":"Send literal text and a named Enter key, wait for a private completion signal, then require a whole captured output line. All scopes are disposed after errors or cancellation. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/InputCapture.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-inputcapture-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/sh\" }, token);\nServer server = await Server.ConnectAsync(options, token);\nPane pane = (await server.GetPanesAsync(token)).Single();\nstring channel = \"capture-\" + Guid.NewGuid().ToString(\"N\");\nawait using TmuxWaitChannel wait = server.OpenWaitChannel(channel);\nconst string marker = \"api capture ready\";\nstring command = $\"printf '%s\\\\n' {QuoteShell(marker)}; \"\n + $\"{QuoteShell(binary)} -L {QuoteShell(socketName)} wait-for -S {QuoteShell(channel)}\";\n\nawait pane.SendKeysAsync(new SendKeysRequest { Text = command, Literal = true, Enter = false }, token);\nawait pane.SendKeysAsync(new SendKeysRequest { Text = \"Enter\", Enter = false }, token);\nif (!await wait.WaitAsync(TimeSpan.FromSeconds(5), token))\n{\n throw new InvalidOperationException(\"The pane did not signal that its output was ready.\");\n}\nIReadOnlyList lines = await pane.CaptureAsync(\n new CapturePaneRequest { JoinWrappedLines = true }, token);\n// Joining wrapped lines preserves terminal padding after the output.\nif (!lines.Any(line => string.Equals(line.TrimEnd(), marker, StringComparison.Ordinal)))\n{\n throw new InvalidOperationException(\"Capture did not contain the complete output line.\");\n}\nConsole.WriteLine(marker);\n\nstatic string QuoteShell(string value) => \"'\" + value.Replace(\"'\", \"'\\\\''\", StringComparison.Ordinal) + \"'\";\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"api capture ready\n"}]},"source":{"file":"src/LibTmux/Waiting/TmuxWaitChannel.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitChannel.WaitAsync","product":"core","slug":"libtmux-tmuxwaitchannel-waitasync"},{"id":"LibTmux.TmuxWaitChannel.CloseAsync","name":"CloseAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxWaitChannel","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Ends the shared withdrawal attempt early."}],"returns":"ValueTask","returnsDoc":"The shared close operation, including owned local cleanup."}],"doc":{"summary":"Withdraws the waiter and ends its owned client lifetime.","body":"Withdrawal has a one-second deadline. Cancellation or failed withdrawal\nleaves the remote registration unknown and is reported after local cleanup.\nConcurrent callers share this lifetime; cancelling one closes it for all."},"source":{"file":"src/LibTmux/Waiting/TmuxWaitChannel.cs","line":107,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitChannel.CloseAsync","product":"core","slug":"libtmux-tmuxwaitchannel-closeasync"},{"id":"LibTmux.TmuxWaitChannel.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxWaitChannel","signatures":[{"params":[],"returns":"ValueTask"}],"doc":{"summary":"Withdraws the waiter from tmux.","body":"Signalling the channel is how a waiter withdraws: tmux wakes the\nregistered waiters and, because the list was not empty, leaves the\npending flag down. Nothing else can deregister one.\n\nA signal landing between the check below and the withdrawal is woken by\nthis waiter and then re-raised by the withdrawal itself, because by then\nno waiter is left to take it. That leaves the channel pending rather\nthan empty — an extra wake for the next caller, never a lost one. tmux\ncannot say which signal completed this waiter in that race.\n\nA signal wakes every waiter on the channel and tmux offers no way to\nderegister one on its own, so withdrawing here also completes any other\nwait open on the same channel. Keep one open wait per channel.\n\nA wait that did not dispatch or returned a command failure never\nregistered, so disposal does not signal it. Close uses a one-second\nwithdrawal deadline, then ends the owned local client. Failed withdrawal\nreports unknown remote registration; unrelated waiter failures remain observable."},"source":{"file":"src/LibTmux/Waiting/TmuxWaitChannel.cs","line":155,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitChannel.DisposeAsync","product":"core","slug":"libtmux-tmuxwaitchannel-disposeasync"},{"id":"LibTmux.Window","name":"Window","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Represents an immutable window handle and snapshot.","body":"Thread-safe: the handle is immutable once constructed and may be shared\nfreely, including as a singleton. Every mutating call answers a new handle\nrather than changing this one."},"source":{"file":"src/LibTmux/Window.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window","product":"core","slug":"libtmux-window"},{"id":"LibTmux.Window.ExecuteCommandAsync","name":"ExecuteCommandAsync","kind":"method","modifiers":[],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"arguments","type":"IReadOnlyList"},{"name":"targetOverride","type":"string?","default":"null"},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Executes one raw tmux command against this window."},"source":{"file":"src/LibTmux/Window.Command.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.ExecuteCommandAsync","product":"core","slug":"libtmux-window-executecommandasync"},{"id":"LibTmux.Window.DisplayMessageAsync","name":"DisplayMessageAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"request","type":"DisplayMessageRequest","doc":"The message to show."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task?>","returnsDoc":"The printed lines when the request asked for them, else null.","raises":[{"type":"ArgumentException","doc":"The request asks to redraw the pane, which only a pane can honour."}]}],"doc":{"summary":"Shows a message on the client viewing this window.","body":"A message with no client to show it on is not a failure, so tmux's\ncomplaint is logged rather than raised."},"source":{"file":"src/LibTmux/Window.Display.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.DisplayMessageAsync","product":"core","slug":"libtmux-window-displaymessageasync"},{"id":"LibTmux.Window.FromEnvironmentAsync","name":"FromEnvironmentAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"environment","type":"IReadOnlyDictionary?","default":"null","doc":"The environment, or null for the process."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The resolved window."}],"doc":{"summary":"Returns the window holding the pane this process runs in.","body":"Resolved through the pane rather than through the session id in\nTMUX, which is frozen at pane spawn and goes stale when the\nwindow is moved."},"source":{"file":"src/LibTmux/Window.FromEnvironment.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.FromEnvironmentAsync","product":"core","slug":"libtmux-window-fromenvironmentasync"},{"id":"LibTmux.Window.RawFormatFields","name":"RawFormatFields","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the tmux fields captured when this handle materialized."},"source":{"file":"src/LibTmux/Window.Identity.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.RawFormatFields","product":"core","slug":"libtmux-window-rawformatfields"},{"id":"LibTmux.Window.Id","name":"Id","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"WindowId","doc":{"summary":"Gets the window identifier."},"source":{"file":"src/LibTmux/Window.Identity.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Id","product":"core","slug":"libtmux-window-id"},{"id":"LibTmux.Window.Generation","name":"Generation","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"ServerGeneration","doc":{"summary":"Gets the server generation captured with this window."},"source":{"file":"src/LibTmux/Window.Identity.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Generation","product":"core","slug":"libtmux-window-generation"},{"id":"LibTmux.Window.Equals","name":"Equals","kind":"method","modifiers":["overload"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"other","type":"Window?"}],"returns":"bool"},{"params":[{"name":"obj","type":"object?"}],"returns":"bool"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Window.Identity.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Equals","product":"core","slug":"libtmux-window-equals"},{"id":"LibTmux.Window.GetHashCode","name":"GetHashCode","kind":"method","modifiers":[],"parent":"LibTmux.Window","signatures":[{"params":[],"returns":"int"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Window.Identity.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.GetHashCode","product":"core","slug":"libtmux-window-gethashcode"},{"id":"LibTmux.Window.ResizeAsync","name":"ResizeAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"request","type":"ResizeWindowRequest","doc":"The size to apply."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new size."}],"doc":{"summary":"Resizes this window.","body":"Resizing switches the window's window-size option to manual, so\nit stops following its clients."},"source":{"file":"src/LibTmux/Window.Layout.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.ResizeAsync","product":"core","slug":"libtmux-window-resizeasync"},{"id":"LibTmux.Window.SelectLayoutAsync","name":"SelectLayoutAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"request","type":"SelectLayoutRequest?","default":"null","doc":"The layout to apply."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new layout.","raises":[{"type":"TmuxWindowException","doc":"The layout is one tmux may not recognise."}]}],"doc":{"summary":"Applies a layout to this window.","body":"Feeding a previously captured back restores the\nsame pane sizes on every version, but on tmux 3.7 and earlier it can\nrotate which pane lands in which position - measured by hand, not a\nhypothetical. tmux 3.8 and newer accepts the JSON form of the layout\n(from a plain, non-control client) and restores the exact arrangement,\nincluding which pane id sits where; the classic checksum-prefixed form\nnever carries pane ids and so cannot."},"source":{"file":"src/LibTmux/Window.Layout.cs","line":96,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SelectLayoutAsync","product":"core","slug":"libtmux-window-selectlayoutasync"},{"id":"LibTmux.Window.SelectNextLayoutAsync","name":"SelectNextLayoutAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new layout."}],"doc":{"summary":"Moves to the next layout."},"source":{"file":"src/LibTmux/Window.Layout.cs","line":117,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SelectNextLayoutAsync","product":"core","slug":"libtmux-window-selectnextlayoutasync"},{"id":"LibTmux.Window.SelectPreviousLayoutAsync","name":"SelectPreviousLayoutAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new layout."}],"doc":{"summary":"Moves to the previous layout."},"source":{"file":"src/LibTmux/Window.Layout.cs","line":130,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SelectPreviousLayoutAsync","product":"core","slug":"libtmux-window-selectpreviouslayoutasync"},{"id":"LibTmux.WindowRotationDirection","name":"WindowRotationDirection","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names which way a window's panes rotate."},"source":{"file":"src/LibTmux/Window.Lifecycle.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowRotationDirection","product":"core","slug":"libtmux-windowrotationdirection"},{"id":"LibTmux.WindowRotationDirection.Up","name":"Up","kind":"constant","modifiers":[],"parent":"LibTmux.WindowRotationDirection","signatures":[],"doc":{"summary":"Rotate panes towards the top of the window."},"source":{"file":"src/LibTmux/Window.Lifecycle.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowRotationDirection.Up","product":"core","slug":"libtmux-windowrotationdirection-up"},{"id":"LibTmux.WindowRotationDirection.Down","name":"Down","kind":"constant","modifiers":[],"parent":"LibTmux.WindowRotationDirection","signatures":[],"doc":{"summary":"Rotate panes towards the bottom of the window."},"source":{"file":"src/LibTmux/Window.Lifecycle.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowRotationDirection.Down","product":"core","slug":"libtmux-windowrotationdirection-down"},{"id":"LibTmux.Window.RenameAsync","name":"RenameAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"name","type":"string","doc":"The new name."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new name."}],"doc":{"summary":"Renames this window.","body":"tmux expands the name as a format, so a # in it does not survive\nverbatim."},"source":{"file":"src/LibTmux/Window.Lifecycle.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.RenameAsync","product":"core","slug":"libtmux-window-renameasync"},{"id":"LibTmux.Window.SelectAsync","name":"SelectAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the state after selection."}],"doc":{"summary":"Selects this window in its session."},"source":{"file":"src/LibTmux/Window.Lifecycle.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SelectAsync","product":"core","slug":"libtmux-window-selectasync"},{"id":"LibTmux.Window.KillAsync","name":"KillAsync","kind":"method","modifiers":[],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"allExcept","type":"bool","default":"false","doc":"Whether every other window in the session is stopped instead."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Stops this window."},"source":{"file":"src/LibTmux/Window.Lifecycle.cs","line":53,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.KillAsync","product":"core","slug":"libtmux-window-killasync"},{"id":"LibTmux.Window.RotateAsync","name":"RotateAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"direction","type":"WindowRotationDirection?","default":"null","doc":"Which way to rotate, or null for tmux's default."},{"name":"keepZoom","type":"bool","default":"false","doc":"Whether a zoomed pane stays zoomed."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the state after rotation."}],"doc":{"summary":"Rotates the panes in this window."},"source":{"file":"src/LibTmux/Window.Lifecycle.cs","line":72,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.RotateAsync","product":"core","slug":"libtmux-window-rotateasync"},{"id":"LibTmux.Window.RespawnAsync","name":"RespawnAsync","kind":"method","modifiers":[],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"request","type":"RespawnRequest?","default":"null","doc":"What to respawn, or null to reuse the original."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Restarts the command running in this window.","body":"tmux refuses to respawn a window that is still running unless the\nrequest kills it first, and killing it destroys every pane but one."},"source":{"file":"src/LibTmux/Window.Lifecycle.cs","line":102,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.RespawnAsync","product":"core","slug":"libtmux-window-respawnasync"},{"id":"LibTmux.Window.CreateWindowAsync","name":"CreateWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"request","type":"NewWindowRequest?","default":"null","doc":"The window to create."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The created window."}],"doc":{"summary":"Creates a window next to this one."},"source":{"file":"src/LibTmux/Window.Lifecycle.cs","line":129,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.CreateWindowAsync","product":"core","slug":"libtmux-window-createwindowasync"},{"id":"LibTmux.Window.LinkAsync","name":"LinkAsync","kind":"method","modifiers":[],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"request","type":"LinkWindowRequest","doc":"Where the link goes."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Links this window into another session.","body":"A guard in the native queue rejects the command when the captured\nsource index belongs to a different window or no longer exists."},"source":{"file":"src/LibTmux/Window.Links.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.LinkAsync","product":"core","slug":"libtmux-window-linkasync"},{"id":"LibTmux.Window.UnlinkAsync","name":"UnlinkAsync","kind":"method","modifiers":["overload"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"killIfLast","type":"bool","default":"false","doc":"Whether the window dies when this was its last link."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"},{"params":[{"name":"killIfLast","type":"bool","doc":"Whether the window dies when this was its last link."},{"name":"expectedPaneIds","type":"IReadOnlyList","doc":"The nonempty, distinct pane IDs expected in the window, in any order."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","raises":[{"type":"ArgumentException","doc":"The IDs are empty, duplicated, or exceed the native command byte budget."},{"type":"TmuxCommandException","doc":"The placement or pane membership changed, or tmux refused the unlink."}]}],"doc":{"summary":"Removes this window's link to the session it was read through.","body":"tmux refuses to unlink a window that belongs to only one session unless\nit is allowed to destroy it. A guard in the native queue checks the\ncaptured session/index still names this window before unlinking it."},"source":{"file":"src/LibTmux/Window.Links.cs","line":65,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.UnlinkAsync","product":"core","slug":"libtmux-window-unlinkasync"},{"id":"LibTmux.Window.SwapAsync","name":"SwapAsync","kind":"method","modifiers":[],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"target","type":"WindowId","doc":"The window to swap with."},{"name":"detach","type":"bool","default":"false","doc":"Whether the swapped window is left unselected."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Swaps this window with another.","body":"A window linked into several sessions resolves to whichever link tmux\npicks, because a window identifier does not name one."},"source":{"file":"src/LibTmux/Window.Links.cs","line":153,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SwapAsync","product":"core","slug":"libtmux-window-swapasync"},{"id":"LibTmux.Window.MoveAsync","name":"MoveAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"request","type":"MoveWindowRequest","doc":"Where the window goes."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the affected placement."}],"doc":{"summary":"Moves this window to another index or session.","body":"A renumber request preserves placement order and returns this link at\nits new index; renumbering another session leaves this link in place.\nA guard in the native queue checks that the captured session/index\nstill names this window before the mutation. Reads before and after\nthe command detect inconsistent placement changes, but do not make\nthe operation atomic. A failed readback reports unknown\ndispatch state: the move already succeeded and must not be retried."},"source":{"file":"src/LibTmux/Window.Move.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.MoveAsync","product":"core","slug":"libtmux-window-moveasync"},{"id":"LibTmux.PaneInputMode","name":"PaneInputMode","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names whether a pane accepts input."},"source":{"file":"src/LibTmux/Window.Panes.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneInputMode","product":"core","slug":"libtmux-paneinputmode"},{"id":"LibTmux.PaneInputMode.Enable","name":"Enable","kind":"constant","modifiers":[],"parent":"LibTmux.PaneInputMode","signatures":[],"doc":{"summary":"The pane accepts input."},"source":{"file":"src/LibTmux/Window.Panes.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneInputMode.Enable","product":"core","slug":"libtmux-paneinputmode-enable"},{"id":"LibTmux.PaneInputMode.Disable","name":"Disable","kind":"constant","modifiers":[],"parent":"LibTmux.PaneInputMode","signatures":[],"doc":{"summary":"The pane ignores input."},"source":{"file":"src/LibTmux/Window.Panes.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneInputMode.Disable","product":"core","slug":"libtmux-paneinputmode-disable"},{"id":"LibTmux.Window.SelectLastPaneAsync","name":"SelectLastPaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"inputMode","type":"PaneInputMode?","default":"null","doc":"Whether to change the pane's input handling instead."},{"name":"keepZoom","type":"bool","default":"false","doc":"Whether a zoomed pane stays zoomed."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The pane that is active afterwards, or null when none is."}],"doc":{"summary":"Selects the pane that was last active.","body":"Asking for an input change makes tmux apply that to the last pane and\nleave the active pane alone, so the handle that comes back is the pane\nthat was already active."},"source":{"file":"src/LibTmux/Window.Panes.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SelectLastPaneAsync","product":"core","slug":"libtmux-window-selectlastpaneasync"},{"id":"LibTmux.Window.SelectPaneAsync","name":"SelectPaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"target","type":"string","doc":"A pane target, or a direction such as -U."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The pane that is active afterwards, or null when none is."}],"doc":{"summary":"Selects a pane in this window."},"source":{"file":"src/LibTmux/Window.Panes.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SelectPaneAsync","product":"core","slug":"libtmux-window-selectpaneasync"},{"id":"LibTmux.Window.GetPaneAsync","name":"GetPaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"target","type":"string","doc":"The pane identifier or index."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The materialized pane in this window.","raises":[{"type":"TmuxObjectNotFoundException","doc":"This window has no matching pane."},{"type":"LibTmuxException","doc":"The lookup failed."}]}],"doc":{"summary":"Reads one pane in this window, throwing when it is absent."},"source":{"file":"src/LibTmux/Window.Panes.cs","line":94,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.GetPaneAsync","product":"core","slug":"libtmux-window-getpaneasync"},{"id":"LibTmux.Window.FindPaneAsync","name":"FindPaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"target","type":"string","doc":"The pane target."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The pane, or null when this window has no such pane."}],"doc":{"summary":"Reads one pane in this window.","examples":[{"lang":"console","intro":"Use typed required lookups, nullable absence and explicit errors. Cancellation, invalid input and a stopped server remain exceptions. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/EntityLookups.cs","code":"using System;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-entitylookups-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nServer stoppedServer;\nawait using (OwnedServerScope owned = await Server.CreateOwnedAsync(options, token))\n{\n await using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n Server server = await Server.ConnectAsync(options, token);\n Session found = await server.GetSessionAsync(session.Value.Id, token);\n Window listedWindow = (await found.GetWindowsAsync(token)).Single();\n Window window = await server.GetWindowAsync(listedWindow.Id, token);\n Pane listedPane = (await window.GetPanesAsync(token)).Single();\n Pane pane = await server.GetPaneAsync(listedPane.Id, token);\n if (found.Id != session.Value.Id || pane.Id != listedPane.Id)\n {\n throw new InvalidOperationException(\"Typed lookup returned an unexpected entity.\");\n }\n\n SessionId missingId = new(int.MaxValue);\n Session? missing = await server.FindSessionAsync(missingId, token);\n if (missing is not null)\n {\n throw new InvalidOperationException(\"The absent session unexpectedly exists.\");\n }\n Console.WriteLine(\"A successful lookup can return null.\");\n try\n {\n _ = await server.GetSessionAsync(missingId, token);\n throw new InvalidOperationException(\"GetSessionAsync must throw for an absent session.\");\n }\n catch (TmuxObjectNotFoundException)\n {\n Console.WriteLine(\"Required lookup reports TmuxObjectNotFoundException.\");\n }\n\n using CancellationTokenSource cancelled = new();\n cancelled.Cancel();\n try\n {\n _ = await server.FindSessionAsync(session.Value.Id, cancelled.Token);\n throw new InvalidOperationException(\"Cancelled lookup must throw.\");\n }\n catch (OperationCanceledException)\n {\n Console.WriteLine(\"Cancellation remains OperationCanceledException.\");\n }\n try\n {\n _ = await window.FindPaneAsync(\" \", token);\n throw new InvalidOperationException(\"A blank pane target must be rejected.\");\n }\n catch (ArgumentException)\n {\n Console.WriteLine(\"A blank pane target remains ArgumentException.\");\n }\n stoppedServer = server;\n}\n\ntry\n{\n _ = await stoppedServer.FindSessionAsync(new SessionId(int.MaxValue), token);\n throw new InvalidOperationException(\"A failed read must not become null.\");\n}\ncatch (LibTmuxException)\n{\n Console.WriteLine(\"A stopped server remains a LibTmuxException.\");\n}\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"A successful lookup can return null.\nRequired lookup reports TmuxObjectNotFoundException.\nCancellation remains OperationCanceledException.\nA blank pane target remains ArgumentException.\nA stopped server remains a LibTmuxException.\n"}]},"source":{"file":"src/LibTmux/Window.Panes.cs","line":106,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.FindPaneAsync","product":"core","slug":"libtmux-window-findpaneasync"},{"id":"LibTmux.Window.SplitPaneAsync","name":"SplitPaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"request","type":"SplitPaneRequest?","default":"null","doc":"How to split."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The created pane."}],"doc":{"summary":"Splits a pane in this window."},"source":{"file":"src/LibTmux/Window.Panes.cs","line":122,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SplitPaneAsync","product":"core","slug":"libtmux-window-splitpaneasync"},{"id":"LibTmux.Window.CreatePaneAsync","name":"CreatePaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"request","type":"NewPaneRequest?","default":"null","doc":"The pane to create."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The created pane.","raises":[{"type":"TmuxVersionTooLowException","doc":"The server predates tmux 3.7, which introduced the command."}]}],"doc":{"summary":"Creates a floating pane in this window."},"source":{"file":"src/LibTmux/Window.Panes.cs","line":199,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.CreatePaneAsync","product":"core","slug":"libtmux-window-createpaneasync"},{"id":"LibTmux.Window.SearchPanesAsync","name":"SearchPanesAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"filter","type":"UnsafeTmuxFilter","doc":"The raw tmux filter expression."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The panes tmux kept."}],"doc":{"summary":"Runs a tmux-side filter over this window's panes."},"source":{"file":"src/LibTmux/Window.Panes.cs","line":288,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SearchPanesAsync","product":"core","slug":"libtmux-window-searchpanesasync"},{"id":"LibTmux.Window.ActivePane","name":"ActivePane","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"CapturedValue","doc":{"summary":"Gets the captured active pane, or an uncaptured relation.","body":"Reading this is local. A window reached through an inactive pane\ncarries that pane's row, so its active pane was not captured."},"source":{"file":"src/LibTmux/Window.Relations.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.ActivePane","product":"core","slug":"libtmux-window-activepane"},{"id":"LibTmux.Window.Panes","name":"Panes","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"CapturedRelation","doc":{"summary":"Gets the panes the capture found in this window.","body":"Reading this never reaches tmux."},"source":{"file":"src/LibTmux/Window.Relations.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Panes","product":"core","slug":"libtmux-window-panes"},{"id":"LibTmux.Window.LinkedSessions","name":"LinkedSessions","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"CapturedRelation","doc":{"summary":"Gets the sessions the capture found this window linked into.","body":"Reading this never reaches tmux."},"source":{"file":"src/LibTmux/Window.Relations.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.LinkedSessions","product":"core","slug":"libtmux-window-linkedsessions"},{"id":"LibTmux.Window.Edge","name":"Edge","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"SessionWindowEdge","doc":{"summary":"Gets where this window sits in the session it was read from.","body":"A window has one edge per indexed placement, including multiple indexes\nwithin one session. This is the edge for the session and index captured\nby this handle."},"source":{"file":"src/LibTmux/Window.Relations.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Edge","product":"core","slug":"libtmux-window-edge"},{"id":"LibTmux.Window.EntityKey","name":"EntityKey","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"WindowEntityKey","doc":{"summary":"Gets the session, window and index this handle names together.","body":"tmux can link a window at several indexes in one session, so the session\nand window identifiers alone do not name a place in the hierarchy."},"source":{"file":"src/LibTmux/Window.Relations.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.EntityKey","product":"core","slug":"libtmux-window-entitykey"},{"id":"LibTmux.Window.GetPanesAsync","name":"GetPanesAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The panes tmux reports for this window."}],"doc":{"summary":"Reads this window's panes from tmux.","examples":[{"lang":"console","intro":"Create entities directly inside an owned server scope, then read the session and window children. The outer scope stops its daemon and all created entities. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/CreateWindowPane.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-createwindowpane-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// The outer server scope owns everything created directly inside this daemon.\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nSession session = await owned.Value.CreateSessionAsync(\n new NewSessionRequest { Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\" }, token);\nWindow window = await session.CreateWindowAsync(\n new NewWindowRequest { Name = \"editor\", Command = \"/bin/cat\" }, token);\nPane original = (await window.GetPanesAsync(token)).Single();\nPane added = await original.SplitAsync(\n new SplitPaneRequest { Direction = PaneDirection.Right, Command = \"/bin/cat\" }, token);\n\nIReadOnlyList windows = await session.GetWindowsAsync(token);\nIReadOnlyList panes = await session.GetPanesAsync(token);\nif (windows.Count != 2 || panes.Count != 3 || added.Id == original.Id)\n{\n throw new InvalidOperationException(\"Expected two windows and three distinct panes.\");\n}\n\nConsole.WriteLine($\"Created session {session.Name} and window {window.Name}.\");\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Created session demo and window editor.\nWindows: 2; panes: 3\n"}]},"source":{"file":"src/LibTmux/Window.Relations.cs","line":115,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.GetPanesAsync","product":"core","slug":"libtmux-window-getpanesasync"},{"id":"LibTmux.Window.GetActivePaneAsync","name":"GetActivePaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The pane tmux reports.","raises":[{"type":"TmuxObjectNotFoundException","doc":"tmux reports no such pane."}]}],"doc":{"summary":"Reads from tmux this window's active pane.","body":"Asks tmux now, where holds what a capture saw."},"source":{"file":"src/LibTmux/Window.Relations.cs","line":135,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.GetActivePaneAsync","product":"core","slug":"libtmux-window-getactivepaneasync"},{"id":"LibTmux.Window.GetLinkedSessionsAsync","name":"GetLinkedSessionsAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The sessions that link this window."}],"doc":{"summary":"Reads every session this window is linked into.","body":"tmux can link one window into several sessions, so this reports every\nsession holding the window rather than a single parent."},"source":{"file":"src/LibTmux/Window.Relations.cs","line":155,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.GetLinkedSessionsAsync","product":"core","slug":"libtmux-window-getlinkedsessionsasync"},{"id":"LibTmux.Window.Options","name":"Options","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"TmuxOptions","doc":{"summary":"Gets the options of this window.","body":"tmux once spelled these set-window-option and\nshow-window-options. They are the ordinary option commands with\nthe window flag, which is what this scope carries."},"source":{"file":"src/LibTmux/Window.Scopes.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Options","product":"core","slug":"libtmux-window-options"},{"id":"LibTmux.Window.Hooks","name":"Hooks","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"TmuxHooks","doc":{"summary":"Gets the hooks of this window."},"source":{"file":"src/LibTmux/Window.Scopes.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Hooks","product":"core","slug":"libtmux-window-hooks"},{"id":"LibTmux.Window.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"string","doc":{"summary":"Gets the window name captured with this handle."},"source":{"file":"src/LibTmux/Window.State.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Name","product":"core","slug":"libtmux-window-name"},{"id":"LibTmux.Window.Index","name":"Index","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"int","doc":{"summary":"Gets the index this window holds in its session.","body":"A window linked into several sessions holds a different index in each,\nso this is the index of the session this handle was read through."},"source":{"file":"src/LibTmux/Window.State.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Index","product":"core","slug":"libtmux-window-index"},{"id":"LibTmux.Window.IsActive","name":"IsActive","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"bool","doc":{"summary":"Gets whether this captured placement is the selected window in its session."},"source":{"file":"src/LibTmux/Window.State.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.IsActive","product":"core","slug":"libtmux-window-isactive"},{"id":"LibTmux.Window.Active","name":"Active","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"bool","doc":{"summary":"Gets whether this is the current window of the session it was read through.","body":"A window linked into several sessions can be current in one and not in\nanother, as with ."},"source":{"file":"src/LibTmux/Window.State.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Active","product":"core","slug":"libtmux-window-active"},{"id":"LibTmux.Window.BellAlert","name":"BellAlert","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"bool","doc":{"summary":"Gets whether a bell rang in the window since it was last the current window.","body":"tmux sets it only while monitor-bell is on, which it is by default."},"source":{"file":"src/LibTmux/Window.State.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.BellAlert","product":"core","slug":"libtmux-window-bellalert"},{"id":"LibTmux.Window.ActivityAlert","name":"ActivityAlert","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"bool","doc":{"summary":"Gets whether the window printed since it was last the current window.","body":"tmux sets it only while monitor-activity is on."},"source":{"file":"src/LibTmux/Window.State.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.ActivityAlert","product":"core","slug":"libtmux-window-activityalert"},{"id":"LibTmux.Window.SilenceAlert","name":"SilenceAlert","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"bool","doc":{"summary":"Gets whether the window has been silent for monitor-silence seconds."},"source":{"file":"src/LibTmux/Window.State.cs","line":53,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SilenceAlert","product":"core","slug":"libtmux-window-silencealert"},{"id":"LibTmux.Window.Zoomed","name":"Zoomed","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"bool","doc":{"summary":"Gets whether one of the window's panes is zoomed to fill it."},"source":{"file":"src/LibTmux/Window.State.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Zoomed","product":"core","slug":"libtmux-window-zoomed"},{"id":"LibTmux.Window.Flags","name":"Flags","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"string","doc":{"summary":"Gets the window's flags as its status line shows them, such as * for the current window.","body":"Empty for a window with no flags."},"source":{"file":"src/LibTmux/Window.State.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Flags","product":"core","slug":"libtmux-window-flags"},{"id":"LibTmux.Window.Height","name":"Height","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"int","doc":{"summary":"Gets the window height captured with this handle."},"source":{"file":"src/LibTmux/Window.State.cs","line":67,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Height","product":"core","slug":"libtmux-window-height"},{"id":"LibTmux.Window.Width","name":"Width","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"int","doc":{"summary":"Gets the window width captured with this handle."},"source":{"file":"src/LibTmux/Window.State.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Width","product":"core","slug":"libtmux-window-width"},{"id":"LibTmux.Window.Layout","name":"Layout","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"string","doc":{"summary":"Gets the layout string captured with this handle.","body":"Restoring this through can rotate\nwhich pane lands in which position; see that method's remarks for when."},"source":{"file":"src/LibTmux/Window.State.cs","line":77,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Layout","product":"core","slug":"libtmux-window-layout"},{"id":"LibTmux.Window.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"Server","doc":{"summary":"Gets the server that owns this window.","body":"Reading this uses the owner captured with the entity."},"source":{"file":"src/LibTmux/Window.State.cs","line":85,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Server","product":"core","slug":"libtmux-window-server"},{"id":"LibTmux.Window.Session","name":"Session","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"Session","doc":{"summary":"Gets the session this window was read through."},"source":{"file":"src/LibTmux/Window.State.cs","line":91,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Session","product":"core","slug":"libtmux-window-session"},{"id":"LibTmux.Window.RefreshAsync","name":"RefreshAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying current state."}],"doc":{"summary":"Re-reads this window from tmux."},"source":{"file":"src/LibTmux/Window.State.cs","line":101,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.RefreshAsync","product":"core","slug":"libtmux-window-refreshasync"},{"id":"LibTmux.WindowCreationResult","name":"WindowCreationResult","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A created window and the initial pane identity reported by its creation command.","body":"The pane identifier belongs to 's endpoint and generation.\nIt describes creation time, not a captured relationship or current membership.\nResolve that exact identifier before acting on the pane; another client or\nhook may already have moved or removed it."},"source":{"file":"src/LibTmux/WindowCreationResult.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowCreationResult","product":"core","slug":"libtmux-windowcreationresult"},{"id":"LibTmux.WindowCreationResult.Window","name":"Window","kind":"property","modifiers":[],"parent":"LibTmux.WindowCreationResult","signatures":[],"type":"Window","doc":{"summary":"Gets the created window in the creating session's placement."},"source":{"file":"src/LibTmux/WindowCreationResult.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowCreationResult.Window","product":"core","slug":"libtmux-windowcreationresult-window"},{"id":"LibTmux.WindowCreationResult.InitialPaneId","name":"InitialPaneId","kind":"property","modifiers":[],"parent":"LibTmux.WindowCreationResult","signatures":[],"type":"PaneId","doc":{"summary":"Gets the initial pane identifier from the creation reply."},"source":{"file":"src/LibTmux/WindowCreationResult.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowCreationResult.InitialPaneId","product":"core","slug":"libtmux-windowcreationresult-initialpaneid"},{"id":"LibTmux.WindowId","name":"WindowId","kind":"struct","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Represents a generation-independent tmux window identifier."},"source":{"file":"src/LibTmux/WindowId.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowId","product":"core","slug":"libtmux-windowid"},{"id":"LibTmux.WindowId.WindowId","name":"WindowId","kind":"method","modifiers":[],"parent":"LibTmux.WindowId","signatures":[{"params":[{"name":"value","type":"int"}]}],"doc":{"summary":"Initializes a window identifier."},"source":{"file":"src/LibTmux/WindowId.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowId.WindowId","product":"core","slug":"libtmux-windowid-windowid"},{"id":"LibTmux.WindowId.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.WindowId","signatures":[],"type":"int","doc":{"summary":"Gets the nonnegative numeric value."},"source":{"file":"src/LibTmux/WindowId.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowId.Value","product":"core","slug":"libtmux-windowid-value"},{"id":"LibTmux.WindowId.Parse","name":"Parse","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.WindowId","signatures":[{"params":[{"name":"text","type":"string"}],"returns":"WindowId"},{"params":[{"name":"text","type":"ReadOnlySpan","doc":"The text to parse."}],"returns":"WindowId","returnsDoc":"The parsed identifier.","raises":[{"type":"FormatException","doc":"The text is not a canonical window identifier."}]}],"doc":{"summary":"Parses a prefixed window identifier."},"source":{"file":"src/LibTmux/WindowId.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowId.Parse","product":"core","slug":"libtmux-windowid-parse"},{"id":"LibTmux.WindowId.TryParse","name":"TryParse","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.WindowId","signatures":[{"params":[{"name":"text","type":"string?"},{"name":"result","type":"WindowId"}],"returns":"bool"},{"params":[{"name":"text","type":"ReadOnlySpan","doc":"The text to parse."},{"name":"result","type":"WindowId","doc":"The parsed identifier when this succeeds."}],"returns":"bool","returnsDoc":" when the text was a canonical identifier."}],"doc":{"summary":"Tries to parse a prefixed window identifier."},"source":{"file":"src/LibTmux/WindowId.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowId.TryParse","product":"core","slug":"libtmux-windowid-tryparse"},{"id":"LibTmux.WindowId.CompareTo","name":"CompareTo","kind":"method","modifiers":[],"parent":"LibTmux.WindowId","signatures":[{"params":[{"name":"other","type":"WindowId","doc":"The identifier to compare against."}],"returns":"int","returnsDoc":"A negative value, zero, or a positive value."}],"doc":{"summary":"Orders this identifier against another numerically.","body":"tmux hands out window identifiers in increasing order, so the ordering\nis oldest first. Without it OrderBy and Array.Sort throw\nrather than sorting."},"source":{"file":"src/LibTmux/WindowId.cs","line":76,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowId.CompareTo","product":"core","slug":"libtmux-windowid-compareto"},{"id":"LibTmux.WindowId.ToString","name":"ToString","kind":"method","modifiers":[],"parent":"LibTmux.WindowId","signatures":[{"params":[],"returns":"string"}],"doc":{"summary":"Returns the canonical prefixed identifier."},"source":{"file":"src/LibTmux/WindowId.cs","line":124,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowId.ToString","product":"core","slug":"libtmux-windowid-tostring"},{"id":"LibTmux.Query.QueryEdgeParser","name":"QueryEdgeParser","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Parses the one legacy lookup spelling this port still carries.","body":"Python accepts a whole family of field__operator lookups. Only\nname__contains survives here, as a migration aid for callers porting\nkeyword-argument filters. New code writes an expression and lets translation\nbuild the document.\n\nThis deliberately diverges from Python: there, an unrecognised\noperator falls back silently to an exact match. Answering a\ndifferent question than the one asked is the failure this port\nrefuses."},"source":{"file":"src/LibTmux/Query/NameContainsLookupParser.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryEdgeParser","product":"core","slug":"libtmux-query-queryedgeparser"},{"id":"LibTmux.Query.QueryEdgeParser.ParseNameContains","name":"ParseNameContains","kind":"method","modifiers":["static"],"parent":"LibTmux.Query.QueryEdgeParser","signatures":[{"params":[{"name":"target","type":"QueryTarget","doc":"The tmux object whose name is matched."},{"name":"value","type":"string","doc":"The substring the name must contain."}],"returns":"QueryDocument","returnsDoc":"The equivalent query document.","raises":[{"type":"UnsupportedQueryExpressionException","doc":"The target has no queryable name field."}]}],"doc":{"summary":"Parses a name__contains lookup into a query document."},"source":{"file":"src/LibTmux/Query/NameContainsLookupParser.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryEdgeParser.ParseNameContains","product":"core","slug":"libtmux-query-queryedgeparser-parsenamecontains"},{"id":"LibTmux.Query.QueryDocument","name":"QueryDocument","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One translated query predicate and its wire schema.","body":"The document is the stable interchange form. It is produced by translation\nand never by client evaluation, so an expression that cannot be translated\nfails loudly rather than silently degrading to in-memory filtering."},"source":{"file":"src/LibTmux/Query/QueryDocument.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryDocument","product":"core","slug":"libtmux-query-querydocument"},{"id":"LibTmux.Query.QueryDocument.Schema","name":"Schema","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryDocument","signatures":[],"type":"string","doc":{"summary":"Gets the wire schema identifier."},"source":{"file":"src/LibTmux/Query/QueryDocument.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryDocument.Schema","product":"core","slug":"libtmux-query-querydocument-schema"},{"id":"LibTmux.Query.QueryDocument.Version","name":"Version","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryDocument","signatures":[],"type":"int","doc":{"summary":"Gets the wire schema version."},"source":{"file":"src/LibTmux/Query/QueryDocument.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryDocument.Version","product":"core","slug":"libtmux-query-querydocument-version"},{"id":"LibTmux.Query.QueryDocument.Target","name":"Target","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryDocument","signatures":[],"type":"QueryTarget","doc":{"summary":"Gets the object the predicate selects."},"source":{"file":"src/LibTmux/Query/QueryDocument.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryDocument.Target","product":"core","slug":"libtmux-query-querydocument-target"},{"id":"LibTmux.Query.QueryDocument.RequiredSnapshotDepth","name":"RequiredSnapshotDepth","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryDocument","signatures":[],"type":"SnapshotDepth","doc":{"summary":"Gets the snapshot depth this predicate needs to evaluate.","body":"A quantifier over a relation cannot be answered by a shallower capture,\nso the depth is derived from the predicate rather than assumed."},"source":{"file":"src/LibTmux/Query/QueryDocument.cs","line":51,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryDocument.RequiredSnapshotDepth","product":"core","slug":"libtmux-query-querydocument-requiredsnapshotdepth"},{"id":"LibTmux.Query.QueryExtensions","name":"QueryExtensions","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Translates, compiles, and applies declarative query predicates.","body":"The same predicate translates to the portable document and compiles to an\nin-memory delegate, so its stored form and local interpretation share one\nmeaning."},"source":{"file":"src/LibTmux/Query/QueryExtensions.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryExtensions","product":"core","slug":"libtmux-query-queryextensions"},{"id":"LibTmux.Query.QueryExtensions.Translate","name":"Translate","kind":"method","modifiers":["static"],"parent":"LibTmux.Query.QueryExtensions","signatures":[{"params":[{"name":"predicate","type":"Expression>","doc":"The predicate to translate."}],"returns":"QueryDocument","typeParams":["T"],"returnsDoc":"The translated document.","raises":[{"type":"UnsupportedQueryExpressionException","doc":"The expression contains a node the query vocabulary does not cover."}]}],"doc":{"summary":"Translates an expression into a wire document.","examples":[{"lang":"console","intro":"Compare LINQ with translated expression and document predicates, preserve cancellation, and capture the hierarchy before filtering its children. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerQueries.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\nusing System.Linq.Expressions;\nusing LibTmux.Query;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverqueries-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope demo = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\" }, token);\nawait using OwnedSessionScope worker = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/cat\" }, token);\nServer server = await Server.ConnectAsync(options, token);\nIReadOnlyList sessions = await server.GetSessionsAsync(token);\n\n// LINQ and portable predicates operate on these rows; neither reads tmux.\nSession native = sessions.Where(session => session.Name == \"demo\").Single();\nExpression> predicate = session => session.Name == \"demo\";\nQueryDocument document = QueryExtensions.Translate(predicate);\nSession expressionMatch = sessions.Matching(predicate).Single();\nSession documentMatch = sessions.Matching(document).Single();\nSession cancellableMatch = sessions.Matching(document, token).Single();\nif (new[] { native, expressionMatch, documentMatch, cancellableMatch }\n .Any(session => session.Id != demo.Value.Id))\n{\n throw new InvalidOperationException(\"The native and portable predicates selected different sessions.\");\n}\n\n// A predicate that traverses children requires an explicitly captured hierarchy.\nServer captured = await server.CaptureSnapshotAsync(SnapshotDepth.Panes, token);\nSession parent = captured.Sessions.Matching(session =>\n session.Windows.Any(window => window.Name == \"shell\" && window.Panes.Any(pane => pane.CurrentCommand == \"cat\"))).Single();\nif (parent.Id != demo.Value.Id)\n{\n throw new InvalidOperationException(\"The hierarchy predicate selected an unexpected parent.\");\n}\n\nusing CancellationTokenSource cancelled = new();\ncancelled.Cancel();\ntry\n{\n _ = sessions.Matching(document, cancelled.Token);\n throw new InvalidOperationException(\"Cancelled filtering must throw.\");\n}\ncatch (OperationCanceledException)\n{\n Console.WriteLine(\"Cancelled filtering remains OperationCanceledException.\");\n}\nConsole.WriteLine($\"LINQ, expression and document filters: {native.Name}; captured parent: {parent.Name}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Cancelled filtering remains OperationCanceledException.\nLINQ, expression and document filters: demo; captured parent: demo\n"}]},"source":{"file":"src/LibTmux/Query/QueryExtensions.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryExtensions.Translate","product":"core","slug":"libtmux-query-queryextensions-translate"},{"id":"LibTmux.Query.QueryExtensions.Plan","name":"Plan","kind":"method","modifiers":["static"],"parent":"LibTmux.Query.QueryExtensions","signatures":[{"params":[{"name":"document","type":"QueryDocument","doc":"The portable predicate."},{"name":"daemonVersion","type":"TmuxVersion","doc":"The daemon version observed by Server.InspectAsync."},{"name":"pushdown","type":"QueryPushdown","default":"QueryPushdown.Auto","doc":"Whether predicates may execute inside tmux."}],"returns":"QueryPlan","typeParams":["T"],"returnsDoc":"An immutable, reusable execution plan."}],"doc":{"summary":"Plans an explicit query against the supplied daemon version without I/O."},"source":{"file":"src/LibTmux/Query/QueryExtensions.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryExtensions.Plan","product":"core","slug":"libtmux-query-queryextensions-plan"},{"id":"LibTmux.Query.QueryExtensions.Compile","name":"Compile","kind":"method","modifiers":["static"],"parent":"LibTmux.Query.QueryExtensions","signatures":[{"params":[{"name":"document","type":"QueryDocument","doc":"The translated document."}],"returns":"Func","typeParams":["T"],"returnsDoc":"The compiled predicate."}],"doc":{"summary":"Compiles a document into an in-memory predicate."},"source":{"file":"src/LibTmux/Query/QueryExtensions.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryExtensions.Compile","product":"core","slug":"libtmux-query-queryextensions-compile"},{"id":"LibTmux.Query.QueryExtensions.Matching","name":"Matching","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.Query.QueryExtensions","signatures":[{"params":[{"name":"source","type":"IEnumerable","doc":"The captured elements."},{"name":"predicate","type":"Expression>","doc":"The predicate to translate and apply."}],"returns":"IReadOnlyList","typeParams":["T"],"returnsDoc":"The matching elements."},{"params":[{"name":"source","type":"IEnumerable","doc":"The captured elements."},{"name":"document","type":"QueryDocument","doc":"The translated document."}],"returns":"IReadOnlyList","typeParams":["T"],"returnsDoc":"The matching elements."},{"params":[{"name":"source","type":"IEnumerable","doc":"The captured elements."},{"name":"document","type":"QueryDocument","doc":"The translated document."},{"name":"cancellationToken","type":"CancellationToken","doc":"Stops enumeration and predicate evaluation."}],"returns":"IReadOnlyList","typeParams":["T"],"returnsDoc":"The matching elements."}],"doc":{"summary":"Filters a snapshot with a declarative predicate.","examples":[{"lang":"console","intro":"Compare LINQ with translated expression and document predicates, preserve cancellation, and capture the hierarchy before filtering its children. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerQueries.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\nusing System.Linq.Expressions;\nusing LibTmux.Query;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverqueries-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope demo = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\" }, token);\nawait using OwnedSessionScope worker = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/cat\" }, token);\nServer server = await Server.ConnectAsync(options, token);\nIReadOnlyList sessions = await server.GetSessionsAsync(token);\n\n// LINQ and portable predicates operate on these rows; neither reads tmux.\nSession native = sessions.Where(session => session.Name == \"demo\").Single();\nExpression> predicate = session => session.Name == \"demo\";\nQueryDocument document = QueryExtensions.Translate(predicate);\nSession expressionMatch = sessions.Matching(predicate).Single();\nSession documentMatch = sessions.Matching(document).Single();\nSession cancellableMatch = sessions.Matching(document, token).Single();\nif (new[] { native, expressionMatch, documentMatch, cancellableMatch }\n .Any(session => session.Id != demo.Value.Id))\n{\n throw new InvalidOperationException(\"The native and portable predicates selected different sessions.\");\n}\n\n// A predicate that traverses children requires an explicitly captured hierarchy.\nServer captured = await server.CaptureSnapshotAsync(SnapshotDepth.Panes, token);\nSession parent = captured.Sessions.Matching(session =>\n session.Windows.Any(window => window.Name == \"shell\" && window.Panes.Any(pane => pane.CurrentCommand == \"cat\"))).Single();\nif (parent.Id != demo.Value.Id)\n{\n throw new InvalidOperationException(\"The hierarchy predicate selected an unexpected parent.\");\n}\n\nusing CancellationTokenSource cancelled = new();\ncancelled.Cancel();\ntry\n{\n _ = sessions.Matching(document, cancelled.Token);\n throw new InvalidOperationException(\"Cancelled filtering must throw.\");\n}\ncatch (OperationCanceledException)\n{\n Console.WriteLine(\"Cancelled filtering remains OperationCanceledException.\");\n}\nConsole.WriteLine($\"LINQ, expression and document filters: {native.Name}; captured parent: {parent.Name}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Cancelled filtering remains OperationCanceledException.\nLINQ, expression and document filters: demo; captured parent: demo\n"}]},"source":{"file":"src/LibTmux/Query/QueryExtensions.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryExtensions.Matching","product":"core","slug":"libtmux-query-queryextensions-matching"},{"id":"LibTmux.Query.QueryFieldCatalog","name":"QueryFieldCatalog","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Discovers the closed query vocabulary and its built-in entity bindings."},"source":{"file":"src/LibTmux/Query/QueryFieldCatalog.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldCatalog","product":"core","slug":"libtmux-query-queryfieldcatalog"},{"id":"LibTmux.Query.QueryFieldCatalog.GetFields","name":"GetFields","kind":"method","modifiers":["static"],"parent":"LibTmux.Query.QueryFieldCatalog","signatures":[{"params":[{"name":"target","type":"QueryTarget","doc":"The target whose vocabulary is requested."}],"returns":"IReadOnlyList","returnsDoc":"Immutable descriptors in stable wire-name order.","raises":[{"type":"ArgumentOutOfRangeException","doc":"The target is undefined."}]}],"doc":{"summary":"Reads the supported fields for one portable query target."},"source":{"file":"src/LibTmux/Query/QueryFieldCatalog.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldCatalog.GetFields","product":"core","slug":"libtmux-query-queryfieldcatalog-getfields"},{"id":"LibTmux.Query.QueryRelationCardinality","name":"QueryRelationCardinality","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names whether a captured query relation has one child or a collection."},"source":{"file":"src/LibTmux/Query/QueryFieldCatalog.cs","line":559,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryRelationCardinality","product":"core","slug":"libtmux-query-queryrelationcardinality"},{"id":"LibTmux.Query.QueryRelationCardinality.One","name":"One","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryRelationCardinality","signatures":[],"doc":{"summary":"A captured to-one relation."},"source":{"file":"src/LibTmux/Query/QueryFieldCatalog.cs","line":562,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryRelationCardinality.One","product":"core","slug":"libtmux-query-queryrelationcardinality-one"},{"id":"LibTmux.Query.QueryRelationCardinality.Many","name":"Many","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryRelationCardinality","signatures":[],"doc":{"summary":"A captured collection relation."},"source":{"file":"src/LibTmux/Query/QueryFieldCatalog.cs","line":565,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryRelationCardinality.Many","product":"core","slug":"libtmux-query-queryrelationcardinality-many"},{"id":"LibTmux.Query.QueryFieldDescriptor","name":"QueryFieldDescriptor","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one field accepted by the current portable query schema.","body":"Property paths describe built-in entity bindings. A schema-only field has no\nproperty path. Uncaptured state still throws; it is not a nullable field value."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor","product":"core","slug":"libtmux-query-queryfielddescriptor"},{"id":"LibTmux.Query.QueryFieldDescriptor.WireName","name":"WireName","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"string","doc":{"summary":"Gets the field name used in query JSON."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.WireName","product":"core","slug":"libtmux-query-queryfielddescriptor-wirename"},{"id":"LibTmux.Query.QueryFieldDescriptor.Target","name":"Target","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"QueryTarget","doc":{"summary":"Gets the target that owns this field."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.Target","product":"core","slug":"libtmux-query-queryfielddescriptor-target"},{"id":"LibTmux.Query.QueryFieldDescriptor.ValueKind","name":"ValueKind","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"QueryValueKind?","doc":{"summary":"Gets the scalar type, or null for a to-one relation."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.ValueKind","product":"core","slug":"libtmux-query-queryfielddescriptor-valuekind"},{"id":"LibTmux.Query.QueryFieldDescriptor.ScalarPropertyPath","name":"ScalarPropertyPath","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"string?","doc":{"summary":"Gets the native scalar property path, or null without a scalar binding.","body":"Collection counts end in .Count."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.ScalarPropertyPath","product":"core","slug":"libtmux-query-queryfielddescriptor-scalarpropertypath"},{"id":"LibTmux.Query.QueryFieldDescriptor.RelationPropertyPath","name":"RelationPropertyPath","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"string?","doc":{"summary":"Gets the native relation property path, or null without a relation binding.","body":"Captured active values end in .Value."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.RelationPropertyPath","product":"core","slug":"libtmux-query-queryfielddescriptor-relationpropertypath"},{"id":"LibTmux.Query.QueryFieldDescriptor.RelatedTarget","name":"RelatedTarget","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"QueryTarget?","doc":{"summary":"Gets the related target kind, or null for a scalar-only field."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.RelatedTarget","product":"core","slug":"libtmux-query-queryfielddescriptor-relatedtarget"},{"id":"LibTmux.Query.QueryFieldDescriptor.Cardinality","name":"Cardinality","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"QueryRelationCardinality?","doc":{"summary":"Gets the relation cardinality, or null for a scalar-only field."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.Cardinality","product":"core","slug":"libtmux-query-queryfielddescriptor-cardinality"},{"id":"LibTmux.Query.QueryFieldDescriptor.MinimumSnapshotDepth","name":"MinimumSnapshotDepth","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"SnapshotDepth?","doc":{"summary":"Gets the field's minimum hierarchy capture depth, or null outside that hierarchy.","body":"Clients and schema-only fields have no hierarchy capture depth. Nested\npredicates may need a deeper capture; read ."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":62,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.MinimumSnapshotDepth","product":"core","slug":"libtmux-query-queryfielddescriptor-minimumsnapshotdepth"},{"id":"LibTmux.Query.QueryFieldDescriptor.IsNullable","name":"IsNullable","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"bool?","doc":{"summary":"Gets whether the captured native scalar can be null, or null without a scalar binding.","body":"The schema permits null equality comparisons even for nonnullable fields."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.IsNullable","product":"core","slug":"libtmux-query-queryfielddescriptor-isnullable"},{"id":"LibTmux.Query.QueryFieldDescriptor.Operators","name":"Operators","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the accepted wire operation names for this field.","body":"Comparison names populate operator; any and all populate\nquantifier. regex and related identify their node kinds.\nBoolean composition is independent of field operations."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.Operators","product":"core","slug":"libtmux-query-queryfielddescriptor-operators"},{"id":"LibTmux.Query.QueryTarget","name":"QueryTarget","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names the tmux object a field or quantifier reads."},"source":{"file":"src/LibTmux/Query/QueryNode.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryTarget","product":"core","slug":"libtmux-query-querytarget"},{"id":"LibTmux.Query.QueryTarget.Session","name":"Session","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryTarget","signatures":[],"doc":{"summary":"A tmux session."},"source":{"file":"src/LibTmux/Query/QueryNode.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryTarget.Session","product":"core","slug":"libtmux-query-querytarget-session"},{"id":"LibTmux.Query.QueryTarget.Window","name":"Window","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryTarget","signatures":[],"doc":{"summary":"A tmux window."},"source":{"file":"src/LibTmux/Query/QueryNode.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryTarget.Window","product":"core","slug":"libtmux-query-querytarget-window"},{"id":"LibTmux.Query.QueryTarget.Pane","name":"Pane","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryTarget","signatures":[],"doc":{"summary":"A tmux pane."},"source":{"file":"src/LibTmux/Query/QueryNode.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryTarget.Pane","product":"core","slug":"libtmux-query-querytarget-pane"},{"id":"LibTmux.Query.QueryTarget.Client","name":"Client","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryTarget","signatures":[],"doc":{"summary":"A tmux client."},"source":{"file":"src/LibTmux/Query/QueryNode.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryTarget.Client","product":"core","slug":"libtmux-query-querytarget-client"},{"id":"LibTmux.Query.QueryPushdown","name":"QueryPushdown","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Controls predicate evaluation inside tmux."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPushdown","product":"core","slug":"libtmux-query-querypushdown"},{"id":"LibTmux.Query.QueryPushdown.Never","name":"Never","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryPushdown","signatures":[],"doc":{"summary":"Evaluate the whole predicate locally."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPushdown.Never","product":"core","slug":"libtmux-query-querypushdown-never"},{"id":"LibTmux.Query.QueryPushdown.Auto","name":"Auto","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryPushdown","signatures":[],"doc":{"summary":"Evaluate an exact leading portion in tmux and the remainder locally."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPushdown.Auto","product":"core","slug":"libtmux-query-querypushdown-auto"},{"id":"LibTmux.Query.QueryPushdown.Require","name":"Require","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryPushdown","signatures":[],"doc":{"summary":"Reject any predicate that cannot execute entirely in tmux."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPushdown.Require","product":"core","slug":"libtmux-query-querypushdown-require"},{"id":"LibTmux.Query.QueryPlan","name":"QueryPlan","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"An immutable query plan; inspecting it never reads tmux."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan","product":"core","slug":"libtmux-query-queryplan"},{"id":"LibTmux.Query.QueryPlan.Document","name":"Document","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryPlan","signatures":[],"type":"QueryDocument","doc":{"summary":"Gets the complete portable predicate."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan.Document","product":"core","slug":"libtmux-query-queryplan-document"},{"id":"LibTmux.Query.QueryPlan.DaemonVersion","name":"DaemonVersion","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryPlan","signatures":[],"type":"TmuxVersion","doc":{"summary":"Gets the daemon version against which this plan was prepared."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan.DaemonVersion","product":"core","slug":"libtmux-query-queryplan-daemonversion"},{"id":"LibTmux.Query.QueryPlan.Pushdown","name":"Pushdown","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryPlan","signatures":[],"type":"QueryPushdown","doc":{"summary":"Gets the requested evaluation mode."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan.Pushdown","product":"core","slug":"libtmux-query-queryplan-pushdown"},{"id":"LibTmux.Query.QueryPlan.PushedPredicate","name":"PushedPredicate","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryPlan","signatures":[],"type":"QueryDocument?","doc":{"summary":"Gets the predicate evaluated in tmux, or null when evaluation is local."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan.PushedPredicate","product":"core","slug":"libtmux-query-queryplan-pushedpredicate"},{"id":"LibTmux.Query.QueryPlan.ResidualPredicate","name":"ResidualPredicate","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryPlan","signatures":[],"type":"QueryDocument?","doc":{"summary":"Gets the predicate evaluated locally, or null when evaluation is entirely in tmux."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan.ResidualPredicate","product":"core","slug":"libtmux-query-queryplan-residualpredicate"},{"id":"LibTmux.Query.QueryPlan.RequiredFields","name":"RequiredFields","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryPlan","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets every scalar or relation field referenced by this query."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan.RequiredFields","product":"core","slug":"libtmux-query-queryplan-requiredfields"},{"id":"LibTmux.Query.QueryPlan.RequiredSnapshotDepth","name":"RequiredSnapshotDepth","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryPlan","signatures":[],"type":"SnapshotDepth","doc":{"summary":"Gets the complete hierarchy depth required for local evaluation."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan.RequiredSnapshotDepth","product":"core","slug":"libtmux-query-queryplan-requiredsnapshotdepth"},{"id":"LibTmux.Query.QueryPlan.FallbackReasons","name":"FallbackReasons","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryPlan","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets reasons why some or all predicate evaluation remains local."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan.FallbackReasons","product":"core","slug":"libtmux-query-queryplan-fallbackreasons"},{"id":"LibTmux.Query.QueryPlan.ExecuteAsync","name":"ExecuteAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Query.QueryPlan","signatures":[{"params":[{"name":"server","type":"Server","doc":"The endpoint to inspect without initializing it."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops acquisition, evaluation, and publication."}],"returns":"Task>","returnsDoc":"Ordered matches retaining the complete captured graph."}],"doc":{"summary":"Acquires a fresh snapshot and evaluates this plan."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":62,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan.ExecuteAsync","product":"core","slug":"libtmux-query-queryplan-executeasync"},{"id":"LibTmux.Query.QueryResult","name":"QueryResult","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Ordered, read-only matches and the complete observation that produced them."},"source":{"file":"src/LibTmux/Query/QueryResult.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryResult","product":"core","slug":"libtmux-query-queryresult"},{"id":"LibTmux.Query.QueryResult.Snapshot","name":"Snapshot","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryResult","signatures":[],"type":"Server","doc":{"summary":"Gets the complete captured graph, including unselected entities."},"source":{"file":"src/LibTmux/Query/QueryResult.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryResult.Snapshot","product":"core","slug":"libtmux-query-queryresult-snapshot"},{"id":"LibTmux.Query.QueryResult.Count","name":"Count","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryResult","signatures":[],"type":"int","doc":{"summary":""},"source":{"file":"src/LibTmux/Query/QueryResult.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryResult.Count","product":"core","slug":"libtmux-query-queryresult-count"},{"id":"LibTmux.Query.QueryResult.GetEnumerator","name":"GetEnumerator","kind":"method","modifiers":[],"parent":"LibTmux.Query.QueryResult","signatures":[{"params":[],"returns":"IEnumerator"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Query/QueryResult.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryResult.GetEnumerator","product":"core","slug":"libtmux-query-queryresult-getenumerator"},{"id":"LibTmux.Query.QueryValueKind","name":"QueryValueKind","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names the scalar value types accepted by the portable query vocabulary."},"source":{"file":"src/LibTmux/Query/QueryValueKind.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryValueKind","product":"core","slug":"libtmux-query-queryvaluekind"},{"id":"LibTmux.Query.QueryValueKind.Boolean","name":"Boolean","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryValueKind","signatures":[],"doc":{"summary":"A Boolean value."},"source":{"file":"src/LibTmux/Query/QueryValueKind.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryValueKind.Boolean","product":"core","slug":"libtmux-query-queryvaluekind-boolean"},{"id":"LibTmux.Query.QueryValueKind.Int64","name":"Int64","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryValueKind","signatures":[],"doc":{"summary":"A signed 64-bit integer."},"source":{"file":"src/LibTmux/Query/QueryValueKind.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryValueKind.Int64","product":"core","slug":"libtmux-query-queryvaluekind-int64"},{"id":"LibTmux.Query.QueryValueKind.String","name":"String","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryValueKind","signatures":[],"doc":{"summary":"Ordinal text."},"source":{"file":"src/LibTmux/Query/QueryValueKind.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryValueKind.String","product":"core","slug":"libtmux-query-queryvaluekind-string"},{"id":"LibTmux.Query.QueryValueKind.TypedId","name":"TypedId","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryValueKind","signatures":[],"doc":{"summary":"An identifier tagged with its target entity kind."},"source":{"file":"src/LibTmux/Query/QueryValueKind.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryValueKind.TypedId","product":"core","slug":"libtmux-query-queryvaluekind-typedid"},{"id":"LibTmux.Workspace.WorkspaceActionKind","name":"WorkspaceActionKind","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names one ordered workspace operation."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind"},{"id":"LibTmux.Workspace.WorkspaceActionKind.CreateSession","name":"CreateSession","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Creates a session with a temporary bootstrap window."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.CreateSession","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-createsession"},{"id":"LibTmux.Workspace.WorkspaceActionKind.CaptureBootstrap","name":"CaptureBootstrap","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Reads the sole bootstrap window created with a session."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.CaptureBootstrap","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-capturebootstrap"},{"id":"LibTmux.Workspace.WorkspaceActionKind.RemoveSession","name":"RemoveSession","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Removes the exact session selected during planning."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.RemoveSession","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-removesession"},{"id":"LibTmux.Workspace.WorkspaceActionKind.CreateWindow","name":"CreateWindow","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Creates a window in the selected session."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.CreateWindow","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-createwindow"},{"id":"LibTmux.Workspace.WorkspaceActionKind.CaptureFirstPane","name":"CaptureFirstPane","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Reads the first pane of a newly created window."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.CaptureFirstPane","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-capturefirstpane"},{"id":"LibTmux.Workspace.WorkspaceActionKind.SplitPane","name":"SplitPane","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Creates another pane by splitting a known pane."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.SplitPane","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-splitpane"},{"id":"LibTmux.Workspace.WorkspaceActionKind.SetOption","name":"SetOption","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Sets a session, window or pane option."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.SetOption","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-setoption"},{"id":"LibTmux.Workspace.WorkspaceActionKind.UnlinkWindow","name":"UnlinkWindow","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Removes a captured placement, destroying the window only when no other links remain."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.UnlinkWindow","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-unlinkwindow"},{"id":"LibTmux.Workspace.WorkspaceActionKind.MoveToBaseIndex","name":"MoveToBaseIndex","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Moves the first workspace window to the session's effective base index."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.MoveToBaseIndex","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-movetobaseindex"},{"id":"LibTmux.Workspace.WorkspaceActionKind.SendText","name":"SendText","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Sends literal command text, followed by Enter when requested."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.SendText","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-sendtext"},{"id":"LibTmux.Workspace.WorkspaceActionKind.SelectLayout","name":"SelectLayout","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Applies a layout to the created panes."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.SelectLayout","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-selectlayout"},{"id":"LibTmux.Workspace.WorkspaceActionKind.SelectPane","name":"SelectPane","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Selects a pane by its created identity."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.SelectPane","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-selectpane"},{"id":"LibTmux.Workspace.WorkspaceActionKind.SelectWindow","name":"SelectWindow","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Selects a window by its created placement."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.SelectWindow","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-selectwindow"},{"id":"LibTmux.Workspace.WorkspaceActionKind.OpenReadinessChannel","name":"OpenReadinessChannel","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Opens a unique cooperative readiness channel before pane startup."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.OpenReadinessChannel","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-openreadinesschannel"},{"id":"LibTmux.Workspace.WorkspaceActionKind.WaitForReadiness","name":"WaitForReadiness","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Waits for the pane's startup program to signal its channel."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.WaitForReadiness","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-waitforreadiness"},{"id":"LibTmux.Workspace.WorkspaceActionKind.CloseReadinessChannel","name":"CloseReadinessChannel","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Closes the owned readiness channel."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.CloseReadinessChannel","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-closereadinesschannel"},{"id":"LibTmux.Workspace.WorkspaceActionKind.ReuseSession","name":"ReuseSession","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Returns the exact existing session without mutation."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.ReuseSession","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-reusesession"},{"id":"LibTmux.Workspace.WorkspaceActionKind.RunHostScript","name":"RunHostScript","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Runs an allowed host script from the resolved session directory, or from the document directory when no session directory is declared."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.RunHostScript","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-runhostscript"},{"id":"LibTmux.Workspace.WorkspaceActionKind.CaptureResult","name":"CaptureResult","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Captures the final session and created placements in a server-wide pane snapshot."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.CaptureResult","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-captureresult"},{"id":"LibTmux.Workspace.WorkspaceActionKind.ArrangePanes","name":"ArrangePanes","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Arranges existing panes to make space for the next split; failure stops application."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.ArrangePanes","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-arrangepanes"},{"id":"LibTmux.Workspace.WorkspaceActionKind.MoveToWindowIndex","name":"MoveToWindowIndex","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Moves the first workspace window to its declared session-relative index."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.MoveToWindowIndex","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-movetowindowindex"},{"id":"LibTmux.Workspace.WorkspaceAction","name":"WorkspaceAction","kind":"class","modifiers":["overload"],"signatures":[],"doc":{"summary":"Describes one immutable operation over plan-local targets.","body":"Targets are symbols resolved to native identities during application. Display and\nenumeration perform no I/O. Derived generic actions expose the actual request."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceAction","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceaction"},{"id":"LibTmux.Workspace.WorkspaceAction.Kind","name":"Kind","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceAction","signatures":[],"type":"WorkspaceActionKind","doc":{"summary":"Gets the operation to perform."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceAction.Kind","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceaction-kind"},{"id":"LibTmux.Workspace.WorkspaceAction.Target","name":"Target","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceAction","signatures":[],"type":"string","doc":{"summary":"Gets the symbolic target created or used by this action."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":71,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceAction.Target","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceaction-target"},{"id":"LibTmux.Workspace.WorkspaceAction.SourceTarget","name":"SourceTarget","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceAction","signatures":[],"type":"string?","doc":{"summary":"Gets the parent or source target, when the action needs one."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceAction.SourceTarget","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceaction-sourcetarget"},{"id":"LibTmux.Workspace.WorkspaceAction.ToString","name":"ToString","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceAction","signatures":[{"params":[],"returns":"string"}],"doc":{"summary":""},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":77,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceAction.ToString","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceaction-tostring"},{"id":"LibTmux.Workspace.WorkspaceAction.Request","name":"Request","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceAction","signatures":[],"type":"TRequest","doc":{"summary":"Gets the request reviewed by the caller before application."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":88,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceAction.Request","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceaction-request"},{"id":"LibTmux.Workspace.WorkspaceActionState","name":"WorkspaceActionState","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Describes how one reviewed workspace operation ended."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionState","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionstate"},{"id":"LibTmux.Workspace.WorkspaceActionState.NotStarted","name":"NotStarted","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionState","signatures":[],"doc":{"summary":"The operation was not attempted."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionState.NotStarted","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionstate-notstarted"},{"id":"LibTmux.Workspace.WorkspaceActionState.Completed","name":"Completed","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionState","signatures":[],"doc":{"summary":"The operation completed; sent input does not imply program completion."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionState.Completed","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionstate-completed"},{"id":"LibTmux.Workspace.WorkspaceActionState.Rejected","name":"Rejected","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionState","signatures":[],"doc":{"summary":"tmux rejected an optional layout and application continued."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionState.Rejected","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionstate-rejected"},{"id":"LibTmux.Workspace.WorkspaceActionState.Failed","name":"Failed","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionState","signatures":[],"doc":{"summary":"The operation failed with known dispatch information."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionState.Failed","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionstate-failed"},{"id":"LibTmux.Workspace.WorkspaceActionState.Unknown","name":"Unknown","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionState","signatures":[],"doc":{"summary":"The operation failed without establishing its final effect."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionState.Unknown","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionstate-unknown"},{"id":"LibTmux.Workspace.WorkspaceActionOutcome","name":"WorkspaceActionOutcome","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Records one plan action, its dispatch and any materialized result or failure."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionOutcome","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionoutcome"},{"id":"LibTmux.Workspace.WorkspaceActionOutcome.Action","name":"Action","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionOutcome","signatures":[],"type":"WorkspaceAction","doc":{"summary":"Gets the same immutable action instance held by the reviewed plan."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionOutcome.Action","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionoutcome-action"},{"id":"LibTmux.Workspace.WorkspaceActionOutcome.State","name":"State","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionOutcome","signatures":[],"type":"WorkspaceActionState","doc":{"summary":"Gets whether the action completed, failed or was never attempted."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionOutcome.State","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionoutcome-state"},{"id":"LibTmux.Workspace.WorkspaceActionOutcome.Dispatch","name":"Dispatch","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionOutcome","signatures":[],"type":"TmuxDispatchState","doc":{"summary":"Gets whether dispatch was observed; unknown effects must not be retried blindly."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionOutcome.Dispatch","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionoutcome-dispatch"},{"id":"LibTmux.Workspace.WorkspaceActionOutcome.Result","name":"Result","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionOutcome","signatures":[],"type":"object?","doc":{"summary":"Gets a materialized entity, readiness channel name or host result when available."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionOutcome.Result","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionoutcome-result"},{"id":"LibTmux.Workspace.WorkspaceActionOutcome.Failure","name":"Failure","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionOutcome","signatures":[],"type":"Exception?","doc":{"summary":"Gets the original action failure, including an optional layout rejection."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionOutcome.Failure","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionoutcome-failure"},{"id":"LibTmux.Workspace.WorkspaceBuildException","name":"WorkspaceBuildException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports a workspace failure and the tmux state created before it."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuildException.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuildException","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuildexception"},{"id":"LibTmux.Workspace.WorkspaceBuildException.WorkspaceBuildException","name":"WorkspaceBuildException","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceBuildException","signatures":[{"params":[{"name":"partialResult","type":"WorkspaceResult?","doc":"The materialized state, or null when none was read."},{"name":"failure","type":"Exception","doc":"The operation that failed."}]}],"doc":{"summary":"Initializes a workspace build exception."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuildException.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuildException.WorkspaceBuildException","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuildexception-workspacebuildexception"},{"id":"LibTmux.Workspace.WorkspaceBuildException.PartialResult","name":"PartialResult","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceBuildException","signatures":[],"type":"WorkspaceResult?","doc":{"summary":"Gets the session and windows materialized before failure, when known."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuildException.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuildException.PartialResult","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuildexception-partialresult"},{"id":"LibTmux.Workspace.WorkspaceBuildException.Journal","name":"Journal","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceBuildException","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets all planned action outcomes, even when no session was materialized."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuildException.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuildException.Journal","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuildexception-journal"},{"id":"LibTmux.Workspace.WorkspaceBuildException.CompensationJournal","name":"CompensationJournal","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceBuildException","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets attempted cleanup outcomes and their failures without replacing the original cause."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuildException.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuildException.CompensationJournal","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuildexception-compensationjournal"},{"id":"LibTmux.Workspace.WorkspaceBuilder","name":"WorkspaceBuilder","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Plans and applies tmux sessions from tmuxp workspace files.","body":"The tmux-workspace CLI uses a separate builder with a wider document language."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuilder.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuilder","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuilder"},{"id":"LibTmux.Workspace.WorkspaceBuilder.ApplyAsync","name":"ApplyAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Workspace.WorkspaceBuilder","signatures":[{"params":[{"name":"plan","type":"WorkspacePlan","doc":"The immutable plan for this builder's resolved endpoint."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops further application and cancels the current operation."}],"returns":"Task","returnsDoc":"The materialized session, created windows and complete action journal.","raises":[{"type":"ArgumentException","doc":"The plan selects another endpoint."},{"type":"WorkspaceOperationCanceledException","doc":"The caller canceled application; the exception carries state and action journals."},{"type":"WorkspaceBuildException","doc":"Preconditions, application or owned cleanup failed."}]}],"doc":{"summary":"Applies the reviewed actions and records their individual outcomes.","body":"Native defaults and hooks remain runtime dependencies. Input acknowledgement is\nnot program completion. Cleanup uses only returned native identities; unknown\ncreations and irreversible shell effects remain visible in the journal."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuilder.Apply.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuilder.ApplyAsync","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuilder-applyasync"},{"id":"LibTmux.Workspace.WorkspaceBuilder.Validate","name":"Validate","kind":"method","modifiers":["static"],"parent":"LibTmux.Workspace.WorkspaceBuilder","signatures":[{"params":[{"name":"workspace","type":"WorkspaceFile","doc":"The immutable declaration to check."},{"name":"options","type":"WorkspacePlanOptions?","default":"null","doc":"The policies that will be used for planning."}],"returns":"void","raises":[{"type":"WorkspaceFormatException","doc":"The declaration cannot be applied under the supplied policies."},{"type":"ArgumentException","doc":"A declaration argument or policy value is invalid."}]}],"doc":{"summary":"Checks declaration and policy constraints without reading tmux or executing scripts.","body":"Reuse defers host-script admission until planning determines whether creation is needed.\nLayout syntax, checksums and minimum cell counts are checked locally; version-specific\nlayout names are checked during planning. Endpoint identity, conflicts, paths on disk,\nshell syntax and tmux option support are not checked by local validation."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuilder.Plan.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuilder.Validate","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuilder-validate"},{"id":"LibTmux.Workspace.WorkspaceBuilder.PlanAsync","name":"PlanAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Workspace.WorkspaceBuilder","signatures":[{"params":[{"name":"workspace","type":"WorkspaceFile","doc":"The immutable declaration, resolved explicitly when file-relative paths are needed."},{"name":"options","type":"WorkspacePlanOptions?","default":"null","doc":"The conflict, readiness and cleanup policies."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels read-only endpoint observation."}],"returns":"Task","returnsDoc":"The actions and observed identity preconditions; no workspace actions are executed.","raises":[{"type":"WorkspaceFormatException","doc":"The declaration cannot be applied."},{"type":"TmuxSessionExistsException","doc":"The default policy refuses an existing session."},{"type":"ArgumentException","doc":"The endpoint has an opaque initializer or the options are invalid."}]}],"doc":{"summary":"Observes the endpoint and constructs an immutable workspace action plan."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuilder.Plan.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuilder.PlanAsync","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuilder-planasync"},{"id":"LibTmux.Workspace.WorkspaceBuilder.WorkspaceBuilder","name":"WorkspaceBuilder","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceBuilder","signatures":[{"params":[{"name":"server","type":"Server","doc":"The endpoint inspected by plans and used during application."}]}],"doc":{"summary":"Initializes a builder against one server."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuilder.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuilder.WorkspaceBuilder","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuilder-workspacebuilder"},{"id":"LibTmux.Workspace.WorkspaceBuilder.BuildAsync","name":"BuildAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Workspace.WorkspaceBuilder","signatures":[{"params":[{"name":"workspace","type":"WorkspaceFile","doc":"The workspace to build."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels planning or application."}],"returns":"Task","returnsDoc":"The materialized result and complete action journal.","raises":[{"type":"WorkspaceFormatException","doc":"The workspace declaration is invalid."},{"type":"TmuxSessionExistsException","doc":"The requested session already exists."},{"type":"WorkspaceOperationCanceledException","doc":"The caller canceled application; the exception carries state and action journals."},{"type":"WorkspaceBuildException","doc":"Application failed; the exception carries the action journal."}]}],"doc":{"summary":"Plans and applies a workspace with the default policies.","body":"Uses the same plan and application engine as explicit PlanAsync and ApplyAsync.\nInput is sent immediately, without claiming shell readiness or command completion.\nUse an explicit plan to review actions or select readiness, conflict, host-script\nand compensation policies."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuilder.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuilder.BuildAsync","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuilder-buildasync"},{"id":"LibTmux.Workspace.WorkspaceCommand","name":"WorkspaceCommand","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one literal pane command and an optional Enter override."},"source":{"file":"src/LibTmux.Workspace/WorkspaceCommand.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceCommand","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacecommand"},{"id":"LibTmux.Workspace.WorkspaceCommand.WorkspaceCommand","name":"WorkspaceCommand","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceCommand","signatures":[{"params":[{"name":"text","type":"string","doc":"The literal text to send to the pane."},{"name":"enter","type":"bool?","default":"null","doc":"Whether this and later commands press Enter, or null to inherit."}]}],"doc":{"summary":"Initializes a command, inheriting the current Enter state by default."},"source":{"file":"src/LibTmux.Workspace/WorkspaceCommand.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceCommand.WorkspaceCommand","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacecommand-workspacecommand"},{"id":"LibTmux.Workspace.WorkspaceCommand.Text","name":"Text","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceCommand","signatures":[],"type":"string","doc":{"summary":"Gets the literal command text."},"source":{"file":"src/LibTmux.Workspace/WorkspaceCommand.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceCommand.Text","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacecommand-text"},{"id":"LibTmux.Workspace.WorkspaceCommand.Enter","name":"Enter","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceCommand","signatures":[],"type":"bool?","doc":{"summary":"Gets this command's Enter override, or null to inherit."},"source":{"file":"src/LibTmux.Workspace/WorkspaceCommand.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceCommand.Enter","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacecommand-enter"},{"id":"LibTmux.Workspace.WorkspacePane","name":"WorkspacePane","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one pane in a supported tmuxp workspace."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane"},{"id":"LibTmux.Workspace.WorkspacePane.WorkspacePane","name":"WorkspacePane","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[{"params":[{"name":"shellCommands","type":"IReadOnlyList?","default":"null","doc":"The commands to run, in order."},{"name":"startDirectory","type":"string?","default":"null","doc":"The directory the pane starts in."},{"name":"focus","type":"bool","default":"false","doc":"Whether the pane is left selected."},{"name":"options","type":"IReadOnlyDictionary?","default":"null","doc":"The pane options to set."},{"name":"commands","type":"IReadOnlyList?","default":"null","doc":"Typed commands; use instead of to set Enter overrides."},{"name":"enter","type":"bool?","default":"null","doc":"The pane's initial Enter state, or null for the default."}]}],"doc":{"summary":"Initializes a pane description."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.WorkspacePane","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-workspacepane"},{"id":"LibTmux.Workspace.WorkspacePane.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the environment entries contributed by this declaration."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.Environment","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-environment"},{"id":"LibTmux.Workspace.WorkspacePane.ShellCommandsBefore","name":"ShellCommandsBefore","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the commands prepended at this declaration level."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.ShellCommandsBefore","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-shellcommandsbefore"},{"id":"LibTmux.Workspace.WorkspacePane.BeforeCommands","name":"BeforeCommands","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the typed commands prepended at this declaration level."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":67,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.BeforeCommands","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-beforecommands"},{"id":"LibTmux.Workspace.WorkspacePane.WithDefaults","name":"WithDefaults","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[{"params":[{"name":"environment","type":"IReadOnlyDictionary?","default":"null","doc":"The local entries to copy, or null to preserve the existing entries."},{"name":"shellCommandsBefore","type":"IReadOnlyList?","default":"null","doc":"The local commands to copy, or null to preserve the existing commands."},{"name":"beforeCommands","type":"IReadOnlyList?","default":"null","doc":"Typed local commands; use instead of ."}],"returns":"WorkspacePane","returnsDoc":"A new declaration; empty collections clear the corresponding defaults.","raises":[{"type":"ArgumentException","doc":"An environment name is empty or contains '=' or NUL, or a value contains NUL."}]}],"doc":{"summary":"Returns a declaration with replacement environment and pre-command defaults."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.WithDefaults","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-withdefaults"},{"id":"LibTmux.Workspace.WorkspacePane.ShellCommands","name":"ShellCommands","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the commands to run, in order."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":82,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.ShellCommands","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-shellcommands"},{"id":"LibTmux.Workspace.WorkspacePane.Commands","name":"Commands","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the typed pane commands in declaration order."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":85,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.Commands","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-commands"},{"id":"LibTmux.Workspace.WorkspacePane.Enter","name":"Enter","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[],"type":"bool?","doc":{"summary":"Gets the pane's initial Enter state, or null for the default."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":88,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.Enter","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-enter"},{"id":"LibTmux.Workspace.WorkspacePane.StartDirectory","name":"StartDirectory","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[],"type":"string?","doc":{"summary":"Gets the directory the pane starts in."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":91,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.StartDirectory","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-startdirectory"},{"id":"LibTmux.Workspace.WorkspacePane.Focus","name":"Focus","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane is left selected."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":94,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.Focus","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-focus"},{"id":"LibTmux.Workspace.WorkspacePane.Options","name":"Options","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the pane options to set."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":97,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.Options","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-options"},{"id":"LibTmux.Workspace.WorkspaceWindow","name":"WorkspaceWindow","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one window in a supported tmuxp workspace."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":101,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow"},{"id":"LibTmux.Workspace.WorkspaceWindow.WorkspaceWindow","name":"WorkspaceWindow","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[{"params":[{"name":"windowName","type":"string?","default":"null","doc":"The window name."},{"name":"startDirectory","type":"string?","default":"null","doc":"The directory its panes start in."},{"name":"layout","type":"string?","default":"null","doc":"The layout to apply after creating its panes."},{"name":"focus","type":"bool","default":"false","doc":"Whether the window is left selected."},{"name":"options","type":"IReadOnlyDictionary?","default":"null","doc":"The window options to set before pane commands and splits."},{"name":"panes","type":"IReadOnlyList?","default":"null","doc":"The panes to create, in order."},{"name":"windowIndex","type":"int?","default":"null","doc":"The session-relative window index, or null for the next free index."},{"name":"optionsAfter","type":"IReadOnlyDictionary?","default":"null","doc":"The window options to set after pane commands and the final layout."}]}],"doc":{"summary":"Initializes a window description."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":120,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.WorkspaceWindow","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-workspacewindow"},{"id":"LibTmux.Workspace.WorkspaceWindow.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the environment entries contributed by this declaration."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":161,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.Environment","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-environment"},{"id":"LibTmux.Workspace.WorkspaceWindow.ShellCommandsBefore","name":"ShellCommandsBefore","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the commands prepended at this declaration level."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":164,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.ShellCommandsBefore","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-shellcommandsbefore"},{"id":"LibTmux.Workspace.WorkspaceWindow.BeforeCommands","name":"BeforeCommands","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the typed commands prepended at this declaration level."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":167,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.BeforeCommands","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-beforecommands"},{"id":"LibTmux.Workspace.WorkspaceWindow.WithDefaults","name":"WithDefaults","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[{"params":[{"name":"environment","type":"IReadOnlyDictionary?","default":"null","doc":"The local entries to copy, or null to preserve the existing entries."},{"name":"shellCommandsBefore","type":"IReadOnlyList?","default":"null","doc":"The local commands to copy, or null to preserve the existing commands."},{"name":"beforeCommands","type":"IReadOnlyList?","default":"null","doc":"Typed local commands; use instead of ."}],"returns":"WorkspaceWindow","returnsDoc":"A new declaration; empty collections clear the corresponding defaults.","raises":[{"type":"ArgumentException","doc":"An environment name is empty or contains '=' or NUL, or a value contains NUL."}]}],"doc":{"summary":"Returns a declaration with replacement environment and pre-command defaults."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":175,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.WithDefaults","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-withdefaults"},{"id":"LibTmux.Workspace.WorkspaceWindow.WindowName","name":"WindowName","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"string?","doc":{"summary":"Gets the window name."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":182,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.WindowName","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-windowname"},{"id":"LibTmux.Workspace.WorkspaceWindow.WindowIndex","name":"WindowIndex","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"int?","doc":{"summary":"Gets the requested session-relative window index, or null for the next free index."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":185,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.WindowIndex","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-windowindex"},{"id":"LibTmux.Workspace.WorkspaceWindow.StartDirectory","name":"StartDirectory","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"string?","doc":{"summary":"Gets the directory its panes start in."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":188,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.StartDirectory","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-startdirectory"},{"id":"LibTmux.Workspace.WorkspaceWindow.Layout","name":"Layout","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"string?","doc":{"summary":"Gets the layout to apply after creating its panes."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":191,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.Layout","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-layout"},{"id":"LibTmux.Workspace.WorkspaceWindow.Focus","name":"Focus","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"bool","doc":{"summary":"Gets whether the window is left selected."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":194,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.Focus","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-focus"},{"id":"LibTmux.Workspace.WorkspaceWindow.Options","name":"Options","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the window options to set before pane commands and splits."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":197,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.Options","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-options"},{"id":"LibTmux.Workspace.WorkspaceWindow.OptionsAfter","name":"OptionsAfter","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the window options to set after pane commands and the final layout."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":200,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.OptionsAfter","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-optionsafter"},{"id":"LibTmux.Workspace.WorkspaceWindow.Panes","name":"Panes","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the panes to create, in order."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":203,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.Panes","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-panes"},{"id":"LibTmux.Workspace.WorkspaceFile","name":"WorkspaceFile","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes the supported subset of one tmuxp workspace.","body":"Parsing rejects keys that require tmuxp's Python hooks or plugins. It does\nnot execute or silently discard configuration outside this model."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":211,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile"},{"id":"LibTmux.Workspace.WorkspaceFile.WorkspaceFile","name":"WorkspaceFile","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[{"params":[{"name":"sessionName","type":"string?","default":"null","doc":"The session name."},{"name":"startDirectory","type":"string?","default":"null","doc":"The directory its windows start in."},{"name":"options","type":"IReadOnlyDictionary?","default":"null","doc":"The session options to set."},{"name":"windows","type":"IReadOnlyList?","default":"null","doc":"The windows to create, in order."},{"name":"beforeScript","type":"string?","default":"null","doc":"The host command retained for explicitly enabled execution."},{"name":"globalOptions","type":"IReadOnlyDictionary?","default":"null","doc":"The global session options to set before creating the declared windows."}],"raises":[{"type":"ArgumentException","doc":"The host command is blank or contains NUL."}]}],"doc":{"summary":"Initializes a workspace description."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":229,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.WorkspaceFile","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-workspacefile"},{"id":"LibTmux.Workspace.WorkspaceFile.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the environment entries contributed by this declaration."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":273,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.Environment","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-environment"},{"id":"LibTmux.Workspace.WorkspaceFile.ShellCommandsBefore","name":"ShellCommandsBefore","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the commands prepended at this declaration level."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":276,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.ShellCommandsBefore","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-shellcommandsbefore"},{"id":"LibTmux.Workspace.WorkspaceFile.BeforeCommands","name":"BeforeCommands","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the typed commands prepended at this declaration level."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":279,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.BeforeCommands","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-beforecommands"},{"id":"LibTmux.Workspace.WorkspaceFile.WithDefaults","name":"WithDefaults","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[{"params":[{"name":"environment","type":"IReadOnlyDictionary?","default":"null","doc":"The local entries to copy, or null to preserve the existing entries."},{"name":"shellCommandsBefore","type":"IReadOnlyList?","default":"null","doc":"The local commands to copy, or null to preserve the existing commands."},{"name":"beforeCommands","type":"IReadOnlyList?","default":"null","doc":"Typed local commands; use instead of ."}],"returns":"WorkspaceFile","returnsDoc":"A new declaration; empty collections clear the corresponding defaults.","raises":[{"type":"ArgumentException","doc":"An environment name is empty or contains '=' or NUL, or a value contains NUL."}]}],"doc":{"summary":"Returns a declaration with replacement environment and pre-command defaults."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":287,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.WithDefaults","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-withdefaults"},{"id":"LibTmux.Workspace.WorkspaceFile.SessionName","name":"SessionName","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"string?","doc":{"summary":"Gets the session name."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":294,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.SessionName","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-sessionname"},{"id":"LibTmux.Workspace.WorkspaceFile.StartDirectory","name":"StartDirectory","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"string?","doc":{"summary":"Gets the directory its windows start in."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":297,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.StartDirectory","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-startdirectory"},{"id":"LibTmux.Workspace.WorkspaceFile.Options","name":"Options","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the session options to set."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":300,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.Options","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-options"},{"id":"LibTmux.Workspace.WorkspaceFile.GlobalOptions","name":"GlobalOptions","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the global session options to set before creating the declared windows.","body":"These can affect other sessions that inherit them and are not reversed by compensation."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":304,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.GlobalOptions","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-globaloptions"},{"id":"LibTmux.Workspace.WorkspaceFile.Windows","name":"Windows","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the windows to create, in order."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":307,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.Windows","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-windows"},{"id":"LibTmux.Workspace.WorkspaceFile.BeforeScript","name":"BeforeScript","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"string?","doc":{"summary":"Gets the host command retained without expansion or execution by parsing or resolution."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":310,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.BeforeScript","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-beforescript"},{"id":"LibTmux.Workspace.WorkspaceFile.DocumentDirectory","name":"DocumentDirectory","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"string?","doc":{"summary":"Gets the absolute document directory supplied to resolution, or null before resolution."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":313,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.DocumentDirectory","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-documentdirectory"},{"id":"LibTmux.Workspace.WorkspaceFile.Resolve","name":"Resolve","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[{"params":[{"name":"baseDirectory","type":"string","doc":"The absolute directory containing the declaration."},{"name":"variables","type":"IReadOnlyDictionary?","default":"null","doc":"The only variables available to directory and option-value expansion."}],"returns":"WorkspaceFile","returnsDoc":"A new declaration with absolute inherited directories and its document directory.","raises":[{"type":"ArgumentException","doc":"The document base is not absolute."},{"type":"WorkspaceFormatException","doc":"A directory or expansion is invalid."}]}],"doc":{"summary":"Resolves inherited pane directories against an explicit document base.","body":"Resolves relative paths against the parent declaration's directory. Expansion\naccepts $NAME, ${NAME}, and a leading ~ using the supplied HOME variable;\n$$ produces a literal dollar sign. Session, window and pane option values\nexpand supplied variables; unknown variables remain literal. Resolution reads\nneither the process environment nor the filesystem. The builder treats resolved\ndirectories as literal paths, including tmux format characters. Commands, the\nhost script, names and environment values remain literal. Failures retain the\noriginal YAML or JSON value's line and column when the declaration was parsed."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":359,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.Resolve","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-resolve"},{"id":"LibTmux.Workspace.WorkspaceFile.FromSnapshot","name":"FromSnapshot","kind":"method","modifiers":["static"],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[{"params":[{"name":"session","type":"Session","doc":"The session with captured windows, panes, and active pane relations."}],"returns":"WorkspaceFile","returnsDoc":"An unresolved declaration without a document directory.","raises":[{"type":"ArgumentNullException","doc":"The session is null."},{"type":"IncompleteSnapshotException","doc":"A required field or relation was not captured."},{"type":"TmuxProtocolException","doc":"A captured window active flag is malformed."}]}],"doc":{"summary":"Creates a workspace declaration from a captured session without reaching tmux.","body":"Preserves captured window placements and pane order, names, layouts, and focus.\nRepeated links become separate declared windows. Captured pane directories\nescape literal dollars for a later explicit ; captured\nnull paths remain unspecified. Commands, environment, options, terminal text,\nentity identifiers, pane indices, and shared-link identity are not\nreconstructed.\nForeground command names do not establish shell intent. Restoring a native\ncustom layout can change which pane occupies a position; see\n."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":381,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.FromSnapshot","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-fromsnapshot"},{"id":"LibTmux.Workspace.WorkspaceFile.Parse","name":"Parse","kind":"method","modifiers":["static"],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[{"params":[{"name":"yaml","type":"string","doc":"The file contents."}],"returns":"WorkspaceFile","returnsDoc":"The parsed workspace.","raises":[{"type":"WorkspaceFormatException","doc":"The input is too large, malformed, contains more than one document, or\nuses a key or value shape outside the supported subset."}]}],"doc":{"summary":"Reads a workspace from tmuxp YAML or JSON."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":415,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.Parse","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-parse"},{"id":"LibTmux.Workspace.WorkspaceFormatException","name":"WorkspaceFormatException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Thrown when a workspace file cannot be read."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":423,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFormatException","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceformatexception"},{"id":"LibTmux.Workspace.WorkspaceFormatException.WorkspaceFormatException","name":"WorkspaceFormatException","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFormatException","signatures":[{"params":[{"name":"message","type":"string","doc":"The invalid part of the workspace."},{"name":"innerException","type":"Exception?","default":"null","doc":"The underlying YAML failure, when present."}]}],"doc":{"summary":"Initializes the exception."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":428,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFormatException.WorkspaceFormatException","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceformatexception-workspaceformatexception"},{"id":"LibTmux.Workspace.WorkspaceHostCommand","name":"WorkspaceHostCommand","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one explicitly enabled host shell command.","body":"Execution uses /bin/sh -c with the supplied directory and environment. Shell\neffects cannot be rolled back. Descendants that detach or outlive their shell\nare outside containment."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostCommand","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostcommand"},{"id":"LibTmux.Workspace.WorkspaceHostCommand.Script","name":"Script","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostCommand","signatures":[],"type":"string","doc":{"summary":"Gets the literal command passed to /bin/sh -c."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostCommand.Script","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostcommand-script"},{"id":"LibTmux.Workspace.WorkspaceHostCommand.WorkingDirectory","name":"WorkingDirectory","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostCommand","signatures":[],"type":"string","doc":{"summary":"Gets the absolute directory in which the command runs."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostCommand.WorkingDirectory","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostcommand-workingdirectory"},{"id":"LibTmux.Workspace.WorkspaceHostCommand.MaxOutputBytes","name":"MaxOutputBytes","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostCommand","signatures":[],"type":"int","doc":{"summary":"Gets the combined stdout and stderr capture limit in bytes."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostCommand.MaxOutputBytes","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostcommand-maxoutputbytes"},{"id":"LibTmux.Workspace.WorkspaceHostCommand.Timeout","name":"Timeout","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostCommand","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the deadline for process exit and output completion."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":53,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostCommand.Timeout","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostcommand-timeout"},{"id":"LibTmux.Workspace.WorkspaceHostCommand.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostCommand","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the explicit environment; execution does not inherit process variables."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostCommand.Environment","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostcommand-environment"},{"id":"LibTmux.Workspace.WorkspaceHostResult","name":"WorkspaceHostResult","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes captured output and the observed exit of a host command."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":60,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostResult","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostresult"},{"id":"LibTmux.Workspace.WorkspaceHostResult.Started","name":"Started","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether the shell started and may have left external effects."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":72,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostResult.Started","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostresult-started"},{"id":"LibTmux.Workspace.WorkspaceHostResult.ExitCode","name":"ExitCode","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostResult","signatures":[],"type":"int?","doc":{"summary":"Gets the observed shell exit code, or null when exit was not observed."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostResult.ExitCode","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostresult-exitcode"},{"id":"LibTmux.Workspace.WorkspaceHostResult.StandardOutput","name":"StandardOutput","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostResult","signatures":[],"type":"string","doc":{"summary":"Gets the retained UTF-8 stdout prefix."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":78,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostResult.StandardOutput","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostresult-standardoutput"},{"id":"LibTmux.Workspace.WorkspaceHostResult.StandardError","name":"StandardError","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostResult","signatures":[],"type":"string","doc":{"summary":"Gets the retained UTF-8 stderr prefix."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":81,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostResult.StandardError","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostresult-standarderror"},{"id":"LibTmux.Workspace.WorkspaceHostResult.DroppedOutputBytes","name":"DroppedOutputBytes","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostResult","signatures":[],"type":"long","doc":{"summary":"Gets bytes read but omitted from capture; unread output after interruption is unknown."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":84,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostResult.DroppedOutputBytes","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostresult-droppedoutputbytes"},{"id":"LibTmux.Workspace.WorkspaceOperationCanceledException","name":"WorkspaceOperationCanceledException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports workspace cancellation and the tmux state materialized before it."},"source":{"file":"src/LibTmux.Workspace/WorkspaceOperationCanceledException.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceOperationCanceledException","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceoperationcanceledexception"},{"id":"LibTmux.Workspace.WorkspaceOperationCanceledException.WorkspaceOperationCanceledException","name":"WorkspaceOperationCanceledException","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceOperationCanceledException","signatures":[{"params":[{"name":"partialResult","type":"WorkspaceResult?","doc":"The materialized state, or null when none was read."},{"name":"failure","type":"OperationCanceledException","doc":"The original cancellation."},{"name":"cancellationToken","type":"CancellationToken","doc":"The caller token that canceled application."}]}],"doc":{"summary":"Initializes a workspace cancellation exception."},"source":{"file":"src/LibTmux.Workspace/WorkspaceOperationCanceledException.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceOperationCanceledException.WorkspaceOperationCanceledException","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceoperationcanceledexception-workspaceoperationcanceledexception"},{"id":"LibTmux.Workspace.WorkspaceOperationCanceledException.PartialResult","name":"PartialResult","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceOperationCanceledException","signatures":[],"type":"WorkspaceResult?","doc":{"summary":"Gets the session and windows materialized before cancellation, when known."},"source":{"file":"src/LibTmux.Workspace/WorkspaceOperationCanceledException.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceOperationCanceledException.PartialResult","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceoperationcanceledexception-partialresult"},{"id":"LibTmux.Workspace.WorkspaceOperationCanceledException.Journal","name":"Journal","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceOperationCanceledException","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets all planned action outcomes, even when no session was materialized."},"source":{"file":"src/LibTmux.Workspace/WorkspaceOperationCanceledException.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceOperationCanceledException.Journal","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceoperationcanceledexception-journal"},{"id":"LibTmux.Workspace.WorkspaceOperationCanceledException.CompensationJournal","name":"CompensationJournal","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceOperationCanceledException","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets attempted cleanup outcomes and their failures without replacing the original cancellation."},"source":{"file":"src/LibTmux.Workspace/WorkspaceOperationCanceledException.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceOperationCanceledException.CompensationJournal","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceoperationcanceledexception-compensationjournal"},{"id":"LibTmux.Workspace.WorkspaceOperationCanceledException.Dispatch","name":"Dispatch","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceOperationCanceledException","signatures":[],"type":"TmuxDispatchState","doc":{"summary":"Gets the dispatch evidence from application."},"source":{"file":"src/LibTmux.Workspace/WorkspaceOperationCanceledException.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceOperationCanceledException.Dispatch","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceoperationcanceledexception-dispatch"},{"id":"LibTmux.Workspace.WorkspaceServerStartup","name":"WorkspaceServerStartup","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Controls application when planning observed no daemon."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceServerStartup","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceserverstartup"},{"id":"LibTmux.Workspace.WorkspaceServerStartup.CreateOrJoin","name":"CreateOrJoin","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceServerStartup","signatures":[],"doc":{"summary":"Allows creation to start a daemon or join one that appeared; a conflicting session is never reused."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceServerStartup.CreateOrJoin","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceserverstartup-createorjoin"},{"id":"LibTmux.Workspace.WorkspaceServerStartup.RequireExisting","name":"RequireExisting","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceServerStartup","signatures":[],"doc":{"summary":"Requires a daemon observed during planning and preserves its generation."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceServerStartup.RequireExisting","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceserverstartup-requireexisting"},{"id":"LibTmux.Workspace.WorkspaceExistingSession","name":"WorkspaceExistingSession","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Controls what planning does when the requested session already exists."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceExistingSession","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceexistingsession"},{"id":"LibTmux.Workspace.WorkspaceExistingSession.Error","name":"Error","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceExistingSession","signatures":[],"doc":{"summary":"Refuses the conflicting declaration before application."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceExistingSession.Error","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceexistingsession-error"},{"id":"LibTmux.Workspace.WorkspaceExistingSession.Reuse","name":"Reuse","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceExistingSession","signatures":[],"doc":{"summary":"Returns the inspected session without changing it."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceExistingSession.Reuse","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceexistingsession-reuse"},{"id":"LibTmux.Workspace.WorkspaceExistingSession.Append","name":"Append","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceExistingSession","signatures":[],"doc":{"summary":"Adds the declared windows without changing existing children or local session options."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceExistingSession.Append","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceexistingsession-append"},{"id":"LibTmux.Workspace.WorkspaceExistingSession.Replace","name":"Replace","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceExistingSession","signatures":[],"doc":{"summary":"Replaces only the inspected session, preserving the daemon with a temporary session."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceExistingSession.Replace","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceexistingsession-replace"},{"id":"LibTmux.Workspace.WorkspaceReadiness","name":"WorkspaceReadiness","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Controls whether pane startup must acknowledge readiness."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceReadiness","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacereadiness"},{"id":"LibTmux.Workspace.WorkspaceReadiness.Immediate","name":"Immediate","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceReadiness","signatures":[],"doc":{"summary":"Sends input immediately without claiming shell readiness or command completion."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceReadiness.Immediate","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacereadiness-immediate"},{"id":"LibTmux.Workspace.WorkspaceReadiness.Cooperative","name":"Cooperative","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceReadiness","signatures":[],"doc":{"summary":"Requires startup to signal the channel named by LIBTMUX_WORKSPACE_READY."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceReadiness.Cooperative","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacereadiness-cooperative"},{"id":"LibTmux.Workspace.WorkspacePlanOptions","name":"WorkspacePlanOptions","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Provides explicit policies copied into a workspace plan."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.WorkspacePlanOptions","name":"WorkspacePlanOptions","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[{"params":[]}],"doc":{"summary":"Initializes the default fail-on-conflict, immediate-input policy."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.WorkspacePlanOptions","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-workspaceplanoptions"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.ExistingSession","name":"ExistingSession","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[],"type":"WorkspaceExistingSession","doc":{"summary":"Gets the policy for an existing session."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.ExistingSession","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-existingsession"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.ServerStartup","name":"ServerStartup","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[],"type":"WorkspaceServerStartup","doc":{"summary":"Gets whether an initially absent endpoint may start or join a daemon.","body":"CreateOrJoin does not claim exclusive startup or ownership of the daemon."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.ServerStartup","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-serverstartup"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.Readiness","name":"Readiness","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[],"type":"WorkspaceReadiness","doc":{"summary":"Gets the pane startup contract."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.Readiness","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-readiness"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.ReadinessTimeout","name":"ReadinessTimeout","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the positive time allowed for each cooperative signal."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":51,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.ReadinessTimeout","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-readinesstimeout"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.CompensateOnFailure","name":"CompensateOnFailure","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[],"type":"bool","doc":{"summary":"Gets whether failure removes journal-proven created resources.","body":"Shell commands, host effects and global option changes are never reversed."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.CompensateOnFailure","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-compensateonfailure"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.AllowHostScripts","name":"AllowHostScripts","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[],"type":"bool","doc":{"summary":"Gets whether a declared before_script may run on the host."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.AllowHostScripts","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-allowhostscripts"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.HostScriptTimeout","name":"HostScriptTimeout","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the maximum duration of each host script, including output collection."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.HostScriptTimeout","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-hostscripttimeout"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.MaxHostOutputBytes","name":"MaxHostOutputBytes","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[],"type":"int","doc":{"summary":"Gets the combined stdout and stderr capture limit in UTF-8 bytes."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.MaxHostOutputBytes","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-maxhostoutputbytes"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.CleanupTimeout","name":"CleanupTimeout","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the total budget for cleanup after application fails."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":67,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.CleanupTimeout","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-cleanuptimeout"},{"id":"LibTmux.Workspace.WorkspacePlan","name":"WorkspacePlan","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Contains the reviewed actions and observed preconditions for one workspace application.","body":"Planning observes an interval, not a transaction. Native defaults, hooks and\nconfiguration remain tmux dependencies. Application resolves symbolic created\nidentities and uses each action in order; enumeration performs no I/O."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":96,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan"},{"id":"LibTmux.Workspace.WorkspacePlan.Endpoint","name":"Endpoint","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"Server","doc":{"summary":"Gets the resolved endpoint selected by the caller."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":119,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.Endpoint","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-endpoint"},{"id":"LibTmux.Workspace.WorkspacePlan.SessionName","name":"SessionName","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"string","doc":{"summary":"Gets the literal session name used for creation and conflict checks."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":121,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.SessionName","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-sessionname"},{"id":"LibTmux.Workspace.WorkspacePlan.ObservedServer","name":"ObservedServer","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"Server?","doc":{"summary":"Gets the identity-only observed server, or null when the endpoint was absent."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":123,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.ObservedServer","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-observedserver"},{"id":"LibTmux.Workspace.WorkspacePlan.ExistingSession","name":"ExistingSession","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"Session?","doc":{"summary":"Gets the exact conflicting session, or null when none was observed."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":125,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.ExistingSession","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-existingsession"},{"id":"LibTmux.Workspace.WorkspacePlan.ExistingSessionPolicy","name":"ExistingSessionPolicy","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"WorkspaceExistingSession","doc":{"summary":"Gets the reviewed conflict policy."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":127,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.ExistingSessionPolicy","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-existingsessionpolicy"},{"id":"LibTmux.Workspace.WorkspacePlan.ServerStartup","name":"ServerStartup","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"WorkspaceServerStartup","doc":{"summary":"Gets the reviewed startup policy for an initially absent endpoint."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":129,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.ServerStartup","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-serverstartup"},{"id":"LibTmux.Workspace.WorkspacePlan.Readiness","name":"Readiness","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"WorkspaceReadiness","doc":{"summary":"Gets the reviewed pane startup contract."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":131,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.Readiness","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-readiness"},{"id":"LibTmux.Workspace.WorkspacePlan.ReadinessTimeout","name":"ReadinessTimeout","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the budget for each cooperative startup signal."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":133,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.ReadinessTimeout","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-readinesstimeout"},{"id":"LibTmux.Workspace.WorkspacePlan.CompensateOnFailure","name":"CompensateOnFailure","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"bool","doc":{"summary":"Gets whether journal-owned resources are compensated after failure."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":135,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.CompensateOnFailure","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-compensateonfailure"},{"id":"LibTmux.Workspace.WorkspacePlan.CleanupTimeout","name":"CleanupTimeout","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the total budget for attempting cleanup after failure."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":137,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.CleanupTimeout","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-cleanuptimeout"},{"id":"LibTmux.Workspace.WorkspacePlan.ObservationStartedAt","name":"ObservationStartedAt","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"DateTimeOffset","doc":{"summary":"Gets the start of endpoint observation."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":139,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.ObservationStartedAt","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-observationstartedat"},{"id":"LibTmux.Workspace.WorkspacePlan.ObservationCompletedAt","name":"ObservationCompletedAt","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"DateTimeOffset","doc":{"summary":"Gets the end of endpoint observation."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":141,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.ObservationCompletedAt","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-observationcompletedat"},{"id":"LibTmux.Workspace.WorkspacePlan.Actions","name":"Actions","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the complete ordered application operations."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":143,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.Actions","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-actions"},{"id":"LibTmux.Workspace.WorkspacePlan.CompensationActions","name":"CompensationActions","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets conditional cleanup operations over proven created identities, in cleanup order.","body":"Owned readiness channels and replacement keepalives are always cleaned; workspace resources follow the selected compensation policy."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":146,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.CompensationActions","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-compensationactions"},{"id":"LibTmux.Workspace.WorkspaceResult","name":"WorkspaceResult","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes workspace state materialized by a build."},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult"},{"id":"LibTmux.Workspace.WorkspaceResult.WorkspaceResult","name":"WorkspaceResult","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceResult","signatures":[{"params":[{"name":"Session","type":"Session","doc":"The session that was built."},{"name":"Windows","type":"IReadOnlyList","doc":"The windows, in the order the file listed them."},{"name":"Unsupported","type":"IReadOnlyList","doc":"The layouts tmux rejected after creating their windows."}]}],"doc":{"summary":"Initializes a workspace result."},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult.WorkspaceResult","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult-workspaceresult"},{"id":"LibTmux.Workspace.WorkspaceResult.Session","name":"Session","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceResult","signatures":[],"type":"Session","doc":{"summary":"Gets the session materialized by the build."},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult.Session","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult-session"},{"id":"LibTmux.Workspace.WorkspaceResult.Windows","name":"Windows","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceResult","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets created windows in workspace order, or an empty list for Reuse."},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult.Windows","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult-windows"},{"id":"LibTmux.Workspace.WorkspaceResult.Unsupported","name":"Unsupported","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceResult","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the layouts tmux rejected after creating their windows."},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":51,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult.Unsupported","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult-unsupported"},{"id":"LibTmux.Workspace.WorkspaceResult.Journal","name":"Journal","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceResult","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets every reviewed action's outcome, including actions not started after failure."},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":62,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult.Journal","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult-journal"},{"id":"LibTmux.Workspace.WorkspaceResult.CompensationJournal","name":"CompensationJournal","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceResult","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets conditional cleanup outcomes in the plan's cleanup order."},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":73,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult.CompensationJournal","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult-compensationjournal"},{"id":"LibTmux.Workspace.WorkspaceResult.Equals","name":"Equals","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceResult","signatures":[{"params":[{"name":"other","type":"WorkspaceResult?"}],"returns":"bool"}],"doc":{"summary":""},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":84,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult.Equals","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult-equals"},{"id":"LibTmux.Workspace.WorkspaceResult.GetHashCode","name":"GetHashCode","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceResult","signatures":[{"params":[],"returns":"int"}],"doc":{"summary":""},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":93,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult.GetHashCode","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult-gethashcode"},{"id":"LibTmux.Workspace.WorkspaceResult.Deconstruct","name":"Deconstruct","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceResult","signatures":[{"params":[{"name":"Session","type":"Session","doc":"The session that was built."},{"name":"Windows","type":"IReadOnlyList","doc":"The windows, in workspace order."},{"name":"Unsupported","type":"IReadOnlyList","doc":"The layouts tmux rejected."}],"returns":"void"}],"doc":{"summary":"Deconstructs the result into the built session, windows, and rejected layouts."},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":117,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult.Deconstruct","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult-deconstruct"},{"id":"LibTmux.Query.Json.QueryJsonLimits","name":"QueryJsonLimits","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record QueryJsonLimits(\n int MaximumDepth,\n int MaximumNodes,\n int MaximumStringLength,\n int MaximumPatternLength,\n int MaximumUtf8Bytes)","params":[{"name":"MaximumDepth","type":"int","doc":"Deepest nesting accepted."},{"name":"MaximumNodes","type":"int","doc":"Most predicate nodes accepted."},{"name":"MaximumStringLength","type":"int","doc":"Longest string value accepted."},{"name":"MaximumPatternLength","type":"int","doc":"Longest regex pattern accepted."},{"name":"MaximumUtf8Bytes","type":"int","doc":"Largest encoded document accepted."}]}],"doc":{"summary":"Bounds one JSON document so parsing cannot be weaponised.","body":"Every dimension a hostile producer could grow is capped. Callers may tighten\na limit but never widen one."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJsonLimits","product":"core","slug":"libtmux-query-json-queryjsonlimits"},{"id":"LibTmux.Query.Json.QueryJsonLimits.Default","name":"Default","kind":"property","modifiers":["static"],"parent":"LibTmux.Query.Json.QueryJsonLimits","signatures":[],"type":"QueryJsonLimits","doc":{"summary":"Gets the maximum supported document limits."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJsonLimits.Default","product":"core","slug":"libtmux-query-json-queryjsonlimits-default"},{"id":"LibTmux.Query.Json.QueryJsonLimits.MaximumDepth","name":"MaximumDepth","kind":"property","parent":"LibTmux.Query.Json.QueryJsonLimits","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Deepest nesting accepted."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJsonLimits.MaximumDepth","product":"core","slug":"libtmux-query-json-queryjsonlimits-maximumdepth"},{"id":"LibTmux.Query.Json.QueryJsonLimits.MaximumNodes","name":"MaximumNodes","kind":"property","parent":"LibTmux.Query.Json.QueryJsonLimits","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Most predicate nodes accepted."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJsonLimits.MaximumNodes","product":"core","slug":"libtmux-query-json-queryjsonlimits-maximumnodes"},{"id":"LibTmux.Query.Json.QueryJsonLimits.MaximumStringLength","name":"MaximumStringLength","kind":"property","parent":"LibTmux.Query.Json.QueryJsonLimits","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Longest string value accepted."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJsonLimits.MaximumStringLength","product":"core","slug":"libtmux-query-json-queryjsonlimits-maximumstringlength"},{"id":"LibTmux.Query.Json.QueryJsonLimits.MaximumPatternLength","name":"MaximumPatternLength","kind":"property","parent":"LibTmux.Query.Json.QueryJsonLimits","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Longest regex pattern accepted."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJsonLimits.MaximumPatternLength","product":"core","slug":"libtmux-query-json-queryjsonlimits-maximumpatternlength"},{"id":"LibTmux.Query.Json.QueryJsonLimits.MaximumUtf8Bytes","name":"MaximumUtf8Bytes","kind":"property","parent":"LibTmux.Query.Json.QueryJsonLimits","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Largest encoded document accepted."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJsonLimits.MaximumUtf8Bytes","product":"core","slug":"libtmux-query-json-queryjsonlimits-maximumutf8bytes"},{"id":"LibTmux.Query.Json.QueryJson","name":"QueryJson","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Serializes query documents in their declared wire schema version.","body":"JSON lives in its own package so the core library carries no serializer\ndependency. A caller who never puts a query on a wire never pays for one."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJson","product":"core","slug":"libtmux-query-json-queryjson"},{"id":"LibTmux.Query.Json.QueryJson.Serialize","name":"Serialize","kind":"method","modifiers":["static"],"parent":"LibTmux.Query.Json.QueryJson","signatures":[{"params":[{"name":"document","type":"QueryDocument","doc":"The document to write."}],"returns":"string","returnsDoc":"The encoded document, with no trailing newline.","raises":[{"type":"UnsupportedQueryExpressionException","doc":"The document has an unsupported wire form or encodes past the size limit."}]}],"doc":{"summary":"Writes one document as versioned JSON."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":69,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJson.Serialize","product":"core","slug":"libtmux-query-json-queryjson-serialize"},{"id":"LibTmux.Query.Json.QueryJson.Deserialize","name":"Deserialize","kind":"method","modifiers":["static"],"parent":"LibTmux.Query.Json.QueryJson","signatures":[{"params":[{"name":"json","type":"string","doc":"The encoded document."},{"name":"limits","type":"QueryJsonLimits?","default":"null","doc":"Limits to apply, never wider than the defaults."}],"returns":"QueryDocument","returnsDoc":"The decoded document.","raises":[{"type":"System.Text.Json.JsonException","doc":"The text is not JSON."},{"type":"UnsupportedQueryExpressionException","doc":"The text is JSON, but not a supported wire form: an unknown schema, version,\ntarget, node or constant, a duplicate or unknown member, or a value past\none of the document limits."}]}],"doc":{"summary":"Reads one versioned JSON document."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":100,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJson.Deserialize","product":"core","slug":"libtmux-query-json-queryjson-deserialize"},{"id":"LibTmux.Testing.TemporaryHierarchyScope","name":"TemporaryHierarchyScope","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A server, session, window, and pane a test owns together.","body":"Most tests want somewhere to type, which is four objects deep. Making them\none at a time leaves a test holding four scopes and disposing them in the\nright order; one scope owns the lot and unwinds from the server, which takes\neverything inside it with it."},"source":{"file":"src/LibTmux.Testing/TemporaryHierarchyScope.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryHierarchyScope","product":"core","slug":"libtmux-testing-temporaryhierarchyscope"},{"id":"LibTmux.Testing.TemporaryHierarchyScope.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TemporaryHierarchyScope","signatures":[],"type":"Server","doc":{"summary":"Gets the server the rest live in.","body":"Creating the session materializes its server. The returned handle carries\nthat generation and version, so it is ready for listings and lookups."},"source":{"file":"src/LibTmux.Testing/TemporaryHierarchyScope.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryHierarchyScope.Server","product":"core","slug":"libtmux-testing-temporaryhierarchyscope-server"},{"id":"LibTmux.Testing.TemporaryHierarchyScope.Session","name":"Session","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TemporaryHierarchyScope","signatures":[],"type":"Session","doc":{"summary":"Gets the session."},"source":{"file":"src/LibTmux.Testing/TemporaryHierarchyScope.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryHierarchyScope.Session","product":"core","slug":"libtmux-testing-temporaryhierarchyscope-session"},{"id":"LibTmux.Testing.TemporaryHierarchyScope.Window","name":"Window","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TemporaryHierarchyScope","signatures":[],"type":"Window","doc":{"summary":"Gets the window."},"source":{"file":"src/LibTmux.Testing/TemporaryHierarchyScope.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryHierarchyScope.Window","product":"core","slug":"libtmux-testing-temporaryhierarchyscope-window"},{"id":"LibTmux.Testing.TemporaryHierarchyScope.Pane","name":"Pane","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TemporaryHierarchyScope","signatures":[],"type":"Pane","doc":{"summary":"Gets the pane."},"source":{"file":"src/LibTmux.Testing/TemporaryHierarchyScope.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryHierarchyScope.Pane","product":"core","slug":"libtmux-testing-temporaryhierarchyscope-pane"},{"id":"LibTmux.Testing.TemporaryHierarchyScope.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TemporaryHierarchyScope","signatures":[{"params":[],"returns":"ValueTask"}],"doc":{"summary":"","body":"Only the server is unwound: killing it takes the session, window, and\npane with it, and asking tmux to remove each first would race that."},"source":{"file":"src/LibTmux.Testing/TemporaryHierarchyScope.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryHierarchyScope.DisposeAsync","product":"core","slug":"libtmux-testing-temporaryhierarchyscope-disposeasync"},{"id":"LibTmux.Testing.TemporaryServerScope","name":"TemporaryServerScope","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Creates a throwaway server for a test and stops it afterwards.","body":"Each scope gets its own socket, so tests never contend for one server and a\ncrashed test cannot leak state into the next."},"source":{"file":"src/LibTmux.Testing/TemporaryServerScope.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryServerScope","product":"core","slug":"libtmux-testing-temporaryserverscope"},{"id":"LibTmux.Testing.TemporaryServerScope.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TemporaryServerScope","signatures":[],"type":"Server","doc":{"summary":"Gets the temporary server."},"source":{"file":"src/LibTmux.Testing/TemporaryServerScope.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryServerScope.Server","product":"core","slug":"libtmux-testing-temporaryserverscope-server"},{"id":"LibTmux.Testing.TemporaryServerScope.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TemporaryServerScope","signatures":[{"params":[],"returns":"ValueTask"}],"doc":{"summary":""},"source":{"file":"src/LibTmux.Testing/TemporaryServerScope.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryServerScope.DisposeAsync","product":"core","slug":"libtmux-testing-temporaryserverscope-disposeasync"},{"id":"LibTmux.Testing.TemporarySessionScope","name":"TemporarySessionScope","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Owns a throwaway session and any private server created with it."},"source":{"file":"src/LibTmux.Testing/TemporarySessionScope.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporarySessionScope","product":"core","slug":"libtmux-testing-temporarysessionscope"},{"id":"LibTmux.Testing.TemporarySessionScope.Session","name":"Session","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TemporarySessionScope","signatures":[],"type":"Session","doc":{"summary":"Gets the temporary session."},"source":{"file":"src/LibTmux.Testing/TemporarySessionScope.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporarySessionScope.Session","product":"core","slug":"libtmux-testing-temporarysessionscope-session"},{"id":"LibTmux.Testing.TemporarySessionScope.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Testing.TemporarySessionScope","signatures":[{"params":[],"returns":"ValueTask"}],"doc":{"summary":""},"source":{"file":"src/LibTmux.Testing/TemporarySessionScope.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporarySessionScope.DisposeAsync","product":"core","slug":"libtmux-testing-temporarysessionscope-disposeasync"},{"id":"LibTmux.Testing.TemporaryWindowScope","name":"TemporaryWindowScope","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Owns a throwaway window and any private session and server created with it."},"source":{"file":"src/LibTmux.Testing/TemporaryWindowScope.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryWindowScope","product":"core","slug":"libtmux-testing-temporarywindowscope"},{"id":"LibTmux.Testing.TemporaryWindowScope.Window","name":"Window","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TemporaryWindowScope","signatures":[],"type":"Window","doc":{"summary":"Gets the temporary window."},"source":{"file":"src/LibTmux.Testing/TemporaryWindowScope.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryWindowScope.Window","product":"core","slug":"libtmux-testing-temporarywindowscope-window"},{"id":"LibTmux.Testing.TemporaryWindowScope.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Testing.TemporaryWindowScope","signatures":[{"params":[],"returns":"ValueTask"}],"doc":{"summary":""},"source":{"file":"src/LibTmux.Testing/TemporaryWindowScope.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryWindowScope.DisposeAsync","product":"core","slug":"libtmux-testing-temporarywindowscope-disposeasync"},{"id":"LibTmux.Testing.TestEnvironment","name":"TestEnvironment","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"The directory and variables a test's tmux runs with.","body":"A test that inherits the developer's environment inherits their tmux too:\nTMUX points a new client at the server they are sitting in. Naming\nthe environment explicitly is what keeps a test off it."},"source":{"file":"src/LibTmux.Testing/TestEnvironment.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TestEnvironment","product":"core","slug":"libtmux-testing-testenvironment"},{"id":"LibTmux.Testing.TestEnvironment.TestEnvironment","name":"TestEnvironment","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TestEnvironment","signatures":[{"params":[{"name":"workingDirectory","type":"string","doc":"The directory tmux starts in."},{"name":"variables","type":"IReadOnlyDictionary","doc":"The variables to set, or null each to remove one."}]}],"doc":{"summary":"Initializes a test environment."},"source":{"file":"src/LibTmux.Testing/TestEnvironment.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TestEnvironment.TestEnvironment","product":"core","slug":"libtmux-testing-testenvironment-testenvironment"},{"id":"LibTmux.Testing.TestEnvironment.WorkingDirectory","name":"WorkingDirectory","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TestEnvironment","signatures":[],"type":"string","doc":{"summary":"Gets the directory tmux starts in."},"source":{"file":"src/LibTmux.Testing/TestEnvironment.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TestEnvironment.WorkingDirectory","product":"core","slug":"libtmux-testing-testenvironment-workingdirectory"},{"id":"LibTmux.Testing.TestEnvironment.Variables","name":"Variables","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TestEnvironment","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the variables to set, with null meaning remove."},"source":{"file":"src/LibTmux.Testing/TestEnvironment.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TestEnvironment.Variables","product":"core","slug":"libtmux-testing-testenvironment-variables"},{"id":"LibTmux.Testing.TestEnvironment.WithVariable","name":"WithVariable","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TestEnvironment","signatures":[{"params":[{"name":"name","type":"string","doc":"The variable name."},{"name":"value","type":"string","doc":"The value to give it."}],"returns":"TestEnvironment","returnsDoc":"The copy."}],"doc":{"summary":"Answers a copy that also sets one variable."},"source":{"file":"src/LibTmux.Testing/TestEnvironment.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TestEnvironment.WithVariable","product":"core","slug":"libtmux-testing-testenvironment-withvariable"},{"id":"LibTmux.Testing.TestEnvironment.WithoutVariable","name":"WithoutVariable","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TestEnvironment","signatures":[{"params":[{"name":"name","type":"string","doc":"The variable name."}],"returns":"TestEnvironment","returnsDoc":"The copy."}],"doc":{"summary":"Answers a copy that removes one variable.","body":"Removing is not the same as setting nothing: a variable set to the\nempty string is still one tmux passes on."},"source":{"file":"src/LibTmux.Testing/TestEnvironment.cs","line":53,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TestEnvironment.WithoutVariable","product":"core","slug":"libtmux-testing-testenvironment-withoutvariable"},{"id":"LibTmux.Testing.TmuxNameGenerator","name":"TmuxNameGenerator","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Makes names no other test is using.","body":"Two tests that pick the same session name find each other's sessions, and\nthe failure lands in whichever ran second. A name carries enough randomness\nto be unique without a round trip, and the asking variants also check with\nthe server for the case where something outside the test took the name."},"source":{"file":"src/LibTmux.Testing/TmuxNameGenerator.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxNameGenerator","product":"core","slug":"libtmux-testing-tmuxnamegenerator"},{"id":"LibTmux.Testing.TmuxNameGenerator.TmuxNameGenerator","name":"TmuxNameGenerator","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TmuxNameGenerator","signatures":[{"params":[{"name":"prefix","type":"string","default":"\"lt\"","doc":"What every name it makes starts with."}]}],"doc":{"summary":"Initializes a generator."},"source":{"file":"src/LibTmux.Testing/TmuxNameGenerator.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxNameGenerator.TmuxNameGenerator","product":"core","slug":"libtmux-testing-tmuxnamegenerator-tmuxnamegenerator"},{"id":"LibTmux.Testing.TmuxNameGenerator.CreateSessionName","name":"CreateSessionName","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TmuxNameGenerator","signatures":[{"params":[],"returns":"string","returnsDoc":"The name."}],"doc":{"summary":"Makes a session name."},"source":{"file":"src/LibTmux.Testing/TmuxNameGenerator.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxNameGenerator.CreateSessionName","product":"core","slug":"libtmux-testing-tmuxnamegenerator-createsessionname"},{"id":"LibTmux.Testing.TmuxNameGenerator.CreateWindowName","name":"CreateWindowName","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TmuxNameGenerator","signatures":[{"params":[],"returns":"string","returnsDoc":"The name."}],"doc":{"summary":"Makes a window name."},"source":{"file":"src/LibTmux.Testing/TmuxNameGenerator.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxNameGenerator.CreateWindowName","product":"core","slug":"libtmux-testing-tmuxnamegenerator-createwindowname"},{"id":"LibTmux.Testing.TmuxNameGenerator.CreateAvailableSessionNameAsync","name":"CreateAvailableSessionNameAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Testing.TmuxNameGenerator","signatures":[{"params":[{"name":"server","type":"Server","doc":"The server to ask."},{"name":"prefix","type":"string?","default":"null","doc":"What the name starts with, or null for this generator's."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The name."}],"doc":{"summary":"Makes a session name the server does not already hold."},"source":{"file":"src/LibTmux.Testing/TmuxNameGenerator.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxNameGenerator.CreateAvailableSessionNameAsync","product":"core","slug":"libtmux-testing-tmuxnamegenerator-createavailablesessionnameasync"},{"id":"LibTmux.Testing.TmuxNameGenerator.CreateAvailableWindowNameAsync","name":"CreateAvailableWindowNameAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Testing.TmuxNameGenerator","signatures":[{"params":[{"name":"session","type":"Session","doc":"The session to ask."},{"name":"prefix","type":"string?","default":"null","doc":"What the name starts with, or null for this generator's."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The name."}],"doc":{"summary":"Makes a window name the session does not already hold."},"source":{"file":"src/LibTmux.Testing/TmuxNameGenerator.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxNameGenerator.CreateAvailableWindowNameAsync","product":"core","slug":"libtmux-testing-tmuxnamegenerator-createavailablewindownameasync"},{"id":"LibTmux.Testing.TmuxTestContext","name":"TmuxTestContext","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A tmux server a test owns, and the environment it runs in.","body":"Disposing kills the server, so a test that forgets a session still leaves\nnothing behind. The environment is reported so a test can spawn its own\nprocesses the same way tmux was spawned."},"source":{"file":"src/LibTmux.Testing/TmuxTestContext.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestContext","product":"core","slug":"libtmux-testing-tmuxtestcontext"},{"id":"LibTmux.Testing.TmuxTestContext.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TmuxTestContext","signatures":[],"type":"Server","doc":{"summary":"Gets the server this test owns."},"source":{"file":"src/LibTmux.Testing/TmuxTestContext.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestContext.Server","product":"core","slug":"libtmux-testing-tmuxtestcontext-server"},{"id":"LibTmux.Testing.TmuxTestContext.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TmuxTestContext","signatures":[],"type":"TestEnvironment","doc":{"summary":"Gets the directory and variables the server was started with."},"source":{"file":"src/LibTmux.Testing/TmuxTestContext.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestContext.Environment","product":"core","slug":"libtmux-testing-tmuxtestcontext-environment"},{"id":"LibTmux.Testing.TmuxTestContext.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TmuxTestContext","signatures":[{"params":[],"returns":"ValueTask"}],"doc":{"summary":""},"source":{"file":"src/LibTmux.Testing/TmuxTestContext.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestContext.DisposeAsync","product":"core","slug":"libtmux-testing-tmuxtestcontext-disposeasync"},{"id":"LibTmux.Testing.TmuxTestFactory","name":"TmuxTestFactory","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Makes the tmux objects a test needs, each owning its own cleanup.","body":"Every scope this hands out is disposable, and disposing unwinds as far as\nthe scope owns: a session scope removes the session, a server scope kills\nthe server. A test that takes a scope therefore cannot leak a tmux server,\neven when it fails part way through."},"source":{"file":"src/LibTmux.Testing/TmuxTestFactory.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestFactory","product":"core","slug":"libtmux-testing-tmuxtestfactory"},{"id":"LibTmux.Testing.TmuxTestFactory.TmuxTestFactory","name":"TmuxTestFactory","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TmuxTestFactory","signatures":[{"params":[]}],"doc":{"summary":"Initializes a factory."},"source":{"file":"src/LibTmux.Testing/TmuxTestFactory.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestFactory.TmuxTestFactory","product":"core","slug":"libtmux-testing-tmuxtestfactory-tmuxtestfactory"},{"id":"LibTmux.Testing.TmuxTestFactory.CreateContextAsync","name":"CreateContextAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Testing.TmuxTestFactory","signatures":[{"params":[{"name":"options","type":"TmuxTestOptions?","default":"null","doc":"How to reach tmux, or null for a socket of its own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The context owning the server."}],"doc":{"summary":"Starts a server this test owns, with its environment."},"source":{"file":"src/LibTmux.Testing/TmuxTestFactory.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestFactory.CreateContextAsync","product":"core","slug":"libtmux-testing-tmuxtestfactory-createcontextasync"},{"id":"LibTmux.Testing.TmuxTestFactory.CreateServerAsync","name":"CreateServerAsync","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TmuxTestFactory","signatures":[{"params":[{"name":"options","type":"TmuxTestOptions?","default":"null","doc":"How to reach tmux, or null for a socket of its own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The scope owning the server."}],"doc":{"summary":"Starts a server this test owns."},"source":{"file":"src/LibTmux.Testing/TmuxTestFactory.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestFactory.CreateServerAsync","product":"core","slug":"libtmux-testing-tmuxtestfactory-createserverasync"},{"id":"LibTmux.Testing.TmuxTestFactory.CreateSessionAsync","name":"CreateSessionAsync","kind":"method","modifiers":["async","overload"],"parent":"LibTmux.Testing.TmuxTestFactory","signatures":[{"params":[{"name":"options","type":"TmuxTestOptions?","default":"null","doc":"How to reach tmux, or null for a socket of its own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The scope owning the session."},{"params":[{"name":"server","type":"Server","doc":"The server to start it on."},{"name":"options","type":"TmuxTestOptions?","default":"null","doc":"What to name it, or null for a name of its own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The scope owning the session."}],"doc":{"summary":"Starts a server and a session in it, both owned by this test.","body":"The server this makes is left to the session's own scope, which is a\nsession on a server nobody else will kill."},"source":{"file":"src/LibTmux.Testing/TmuxTestFactory.cs","line":59,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestFactory.CreateSessionAsync","product":"core","slug":"libtmux-testing-tmuxtestfactory-createsessionasync"},{"id":"LibTmux.Testing.TmuxTestFactory.CreateWindowAsync","name":"CreateWindowAsync","kind":"method","modifiers":["async","overload"],"parent":"LibTmux.Testing.TmuxTestFactory","signatures":[{"params":[{"name":"options","type":"TmuxTestOptions?","default":"null","doc":"How to reach tmux, or null for a socket of its own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The scope owning the window."},{"params":[{"name":"session","type":"Session","doc":"The session to start it in."},{"name":"options","type":"TmuxTestOptions?","default":"null","doc":"What to name it, or null for a name of its own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The scope owning the window."}],"doc":{"summary":"Starts a server, a session, and a window, all owned by this test."},"source":{"file":"src/LibTmux.Testing/TmuxTestFactory.cs","line":120,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestFactory.CreateWindowAsync","product":"core","slug":"libtmux-testing-tmuxtestfactory-createwindowasync"},{"id":"LibTmux.Testing.TmuxTestFactory.CreateHierarchyAsync","name":"CreateHierarchyAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Testing.TmuxTestFactory","signatures":[{"params":[{"name":"options","type":"TmuxTestOptions?","default":"null","doc":"How to reach tmux, or null for a socket of its own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The scope owning all four."}],"doc":{"summary":"Starts a server, session, window, and pane a test can type into."},"source":{"file":"src/LibTmux.Testing/TmuxTestFactory.cs","line":181,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestFactory.CreateHierarchyAsync","product":"core","slug":"libtmux-testing-tmuxtestfactory-createhierarchyasync"},{"id":"LibTmux.Testing.TmuxTestOptions","name":"TmuxTestOptions","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"How a test's tmux is reached and how long it is waited on.","body":"Left alone, a test gets a socket nothing else can be using. Falling back to\nthe ambient connection would point a throwaway server at the developer's own\ntmux and kill it on the way out."},"source":{"file":"src/LibTmux.Testing/TmuxTestOptions.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestOptions","product":"core","slug":"libtmux-testing-tmuxtestoptions"},{"id":"LibTmux.Testing.TmuxTestOptions.TmuxTestOptions","name":"TmuxTestOptions","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TmuxTestOptions","signatures":[{"params":[{"name":"connectionOptions","type":"ServerConnectionOptions?","default":"null","doc":"How to reach tmux, or null for a socket of its own."},{"name":"timeout","type":"TimeSpan?","default":"null","doc":"How long a wait keeps asking."},{"name":"pollInterval","type":"TimeSpan?","default":"null","doc":"How long a wait pauses between askings."},{"name":"sessionNamePrefix","type":"string","default":"\"lt\"","doc":"What generated names start with."}]}],"doc":{"summary":"Initializes test options."},"source":{"file":"src/LibTmux.Testing/TmuxTestOptions.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestOptions.TmuxTestOptions","product":"core","slug":"libtmux-testing-tmuxtestoptions-tmuxtestoptions"},{"id":"LibTmux.Testing.TmuxTestOptions.Default","name":"Default","kind":"property","modifiers":["static"],"parent":"LibTmux.Testing.TmuxTestOptions","signatures":[],"type":"TmuxTestOptions","doc":{"summary":"Gets options with a new private socket for each test scope."},"source":{"file":"src/LibTmux.Testing/TmuxTestOptions.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestOptions.Default","product":"core","slug":"libtmux-testing-tmuxtestoptions-default"},{"id":"LibTmux.Testing.TmuxTestOptions.ConnectionOptions","name":"ConnectionOptions","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TmuxTestOptions","signatures":[],"type":"ServerConnectionOptions","doc":{"summary":"Gets how to reach tmux."},"source":{"file":"src/LibTmux.Testing/TmuxTestOptions.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestOptions.ConnectionOptions","product":"core","slug":"libtmux-testing-tmuxtestoptions-connectionoptions"},{"id":"LibTmux.Testing.TmuxTestOptions.Timeout","name":"Timeout","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TmuxTestOptions","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets how long a wait keeps asking."},"source":{"file":"src/LibTmux.Testing/TmuxTestOptions.cs","line":53,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestOptions.Timeout","product":"core","slug":"libtmux-testing-tmuxtestoptions-timeout"},{"id":"LibTmux.Testing.TmuxTestOptions.PollInterval","name":"PollInterval","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TmuxTestOptions","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets how long a wait pauses between askings."},"source":{"file":"src/LibTmux.Testing/TmuxTestOptions.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestOptions.PollInterval","product":"core","slug":"libtmux-testing-tmuxtestoptions-pollinterval"},{"id":"LibTmux.Testing.TmuxTestOptions.SessionNamePrefix","name":"SessionNamePrefix","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TmuxTestOptions","signatures":[],"type":"string","doc":{"summary":"Gets what generated names start with."},"source":{"file":"src/LibTmux.Testing/TmuxTestOptions.cs","line":59,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestOptions.SessionNamePrefix","product":"core","slug":"libtmux-testing-tmuxtestoptions-sessionnameprefix"},{"id":"LibTmux.Mcp.TmuxConnectionAccessor","name":"TmuxConnectionAccessor","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Holds the tmux servers this process talks to, one per socket.","body":"A conversation outlives any single tool call, so connecting once and keeping\nthe handle costs one process launch instead of one per call. Sockets are\ncached separately because a machine runs several tmux servers at once — a\nuser's own, a test rig's, a sandbox's — and they are different servers with\nthe same commands, not one server addressed two ways.\n\nWhen no template is supplied, the tmux binary comes from\nLIBTMUX_TMUX. An explicit template is already a pinned route and wins\nover later process-environment changes."},"source":{"file":"src/LibTmux.Mcp/Connection/TmuxConnectionAccessor.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxConnectionAccessor","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxconnectionaccessor"},{"id":"LibTmux.Mcp.TmuxConnectionAccessor.TmuxConnectionAccessor","name":"TmuxConnectionAccessor","kind":"method","modifiers":["overload"],"parent":"LibTmux.Mcp.TmuxConnectionAccessor","signatures":[{"params":[{"name":"template","type":"ServerConnectionOptions?","default":"null","doc":"How to reach tmux, or null for the ambient server."},{"name":"defaultSocketName","type":"string?","default":"null","doc":"The socket used when a call names none."},{"name":"logger","type":"ILogger?","default":"null","doc":"Records connection failures."}]},{"params":[{"name":"server","type":"Server","doc":"The server every call reaches."}]}],"doc":{"summary":"Initializes the accessor."},"source":{"file":"src/LibTmux.Mcp/Connection/TmuxConnectionAccessor.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxConnectionAccessor.TmuxConnectionAccessor","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxconnectionaccessor-tmuxconnectionaccessor"},{"id":"LibTmux.Mcp.TmuxConnectionAccessor.DefaultSocketName","name":"DefaultSocketName","kind":"property","modifiers":[],"parent":"LibTmux.Mcp.TmuxConnectionAccessor","signatures":[],"type":"string?","doc":{"summary":"Gets the socket used when a call names none."},"source":{"file":"src/LibTmux.Mcp/Connection/TmuxConnectionAccessor.cs","line":71,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxConnectionAccessor.DefaultSocketName","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxconnectionaccessor-defaultsocketname"},{"id":"LibTmux.Mcp.TmuxConnectionAccessor.Dispose","name":"Dispose","kind":"method","modifiers":[],"parent":"LibTmux.Mcp.TmuxConnectionAccessor","signatures":[{"params":[],"returns":"void"}],"doc":{"summary":""},"source":{"file":"src/LibTmux.Mcp/Connection/TmuxConnectionAccessor.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxConnectionAccessor.Dispose","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxconnectionaccessor-dispose"},{"id":"LibTmux.Mcp.TmuxConnectionAccessor.GetAsync","name":"GetAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Mcp.TmuxConnectionAccessor","signatures":[{"params":[{"name":"socketName","type":"string?","default":"null","doc":"The socket, or null for the configured default."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The server.","raises":[{"type":"McpException","doc":"tmux could not be reached."}]}],"doc":{"summary":"Answers a server, connecting on the first ask for that socket."},"source":{"file":"src/LibTmux.Mcp/Connection/TmuxConnectionAccessor.cs","line":81,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxConnectionAccessor.GetAsync","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxconnectionaccessor-getasync"},{"id":"LibTmux.Mcp.TmuxConnectionAccessor.Invalidate","name":"Invalidate","kind":"method","modifiers":[],"parent":"LibTmux.Mcp.TmuxConnectionAccessor","signatures":[{"params":[{"name":"socketName","type":"string?","default":"null","doc":"The socket, or null for the configured default."}],"returns":"void"}],"doc":{"summary":"Forgets a cached server so the next call reconnects.","body":"A materialized handle names one tmux process. Killing the\nserver and starting another gives the same socket a different process,\nand the old handle then refuses to be used rather than quietly\nanswering for a server that no longer exists."},"source":{"file":"src/LibTmux.Mcp/Connection/TmuxConnectionAccessor.cs","line":147,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxConnectionAccessor.Invalidate","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxconnectionaccessor-invalidate"},{"id":"LibTmux.Mcp.LibTmuxMcp","name":"LibTmuxMcp","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"What this server says it is."},"source":{"file":"src/LibTmux.Mcp/LibTmuxMcp.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.LibTmuxMcp","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-libtmuxmcp"},{"id":"LibTmux.Mcp.LibTmuxMcp.Version","name":"Version","kind":"property","modifiers":["static"],"parent":"LibTmux.Mcp.LibTmuxMcp","signatures":[],"type":"string","doc":{"summary":"Gets the version reported to a client.","body":"An assembly version is four numbers, so a prerelease would arrive at the\nclient as \"0.0.0.0\" — which reads as unset rather than as an alpha. The\ninformational version is the one the package carries, and the build\nmetadata after \"+\" is a commit nobody asked for."},"source":{"file":"src/LibTmux.Mcp/LibTmuxMcp.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.LibTmuxMcp.Version","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-libtmuxmcp-version"},{"id":"LibTmux.Mcp.McpServerComposition","name":"McpServerComposition","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Assembles the server: what it offers, and what it refuses to.","body":"One description of the wiring, used by the executable and by the tests that\ncheck what a client receives. Two descriptions would drift, and the one\nthat drifted would be the tested one."},"source":{"file":"src/LibTmux.Mcp/McpServerComposition.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.McpServerComposition","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-mcpservercomposition"},{"id":"LibTmux.Mcp.McpServerComposition.Add","name":"Add","kind":"method","modifiers":["static"],"parent":"LibTmux.Mcp.McpServerComposition","signatures":[{"params":[{"name":"services","type":"IServiceCollection","doc":"The container to register into."},{"name":"policy","type":"ServerPolicy","doc":"What the server will do."},{"name":"connectionOptions","type":"ServerConnectionOptions","doc":"How to reach tmux."},{"name":"callerPaneId","type":"string?","doc":"The pane the server runs in, when it runs in one."}],"returns":"IMcpServerBuilder","returnsDoc":"The builder, for a transport to be chosen on."}],"doc":{"summary":"Registers everything the server needs and everything it offers."},"source":{"file":"src/LibTmux.Mcp/McpServerComposition.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.McpServerComposition.Add","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-mcpservercomposition-add"},{"id":"LibTmux.Mcp.ServerPolicy","name":"ServerPolicy","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"What this server will do, and how much of it at once.","body":"Every knob is resolved once at startup from the environment. A bad or\nout-of-range value is clamped and logged rather than refused: an operator\nwho mistypes a ceiling gets a working server and a warning, not a client\nthat fails to start with nothing to read."},"source":{"file":"src/LibTmux.Mcp/Policy/ServerPolicy.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ServerPolicy","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-serverpolicy"},{"id":"LibTmux.Mcp.ServerPolicy.WaitCeiling","name":"WaitCeiling","kind":"property","modifiers":[],"parent":"LibTmux.Mcp.ServerPolicy","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the longest a single wait may block before reporting a timeout.","body":"The ceiling bounds the model's turn rather than the transport: waits\nawait throughout, so a long one does not stall other calls. What an\nunbounded wait costs is the turn itself — a badly chosen pattern would\nspend all of it with nothing to show. Client-managed MCP tasks cover\nwork that legitimately outlives one synchronous request."},"source":{"file":"src/LibTmux.Mcp/Policy/ServerPolicy.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ServerPolicy.WaitCeiling","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-serverpolicy-waitceiling"},{"id":"LibTmux.Mcp.ServerPolicy.MaxLines","name":"MaxLines","kind":"property","modifiers":[],"parent":"LibTmux.Mcp.ServerPolicy","signatures":[],"type":"int","doc":{"summary":"Gets the line budget a capture uses when the caller names none."},"source":{"file":"src/LibTmux.Mcp/Policy/ServerPolicy.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ServerPolicy.MaxLines","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-serverpolicy-maxlines"},{"id":"LibTmux.Mcp.ServerPolicy.MaxBytes","name":"MaxBytes","kind":"property","modifiers":[],"parent":"LibTmux.Mcp.ServerPolicy","signatures":[],"type":"int","doc":{"summary":"Gets the byte budget one content-bearing result may carry."},"source":{"file":"src/LibTmux.Mcp/Policy/ServerPolicy.cs","line":60,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ServerPolicy.MaxBytes","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-serverpolicy-maxbytes"},{"id":"LibTmux.Mcp.ServerPolicy.AllowPollingFallback","name":"AllowPollingFallback","kind":"property","modifiers":[],"parent":"LibTmux.Mcp.ServerPolicy","signatures":[],"type":"bool","doc":{"summary":"Gets whether pane text waits may poll when control observation is unavailable.","body":"Disabled by default. Results disclose activation; command completion still uses tmux wait channels."},"source":{"file":"src/LibTmux.Mcp/Policy/ServerPolicy.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ServerPolicy.AllowPollingFallback","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-serverpolicy-allowpollingfallback"},{"id":"LibTmux.Mcp.ServerPolicy.FromEnvironment","name":"FromEnvironment","kind":"method","modifiers":["static"],"parent":"LibTmux.Mcp.ServerPolicy","signatures":[{"params":[{"name":"read","type":"Func","doc":"Answers an environment variable, or null when it is unset."},{"name":"logger","type":"ILogger?","default":"null","doc":"Records a clamped or unreadable value."}],"returns":"ServerPolicy","returnsDoc":"The resolved policy."}],"doc":{"summary":"Reads the policy out of a set of environment variables."},"source":{"file":"src/LibTmux.Mcp/Policy/ServerPolicy.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ServerPolicy.FromEnvironment","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-serverpolicy-fromenvironment"},{"id":"LibTmux.Mcp.ServerPolicy.EffectiveTimeout","name":"EffectiveTimeout","kind":"method","modifiers":[],"parent":"LibTmux.Mcp.ServerPolicy","signatures":[{"params":[{"name":"requested","type":"TimeSpan?","doc":"What the caller asked for, or null for the ceiling."}],"returns":"TimeSpan","returnsDoc":"The duration a wait will actually use."}],"doc":{"summary":"Lowers a caller's timeout to the ceiling this policy sets.","body":"An over-large request is honoured at the ceiling rather than refused,\nand the result reports the value used, so a model learns the policy\nfrom what came back instead of from a failed call."},"source":{"file":"src/LibTmux.Mcp/Policy/ServerPolicy.cs","line":110,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ServerPolicy.EffectiveTimeout","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-serverpolicy-effectivetimeout"},{"id":"LibTmux.Mcp.BoundedText","name":"BoundedText","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record BoundedText(\n IReadOnlyList Lines,\n bool Truncated,\n int DroppedLines,\n int DroppedBytes)","params":[{"name":"Lines","type":"IReadOnlyList","doc":"The text that fits, oldest first."},{"name":"Truncated","type":"bool","doc":"Whether anything was dropped to make it fit."},{"name":"DroppedLines","type":"int","doc":"How many complete lines were dropped from the start."},{"name":"DroppedBytes","type":"int","doc":"The exact number of UTF-8 bytes of PANE TEXT dropped from the start. This is\nnot the unit the byte budget is spent in: that bounds the whole serialized\nresult, where the same text is escaped as JSON and carried twice, so for\nwide characters it can be several times larger than the number here."}]}],"doc":{"summary":"Terminal text cut to fit a budget, with what was cut reported.","body":"Dropping is always from the oldest end. A terminal's newest line is the one\nthat says what happened, so a budget that discarded it would answer the\nwrong question. Reporting the loss is what separates a short answer from a\nwrong one: a reader who cannot see that lines are missing will conclude the\npane never printed them."},"source":{"file":"src/LibTmux.Mcp/Results/BoundedText.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.BoundedText","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-boundedtext"},{"id":"LibTmux.Mcp.BoundedText.Empty","name":"Empty","kind":"property","modifiers":["static"],"parent":"LibTmux.Mcp.BoundedText","signatures":[],"type":"BoundedText","doc":{"summary":"An empty result that dropped nothing."},"source":{"file":"src/LibTmux.Mcp/Results/BoundedText.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.BoundedText.Empty","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-boundedtext-empty"},{"id":"LibTmux.Mcp.BoundedText.Fit","name":"Fit","kind":"method","modifiers":["static"],"parent":"LibTmux.Mcp.BoundedText","signatures":[{"params":[{"name":"lines","type":"IReadOnlyList","doc":"The captured text, oldest first."},{"name":"maxLines","type":"int?","doc":"The most lines to keep, or null for no line limit."},{"name":"maxBytes","type":"int","doc":"The most UTF-8 bytes to keep."}],"returns":"BoundedText","returnsDoc":"The text that fits, and what it cost to make it fit."}],"doc":{"summary":"Cuts lines down to a line and byte budget, keeping the newest."},"source":{"file":"src/LibTmux.Mcp/Results/BoundedText.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.BoundedText.Fit","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-boundedtext-fit"},{"id":"LibTmux.Mcp.BoundedText.ToDisplayString","name":"ToDisplayString","kind":"method","modifiers":[],"parent":"LibTmux.Mcp.BoundedText","signatures":[{"params":[],"returns":"string","returnsDoc":"The lines joined by newlines, after any truncation notice."}],"doc":{"summary":"Renders the text as one block, noting any loss at the top.","body":"The notice leads because a reader who sees it will read what follows as\na tail rather than as the whole pane."},"source":{"file":"src/LibTmux.Mcp/Results/BoundedText.cs","line":117,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.BoundedText.ToDisplayString","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-boundedtext-todisplaystring"},{"id":"LibTmux.Mcp.BoundedText.Lines","name":"Lines","kind":"property","parent":"LibTmux.Mcp.BoundedText","type":"IReadOnlyList","modifiers":[],"signatures":[],"doc":{"summary":"The text that fits, oldest first."},"source":{"file":"src/LibTmux.Mcp/Results/BoundedText.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.BoundedText.Lines","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-boundedtext-lines"},{"id":"LibTmux.Mcp.BoundedText.Truncated","name":"Truncated","kind":"property","parent":"LibTmux.Mcp.BoundedText","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether anything was dropped to make it fit."},"source":{"file":"src/LibTmux.Mcp/Results/BoundedText.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.BoundedText.Truncated","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-boundedtext-truncated"},{"id":"LibTmux.Mcp.BoundedText.DroppedLines","name":"DroppedLines","kind":"property","parent":"LibTmux.Mcp.BoundedText","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"How many complete lines were dropped from the start."},"source":{"file":"src/LibTmux.Mcp/Results/BoundedText.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.BoundedText.DroppedLines","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-boundedtext-droppedlines"},{"id":"LibTmux.Mcp.BoundedText.DroppedBytes","name":"DroppedBytes","kind":"property","parent":"LibTmux.Mcp.BoundedText","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"The exact number of UTF-8 bytes of PANE TEXT dropped from the start. This is\nnot the unit the byte budget is spent in: that bounds the whole serialized\nresult, where the same text is escaped as JSON and carried twice, so for\nwide characters it can be several times larger than the number here."},"source":{"file":"src/LibTmux.Mcp/Results/BoundedText.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.BoundedText.DroppedBytes","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-boundedtext-droppedbytes"},{"id":"LibTmux.Mcp.PaneInfo","name":"PaneInfo","kind":"class","modifiers":[],"signatures":[{"raw":"[UnsupportedOSPlatform(\"windows\")]\npublic sealed record PaneInfo(\n string PaneId,\n string WindowId,\n string SessionId,\n int Index,\n int Width,\n int Height,\n string? Title,\n bool Active,\n bool Dead,\n bool Zoomed,\n bool InMode,\n string? CurrentCommand,\n string? CurrentPath,\n int? Pid,\n int? HistorySize,\n int? HistoryLimit,\n bool IsCaller)","params":[{"name":"PaneId","type":"string","doc":"The pane's identifier, such as %1."},{"name":"WindowId","type":"string","doc":"The window holding it, such as @0."},{"name":"SessionId","type":"string","doc":"The session holding that window, such as $0."},{"name":"Index","type":"int","doc":"The pane's position within its window."},{"name":"Width","type":"int","doc":"Columns."},{"name":"Height","type":"int","doc":"Rows."},{"name":"Title","type":"string?","doc":"The pane title, when it has one."},{"name":"Active","type":"bool","doc":"Whether it is the window's active pane."},{"name":"Dead","type":"bool","doc":"Whether the program in it has exited."},{"name":"Zoomed","type":"bool","doc":"Whether it is zoomed to fill its window."},{"name":"InMode","type":"bool","doc":"Whether it is in copy mode or another pane mode."},{"name":"CurrentCommand","type":"string?","doc":"The command tmux believes is running."},{"name":"CurrentPath","type":"string?","doc":"The working directory tmux reports."},{"name":"Pid","type":"int?","doc":"The process the pane started."},{"name":"HistorySize","type":"int?","doc":"Lines currently held in scrollback."},{"name":"HistoryLimit","type":"int?","doc":"The most lines scrollback will hold."},{"name":"IsCaller","type":"bool","doc":"Whether this is the pane this server runs inside."}]}],"doc":{"summary":"What a pane is and what is running in it.","body":" is how a model answers \"which pane am I in?\"\nwithout a tool of its own: filter a listing for it."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo"},{"id":"LibTmux.Mcp.PaneInfo.From","name":"From","kind":"method","modifiers":["static"],"parent":"LibTmux.Mcp.PaneInfo","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane to describe."},{"name":"callerPaneId","type":"string?","default":"null","doc":"The pane this process runs in, when it runs in one."}],"returns":"PaneInfo","returnsDoc":"The description."}],"doc":{"summary":"Describes a pane the library has already materialized."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":51,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.From","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-from"},{"id":"LibTmux.Mcp.PaneInfo.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The pane's identifier, such as %1."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.PaneId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-paneid"},{"id":"LibTmux.Mcp.PaneInfo.WindowId","name":"WindowId","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The window holding it, such as @0."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.WindowId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-windowid"},{"id":"LibTmux.Mcp.PaneInfo.SessionId","name":"SessionId","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The session holding that window, such as $0."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.SessionId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-sessionid"},{"id":"LibTmux.Mcp.PaneInfo.Index","name":"Index","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"The pane's position within its window."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.Index","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-index"},{"id":"LibTmux.Mcp.PaneInfo.Width","name":"Width","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Columns."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.Width","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-width"},{"id":"LibTmux.Mcp.PaneInfo.Height","name":"Height","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Rows."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.Height","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-height"},{"id":"LibTmux.Mcp.PaneInfo.Title","name":"Title","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The pane title, when it has one."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.Title","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-title"},{"id":"LibTmux.Mcp.PaneInfo.Active","name":"Active","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether it is the window's active pane."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.Active","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-active"},{"id":"LibTmux.Mcp.PaneInfo.Dead","name":"Dead","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the program in it has exited."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.Dead","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-dead"},{"id":"LibTmux.Mcp.PaneInfo.Zoomed","name":"Zoomed","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether it is zoomed to fill its window."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.Zoomed","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-zoomed"},{"id":"LibTmux.Mcp.PaneInfo.InMode","name":"InMode","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether it is in copy mode or another pane mode."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.InMode","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-inmode"},{"id":"LibTmux.Mcp.PaneInfo.CurrentCommand","name":"CurrentCommand","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The command tmux believes is running."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.CurrentCommand","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-currentcommand"},{"id":"LibTmux.Mcp.PaneInfo.CurrentPath","name":"CurrentPath","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The working directory tmux reports."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.CurrentPath","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-currentpath"},{"id":"LibTmux.Mcp.PaneInfo.Pid","name":"Pid","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"The process the pane started."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.Pid","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-pid"},{"id":"LibTmux.Mcp.PaneInfo.HistorySize","name":"HistorySize","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"Lines currently held in scrollback."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.HistorySize","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-historysize"},{"id":"LibTmux.Mcp.PaneInfo.HistoryLimit","name":"HistoryLimit","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"The most lines scrollback will hold."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.HistoryLimit","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-historylimit"},{"id":"LibTmux.Mcp.PaneInfo.IsCaller","name":"IsCaller","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether this is the pane this server runs inside."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.IsCaller","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-iscaller"},{"id":"LibTmux.Mcp.WindowInfo","name":"WindowInfo","kind":"class","modifiers":[],"signatures":[{"raw":"[UnsupportedOSPlatform(\"windows\")]\npublic sealed record WindowInfo(\n string WindowId,\n string SessionId,\n int Index,\n string Name,\n int Width,\n int Height,\n bool Active,\n int? PaneCount,\n string? Layout)","params":[{"name":"WindowId","type":"string","doc":"The window's identifier, such as @0."},{"name":"SessionId","type":"string","doc":"The session holding it, such as $0."},{"name":"Index","type":"int","doc":"The window's index within its session."},{"name":"Name","type":"string","doc":"The window name."},{"name":"Width","type":"int","doc":"Columns."},{"name":"Height","type":"int","doc":"Rows."},{"name":"Active","type":"bool","doc":"Whether it is the session's current window."},{"name":"PaneCount","type":"int?","doc":"How many panes it holds."},{"name":"Layout","type":"string?","doc":"tmux's layout string for it."}]}],"doc":{"summary":"What a window is and how it is laid out."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo"},{"id":"LibTmux.Mcp.WindowInfo.From","name":"From","kind":"method","modifiers":["static"],"parent":"LibTmux.Mcp.WindowInfo","signatures":[{"params":[{"name":"window","type":"Window","doc":"The window to describe."}],"returns":"WindowInfo","returnsDoc":"The description."}],"doc":{"summary":"Describes a window the library has already materialized."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":102,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.From","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-from"},{"id":"LibTmux.Mcp.WindowInfo.WindowId","name":"WindowId","kind":"property","parent":"LibTmux.Mcp.WindowInfo","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The window's identifier, such as @0."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":89,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.WindowId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-windowid"},{"id":"LibTmux.Mcp.WindowInfo.SessionId","name":"SessionId","kind":"property","parent":"LibTmux.Mcp.WindowInfo","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The session holding it, such as $0."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":90,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.SessionId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-sessionid"},{"id":"LibTmux.Mcp.WindowInfo.Index","name":"Index","kind":"property","parent":"LibTmux.Mcp.WindowInfo","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"The window's index within its session."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":91,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.Index","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-index"},{"id":"LibTmux.Mcp.WindowInfo.Name","name":"Name","kind":"property","parent":"LibTmux.Mcp.WindowInfo","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The window name."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":92,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.Name","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-name"},{"id":"LibTmux.Mcp.WindowInfo.Width","name":"Width","kind":"property","parent":"LibTmux.Mcp.WindowInfo","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Columns."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":93,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.Width","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-width"},{"id":"LibTmux.Mcp.WindowInfo.Height","name":"Height","kind":"property","parent":"LibTmux.Mcp.WindowInfo","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Rows."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":94,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.Height","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-height"},{"id":"LibTmux.Mcp.WindowInfo.Active","name":"Active","kind":"property","parent":"LibTmux.Mcp.WindowInfo","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether it is the session's current window."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":95,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.Active","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-active"},{"id":"LibTmux.Mcp.WindowInfo.PaneCount","name":"PaneCount","kind":"property","parent":"LibTmux.Mcp.WindowInfo","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"How many panes it holds."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":96,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.PaneCount","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-panecount"},{"id":"LibTmux.Mcp.WindowInfo.Layout","name":"Layout","kind":"property","parent":"LibTmux.Mcp.WindowInfo","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"tmux's layout string for it."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":97,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.Layout","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-layout"},{"id":"LibTmux.Mcp.SessionInfo","name":"SessionInfo","kind":"class","modifiers":[],"signatures":[{"raw":"[UnsupportedOSPlatform(\"windows\")]\npublic sealed record SessionInfo(\n string SessionId,\n string Name,\n bool Attached,\n int? WindowCount)","params":[{"name":"SessionId","type":"string","doc":"The session's identifier, such as $0."},{"name":"Name","type":"string","doc":"The session name."},{"name":"Attached","type":"bool","doc":"Whether a client is attached to it. Never counts a control client this MCP\nserver opened for a wait or a capture - tmux counts that the same way it\ncounts a human client, and a session nobody is watching must not read as\nattached just because it is being observed."},{"name":"WindowCount","type":"int?","doc":"How many windows it holds."}]}],"doc":{"summary":"What a session is.","body":"There is no session size. tmux removed the session_width and\nsession_height formats in 2.9, so on every supported version those\nfields could only ever answer null."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":134,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SessionInfo","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sessioninfo"},{"id":"LibTmux.Mcp.SessionInfo.From","name":"From","kind":"method","modifiers":["static"],"parent":"LibTmux.Mcp.SessionInfo","signatures":[{"params":[{"name":"session","type":"Session","doc":"The session to describe."},{"name":"attached","type":"bool?","default":"null","doc":"Whether a client other than this server's own observers is attached,\nor null to trust the session's own captured field as-is."}],"returns":"SessionInfo","returnsDoc":"The description."}],"doc":{"summary":"Describes a session the library has already materialized."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":148,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SessionInfo.From","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sessioninfo-from"},{"id":"LibTmux.Mcp.SessionInfo.SessionId","name":"SessionId","kind":"property","parent":"LibTmux.Mcp.SessionInfo","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The session's identifier, such as $0."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":136,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SessionInfo.SessionId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sessioninfo-sessionid"},{"id":"LibTmux.Mcp.SessionInfo.Name","name":"Name","kind":"property","parent":"LibTmux.Mcp.SessionInfo","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The session name."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":137,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SessionInfo.Name","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sessioninfo-name"},{"id":"LibTmux.Mcp.SessionInfo.Attached","name":"Attached","kind":"property","parent":"LibTmux.Mcp.SessionInfo","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether a client is attached to it. Never counts a control client this MCP\nserver opened for a wait or a capture - tmux counts that the same way it\ncounts a human client, and a session nobody is watching must not read as\nattached just because it is being observed."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":138,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SessionInfo.Attached","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sessioninfo-attached"},{"id":"LibTmux.Mcp.SessionInfo.WindowCount","name":"WindowCount","kind":"property","parent":"LibTmux.Mcp.SessionInfo","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"How many windows it holds."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":139,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SessionInfo.WindowCount","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sessioninfo-windowcount"},{"id":"LibTmux.Mcp.TmuxServerInfo","name":"TmuxServerInfo","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record TmuxServerInfo(\n string? SocketName,\n string? SocketPath,\n string? Version,\n int SessionCount,\n int WindowCount,\n int PaneCount,\n string? CallerPaneId,\n string? CallerPaneSocket);","params":[{"name":"SocketName","type":"string?","doc":"The -L name this server answers on, or null when it was reached by\npath instead — a path-selected socket has no name of its own."},{"name":"SocketPath","type":"string?","doc":"The -S path this server answers on, or null when reached by name."},{"name":"Version","type":"string?","doc":"The tmux version running it, or null when the server is not answering —\nincluding one that was running earlier in this process and has since\nexited, so this never reports a stale version for a server that is gone."},{"name":"SessionCount","type":"int","doc":"How many sessions it holds."},{"name":"WindowCount","type":"int","doc":"How many windows, across every session."},{"name":"PaneCount","type":"int","doc":"How many panes, across every window."},{"name":"CallerPaneId","type":"string?","doc":"The pane this server runs in, when it runs in one."},{"name":"CallerPaneSocket","type":"string?","doc":"The socket the caller's own pane lives on, when that is not this server's.\nA null CallerPaneId beside a value here means the caller's terminal\nis on a different tmux server and no listing from this one can contain it —\nwhich is the default arrangement, not a failure to determine anything."}]}],"doc":{"summary":"What a tmux server is and how much it is holding."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":181,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxServerInfo","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxserverinfo"},{"id":"LibTmux.Mcp.TmuxServerInfo.SocketName","name":"SocketName","kind":"property","parent":"LibTmux.Mcp.TmuxServerInfo","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The -L name this server answers on, or null when it was reached by\npath instead — a path-selected socket has no name of its own."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":182,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxServerInfo.SocketName","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxserverinfo-socketname"},{"id":"LibTmux.Mcp.TmuxServerInfo.SocketPath","name":"SocketPath","kind":"property","parent":"LibTmux.Mcp.TmuxServerInfo","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The -S path this server answers on, or null when reached by name."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":183,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxServerInfo.SocketPath","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxserverinfo-socketpath"},{"id":"LibTmux.Mcp.TmuxServerInfo.Version","name":"Version","kind":"property","parent":"LibTmux.Mcp.TmuxServerInfo","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The tmux version running it, or null when the server is not answering —\nincluding one that was running earlier in this process and has since\nexited, so this never reports a stale version for a server that is gone."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":184,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxServerInfo.Version","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxserverinfo-version"},{"id":"LibTmux.Mcp.TmuxServerInfo.SessionCount","name":"SessionCount","kind":"property","parent":"LibTmux.Mcp.TmuxServerInfo","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"How many sessions it holds."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":185,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxServerInfo.SessionCount","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxserverinfo-sessioncount"},{"id":"LibTmux.Mcp.TmuxServerInfo.WindowCount","name":"WindowCount","kind":"property","parent":"LibTmux.Mcp.TmuxServerInfo","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"How many windows, across every session."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":186,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxServerInfo.WindowCount","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxserverinfo-windowcount"},{"id":"LibTmux.Mcp.TmuxServerInfo.PaneCount","name":"PaneCount","kind":"property","parent":"LibTmux.Mcp.TmuxServerInfo","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"How many panes, across every window."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":187,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxServerInfo.PaneCount","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxserverinfo-panecount"},{"id":"LibTmux.Mcp.TmuxServerInfo.CallerPaneId","name":"CallerPaneId","kind":"property","parent":"LibTmux.Mcp.TmuxServerInfo","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The pane this server runs in, when it runs in one."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":188,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxServerInfo.CallerPaneId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxserverinfo-callerpaneid"},{"id":"LibTmux.Mcp.TmuxServerInfo.CallerPaneSocket","name":"CallerPaneSocket","kind":"property","parent":"LibTmux.Mcp.TmuxServerInfo","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The socket the caller's own pane lives on, when that is not this server's.\nA null CallerPaneId beside a value here means the caller's terminal\nis on a different tmux server and no listing from this one can contain it —\nwhich is the default arrangement, not a failure to determine anything."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":189,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxServerInfo.CallerPaneSocket","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxserverinfo-callerpanesocket"},{"id":"LibTmux.Mcp.PaneSnapshot","name":"PaneSnapshot","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record PaneSnapshot(\n PaneInfo Pane,\n BoundedText Content,\n int? CursorX,\n int? CursorY,\n bool AlternateScreen);","params":[{"name":"Pane","type":"PaneInfo","doc":"What the pane is and what runs in it."},{"name":"Content","type":"BoundedText","doc":"What is on the screen, within the budget."},{"name":"CursorX","type":"int?","doc":"The cursor's column, zero-based."},{"name":"CursorY","type":"int?","doc":"The cursor's row within the visible screen, zero-based."},{"name":"AlternateScreen","type":"bool","doc":"Whether a full-screen program owns the pane. When it does, scrollback holds\nwhatever was on screen before that program started, not its output."}]}],"doc":{"summary":"A pane's content and its screen state, read together.","body":"One call rather than a capture followed by an info read: the two would be\nseparated by however long the model took to ask again, and a pane can move\nin between, which is how a cursor ends up described against the wrong text."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneSnapshot","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panesnapshot"},{"id":"LibTmux.Mcp.PaneSnapshot.Pane","name":"Pane","kind":"property","parent":"LibTmux.Mcp.PaneSnapshot","type":"PaneInfo","modifiers":[],"signatures":[],"doc":{"summary":"What the pane is and what runs in it."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneSnapshot.Pane","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panesnapshot-pane"},{"id":"LibTmux.Mcp.PaneSnapshot.Content","name":"Content","kind":"property","parent":"LibTmux.Mcp.PaneSnapshot","type":"BoundedText","modifiers":[],"signatures":[],"doc":{"summary":"What is on the screen, within the budget."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneSnapshot.Content","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panesnapshot-content"},{"id":"LibTmux.Mcp.PaneSnapshot.CursorX","name":"CursorX","kind":"property","parent":"LibTmux.Mcp.PaneSnapshot","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"The cursor's column, zero-based."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneSnapshot.CursorX","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panesnapshot-cursorx"},{"id":"LibTmux.Mcp.PaneSnapshot.CursorY","name":"CursorY","kind":"property","parent":"LibTmux.Mcp.PaneSnapshot","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"The cursor's row within the visible screen, zero-based."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneSnapshot.CursorY","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panesnapshot-cursory"},{"id":"LibTmux.Mcp.PaneSnapshot.AlternateScreen","name":"AlternateScreen","kind":"property","parent":"LibTmux.Mcp.PaneSnapshot","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether a full-screen program owns the pane. When it does, scrollback holds\nwhatever was on screen before that program started, not its output."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneSnapshot.AlternateScreen","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panesnapshot-alternatescreen"},{"id":"LibTmux.Mcp.CaptureResult","name":"CaptureResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record CaptureResult(string PaneId, BoundedText Content);","params":[{"name":"PaneId","type":"string","doc":"The pane that was read."},{"name":"Content","type":"BoundedText","doc":"The text, within the budget."}]}],"doc":{"summary":"What a pane was showing."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.CaptureResult","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-captureresult"},{"id":"LibTmux.Mcp.CaptureResult.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.Mcp.CaptureResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The pane that was read."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.CaptureResult.PaneId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-captureresult-paneid"},{"id":"LibTmux.Mcp.CaptureResult.Content","name":"Content","kind":"property","parent":"LibTmux.Mcp.CaptureResult","type":"BoundedText","modifiers":[],"signatures":[],"doc":{"summary":"The text, within the budget."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.CaptureResult.Content","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-captureresult-content"},{"id":"LibTmux.Mcp.TailResult","name":"TailResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record TailResult(\n string PaneId,\n BoundedText Content,\n string Cursor,\n bool LinesMissed,\n bool AnchorLost);","params":[{"name":"PaneId","type":"string","doc":"The pane that was read."},{"name":"Content","type":"BoundedText","doc":"The new text, within the budget."},{"name":"Cursor","type":"string","doc":"Where this read finished. Pass it to the next call to continue from here.\nIt is opaque; do not build one."},{"name":"LinesMissed","type":"bool","doc":"Whether scrollback dropped lines this read never saw. tmux frees the oldest\nhistory once history-limit is reached, so a pane that printed more\nthan that between two reads loses the lines in between for good."},{"name":"AnchorLost","type":"bool","doc":"Whether the previous position could no longer be found, so the read started\nfrom what is visible now rather than from where it left off."}]}],"doc":{"summary":"What a pane has printed since it was last read.","body":"This is the tool for watching a pane across turns. It answers only what is\nnew, so the tenth read of a busy pane costs what the first one did rather\nthan ten times as much."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TailResult","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tailresult"},{"id":"LibTmux.Mcp.TailResult.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.Mcp.TailResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The pane that was read."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":51,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TailResult.PaneId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tailresult-paneid"},{"id":"LibTmux.Mcp.TailResult.Content","name":"Content","kind":"property","parent":"LibTmux.Mcp.TailResult","type":"BoundedText","modifiers":[],"signatures":[],"doc":{"summary":"The new text, within the budget."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TailResult.Content","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tailresult-content"},{"id":"LibTmux.Mcp.TailResult.Cursor","name":"Cursor","kind":"property","parent":"LibTmux.Mcp.TailResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"Where this read finished. Pass it to the next call to continue from here.\nIt is opaque; do not build one."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":53,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TailResult.Cursor","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tailresult-cursor"},{"id":"LibTmux.Mcp.TailResult.LinesMissed","name":"LinesMissed","kind":"property","parent":"LibTmux.Mcp.TailResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether scrollback dropped lines this read never saw. tmux frees the oldest\nhistory once history-limit is reached, so a pane that printed more\nthan that between two reads loses the lines in between for good."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TailResult.LinesMissed","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tailresult-linesmissed"},{"id":"LibTmux.Mcp.TailResult.AnchorLost","name":"AnchorLost","kind":"property","parent":"LibTmux.Mcp.TailResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the previous position could no longer be found, so the read started\nfrom what is visible now rather than from where it left off."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TailResult.AnchorLost","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tailresult-anchorlost"},{"id":"LibTmux.Mcp.WaitOutcome","name":"WaitOutcome","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"How a wait ended."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitOutcome","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitoutcome"},{"id":"LibTmux.Mcp.WaitOutcome.Matched","name":"Matched","kind":"constant","modifiers":[],"parent":"LibTmux.Mcp.WaitOutcome","signatures":[],"doc":{"summary":"One of the patterns the caller asked for appeared."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitOutcome.Matched","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitoutcome-matched"},{"id":"LibTmux.Mcp.WaitOutcome.AnyOutput","name":"AnyOutput","kind":"constant","modifiers":[],"parent":"LibTmux.Mcp.WaitOutcome","signatures":[],"doc":{"summary":"The pane printed something, and the caller asked for any output."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitOutcome.AnyOutput","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitoutcome-anyoutput"},{"id":"LibTmux.Mcp.WaitOutcome.Stopped","name":"Stopped","kind":"constant","modifiers":[],"parent":"LibTmux.Mcp.WaitOutcome","signatures":[],"doc":{"summary":"One of the caller's stop patterns appeared, so waiting was pointless."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":67,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitOutcome.Stopped","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitoutcome-stopped"},{"id":"LibTmux.Mcp.WaitOutcome.Timeout","name":"Timeout","kind":"constant","modifiers":[],"parent":"LibTmux.Mcp.WaitOutcome","signatures":[],"doc":{"summary":"The time ran out before anything matched."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitOutcome.Timeout","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitoutcome-timeout"},{"id":"LibTmux.Mcp.WaitOutcome.PaneDied","name":"PaneDied","kind":"constant","modifiers":[],"parent":"LibTmux.Mcp.WaitOutcome","signatures":[],"doc":{"summary":"The pane's program exited while the wait was running."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":73,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitOutcome.PaneDied","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitoutcome-panedied"},{"id":"LibTmux.Mcp.WaitOutcome.PresentAtEntry","name":"PresentAtEntry","kind":"constant","modifiers":[],"parent":"LibTmux.Mcp.WaitOutcome","signatures":[],"doc":{"summary":"A wanted pattern was already on screen in the initial capture.","body":"The wait returns this outcome before waiting for new output.\n names the existing match."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":82,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitOutcome.PresentAtEntry","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitoutcome-presentatentry"},{"id":"LibTmux.Mcp.WaitResult","name":"WaitResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record WaitResult(\n string PaneId,\n WaitOutcome Outcome,\n string? MatchedPattern,\n BoundedText Tail,\n double ElapsedSeconds,\n double EffectiveTimeoutSeconds)","params":[{"name":"PaneId","type":"string","doc":"The pane that was watched."},{"name":"Outcome","type":"WaitOutcome","doc":"How the wait ended."},{"name":"MatchedPattern","type":"string?","doc":"The pattern that ended it, when one did."},{"name":"Tail","type":"BoundedText","doc":"The last lines of the pane when the wait ended."},{"name":"ElapsedSeconds","type":"double","doc":"How long the wait ran."},{"name":"EffectiveTimeoutSeconds","type":"double","doc":"The timeout actually used. An over-large request is lowered to the server's\nceiling rather than refused, so read this instead of assuming the value\nasked for was honoured."}]}],"doc":{"summary":"What happened while waiting for a pane to print something."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":96,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult"},{"id":"LibTmux.Mcp.WaitResult.PollingFallback","name":"PollingFallback","kind":"property","modifiers":[],"parent":"LibTmux.Mcp.WaitResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether this wait enabled polling after control observation was unavailable.","body":"False identifies control observation. True includes an entry match obtained before the first timed poll."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":106,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.PollingFallback","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-pollingfallback"},{"id":"LibTmux.Mcp.WaitResult.EventsDropped","name":"EventsDropped","kind":"property","modifiers":[],"parent":"LibTmux.Mcp.WaitResult","signatures":[],"type":"long","doc":{"summary":"Gets control notifications dropped by the watched session during this wait.","body":"Loss wakes a fresh pane read but cannot recover intermediate output.\nThe session-wide count can include notifications about other panes."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":113,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.EventsDropped","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-eventsdropped"},{"id":"LibTmux.Mcp.WaitResult.LinesMissed","name":"LinesMissed","kind":"property","modifiers":[],"parent":"LibTmux.Mcp.WaitResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether unread rendered lines may have been lost."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":116,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.LinesMissed","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-linesmissed"},{"id":"LibTmux.Mcp.WaitResult.AnchorLost","name":"AnchorLost","kind":"property","modifiers":[],"parent":"LibTmux.Mcp.WaitResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether the prior grid anchor could not be recovered."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":119,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.AnchorLost","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-anchorlost"},{"id":"LibTmux.Mcp.WaitResult.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.Mcp.WaitResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The pane that was watched."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":97,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.PaneId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-paneid"},{"id":"LibTmux.Mcp.WaitResult.Outcome","name":"Outcome","kind":"property","parent":"LibTmux.Mcp.WaitResult","type":"WaitOutcome","modifiers":[],"signatures":[],"doc":{"summary":"How the wait ended."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":98,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.Outcome","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-outcome"},{"id":"LibTmux.Mcp.WaitResult.MatchedPattern","name":"MatchedPattern","kind":"property","parent":"LibTmux.Mcp.WaitResult","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The pattern that ended it, when one did."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":99,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.MatchedPattern","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-matchedpattern"},{"id":"LibTmux.Mcp.WaitResult.Tail","name":"Tail","kind":"property","parent":"LibTmux.Mcp.WaitResult","type":"BoundedText","modifiers":[],"signatures":[],"doc":{"summary":"The last lines of the pane when the wait ended."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":100,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.Tail","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-tail"},{"id":"LibTmux.Mcp.WaitResult.ElapsedSeconds","name":"ElapsedSeconds","kind":"property","parent":"LibTmux.Mcp.WaitResult","type":"double","modifiers":[],"signatures":[],"doc":{"summary":"How long the wait ran."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":101,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.ElapsedSeconds","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-elapsedseconds"},{"id":"LibTmux.Mcp.WaitResult.EffectiveTimeoutSeconds","name":"EffectiveTimeoutSeconds","kind":"property","parent":"LibTmux.Mcp.WaitResult","type":"double","modifiers":[],"signatures":[],"doc":{"summary":"The timeout actually used. An over-large request is lowered to the server's\nceiling rather than refused, so read this instead of assuming the value\nasked for was honoured."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":102,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.EffectiveTimeoutSeconds","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-effectivetimeoutseconds"},{"id":"LibTmux.Mcp.ChannelWaitResult","name":"ChannelWaitResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record ChannelWaitResult(\n string Changed,\n string Channel,\n bool Signalled,\n double ElapsedSeconds,\n double EffectiveTimeoutSeconds);","params":[{"name":"Changed","type":"string","doc":"What happened, in plain words."},{"name":"Channel","type":"string","doc":"The channel that was waited on."},{"name":"Signalled","type":"bool","doc":"Whether the channel was signalled. False means this attempt expired; tmux\ncannot say whether a signal raced the withdrawal, so it does not prove the\nchannel was never signalled."},{"name":"ElapsedSeconds","type":"double","doc":"How long the wait ran."},{"name":"EffectiveTimeoutSeconds","type":"double","doc":"The timeout actually used. An over-large request is lowered to the server's\nceiling rather than refused, so read this instead of assuming the value\nasked for was honoured."}]}],"doc":{"summary":"What happened while waiting on a tmux wait-for channel."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":136,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ChannelWaitResult","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-channelwaitresult"},{"id":"LibTmux.Mcp.ChannelWaitResult.Changed","name":"Changed","kind":"property","parent":"LibTmux.Mcp.ChannelWaitResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"What happened, in plain words."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":137,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ChannelWaitResult.Changed","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-channelwaitresult-changed"},{"id":"LibTmux.Mcp.ChannelWaitResult.Channel","name":"Channel","kind":"property","parent":"LibTmux.Mcp.ChannelWaitResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The channel that was waited on."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":138,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ChannelWaitResult.Channel","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-channelwaitresult-channel"},{"id":"LibTmux.Mcp.ChannelWaitResult.Signalled","name":"Signalled","kind":"property","parent":"LibTmux.Mcp.ChannelWaitResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the channel was signalled. False means this attempt expired; tmux\ncannot say whether a signal raced the withdrawal, so it does not prove the\nchannel was never signalled."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":139,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ChannelWaitResult.Signalled","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-channelwaitresult-signalled"},{"id":"LibTmux.Mcp.ChannelWaitResult.ElapsedSeconds","name":"ElapsedSeconds","kind":"property","parent":"LibTmux.Mcp.ChannelWaitResult","type":"double","modifiers":[],"signatures":[],"doc":{"summary":"How long the wait ran."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":140,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ChannelWaitResult.ElapsedSeconds","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-channelwaitresult-elapsedseconds"},{"id":"LibTmux.Mcp.ChannelWaitResult.EffectiveTimeoutSeconds","name":"EffectiveTimeoutSeconds","kind":"property","parent":"LibTmux.Mcp.ChannelWaitResult","type":"double","modifiers":[],"signatures":[],"doc":{"summary":"The timeout actually used. An over-large request is lowered to the server's\nceiling rather than refused, so read this instead of assuming the value\nasked for was honoured."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":141,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ChannelWaitResult.EffectiveTimeoutSeconds","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-channelwaitresult-effectivetimeoutseconds"},{"id":"LibTmux.Mcp.RunResult","name":"RunResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record RunResult(\n string PaneId,\n int? ExitStatus,\n bool TimedOut,\n BoundedText Output,\n double ElapsedSeconds,\n double EffectiveTimeoutSeconds,\n bool LinesMissed = false,\n bool AnchorLost = false,\n bool Started = true,\n bool PaneExited = false);","params":[{"name":"PaneId","type":"string","doc":"The pane it ran in."},{"name":"ExitStatus","type":"int?","doc":"The shell's exit status, or null when the command did not finish in time."},{"name":"TimedOut","type":"bool","doc":"Whether waiting stopped before completion. The shell command may still be\nrunning; inspect the pane and do not retry it."},{"name":"Output","type":"BoundedText","doc":"What the command printed, within the budget."},{"name":"ElapsedSeconds","type":"double","doc":"How long it took."},{"name":"EffectiveTimeoutSeconds","type":"double","doc":"The timeout actually used, after the server's ceiling."},{"name":"LinesMissed","type":"bool","default":"false","doc":"Whether scrollback dropped output before it could be read."},{"name":"AnchorLost","type":"bool","default":"false","doc":"Whether the pre-command output position could no longer be found."},{"name":"Started","type":"bool","default":"true","doc":"Whether the command was seen to begin. A timeout with this false means the\nwrapper never ran, usually because the pane was not at an empty, ready shell\nprompt. The usual \"it may still be running\" does not apply; inspect the pane\nbefore retrying."},{"name":"PaneExited","type":"bool","default":"false","doc":"Whether the pane's program exited before the command reported its status.\nThe run ends then rather than at its timeout, with no exit status."}]}],"doc":{"summary":"What a command did.","body":"The command runs in a subshell, so a cd or an export in it\ndoes not survive into the next call."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":171,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult"},{"id":"LibTmux.Mcp.RunResult.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The pane it ran in."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":172,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.PaneId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-paneid"},{"id":"LibTmux.Mcp.RunResult.ExitStatus","name":"ExitStatus","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"The shell's exit status, or null when the command did not finish in time."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":173,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.ExitStatus","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-exitstatus"},{"id":"LibTmux.Mcp.RunResult.TimedOut","name":"TimedOut","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether waiting stopped before completion. The shell command may still be\nrunning; inspect the pane and do not retry it."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":174,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.TimedOut","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-timedout"},{"id":"LibTmux.Mcp.RunResult.Output","name":"Output","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"BoundedText","modifiers":[],"signatures":[],"doc":{"summary":"What the command printed, within the budget."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":175,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.Output","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-output"},{"id":"LibTmux.Mcp.RunResult.ElapsedSeconds","name":"ElapsedSeconds","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"double","modifiers":[],"signatures":[],"doc":{"summary":"How long it took."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":176,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.ElapsedSeconds","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-elapsedseconds"},{"id":"LibTmux.Mcp.RunResult.EffectiveTimeoutSeconds","name":"EffectiveTimeoutSeconds","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"double","modifiers":[],"signatures":[],"doc":{"summary":"The timeout actually used, after the server's ceiling."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":177,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.EffectiveTimeoutSeconds","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-effectivetimeoutseconds"},{"id":"LibTmux.Mcp.RunResult.LinesMissed","name":"LinesMissed","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether scrollback dropped output before it could be read."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":178,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.LinesMissed","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-linesmissed"},{"id":"LibTmux.Mcp.RunResult.AnchorLost","name":"AnchorLost","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the pre-command output position could no longer be found."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":179,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.AnchorLost","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-anchorlost"},{"id":"LibTmux.Mcp.RunResult.Started","name":"Started","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the command was seen to begin. A timeout with this false means the\nwrapper never ran, usually because the pane was not at an empty, ready shell\nprompt. The usual \"it may still be running\" does not apply; inspect the pane\nbefore retrying."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":180,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.Started","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-started"},{"id":"LibTmux.Mcp.RunResult.PaneExited","name":"PaneExited","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the pane's program exited before the command reported its status.\nThe run ends then rather than at its timeout, with no exit status."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":181,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.PaneExited","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-paneexited"},{"id":"LibTmux.Mcp.PaneMatch","name":"PaneMatch","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record PaneMatch(\n string PaneId,\n string WindowId,\n string SessionId,\n IReadOnlyList Matches);","params":[{"name":"PaneId","type":"string","doc":"The pane that matched."},{"name":"WindowId","type":"string","doc":"The window holding it."},{"name":"SessionId","type":"string","doc":"The session holding that window."},{"name":"Matches","type":"IReadOnlyList","doc":"The matching lines, with the row each was found on."}]}],"doc":{"summary":"One pane whose text matched a search."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":188,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneMatch","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panematch"},{"id":"LibTmux.Mcp.PaneMatch.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.Mcp.PaneMatch","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The pane that matched."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":189,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneMatch.PaneId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panematch-paneid"},{"id":"LibTmux.Mcp.PaneMatch.WindowId","name":"WindowId","kind":"property","parent":"LibTmux.Mcp.PaneMatch","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The window holding it."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":190,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneMatch.WindowId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panematch-windowid"},{"id":"LibTmux.Mcp.PaneMatch.SessionId","name":"SessionId","kind":"property","parent":"LibTmux.Mcp.PaneMatch","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The session holding that window."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":191,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneMatch.SessionId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panematch-sessionid"},{"id":"LibTmux.Mcp.PaneMatch.Matches","name":"Matches","kind":"property","parent":"LibTmux.Mcp.PaneMatch","type":"IReadOnlyList","modifiers":[],"signatures":[],"doc":{"summary":"The matching lines, with the row each was found on."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":192,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneMatch.Matches","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panematch-matches"},{"id":"LibTmux.Mcp.MatchedLine","name":"MatchedLine","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record MatchedLine(int Row, string Text);","params":[{"name":"Row","type":"int","doc":"The row it was found on. Zero is the top of the visible screen; a negative\nrow is that many lines back into scrollback."},{"name":"Text","type":"string","doc":"The line."}]}],"doc":{"summary":"One line that matched a search."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":200,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.MatchedLine","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-matchedline"},{"id":"LibTmux.Mcp.MatchedLine.Row","name":"Row","kind":"property","parent":"LibTmux.Mcp.MatchedLine","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"The row it was found on. Zero is the top of the visible screen; a negative\nrow is that many lines back into scrollback."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":200,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.MatchedLine.Row","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-matchedline-row"},{"id":"LibTmux.Mcp.MatchedLine.Text","name":"Text","kind":"property","parent":"LibTmux.Mcp.MatchedLine","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The line."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":200,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.MatchedLine.Text","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-matchedline-text"},{"id":"LibTmux.Mcp.SearchResult","name":"SearchResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record SearchResult(\n string Pattern,\n int PanesSearched,\n IReadOnlyList Panes,\n bool Truncated);","params":[{"name":"Pattern","type":"string","doc":"The pattern that was searched for."},{"name":"PanesSearched","type":"int","doc":"How many panes were read."},{"name":"Panes","type":"IReadOnlyList","doc":"The panes that matched, and what matched in them."},{"name":"Truncated","type":"bool","doc":"Whether the match limit stopped the search early."}]}],"doc":{"summary":"What a search across panes found."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":207,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SearchResult","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-searchresult"},{"id":"LibTmux.Mcp.SearchResult.Pattern","name":"Pattern","kind":"property","parent":"LibTmux.Mcp.SearchResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The pattern that was searched for."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":208,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SearchResult.Pattern","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-searchresult-pattern"},{"id":"LibTmux.Mcp.SearchResult.PanesSearched","name":"PanesSearched","kind":"property","parent":"LibTmux.Mcp.SearchResult","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"How many panes were read."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":209,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SearchResult.PanesSearched","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-searchresult-panessearched"},{"id":"LibTmux.Mcp.SearchResult.Panes","name":"Panes","kind":"property","parent":"LibTmux.Mcp.SearchResult","type":"IReadOnlyList","modifiers":[],"signatures":[],"doc":{"summary":"The panes that matched, and what matched in them."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":210,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SearchResult.Panes","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-searchresult-panes"},{"id":"LibTmux.Mcp.SearchResult.Truncated","name":"Truncated","kind":"property","parent":"LibTmux.Mcp.SearchResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the match limit stopped the search early."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":211,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SearchResult.Truncated","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-searchresult-truncated"},{"id":"LibTmux.Mcp.ActionResult","name":"ActionResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record ActionResult(\n string Changed,\n string? PaneId = null,\n string? WindowId = null,\n string? SessionId = null);","params":[{"name":"Changed","type":"string","doc":"What tmux now holds that it did not before, in plain words."},{"name":"PaneId","type":"string?","default":"null","doc":"The pane the action produced or acted on, when there is one."},{"name":"WindowId","type":"string?","default":"null","doc":"The window the action produced or acted on, when there is one."},{"name":"SessionId","type":"string?","default":"null","doc":"The session the action produced or acted on, when there is one."}]}],"doc":{"summary":"What a tool that changed tmux did.","body":"A mutating tool answers what it created rather than the whole hierarchy, so\nthe identifier needed for the next call is already in hand and no listing is\nrequired to find it."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":223,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ActionResult","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-actionresult"},{"id":"LibTmux.Mcp.ActionResult.Changed","name":"Changed","kind":"property","parent":"LibTmux.Mcp.ActionResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"What tmux now holds that it did not before, in plain words."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":224,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ActionResult.Changed","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-actionresult-changed"},{"id":"LibTmux.Mcp.ActionResult.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.Mcp.ActionResult","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The pane the action produced or acted on, when there is one."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":225,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ActionResult.PaneId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-actionresult-paneid"},{"id":"LibTmux.Mcp.ActionResult.WindowId","name":"WindowId","kind":"property","parent":"LibTmux.Mcp.ActionResult","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The window the action produced or acted on, when there is one."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":226,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ActionResult.WindowId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-actionresult-windowid"},{"id":"LibTmux.Mcp.ActionResult.SessionId","name":"SessionId","kind":"property","parent":"LibTmux.Mcp.ActionResult","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The session the action produced or acted on, when there is one."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":227,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ActionResult.SessionId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-actionresult-sessionid"},{"id":"LibTmux.Mcp.PaneInputResult","name":"PaneInputResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record PaneInputResult(\n string Changed,\n string PaneId,\n IReadOnlyList TargetPaneIds);","params":[{"name":"Changed","type":"string","doc":"What was sent, in plain words."},{"name":"PaneId","type":"string","doc":"The pane named by the caller after active-pane resolution."},{"name":"TargetPaneIds","type":"IReadOnlyList","doc":"The named source when its effective pane_synchronized value is 0. Only when\nit is 1, every configured effective-on cohort member; membership does not\nprove delivery."}]}],"doc":{"summary":"What pane input targeted after tmux synchronization was resolved."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":237,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInputResult","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinputresult"},{"id":"LibTmux.Mcp.PaneInputResult.Changed","name":"Changed","kind":"property","parent":"LibTmux.Mcp.PaneInputResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"What was sent, in plain words."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":238,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInputResult.Changed","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinputresult-changed"},{"id":"LibTmux.Mcp.PaneInputResult.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.Mcp.PaneInputResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The pane named by the caller after active-pane resolution."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":239,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInputResult.PaneId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinputresult-paneid"},{"id":"LibTmux.Mcp.PaneInputResult.TargetPaneIds","name":"TargetPaneIds","kind":"property","parent":"LibTmux.Mcp.PaneInputResult","type":"IReadOnlyList","modifiers":[],"signatures":[],"doc":{"summary":"The named source when its effective pane_synchronized value is 0. Only when\nit is 1, every configured effective-on cohort member; membership does not\nprove delivery."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":240,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInputResult.TargetPaneIds","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinputresult-targetpaneids"},{"id":"LibTmux.Mcp.ServerInstructions","name":"ServerInstructions","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"What the client is told this server is for, before any tool is called.","body":"A tool description says what one tool does. These instructions say when this\nserver is the right one at all, which is the question a model answers first\nand cannot answer from a tool list. They carry the two things a tool\ndescription has no room for: what must never route here, and which of two\noverlapping tools to reach for.\n\nThe budget is real. Instructions are sent on every connection and sit in\ncontext for the whole conversation, so a paragraph added here is paid for by\nevery call that follows."},"source":{"file":"src/LibTmux.Mcp/ServerInstructions.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ServerInstructions","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-serverinstructions"},{"id":"LibTmux.Mcp.ServerInstructions.Compose","name":"Compose","kind":"method","modifiers":["static"],"parent":"LibTmux.Mcp.ServerInstructions","signatures":[{"params":[{"name":"policy","type":"ServerPolicy","doc":"What this server will do."},{"name":"callerPaneId","type":"string?","doc":"The pane this server runs in, when it runs in one."}],"returns":"string","returnsDoc":"The instructions.","raises":[{"type":"InvalidOperationException","doc":"The fixed guidance no longer fits the budget. That is a bug in this file\nrather than a condition to degrade around: silently dropping a segment\nwould leave a model without the rule it was dropped from."}]}],"doc":{"summary":"Composes the instructions for a running server."},"source":{"file":"src/LibTmux.Mcp/ServerInstructions.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ServerInstructions.Compose","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-serverinstructions-compose"},{"id":"LibTmux.Mcp.OptionEntry","name":"OptionEntry","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record OptionEntry(\n string Name,\n string? Value,\n OptionScope Scope,\n bool Inherited);","params":[{"name":"Name","type":"string","doc":"The option name."},{"name":"Value","type":"string?","doc":"The value tmux reported."},{"name":"Scope","type":"OptionScope","doc":"The scope the read asked at, not where the value was set."},{"name":"Inherited","type":"bool","doc":"Whether the value came from a wider scope than the one asked."}]}],"doc":{"summary":"One tmux option as read at one scope."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":203,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.OptionEntry","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-optionentry"},{"id":"LibTmux.Mcp.OptionEntry.Name","name":"Name","kind":"property","parent":"LibTmux.Mcp.OptionEntry","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The option name."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":204,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.OptionEntry.Name","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-optionentry-name"},{"id":"LibTmux.Mcp.OptionEntry.Value","name":"Value","kind":"property","parent":"LibTmux.Mcp.OptionEntry","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The value tmux reported."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":205,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.OptionEntry.Value","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-optionentry-value"},{"id":"LibTmux.Mcp.OptionEntry.Scope","name":"Scope","kind":"property","parent":"LibTmux.Mcp.OptionEntry","type":"OptionScope","modifiers":[],"signatures":[],"doc":{"summary":"The scope the read asked at, not where the value was set."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":206,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.OptionEntry.Scope","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-optionentry-scope"},{"id":"LibTmux.Mcp.OptionEntry.Inherited","name":"Inherited","kind":"property","parent":"LibTmux.Mcp.OptionEntry","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the value came from a wider scope than the one asked."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":207,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.OptionEntry.Inherited","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-optionentry-inherited"},{"id":"LibTmux.Mcp.EnvironmentEntry","name":"EnvironmentEntry","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record EnvironmentEntry(\n string Name,\n string? Value,\n bool IsRemoved,\n bool HasValue,\n bool Withheld);","params":[{"name":"Name","type":"string","doc":"The variable name."},{"name":"Value","type":"string?","doc":"Its value, or null when it is removed, unset, or withheld."},{"name":"IsRemoved","type":"bool","doc":"Whether tmux will unset it for a new pane."},{"name":"HasValue","type":"bool","doc":"Whether tmux holds a value, whatever this entry discloses."},{"name":"Withheld","type":"bool","doc":"Whether a value exists and was not disclosed."}]}],"doc":{"summary":"One variable in tmux's environment.","body":"The tmux server environment is server-wide and outlives every session on\nthe socket, so it is where exported API keys accumulate. A listing answers\n rather than values, and a value asked for by name\nis still withheld when the name reads as a credential."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":221,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.EnvironmentEntry","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-environmententry"},{"id":"LibTmux.Mcp.EnvironmentEntry.Name","name":"Name","kind":"property","parent":"LibTmux.Mcp.EnvironmentEntry","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The variable name."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":222,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.EnvironmentEntry.Name","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-environmententry-name"},{"id":"LibTmux.Mcp.EnvironmentEntry.Value","name":"Value","kind":"property","parent":"LibTmux.Mcp.EnvironmentEntry","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"Its value, or null when it is removed, unset, or withheld."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":223,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.EnvironmentEntry.Value","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-environmententry-value"},{"id":"LibTmux.Mcp.EnvironmentEntry.IsRemoved","name":"IsRemoved","kind":"property","parent":"LibTmux.Mcp.EnvironmentEntry","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether tmux will unset it for a new pane."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":224,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.EnvironmentEntry.IsRemoved","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-environmententry-isremoved"},{"id":"LibTmux.Mcp.EnvironmentEntry.HasValue","name":"HasValue","kind":"property","parent":"LibTmux.Mcp.EnvironmentEntry","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether tmux holds a value, whatever this entry discloses."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":225,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.EnvironmentEntry.HasValue","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-environmententry-hasvalue"},{"id":"LibTmux.Mcp.EnvironmentEntry.Withheld","name":"Withheld","kind":"property","parent":"LibTmux.Mcp.EnvironmentEntry","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether a value exists and was not disclosed."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":226,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.EnvironmentEntry.Withheld","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-environmententry-withheld"},{"id":"LibTmux.Mcp.HookEntry","name":"HookEntry","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record HookEntry(string Name, int Index, string Command, OptionScope Scope);","params":[{"name":"Name","type":"string","doc":"The hook name, such as pane-exited."},{"name":"Index","type":"int","doc":"Its position, when the hook holds several commands."},{"name":"Command","type":"string","doc":"The tmux command."},{"name":"Scope","type":"OptionScope","doc":"The level it was read at."}]}],"doc":{"summary":"One command tmux will run on an event."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":233,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.HookEntry","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-hookentry"},{"id":"LibTmux.Mcp.HookEntry.Name","name":"Name","kind":"property","parent":"LibTmux.Mcp.HookEntry","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The hook name, such as pane-exited."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":233,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.HookEntry.Name","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-hookentry-name"},{"id":"LibTmux.Mcp.HookEntry.Index","name":"Index","kind":"property","parent":"LibTmux.Mcp.HookEntry","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Its position, when the hook holds several commands."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":233,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.HookEntry.Index","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-hookentry-index"},{"id":"LibTmux.Mcp.HookEntry.Command","name":"Command","kind":"property","parent":"LibTmux.Mcp.HookEntry","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The tmux command."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":233,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.HookEntry.Command","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-hookentry-command"},{"id":"LibTmux.Mcp.HookEntry.Scope","name":"Scope","kind":"property","parent":"LibTmux.Mcp.HookEntry","type":"OptionScope","modifiers":[],"signatures":[],"doc":{"summary":"The level it was read at."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":233,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.HookEntry.Scope","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-hookentry-scope"},{"id":"LibTmux.Mcp.KeyStep","name":"KeyStep","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record KeyStep(\n string Keys,\n bool Enter = false,\n bool Literal = true,\n int? DelayMilliseconds = null);","params":[{"name":"Keys","type":"string","doc":"The text to type, or a key name."},{"name":"Enter","type":"bool","default":"false","doc":"Whether Enter follows."},{"name":"Literal","type":"bool","default":"true","doc":"Whether the text is sent as typed rather than read as a key name."},{"name":"DelayMilliseconds","type":"int?","default":"null","doc":"How long to pause afterwards, for a program that needs a moment to redraw\nbefore it will accept the next key. Capped at two seconds."}]}],"doc":{"summary":"One keystroke in a batch."},"source":{"file":"src/LibTmux.Mcp/Tools/WriteTools.Input.cs","line":547,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.KeyStep","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-keystep"},{"id":"LibTmux.Mcp.KeyStep.Keys","name":"Keys","kind":"property","parent":"LibTmux.Mcp.KeyStep","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The text to type, or a key name."},"source":{"file":"src/LibTmux.Mcp/Tools/WriteTools.Input.cs","line":548,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.KeyStep.Keys","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-keystep-keys"},{"id":"LibTmux.Mcp.KeyStep.Enter","name":"Enter","kind":"property","parent":"LibTmux.Mcp.KeyStep","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether Enter follows."},"source":{"file":"src/LibTmux.Mcp/Tools/WriteTools.Input.cs","line":549,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.KeyStep.Enter","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-keystep-enter"},{"id":"LibTmux.Mcp.KeyStep.Literal","name":"Literal","kind":"property","parent":"LibTmux.Mcp.KeyStep","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the text is sent as typed rather than read as a key name."},"source":{"file":"src/LibTmux.Mcp/Tools/WriteTools.Input.cs","line":550,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.KeyStep.Literal","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-keystep-literal"},{"id":"LibTmux.Mcp.KeyStep.DelayMilliseconds","name":"DelayMilliseconds","kind":"property","parent":"LibTmux.Mcp.KeyStep","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"How long to pause afterwards, for a program that needs a moment to redraw\nbefore it will accept the next key. Capped at two seconds."},"source":{"file":"src/LibTmux.Mcp/Tools/WriteTools.Input.cs","line":551,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.KeyStep.DelayMilliseconds","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-keystep-delaymilliseconds"}],"sources":[{"product":"core","package":"LibTmux","repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","version":"0.0.0-alpha.20"},{"product":"workspace","package":"LibTmux.Workspace","repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","version":"0.0.0-alpha.20"},{"product":"mcp","package":"LibTmux.Mcp","repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","version":"0.0.0-alpha.20"}],"repo":"libtmux/libtmux-dotnet"} +{"port":"csharp","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractor":"@libtmux/api-model@0.0.1","symbols":[{"id":"LibTmux.TmuxBuffers","name":"TmuxBuffers","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"The paste buffers of one server.","body":"tmux keeps buffers on the server rather than in a session, so a buffer set\nfrom one session is readable from every other. A buffer named null is the\nmost recent one, which is what tmux pastes when nothing names a buffer."},"source":{"file":"src/LibTmux/Buffers/TmuxBuffers.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffers","product":"core","slug":"libtmux-tmuxbuffers"},{"id":"LibTmux.TmuxBuffers.SetAsync","name":"SetAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxBuffers","signatures":[{"params":[{"name":"data","type":"string","doc":"The text to store."},{"name":"name","type":"string?","default":"null","doc":"The buffer name, or null for a new one."},{"name":"append","type":"bool","default":"false","doc":"Whether the text joins what is already there."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A task that completes once tmux has stored it.","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Puts text into a buffer."},"source":{"file":"src/LibTmux/Buffers/TmuxBuffers.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffers.SetAsync","product":"core","slug":"libtmux-tmuxbuffers-setasync"},{"id":"LibTmux.TmuxBuffers.LoadAsync","name":"LoadAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxBuffers","signatures":[{"params":[{"name":"path","type":"string","doc":"The file to read."},{"name":"name","type":"string?","default":"null","doc":"The buffer name, or null for a new one."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A task that completes once tmux has read it.","raises":[{"type":"ArgumentException","doc":" is blank."}]}],"doc":{"summary":"Puts a file's contents into a buffer."},"source":{"file":"src/LibTmux/Buffers/TmuxBuffers.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffers.LoadAsync","product":"core","slug":"libtmux-tmuxbuffers-loadasync"},{"id":"LibTmux.TmuxBuffers.SaveAsync","name":"SaveAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxBuffers","signatures":[{"params":[{"name":"path","type":"string","doc":"The file to write."},{"name":"name","type":"string?","default":"null","doc":"The buffer to write, or null for the most recent."},{"name":"append","type":"bool","default":"false","doc":"Whether the buffer joins what the file already holds."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A task that completes once tmux has written it.","raises":[{"type":"ArgumentException","doc":" is blank."}]}],"doc":{"summary":"Writes a buffer to a file."},"source":{"file":"src/LibTmux/Buffers/TmuxBuffers.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffers.SaveAsync","product":"core","slug":"libtmux-tmuxbuffers-saveasync"},{"id":"LibTmux.TmuxBuffers.GetAsync","name":"GetAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxBuffers","signatures":[{"params":[{"name":"name","type":"string?","default":"null","doc":"The buffer to read, or null for the most recent."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"Everything the buffer holds."}],"doc":{"summary":"Reads a buffer in full."},"source":{"file":"src/LibTmux/Buffers/TmuxBuffers.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffers.GetAsync","product":"core","slug":"libtmux-tmuxbuffers-getasync"},{"id":"LibTmux.TmuxBuffers.DeleteAsync","name":"DeleteAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxBuffers","signatures":[{"params":[{"name":"name","type":"string?","default":"null","doc":"The buffer to forget, or null for the most recent."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A task that completes once tmux has forgotten it."}],"doc":{"summary":"Forgets a buffer."},"source":{"file":"src/LibTmux/Buffers/TmuxBuffers.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffers.DeleteAsync","product":"core","slug":"libtmux-tmuxbuffers-deleteasync"},{"id":"LibTmux.TmuxBuffers.GetAllAsync","name":"GetAllAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxBuffers","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"Each buffer, with its size and a sample of its contents."}],"doc":{"summary":"Reads every buffer."},"source":{"file":"src/LibTmux/Buffers/TmuxBuffers.cs","line":83,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffers.GetAllAsync","product":"core","slug":"libtmux-tmuxbuffers-getallasync"},{"id":"LibTmux.TmuxBuffers.GetLinesAsync","name":"GetLinesAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxBuffers","signatures":[{"params":[{"name":"request","type":"ListBuffersRequest?","default":"null","doc":"The format and filter, or null for tmux's own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"One line per buffer."}],"doc":{"summary":"Reads the buffers as tmux rendered them."},"source":{"file":"src/LibTmux/Buffers/TmuxBuffers.cs","line":91,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffers.GetLinesAsync","product":"core","slug":"libtmux-tmuxbuffers-getlinesasync"},{"id":"LibTmux.ITmuxRequest","name":"ITmuxRequest","kind":"interface","modifiers":[],"signatures":[],"typeParams":["TTarget"],"typeParameters":[{"name":"TTarget","bound":"class","doc":"What the command is aimed at: a , ,\n, , or a \nor table."}],"doc":{"summary":"A request that becomes one tmux command against a target.","body":"Every request builds its command with the same code the one-shot method\nuses, so a chained call and a direct call send identical arguments rather\nthan two descriptions that have to be kept in step.\n\nWhat each request is aimed at is decided by what tmux needs, not by taste.\nA window names the session that will hold it; keys name the pane, because\nwhich flags tmux accepts depends on the server version and the pane is what\nknows it. A request that names nothing in particular, such as a new\nsession, is aimed at the server that runs it.\n\n runs any of these on its own; a\n runs several in one tmux invocation."},"source":{"file":"src/LibTmux/Chaining/ITmuxRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ITmuxRequest","product":"core","slug":"libtmux-itmuxrequest"},{"id":"LibTmux.ITmuxRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.ITmuxRequest","signatures":[{"params":[{"name":"target","type":"TTarget","doc":"What the command is aimed at."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns this request as one tmux command."},"source":{"file":"src/LibTmux/Chaining/ITmuxRequest.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ITmuxRequest.ToCommand","product":"core","slug":"libtmux-itmuxrequest-tocommand"},{"id":"LibTmux.TmuxChain","name":"TmuxChain","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Commands tmux runs together, in one process.","body":"A one-shot call starts a tmux client, runs one command, and lets it exit,\nwhich is the right shape for one command and the wrong shape for fifty: the\nprocess start dominates. A chain hands tmux the whole sequence at once, so\nthe cost is paid once no matter how many commands are in it.\n\nBuilding a chain reaches nothing; only does.\nEach step returns a new chain, so a partly built one can be shared without\nanother caller's additions appearing in it."},"source":{"file":"src/LibTmux/Chaining/TmuxChain.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxChain","product":"core","slug":"libtmux-tmuxchain"},{"id":"LibTmux.TmuxChain.Commands","name":"Commands","kind":"property","modifiers":[],"parent":"LibTmux.TmuxChain","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the commands this chain will run, in order."},"source":{"file":"src/LibTmux/Chaining/TmuxChain.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxChain.Commands","product":"core","slug":"libtmux-tmuxchain-commands"},{"id":"LibTmux.TmuxChain.Then","name":"Then","kind":"method","modifiers":["overload"],"parent":"LibTmux.TmuxChain","signatures":[{"params":[{"name":"command","type":"TmuxCommand","doc":"The command to run after the ones already added."}],"returns":"TmuxChain","returnsDoc":"A chain ending with ."},{"params":[{"name":"commands","type":"IEnumerable","doc":"The commands to run, in order, after the ones already added."}],"returns":"TmuxChain","returnsDoc":"A chain ending with .","raises":[{"type":"ArgumentNullException","doc":" is null."}]},{"params":[{"name":"name","type":"string","doc":"The tmux command name."},{"name":"string[]","type":"string"},{"name":"arguments","doc":"Its arguments."}],"returns":"TmuxChain","returnsDoc":"A chain ending with the named command."}],"doc":{"summary":"Adds one command and returns the longer chain."},"source":{"file":"src/LibTmux/Chaining/TmuxChain.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxChain.Then","product":"core","slug":"libtmux-tmuxchain-then"},{"id":"LibTmux.TmuxChain.ExecuteAsync","name":"ExecuteAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxChain","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"What that one invocation produced.","raises":[{"type":"InvalidOperationException","doc":"The chain has no commands."},{"type":"TmuxCommandException","doc":"tmux reported the run failed."}]}],"doc":{"summary":"Runs every command in one tmux invocation.","body":"tmux runs the commands in order and prints their output as one stream,\nso the result belongs to the chain rather than to any single command.\nA command that fails stops the ones after it, which is tmux's own\nbehavior for a grouped run rather than anything imposed here."},"source":{"file":"src/LibTmux/Chaining/TmuxChain.cs","line":94,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxChain.ExecuteAsync","product":"core","slug":"libtmux-tmuxchain-executeasync"},{"id":"LibTmux.TmuxChaining","name":"TmuxChaining","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Runs a request on its own, as a chain of one command.","body":"There is one overload per kind of target rather than one per request: a\nrequest says what it is aimed at through ,\nand the target says which server runs it. An options or hooks table does not\nknow its server, so those two overloads also take the server."},"source":{"file":"src/LibTmux/Chaining/TmuxChaining.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxChaining","product":"core","slug":"libtmux-tmuxchaining"},{"id":"LibTmux.TmuxChaining.ToRunCommand","name":"ToRunCommand","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxChaining","signatures":[{"params":[{"name":"request","type":"HookRequest","doc":"Which hook to run."},{"name":"hooks","type":"TmuxHooks","doc":"The hooks handle whose scope holds it."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":"An argument is null."}]}],"doc":{"summary":"Returns running a hook as one tmux command.","body":"A hook request names a hook without saying what to do with it, so\nrunning and removing are separate here rather than one call that has to\nguess which was meant."},"source":{"file":"src/LibTmux/Chaining/TmuxChaining.Hooks.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxChaining.ToRunCommand","product":"core","slug":"libtmux-tmuxchaining-toruncommand"},{"id":"LibTmux.TmuxChaining.ToUnsetCommand","name":"ToUnsetCommand","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxChaining","signatures":[{"params":[{"name":"request","type":"HookRequest","doc":"Which hook to remove."},{"name":"hooks","type":"TmuxHooks","doc":"The hooks handle whose scope holds it."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":"An argument is null."}]}],"doc":{"summary":"Returns removing a hook as one tmux command."},"source":{"file":"src/LibTmux/Chaining/TmuxChaining.Hooks.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxChaining.ToUnsetCommand","product":"core","slug":"libtmux-tmuxchaining-tounsetcommand"},{"id":"LibTmux.TmuxChaining.ExecuteAsync","name":"ExecuteAsync","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.TmuxChaining","signatures":[{"params":[{"name":"request","type":"HookRequest","doc":"Which hook to run."},{"name":"hooks","type":"TmuxHooks","doc":"The hooks handle whose scope holds it."},{"name":"server","type":"Server","doc":"The server the hook runs on."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"What tmux printed, which is nothing for an ordinary run.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"TmuxCommandException","doc":"tmux reported the command failed."}]},{"params":[{"name":"request","type":"SetHooksRequest","doc":"Which hook to set, and to what entries."},{"name":"hooks","type":"TmuxHooks","doc":"The hooks handle whose scope holds it."},{"name":"server","type":"Server","doc":"The server the hook is set on."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"What that one invocation produced.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"TmuxCommandException","doc":"tmux reported the run failed."}]},{"params":[{"name":"request","type":"ITmuxRequest","doc":"What to do."},{"name":"pane","type":"Pane","doc":"The pane it is aimed at."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"What tmux printed.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"TmuxCommandException","doc":"tmux reported the command failed."}]},{"params":[{"name":"request","type":"ITmuxRequest","doc":"What to do."},{"name":"window","type":"Window","doc":"The window it is aimed at."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"What tmux printed.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"TmuxCommandException","doc":"tmux reported the command failed."}]},{"params":[{"name":"request","type":"ITmuxRequest","doc":"What to do."},{"name":"session","type":"Session","doc":"The session it is aimed at."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"What tmux printed.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"TmuxCommandException","doc":"tmux reported the command failed."}]},{"params":[{"name":"request","type":"ITmuxRequest","doc":"What to do."},{"name":"server","type":"Server","doc":"The server that runs it."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"What tmux printed.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"TmuxCommandException","doc":"tmux reported the command failed."}]},{"params":[{"name":"request","type":"ITmuxRequest","doc":"What to read or write."},{"name":"options","type":"TmuxOptions","doc":"The options table whose scope it is aimed at."},{"name":"server","type":"Server","doc":"The server that holds the table."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"What tmux printed.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"TmuxCommandException","doc":"tmux reported the command failed."}]},{"params":[{"name":"request","type":"ITmuxRequest","doc":"What to read or write."},{"name":"hooks","type":"TmuxHooks","doc":"The hooks table whose scope it is aimed at."},{"name":"server","type":"Server","doc":"The server that holds the table."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"What tmux printed.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"TmuxCommandException","doc":"tmux reported the command failed."}]},{"params":[{"name":"request","type":"SendKeysRequest","doc":"The keys to send."},{"name":"pane","type":"Pane","doc":"The pane that receives the keys."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The combined command result.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"ArgumentException","doc":"The request sends nothing or its text contains NUL."}]},{"params":[{"name":"request","type":"SendKeysRequest","doc":"The keys to send, including a requested Enter."},{"name":"pane","type":"Pane","doc":"The pane that receives them."},{"name":"control","type":"IControlModeSession","doc":"The control client connected to the pane's server."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops waiting for command replies."}],"returns":"Task>","returnsDoc":"The reply lines concatenated in command order.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."},{"type":"ArgumentException","doc":"The request sends nothing."},{"type":"ControlModeCommandException","doc":"The first command failed."},{"type":"LibTmuxException","doc":"Text succeeded but Enter failed or its wait was cancelled. Dispatch is\nunknown; do not retry the whole request."}]}],"doc":{"summary":"Runs a hook on its own."},"source":{"file":"src/LibTmux/Chaining/TmuxChaining.Hooks.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxChaining.ExecuteAsync","product":"core","slug":"libtmux-tmuxchaining-executeasync"},{"id":"LibTmux.TmuxChaining.ToCommands","name":"ToCommands","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxChaining","signatures":[{"params":[{"name":"request","type":"SetHooksRequest","doc":"Which hook to set, and to what entries."},{"name":"hooks","type":"TmuxHooks","doc":"The hooks handle whose scope holds it."}],"returns":"IReadOnlyList","returnsDoc":"The commands, in the order tmux must receive them.","raises":[{"type":"ArgumentNullException","doc":"An argument is null."}]}],"doc":{"summary":"Returns every command a multi-entry hook request sends.","body":"This request is several tmux commands rather than one, so it answers a\nlist. Running them one at a time is what the one-shot path does; adding\nthem to a chain is what this is for."},"source":{"file":"src/LibTmux/Chaining/TmuxChaining.Hooks.cs","line":76,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxChaining.ToCommands","product":"core","slug":"libtmux-tmuxchaining-tocommands"},{"id":"LibTmux.TmuxCommand","name":"TmuxCommand","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One tmux command and the arguments it carries.","body":"The typed methods on , ,\n, and each run one command and\nreturn what it produced. This is that same command as a value, so several\ncan be handed to tmux together through rather than\none process at a time."},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand","product":"core","slug":"libtmux-tmuxcommand"},{"id":"LibTmux.TmuxCommand.TmuxCommand","name":"TmuxCommand","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommand","signatures":[{"params":[{"name":"Name","type":"string","doc":"The tmux command name."},{"name":"Arguments","type":"IReadOnlyList","doc":"Its arguments."}]}],"doc":{"summary":"Initializes a tmux command."},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand.TmuxCommand","product":"core","slug":"libtmux-tmuxcommand-tmuxcommand"},{"id":"LibTmux.TmuxCommand.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommand","signatures":[],"type":"string","doc":{"summary":"Gets the tmux command name."},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand.Name","product":"core","slug":"libtmux-tmuxcommand-name"},{"id":"LibTmux.TmuxCommand.Arguments","name":"Arguments","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommand","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the arguments, separated as tmux will receive them."},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand.Arguments","product":"core","slug":"libtmux-tmuxcommand-arguments"},{"id":"LibTmux.TmuxCommand.Create","name":"Create","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxCommand","signatures":[{"params":[{"name":"name","type":"string","doc":"The tmux command name."},{"name":"string[]","type":"string"},{"name":"arguments","doc":"Its arguments."}],"returns":"TmuxCommand","returnsDoc":"The command.","raises":[{"type":"ArgumentException","doc":"The name is empty, an argument is null, or a token contains NUL."}]}],"doc":{"summary":"Creates a command from its name and arguments."},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":73,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand.Create","product":"core","slug":"libtmux-tmuxcommand-create"},{"id":"LibTmux.TmuxCommand.RequiredGeneration","name":"RequiredGeneration","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommand","signatures":[],"type":"ServerGeneration?","doc":{"summary":"Gets the server generation this command's target belongs to.","body":"A tmux ID such as %2 is only meaningful on the server that issued\nit; a restarted server reuses those IDs for different objects. A command\nbuilt from an entity therefore records which server the entity was read\nfrom, and refuses to run it against\na different one. Generation-bound dispatch never starts an absent daemon.\n\nNull leaves dispatch endpoint-scoped, without a generation requirement."},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":89,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand.RequiredGeneration","product":"core","slug":"libtmux-tmuxcommand-requiredgeneration"},{"id":"LibTmux.TmuxCommand.ToArguments","name":"ToArguments","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommand","signatures":[{"params":[],"returns":"IReadOnlyList","returnsDoc":"The command name followed by its arguments."}],"doc":{"summary":"Returns this command the way tmux receives it.","body":"This is raw argv. Execute the command through a chain or control session\nto retain its checks for server generation, window placement, and pane containment."},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":124,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand.ToArguments","product":"core","slug":"libtmux-tmuxcommand-toarguments"},{"id":"LibTmux.TmuxCommand.Equals","name":"Equals","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommand","signatures":[{"params":[{"name":"other","type":"TmuxCommand?"}],"returns":"bool"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":127,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand.Equals","product":"core","slug":"libtmux-tmuxcommand-equals"},{"id":"LibTmux.TmuxCommand.GetHashCode","name":"GetHashCode","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommand","signatures":[{"params":[],"returns":"int"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":139,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand.GetHashCode","product":"core","slug":"libtmux-tmuxcommand-gethashcode"},{"id":"LibTmux.TmuxCommand.Deconstruct","name":"Deconstruct","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommand","signatures":[{"params":[{"name":"Name","type":"string","doc":"The command name."},{"name":"Arguments","type":"IReadOnlyList","doc":"The command arguments."}],"returns":"void"}],"doc":{"summary":"Deconstructs the command into its name and arguments."},"source":{"file":"src/LibTmux/Chaining/TmuxCommand.cs","line":160,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommand.Deconstruct","product":"core","slug":"libtmux-tmuxcommand-deconstruct"},{"id":"LibTmux.Client","name":"Client","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Identifies a client and resolves what it is looking at.","body":"A client moves between sessions while a handle is held, so the captured\nfields say where it was and the resolving methods say where it is. Both are\nuseful, and conflating them would make one of them a lie."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client","product":"core","slug":"libtmux-client"},{"id":"LibTmux.Client.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.Client","signatures":[],"type":"string","doc":{"summary":"Gets the client name tmux knows it by."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.Name","product":"core","slug":"libtmux-client-name"},{"id":"LibTmux.Client.Tty","name":"Tty","kind":"property","modifiers":[],"parent":"LibTmux.Client","signatures":[],"type":"string?","doc":{"summary":"Gets the terminal the client is on, when it has one."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.Tty","product":"core","slug":"libtmux-client-tty"},{"id":"LibTmux.Client.IsControlClient","name":"IsControlClient","kind":"property","modifiers":[],"parent":"LibTmux.Client","signatures":[],"type":"bool","doc":{"summary":"Gets whether the client speaks tmux's control protocol."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.IsControlClient","product":"core","slug":"libtmux-client-iscontrolclient"},{"id":"LibTmux.Client.AttachedSessionId","name":"AttachedSessionId","kind":"property","modifiers":[],"parent":"LibTmux.Client","signatures":[],"type":"SessionId?","doc":{"summary":"Gets the session the client was attached to when it was read.","body":"This is captured state. Use for\nwhere the client is now."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.AttachedSessionId","product":"core","slug":"libtmux-client-attachedsessionid"},{"id":"LibTmux.Client.Generation","name":"Generation","kind":"property","modifiers":[],"parent":"LibTmux.Client","signatures":[],"type":"ServerGeneration","doc":{"summary":"Gets the server generation captured with this client."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.Generation","product":"core","slug":"libtmux-client-generation"},{"id":"LibTmux.Client.RawFormatFields","name":"RawFormatFields","kind":"property","modifiers":[],"parent":"LibTmux.Client","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the tmux fields captured when this handle materialized."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":59,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.RawFormatFields","product":"core","slug":"libtmux-client-rawformatfields"},{"id":"LibTmux.Client.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.Client","signatures":[],"type":"Server","doc":{"summary":"Gets the server that owns this client."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":62,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.Server","product":"core","slug":"libtmux-client-server"},{"id":"LibTmux.Client.GetAsync","name":"GetAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.Client","signatures":[{"params":[{"name":"server","type":"Server","doc":"The server to look on."},{"name":"name","type":"string","doc":"The client name."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The client.","raises":[{"type":"TmuxObjectNotFoundException","doc":"The server has no such client."}]}],"doc":{"summary":"Reads one client by name."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":71,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.GetAsync","product":"core","slug":"libtmux-client-getasync"},{"id":"LibTmux.Client.RefreshAsync","name":"RefreshAsync","kind":"method","modifiers":[],"parent":"LibTmux.Client","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying current state.","raises":[{"type":"TmuxObjectNotFoundException","doc":"The client has gone."}]}],"doc":{"summary":"Re-reads this client from tmux."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":92,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.RefreshAsync","product":"core","slug":"libtmux-client-refreshasync"},{"id":"LibTmux.Client.ResolveAttachmentAsync","name":"ResolveAttachmentAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Client","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The session, window and pane the client is on, or null when the client\nhas detached or its session has since gone."}],"doc":{"summary":"Reads where this client is looking now.","body":"The three parts come from one reading of the client, so a client that\nmoves between sessions cannot yield a window from one and a pane from\nanother. A server that has stopped answering is not part of this: the\nfirst read here is a live listing, and a live listing throws on\nfailure rather than answering null for it."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":109,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.ResolveAttachmentAsync","product":"core","slug":"libtmux-client-resolveattachmentasync"},{"id":"LibTmux.Client.GetAttachedSessionAsync","name":"GetAttachedSessionAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Client","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The session, or null when the client is attached to none."}],"doc":{"summary":"Reads the session this client is attached to now."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":153,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.GetAttachedSessionAsync","product":"core","slug":"libtmux-client-getattachedsessionasync"},{"id":"LibTmux.Client.GetAttachedWindowAsync","name":"GetAttachedWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Client","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The window, or null when the client is showing none."}],"doc":{"summary":"Reads the window this client is showing now."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":161,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.GetAttachedWindowAsync","product":"core","slug":"libtmux-client-getattachedwindowasync"},{"id":"LibTmux.Client.GetAttachedPaneAsync","name":"GetAttachedPaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Client","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The pane, or null when the client has none."}],"doc":{"summary":"Reads the pane this client has active now."},"source":{"file":"src/LibTmux/Client.Administration.cs","line":169,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.GetAttachedPaneAsync","product":"core","slug":"libtmux-client-getattachedpaneasync"},{"id":"LibTmux.Client.Equals","name":"Equals","kind":"method","modifiers":["overload"],"parent":"LibTmux.Client","signatures":[{"params":[{"name":"other","type":"Client?"}],"returns":"bool"},{"params":[{"name":"obj","type":"object?"}],"returns":"bool"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Client.Administration.cs","line":188,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.Equals","product":"core","slug":"libtmux-client-equals"},{"id":"LibTmux.Client.GetHashCode","name":"GetHashCode","kind":"method","modifiers":[],"parent":"LibTmux.Client","signatures":[{"params":[],"returns":"int"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Client.Administration.cs","line":197,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Client.GetHashCode","product":"core","slug":"libtmux-client-gethashcode"},{"id":"LibTmux.ClientAttachment","name":"ClientAttachment","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record ClientAttachment(Session? Session, Window? Window, Pane? Pane);","params":[{"name":"Session","type":"Session?","doc":"The session the client is attached to."},{"name":"Window","type":"Window?","doc":"The window that session is showing."},{"name":"Pane","type":"Pane?","doc":"The pane that window has active."}]}],"doc":{"summary":"What one client is looking at.","body":"The three come from one reading, so they agree with each other. Asking for\nthem separately would let the client move between the answers."},"source":{"file":"src/LibTmux/ClientAttachment.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ClientAttachment","product":"core","slug":"libtmux-clientattachment"},{"id":"LibTmux.ClientAttachment.Session","name":"Session","kind":"property","parent":"LibTmux.ClientAttachment","type":"Session?","modifiers":[],"signatures":[],"doc":{"summary":"The session the client is attached to."},"source":{"file":"src/LibTmux/ClientAttachment.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ClientAttachment.Session","product":"core","slug":"libtmux-clientattachment-session"},{"id":"LibTmux.ClientAttachment.Window","name":"Window","kind":"property","parent":"LibTmux.ClientAttachment","type":"Window?","modifiers":[],"signatures":[],"doc":{"summary":"The window that session is showing."},"source":{"file":"src/LibTmux/ClientAttachment.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ClientAttachment.Window","product":"core","slug":"libtmux-clientattachment-window"},{"id":"LibTmux.ClientAttachment.Pane","name":"Pane","kind":"property","parent":"LibTmux.ClientAttachment","type":"Pane?","modifiers":[],"signatures":[],"doc":{"summary":"The pane that window has active."},"source":{"file":"src/LibTmux/ClientAttachment.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ClientAttachment.Pane","product":"core","slug":"libtmux-clientattachment-pane"},{"id":"LibTmux.ServerGeneration","name":"ServerGeneration","kind":"struct","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Identifies one tmux daemon generation."},"source":{"file":"src/LibTmux/Connection/ServerGeneration.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerGeneration","product":"core","slug":"libtmux-servergeneration"},{"id":"LibTmux.ServerGeneration.ServerGeneration","name":"ServerGeneration","kind":"method","modifiers":[],"parent":"LibTmux.ServerGeneration","signatures":[{"params":[{"name":"processId","type":"int"},{"name":"startTime","type":"long"}]}],"doc":{"summary":"Initializes a server generation."},"source":{"file":"src/LibTmux/Connection/ServerGeneration.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerGeneration.ServerGeneration","product":"core","slug":"libtmux-servergeneration-servergeneration"},{"id":"LibTmux.ServerGeneration.ProcessId","name":"ProcessId","kind":"property","modifiers":[],"parent":"LibTmux.ServerGeneration","signatures":[],"type":"int","doc":{"summary":"Gets the tmux daemon process identifier."},"source":{"file":"src/LibTmux/Connection/ServerGeneration.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerGeneration.ProcessId","product":"core","slug":"libtmux-servergeneration-processid"},{"id":"LibTmux.ServerGeneration.StartTime","name":"StartTime","kind":"property","modifiers":[],"parent":"LibTmux.ServerGeneration","signatures":[],"type":"long","doc":{"summary":"Gets the tmux daemon start time."},"source":{"file":"src/LibTmux/Connection/ServerGeneration.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerGeneration.StartTime","product":"core","slug":"libtmux-servergeneration-starttime"},{"id":"LibTmux.ServerGeneration.Parse","name":"Parse","kind":"method","modifiers":["static"],"parent":"LibTmux.ServerGeneration","signatures":[{"params":[{"name":"text","type":"string","doc":"The text tmux reported."}],"returns":"ServerGeneration","returnsDoc":"The parsed generation.","raises":[{"type":"TmuxProtocolException","doc":" is not a colon-separated pair of positive\nintegers."}]}],"doc":{"summary":"Parses a generation reported in ."},"source":{"file":"src/LibTmux/Connection/ServerGeneration.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerGeneration.Parse","product":"core","slug":"libtmux-servergeneration-parse"},{"id":"LibTmux.ServerConnectionOptions","name":"ServerConnectionOptions","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Configures a tmux server connection without mutating process-wide state.","body":"Every option is set through an initializer. A constructor parameter binds\nat the call site when it compiles, so adding one would break an assembly\nalready built against the old signature - and this is the type most likely\nto grow one."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions","product":"core","slug":"libtmux-serverconnectionoptions"},{"id":"LibTmux.ServerConnectionOptions.TmuxBinaryPath","name":"TmuxBinaryPath","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"string","doc":{"summary":"Gets the tmux executable path."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.TmuxBinaryPath","product":"core","slug":"libtmux-serverconnectionoptions-tmuxbinarypath"},{"id":"LibTmux.ServerConnectionOptions.SocketName","name":"SocketName","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"string?","doc":{"summary":"Gets the explicit socket name."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.SocketName","product":"core","slug":"libtmux-serverconnectionoptions-socketname"},{"id":"LibTmux.ServerConnectionOptions.SocketPath","name":"SocketPath","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"string?","doc":{"summary":"Gets the explicit socket path."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":86,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.SocketPath","product":"core","slug":"libtmux-serverconnectionoptions-socketpath"},{"id":"LibTmux.ServerConnectionOptions.SocketNameFactory","name":"SocketNameFactory","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"Func?","doc":{"summary":"Gets the deferred socket-name factory."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":101,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.SocketNameFactory","product":"core","slug":"libtmux-serverconnectionoptions-socketnamefactory"},{"id":"LibTmux.ServerConnectionOptions.ConfigurationFile","name":"ConfigurationFile","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"string?","doc":{"summary":"Gets the tmux configuration file."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":105,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.ConfigurationFile","product":"core","slug":"libtmux-serverconnectionoptions-configurationfile"},{"id":"LibTmux.ServerConnectionOptions.ColorMode","name":"ColorMode","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"TmuxColorMode","doc":{"summary":"Gets the requested tmux color mode."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":121,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.ColorMode","product":"core","slug":"libtmux-serverconnectionoptions-colormode"},{"id":"LibTmux.ServerConnectionOptions.InitializeAsync","name":"InitializeAsync","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"Func?","doc":{"summary":"Gets the post-connect initializer."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":136,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.InitializeAsync","product":"core","slug":"libtmux-serverconnectionoptions-initializeasync"},{"id":"LibTmux.ServerConnectionOptions.ChildEnvironment","name":"ChildEnvironment","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"IReadOnlyDictionary?","doc":{"summary":"Gets the child-process environment overrides."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":142,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.ChildEnvironment","product":"core","slug":"libtmux-serverconnectionoptions-childenvironment"},{"id":"LibTmux.ServerConnectionOptions.Logger","name":"Logger","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"ILogger?","doc":{"summary":"Gets the connection logger."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":149,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.Logger","product":"core","slug":"libtmux-serverconnectionoptions-logger"},{"id":"LibTmux.ServerConnectionOptions.CommandTimeout","name":"CommandTimeout","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"TimeSpan?","doc":{"summary":"Gets how long one tmux command may run, or null to wait indefinitely.","body":"A tmux that stops answering otherwise hangs the caller until its own\ncancellation token fires, and forever if it passed none. On expiry the\ncommand throws whose\n is\n: tmux may already have acted.\nA caller's own cancellation still wins, and reads as cancellation.\nConnecting is bounded by it too: reading the version and the server's\ngeneration are tmux commands like any other. A wait-for that waits\nfor a signal or a lock is not: it waits for another client by design."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":164,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.CommandTimeout","product":"core","slug":"libtmux-serverconnectionoptions-commandtimeout"},{"id":"LibTmux.ServerConnectionOptions.MaxCapturedBytesPerStream","name":"MaxCapturedBytesPerStream","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"int?","doc":{"summary":"Gets the largest output one command may capture, in bytes.","body":"Defaults to 64 MiB. A command whose output passes it fails rather than\ngrowing without bound, so a service that runs many captures at once can\nbound what one of them costs. Raise it for a capture that legitimately\nneeds more."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":189,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.MaxCapturedBytesPerStream","product":"core","slug":"libtmux-serverconnectionoptions-maxcapturedbytesperstream"},{"id":"LibTmux.ServerConnectionOptions.ControlModeEventBufferCapacity","name":"ControlModeEventBufferCapacity","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"int?","doc":{"summary":"Gets how many control-mode events are buffered before pane output is dropped.","body":"Defaults to 512. A consumer slower than its panes loses the oldest output\nof the pane with the most waiting, and is told so by\n; the pane is then paused for that\nclient until the consumer catches up. Raising this buys time rather than\nmemory without bound."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":215,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.ControlModeEventBufferCapacity","product":"core","slug":"libtmux-serverconnectionoptions-controlmodeeventbuffercapacity"},{"id":"LibTmux.ServerConnectionOptions.ControlModeEventBufferMaxBytes","name":"ControlModeEventBufferMaxBytes","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"int?","doc":{"summary":"Gets the UTF-8 payload byte ceiling for buffered control-mode notifications.","body":"Defaults to 4 MiB. This counts decoded output, notification names and\narguments, and exit reasons; object overhead is bounded separately by\n. Oldest events are discarded\nuntil both limits hold. An event larger than the byte ceiling is dropped.\nAn oversized exit reason is omitted while the terminal event is retained.\nEvery discard is reported by ."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":242,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.ControlModeEventBufferMaxBytes","product":"core","slug":"libtmux-serverconnectionoptions-controlmodeeventbuffermaxbytes"},{"id":"LibTmux.ServerConnectionOptions.Interceptor","name":"Interceptor","kind":"property","modifiers":[],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"TmuxInterceptor?","doc":{"summary":"Gets what every tmux invocation on this connection passes through, or null.","body":"It sees each tmux client the connection starts to run a command:\nsingle commands, chains, and the version probe and server discovery a\nconnection makes first. A control-mode client is one long-lived process\nand does not pass through it.\n\nIt sees what tmux is asked, which is more than was requested for a\ncommand against a pane, window, session, or one of their tables: two\ncommands in front check that the server is still the one the handle was\nread from. An answer made in tmux's place has to start with that\nserver's generation line.\n\nA command runs its interceptor inside and\nthe command's span, so a retry shares both. The version probe and the\ndiscovery a connection makes first are bounded by the same timeout but\nare not recorded as commands. An exception the interceptor throws\nreaches the caller unchanged. Running a command again repeats whatever\nit did; on a failure says\nwhether tmux may already have acted."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":283,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.Interceptor","product":"core","slug":"libtmux-serverconnectionoptions-interceptor"},{"id":"LibTmux.ServerConnectionOptions.Default","name":"Default","kind":"property","modifiers":["static"],"parent":"LibTmux.ServerConnectionOptions","signatures":[],"type":"ServerConnectionOptions","doc":{"summary":"Gets conventional connection defaults."},"source":{"file":"src/LibTmux/Connection/TmuxConnectionOptions.cs","line":320,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerConnectionOptions.Default","product":"core","slug":"libtmux-serverconnectionoptions-default"},{"id":"LibTmux.LibTmuxInfo","name":"LibTmuxInfo","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Reports package identity and supported tmux range."},"source":{"file":"src/LibTmux/Constants/TmuxConstants.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LibTmuxInfo","product":"core","slug":"libtmux-libtmuxinfo"},{"id":"LibTmux.LibTmuxInfo.Version","name":"Version","kind":"property","modifiers":["static"],"parent":"LibTmux.LibTmuxInfo","signatures":[],"type":"Version","doc":{"summary":"Gets the library assembly version."},"source":{"file":"src/LibTmux/Constants/TmuxConstants.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LibTmuxInfo.Version","product":"core","slug":"libtmux-libtmuxinfo-version"},{"id":"LibTmux.LibTmuxInfo.MinimumTmuxVersion","name":"MinimumTmuxVersion","kind":"property","modifiers":["static"],"parent":"LibTmux.LibTmuxInfo","signatures":[],"type":"TmuxVersion","doc":{"summary":"Gets the minimum supported tmux version."},"source":{"file":"src/LibTmux/Constants/TmuxConstants.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LibTmuxInfo.MinimumTmuxVersion","product":"core","slug":"libtmux-libtmuxinfo-minimumtmuxversion"},{"id":"LibTmux.LibTmuxInfo.MaximumTestedTmuxVersion","name":"MaximumTestedTmuxVersion","kind":"property","modifiers":["static"],"parent":"LibTmux.LibTmuxInfo","signatures":[],"type":"TmuxVersion","doc":{"summary":"Gets the highest required tested tmux version."},"source":{"file":"src/LibTmux/Constants/TmuxConstants.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LibTmuxInfo.MaximumTestedTmuxVersion","product":"core","slug":"libtmux-libtmuxinfo-maximumtestedtmuxversion"},{"id":"LibTmux.OptionScope","name":"OptionScope","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Defines tmux option scopes."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OptionScope","product":"core","slug":"libtmux-optionscope"},{"id":"LibTmux.OptionScope.Server","name":"Server","kind":"constant","modifiers":[],"parent":"LibTmux.OptionScope","signatures":[],"doc":{"summary":"Uses server scope."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OptionScope.Server","product":"core","slug":"libtmux-optionscope-server"},{"id":"LibTmux.OptionScope.Session","name":"Session","kind":"constant","modifiers":[],"parent":"LibTmux.OptionScope","signatures":[],"doc":{"summary":"Uses session scope."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OptionScope.Session","product":"core","slug":"libtmux-optionscope-session"},{"id":"LibTmux.OptionScope.Window","name":"Window","kind":"constant","modifiers":[],"parent":"LibTmux.OptionScope","signatures":[],"doc":{"summary":"Uses window scope."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OptionScope.Window","product":"core","slug":"libtmux-optionscope-window"},{"id":"LibTmux.OptionScope.Pane","name":"Pane","kind":"constant","modifiers":[],"parent":"LibTmux.OptionScope","signatures":[],"doc":{"summary":"Uses pane scope."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OptionScope.Pane","product":"core","slug":"libtmux-optionscope-pane"},{"id":"LibTmux.PaneDirection","name":"PaneDirection","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Defines pane placement directions."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneDirection","product":"core","slug":"libtmux-panedirection"},{"id":"LibTmux.PaneDirection.Above","name":"Above","kind":"constant","modifiers":[],"parent":"LibTmux.PaneDirection","signatures":[],"doc":{"summary":"Places the pane above."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneDirection.Above","product":"core","slug":"libtmux-panedirection-above"},{"id":"LibTmux.PaneDirection.Below","name":"Below","kind":"constant","modifiers":[],"parent":"LibTmux.PaneDirection","signatures":[],"doc":{"summary":"Places the pane below."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneDirection.Below","product":"core","slug":"libtmux-panedirection-below"},{"id":"LibTmux.PaneDirection.Left","name":"Left","kind":"constant","modifiers":[],"parent":"LibTmux.PaneDirection","signatures":[],"doc":{"summary":"Places the pane to the left."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneDirection.Left","product":"core","slug":"libtmux-panedirection-left"},{"id":"LibTmux.PaneDirection.Right","name":"Right","kind":"constant","modifiers":[],"parent":"LibTmux.PaneDirection","signatures":[],"doc":{"summary":"Places the pane to the right."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneDirection.Right","product":"core","slug":"libtmux-panedirection-right"},{"id":"LibTmux.ResizeDirection","name":"ResizeDirection","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Defines pane resize directions."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeDirection","product":"core","slug":"libtmux-resizedirection"},{"id":"LibTmux.ResizeDirection.Up","name":"Up","kind":"constant","modifiers":[],"parent":"LibTmux.ResizeDirection","signatures":[],"doc":{"summary":"Resizes upward."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeDirection.Up","product":"core","slug":"libtmux-resizedirection-up"},{"id":"LibTmux.ResizeDirection.Down","name":"Down","kind":"constant","modifiers":[],"parent":"LibTmux.ResizeDirection","signatures":[],"doc":{"summary":"Resizes downward."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeDirection.Down","product":"core","slug":"libtmux-resizedirection-down"},{"id":"LibTmux.ResizeDirection.Left","name":"Left","kind":"constant","modifiers":[],"parent":"LibTmux.ResizeDirection","signatures":[],"doc":{"summary":"Resizes leftward."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeDirection.Left","product":"core","slug":"libtmux-resizedirection-left"},{"id":"LibTmux.ResizeDirection.Right","name":"Right","kind":"constant","modifiers":[],"parent":"LibTmux.ResizeDirection","signatures":[],"doc":{"summary":"Resizes rightward."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeDirection.Right","product":"core","slug":"libtmux-resizedirection-right"},{"id":"LibTmux.WindowDirection","name":"WindowDirection","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Defines relative window placement."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowDirection","product":"core","slug":"libtmux-windowdirection"},{"id":"LibTmux.WindowDirection.Before","name":"Before","kind":"constant","modifiers":[],"parent":"LibTmux.WindowDirection","signatures":[],"doc":{"summary":"Places the window before the target."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowDirection.Before","product":"core","slug":"libtmux-windowdirection-before"},{"id":"LibTmux.WindowDirection.After","name":"After","kind":"constant","modifiers":[],"parent":"LibTmux.WindowDirection","signatures":[],"doc":{"summary":"Places the window after the target."},"source":{"file":"src/LibTmux/Constants/TmuxEnums.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowDirection.After","product":"core","slug":"libtmux-windowdirection-after"},{"id":"LibTmux.ControlModeSubscriptions","name":"ControlModeSubscriptions","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Subscribes a control client to a format changing.","body":"tmux answers refresh-client -B with %subscription-changed\nwhenever the named format's value changes. There is no typed surface for\nbuilding that command otherwise, so a caller renders it by hand - and\ntmux 3.8 tightened session-scoped targets: the session id form that fired\non every earlier release (name:$0:format) silently stops firing,\nwith no error, while an empty session field (name::format) fires\non every released version. This always renders the empty form, so a\nsession-scoped subscription is never reachable the wrong way."},"source":{"file":"src/LibTmux/ControlMode/ControlModeSubscriptions.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ControlModeSubscriptions","product":"core","slug":"libtmux-controlmodesubscriptions"},{"id":"LibTmux.ControlModeSubscriptions.SubscribeSessionAsync","name":"SubscribeSessionAsync","kind":"method","modifiers":["static"],"parent":"LibTmux.ControlModeSubscriptions","signatures":[{"params":[{"name":"session","type":"IControlModeSession","doc":"The control client to subscribe on."},{"name":"name","type":"string","doc":"The subscription's name, echoed back as the first word of a\n%subscription-changed notification for it."},{"name":"format","type":"string","doc":"The tmux format to watch, without #{}."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The lines tmux printed answering the subscribe command."}],"doc":{"summary":"Subscribes to a session-scoped format changing."},"source":{"file":"src/LibTmux/ControlMode/ControlModeSubscriptions.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ControlModeSubscriptions.SubscribeSessionAsync","product":"core","slug":"libtmux-controlmodesubscriptions-subscribesessionasync"},{"id":"LibTmux.IControlModeSession","name":"IControlModeSession","kind":"interface","modifiers":[],"signatures":[],"doc":{"summary":"A live tmux control client.","body":"One-shot commands start a tmux client, run one thing, and exit. A control\nsession keeps one client for as long as it is held, which is what makes\ntmux willing to report what happens while nobody asked: pane output, windows\nappearing, sessions changing.\n\nDisposing ends the client. Everything a caller reads comes through\n, which completes after a normal exit and faults after\nbuffered events when the control stream fails."},"source":{"file":"src/LibTmux/ControlMode/IControlModeSession.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IControlModeSession","product":"core","slug":"libtmux-icontrolmodesession"},{"id":"LibTmux.IControlModeSession.Events","name":"Events","kind":"property","modifiers":[],"parent":"LibTmux.IControlModeSession","signatures":[],"type":"IAsyncEnumerable","doc":{"summary":"Reads what tmux reports for as long as the client runs.","body":"The sequence completes after on a normal\nexit and faults after buffered events when the control stream fails.\nReading takes what it reads, so a later enumeration reads only what has\nnot already been taken, and one started while another is still reading\nthrows . A slow reader receives\n instead of silently missing data\nwhen the bounded buffer overflows. Pane output is discarded before any\nnotification, and a pane whose output was discarded is paused until the\nreader catches up, between and\n."},"source":{"file":"src/LibTmux/ControlMode/IControlModeSession.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IControlModeSession.Events","product":"core","slug":"libtmux-icontrolmodesession-events"},{"id":"LibTmux.IControlModeSession.IsRunning","name":"IsRunning","kind":"property","modifiers":[],"parent":"LibTmux.IControlModeSession","signatures":[],"type":"bool","doc":{"summary":"Gets whether the client is still running."},"source":{"file":"src/LibTmux/ControlMode/IControlModeSession.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IControlModeSession.IsRunning","product":"core","slug":"libtmux-icontrolmodesession-isrunning"},{"id":"LibTmux.IControlModeSession.SendAsync","name":"SendAsync","kind":"method","modifiers":[],"parent":"LibTmux.IControlModeSession","signatures":[{"params":[{"name":"command","type":"TmuxCommand","doc":"The typed command to run."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops waiting for the answer."}],"returns":"Task>","returnsDoc":"The lines tmux printed, empty when it printed nothing.","raises":[{"type":"ControlModeCommandException","doc":"Tmux reported the command failed."},{"type":"ArgumentException","doc":"The rendered command is too large for one bounded request."},{"type":"StaleServerGenerationException","doc":"The command targets a different tmux server generation."},{"type":"NotSupportedException","doc":"The command is a run-shell or run invocation without an\nunambiguous direct background shell option."},{"type":"InvalidOperationException","doc":"The client is no longer running or has too many unanswered commands."}]}],"doc":{"summary":"Runs one command on this client and reads what it answered.","body":"tmux answers commands in the order it received them, so this is safe to\ncall concurrently: each caller gets its own answer rather than someone\nelse's. Cancelling stops the wait, not the command; tmux has already\nbeen told. Foreground run-shell, its tmux command-name prefixes,\nand run are rejected before dispatch because their output is not\nframed as a command reply. Only direct background shell invocations are\naccepted. Use to read shell text where\ntmux returns it. A nonzero shell exit raises ;\n carries its exit status."},"source":{"file":"src/LibTmux/ControlMode/IControlModeSession.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IControlModeSession.SendAsync","product":"core","slug":"libtmux-icontrolmodesession-sendasync"},{"id":"LibTmux.TmuxPaneGoneEvent","name":"TmuxPaneGoneEvent","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record TmuxPaneGoneEvent(PaneId PaneId) : TmuxEvent;","params":[{"name":"PaneId","type":"PaneId","doc":"The pane that is gone."}]}],"doc":{"summary":"The pane a stream was watching left its window's arrangement.","body":"tmux's control protocol has no notification naming a killed pane\nspecifically, only a general %layout-change or window-close for the\nwindow it was in. This is synthesized by \nonce it confirms, by asking tmux directly, that the watched pane no longer\nresolves - after output buffered by a watermark-backed control session has\nbeen delivered."},"source":{"file":"src/LibTmux/ControlMode/PaneObservation.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxPaneGoneEvent","product":"core","slug":"libtmux-tmuxpanegoneevent"},{"id":"LibTmux.TmuxPaneGoneEvent.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.TmuxPaneGoneEvent","type":"PaneId","modifiers":[],"signatures":[],"doc":{"summary":"The pane that is gone."},"source":{"file":"src/LibTmux/ControlMode/PaneObservation.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxPaneGoneEvent.PaneId","product":"core","slug":"libtmux-tmuxpanegoneevent-paneid"},{"id":"LibTmux.PaneObservation","name":"PaneObservation","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Narrows a control client's event stream to some panes, and ends it cleanly.","body":"A killed pane's session and window usually survive it, so the general\nevent stream just keeps running - the closest thing tmux sends is a\n%layout-change for the window the pane left. Watching panes\nthrough this instead answers \"is the pane I care about still there\" as a\ntyped, terminal event rather than leaving a caller to infer it from a\nnotification shaped like any other."},"source":{"file":"src/LibTmux/ControlMode/PaneObservation.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneObservation","product":"core","slug":"libtmux-paneobservation"},{"id":"LibTmux.PaneObservation.WatchAsync","name":"WatchAsync","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.PaneObservation","signatures":[{"params":[{"name":"session","type":"IControlModeSession","doc":"The control client to watch through."},{"name":"pane","type":"Pane","doc":"The pane to watch."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops watching."}],"returns":"IAsyncEnumerable","returnsDoc":"The pane's own output, with and\n around output a slow reader missed,\nending with when the\ncontrol client itself ended, or with \nonce the pane is confirmed gone. Loss reports require resynchronization;\nbuffered output precedes pane termination for watermark-backed control\nsessions. The client remains borrowed.","raises":[{"type":"ArgumentException","doc":"When reading starts, the pane is in a session other than the one the\nclient is attached to; tmux sends a control client output only from its\nown session."},{"type":"InvalidOperationException","doc":"While reading, the pane's window left the client's session, or the\nclient moved to another session, so tmux sends none of its output any\nmore. tmux announces no change when swap-window trades the\nwindow with another session's, so that move leaves the watch silent."},{"type":"NotSupportedException","doc":"A control session without an event watermark cannot establish which\noutput was buffered before pane termination. Its watch fails when the\npane is confirmed gone, without consuming another event."}]},{"params":[{"name":"session","type":"IControlModeSession","doc":"The control client to watch through."},{"name":"panes","type":"IReadOnlyCollection","doc":"The panes to watch; at least one."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops watching."}],"returns":"IAsyncEnumerable","returnsDoc":"The panes' own output in the order tmux sent it, with\n and \naround output a slow reader missed. Each pane confirmed gone is reported\nby a after the output buffered before\nit went, unless the client ends first; panes found gone together are\nreported in the order given. The stream ends once every pane is gone,\nor with when the control client itself\nended. The client remains borrowed.","raises":[{"type":"ArgumentException","doc":" is empty, or, when reading starts, a pane is in\na session other than the one the client is attached to; tmux sends a\ncontrol client output only from its own session."},{"type":"InvalidOperationException","doc":"While reading, a pane's window left the client's session, or the client\nmoved to another session, so tmux sends none of its output any more.\ntmux announces no change when swap-window trades the window with\nanother session's, so that move leaves the watch silent."},{"type":"NotSupportedException","doc":"A control session without an event watermark cannot establish which\noutput was buffered before a pane ended. Its watch fails when a pane is\nconfirmed gone, without consuming another event."}]}],"doc":{"summary":"Watches one pane's output until it ends.","body":"tmux discards output it has not yet sent to a control client once the\npane's program exits, so the last lines of a program that exits at once\nmay never arrive. Read final output with\n, or\ncapture a pane kept with remain-on-exit."},"source":{"file":"src/LibTmux/ControlMode/PaneObservation.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneObservation.WatchAsync","product":"core","slug":"libtmux-paneobservation-watchasync"},{"id":"LibTmux.TmuxEvent","name":"TmuxEvent","kind":"class","modifiers":["abstract"],"signatures":[],"doc":{"summary":"One thing a tmux control client reported without being asked.","body":"tmux names a notification and then a version-dependent list of words after\nit. Modelling every name as its own type would freeze a set that moves\nbetween 3.2a and 3.7b, so the ones a caller reacts to are typed and the rest\narrive named but unparsed."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEvent","product":"core","slug":"libtmux-tmuxevent"},{"id":"LibTmux.TmuxOutputEvent","name":"TmuxOutputEvent","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record TmuxOutputEvent(PaneId PaneId, string Data) : TmuxEvent;","params":[{"name":"PaneId","type":"PaneId","doc":"The pane that produced the output."},{"name":"Data","type":"string","doc":"The text, with tmux's escaping already decoded. It is a fragment of a\nstream rather than a line: tmux sends whatever it has, so a single write by\nthe program in the pane can arrive split across events and one event can\ncarry several lines."}]}],"doc":{"summary":"Bytes a pane wrote."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOutputEvent","product":"core","slug":"libtmux-tmuxoutputevent"},{"id":"LibTmux.TmuxOutputEvent.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.TmuxOutputEvent","type":"PaneId","modifiers":[],"signatures":[],"doc":{"summary":"The pane that produced the output."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOutputEvent.PaneId","product":"core","slug":"libtmux-tmuxoutputevent-paneid"},{"id":"LibTmux.TmuxOutputEvent.Data","name":"Data","kind":"property","parent":"LibTmux.TmuxOutputEvent","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The text, with tmux's escaping already decoded. It is a fragment of a\nstream rather than a line: tmux sends whatever it has, so a single write by\nthe program in the pane can arrive split across events and one event can\ncarry several lines."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOutputEvent.Data","product":"core","slug":"libtmux-tmuxoutputevent-data"},{"id":"LibTmux.TmuxNotificationEvent","name":"TmuxNotificationEvent","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record TmuxNotificationEvent(\n string Name,\n IReadOnlyList Arguments) : TmuxEvent;","params":[{"name":"Name","type":"string","doc":"The notification name without its leading percent, such as window-add."},{"name":"Arguments","type":"IReadOnlyList","doc":"The words tmux printed after the name, unparsed."}]}],"doc":{"summary":"A notification this library does not parse further."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxNotificationEvent","product":"core","slug":"libtmux-tmuxnotificationevent"},{"id":"LibTmux.TmuxNotificationEvent.Name","name":"Name","kind":"property","parent":"LibTmux.TmuxNotificationEvent","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The notification name without its leading percent, such as window-add."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxNotificationEvent.Name","product":"core","slug":"libtmux-tmuxnotificationevent-name"},{"id":"LibTmux.TmuxNotificationEvent.Arguments","name":"Arguments","kind":"property","parent":"LibTmux.TmuxNotificationEvent","type":"IReadOnlyList","modifiers":[],"signatures":[],"doc":{"summary":"The words tmux printed after the name, unparsed."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxNotificationEvent.Arguments","product":"core","slug":"libtmux-tmuxnotificationevent-arguments"},{"id":"LibTmux.TmuxEventsDroppedEvent","name":"TmuxEventsDroppedEvent","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record TmuxEventsDroppedEvent(long Count, long TotalDropped) : TmuxEvent","params":[{"name":"Count","type":"long","doc":"The discarded events represented by this report."},{"name":"TotalDropped","type":"long","doc":"The cumulative events discarded by this client when the report was created."}]}],"doc":{"summary":"Reports notifications discarded because the bounded event buffer was full.","body":"A full buffer discards the oldest output of the pane with the most queued\nbytes under byte pressure, or events under count pressure. It discards\nnotifications only when no output is queued. An oversized event can produce\nloss by itself. Command replies use a separate queue."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEventsDroppedEvent","product":"core","slug":"libtmux-tmuxeventsdroppedevent"},{"id":"LibTmux.TmuxEventsDroppedEvent.OnlyOutput","name":"OnlyOutput","kind":"property","modifiers":[],"parent":"LibTmux.TmuxEventsDroppedEvent","signatures":[],"type":"bool","doc":{"summary":"Gets whether this report proves that only pane output was lost.","body":"A false value also covers uncertainty after the bounded loss history is compacted."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEventsDroppedEvent.OnlyOutput","product":"core","slug":"libtmux-tmuxeventsdroppedevent-onlyoutput"},{"id":"LibTmux.TmuxEventsDroppedEvent.Count","name":"Count","kind":"property","parent":"LibTmux.TmuxEventsDroppedEvent","type":"long","modifiers":[],"signatures":[],"doc":{"summary":"The discarded events represented by this report."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEventsDroppedEvent.Count","product":"core","slug":"libtmux-tmuxeventsdroppedevent-count"},{"id":"LibTmux.TmuxEventsDroppedEvent.TotalDropped","name":"TotalDropped","kind":"property","parent":"LibTmux.TmuxEventsDroppedEvent","type":"long","modifiers":[],"signatures":[],"doc":{"summary":"The cumulative events discarded by this client when the report was created."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEventsDroppedEvent.TotalDropped","product":"core","slug":"libtmux-tmuxeventsdroppedevent-totaldropped"},{"id":"LibTmux.TmuxPanePausedEvent","name":"TmuxPanePausedEvent","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record TmuxPanePausedEvent(PaneId PaneId) : TmuxEvent;","params":[{"name":"PaneId","type":"PaneId","doc":"The paused pane."}]}],"doc":{"summary":"tmux stopped sending a pane's output to this client.","body":"A control session pauses a pane whose output its full event buffer had to\ndiscard, so a flooding pane stops costing either side anything. Output the\npane prints while paused is never sent; capture the pane to read its\nscreen. The session resumes the pane once the reader catches up, and a\nreader that never reads leaves it paused. tmux's own %pause, from a\nclient with pause-after set, arrives as this event too."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxPanePausedEvent","product":"core","slug":"libtmux-tmuxpanepausedevent"},{"id":"LibTmux.TmuxPanePausedEvent.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.TmuxPanePausedEvent","type":"PaneId","modifiers":[],"signatures":[],"doc":{"summary":"The paused pane."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxPanePausedEvent.PaneId","product":"core","slug":"libtmux-tmuxpanepausedevent-paneid"},{"id":"LibTmux.TmuxPaneContinuedEvent","name":"TmuxPaneContinuedEvent","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record TmuxPaneContinuedEvent(PaneId PaneId) : TmuxEvent;","params":[{"name":"PaneId","type":"PaneId","doc":"The resumed pane."}]}],"doc":{"summary":"tmux resumed sending a pane's output to this client.","body":"Output resumes with what the pane prints next."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":60,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxPaneContinuedEvent","product":"core","slug":"libtmux-tmuxpanecontinuedevent"},{"id":"LibTmux.TmuxPaneContinuedEvent.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.TmuxPaneContinuedEvent","type":"PaneId","modifiers":[],"signatures":[],"doc":{"summary":"The resumed pane."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":60,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxPaneContinuedEvent.PaneId","product":"core","slug":"libtmux-tmuxpanecontinuedevent-paneid"},{"id":"LibTmux.TmuxExitEvent","name":"TmuxExitEvent","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record TmuxExitEvent(string? Reason) : TmuxEvent;","params":[{"name":"Reason","type":"string?","doc":"Why tmux said it ended, when it said anything. It is silent for an ordinary\nexit. For an abnormal one tmux sometimes names a reason and sometimes does\nnot: a server another client killed, for one, sends a bare %exit\nwith none. A null can also mean the reason exceeded\nthe event buffer's byte limit; a preceding dropped-event notice reports\nthat loss."}]}],"doc":{"summary":"The control client ended.","body":"This is always the last event, and the event stream completes after it."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxExitEvent","product":"core","slug":"libtmux-tmuxexitevent"},{"id":"LibTmux.TmuxExitEvent.Reason","name":"Reason","kind":"property","parent":"LibTmux.TmuxExitEvent","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"Why tmux said it ended, when it said anything. It is silent for an ordinary\nexit. For an abnormal one tmux sometimes names a reason and sometimes does\nnot: a server another client killed, for one, sends a bare %exit\nwith none. A null can also mean the reason exceeded\nthe event buffer's byte limit; a preceding dropped-event notice reports\nthat loss."},"source":{"file":"src/LibTmux/ControlMode/TmuxEvent.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxExitEvent.Reason","product":"core","slug":"libtmux-tmuxexitevent-reason"},{"id":"LibTmux.TmuxDiagnostics","name":"TmuxDiagnostics","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Names the diagnostic sources this library publishes.","body":"Every tmux command a handle runs as its own tmux process is traced on the\nactivity source and measured on the meter named here. Commands sent through\na control client, including the reads a pane wait makes through one, are\nnot. Subscribing takes the name, not a reference, so a caller wires\nOpenTelemetry without this library referencing it:\nbuilder.AddSource(TmuxDiagnostics.ActivitySourceName) and\nbuilder.AddMeter(TmuxDiagnostics.MeterName)."},"source":{"file":"src/LibTmux/Diagnostics/TmuxDiagnostics.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxDiagnostics","product":"core","slug":"libtmux-tmuxdiagnostics"},{"id":"LibTmux.TmuxEnvironmentEntry","name":"TmuxEnvironmentEntry","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One variable in a tmux environment.","body":"tmux keeps three states, not two. A variable can hold a value, be absent, or\nbe marked removed, which tells tmux to strip it from the environment of\npanes it spawns even though the parent process has it."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironmentEntry","product":"core","slug":"libtmux-tmuxenvironmententry"},{"id":"LibTmux.TmuxEnvironmentEntry.TmuxEnvironmentEntry","name":"TmuxEnvironmentEntry","kind":"method","modifiers":[],"parent":"LibTmux.TmuxEnvironmentEntry","signatures":[{"params":[{"name":"name","type":"string","doc":"The variable name."},{"name":"value","type":"string?","doc":"The value, or null when the variable is marked removed."},{"name":"isRemoved","type":"bool","doc":"Whether tmux strips this variable from new panes."}]}],"doc":{"summary":"Initializes one environment variable."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironmentEntry.TmuxEnvironmentEntry","product":"core","slug":"libtmux-tmuxenvironmententry-tmuxenvironmententry"},{"id":"LibTmux.TmuxEnvironmentEntry.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.TmuxEnvironmentEntry","signatures":[],"type":"string","doc":{"summary":"Gets the variable name."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironmentEntry.Name","product":"core","slug":"libtmux-tmuxenvironmententry-name"},{"id":"LibTmux.TmuxEnvironmentEntry.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.TmuxEnvironmentEntry","signatures":[],"type":"string?","doc":{"summary":"Gets the value, or null when the variable is marked removed."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironmentEntry.Value","product":"core","slug":"libtmux-tmuxenvironmententry-value"},{"id":"LibTmux.TmuxEnvironmentEntry.IsRemoved","name":"IsRemoved","kind":"property","modifiers":[],"parent":"LibTmux.TmuxEnvironmentEntry","signatures":[],"type":"bool","doc":{"summary":"Gets whether tmux strips this variable from new panes."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironmentEntry.IsRemoved","product":"core","slug":"libtmux-tmuxenvironmententry-isremoved"},{"id":"LibTmux.TmuxEnvironment","name":"TmuxEnvironment","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"The environment tmux gives to the processes it spawns.","body":"A server has one environment and each session another. Which one a new pane\ninherits depends on where it is created, so the two are reached separately\nrather than merged."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironment","product":"core","slug":"libtmux-tmuxenvironment"},{"id":"LibTmux.TmuxEnvironment.GetAllAsync","name":"GetAllAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxEnvironment","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"Every variable tmux reported, in the order it reported them."}],"doc":{"summary":"Reads every variable in this environment.","body":"Hidden variables are omitted. tmux can use them in formats, but excludes\nthem from the environment of new processes."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironment.GetAllAsync","product":"core","slug":"libtmux-tmuxenvironment-getallasync"},{"id":"LibTmux.TmuxEnvironment.GetAsync","name":"GetAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxEnvironment","signatures":[{"params":[{"name":"name","type":"string","doc":"The variable name."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The variable, or null when this environment has no such name."}],"doc":{"summary":"Reads one variable."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":86,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironment.GetAsync","product":"core","slug":"libtmux-tmuxenvironment-getasync"},{"id":"LibTmux.TmuxEnvironment.SetAsync","name":"SetAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxEnvironment","signatures":[{"params":[{"name":"name","type":"string","doc":"The variable name."},{"name":"value","type":"string","doc":"The value to give it."},{"name":"expandFormats","type":"bool","default":"false","doc":"Whether tmux expands the value as a format first."},{"name":"hidden","type":"bool","default":"false","doc":"Whether the value is kept but not reported back."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The variable as tmux holds it afterwards."}],"doc":{"summary":"Sets one variable."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":118,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironment.SetAsync","product":"core","slug":"libtmux-tmuxenvironment-setasync"},{"id":"LibTmux.TmuxEnvironment.RemoveAsync","name":"RemoveAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxEnvironment","signatures":[{"params":[{"name":"name","type":"string","doc":"The variable name."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Marks a variable removed for the panes tmux spawns.","body":"This is not the same as unsetting. tmux remembers the removal so that a\npane it spawns does not inherit the variable from its own parent."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":167,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironment.RemoveAsync","product":"core","slug":"libtmux-tmuxenvironment-removeasync"},{"id":"LibTmux.TmuxEnvironment.UnsetAsync","name":"UnsetAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxEnvironment","signatures":[{"params":[{"name":"name","type":"string","doc":"The variable name."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Forgets a variable entirely."},"source":{"file":"src/LibTmux/Environment/TmuxEnvironmentOperations.cs","line":182,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxEnvironment.UnsetAsync","product":"core","slug":"libtmux-tmuxenvironment-unsetasync"},{"id":"LibTmux.ControlModeCommandException","name":"ControlModeCommandException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports a command rejected by a live tmux control client."},"source":{"file":"src/LibTmux/Exceptions/ControlModeCommandException.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ControlModeCommandException","product":"core","slug":"libtmux-controlmodecommandexception"},{"id":"LibTmux.ControlModeCommandException.ControlModeCommandException","name":"ControlModeCommandException","kind":"method","modifiers":[],"parent":"LibTmux.ControlModeCommandException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"command","type":"TmuxCommand"},{"name":"outputLines","type":"IReadOnlyList"},{"name":"errorLines","type":"IReadOnlyList"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes a control-mode command exception."},"source":{"file":"src/LibTmux/Exceptions/ControlModeCommandException.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ControlModeCommandException.ControlModeCommandException","product":"core","slug":"libtmux-controlmodecommandexception-controlmodecommandexception"},{"id":"LibTmux.ControlModeCommandException.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.ControlModeCommandException","signatures":[],"type":"TmuxCommand","doc":{"summary":"Gets the command tmux rejected."},"source":{"file":"src/LibTmux/Exceptions/ControlModeCommandException.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ControlModeCommandException.Command","product":"core","slug":"libtmux-controlmodecommandexception-command"},{"id":"LibTmux.ControlModeCommandException.OutputLines","name":"OutputLines","kind":"property","modifiers":[],"parent":"LibTmux.ControlModeCommandException","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets output produced before tmux rejected the command."},"source":{"file":"src/LibTmux/Exceptions/ControlModeCommandException.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ControlModeCommandException.OutputLines","product":"core","slug":"libtmux-controlmodecommandexception-outputlines"},{"id":"LibTmux.ControlModeCommandException.ErrorLines","name":"ErrorLines","kind":"property","modifiers":[],"parent":"LibTmux.ControlModeCommandException","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the error lines tmux reported."},"source":{"file":"src/LibTmux/Exceptions/ControlModeCommandException.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ControlModeCommandException.ErrorLines","product":"core","slug":"libtmux-controlmodecommandexception-errorlines"},{"id":"LibTmux.IncompleteSnapshotException","name":"IncompleteSnapshotException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Thrown when a snapshot never captured the requested relation."},"source":{"file":"src/LibTmux/Exceptions/IncompleteSnapshotException.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IncompleteSnapshotException","product":"core","slug":"libtmux-incompletesnapshotexception"},{"id":"LibTmux.IncompleteSnapshotException.IncompleteSnapshotException","name":"IncompleteSnapshotException","kind":"method","modifiers":[],"parent":"LibTmux.IncompleteSnapshotException","signatures":[{"params":[{"name":"relation","type":"string","doc":"The relation that was not captured."},{"name":"capturedDepth","type":"SnapshotDepth","doc":"The depth the snapshot reached."}]}],"doc":{"summary":"Initializes the exception for one uncaptured relation."},"source":{"file":"src/LibTmux/Exceptions/IncompleteSnapshotException.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IncompleteSnapshotException.IncompleteSnapshotException","product":"core","slug":"libtmux-incompletesnapshotexception-incompletesnapshotexception"},{"id":"LibTmux.IncompleteSnapshotException.Relation","name":"Relation","kind":"property","modifiers":[],"parent":"LibTmux.IncompleteSnapshotException","signatures":[],"type":"string","doc":{"summary":"Gets the relation the caller asked for."},"source":{"file":"src/LibTmux/Exceptions/IncompleteSnapshotException.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IncompleteSnapshotException.Relation","product":"core","slug":"libtmux-incompletesnapshotexception-relation"},{"id":"LibTmux.IncompleteSnapshotException.CapturedDepth","name":"CapturedDepth","kind":"property","modifiers":[],"parent":"LibTmux.IncompleteSnapshotException","signatures":[],"type":"SnapshotDepth","doc":{"summary":"Gets the depth the snapshot actually reached."},"source":{"file":"src/LibTmux/Exceptions/IncompleteSnapshotException.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IncompleteSnapshotException.CapturedDepth","product":"core","slug":"libtmux-incompletesnapshotexception-captureddepth"},{"id":"LibTmux.InconsistentSnapshotException","name":"InconsistentSnapshotException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports contradictory topology in completed snapshot reads."},"source":{"file":"src/LibTmux/Exceptions/InconsistentSnapshotException.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.InconsistentSnapshotException","product":"core","slug":"libtmux-inconsistentsnapshotexception"},{"id":"LibTmux.InconsistentSnapshotException.InconsistentSnapshotException","name":"InconsistentSnapshotException","kind":"method","modifiers":[],"parent":"LibTmux.InconsistentSnapshotException","signatures":[{"params":[{"name":"message","type":"string","doc":"The observed parent, placement, or count contradiction."},{"name":"requestedDepth","type":"SnapshotDepth","doc":"The depth requested by the caller."},{"name":"generation","type":"ServerGeneration","doc":"The daemon generation that answered the reads."}]}],"doc":{"summary":"Initializes a failure for one unsuccessful hierarchy acquisition."},"source":{"file":"src/LibTmux/Exceptions/InconsistentSnapshotException.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.InconsistentSnapshotException.InconsistentSnapshotException","product":"core","slug":"libtmux-inconsistentsnapshotexception-inconsistentsnapshotexception"},{"id":"LibTmux.InconsistentSnapshotException.RequestedDepth","name":"RequestedDepth","kind":"property","modifiers":[],"parent":"LibTmux.InconsistentSnapshotException","signatures":[],"type":"SnapshotDepth","doc":{"summary":"Gets the depth requested by the unsuccessful acquisition."},"source":{"file":"src/LibTmux/Exceptions/InconsistentSnapshotException.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.InconsistentSnapshotException.RequestedDepth","product":"core","slug":"libtmux-inconsistentsnapshotexception-requesteddepth"},{"id":"LibTmux.InconsistentSnapshotException.Generation","name":"Generation","kind":"property","modifiers":[],"parent":"LibTmux.InconsistentSnapshotException","signatures":[],"type":"ServerGeneration","doc":{"summary":"Gets the daemon generation that answered the completed reads."},"source":{"file":"src/LibTmux/Exceptions/InconsistentSnapshotException.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.InconsistentSnapshotException.Generation","product":"core","slug":"libtmux-inconsistentsnapshotexception-generation"},{"id":"LibTmux.LibTmuxException","name":"LibTmuxException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Provides the base exception for remote tmux failures.","body":"Every failure carries a state, so the question a\ncaller asks in a catch block — is it safe to run this again? — is answered\non the exception rather than inferred from its type.","examples":[{"lang":"csharp","code":"catch (LibTmuxException error) when (error.Dispatch == TmuxDispatchState.NotDispatched)\n{\n // tmux never saw it, so sending it again repeats nothing.\n}"}]},"source":{"file":"src/LibTmux/Exceptions/LibTmuxException.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LibTmuxException","product":"core","slug":"libtmux-libtmuxexception"},{"id":"LibTmux.LibTmuxException.LibTmuxException","name":"LibTmuxException","kind":"method","modifiers":["overload"],"parent":"LibTmux.LibTmuxException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"innerException","type":"Exception?","default":"null"}]},{"params":[{"name":"message","type":"string"},{"name":"dispatch","type":"TmuxDispatchState"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes a LibTmux exception whose dispatch state is unknown."},"source":{"file":"src/LibTmux/Exceptions/LibTmuxException.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LibTmuxException.LibTmuxException","product":"core","slug":"libtmux-libtmuxexception-libtmuxexception"},{"id":"LibTmux.LibTmuxException.Dispatch","name":"Dispatch","kind":"property","modifiers":[],"parent":"LibTmux.LibTmuxException","signatures":[],"type":"TmuxDispatchState","doc":{"summary":"Gets whether the command reached tmux, and so whether a retry is safe.","body":"Defaults to , which is the state\nthat does not invite an unsafe retry. A failure only claims\n where the code can see\nthat tmux was never started."},"source":{"file":"src/LibTmux/Exceptions/LibTmuxException.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LibTmuxException.Dispatch","product":"core","slug":"libtmux-libtmuxexception-dispatch"},{"id":"LibTmux.StaleServerGenerationException","name":"StaleServerGenerationException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports a stale server generation."},"source":{"file":"src/LibTmux/Exceptions/StaleServerGenerationException.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.StaleServerGenerationException","product":"core","slug":"libtmux-staleservergenerationexception"},{"id":"LibTmux.StaleServerGenerationException.StaleServerGenerationException","name":"StaleServerGenerationException","kind":"method","modifiers":["overload"],"parent":"LibTmux.StaleServerGenerationException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"expected","type":"ServerGeneration"},{"name":"innerException","type":"Exception?","default":"null"}]},{"params":[{"name":"message","type":"string"},{"name":"expected","type":"ServerGeneration"},{"name":"actual","type":"ServerGeneration"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes a stale-generation exception when the replacement is unknown."},"source":{"file":"src/LibTmux/Exceptions/StaleServerGenerationException.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.StaleServerGenerationException.StaleServerGenerationException","product":"core","slug":"libtmux-staleservergenerationexception-staleservergenerationexception"},{"id":"LibTmux.StaleServerGenerationException.Expected","name":"Expected","kind":"property","modifiers":[],"parent":"LibTmux.StaleServerGenerationException","signatures":[],"type":"ServerGeneration","doc":{"summary":"Gets the generation expected by the stale handle."},"source":{"file":"src/LibTmux/Exceptions/StaleServerGenerationException.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.StaleServerGenerationException.Expected","product":"core","slug":"libtmux-staleservergenerationexception-expected"},{"id":"LibTmux.StaleServerGenerationException.Actual","name":"Actual","kind":"property","modifiers":[],"parent":"LibTmux.StaleServerGenerationException","signatures":[],"type":"ServerGeneration?","doc":{"summary":"Gets the generation currently serving the endpoint, or when it could not be observed."},"source":{"file":"src/LibTmux/Exceptions/StaleServerGenerationException.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.StaleServerGenerationException.Actual","product":"core","slug":"libtmux-staleservergenerationexception-actual"},{"id":"LibTmux.TmuxCleanupException","name":"TmuxCleanupException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports a failure to clean up a canceled tmux client."},"source":{"file":"src/LibTmux/Exceptions/TmuxCleanupException.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCleanupException","product":"core","slug":"libtmux-tmuxcleanupexception"},{"id":"LibTmux.TmuxCleanupException.TmuxCleanupException","name":"TmuxCleanupException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCleanupException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"originalCancellation","type":"OperationCanceledException"},{"name":"clientProcessId","type":"int"},{"name":"cleanupFailure","type":"Exception"}]}],"doc":{"summary":"Initializes a cleanup exception."},"source":{"file":"src/LibTmux/Exceptions/TmuxCleanupException.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCleanupException.TmuxCleanupException","product":"core","slug":"libtmux-tmuxcleanupexception-tmuxcleanupexception"},{"id":"LibTmux.TmuxCleanupException.OriginalCancellation","name":"OriginalCancellation","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCleanupException","signatures":[],"type":"OperationCanceledException","doc":{"summary":"Gets the original cancellation."},"source":{"file":"src/LibTmux/Exceptions/TmuxCleanupException.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCleanupException.OriginalCancellation","product":"core","slug":"libtmux-tmuxcleanupexception-originalcancellation"},{"id":"LibTmux.TmuxCleanupException.ClientProcessId","name":"ClientProcessId","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCleanupException","signatures":[],"type":"int","doc":{"summary":"Gets the disposable client process identifier."},"source":{"file":"src/LibTmux/Exceptions/TmuxCleanupException.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCleanupException.ClientProcessId","product":"core","slug":"libtmux-tmuxcleanupexception-clientprocessid"},{"id":"LibTmux.TmuxCleanupException.CleanupFailure","name":"CleanupFailure","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCleanupException","signatures":[],"type":"Exception","doc":{"summary":"Gets the cleanup failure."},"source":{"file":"src/LibTmux/Exceptions/TmuxCleanupException.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCleanupException.CleanupFailure","product":"core","slug":"libtmux-tmuxcleanupexception-cleanupfailure"},{"id":"LibTmux.TmuxCommandException","name":"TmuxCommandException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports a command-policy failure."},"source":{"file":"src/LibTmux/Exceptions/TmuxCommandException.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandException","product":"core","slug":"libtmux-tmuxcommandexception"},{"id":"LibTmux.TmuxCommandException.TmuxCommandException","name":"TmuxCommandException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommandException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"result","type":"TmuxCommandResult"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes a command exception."},"source":{"file":"src/LibTmux/Exceptions/TmuxCommandException.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandException.TmuxCommandException","product":"core","slug":"libtmux-tmuxcommandexception-tmuxcommandexception"},{"id":"LibTmux.TmuxCommandException.Result","name":"Result","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommandException","signatures":[],"type":"TmuxCommandResult","doc":{"summary":"Gets the inspectable command result."},"source":{"file":"src/LibTmux/Exceptions/TmuxCommandException.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandException.Result","product":"core","slug":"libtmux-tmuxcommandexception-result"},{"id":"LibTmux.TmuxCommandNotFoundException","name":"TmuxCommandNotFoundException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports a missing tmux executable.","body":"Nothing ran, so this is always :\nfixing the path and trying again repeats no side effect."},"source":{"file":"src/LibTmux/Exceptions/TmuxCommandNotFoundException.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandNotFoundException","product":"core","slug":"libtmux-tmuxcommandnotfoundexception"},{"id":"LibTmux.TmuxCommandNotFoundException.TmuxCommandNotFoundException","name":"TmuxCommandNotFoundException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommandNotFoundException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"tmuxBinaryPath","type":"string"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes a command-not-found exception."},"source":{"file":"src/LibTmux/Exceptions/TmuxCommandNotFoundException.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandNotFoundException.TmuxCommandNotFoundException","product":"core","slug":"libtmux-tmuxcommandnotfoundexception-tmuxcommandnotfoundexception"},{"id":"LibTmux.TmuxCommandNotFoundException.TmuxBinaryPath","name":"TmuxBinaryPath","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommandNotFoundException","signatures":[],"type":"string","doc":{"summary":"Gets the configured tmux executable path."},"source":{"file":"src/LibTmux/Exceptions/TmuxCommandNotFoundException.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandNotFoundException.TmuxBinaryPath","product":"core","slug":"libtmux-tmuxcommandnotfoundexception-tmuxbinarypath"},{"id":"LibTmux.TmuxDispatchState","name":"TmuxDispatchState","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Says whether a failed command reached tmux, which is what decides if retrying is safe.","body":"Retrying is safe only when the command never reached tmux.\n is the default because assuming otherwise repeats\na side effect tmux already ran."},"source":{"file":"src/LibTmux/Exceptions/TmuxDispatchState.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxDispatchState","product":"core","slug":"libtmux-tmuxdispatchstate"},{"id":"LibTmux.TmuxDispatchState.Unknown","name":"Unknown","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxDispatchState","signatures":[],"doc":{"summary":"Whether tmux acted on the command cannot be determined. Treat a retry as capable of repeating whatever the command does."},"source":{"file":"src/LibTmux/Exceptions/TmuxDispatchState.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxDispatchState.Unknown","product":"core","slug":"libtmux-tmuxdispatchstate-unknown"},{"id":"LibTmux.TmuxDispatchState.NotDispatched","name":"NotDispatched","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxDispatchState","signatures":[],"doc":{"summary":"The command never reached tmux, so nothing was done and a retry repeats nothing. This is the only state in which retrying is unconditionally safe."},"source":{"file":"src/LibTmux/Exceptions/TmuxDispatchState.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxDispatchState.NotDispatched","product":"core","slug":"libtmux-tmuxdispatchstate-notdispatched"},{"id":"LibTmux.TmuxDispatchState.Dispatched","name":"Dispatched","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxDispatchState","signatures":[],"doc":{"summary":"tmux ran the command and answered. The failure is tmux refusing or reporting an error, not the command going missing, so any side effect it had before failing has already happened."},"source":{"file":"src/LibTmux/Exceptions/TmuxDispatchState.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxDispatchState.Dispatched","product":"core","slug":"libtmux-tmuxdispatchstate-dispatched"},{"id":"LibTmux.TmuxObjectNotFoundException","name":"TmuxObjectNotFoundException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports a missing tmux object."},"source":{"file":"src/LibTmux/Exceptions/TmuxObjectNotFoundException.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxObjectNotFoundException","product":"core","slug":"libtmux-tmuxobjectnotfoundexception"},{"id":"LibTmux.TmuxObjectNotFoundException.TmuxObjectNotFoundException","name":"TmuxObjectNotFoundException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxObjectNotFoundException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"target","type":"string"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes a missing-object exception."},"source":{"file":"src/LibTmux/Exceptions/TmuxObjectNotFoundException.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxObjectNotFoundException.TmuxObjectNotFoundException","product":"core","slug":"libtmux-tmuxobjectnotfoundexception-tmuxobjectnotfoundexception"},{"id":"LibTmux.TmuxObjectNotFoundException.Target","name":"Target","kind":"property","modifiers":[],"parent":"LibTmux.TmuxObjectNotFoundException","signatures":[],"type":"string","doc":{"summary":"Gets the missing tmux target."},"source":{"file":"src/LibTmux/Exceptions/TmuxObjectNotFoundException.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxObjectNotFoundException.Target","product":"core","slug":"libtmux-tmuxobjectnotfoundexception-target"},{"id":"LibTmux.TmuxOperationCanceledException","name":"TmuxOperationCanceledException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports cancellation after a tmux client started."},"source":{"file":"src/LibTmux/Exceptions/TmuxOperationCanceledException.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOperationCanceledException","product":"core","slug":"libtmux-tmuxoperationcanceledexception"},{"id":"LibTmux.TmuxOperationCanceledException.TmuxOperationCanceledException","name":"TmuxOperationCanceledException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxOperationCanceledException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"cancellationToken","type":"CancellationToken"},{"name":"commandMayHaveExecuted","type":"bool"},{"name":"clientProcessId","type":"int"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes a tmux cancellation exception."},"source":{"file":"src/LibTmux/Exceptions/TmuxOperationCanceledException.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOperationCanceledException.TmuxOperationCanceledException","product":"core","slug":"libtmux-tmuxoperationcanceledexception-tmuxoperationcanceledexception"},{"id":"LibTmux.TmuxOperationCanceledException.CommandMayHaveExecuted","name":"CommandMayHaveExecuted","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOperationCanceledException","signatures":[],"type":"bool","doc":{"summary":"Gets whether tmux may have observed the command."},"source":{"file":"src/LibTmux/Exceptions/TmuxOperationCanceledException.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOperationCanceledException.CommandMayHaveExecuted","product":"core","slug":"libtmux-tmuxoperationcanceledexception-commandmayhaveexecuted"},{"id":"LibTmux.TmuxOperationCanceledException.ClientProcessId","name":"ClientProcessId","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOperationCanceledException","signatures":[],"type":"int","doc":{"summary":"Gets the disposable client process identifier."},"source":{"file":"src/LibTmux/Exceptions/TmuxOperationCanceledException.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOperationCanceledException.ClientProcessId","product":"core","slug":"libtmux-tmuxoperationcanceledexception-clientprocessid"},{"id":"LibTmux.TmuxOptionException","name":"TmuxOptionException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Thrown when tmux refuses an option name or value.","body":"tmux distinguishes unknown, invalid, and ambiguous options, and which one it\nsays depends on its version rather than on anything a caller did. They are\none failure here, carrying tmux's own wording and the name that caused it."},"source":{"file":"src/LibTmux/Exceptions/TmuxOptionException.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionException","product":"core","slug":"libtmux-tmuxoptionexception"},{"id":"LibTmux.TmuxOptionException.TmuxOptionException","name":"TmuxOptionException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxOptionException","signatures":[{"params":[{"name":"message","type":"string","doc":"What tmux reported."},{"name":"optionName","type":"string","doc":"The option tmux was asked about."},{"name":"innerException","type":"Exception?","default":"null","doc":"The underlying failure, when any."}]}],"doc":{"summary":"Initializes the exception for one rejected option."},"source":{"file":"src/LibTmux/Exceptions/TmuxOptionException.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionException.TmuxOptionException","product":"core","slug":"libtmux-tmuxoptionexception-tmuxoptionexception"},{"id":"LibTmux.TmuxOptionException.OptionName","name":"OptionName","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOptionException","signatures":[],"type":"string","doc":{"summary":"Gets the option tmux was asked about."},"source":{"file":"src/LibTmux/Exceptions/TmuxOptionException.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionException.OptionName","product":"core","slug":"libtmux-tmuxoptionexception-optionname"},{"id":"LibTmux.TmuxPaneException","name":"TmuxPaneException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Thrown when a pane operation is refused before tmux sees it.","body":"Reserved for refusals that are about the pane rather than the shape of the\nrequest: an argument the caller got wrong stays an\n, and a command tmux rejected stays a\n."},"source":{"file":"src/LibTmux/Exceptions/TmuxPaneException.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxPaneException","product":"core","slug":"libtmux-tmuxpaneexception"},{"id":"LibTmux.TmuxPaneException.TmuxPaneException","name":"TmuxPaneException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxPaneException","signatures":[{"params":[{"name":"message","type":"string","doc":"What was refused."},{"name":"paneId","type":"PaneId","doc":"The pane the request named."},{"name":"innerException","type":"Exception?","default":"null","doc":"The underlying failure, when any."}]}],"doc":{"summary":"Initializes the exception for one pane."},"source":{"file":"src/LibTmux/Exceptions/TmuxPaneException.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxPaneException.TmuxPaneException","product":"core","slug":"libtmux-tmuxpaneexception-tmuxpaneexception"},{"id":"LibTmux.TmuxPaneException.PaneId","name":"PaneId","kind":"property","modifiers":[],"parent":"LibTmux.TmuxPaneException","signatures":[],"type":"PaneId","doc":{"summary":"Gets the pane the request named."},"source":{"file":"src/LibTmux/Exceptions/TmuxPaneException.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxPaneException.PaneId","product":"core","slug":"libtmux-tmuxpaneexception-paneid"},{"id":"LibTmux.TmuxProtocolException","name":"TmuxProtocolException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports an answer from tmux this library could not read.","body":"Distinct from , which means tmux reported\na failure it understood. This means tmux reported success, or sent an event,\nand the bytes did not decode into anything the library can use: a row\nmissing a field it must have, a framed value that never ended, a\ncontrol-mode block guard out of place. A caller cannot correct one of these\nby changing its arguments, so the useful response is to report it rather\nthan retry it — and says whether a\nretry would repeat a side effect anyway."},"source":{"file":"src/LibTmux/Exceptions/TmuxProtocolException.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxProtocolException","product":"core","slug":"libtmux-tmuxprotocolexception"},{"id":"LibTmux.TmuxProtocolException.TmuxProtocolException","name":"TmuxProtocolException","kind":"method","modifiers":["overload"],"parent":"LibTmux.TmuxProtocolException","signatures":[{"params":[{"name":"message","type":"string","doc":"What could not be read."},{"name":"dispatch","type":"TmuxDispatchState","doc":"Whether tmux had already acted."},{"name":"innerException","type":"Exception?","default":"null","doc":"The failure underneath, when there is one."}]},{"params":[{"name":"message","type":"string","doc":"What could not be read."},{"name":"payload","type":"string","doc":"The text that could not be read."},{"name":"dispatch","type":"TmuxDispatchState","doc":"Whether tmux had already acted."},{"name":"innerException","type":"Exception?","default":"null","doc":"The failure underneath, when there is one."}]}],"doc":{"summary":"Initializes the exception for an unreadable answer."},"source":{"file":"src/LibTmux/Exceptions/TmuxProtocolException.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxProtocolException.TmuxProtocolException","product":"core","slug":"libtmux-tmuxprotocolexception-tmuxprotocolexception"},{"id":"LibTmux.TmuxProtocolException.Payload","name":"Payload","kind":"property","modifiers":[],"parent":"LibTmux.TmuxProtocolException","signatures":[],"type":"string","doc":{"summary":"Gets what tmux sent that could not be read.","body":"Empty when the failure captured no single value."},"source":{"file":"src/LibTmux/Exceptions/TmuxProtocolException.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxProtocolException.Payload","product":"core","slug":"libtmux-tmuxprotocolexception-payload"},{"id":"LibTmux.TmuxSessionExistsException","name":"TmuxSessionExistsException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Thrown when a session name is already taken.","body":"Distinct from a generic command failure because a caller can act on it:\npick another name, or ask tmux to replace the existing session."},"source":{"file":"src/LibTmux/Exceptions/TmuxSessionExistsException.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxSessionExistsException","product":"core","slug":"libtmux-tmuxsessionexistsexception"},{"id":"LibTmux.TmuxSessionExistsException.TmuxSessionExistsException","name":"TmuxSessionExistsException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxSessionExistsException","signatures":[{"params":[{"name":"message","type":"string","doc":"What tmux reported."},{"name":"sessionName","type":"string","doc":"The name already in use."},{"name":"innerException","type":"Exception?","default":"null","doc":"The underlying failure, when any."}]}],"doc":{"summary":"Initializes the exception for one taken session name."},"source":{"file":"src/LibTmux/Exceptions/TmuxSessionExistsException.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxSessionExistsException.TmuxSessionExistsException","product":"core","slug":"libtmux-tmuxsessionexistsexception-tmuxsessionexistsexception"},{"id":"LibTmux.TmuxSessionExistsException.SessionName","name":"SessionName","kind":"property","modifiers":[],"parent":"LibTmux.TmuxSessionExistsException","signatures":[],"type":"string","doc":{"summary":"Gets the session name that is already in use."},"source":{"file":"src/LibTmux/Exceptions/TmuxSessionExistsException.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxSessionExistsException.SessionName","product":"core","slug":"libtmux-tmuxsessionexistsexception-sessionname"},{"id":"LibTmux.TmuxTransportException","name":"TmuxTransportException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports a process-transport failure."},"source":{"file":"src/LibTmux/Exceptions/TmuxTransportException.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxTransportException","product":"core","slug":"libtmux-tmuxtransportexception"},{"id":"LibTmux.TmuxTransportException.TmuxTransportException","name":"TmuxTransportException","kind":"method","modifiers":["overload"],"parent":"LibTmux.TmuxTransportException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"arguments","type":"IReadOnlyList"},{"name":"innerException","type":"Exception?","default":"null"}]},{"params":[{"name":"message","type":"string"},{"name":"arguments","type":"IReadOnlyList"},{"name":"dispatch","type":"TmuxDispatchState"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes a transport exception whose dispatch state is unknown."},"source":{"file":"src/LibTmux/Exceptions/TmuxTransportException.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxTransportException.TmuxTransportException","product":"core","slug":"libtmux-tmuxtransportexception-tmuxtransportexception"},{"id":"LibTmux.TmuxTransportException.Arguments","name":"Arguments","kind":"property","modifiers":[],"parent":"LibTmux.TmuxTransportException","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the logical tmux arguments."},"source":{"file":"src/LibTmux/Exceptions/TmuxTransportException.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxTransportException.Arguments","product":"core","slug":"libtmux-tmuxtransportexception-arguments"},{"id":"LibTmux.TmuxVersionTooLowException","name":"TmuxVersionTooLowException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports an unsupported tmux version."},"source":{"file":"src/LibTmux/Exceptions/TmuxVersionTooLowException.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersionTooLowException","product":"core","slug":"libtmux-tmuxversiontoolowexception"},{"id":"LibTmux.TmuxVersionTooLowException.TmuxVersionTooLowException","name":"TmuxVersionTooLowException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxVersionTooLowException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"requiredVersion","type":"TmuxVersion"},{"name":"actualVersion","type":"TmuxVersion"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes an unsupported-version exception."},"source":{"file":"src/LibTmux/Exceptions/TmuxVersionTooLowException.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersionTooLowException.TmuxVersionTooLowException","product":"core","slug":"libtmux-tmuxversiontoolowexception-tmuxversiontoolowexception"},{"id":"LibTmux.TmuxVersionTooLowException.RequiredVersion","name":"RequiredVersion","kind":"property","modifiers":[],"parent":"LibTmux.TmuxVersionTooLowException","signatures":[],"type":"TmuxVersion","doc":{"summary":"Gets the required tmux version."},"source":{"file":"src/LibTmux/Exceptions/TmuxVersionTooLowException.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersionTooLowException.RequiredVersion","product":"core","slug":"libtmux-tmuxversiontoolowexception-requiredversion"},{"id":"LibTmux.TmuxVersionTooLowException.ActualVersion","name":"ActualVersion","kind":"property","modifiers":[],"parent":"LibTmux.TmuxVersionTooLowException","signatures":[],"type":"TmuxVersion","doc":{"summary":"Gets the actual tmux version."},"source":{"file":"src/LibTmux/Exceptions/TmuxVersionTooLowException.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersionTooLowException.ActualVersion","product":"core","slug":"libtmux-tmuxversiontoolowexception-actualversion"},{"id":"LibTmux.TmuxWaitTimeoutException","name":"TmuxWaitTimeoutException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports an expired bounded wait."},"source":{"file":"src/LibTmux/Exceptions/TmuxWaitTimeoutException.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitTimeoutException","product":"core","slug":"libtmux-tmuxwaittimeoutexception"},{"id":"LibTmux.TmuxWaitTimeoutException.TmuxWaitTimeoutException","name":"TmuxWaitTimeoutException","kind":"method","modifiers":[],"parent":"LibTmux.TmuxWaitTimeoutException","signatures":[{"params":[{"name":"message","type":"string"},{"name":"timeout","type":"TimeSpan"},{"name":"innerException","type":"Exception?","default":"null"}]}],"doc":{"summary":"Initializes a wait-timeout exception."},"source":{"file":"src/LibTmux/Exceptions/TmuxWaitTimeoutException.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitTimeoutException.TmuxWaitTimeoutException","product":"core","slug":"libtmux-tmuxwaittimeoutexception-tmuxwaittimeoutexception"},{"id":"LibTmux.TmuxWaitTimeoutException.Timeout","name":"Timeout","kind":"property","modifiers":[],"parent":"LibTmux.TmuxWaitTimeoutException","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the expired timeout."},"source":{"file":"src/LibTmux/Exceptions/TmuxWaitTimeoutException.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitTimeoutException.Timeout","product":"core","slug":"libtmux-tmuxwaittimeoutexception-timeout"},{"id":"LibTmux.TmuxWindowException","name":"TmuxWindowException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Thrown when a window operation is refused before tmux sees it.","body":"Some window requests cannot safely be handed to tmux to reject. tmux 3.3a\ncrashes its whole server on an unrecognised layout name, taking every\nsession on the socket with it, so a bad layout is refused here instead."},"source":{"file":"src/LibTmux/Exceptions/TmuxWindowException.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWindowException","product":"core","slug":"libtmux-tmuxwindowexception"},{"id":"LibTmux.TmuxWindowException.TmuxWindowException","name":"TmuxWindowException","kind":"method","modifiers":["overload"],"parent":"LibTmux.TmuxWindowException","signatures":[{"params":[{"name":"message","type":"string","doc":"What was refused."},{"name":"windowId","type":"WindowId","doc":"The window the request named."},{"name":"innerException","type":"Exception?","default":"null","doc":"The underlying failure, when any."}]},{"params":[{"name":"message","type":"string","doc":"What was refused."},{"name":"windowId","type":"WindowId","doc":"The window the request named."},{"name":"dispatch","type":"TmuxDispatchState","doc":"Whether the command reached tmux."},{"name":"innerException","type":"Exception?","default":"null","doc":"The underlying failure, when any."}]}],"doc":{"summary":"Initializes the exception for one window."},"source":{"file":"src/LibTmux/Exceptions/TmuxWindowException.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWindowException.TmuxWindowException","product":"core","slug":"libtmux-tmuxwindowexception-tmuxwindowexception"},{"id":"LibTmux.TmuxWindowException.WindowId","name":"WindowId","kind":"property","modifiers":[],"parent":"LibTmux.TmuxWindowException","signatures":[],"type":"WindowId","doc":{"summary":"Gets the window the request named."},"source":{"file":"src/LibTmux/Exceptions/TmuxWindowException.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWindowException.WindowId","product":"core","slug":"libtmux-tmuxwindowexception-windowid"},{"id":"LibTmux.UnsupportedQueryExpressionException","name":"UnsupportedQueryExpressionException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Thrown when an expression cannot be translated to a query.","body":"Translation never falls back to client evaluation. Silently evaluating an\nuntranslatable node would make one predicate mean different things\ndepending on where it ran."},"source":{"file":"src/LibTmux/Exceptions/UnsupportedQueryExpressionException.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsupportedQueryExpressionException","product":"core","slug":"libtmux-unsupportedqueryexpressionexception"},{"id":"LibTmux.UnsupportedQueryExpressionException.UnsupportedQueryExpressionException","name":"UnsupportedQueryExpressionException","kind":"method","modifiers":["overload"],"parent":"LibTmux.UnsupportedQueryExpressionException","signatures":[{"params":[{"name":"message","type":"string","doc":"What could not be translated."}]},{"params":[{"name":"message","type":"string","doc":"What could not be translated."},{"name":"expression","type":"string","doc":"The expression, as the caller wrote it."},{"name":"innerException","type":"Exception?","default":"null","doc":"The failure underneath, when there is one."}]}],"doc":{"summary":"Initializes the exception for one untranslatable expression."},"source":{"file":"src/LibTmux/Exceptions/UnsupportedQueryExpressionException.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsupportedQueryExpressionException.UnsupportedQueryExpressionException","product":"core","slug":"libtmux-unsupportedqueryexpressionexception-unsupportedqueryexpressionexception"},{"id":"LibTmux.UnsupportedQueryExpressionException.Expression","name":"Expression","kind":"property","modifiers":[],"parent":"LibTmux.UnsupportedQueryExpressionException","signatures":[],"type":"string","doc":{"summary":"Gets the expression that could not be translated.","body":"Empty when the refusal named no single expression."},"source":{"file":"src/LibTmux/Exceptions/UnsupportedQueryExpressionException.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsupportedQueryExpressionException.Expression","product":"core","slug":"libtmux-unsupportedqueryexpressionexception-expression"},{"id":"LibTmux.TmuxHookEntry","name":"TmuxHookEntry","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One command a hook runs, and where it sits in the order.","body":"The command is kept as tmux prints it. tmux normalises what it is given\nonce, on the way in, and prints the result unchanged from then on, so the\nprinted text can be handed straight back to set-hook."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHookEntry","product":"core","slug":"libtmux-tmuxhookentry"},{"id":"LibTmux.TmuxHookEntry.TmuxHookEntry","name":"TmuxHookEntry","kind":"method","modifiers":[],"parent":"LibTmux.TmuxHookEntry","signatures":[{"params":[{"name":"index","type":"int","doc":"Where the command sits in the hook's order."},{"name":"command","type":"string","doc":"The tmux command, as tmux prints it."}]}],"doc":{"summary":"Initializes one hook entry."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHookEntry.TmuxHookEntry","product":"core","slug":"libtmux-tmuxhookentry-tmuxhookentry"},{"id":"LibTmux.TmuxHookEntry.Index","name":"Index","kind":"property","modifiers":[],"parent":"LibTmux.TmuxHookEntry","signatures":[],"type":"int","doc":{"summary":"Gets where the command sits in the hook's order."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHookEntry.Index","product":"core","slug":"libtmux-tmuxhookentry-index"},{"id":"LibTmux.TmuxHookEntry.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.TmuxHookEntry","signatures":[],"type":"string","doc":{"summary":"Gets the tmux command, as tmux prints it."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHookEntry.Command","product":"core","slug":"libtmux-tmuxhookentry-command"},{"id":"LibTmux.TmuxHook","name":"TmuxHook","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One hook and every command it runs."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHook","product":"core","slug":"libtmux-tmuxhook"},{"id":"LibTmux.TmuxHook.TmuxHook","name":"TmuxHook","kind":"method","modifiers":[],"parent":"LibTmux.TmuxHook","signatures":[{"params":[{"name":"name","type":"string","doc":"The hook name, without an index."},{"name":"values","type":"IReadOnlyList","doc":"The commands it runs, in the order tmux reported."}]}],"doc":{"summary":"Initializes one hook."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHook.TmuxHook","product":"core","slug":"libtmux-tmuxhook-tmuxhook"},{"id":"LibTmux.TmuxHook.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.TmuxHook","signatures":[],"type":"string","doc":{"summary":"Gets the hook name, without an index."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHook.Name","product":"core","slug":"libtmux-tmuxhook-name"},{"id":"LibTmux.TmuxHook.Values","name":"Values","kind":"property","modifiers":[],"parent":"LibTmux.TmuxHook","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the commands it runs, in the order tmux reported."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHook.Values","product":"core","slug":"libtmux-tmuxhook-values"},{"id":"LibTmux.TmuxHooks","name":"TmuxHooks","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"The hooks of one server, session, window, or pane.","body":"Every hook is an array, even with one entry, so a hook is read as a name and\na run of indexed commands rather than as a single value."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":60,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHooks","product":"core","slug":"libtmux-tmuxhooks"},{"id":"LibTmux.TmuxHooks.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.TmuxHooks","signatures":[],"type":"OptionScope","doc":{"summary":"Gets the scope these hooks are read and written in by default."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHooks.Scope","product":"core","slug":"libtmux-tmuxhooks-scope"},{"id":"LibTmux.TmuxHooks.GetAsync","name":"GetAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxHooks","signatures":[{"params":[{"name":"request","type":"HookRequest","doc":"Which hook to read."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The hook, or null when nothing is set for that name.","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the hook name."}]}],"doc":{"summary":"Reads one hook."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":94,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHooks.GetAsync","product":"core","slug":"libtmux-tmuxhooks-getasync"},{"id":"LibTmux.TmuxHooks.GetAllAsync","name":"GetAllAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxHooks","signatures":[{"params":[{"name":"request","type":"ListHooksRequest?","default":"null","doc":"Which scope to read, or null for the plain reading."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"Every hook tmux reported, in the order it reported them."}],"doc":{"summary":"Reads every hook in the scope."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":113,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHooks.GetAllAsync","product":"core","slug":"libtmux-tmuxhooks-getallasync"},{"id":"LibTmux.TmuxHooks.SetAsync","name":"SetAsync","kind":"method","modifiers":["async","overload"],"parent":"LibTmux.TmuxHooks","signatures":[{"params":[{"name":"request","type":"SetHookRequest","doc":"Which hook to set, to what, and how."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The hook as tmux holds it afterwards.","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the hook or its command."}]},{"params":[{"name":"request","type":"SetHooksRequest","doc":"Which hook to set, to what, and how."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The hook as tmux holds it afterwards.","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the hook or a command."}]}],"doc":{"summary":"Sets one hook entry."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":239,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHooks.SetAsync","product":"core","slug":"libtmux-tmuxhooks-setasync"},{"id":"LibTmux.TmuxHooks.RunAsync","name":"RunAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxHooks","signatures":[{"params":[{"name":"request","type":"HookRequest","doc":"Which hook to run."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the hook name."}]}],"doc":{"summary":"Runs a hook's commands now, without waiting for it to fire."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":310,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHooks.RunAsync","product":"core","slug":"libtmux-tmuxhooks-runasync"},{"id":"LibTmux.TmuxHooks.UnsetAsync","name":"UnsetAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxHooks","signatures":[{"params":[{"name":"request","type":"HookRequest","doc":"Which hook to remove."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the hook name."}]}],"doc":{"summary":"Removes a hook."},"source":{"file":"src/LibTmux/Hooks/TmuxHooks.cs","line":320,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxHooks.UnsetAsync","product":"core","slug":"libtmux-tmuxhooks-unsetasync"},{"id":"LibTmux.TmuxKeys","name":"TmuxKeys","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"The key bindings of one server.","body":"Bindings live in named tables. The prefix table is what a key reaches after\nthe prefix key, and root is what it reaches without one."},"source":{"file":"src/LibTmux/Keys/TmuxKeys.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxKeys","product":"core","slug":"libtmux-tmuxkeys"},{"id":"LibTmux.TmuxKeys.BindAsync","name":"BindAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxKeys","signatures":[{"params":[{"name":"request","type":"BindKeyRequest","doc":"Which key, to what, and in which table."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A task that completes once the binding is in place.","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Binds a key to a tmux command."},"source":{"file":"src/LibTmux/Keys/TmuxKeys.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxKeys.BindAsync","product":"core","slug":"libtmux-tmuxkeys-bindasync"},{"id":"LibTmux.TmuxKeys.UnbindAsync","name":"UnbindAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxKeys","signatures":[{"params":[{"name":"request","type":"UnbindKeyRequest","doc":"Which key, or every key in a table."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A task that completes once the binding is gone.","raises":[{"type":"ArgumentNullException","doc":" is null."},{"type":"ArgumentException","doc":"The request names no key and does not ask for all."}]}],"doc":{"summary":"Removes a binding, or every binding in a table.","body":"Removing a binding nobody made is not an error: tmux treats the\nabsence as the state that was asked for."},"source":{"file":"src/LibTmux/Keys/TmuxKeys.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxKeys.UnbindAsync","product":"core","slug":"libtmux-tmuxkeys-unbindasync"},{"id":"LibTmux.TmuxKeys.GetAllAsync","name":"GetAllAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxKeys","signatures":[{"params":[{"name":"keyTable","type":"string?","default":"null","doc":"The table to read, or null for every table."},{"name":"format","type":"string?","default":"null","doc":"The tmux format each binding is rendered with."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"One line per binding."}],"doc":{"summary":"Reads the bindings as tmux rendered them.","body":"Rendering with a format arrived in tmux 3.7."},"source":{"file":"src/LibTmux/Keys/TmuxKeys.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxKeys.GetAllAsync","product":"core","slug":"libtmux-tmuxkeys-getallasync"},{"id":"LibTmux.TmuxOptionKey","name":"TmuxOptionKey","kind":"class","modifiers":[],"signatures":[],"typeParams":["T"],"typeParameters":[{"name":"T","bound":"notnull","doc":"What the value reads as."}],"doc":{"summary":"A tmux option and the .NET type its value reads as.","body":"Declared by the caller rather than catalogued: tmux has hundreds of options,\nadds them between releases and changes a few of their types, so a closed\ncatalogue would be wrong somewhere on every release it did not track. A key\nsays how to read one option; the request methods on\n remain for anything else."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey","product":"core","slug":"libtmux-tmuxoptionkey"},{"id":"LibTmux.TmuxOptionKey.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOptionKey","signatures":[],"type":"string","doc":{"summary":"Gets the option's name, as tmux spells it."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.Name","product":"core","slug":"libtmux-tmuxoptionkey-name"},{"id":"LibTmux.TmuxOptionKey.ToString","name":"ToString","kind":"method","modifiers":[],"parent":"LibTmux.TmuxOptionKey","signatures":[{"params":[],"returns":"string"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.ToString","product":"core","slug":"libtmux-tmuxoptionkey-tostring"},{"id":"LibTmux.TmuxOptionKey.HistoryLimit","name":"HistoryLimit","kind":"property","modifiers":["static"],"parent":"LibTmux.TmuxOptionKey","signatures":[],"type":"TmuxOptionKey","doc":{"summary":"Gets how many lines of scrollback a pane keeps; a session option."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.HistoryLimit","product":"core","slug":"libtmux-tmuxoptionkey-historylimit"},{"id":"LibTmux.TmuxOptionKey.BaseIndex","name":"BaseIndex","kind":"property","modifiers":["static"],"parent":"LibTmux.TmuxOptionKey","signatures":[],"type":"TmuxOptionKey","doc":{"summary":"Gets the index a session's first window gets; a session option."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.BaseIndex","product":"core","slug":"libtmux-tmuxoptionkey-baseindex"},{"id":"LibTmux.TmuxOptionKey.EscapeTime","name":"EscapeTime","kind":"property","modifiers":["static"],"parent":"LibTmux.TmuxOptionKey","signatures":[],"type":"TmuxOptionKey","doc":{"summary":"Gets how many milliseconds tmux waits after an escape for a key sequence; a server option."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.EscapeTime","product":"core","slug":"libtmux-tmuxoptionkey-escapetime"},{"id":"LibTmux.TmuxOptionKey.Mouse","name":"Mouse","kind":"property","modifiers":["static"],"parent":"LibTmux.TmuxOptionKey","signatures":[],"type":"TmuxOptionKey","doc":{"summary":"Gets whether tmux captures the mouse; a session option."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":67,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.Mouse","product":"core","slug":"libtmux-tmuxoptionkey-mouse"},{"id":"LibTmux.TmuxOptionKey.AutomaticRename","name":"AutomaticRename","kind":"property","modifiers":["static"],"parent":"LibTmux.TmuxOptionKey","signatures":[],"type":"TmuxOptionKey","doc":{"summary":"Gets whether a window renames itself after what its pane runs; a window option."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.AutomaticRename","product":"core","slug":"libtmux-tmuxoptionkey-automaticrename"},{"id":"LibTmux.TmuxOptionKey.SynchronizePanes","name":"SynchronizePanes","kind":"property","modifiers":["static"],"parent":"LibTmux.TmuxOptionKey","signatures":[],"type":"TmuxOptionKey","doc":{"summary":"Gets whether keys typed into one pane go to every pane in its window; a window or pane option."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":73,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.SynchronizePanes","product":"core","slug":"libtmux-tmuxoptionkey-synchronizepanes"},{"id":"LibTmux.TmuxOptionKey.Text","name":"Text","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxOptionKey","signatures":[{"params":[{"name":"name","type":"string","doc":"The option name, such as status-style or a user option @name."}],"returns":"TmuxOptionKey","returnsDoc":"A key reading the option as text.","raises":[{"type":"ArgumentException","doc":"The name is blank."}]}],"doc":{"summary":"Declares an option read as the text tmux reports, which suits a string, a choice, a style or a colour."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":79,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.Text","product":"core","slug":"libtmux-tmuxoptionkey-text"},{"id":"LibTmux.TmuxOptionKey.Number","name":"Number","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxOptionKey","signatures":[{"params":[{"name":"name","type":"string","doc":"The option name."}],"returns":"TmuxOptionKey","returnsDoc":"A key reading the option as a number.","raises":[{"type":"ArgumentException","doc":"The name is blank."}]}],"doc":{"summary":"Declares an option tmux holds as a whole number."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":86,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.Number","product":"core","slug":"libtmux-tmuxoptionkey-number"},{"id":"LibTmux.TmuxOptionKey.Flag","name":"Flag","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxOptionKey","signatures":[{"params":[{"name":"name","type":"string","doc":"The option name."}],"returns":"TmuxOptionKey","returnsDoc":"A key reading the option as a flag.","raises":[{"type":"ArgumentException","doc":"The name is blank."}]}],"doc":{"summary":"Declares an option tmux holds as a flag, which it reports as on or off."},"source":{"file":"src/LibTmux/Options/TmuxOptionKey.cs","line":98,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionKey.Flag","product":"core","slug":"libtmux-tmuxoptionkey-flag"},{"id":"LibTmux.TmuxOptionState","name":"TmuxOptionState","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"What tmux reported for an option."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionState","product":"core","slug":"libtmux-tmuxoptionstate"},{"id":"LibTmux.TmuxOptionState.Absent","name":"Absent","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxOptionState","signatures":[],"doc":{"summary":"tmux named the option but gave it no value."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionState.Absent","product":"core","slug":"libtmux-tmuxoptionstate-absent"},{"id":"LibTmux.TmuxOptionState.Off","name":"Off","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxOptionState","signatures":[],"doc":{"summary":"tmux reported the flag value off."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionState.Off","product":"core","slug":"libtmux-tmuxoptionstate-off"},{"id":"LibTmux.TmuxOptionState.On","name":"On","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxOptionState","signatures":[],"doc":{"summary":"tmux reported the flag value on."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionState.On","product":"core","slug":"libtmux-tmuxoptionstate-on"},{"id":"LibTmux.TmuxOptionState.Value","name":"Value","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxOptionState","signatures":[],"doc":{"summary":"tmux reported a value that is neither on nor off."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionState.Value","product":"core","slug":"libtmux-tmuxoptionstate-value"},{"id":"LibTmux.TmuxOptionValue","name":"TmuxOptionValue","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One option value as tmux reported it.","body":"tmux has no types: every option comes back as text. The typed readings sit\nalongside rather than replacing it, so a caller that knows\nbetter than the guess can always reach what tmux actually said."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionValue","product":"core","slug":"libtmux-tmuxoptionvalue"},{"id":"LibTmux.TmuxOptionValue.TmuxOptionValue","name":"TmuxOptionValue","kind":"method","modifiers":[],"parent":"LibTmux.TmuxOptionValue","signatures":[{"params":[{"name":"raw","type":"string?","doc":"The unescaped text tmux reported, or null when it reported none."},{"name":"state","type":"TmuxOptionState","doc":"Whether the value is absent, a flag, or ordinary text."},{"name":"boolean","type":"bool?","doc":"The flag reading, or null when the value is not a flag."},{"name":"integer","type":"long?","doc":"The whole-number reading, or null when the value is not one."}]}],"doc":{"summary":"Initializes an option value."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionValue.TmuxOptionValue","product":"core","slug":"libtmux-tmuxoptionvalue-tmuxoptionvalue"},{"id":"LibTmux.TmuxOptionValue.Raw","name":"Raw","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOptionValue","signatures":[],"type":"string?","doc":{"summary":"Gets the unescaped text tmux reported, or null when it reported none."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionValue.Raw","product":"core","slug":"libtmux-tmuxoptionvalue-raw"},{"id":"LibTmux.TmuxOptionValue.State","name":"State","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOptionValue","signatures":[],"type":"TmuxOptionState","doc":{"summary":"Gets whether the value is absent, a flag, or ordinary text."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionValue.State","product":"core","slug":"libtmux-tmuxoptionvalue-state"},{"id":"LibTmux.TmuxOptionValue.Boolean","name":"Boolean","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOptionValue","signatures":[],"type":"bool?","doc":{"summary":"Gets the flag reading, or null when the value is not a flag."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":53,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionValue.Boolean","product":"core","slug":"libtmux-tmuxoptionvalue-boolean"},{"id":"LibTmux.TmuxOptionValue.Integer","name":"Integer","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOptionValue","signatures":[],"type":"long?","doc":{"summary":"Gets the whole-number reading, or null when the value is not one."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptionValue.Integer","product":"core","slug":"libtmux-tmuxoptionvalue-integer"},{"id":"LibTmux.TmuxOption","name":"TmuxOption","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One option, with its array index when tmux gave it one.","body":"tmux array options are sparse: setting index 40 leaves 4 through 39 unset,\nand tmux reports only what exists. Carrying the index on each entry says so\nplainly, where a list would have to invent the gaps."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":69,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOption","product":"core","slug":"libtmux-tmuxoption"},{"id":"LibTmux.TmuxOption.TmuxOption","name":"TmuxOption","kind":"method","modifiers":[],"parent":"LibTmux.TmuxOption","signatures":[{"params":[{"name":"name","type":"string","doc":"The option name, without index or inheritance marker."},{"name":"value","type":"TmuxOptionValue","doc":"The value tmux reported."},{"name":"index","type":"int?","doc":"The array index, or null for an option that is not an array."},{"name":"inherited","type":"bool","default":"false","doc":"Whether the value came from a parent scope."}]}],"doc":{"summary":"Initializes an option."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":76,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOption.TmuxOption","product":"core","slug":"libtmux-tmuxoption-tmuxoption"},{"id":"LibTmux.TmuxOption.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOption","signatures":[],"type":"string","doc":{"summary":"Gets the option name, without index or inheritance marker."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":85,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOption.Name","product":"core","slug":"libtmux-tmuxoption-name"},{"id":"LibTmux.TmuxOption.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOption","signatures":[],"type":"TmuxOptionValue","doc":{"summary":"Gets the value tmux reported."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":88,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOption.Value","product":"core","slug":"libtmux-tmuxoption-value"},{"id":"LibTmux.TmuxOption.Index","name":"Index","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOption","signatures":[],"type":"int?","doc":{"summary":"Gets the array index, or null for an option that is not an array."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":91,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOption.Index","product":"core","slug":"libtmux-tmuxoption-index"},{"id":"LibTmux.TmuxOption.Inherited","name":"Inherited","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOption","signatures":[],"type":"bool","doc":{"summary":"Gets whether the value came from a parent scope.","body":"Only a read that asked for inherited values can tell. Without it tmux\nanswers nothing at all for an option set at a wider scope, so a false\nvalue there means \"not reported as inherited\", not \"set here\"."},"source":{"file":"src/LibTmux/Options/TmuxOptionValue.cs","line":99,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOption.Inherited","product":"core","slug":"libtmux-tmuxoption-inherited"},{"id":"LibTmux.TmuxOptions","name":"TmuxOptions","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"The options of one server, session, window, or pane.","body":"tmux keeps four option tables and picks between them with a flag, so the\nscope is fixed when the accessor is reached rather than passed to every\ncall. A request may still name another scope, which is what makes a\nwindow-scoped read from a session possible without a second accessor."},"source":{"file":"src/LibTmux/Options/TmuxOptions.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptions","product":"core","slug":"libtmux-tmuxoptions"},{"id":"LibTmux.TmuxOptions.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.TmuxOptions","signatures":[],"type":"OptionScope","doc":{"summary":"Gets the scope these options are read and written in by default."},"source":{"file":"src/LibTmux/Options/TmuxOptions.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptions.Scope","product":"core","slug":"libtmux-tmuxoptions-scope"},{"id":"LibTmux.TmuxOptions.GetAsync","name":"GetAsync","kind":"method","modifiers":["async","overload"],"parent":"LibTmux.TmuxOptions","signatures":[{"params":[{"name":"request","type":"GetOptionRequest","doc":"Which option to read, and how."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"Every entry tmux reported for the name: one for an ordinary option, and\none per set index for an array.","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the option name."}]},{"params":[{"name":"key","type":"TmuxOptionKey","doc":"The option and how to read it."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","typeParams":["T"],"typeParameters":[{"name":"T","bound":"notnull","doc":"What the value reads as."}],"returnsDoc":"The value tmux applies here, set in this scope or inherited from a parent.","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the name, reported no value, or reported one the key cannot read."}]}],"doc":{"summary":"Reads one option.","body":"Unescaping a doubled dollar sign needs the connected tmux's version, so\na table reached from a handle that has not found a live server yet\ndiscovers one first."},"source":{"file":"src/LibTmux/Options/TmuxOptions.cs","line":77,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptions.GetAsync","product":"core","slug":"libtmux-tmuxoptions-getasync"},{"id":"LibTmux.TmuxOptions.SetAsync","name":"SetAsync","kind":"method","modifiers":["overload"],"parent":"LibTmux.TmuxOptions","signatures":[{"params":[{"name":"key","type":"TmuxOptionKey","doc":"The option and how to write it."},{"name":"value","type":"T","doc":"The value to set."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","typeParams":["T"],"typeParameters":[{"name":"T","bound":"notnull","doc":"What the value reads as."}],"returnsDoc":"A task that completes when tmux has set the option.","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the name or the value."}]},{"params":[{"name":"request","type":"SetOptionRequest","doc":"Which option to set, to what, and how."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The value tmux holds afterwards.","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the option or its value."}]}],"doc":{"summary":"Sets an option in this scope from a value of its key's type."},"source":{"file":"src/LibTmux/Options/TmuxOptions.cs","line":132,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptions.SetAsync","product":"core","slug":"libtmux-tmuxoptions-setasync"},{"id":"LibTmux.TmuxOptions.GetAllAsync","name":"GetAllAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxOptions","signatures":[{"params":[{"name":"request","type":"GetOptionsRequest?","default":"null","doc":"How to read them, or null for the plain reading."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"Every option tmux reported, in the order it reported them.","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the request."}]}],"doc":{"summary":"Reads every option in the scope.","body":"Unescaping a doubled dollar sign needs the connected tmux's version, so\na table reached from a handle that has not found a live server yet\ndiscovers one first."},"source":{"file":"src/LibTmux/Options/TmuxOptions.cs","line":149,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptions.GetAllAsync","product":"core","slug":"libtmux-tmuxoptions-getallasync"},{"id":"LibTmux.TmuxOptions.UnsetAsync","name":"UnsetAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxOptions","signatures":[{"params":[{"name":"request","type":"UnsetOptionRequest","doc":"Which option to unset, and how."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","raises":[{"type":"TmuxOptionException","doc":"tmux rejected the option name."}]}],"doc":{"summary":"Unsets one option, returning it to what it inherits."},"source":{"file":"src/LibTmux/Options/TmuxOptions.cs","line":245,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxOptions.UnsetAsync","product":"core","slug":"libtmux-tmuxoptions-unsetasync"},{"id":"LibTmux.Pane","name":"Pane","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Represents an immutable pane handle and snapshot.","body":"Thread-safe: the handle is immutable once constructed and may be shared\nfreely, including as a singleton. Every mutating call answers a new handle\nrather than changing this one."},"source":{"file":"src/LibTmux/Pane.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane","product":"core","slug":"libtmux-pane"},{"id":"LibTmux.Pane.CaptureAsync","name":"CaptureAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"CapturePaneRequest?","default":"null","doc":"What to capture."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The captured lines."}],"doc":{"summary":"Reads the pane's contents.","examples":[{"lang":"console","intro":"Send literal text and a named Enter key, wait for a private completion signal, then require a whole captured output line. All scopes are disposed after errors or cancellation. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/InputCapture.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-inputcapture-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/sh\" }, token);\nServer server = await Server.ConnectAsync(options, token);\nPane pane = (await server.GetPanesAsync(token)).Single();\nstring channel = \"capture-\" + Guid.NewGuid().ToString(\"N\");\nawait using TmuxWaitChannel wait = server.OpenWaitChannel(channel);\nconst string marker = \"api capture ready\";\nstring command = $\"printf '%s\\\\n' {QuoteShell(marker)}; \"\n + $\"{QuoteShell(binary)} -L {QuoteShell(socketName)} wait-for -S {QuoteShell(channel)}\";\n\nawait pane.SendKeysAsync(new SendKeysRequest { Text = command, Literal = true, Enter = false }, token);\nawait pane.SendKeysAsync(new SendKeysRequest { Text = \"Enter\", Enter = false }, token);\nif (!await wait.WaitAsync(TimeSpan.FromSeconds(5), token))\n{\n throw new InvalidOperationException(\"The pane did not signal that its output was ready.\");\n}\nIReadOnlyList lines = await pane.CaptureAsync(\n new CapturePaneRequest { JoinWrappedLines = true }, token);\n// Joining wrapped lines preserves terminal padding after the output.\nif (!lines.Any(line => string.Equals(line.TrimEnd(), marker, StringComparison.Ordinal)))\n{\n throw new InvalidOperationException(\"Capture did not contain the complete output line.\");\n}\nConsole.WriteLine(marker);\n\nstatic string QuoteShell(string value) => \"'\" + value.Replace(\"'\", \"'\\\\''\", StringComparison.Ordinal) + \"'\";\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"api capture ready\n"}]},"source":{"file":"src/LibTmux/Pane.Capture.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.CaptureAsync","product":"core","slug":"libtmux-pane-captureasync"},{"id":"LibTmux.Pane.ReadOutputSinceAsync","name":"ReadOutputSinceAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"position","type":"PaneOutputPosition?","default":"null","doc":"Where the last read finished, or null to start from what the pane shows now."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The new lines and the position to pass next time; a read without a position returns none.","raises":[{"type":"ArgumentException","doc":"The position came from another pane."},{"type":"TmuxObjectNotFoundException","doc":"tmux no longer has the pane."},{"type":"TmuxPaneException","doc":"The pane runs a different program than when the position was taken, its\nprogram has exited, or it changed during every read attempt."}]}],"doc":{"summary":"Reads what the pane has printed since a position, and where this read finished.","body":"A read captures what is new rather than everything the pane holds, so\nit costs about the same however long the pane has been printing, until\nhistory nears history-limit: a read then captures all of it to\nfind its place. Lines a program rewrote in place, such as a progress\nbar or a prompt redraw, are reported again when they change. A pane\nwhose program has exited reads as it stands."},"source":{"file":"src/LibTmux/Pane.Capture.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ReadOutputSinceAsync","product":"core","slug":"libtmux-pane-readoutputsinceasync"},{"id":"LibTmux.Pane.CaptureToBufferAsync","name":"CaptureToBufferAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"bufferName","type":"string","doc":"The buffer to write."},{"name":"request","type":"CapturePaneRequest?","default":"null","doc":"What to capture."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Captures the pane's contents into a tmux buffer."},"source":{"file":"src/LibTmux/Pane.Capture.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.CaptureToBufferAsync","product":"core","slug":"libtmux-pane-capturetobufferasync"},{"id":"LibTmux.Pane.PipeAsync","name":"PipeAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"PipePaneRequest?","default":"null","doc":"What to pipe."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Pipes the pane's input or output through a command."},"source":{"file":"src/LibTmux/Pane.Capture.cs","line":105,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.PipeAsync","product":"core","slug":"libtmux-pane-pipeasync"},{"id":"LibTmux.Pane.ExecuteCommandAsync","name":"ExecuteCommandAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"arguments","type":"IReadOnlyList"},{"name":"targetOverride","type":"string?","default":"null"},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Executes one raw tmux command against this pane."},"source":{"file":"src/LibTmux/Pane.Command.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ExecuteCommandAsync","product":"core","slug":"libtmux-pane-executecommandasync"},{"id":"LibTmux.Pane.DisplayPopupAsync","name":"DisplayPopupAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"DisplayPopupRequest?","default":"null","doc":"What the popup shows."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Shows a popup over the client viewing this pane.","body":"tmux waits for the popup to close before answering, so a popup whose\ncommand never exits keeps this call waiting until it is canceled."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":175,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.DisplayPopupAsync","product":"core","slug":"libtmux-pane-displaypopupasync"},{"id":"LibTmux.Pane.DisplayPaneNumbersAsync","name":"DisplayPaneNumbersAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"duration","type":"TimeSpan?","default":"null","doc":"How long the numbers stay up."},{"name":"noSelect","type":"bool","default":"false","doc":"Whether pressing a number does not select a pane."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Shows the pane numbers on every client.","body":"tmux takes no pane here: the command's target names a client, so this\nshows the numbers wherever the server has clients."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":193,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.DisplayPaneNumbersAsync","product":"core","slug":"libtmux-pane-displaypanenumbersasync"},{"id":"LibTmux.Pane.DisplayMessageAsync","name":"DisplayMessageAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"DisplayMessageRequest","doc":"The message to show."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task?>","returnsDoc":"The printed lines when the request asked for them, else null."}],"doc":{"summary":"Shows a message on the client viewing this pane.","body":"A message with no client to show it on is not a failure, so tmux's\ncomplaint is logged rather than raised."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":222,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.DisplayMessageAsync","product":"core","slug":"libtmux-pane-displaymessageasync"},{"id":"LibTmux.Pane.EnterCopyModeAsync","name":"EnterCopyModeAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"CopyModeRequest?","default":"null","doc":"How to enter it."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Puts the pane into copy mode."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":321,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.EnterCopyModeAsync","product":"core","slug":"libtmux-pane-entercopymodeasync"},{"id":"LibTmux.Pane.EnterClockModeAsync","name":"EnterClockModeAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Puts the pane into clock mode."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":333,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.EnterClockModeAsync","product":"core","slug":"libtmux-pane-enterclockmodeasync"},{"id":"LibTmux.Pane.EnterCustomizeModeAsync","name":"EnterCustomizeModeAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Puts the pane into customize mode."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":339,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.EnterCustomizeModeAsync","product":"core","slug":"libtmux-pane-entercustomizemodeasync"},{"id":"LibTmux.Pane.ChooseBufferAsync","name":"ChooseBufferAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Opens the buffer chooser in this pane.","body":"tmux does nothing, successfully, when there are no buffers."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":346,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ChooseBufferAsync","product":"core","slug":"libtmux-pane-choosebufferasync"},{"id":"LibTmux.Pane.ChooseClientAsync","name":"ChooseClientAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Opens the client chooser in this pane."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":352,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ChooseClientAsync","product":"core","slug":"libtmux-pane-chooseclientasync"},{"id":"LibTmux.Pane.ChooseTreeAsync","name":"ChooseTreeAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"ChooseTreeRequest?","default":"null","doc":"How the tree is shown."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Opens the session tree chooser in this pane."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":359,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ChooseTreeAsync","product":"core","slug":"libtmux-pane-choosetreeasync"},{"id":"LibTmux.Pane.FindWindowAsync","name":"FindWindowAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"FindWindowRequest","doc":"What to look for."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Opens the window finder in this pane."},"source":{"file":"src/LibTmux/Pane.Display.cs","line":372,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.FindWindowAsync","product":"core","slug":"libtmux-pane-findwindowasync"},{"id":"LibTmux.Pane.FromEnvironmentAsync","name":"FromEnvironmentAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"environment","type":"IReadOnlyDictionary?","default":"null","doc":"The environment, or null for the process."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The resolved pane.","raises":[{"type":"TmuxObjectNotFoundException","doc":"The environment does not name a pane, or tmux no longer has it."}]}],"doc":{"summary":"Returns the pane this process was spawned in."},"source":{"file":"src/LibTmux/Pane.FromEnvironment.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.FromEnvironmentAsync","product":"core","slug":"libtmux-pane-fromenvironmentasync"},{"id":"LibTmux.Pane.RawFormatFields","name":"RawFormatFields","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the tmux fields captured when this handle materialized."},"source":{"file":"src/LibTmux/Pane.Identity.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.RawFormatFields","product":"core","slug":"libtmux-pane-rawformatfields"},{"id":"LibTmux.Pane.Id","name":"Id","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"PaneId","doc":{"summary":"Gets the pane identifier."},"source":{"file":"src/LibTmux/Pane.Identity.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Id","product":"core","slug":"libtmux-pane-id"},{"id":"LibTmux.Pane.Generation","name":"Generation","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"ServerGeneration","doc":{"summary":"Gets the server generation captured with this pane."},"source":{"file":"src/LibTmux/Pane.Identity.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Generation","product":"core","slug":"libtmux-pane-generation"},{"id":"LibTmux.Pane.Equals","name":"Equals","kind":"method","modifiers":["overload"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"other","type":"Pane?"}],"returns":"bool"},{"params":[{"name":"obj","type":"object?"}],"returns":"bool"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Pane.Identity.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Equals","product":"core","slug":"libtmux-pane-equals"},{"id":"LibTmux.Pane.GetHashCode","name":"GetHashCode","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[],"returns":"int"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Pane.Identity.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.GetHashCode","product":"core","slug":"libtmux-pane-gethashcode"},{"id":"LibTmux.Pane.SendKeysAsync","name":"SendKeysAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"SendKeysRequest","doc":"What to send."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","raises":[{"type":"ArgumentException","doc":"The request sends nothing or its text contains NUL."},{"type":"LibTmuxException","doc":"Text was sent, but a requested Enter failed. Its dispatch state is\nunknown, so the whole request must not be retried."}]}],"doc":{"summary":"Sends keys to the pane.","examples":[{"lang":"console","intro":"Send literal text and a named Enter key, wait for a private completion signal, then require a whole captured output line. All scopes are disposed after errors or cancellation. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/InputCapture.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-inputcapture-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/sh\" }, token);\nServer server = await Server.ConnectAsync(options, token);\nPane pane = (await server.GetPanesAsync(token)).Single();\nstring channel = \"capture-\" + Guid.NewGuid().ToString(\"N\");\nawait using TmuxWaitChannel wait = server.OpenWaitChannel(channel);\nconst string marker = \"api capture ready\";\nstring command = $\"printf '%s\\\\n' {QuoteShell(marker)}; \"\n + $\"{QuoteShell(binary)} -L {QuoteShell(socketName)} wait-for -S {QuoteShell(channel)}\";\n\nawait pane.SendKeysAsync(new SendKeysRequest { Text = command, Literal = true, Enter = false }, token);\nawait pane.SendKeysAsync(new SendKeysRequest { Text = \"Enter\", Enter = false }, token);\nif (!await wait.WaitAsync(TimeSpan.FromSeconds(5), token))\n{\n throw new InvalidOperationException(\"The pane did not signal that its output was ready.\");\n}\nIReadOnlyList lines = await pane.CaptureAsync(\n new CapturePaneRequest { JoinWrappedLines = true }, token);\n// Joining wrapped lines preserves terminal padding after the output.\nif (!lines.Any(line => string.Equals(line.TrimEnd(), marker, StringComparison.Ordinal)))\n{\n throw new InvalidOperationException(\"Capture did not contain the complete output line.\");\n}\nConsole.WriteLine(marker);\n\nstatic string QuoteShell(string value) => \"'\" + value.Replace(\"'\", \"'\\\\''\", StringComparison.Ordinal) + \"'\";\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"api capture ready\n"}]},"source":{"file":"src/LibTmux/Pane.Input.cs","line":89,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SendKeysAsync","product":"core","slug":"libtmux-pane-sendkeysasync"},{"id":"LibTmux.Pane.SendTextAsync","name":"SendTextAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"text","type":"string","doc":"The text to type."},{"name":"enter","type":"bool","default":"true","doc":"Whether Enter follows the text."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","raises":[{"type":"ArgumentException","doc":"The text contains NUL."},{"type":"LibTmuxException","doc":"Text was sent, but Enter failed. Its dispatch state is unknown, so the\nwhole request must not be retried."}]}],"doc":{"summary":"Types text into the pane."},"source":{"file":"src/LibTmux/Pane.Input.cs","line":114,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SendTextAsync","product":"core","slug":"libtmux-pane-sendtextasync"},{"id":"LibTmux.Pane.SendPrefixAsync","name":"SendPrefixAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"secondary","type":"bool","default":"false","doc":"Whether the secondary prefix is sent."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Sends the configured prefix key to the pane."},"source":{"file":"src/LibTmux/Pane.Input.cs","line":124,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SendPrefixAsync","product":"core","slug":"libtmux-pane-sendprefixasync"},{"id":"LibTmux.Pane.EnterAsync","name":"EnterAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the state afterwards."}],"doc":{"summary":"Presses Enter in the pane."},"source":{"file":"src/LibTmux/Pane.Input.cs","line":141,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.EnterAsync","product":"core","slug":"libtmux-pane-enterasync"},{"id":"LibTmux.Pane.ClearAsync","name":"ClearAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"A replacement handle carrying the state afterwards."}],"doc":{"summary":"Clears the pane by running the shell's reset."},"source":{"file":"src/LibTmux/Pane.Input.cs","line":153,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ClearAsync","product":"core","slug":"libtmux-pane-clearasync"},{"id":"LibTmux.Pane.ResetAsync","name":"ResetAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"A replacement handle carrying the state afterwards."}],"doc":{"summary":"Resets the pane's terminal state and drops its history.","body":"Python groups the two tmux commands so nothing runs between them. This\ndispatches them in turn, because the transport carries one command per\ncall and a trailing separator would reach tmux as data."},"source":{"file":"src/LibTmux/Pane.Input.cs","line":170,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ResetAsync","product":"core","slug":"libtmux-pane-resetasync"},{"id":"LibTmux.Pane.ClearHistoryAsync","name":"ClearHistoryAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"resetHyperlinks","type":"bool","default":"false","doc":"Whether stored hyperlinks are dropped too."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Drops the pane's scrollback history."},"source":{"file":"src/LibTmux/Pane.Input.cs","line":187,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ClearHistoryAsync","product":"core","slug":"libtmux-pane-clearhistoryasync"},{"id":"LibTmux.Pane.PasteBufferAsync","name":"PasteBufferAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"PasteBufferRequest?","default":"null","doc":"Which buffer and how."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Pastes a tmux buffer into the pane."},"source":{"file":"src/LibTmux/Pane.Input.cs","line":238,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.PasteBufferAsync","product":"core","slug":"libtmux-pane-pastebufferasync"},{"id":"LibTmux.Pane.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"Server","doc":{"summary":"Gets the server that owns this pane.","body":"Reading this uses the owner captured with the entity."},"source":{"file":"src/LibTmux/Pane.Relations.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Server","product":"core","slug":"libtmux-pane-server"},{"id":"LibTmux.Pane.Session","name":"Session","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"Session","doc":{"summary":"Gets the session containing this pane."},"source":{"file":"src/LibTmux/Pane.Relations.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Session","product":"core","slug":"libtmux-pane-session"},{"id":"LibTmux.Pane.Window","name":"Window","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"Window","doc":{"summary":"Gets the window containing this pane, with captured scalar state."},"source":{"file":"src/LibTmux/Pane.Relations.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Window","product":"core","slug":"libtmux-pane-window"},{"id":"LibTmux.Pane.RunAsync","name":"RunAsync","kind":"method","modifiers":["overload"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"command","type":"string","doc":"The shell command."},{"name":"timeout","type":"TimeSpan","doc":"How long to wait for it."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops waiting. A command already sent keeps running, so cancelling then raises\n saying it may have run, not ,\nwhich and F#'s Async.AwaitTask replace with a bare\n."}],"returns":"Task","returnsDoc":"The exit status and what the command printed.","raises":[{"type":"ArgumentException","doc":" is blank."},{"type":"TmuxPaneException","doc":"The pane is not at a POSIX shell, is in a mode, or its program has exited; or it changed during every read before the command was sent."},{"type":"TmuxObjectNotFoundException","doc":"tmux no longer has the pane."},{"type":"LibTmuxException","doc":"The command's result could not be read, or its private files could not be deleted; inspect the failure before retrying."}]},{"params":[{"name":"request","type":"PaneRunRequest","doc":"The command and how long to wait."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops waiting. A command already sent keeps running, so cancelling then raises\n saying it may have run, not ,\nwhich and F#'s Async.AwaitTask replace with a bare\n."}],"returns":"Task","returnsDoc":"The exit status and what the command printed.","raises":[{"type":"ArgumentOutOfRangeException","doc":"The timeout or output budget is invalid."},{"type":"TmuxPaneException","doc":"The pane is not at a POSIX shell, is in a mode, or its program has exited; or it changed during every read before the command was sent."},{"type":"TmuxObjectNotFoundException","doc":"tmux no longer has the pane."},{"type":"LibTmuxException","doc":"The command's result could not be read, or its private files could not be deleted; inspect the failure before retrying."}]}],"doc":{"summary":"Runs a shell command in the pane and waits for its exit status."},"source":{"file":"src/LibTmux/Pane.Running.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.RunAsync","product":"core","slug":"libtmux-pane-runasync"},{"id":"LibTmux.Pane.Options","name":"Options","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"TmuxOptions","doc":{"summary":"Gets the options of this pane."},"source":{"file":"src/LibTmux/Pane.Scopes.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Options","product":"core","slug":"libtmux-pane-options"},{"id":"LibTmux.Pane.Hooks","name":"Hooks","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"TmuxHooks","doc":{"summary":"Gets the hooks of this pane."},"source":{"file":"src/LibTmux/Pane.Scopes.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Hooks","product":"core","slug":"libtmux-pane-hooks"},{"id":"LibTmux.Pane.AtTop","name":"AtTop","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane touches the top of its window."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.AtTop","product":"core","slug":"libtmux-pane-attop"},{"id":"LibTmux.Pane.AtBottom","name":"AtBottom","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane touches the bottom of its window."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.AtBottom","product":"core","slug":"libtmux-pane-atbottom"},{"id":"LibTmux.Pane.AtLeft","name":"AtLeft","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane touches the left of its window."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.AtLeft","product":"core","slug":"libtmux-pane-atleft"},{"id":"LibTmux.Pane.AtRight","name":"AtRight","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane touches the right of its window."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.AtRight","product":"core","slug":"libtmux-pane-atright"},{"id":"LibTmux.Pane.Active","name":"Active","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane is its window's active pane."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Active","product":"core","slug":"libtmux-pane-active"},{"id":"LibTmux.Pane.Dead","name":"Dead","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane's program has exited and the pane remains.","body":"A pane outlives its program only while remain-on-exit is on."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Dead","product":"core","slug":"libtmux-pane-dead"},{"id":"LibTmux.Pane.DeadStatus","name":"DeadStatus","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"int?","doc":{"summary":"Gets the exit status of a dead pane's program.","body":"Null while the program runs, and when a signal ended it instead."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.DeadStatus","product":"core","slug":"libtmux-pane-deadstatus"},{"id":"LibTmux.Pane.HistorySize","name":"HistorySize","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"int","doc":{"summary":"Gets how many lines have scrolled into the pane's history.","body":"It changes with output, so a does not\npublish a view when only this changes."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.HistorySize","product":"core","slug":"libtmux-pane-historysize"},{"id":"LibTmux.Pane.Synchronized","name":"Synchronized","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"bool","doc":{"summary":"Gets whether keys typed into the pane go to every synchronized pane in its window."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Synchronized","product":"core","slug":"libtmux-pane-synchronized"},{"id":"LibTmux.Pane.InMode","name":"InMode","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane is in a mode, such as copy mode.","body":"tmux reports how many modes are stacked on the pane; any number but zero is true."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.InMode","product":"core","slug":"libtmux-pane-inmode"},{"id":"LibTmux.Pane.ProcessId","name":"ProcessId","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"int","doc":{"summary":"Gets the process ID of the program the pane started.","body":"A dead pane keeps the ID of the program that exited."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ProcessId","product":"core","slug":"libtmux-pane-processid"},{"id":"LibTmux.Pane.Height","name":"Height","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"int","doc":{"summary":"Gets the pane height captured with this handle."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Height","product":"core","slug":"libtmux-pane-height"},{"id":"LibTmux.Pane.Width","name":"Width","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"int","doc":{"summary":"Gets the pane width captured with this handle."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Width","product":"core","slug":"libtmux-pane-width"},{"id":"LibTmux.Pane.Left","name":"Left","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"int","doc":{"summary":"Gets the pane's left offset, in cells, from its window's edge."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Left","product":"core","slug":"libtmux-pane-left"},{"id":"LibTmux.Pane.Top","name":"Top","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"int","doc":{"summary":"Gets the pane's top offset, in cells, from its window's edge."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Top","product":"core","slug":"libtmux-pane-top"},{"id":"LibTmux.Pane.Index","name":"Index","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"int","doc":{"summary":"Gets the index this pane holds in its window."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":67,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Index","product":"core","slug":"libtmux-pane-index"},{"id":"LibTmux.Pane.Title","name":"Title","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"string?","doc":{"summary":"Gets the pane title captured with this handle."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Title","product":"core","slug":"libtmux-pane-title"},{"id":"LibTmux.Pane.CurrentCommand","name":"CurrentCommand","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"string?","doc":{"summary":"Gets the foreground command captured with this pane.","body":"Returns null for a captured unavailable value. Reading this never reaches tmux."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.CurrentCommand","product":"core","slug":"libtmux-pane-currentcommand"},{"id":"LibTmux.Pane.CurrentPath","name":"CurrentPath","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"string?","doc":{"summary":"Gets the current working directory captured with this pane.","body":"Returns null for a captured unavailable value. Reading this never reaches tmux."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":80,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.CurrentPath","product":"core","slug":"libtmux-pane-currentpath"},{"id":"LibTmux.Pane.Tty","name":"Tty","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"string?","doc":{"summary":"Gets the terminal device the pane's program reads and writes, such as /dev/pts/3."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":84,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.Tty","product":"core","slug":"libtmux-pane-tty"},{"id":"LibTmux.Pane.StartCommand","name":"StartCommand","kind":"property","modifiers":[],"parent":"LibTmux.Pane","signatures":[],"type":"string?","doc":{"summary":"Gets the command the pane started, as tmux prints it, or empty for the default shell.","body":"tmux quotes a command given as one string, so sleep 60 reads \"sleep 60\"."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":89,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.StartCommand","product":"core","slug":"libtmux-pane-startcommand"},{"id":"LibTmux.Pane.RefreshAsync","name":"RefreshAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying current state."}],"doc":{"summary":"Re-reads this pane from tmux."},"source":{"file":"src/LibTmux/Pane.Snapshot.cs","line":99,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.RefreshAsync","product":"core","slug":"libtmux-pane-refreshasync"},{"id":"LibTmux.Pane.BreakAsync","name":"BreakAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"windowName","type":"string?","default":"null","doc":"The new window's name."},{"name":"detach","type":"bool","default":"true","doc":"Whether the new window is left unselected."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The window the pane now lives in."}],"doc":{"summary":"Moves this pane out into a window of its own."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":153,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.BreakAsync","product":"core","slug":"libtmux-pane-breakasync"},{"id":"LibTmux.Pane.SplitAsync","name":"SplitAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"SplitPaneRequest?","default":"null","doc":"How to split."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The created pane."}],"doc":{"summary":"Splits this pane.","examples":[{"lang":"console","intro":"Create entities directly inside an owned server scope, then read the session and window children. The outer scope stops its daemon and all created entities. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/CreateWindowPane.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-createwindowpane-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// The outer server scope owns everything created directly inside this daemon.\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nSession session = await owned.Value.CreateSessionAsync(\n new NewSessionRequest { Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\" }, token);\nWindow window = await session.CreateWindowAsync(\n new NewWindowRequest { Name = \"editor\", Command = \"/bin/cat\" }, token);\nPane original = (await window.GetPanesAsync(token)).Single();\nPane added = await original.SplitAsync(\n new SplitPaneRequest { Direction = PaneDirection.Right, Command = \"/bin/cat\" }, token);\n\nIReadOnlyList windows = await session.GetWindowsAsync(token);\nIReadOnlyList panes = await session.GetPanesAsync(token);\nif (windows.Count != 2 || panes.Count != 3 || added.Id == original.Id)\n{\n throw new InvalidOperationException(\"Expected two windows and three distinct panes.\");\n}\n\nConsole.WriteLine($\"Created session {session.Name} and window {window.Name}.\");\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Created session demo and window editor.\nWindows: 2; panes: 3\n"}]},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":223,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SplitAsync","product":"core","slug":"libtmux-pane-splitasync"},{"id":"LibTmux.Pane.CreatePaneAsync","name":"CreatePaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"NewPaneRequest?","default":"null","doc":"The pane to create."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The created pane.","raises":[{"type":"TmuxVersionTooLowException","doc":"The server predates tmux 3.7, which introduced the command."}]}],"doc":{"summary":"Creates a floating pane against this one."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":243,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.CreatePaneAsync","product":"core","slug":"libtmux-pane-createpaneasync"},{"id":"LibTmux.Pane.JoinAsync","name":"JoinAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"MovePaneRequest","doc":"Where the pane lands."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Joins this pane into another window."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":258,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.JoinAsync","product":"core","slug":"libtmux-pane-joinasync"},{"id":"LibTmux.Pane.MoveAsync","name":"MoveAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"MovePaneRequest","doc":"Where the pane lands."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Moves this pane to another position."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":267,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.MoveAsync","product":"core","slug":"libtmux-pane-moveasync"},{"id":"LibTmux.Pane.SwapAsync","name":"SwapAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"SwapPaneRequest","doc":"Which pane to swap with."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Swaps this pane with another."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":276,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SwapAsync","product":"core","slug":"libtmux-pane-swapasync"},{"id":"LibTmux.Pane.KillAsync","name":"KillAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"allExcept","type":"bool","default":"false","doc":"Whether every other pane in the window is stopped instead."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Stops this pane."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":289,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.KillAsync","product":"core","slug":"libtmux-pane-killasync"},{"id":"LibTmux.Pane.RespawnAsync","name":"RespawnAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"RespawnRequest?","default":"null","doc":"What to respawn, or null to reuse the original."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Restarts the command running in this pane.","body":"tmux refuses to respawn a pane that is still running unless the request\nkills it first."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":310,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.RespawnAsync","product":"core","slug":"libtmux-pane-respawnasync"},{"id":"LibTmux.Pane.ResizeAsync","name":"ResizeAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"ResizePaneRequest","doc":"The size to apply."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new size."}],"doc":{"summary":"Resizes this pane.","body":"tmux clamps a size that does not fit rather than refusing it, so the\nresult may differ from what was asked for."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":328,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.ResizeAsync","product":"core","slug":"libtmux-pane-resizeasync"},{"id":"LibTmux.Pane.SetWidthAsync","name":"SetWidthAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"width","type":"int","doc":"The width in cells."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new size."}],"doc":{"summary":"Sets this pane's width."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":346,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SetWidthAsync","product":"core","slug":"libtmux-pane-setwidthasync"},{"id":"LibTmux.Pane.SetHeightAsync","name":"SetHeightAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"height","type":"int","doc":"The height in cells."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new size."}],"doc":{"summary":"Sets this pane's height."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":356,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SetHeightAsync","product":"core","slug":"libtmux-pane-setheightasync"},{"id":"LibTmux.Pane.SetTitleAsync","name":"SetTitleAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"title","type":"string","doc":"The new title."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new title."}],"doc":{"summary":"Sets this pane's title.","body":"tmux expands the title as a format, so a # in it does not survive\nverbatim."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":370,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SetTitleAsync","product":"core","slug":"libtmux-pane-settitleasync"},{"id":"LibTmux.Pane.SelectAsync","name":"SelectAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"request","type":"SelectPaneRequest?","default":"null","doc":"How to select it."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the state afterwards."}],"doc":{"summary":"Selects this pane."},"source":{"file":"src/LibTmux/Pane.Topology.cs","line":386,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SelectAsync","product":"core","slug":"libtmux-pane-selectasync"},{"id":"LibTmux.Pane.WaitForTextAsync","name":"WaitForTextAsync","kind":"method","modifiers":["overload"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"text","type":"string","doc":"The text to wait for, matched within a line."},{"name":"timeout","type":"TimeSpan","doc":"How long to wait."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops the wait."}],"returns":"Task","returnsDoc":"How the wait ended.","raises":[{"type":"ArgumentException","doc":"The text is empty or contains a line break."},{"type":"ArgumentOutOfRangeException","doc":"The timeout is negative or longer than 49 days."},{"type":"TmuxTransportException","doc":"Control observation failed and polling was not enabled."},{"type":"TmuxObjectNotFoundException","doc":"tmux no longer has the pane when the wait begins."}]},{"params":[{"name":"request","type":"PaneWaitRequest","doc":"The patterns and time allowed."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops the wait."}],"returns":"Task","returnsDoc":"How the wait ended.","raises":[{"type":"ArgumentOutOfRangeException","doc":"The timeout is negative or longer than 49 days."},{"type":"TmuxTransportException","doc":"Control observation failed and polling was not enabled."},{"type":"TmuxObjectNotFoundException","doc":"tmux no longer has the pane when the wait begins."},{"type":"RegexMatchTimeoutException","doc":"A pattern exceeded its own match timeout."}]}],"doc":{"summary":"Waits until the pane shows literal text.","body":"Text already on screen ends the wait at once as\n. Matching is line by line,\nso the text cannot span lines."},"source":{"file":"src/LibTmux/Pane.Waiting.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.WaitForTextAsync","product":"core","slug":"libtmux-pane-waitfortextasync"},{"id":"LibTmux.Pane.SendTextAndWaitAsync","name":"SendTextAndWaitAsync","kind":"method","modifiers":[],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"line","type":"string","doc":"The line to type, sent verbatim."},{"name":"text","type":"string","doc":"The text to wait for, matched literally."},{"name":"timeout","type":"TimeSpan","doc":"How long to wait, counted from the call."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops the wait; a line already sent stays sent."}],"returns":"Task","returnsDoc":"How the wait ended.","raises":[{"type":"ArgumentNullException","doc":" is null."},{"type":"ArgumentException","doc":"The match text is empty or spans lines, or the typed line exceeds 65536 UTF-8 bytes."},{"type":"ArgumentOutOfRangeException","doc":"The timeout is negative or longer than 49 days."},{"type":"IOException","doc":"Echo projection exceeds its bounded work."},{"type":"RegexMatchTimeoutException","doc":"Echo matching exceeds its finite regex time."},{"type":"TmuxPaneException","doc":"The pane's program had already exited, or the pane changed during every read until the timeout, so nothing was sent."},{"type":"TmuxObjectNotFoundException","doc":"tmux no longer has the pane."},{"type":"LibTmuxException","doc":"The line was typed but Enter failed. The pane may already have acted\non it; do not retry the whole call."}]}],"doc":{"summary":"Types a line, presses Enter, and waits for a later line to contain the text.","body":" with 's\nkeys: the screen before the line is typed never ends the wait, and the\nline's echo is discounted. The typed line may be at most 65536 UTF-8\nbytes so echo projection fits within the wait's work budget."},"source":{"file":"src/LibTmux/Pane.Waiting.cs","line":95,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SendTextAndWaitAsync","product":"core","slug":"libtmux-pane-sendtextandwaitasync"},{"id":"LibTmux.Pane.SendKeysAndWaitAsync","name":"SendKeysAndWaitAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"keys","type":"SendKeysRequest","doc":"What to type."},{"name":"wait","type":"PaneWaitRequest","doc":"The patterns that end the wait, and how long to wait."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops the wait; keys already sent stay sent."}],"returns":"Task","returnsDoc":"How the wait ended.","raises":[{"type":"ArgumentException","doc":"The request has no patterns or typed literal text exceeds 65536 UTF-8 bytes."},{"type":"ArgumentOutOfRangeException","doc":"The timeout is negative or longer than 49 days."},{"type":"IOException","doc":"Echo projection exceeds its bounded work."},{"type":"RegexMatchTimeoutException","doc":"Echo matching exceeds its finite regex time."},{"type":"TmuxPaneException","doc":"The pane's program had already exited, or the pane changed during every read until the timeout, so nothing was sent."},{"type":"TmuxObjectNotFoundException","doc":"tmux no longer has the pane."},{"type":"LibTmuxException","doc":"The text was sent but a requested Enter failed. The pane may already\nhave acted on the text; do not retry the whole call."}]}],"doc":{"summary":"Sends keys to the pane and waits for what it prints in response.","body":"The wait reads the screen before the keys go, so output that follows at\nonce is not missed, and judges only what the pane prints afterwards:\ntext already on screen never ends it. A shell echoes typed text back, so\nliteral text (, as\n sends) is removed from what the pane shows\nbefore matching, including the part of a line the shell has echoed so\nfar. Waiting for done after typing echo done therefore\nwaits for the command's output, not for the line that was typed.\n\nThe removal is by text: output identical to a typed line, as a whole\nword, is removed too. Key names, and text sent with\n,\n or a copy-mode command, are not\nremoved.\n\nA typed line the pane wrapped onto a second row is still recognised.\nLike ,\nthe wait sleeps on the pane's output through a control-mode client.\nTyped literal text may be at most 65536 UTF-8 bytes; ordinary\n has no\necho-projection limit."},"source":{"file":"src/LibTmux/Pane.Waiting.cs","line":151,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.SendKeysAndWaitAsync","product":"core","slug":"libtmux-pane-sendkeysandwaitasync"},{"id":"LibTmux.Pane.WaitUntilAsync","name":"WaitUntilAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Pane","signatures":[{"params":[{"name":"condition","type":"Func, bool>","doc":"Judges the visible rows, top to bottom."},{"name":"timeout","type":"TimeSpan","doc":"How long to wait."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops the wait."}],"returns":"Task","returnsDoc":"How the wait ended.","raises":[{"type":"ArgumentOutOfRangeException","doc":"The timeout is negative or longer than 49 days."},{"type":"TmuxTransportException","doc":"Control observation failed."},{"type":"TmuxObjectNotFoundException","doc":"tmux no longer has the pane when the wait begins."}]}],"doc":{"summary":"Waits until a condition holds over the rows the pane shows.","body":"The condition is tested when the wait begins and again each time the\npane prints or changes state, so a screen that is already right ends the\nwait at once as . Unlike\n, it\nsees the whole screen, including rows a full-screen program redraws.\nA program that exits leaving a screen the condition accepts ends the\nwait as , not\n."},"source":{"file":"src/LibTmux/Pane.Waiting.cs","line":191,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Pane.WaitUntilAsync","product":"core","slug":"libtmux-pane-waituntilasync"},{"id":"LibTmux.PaneId","name":"PaneId","kind":"struct","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Represents a generation-independent tmux pane identifier."},"source":{"file":"src/LibTmux/PaneId.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneId","product":"core","slug":"libtmux-paneid"},{"id":"LibTmux.PaneId.PaneId","name":"PaneId","kind":"method","modifiers":[],"parent":"LibTmux.PaneId","signatures":[{"params":[{"name":"value","type":"int"}]}],"doc":{"summary":"Initializes a pane identifier."},"source":{"file":"src/LibTmux/PaneId.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneId.PaneId","product":"core","slug":"libtmux-paneid-paneid"},{"id":"LibTmux.PaneId.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.PaneId","signatures":[],"type":"int","doc":{"summary":"Gets the nonnegative numeric value."},"source":{"file":"src/LibTmux/PaneId.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneId.Value","product":"core","slug":"libtmux-paneid-value"},{"id":"LibTmux.PaneId.Parse","name":"Parse","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.PaneId","signatures":[{"params":[{"name":"text","type":"string"}],"returns":"PaneId"},{"params":[{"name":"text","type":"ReadOnlySpan","doc":"The text to parse."}],"returns":"PaneId","returnsDoc":"The parsed identifier.","raises":[{"type":"FormatException","doc":"The text is not a canonical pane identifier."}]}],"doc":{"summary":"Parses a prefixed pane identifier."},"source":{"file":"src/LibTmux/PaneId.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneId.Parse","product":"core","slug":"libtmux-paneid-parse"},{"id":"LibTmux.PaneId.TryParse","name":"TryParse","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.PaneId","signatures":[{"params":[{"name":"text","type":"string?"},{"name":"result","type":"PaneId"}],"returns":"bool"},{"params":[{"name":"text","type":"ReadOnlySpan","doc":"The text to parse."},{"name":"result","type":"PaneId","doc":"The parsed identifier when this succeeds."}],"returns":"bool","returnsDoc":" when the text was a canonical identifier."}],"doc":{"summary":"Tries to parse a prefixed pane identifier."},"source":{"file":"src/LibTmux/PaneId.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneId.TryParse","product":"core","slug":"libtmux-paneid-tryparse"},{"id":"LibTmux.PaneId.CompareTo","name":"CompareTo","kind":"method","modifiers":[],"parent":"LibTmux.PaneId","signatures":[{"params":[{"name":"other","type":"PaneId","doc":"The identifier to compare against."}],"returns":"int","returnsDoc":"A negative value, zero, or a positive value."}],"doc":{"summary":"Orders this identifier against another numerically.","body":"tmux hands out pane identifiers in increasing order, so the ordering\nis oldest first. Without it OrderBy and Array.Sort throw\nrather than sorting."},"source":{"file":"src/LibTmux/PaneId.cs","line":76,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneId.CompareTo","product":"core","slug":"libtmux-paneid-compareto"},{"id":"LibTmux.PaneId.ToString","name":"ToString","kind":"method","modifiers":[],"parent":"LibTmux.PaneId","signatures":[{"params":[],"returns":"string"}],"doc":{"summary":"Returns the canonical prefixed identifier."},"source":{"file":"src/LibTmux/PaneId.cs","line":124,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneId.ToString","product":"core","slug":"libtmux-paneid-tostring"},{"id":"LibTmux.PsmuxCaptureOptions","name":"PsmuxCaptureOptions","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Chooses the psmux pane text that can be captured safely."},"source":{"file":"src/LibTmux/Psmux/PsmuxCaptureOptions.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxCaptureOptions","product":"core","slug":"libtmux-psmuxcaptureoptions"},{"id":"LibTmux.PsmuxCaptureOptions.PsmuxCaptureOptions","name":"PsmuxCaptureOptions","kind":"method","modifiers":[],"parent":"LibTmux.PsmuxCaptureOptions","signatures":[{"params":[{"name":"startLine","type":"CapturePanePosition?","default":"null","doc":"The first line, or for psmux's default."},{"name":"endLine","type":"CapturePanePosition?","default":"null","doc":"The last line, or for psmux's default."},{"name":"escapeSequences","type":"bool","default":"false","doc":"Whether terminal escape sequences are preserved."},{"name":"joinWrappedLines","type":"bool","default":"false","doc":"Whether wrapped screen rows are joined."}]}],"doc":{"summary":"Initializes a bounded psmux capture."},"source":{"file":"src/LibTmux/Psmux/PsmuxCaptureOptions.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxCaptureOptions.PsmuxCaptureOptions","product":"core","slug":"libtmux-psmuxcaptureoptions-psmuxcaptureoptions"},{"id":"LibTmux.PsmuxCaptureOptions.StartLine","name":"StartLine","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxCaptureOptions","signatures":[],"type":"CapturePanePosition?","doc":{"summary":"Gets the first line to capture."},"source":{"file":"src/LibTmux/Psmux/PsmuxCaptureOptions.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxCaptureOptions.StartLine","product":"core","slug":"libtmux-psmuxcaptureoptions-startline"},{"id":"LibTmux.PsmuxCaptureOptions.EndLine","name":"EndLine","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxCaptureOptions","signatures":[],"type":"CapturePanePosition?","doc":{"summary":"Gets the last line to capture."},"source":{"file":"src/LibTmux/Psmux/PsmuxCaptureOptions.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxCaptureOptions.EndLine","product":"core","slug":"libtmux-psmuxcaptureoptions-endline"},{"id":"LibTmux.PsmuxCaptureOptions.EscapeSequences","name":"EscapeSequences","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxCaptureOptions","signatures":[],"type":"bool","doc":{"summary":"Gets whether terminal escape sequences are preserved."},"source":{"file":"src/LibTmux/Psmux/PsmuxCaptureOptions.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxCaptureOptions.EscapeSequences","product":"core","slug":"libtmux-psmuxcaptureoptions-escapesequences"},{"id":"LibTmux.PsmuxCaptureOptions.JoinWrappedLines","name":"JoinWrappedLines","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxCaptureOptions","signatures":[],"type":"bool","doc":{"summary":"Gets whether wrapped screen rows are joined."},"source":{"file":"src/LibTmux/Psmux/PsmuxCaptureOptions.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxCaptureOptions.JoinWrappedLines","product":"core","slug":"libtmux-psmuxcaptureoptions-joinwrappedlines"},{"id":"LibTmux.PsmuxConnectionOptions","name":"PsmuxConnectionOptions","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Configures the bounded psmux query preview.","body":"The executable is verified before every client launch. The already-running\npsmux server must have been provisioned separately with the same clean build,\ndata directory, namespace, and an alias-free configuration."},"source":{"file":"src/LibTmux/Psmux/PsmuxConnectionOptions.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxConnectionOptions","product":"core","slug":"libtmux-psmuxconnectionoptions"},{"id":"LibTmux.PsmuxConnectionOptions.PsmuxConnectionOptions","name":"PsmuxConnectionOptions","kind":"method","modifiers":[],"parent":"LibTmux.PsmuxConnectionOptions","signatures":[{"params":[{"name":"executablePath","type":"string","doc":"The fully qualified psmux.exe path on a fixed local Windows drive.\nUse its /mnt/... path when WSL launches psmux."},{"name":"expectedBinarySha256","type":"string","doc":"The exact audited client SHA-256 exposed by\n."},{"name":"dataDirectory","type":"string","doc":"A canonical, absolute data-directory path on a fixed local Windows drive."},{"name":"namespaceName","type":"string","doc":"A dedicated non-default -L namespace containing exactly one session."},{"name":"logger","type":"ILogger?","default":"null","doc":"The optional connection logger."}],"raises":[{"type":"ArgumentException","doc":"A path, hash, or namespace is absent, malformed, ambiguous, not fixed-drive,\nor not isolated."}]}],"doc":{"summary":"Initializes one explicit psmux endpoint."},"source":{"file":"src/LibTmux/Psmux/PsmuxConnectionOptions.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxConnectionOptions.PsmuxConnectionOptions","product":"core","slug":"libtmux-psmuxconnectionoptions-psmuxconnectionoptions"},{"id":"LibTmux.PsmuxConnectionOptions.ExecutablePath","name":"ExecutablePath","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxConnectionOptions","signatures":[],"type":"string","doc":{"summary":"Gets the local absolute psmux client executable path."},"source":{"file":"src/LibTmux/Psmux/PsmuxConnectionOptions.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxConnectionOptions.ExecutablePath","product":"core","slug":"libtmux-psmuxconnectionoptions-executablepath"},{"id":"LibTmux.PsmuxConnectionOptions.ExpectedBinarySha256","name":"ExpectedBinarySha256","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxConnectionOptions","signatures":[],"type":"string","doc":{"summary":"Gets the expected executable SHA-256 in lowercase hexadecimal."},"source":{"file":"src/LibTmux/Psmux/PsmuxConnectionOptions.cs","line":71,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxConnectionOptions.ExpectedBinarySha256","product":"core","slug":"libtmux-psmuxconnectionoptions-expectedbinarysha256"},{"id":"LibTmux.PsmuxConnectionOptions.DataDirectory","name":"DataDirectory","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxConnectionOptions","signatures":[],"type":"string","doc":{"summary":"Gets the canonical isolated data-directory path on a fixed local Windows drive."},"source":{"file":"src/LibTmux/Psmux/PsmuxConnectionOptions.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxConnectionOptions.DataDirectory","product":"core","slug":"libtmux-psmuxconnectionoptions-datadirectory"},{"id":"LibTmux.PsmuxConnectionOptions.NamespaceName","name":"NamespaceName","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxConnectionOptions","signatures":[],"type":"string","doc":{"summary":"Gets the explicit non-default psmux namespace."},"source":{"file":"src/LibTmux/Psmux/PsmuxConnectionOptions.cs","line":77,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxConnectionOptions.NamespaceName","product":"core","slug":"libtmux-psmuxconnectionoptions-namespacename"},{"id":"LibTmux.PsmuxConnectionOptions.Logger","name":"Logger","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxConnectionOptions","signatures":[],"type":"ILogger?","doc":{"summary":"Gets the optional connection logger."},"source":{"file":"src/LibTmux/Psmux/PsmuxConnectionOptions.cs","line":80,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxConnectionOptions.Logger","product":"core","slug":"libtmux-psmuxconnectionoptions-logger"},{"id":"LibTmux.PsmuxPane","name":"PsmuxPane","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"An immutable observation of one psmux pane.","body":"This observation is bound to 's captured generation.\nQueries throw after replacement;\ncall to obtain a fresh observation."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane","product":"core","slug":"libtmux-psmuxpane"},{"id":"LibTmux.PsmuxPane.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxPane","signatures":[],"type":"PsmuxServer","doc":{"summary":"Gets the psmux endpoint that produced this observation."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane.Server","product":"core","slug":"libtmux-psmuxpane-server"},{"id":"LibTmux.PsmuxPane.Id","name":"Id","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxPane","signatures":[],"type":"PaneId","doc":{"summary":"Gets the captured pane identifier."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane.Id","product":"core","slug":"libtmux-psmuxpane-id"},{"id":"LibTmux.PsmuxPane.SessionId","name":"SessionId","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxPane","signatures":[],"type":"SessionId","doc":{"summary":"Gets the captured parent session identifier."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane.SessionId","product":"core","slug":"libtmux-psmuxpane-sessionid"},{"id":"LibTmux.PsmuxPane.WindowId","name":"WindowId","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxPane","signatures":[],"type":"WindowId","doc":{"summary":"Gets the captured parent window identifier."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane.WindowId","product":"core","slug":"libtmux-psmuxpane-windowid"},{"id":"LibTmux.PsmuxPane.Index","name":"Index","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxPane","signatures":[],"type":"int","doc":{"summary":"Gets the captured pane index."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane.Index","product":"core","slug":"libtmux-psmuxpane-index"},{"id":"LibTmux.PsmuxPane.Width","name":"Width","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxPane","signatures":[],"type":"int","doc":{"summary":"Gets the captured width in columns."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane.Width","product":"core","slug":"libtmux-psmuxpane-width"},{"id":"LibTmux.PsmuxPane.Height","name":"Height","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxPane","signatures":[],"type":"int","doc":{"summary":"Gets the captured height in rows."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane.Height","product":"core","slug":"libtmux-psmuxpane-height"},{"id":"LibTmux.PsmuxPane.Title","name":"Title","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxPane","signatures":[],"type":"string?","doc":{"summary":"Gets the captured pane title."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane.Title","product":"core","slug":"libtmux-psmuxpane-title"},{"id":"LibTmux.PsmuxPane.CaptureAsync","name":"CaptureAsync","kind":"method","modifiers":[],"parent":"LibTmux.PsmuxPane","signatures":[{"params":[{"name":"options","type":"PsmuxCaptureOptions?","default":"null","doc":"The typed capture range and rendering choices."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the psmux query."}],"returns":"Task>","returnsDoc":"The captured lines.","raises":[{"type":"InvalidOperationException","doc":"The selected namespace has no live session."},{"type":"StaleServerGenerationException","doc":"The sole session was replaced after this observation was read."},{"type":"NotSupportedException","doc":"The selected namespace contains more than one session."},{"type":"TmuxObjectNotFoundException","doc":"The observed pane is no longer visible during the preflight."},{"type":"LibTmuxException","doc":"The verified client could not complete the query."}]}],"doc":{"summary":"Reads this pane's text through the audited capture subset.","body":"Target consistency is best effort. An external process can remove the\npane between LibTmux's existence preflight and psmux's capture."},"source":{"file":"src/LibTmux/Psmux/PsmuxPane.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxPane.CaptureAsync","product":"core","slug":"libtmux-psmuxpane-captureasync"},{"id":"LibTmux.PsmuxServer","name":"PsmuxServer","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reads one isolated, single-session psmux namespace.","body":"This type exposes only the query operations audited for the pinned psmux\nbuild. It is intentionally separate from , whose\nlifecycle, mutation, chaining, and control-mode contracts require real tmux.\nEach observation is bound to the session generation seen at connection time.\nUse to observe a replacement session."},"source":{"file":"src/LibTmux/Psmux/PsmuxServer.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxServer","product":"core","slug":"libtmux-psmuxserver"},{"id":"LibTmux.PsmuxServer.ConnectionOptions","name":"ConnectionOptions","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxServer","signatures":[],"type":"PsmuxConnectionOptions","doc":{"summary":"Gets the connection settings used for this observation."},"source":{"file":"src/LibTmux/Psmux/PsmuxServer.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxServer.ConnectionOptions","product":"core","slug":"libtmux-psmuxserver-connectionoptions"},{"id":"LibTmux.PsmuxServer.Version","name":"Version","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxServer","signatures":[],"type":"TmuxVersion","doc":{"summary":"Gets the psmux compatibility version reported at connection time."},"source":{"file":"src/LibTmux/Psmux/PsmuxServer.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxServer.Version","product":"core","slug":"libtmux-psmuxserver-version"},{"id":"LibTmux.PsmuxServer.ConnectAsync","name":"ConnectAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.PsmuxServer","signatures":[{"params":[{"name":"options","type":"PsmuxConnectionOptions","doc":"The executable trust and isolated endpoint settings."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels process startup and discovery."}],"returns":"Task","returnsDoc":"A query-only psmux server observation.","raises":[{"type":"ArgumentNullException","doc":" is null."},{"type":"InvalidOperationException","doc":"The selected namespace has no live session."},{"type":"NotSupportedException","doc":"The executable, build, namespace, session count, or requested behavior is outside\nthe audited preview contract."},{"type":"LibTmuxException","doc":"The verified client could not complete discovery."}]}],"doc":{"summary":"Connects to a separately provisioned psmux namespace."},"source":{"file":"src/LibTmux/Psmux/PsmuxServer.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxServer.ConnectAsync","product":"core","slug":"libtmux-psmuxserver-connectasync"},{"id":"LibTmux.PsmuxServer.GetSessionAsync","name":"GetSessionAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.PsmuxServer","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the psmux query."}],"returns":"Task","returnsDoc":"The current immutable session observation.","raises":[{"type":"InvalidOperationException","doc":"The selected namespace no longer has one live session."},{"type":"StaleServerGenerationException","doc":"The sole session was replaced after this server was connected."},{"type":"NotSupportedException","doc":"The selected namespace contains more than one session."},{"type":"LibTmuxException","doc":"The verified client could not complete the query."}]}],"doc":{"summary":"Reads the sole visible session."},"source":{"file":"src/LibTmux/Psmux/PsmuxServer.cs","line":85,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxServer.GetSessionAsync","product":"core","slug":"libtmux-psmuxserver-getsessionasync"},{"id":"LibTmux.PsmuxServer.GetWindowsAsync","name":"GetWindowsAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.PsmuxServer","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the psmux query."}],"returns":"Task>","returnsDoc":"Current immutable window observations.","raises":[{"type":"InvalidOperationException","doc":"The selected namespace has no live session."},{"type":"StaleServerGenerationException","doc":"The sole session was replaced after this server was connected."},{"type":"NotSupportedException","doc":"The selected namespace contains more than one session."},{"type":"LibTmuxException","doc":"The verified client could not complete the query."}]}],"doc":{"summary":"Reads every window in the sole session."},"source":{"file":"src/LibTmux/Psmux/PsmuxServer.cs","line":113,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxServer.GetWindowsAsync","product":"core","slug":"libtmux-psmuxserver-getwindowsasync"},{"id":"LibTmux.PsmuxServer.GetPanesAsync","name":"GetPanesAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.PsmuxServer","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the psmux query."}],"returns":"Task>","returnsDoc":"Current immutable pane observations.","raises":[{"type":"InvalidOperationException","doc":"The selected namespace has no live session."},{"type":"StaleServerGenerationException","doc":"The sole session was replaced after this server was connected."},{"type":"NotSupportedException","doc":"The selected namespace contains more than one session."},{"type":"LibTmuxException","doc":"The verified client could not complete the query."}]}],"doc":{"summary":"Reads every pane in the sole session."},"source":{"file":"src/LibTmux/Psmux/PsmuxServer.cs","line":135,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxServer.GetPanesAsync","product":"core","slug":"libtmux-psmuxserver-getpanesasync"},{"id":"LibTmux.PsmuxServer.RefreshAsync","name":"RefreshAsync","kind":"method","modifiers":[],"parent":"LibTmux.PsmuxServer","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels process startup and discovery."}],"returns":"Task","returnsDoc":"A replacement observation using the same endpoint settings.","raises":[{"type":"InvalidOperationException","doc":"The selected namespace has no live session."},{"type":"NotSupportedException","doc":"The executable, build, namespace, or session count is outside the preview contract."},{"type":"LibTmuxException","doc":"The verified client could not complete discovery."}]}],"doc":{"summary":"Reconnects and returns a fresh server observation."},"source":{"file":"src/LibTmux/Psmux/PsmuxServer.cs","line":154,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxServer.RefreshAsync","product":"core","slug":"libtmux-psmuxserver-refreshasync"},{"id":"LibTmux.PsmuxSession","name":"PsmuxSession","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"An immutable observation of the sole psmux session.","body":"This observation is bound to 's captured generation.\nQuery methods throw after replacement;\ncall to obtain a fresh observation."},"source":{"file":"src/LibTmux/Psmux/PsmuxSession.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxSession","product":"core","slug":"libtmux-psmuxsession"},{"id":"LibTmux.PsmuxSession.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxSession","signatures":[],"type":"PsmuxServer","doc":{"summary":"Gets the psmux endpoint that produced this observation."},"source":{"file":"src/LibTmux/Psmux/PsmuxSession.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxSession.Server","product":"core","slug":"libtmux-psmuxsession-server"},{"id":"LibTmux.PsmuxSession.Id","name":"Id","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxSession","signatures":[],"type":"SessionId","doc":{"summary":"Gets the captured session identifier."},"source":{"file":"src/LibTmux/Psmux/PsmuxSession.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxSession.Id","product":"core","slug":"libtmux-psmuxsession-id"},{"id":"LibTmux.PsmuxSession.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxSession","signatures":[],"type":"string","doc":{"summary":"Gets the captured session name."},"source":{"file":"src/LibTmux/Psmux/PsmuxSession.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxSession.Name","product":"core","slug":"libtmux-psmuxsession-name"},{"id":"LibTmux.PsmuxSession.Attached","name":"Attached","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxSession","signatures":[],"type":"bool","doc":{"summary":"Gets whether a client was attached when the session was read."},"source":{"file":"src/LibTmux/Psmux/PsmuxSession.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxSession.Attached","product":"core","slug":"libtmux-psmuxsession-attached"},{"id":"LibTmux.PsmuxSession.GetWindowsAsync","name":"GetWindowsAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.PsmuxSession","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the psmux query."}],"returns":"Task>","returnsDoc":"Current immutable window observations.","raises":[{"type":"InvalidOperationException","doc":"The selected namespace has no live session."},{"type":"StaleServerGenerationException","doc":"The sole session was replaced after this observation was read."},{"type":"NotSupportedException","doc":"The selected namespace contains more than one session."},{"type":"LibTmuxException","doc":"The verified client could not complete the query."}]}],"doc":{"summary":"Reads the session's current windows."},"source":{"file":"src/LibTmux/Psmux/PsmuxSession.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxSession.GetWindowsAsync","product":"core","slug":"libtmux-psmuxsession-getwindowsasync"},{"id":"LibTmux.PsmuxSession.GetPanesAsync","name":"GetPanesAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.PsmuxSession","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the psmux query."}],"returns":"Task>","returnsDoc":"Current immutable pane observations.","raises":[{"type":"InvalidOperationException","doc":"The selected namespace has no live session."},{"type":"StaleServerGenerationException","doc":"The sole session was replaced after this observation was read."},{"type":"NotSupportedException","doc":"The selected namespace contains more than one session."},{"type":"LibTmuxException","doc":"The verified client could not complete the query."}]}],"doc":{"summary":"Reads the session's current panes."},"source":{"file":"src/LibTmux/Psmux/PsmuxSession.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxSession.GetPanesAsync","product":"core","slug":"libtmux-psmuxsession-getpanesasync"},{"id":"LibTmux.PsmuxWindow","name":"PsmuxWindow","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"An immutable observation of one psmux window.","body":"This observation is bound to 's captured generation.\nQuery methods throw after replacement;\ncall to obtain a fresh observation."},"source":{"file":"src/LibTmux/Psmux/PsmuxWindow.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxWindow","product":"core","slug":"libtmux-psmuxwindow"},{"id":"LibTmux.PsmuxWindow.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxWindow","signatures":[],"type":"PsmuxServer","doc":{"summary":"Gets the psmux endpoint that produced this observation."},"source":{"file":"src/LibTmux/Psmux/PsmuxWindow.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxWindow.Server","product":"core","slug":"libtmux-psmuxwindow-server"},{"id":"LibTmux.PsmuxWindow.Id","name":"Id","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxWindow","signatures":[],"type":"WindowId","doc":{"summary":"Gets the captured window identifier."},"source":{"file":"src/LibTmux/Psmux/PsmuxWindow.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxWindow.Id","product":"core","slug":"libtmux-psmuxwindow-id"},{"id":"LibTmux.PsmuxWindow.SessionId","name":"SessionId","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxWindow","signatures":[],"type":"SessionId","doc":{"summary":"Gets the captured parent session identifier."},"source":{"file":"src/LibTmux/Psmux/PsmuxWindow.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxWindow.SessionId","product":"core","slug":"libtmux-psmuxwindow-sessionid"},{"id":"LibTmux.PsmuxWindow.Index","name":"Index","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxWindow","signatures":[],"type":"int","doc":{"summary":"Gets the captured window index."},"source":{"file":"src/LibTmux/Psmux/PsmuxWindow.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxWindow.Index","product":"core","slug":"libtmux-psmuxwindow-index"},{"id":"LibTmux.PsmuxWindow.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxWindow","signatures":[],"type":"string","doc":{"summary":"Gets the captured window name."},"source":{"file":"src/LibTmux/Psmux/PsmuxWindow.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxWindow.Name","product":"core","slug":"libtmux-psmuxwindow-name"},{"id":"LibTmux.PsmuxWindow.Width","name":"Width","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxWindow","signatures":[],"type":"int","doc":{"summary":"Gets the captured width in columns."},"source":{"file":"src/LibTmux/Psmux/PsmuxWindow.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxWindow.Width","product":"core","slug":"libtmux-psmuxwindow-width"},{"id":"LibTmux.PsmuxWindow.Height","name":"Height","kind":"property","modifiers":[],"parent":"LibTmux.PsmuxWindow","signatures":[],"type":"int","doc":{"summary":"Gets the captured height in rows."},"source":{"file":"src/LibTmux/Psmux/PsmuxWindow.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxWindow.Height","product":"core","slug":"libtmux-psmuxwindow-height"},{"id":"LibTmux.PsmuxWindow.GetPanesAsync","name":"GetPanesAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.PsmuxWindow","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the psmux query."}],"returns":"Task>","returnsDoc":"Current immutable pane observations.","raises":[{"type":"InvalidOperationException","doc":"The selected namespace has no live session."},{"type":"StaleServerGenerationException","doc":"The sole session was replaced after this observation was read."},{"type":"NotSupportedException","doc":"The selected namespace contains more than one session."},{"type":"TmuxObjectNotFoundException","doc":"The observed window is no longer visible."},{"type":"LibTmuxException","doc":"The verified client could not complete the query."}]}],"doc":{"summary":"Reads the window's current panes."},"source":{"file":"src/LibTmux/Psmux/PsmuxWindow.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PsmuxWindow.GetPanesAsync","product":"core","slug":"libtmux-psmuxwindow-getpanesasync"},{"id":"LibTmux.Server","name":"Server","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Represents an immutable server handle and snapshot.","body":"Thread-safe: the handle is immutable once constructed and may be shared\nfreely, including as a singleton. Every mutating call answers a new handle\nrather than changing this one.","examples":[{"lang":"console","intro":"Distinguish an endpoint handle from a discovered server. Connection discovery returns an immutable replacement without capturing child relations. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerConstruction.cs","code":"using System;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverconstruction-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// Open records the endpoint without running tmux or reading its state.\nServer endpoint = Server.Open(options);\nif (endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Open must not discover a server.\");\n}\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n\n// Connect discovers the live daemon and returns a new materialized handle.\nServer connected = await endpoint.ConnectAsync(token);\nServer sameEndpoint = await Server.ConnectAsync(options, token);\nif (!connected.IsMaterialized || !sameEndpoint.IsMaterialized || endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Connecting must leave the original handle unchanged.\");\n}\nif (connected.Generation != sameEndpoint.Generation || connected.Sessions.IsCaptured)\n{\n throw new InvalidOperationException(\"Connection discovery must not capture the hierarchy.\");\n}\n\nConsole.WriteLine(\"Open records an endpoint; Connect discovers the running server.\");\nConsole.WriteLine(\"The original handle stays unmaterialized; relations remain uncaptured.\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Open records an endpoint; Connect discovers the running server.\nThe original handle stays unmaterialized; relations remain uncaptured.\n"}]},"source":{"file":"src/LibTmux/Server.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server","product":"core","slug":"libtmux-server"},{"id":"LibTmux.Server.SearchSessionsAsync","name":"SearchSessionsAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"filter","type":"UnsafeTmuxFilter","doc":"The raw tmux filter expression."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The sessions tmux kept."}],"doc":{"summary":"Runs a tmux-side filter over every session."},"source":{"file":"src/LibTmux/Query/NativeFilterSearch.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.SearchSessionsAsync","product":"core","slug":"libtmux-server-searchsessionsasync"},{"id":"LibTmux.Server.SearchWindowsAsync","name":"SearchWindowsAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"filter","type":"UnsafeTmuxFilter","doc":"The raw tmux filter expression."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The windows tmux kept."}],"doc":{"summary":"Runs a tmux-side filter over every window."},"source":{"file":"src/LibTmux/Query/NativeFilterSearch.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.SearchWindowsAsync","product":"core","slug":"libtmux-server-searchwindowsasync"},{"id":"LibTmux.Server.SearchPanesAsync","name":"SearchPanesAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"filter","type":"UnsafeTmuxFilter","doc":"The raw tmux filter expression."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The panes tmux kept."}],"doc":{"summary":"Runs a tmux-side filter over every pane."},"source":{"file":"src/LibTmux/Query/NativeFilterSearch.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.SearchPanesAsync","product":"core","slug":"libtmux-server-searchpanesasync"},{"id":"LibTmux.Server.SearchClientsAsync","name":"SearchClientsAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"filter","type":"UnsafeTmuxFilter","doc":"The raw tmux filter expression."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The clients tmux kept.","raises":[{"type":"TmuxVersionTooLowException","doc":"The server runs tmux older than 3.4, whose list-clients has no filter."}]}],"doc":{"summary":"Runs a tmux-side filter over every attached client."},"source":{"file":"src/LibTmux/Query/NativeFilterSearch.cs","line":62,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.SearchClientsAsync","product":"core","slug":"libtmux-server-searchclientsasync"},{"id":"LibTmux.AttachSessionRequest","name":"AttachSessionRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one attach-session invocation."},"source":{"file":"src/LibTmux/Requests/AttachSessionRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.AttachSessionRequest","product":"core","slug":"libtmux-attachsessionrequest"},{"id":"LibTmux.AttachSessionRequest.Target","name":"Target","kind":"property","modifiers":[],"parent":"LibTmux.AttachSessionRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the session to attach, or null for the caller's own."},"source":{"file":"src/LibTmux/Requests/AttachSessionRequest.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.AttachSessionRequest.Target","product":"core","slug":"libtmux-attachsessionrequest-target"},{"id":"LibTmux.AttachSessionRequest.DetachOthers","name":"DetachOthers","kind":"property","modifiers":[],"parent":"LibTmux.AttachSessionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether other clients are detached."},"source":{"file":"src/LibTmux/Requests/AttachSessionRequest.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.AttachSessionRequest.DetachOthers","product":"core","slug":"libtmux-attachsessionrequest-detachothers"},{"id":"LibTmux.AttachSessionRequest.ReadOnly","name":"ReadOnly","kind":"property","modifiers":[],"parent":"LibTmux.AttachSessionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the client attaches read-only."},"source":{"file":"src/LibTmux/Requests/AttachSessionRequest.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.AttachSessionRequest.ReadOnly","product":"core","slug":"libtmux-attachsessionrequest-readonly"},{"id":"LibTmux.AttachSessionRequest.ExitOnDetach","name":"ExitOnDetach","kind":"property","modifiers":[],"parent":"LibTmux.AttachSessionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the client exits when the session is destroyed."},"source":{"file":"src/LibTmux/Requests/AttachSessionRequest.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.AttachSessionRequest.ExitOnDetach","product":"core","slug":"libtmux-attachsessionrequest-exitondetach"},{"id":"LibTmux.AttachSessionRequest.ClientFlags","name":"ClientFlags","kind":"property","modifiers":[],"parent":"LibTmux.AttachSessionRequest","signatures":[],"type":"IReadOnlyList?","doc":{"summary":"Gets the client flags sent with -f."},"source":{"file":"src/LibTmux/Requests/AttachSessionRequest.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.AttachSessionRequest.ClientFlags","product":"core","slug":"libtmux-attachsessionrequest-clientflags"},{"id":"LibTmux.AttachSessionRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.AttachSessionRequest","signatures":[{"params":[{"name":"session","type":"Session","doc":"The session being attached to."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns an attach request as one tmux command."},"source":{"file":"src/LibTmux/Requests/AttachSessionRequest.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.AttachSessionRequest.ToCommand","product":"core","slug":"libtmux-attachsessionrequest-tocommand"},{"id":"LibTmux.BindKeyRequest","name":"BindKeyRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one bind-key invocation."},"source":{"file":"src/LibTmux/Requests/BindKeyRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.BindKeyRequest","product":"core","slug":"libtmux-bindkeyrequest"},{"id":"LibTmux.BindKeyRequest.BindKeyRequest","name":"BindKeyRequest","kind":"method","modifiers":[],"parent":"LibTmux.BindKeyRequest","signatures":[{"params":[{"name":"key","type":"string","doc":"The key to bind."},{"name":"command","type":"IReadOnlyList","doc":"The tmux command and its arguments."}]}],"doc":{"summary":"Initializes a key binding."},"source":{"file":"src/LibTmux/Requests/BindKeyRequest.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.BindKeyRequest.BindKeyRequest","product":"core","slug":"libtmux-bindkeyrequest-bindkeyrequest"},{"id":"LibTmux.BindKeyRequest.Key","name":"Key","kind":"property","modifiers":[],"parent":"LibTmux.BindKeyRequest","signatures":[],"type":"string","doc":{"summary":"Gets the key to bind."},"source":{"file":"src/LibTmux/Requests/BindKeyRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.BindKeyRequest.Key","product":"core","slug":"libtmux-bindkeyrequest-key"},{"id":"LibTmux.BindKeyRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.BindKeyRequest","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the tmux command and its arguments."},"source":{"file":"src/LibTmux/Requests/BindKeyRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.BindKeyRequest.Command","product":"core","slug":"libtmux-bindkeyrequest-command"},{"id":"LibTmux.BindKeyRequest.KeyTable","name":"KeyTable","kind":"property","modifiers":[],"parent":"LibTmux.BindKeyRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the key table, or null for the prefix table."},"source":{"file":"src/LibTmux/Requests/BindKeyRequest.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.BindKeyRequest.KeyTable","product":"core","slug":"libtmux-bindkeyrequest-keytable"},{"id":"LibTmux.BindKeyRequest.Note","name":"Note","kind":"property","modifiers":[],"parent":"LibTmux.BindKeyRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the note describing the binding."},"source":{"file":"src/LibTmux/Requests/BindKeyRequest.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.BindKeyRequest.Note","product":"core","slug":"libtmux-bindkeyrequest-note"},{"id":"LibTmux.BindKeyRequest.Repeat","name":"Repeat","kind":"property","modifiers":[],"parent":"LibTmux.BindKeyRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the key may repeat without the prefix."},"source":{"file":"src/LibTmux/Requests/BindKeyRequest.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.BindKeyRequest.Repeat","product":"core","slug":"libtmux-bindkeyrequest-repeat"},{"id":"LibTmux.BindKeyRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.BindKeyRequest","signatures":[{"params":[],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a ."}],"doc":{"summary":"Returns a key-binding request as one tmux command."},"source":{"file":"src/LibTmux/Requests/BindKeyRequest.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.BindKeyRequest.ToCommand","product":"core","slug":"libtmux-bindkeyrequest-tocommand"},{"id":"LibTmux.CapturePanePosition","name":"CapturePanePosition","kind":"struct","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Names one end of a capture range.","body":"tmux writes the extremes as a literal - rather than a number, which\nmeans the beginning of the history for a start and the end of the visible\npane for an end. The two named values carry that same absent line number and\ndiffer only in which flag they read well against."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePanePosition","product":"core","slug":"libtmux-capturepaneposition"},{"id":"LibTmux.CapturePanePosition.CapturePanePosition","name":"CapturePanePosition","kind":"method","modifiers":[],"parent":"LibTmux.CapturePanePosition","signatures":[{"params":[{"name":"lineNumber","type":"int","doc":"The line, where zero is the top of the visible pane."}]}],"doc":{"summary":"Initializes a position at one line."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePanePosition.CapturePanePosition","product":"core","slug":"libtmux-capturepaneposition-capturepaneposition"},{"id":"LibTmux.CapturePanePosition.BeginningOfHistory","name":"BeginningOfHistory","kind":"property","modifiers":["static"],"parent":"LibTmux.CapturePanePosition","signatures":[],"type":"CapturePanePosition","doc":{"summary":"Gets the oldest line tmux still holds."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePanePosition.BeginningOfHistory","product":"core","slug":"libtmux-capturepaneposition-beginningofhistory"},{"id":"LibTmux.CapturePanePosition.EndOfVisiblePane","name":"EndOfVisiblePane","kind":"property","modifiers":["static"],"parent":"LibTmux.CapturePanePosition","signatures":[],"type":"CapturePanePosition","doc":{"summary":"Gets the last line of the visible pane."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePanePosition.EndOfVisiblePane","product":"core","slug":"libtmux-capturepaneposition-endofvisiblepane"},{"id":"LibTmux.CapturePanePosition.LineNumber","name":"LineNumber","kind":"property","modifiers":[],"parent":"LibTmux.CapturePanePosition","signatures":[],"type":"int?","doc":{"summary":"Gets the line, or null for the extreme tmux writes as -."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePanePosition.LineNumber","product":"core","slug":"libtmux-capturepaneposition-linenumber"},{"id":"LibTmux.CapturePaneRequest","name":"CapturePaneRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one capture-pane invocation."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest","product":"core","slug":"libtmux-capturepanerequest"},{"id":"LibTmux.CapturePaneRequest.StartLine","name":"StartLine","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"CapturePanePosition?","doc":{"summary":"Gets the first line to capture."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.StartLine","product":"core","slug":"libtmux-capturepanerequest-startline"},{"id":"LibTmux.CapturePaneRequest.EndLine","name":"EndLine","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"CapturePanePosition?","doc":{"summary":"Gets the last line to capture."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.EndLine","product":"core","slug":"libtmux-capturepanerequest-endline"},{"id":"LibTmux.CapturePaneRequest.EscapeSequences","name":"EscapeSequences","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether escape sequences are preserved."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.EscapeSequences","product":"core","slug":"libtmux-capturepanerequest-escapesequences"},{"id":"LibTmux.CapturePaneRequest.EscapeNonPrintable","name":"EscapeNonPrintable","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether unprintable bytes are escaped as octal."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.EscapeNonPrintable","product":"core","slug":"libtmux-capturepanerequest-escapenonprintable"},{"id":"LibTmux.CapturePaneRequest.JoinWrappedLines","name":"JoinWrappedLines","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether wrapped lines are joined.","body":"tmux applies this in place of trailing-space handling."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.JoinWrappedLines","product":"core","slug":"libtmux-capturepanerequest-joinwrappedlines"},{"id":"LibTmux.CapturePaneRequest.PreserveTrailingSpaces","name":"PreserveTrailingSpaces","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether trailing spaces are kept."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.PreserveTrailingSpaces","product":"core","slug":"libtmux-capturepanerequest-preservetrailingspaces"},{"id":"LibTmux.CapturePaneRequest.TrimTrailingSpaces","name":"TrimTrailingSpaces","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether trailing spaces are removed."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.TrimTrailingSpaces","product":"core","slug":"libtmux-capturepanerequest-trimtrailingspaces"},{"id":"LibTmux.CapturePaneRequest.AlternateScreen","name":"AlternateScreen","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the alternate screen is captured.","body":"A pane with no alternate screen makes this an error unless\n is set."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.AlternateScreen","product":"core","slug":"libtmux-capturepanerequest-alternatescreen"},{"id":"LibTmux.CapturePaneRequest.Quiet","name":"Quiet","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a missing alternate screen is not an error.","body":"This does not quieten a target that cannot be resolved."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":60,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.Quiet","product":"core","slug":"libtmux-capturepanerequest-quiet"},{"id":"LibTmux.CapturePaneRequest.ModeScreen","name":"ModeScreen","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane's mode screen is captured."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":63,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.ModeScreen","product":"core","slug":"libtmux-capturepanerequest-modescreen"},{"id":"LibTmux.CapturePaneRequest.Pending","name":"Pending","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether pending output is captured."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.Pending","product":"core","slug":"libtmux-capturepanerequest-pending"},{"id":"LibTmux.CapturePaneRequest.Hyperlinks","name":"Hyperlinks","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether hyperlinks are captured."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":69,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.Hyperlinks","product":"core","slug":"libtmux-capturepanerequest-hyperlinks"},{"id":"LibTmux.CapturePaneRequest.LineNumbers","name":"LineNumbers","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether each line carries its number."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":72,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.LineNumbers","product":"core","slug":"libtmux-capturepanerequest-linenumbers"},{"id":"LibTmux.CapturePaneRequest.LineFlags","name":"LineFlags","kind":"property","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether each line carries its flags."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.LineFlags","product":"core","slug":"libtmux-capturepanerequest-lineflags"},{"id":"LibTmux.CapturePaneRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.CapturePaneRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane being captured."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a capture request as one tmux command.","body":"Several capture flags arrived after tmux 3.2a, and the pane is what\nknows which tmux is answering, so the command it builds carries only\nthe flags that server accepts."},"source":{"file":"src/LibTmux/Requests/CapturePaneRequest.cs","line":86,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturePaneRequest.ToCommand","product":"core","slug":"libtmux-capturepanerequest-tocommand"},{"id":"LibTmux.ChooseTreeSort","name":"ChooseTreeSort","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names how a chooser orders its rows."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeSort","product":"core","slug":"libtmux-choosetreesort"},{"id":"LibTmux.ChooseTreeSort.Index","name":"Index","kind":"constant","modifiers":[],"parent":"LibTmux.ChooseTreeSort","signatures":[],"doc":{"summary":"Order by index."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeSort.Index","product":"core","slug":"libtmux-choosetreesort-index"},{"id":"LibTmux.ChooseTreeSort.Name","name":"Name","kind":"constant","modifiers":[],"parent":"LibTmux.ChooseTreeSort","signatures":[],"doc":{"summary":"Order by name."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeSort.Name","product":"core","slug":"libtmux-choosetreesort-name"},{"id":"LibTmux.ChooseTreeSort.Time","name":"Time","kind":"constant","modifiers":[],"parent":"LibTmux.ChooseTreeSort","signatures":[],"doc":{"summary":"Order by activity time.","body":"tmux dropped this in 3.7 and rejects it there."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeSort.Time","product":"core","slug":"libtmux-choosetreesort-time"},{"id":"LibTmux.ChooseTreeSort.Size","name":"Size","kind":"constant","modifiers":[],"parent":"LibTmux.ChooseTreeSort","signatures":[],"doc":{"summary":"Order by size.","body":"Accepted on every supported tmux, but only sorts from 3.7."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeSort.Size","product":"core","slug":"libtmux-choosetreesort-size"},{"id":"LibTmux.ChooseTreeRequest","name":"ChooseTreeRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one choose-tree invocation."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeRequest","product":"core","slug":"libtmux-choosetreerequest"},{"id":"LibTmux.ChooseTreeRequest.SessionsCollapsed","name":"SessionsCollapsed","kind":"property","modifiers":[],"parent":"LibTmux.ChooseTreeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether sessions start collapsed."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeRequest.SessionsCollapsed","product":"core","slug":"libtmux-choosetreerequest-sessionscollapsed"},{"id":"LibTmux.ChooseTreeRequest.WindowsCollapsed","name":"WindowsCollapsed","kind":"property","modifiers":[],"parent":"LibTmux.ChooseTreeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether windows start collapsed."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeRequest.WindowsCollapsed","product":"core","slug":"libtmux-choosetreerequest-windowscollapsed"},{"id":"LibTmux.ChooseTreeRequest.Format","name":"Format","kind":"property","modifiers":[],"parent":"LibTmux.ChooseTreeRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the format each row renders with."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeRequest.Format","product":"core","slug":"libtmux-choosetreerequest-format"},{"id":"LibTmux.ChooseTreeRequest.NativeFilter","name":"NativeFilter","kind":"property","modifiers":[],"parent":"LibTmux.ChooseTreeRequest","signatures":[],"type":"UnsafeTmuxFilter?","doc":{"summary":"Gets the raw tmux filter limiting the rows."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeRequest.NativeFilter","product":"core","slug":"libtmux-choosetreerequest-nativefilter"},{"id":"LibTmux.ChooseTreeRequest.Sort","name":"Sort","kind":"property","modifiers":[],"parent":"LibTmux.ChooseTreeRequest","signatures":[],"type":"ChooseTreeSort?","doc":{"summary":"Gets how the rows are ordered."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeRequest.Sort","product":"core","slug":"libtmux-choosetreerequest-sort"},{"id":"LibTmux.ChooseTreeRequest.Reverse","name":"Reverse","kind":"property","modifiers":[],"parent":"LibTmux.ChooseTreeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the order is reversed."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeRequest.Reverse","product":"core","slug":"libtmux-choosetreerequest-reverse"},{"id":"LibTmux.ChooseTreeRequest.Zoom","name":"Zoom","kind":"property","modifiers":[],"parent":"LibTmux.ChooseTreeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the chooser pane is zoomed."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeRequest.Zoom","product":"core","slug":"libtmux-choosetreerequest-zoom"},{"id":"LibTmux.ChooseTreeRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.ChooseTreeRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane the chooser opens in."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a chooser request as one tmux command.","body":"tmux 3.7 dropped the activity-time sort order and rejects it by name,\nso the pane decides whether the built command carries it."},"source":{"file":"src/LibTmux/Requests/ChooseTreeRequest.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ChooseTreeRequest.ToCommand","product":"core","slug":"libtmux-choosetreerequest-tocommand"},{"id":"LibTmux.PromptType","name":"PromptType","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"What a command prompt is asking for.","body":"tmux uses the type to decide which history the prompt draws on and how it\ncompletes what is typed."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PromptType","product":"core","slug":"libtmux-prompttype"},{"id":"LibTmux.PromptType.Command","name":"Command","kind":"constant","modifiers":[],"parent":"LibTmux.PromptType","signatures":[],"doc":{"summary":"A tmux command."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PromptType.Command","product":"core","slug":"libtmux-prompttype-command"},{"id":"LibTmux.PromptType.Search","name":"Search","kind":"constant","modifiers":[],"parent":"LibTmux.PromptType","signatures":[],"doc":{"summary":"Text to search for."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PromptType.Search","product":"core","slug":"libtmux-prompttype-search"},{"id":"LibTmux.PromptType.Target","name":"Target","kind":"constant","modifiers":[],"parent":"LibTmux.PromptType","signatures":[],"doc":{"summary":"A target to act on."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PromptType.Target","product":"core","slug":"libtmux-prompttype-target"},{"id":"LibTmux.PromptType.WindowTarget","name":"WindowTarget","kind":"constant","modifiers":[],"parent":"LibTmux.PromptType","signatures":[],"doc":{"summary":"A window to act on."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PromptType.WindowTarget","product":"core","slug":"libtmux-prompttype-windowtarget"},{"id":"LibTmux.CommandPromptRequest","name":"CommandPromptRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one command-prompt invocation."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest","product":"core","slug":"libtmux-commandpromptrequest"},{"id":"LibTmux.CommandPromptRequest.CommandPromptRequest","name":"CommandPromptRequest","kind":"method","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[{"params":[{"name":"template","type":"string","doc":"The command to run, with the answer substituted in."}]}],"doc":{"summary":"Initializes a command prompt."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.CommandPromptRequest","product":"core","slug":"libtmux-commandpromptrequest-commandpromptrequest"},{"id":"LibTmux.CommandPromptRequest.Template","name":"Template","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"string","doc":{"summary":"Gets the command to run, with the answer substituted in."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.Template","product":"core","slug":"libtmux-commandpromptrequest-template"},{"id":"LibTmux.CommandPromptRequest.Prompt","name":"Prompt","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the text shown to the person answering."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.Prompt","product":"core","slug":"libtmux-commandpromptrequest-prompt"},{"id":"LibTmux.CommandPromptRequest.Inputs","name":"Inputs","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the answer the prompt starts with."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.Inputs","product":"core","slug":"libtmux-commandpromptrequest-inputs"},{"id":"LibTmux.CommandPromptRequest.TargetClient","name":"TargetClient","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the client to prompt, or null for the caller's own."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.TargetClient","product":"core","slug":"libtmux-commandpromptrequest-targetclient"},{"id":"LibTmux.CommandPromptRequest.OneKey","name":"OneKey","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether one keypress answers it."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.OneKey","product":"core","slug":"libtmux-commandpromptrequest-onekey"},{"id":"LibTmux.CommandPromptRequest.KeyOnly","name":"KeyOnly","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the answer is the key itself rather than text."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.KeyOnly","product":"core","slug":"libtmux-commandpromptrequest-keyonly"},{"id":"LibTmux.CommandPromptRequest.OnInputChange","name":"OnInputChange","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the command runs on every keystroke."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.OnInputChange","product":"core","slug":"libtmux-commandpromptrequest-oninputchange"},{"id":"LibTmux.CommandPromptRequest.Numeric","name":"Numeric","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether only digits are accepted."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.Numeric","product":"core","slug":"libtmux-commandpromptrequest-numeric"},{"id":"LibTmux.CommandPromptRequest.Type","name":"Type","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"PromptType?","doc":{"summary":"Gets what the prompt is asking for."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.Type","product":"core","slug":"libtmux-commandpromptrequest-type"},{"id":"LibTmux.CommandPromptRequest.ExpandFormat","name":"ExpandFormat","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the template is expanded as a format."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.ExpandFormat","product":"core","slug":"libtmux-commandpromptrequest-expandformat"},{"id":"LibTmux.CommandPromptRequest.Literal","name":"Literal","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the answer is taken literally."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":67,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.Literal","product":"core","slug":"libtmux-commandpromptrequest-literal"},{"id":"LibTmux.CommandPromptRequest.BackspaceExits","name":"BackspaceExits","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether backspace on an empty prompt closes it."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.BackspaceExits","product":"core","slug":"libtmux-commandpromptrequest-backspaceexits"},{"id":"LibTmux.CommandPromptRequest.NoFreeze","name":"NoFreeze","kind":"property","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the client keeps redrawing while prompting."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":73,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.NoFreeze","product":"core","slug":"libtmux-commandpromptrequest-nofreeze"},{"id":"LibTmux.CommandPromptRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.CommandPromptRequest","signatures":[{"params":[{"name":"server","type":"Server","doc":"The server the prompt is shown on."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."},{"type":"TmuxVersionTooLowException","doc":"The request asks for a format or a prompt type and tmux is older than 3.3."}]}],"doc":{"summary":"Returns a prompt request as one tmux command.","body":"Batching does not soften the refusal below tmux 3.3: that version reads\nthe type flag as something else, so a prompt asking for one is refused\nhere exactly as it is when run alone."},"source":{"file":"src/LibTmux/Requests/CommandPromptRequest.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CommandPromptRequest.ToCommand","product":"core","slug":"libtmux-commandpromptrequest-tocommand"},{"id":"LibTmux.ConfirmBeforeRequest","name":"ConfirmBeforeRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one confirm-before invocation."},"source":{"file":"src/LibTmux/Requests/ConfirmBeforeRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ConfirmBeforeRequest","product":"core","slug":"libtmux-confirmbeforerequest"},{"id":"LibTmux.ConfirmBeforeRequest.ConfirmBeforeRequest","name":"ConfirmBeforeRequest","kind":"method","modifiers":[],"parent":"LibTmux.ConfirmBeforeRequest","signatures":[{"params":[{"name":"command","type":"IReadOnlyList","doc":"The tmux command to run once confirmed."}]}],"doc":{"summary":"Initializes a confirmation."},"source":{"file":"src/LibTmux/Requests/ConfirmBeforeRequest.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ConfirmBeforeRequest.ConfirmBeforeRequest","product":"core","slug":"libtmux-confirmbeforerequest-confirmbeforerequest"},{"id":"LibTmux.ConfirmBeforeRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.ConfirmBeforeRequest","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the tmux command to run once confirmed."},"source":{"file":"src/LibTmux/Requests/ConfirmBeforeRequest.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ConfirmBeforeRequest.Command","product":"core","slug":"libtmux-confirmbeforerequest-command"},{"id":"LibTmux.ConfirmBeforeRequest.Prompt","name":"Prompt","kind":"property","modifiers":[],"parent":"LibTmux.ConfirmBeforeRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the question shown, or null for tmux's own wording."},"source":{"file":"src/LibTmux/Requests/ConfirmBeforeRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ConfirmBeforeRequest.Prompt","product":"core","slug":"libtmux-confirmbeforerequest-prompt"},{"id":"LibTmux.ConfirmBeforeRequest.ConfirmKey","name":"ConfirmKey","kind":"property","modifiers":[],"parent":"LibTmux.ConfirmBeforeRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the key that confirms, or null for tmux's default."},"source":{"file":"src/LibTmux/Requests/ConfirmBeforeRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ConfirmBeforeRequest.ConfirmKey","product":"core","slug":"libtmux-confirmbeforerequest-confirmkey"},{"id":"LibTmux.ConfirmBeforeRequest.DefaultYes","name":"DefaultYes","kind":"property","modifiers":[],"parent":"LibTmux.ConfirmBeforeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether pressing enter confirms rather than cancels."},"source":{"file":"src/LibTmux/Requests/ConfirmBeforeRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ConfirmBeforeRequest.DefaultYes","product":"core","slug":"libtmux-confirmbeforerequest-defaultyes"},{"id":"LibTmux.ConfirmBeforeRequest.TargetClient","name":"TargetClient","kind":"property","modifiers":[],"parent":"LibTmux.ConfirmBeforeRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the client to ask, or null for the caller's own."},"source":{"file":"src/LibTmux/Requests/ConfirmBeforeRequest.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ConfirmBeforeRequest.TargetClient","product":"core","slug":"libtmux-confirmbeforerequest-targetclient"},{"id":"LibTmux.ConfirmBeforeRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.ConfirmBeforeRequest","signatures":[{"params":[{"name":"server","type":"Server","doc":"The server the confirmation is shown on."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a confirmation request as one tmux command.","body":"Naming the accepting key, and defaulting to yes, arrived in tmux 3.4,\nso the server decides whether the built command carries them."},"source":{"file":"src/LibTmux/Requests/ConfirmBeforeRequest.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ConfirmBeforeRequest.ToCommand","product":"core","slug":"libtmux-confirmbeforerequest-tocommand"},{"id":"LibTmux.CopyModeRequest","name":"CopyModeRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one copy-mode invocation."},"source":{"file":"src/LibTmux/Requests/CopyModeRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CopyModeRequest","product":"core","slug":"libtmux-copymoderequest"},{"id":"LibTmux.CopyModeRequest.ScrollUp","name":"ScrollUp","kind":"property","modifiers":[],"parent":"LibTmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane scrolls up one page on entry."},"source":{"file":"src/LibTmux/Requests/CopyModeRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CopyModeRequest.ScrollUp","product":"core","slug":"libtmux-copymoderequest-scrollup"},{"id":"LibTmux.CopyModeRequest.ExitOnBottom","name":"ExitOnBottom","kind":"property","modifiers":[],"parent":"LibTmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether reaching the bottom leaves copy mode."},"source":{"file":"src/LibTmux/Requests/CopyModeRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CopyModeRequest.ExitOnBottom","product":"core","slug":"libtmux-copymoderequest-exitonbottom"},{"id":"LibTmux.CopyModeRequest.MouseDrag","name":"MouseDrag","kind":"property","modifiers":[],"parent":"LibTmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the mode is entered for a mouse drag.","body":"Without a real mouse event tmux accepts this and enters no mode."},"source":{"file":"src/LibTmux/Requests/CopyModeRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CopyModeRequest.MouseDrag","product":"core","slug":"libtmux-copymoderequest-mousedrag"},{"id":"LibTmux.CopyModeRequest.Cancel","name":"Cancel","kind":"property","modifiers":[],"parent":"LibTmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether copy mode is left instead of entered."},"source":{"file":"src/LibTmux/Requests/CopyModeRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CopyModeRequest.Cancel","product":"core","slug":"libtmux-copymoderequest-cancel"},{"id":"LibTmux.CopyModeRequest.PageDown","name":"PageDown","kind":"property","modifiers":[],"parent":"LibTmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane scrolls down one page on entry.","body":"tmux gained this in 3.5."},"source":{"file":"src/LibTmux/Requests/CopyModeRequest.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CopyModeRequest.PageDown","product":"core","slug":"libtmux-copymoderequest-pagedown"},{"id":"LibTmux.CopyModeRequest.SourcePane","name":"SourcePane","kind":"property","modifiers":[],"parent":"LibTmux.CopyModeRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the pane whose content is shown instead."},"source":{"file":"src/LibTmux/Requests/CopyModeRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CopyModeRequest.SourcePane","product":"core","slug":"libtmux-copymoderequest-sourcepane"},{"id":"LibTmux.CopyModeRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.CopyModeRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane entering copy mode."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a copy-mode request as one tmux command.","body":"Paging down on entry arrived in tmux 3.5, so the pane decides whether\nthe built command carries that flag."},"source":{"file":"src/LibTmux/Requests/CopyModeRequest.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CopyModeRequest.ToCommand","product":"core","slug":"libtmux-copymoderequest-tocommand"},{"id":"LibTmux.DisplayMenuRequest","name":"DisplayMenuRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one display-menu invocation."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest","product":"core","slug":"libtmux-displaymenurequest"},{"id":"LibTmux.DisplayMenuRequest.DisplayMenuRequest","name":"DisplayMenuRequest","kind":"method","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[{"params":[{"name":"items","type":"IReadOnlyList","doc":"The lines the menu offers."}]}],"doc":{"summary":"Initializes a menu."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.DisplayMenuRequest","product":"core","slug":"libtmux-displaymenurequest-displaymenurequest"},{"id":"LibTmux.DisplayMenuRequest.Items","name":"Items","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the lines the menu offers."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.Items","product":"core","slug":"libtmux-displaymenurequest-items"},{"id":"LibTmux.DisplayMenuRequest.Title","name":"Title","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the title shown above them.","body":"tmux expands it as a format, so a # in it does not survive\nverbatim."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.Title","product":"core","slug":"libtmux-displaymenurequest-title"},{"id":"LibTmux.DisplayMenuRequest.TargetPane","name":"TargetPane","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the pane the menu belongs to."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.TargetPane","product":"core","slug":"libtmux-displaymenurequest-targetpane"},{"id":"LibTmux.DisplayMenuRequest.TargetClient","name":"TargetClient","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the client shown the menu."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.TargetClient","product":"core","slug":"libtmux-displaymenurequest-targetclient"},{"id":"LibTmux.DisplayMenuRequest.X","name":"X","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets where the menu sits across the screen."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.X","product":"core","slug":"libtmux-displaymenurequest-x"},{"id":"LibTmux.DisplayMenuRequest.Y","name":"Y","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets where the menu sits down the screen."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.Y","product":"core","slug":"libtmux-displaymenurequest-y"},{"id":"LibTmux.DisplayMenuRequest.StartingChoice","name":"StartingChoice","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the item selected when it opens."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.StartingChoice","product":"core","slug":"libtmux-displaymenurequest-startingchoice"},{"id":"LibTmux.DisplayMenuRequest.BorderLines","name":"BorderLines","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets which line style draws the border."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.BorderLines","product":"core","slug":"libtmux-displaymenurequest-borderlines"},{"id":"LibTmux.DisplayMenuRequest.Style","name":"Style","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the style of the menu itself."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.Style","product":"core","slug":"libtmux-displaymenurequest-style"},{"id":"LibTmux.DisplayMenuRequest.BorderStyle","name":"BorderStyle","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the style of its border."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":53,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.BorderStyle","product":"core","slug":"libtmux-displaymenurequest-borderstyle"},{"id":"LibTmux.DisplayMenuRequest.SelectedStyle","name":"SelectedStyle","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the style of the selected line."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.SelectedStyle","product":"core","slug":"libtmux-displaymenurequest-selectedstyle"},{"id":"LibTmux.DisplayMenuRequest.Mouse","name":"Mouse","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the mouse can choose an item."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":59,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.Mouse","product":"core","slug":"libtmux-displaymenurequest-mouse"},{"id":"LibTmux.DisplayMenuRequest.StayOpen","name":"StayOpen","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the menu stays open after a choice."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":62,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.StayOpen","product":"core","slug":"libtmux-displaymenurequest-stayopen"},{"id":"LibTmux.DisplayMenuRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.DisplayMenuRequest","signatures":[{"params":[{"name":"server","type":"Server","doc":"The server the menu is shown on."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a menu request as one tmux command.","body":"The style flags arrived in tmux 3.4 and the mouse flag in 3.5, so the\nserver decides which of them the built command carries."},"source":{"file":"src/LibTmux/Requests/DisplayMenuRequest.cs","line":72,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMenuRequest.ToCommand","product":"core","slug":"libtmux-displaymenurequest-tocommand"},{"id":"LibTmux.DisplayMessageRequest","name":"DisplayMessageRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one display-message invocation."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest","product":"core","slug":"libtmux-displaymessagerequest"},{"id":"LibTmux.DisplayMessageRequest.Message","name":"Message","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"string","doc":{"summary":"Gets the message, which tmux expands as a format."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.Message","product":"core","slug":"libtmux-displaymessagerequest-message"},{"id":"LibTmux.DisplayMessageRequest.ReturnText","name":"ReturnText","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the message is printed rather than shown."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.ReturnText","product":"core","slug":"libtmux-displaymessagerequest-returntext"},{"id":"LibTmux.DisplayMessageRequest.Format","name":"Format","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the format string used in place of the message."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.Format","product":"core","slug":"libtmux-displaymessagerequest-format"},{"id":"LibTmux.DisplayMessageRequest.AllFormats","name":"AllFormats","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether every format variable is listed."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.AllFormats","product":"core","slug":"libtmux-displaymessagerequest-allformats"},{"id":"LibTmux.DisplayMessageRequest.Verbose","name":"Verbose","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether format expansion is reported."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.Verbose","product":"core","slug":"libtmux-displaymessagerequest-verbose"},{"id":"LibTmux.DisplayMessageRequest.NoExpand","name":"NoExpand","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the message is sent without format expansion.","body":"tmux gained this in 3.4; older servers always expand."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.NoExpand","product":"core","slug":"libtmux-displaymessagerequest-noexpand"},{"id":"LibTmux.DisplayMessageRequest.TargetClient","name":"TargetClient","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the client to show the message on."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.TargetClient","product":"core","slug":"libtmux-displaymessagerequest-targetclient"},{"id":"LibTmux.DisplayMessageRequest.Delay","name":"Delay","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"TimeSpan?","doc":{"summary":"Gets how long the message stays up."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.Delay","product":"core","slug":"libtmux-displaymessagerequest-delay"},{"id":"LibTmux.DisplayMessageRequest.Notify","name":"Notify","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the message is delivered as a notification."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.Notify","product":"core","slug":"libtmux-displaymessagerequest-notify"},{"id":"LibTmux.DisplayMessageRequest.UpdatePane","name":"UpdatePane","kind":"property","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane is redrawn while the message is shown.","body":"Only a pane can honour this; a window-scoped call rejects it."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":65,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.UpdatePane","product":"core","slug":"libtmux-displaymessagerequest-updatepane"},{"id":"LibTmux.DisplayMessageRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.DisplayMessageRequest","signatures":[{"params":[{"name":"server","type":"Server","doc":"The server the message is shown on."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a message request as one tmux command.","body":"This takes the server because two of the flags depend on which tmux is\nanswering: literal expansion arrived in 3.4, and 3.2a refuses the\ntarget-client flag even for a client that is really attached."},"source":{"file":"src/LibTmux/Requests/DisplayMessageRequest.cs","line":76,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayMessageRequest.ToCommand","product":"core","slug":"libtmux-displaymessagerequest-tocommand"},{"id":"LibTmux.PopupCloseMode","name":"PopupCloseMode","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names when a popup closes on its own."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PopupCloseMode","product":"core","slug":"libtmux-popupclosemode"},{"id":"LibTmux.PopupCloseMode.AnyExit","name":"AnyExit","kind":"constant","modifiers":[],"parent":"LibTmux.PopupCloseMode","signatures":[],"doc":{"summary":"Close when the command exits, however it exits."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PopupCloseMode.AnyExit","product":"core","slug":"libtmux-popupclosemode-anyexit"},{"id":"LibTmux.PopupCloseMode.SuccessfulExit","name":"SuccessfulExit","kind":"constant","modifiers":[],"parent":"LibTmux.PopupCloseMode","signatures":[],"doc":{"summary":"Close only when the command exits successfully."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PopupCloseMode.SuccessfulExit","product":"core","slug":"libtmux-popupclosemode-successfulexit"},{"id":"LibTmux.DisplayPopupRequest","name":"DisplayPopupRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one display-popup invocation.","body":"A popup needs an attached client and blocks the invoking command until it\ncloses, so a caller with no client, or with a command that never exits, will\nwait. Cancel the call rather than expecting it to return."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest","product":"core","slug":"libtmux-displaypopuprequest"},{"id":"LibTmux.DisplayPopupRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the command the popup runs."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.Command","product":"core","slug":"libtmux-displaypopuprequest-command"},{"id":"LibTmux.DisplayPopupRequest.CloseMode","name":"CloseMode","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"PopupCloseMode?","doc":{"summary":"Gets when the popup closes on its own."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.CloseMode","product":"core","slug":"libtmux-displaypopuprequest-closemode"},{"id":"LibTmux.DisplayPopupRequest.CloseExisting","name":"CloseExisting","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether an open popup is closed instead."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.CloseExisting","product":"core","slug":"libtmux-displaypopuprequest-closeexisting"},{"id":"LibTmux.DisplayPopupRequest.TargetClient","name":"TargetClient","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the client to show the popup on."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.TargetClient","product":"core","slug":"libtmux-displaypopuprequest-targetclient"},{"id":"LibTmux.DisplayPopupRequest.Width","name":"Width","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the popup width."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.Width","product":"core","slug":"libtmux-displaypopuprequest-width"},{"id":"LibTmux.DisplayPopupRequest.Height","name":"Height","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the popup height."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.Height","product":"core","slug":"libtmux-displaypopuprequest-height"},{"id":"LibTmux.DisplayPopupRequest.X","name":"X","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the column to place the popup at."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.X","product":"core","slug":"libtmux-displaypopuprequest-x"},{"id":"LibTmux.DisplayPopupRequest.Y","name":"Y","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the row to place the popup at."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.Y","product":"core","slug":"libtmux-displaypopuprequest-y"},{"id":"LibTmux.DisplayPopupRequest.StartDirectory","name":"StartDirectory","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the working directory for the command.","body":"tmux expands it as a format, so a # in it does not survive\nverbatim."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.StartDirectory","product":"core","slug":"libtmux-displaypopuprequest-startdirectory"},{"id":"LibTmux.DisplayPopupRequest.Title","name":"Title","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the popup title.","body":"tmux expands it as a format, so a # in it does not survive\nverbatim."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.Title","product":"core","slug":"libtmux-displaypopuprequest-title"},{"id":"LibTmux.DisplayPopupRequest.BorderLines","name":"BorderLines","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the border line style."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":78,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.BorderLines","product":"core","slug":"libtmux-displaypopuprequest-borderlines"},{"id":"LibTmux.DisplayPopupRequest.Style","name":"Style","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the popup style."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":81,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.Style","product":"core","slug":"libtmux-displaypopuprequest-style"},{"id":"LibTmux.DisplayPopupRequest.BorderStyle","name":"BorderStyle","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the popup border style."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":84,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.BorderStyle","product":"core","slug":"libtmux-displaypopuprequest-borderstyle"},{"id":"LibTmux.DisplayPopupRequest.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"IReadOnlyDictionary?","doc":{"summary":"Gets the environment entries set on the command."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.Environment","product":"core","slug":"libtmux-displaypopuprequest-environment"},{"id":"LibTmux.DisplayPopupRequest.NoBorder","name":"NoBorder","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the popup has no border."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":100,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.NoBorder","product":"core","slug":"libtmux-displaypopuprequest-noborder"},{"id":"LibTmux.DisplayPopupRequest.CloseOnAnyKey","name":"CloseOnAnyKey","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether any key closes the popup."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":103,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.CloseOnAnyKey","product":"core","slug":"libtmux-displaypopuprequest-closeonanykey"},{"id":"LibTmux.DisplayPopupRequest.NoKeys","name":"NoKeys","kind":"property","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the popup ignores keys."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":106,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.NoKeys","product":"core","slug":"libtmux-displaypopuprequest-nokeys"},{"id":"LibTmux.DisplayPopupRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.DisplayPopupRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane the popup belongs to."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a popup request as one tmux command.","body":"Popup options arrived in tmux 3.3 and the key policy in 3.6, so the\npane decides which of them the built command carries."},"source":{"file":"src/LibTmux/Requests/DisplayPopupRequest.cs","line":116,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.DisplayPopupRequest.ToCommand","product":"core","slug":"libtmux-displaypopuprequest-tocommand"},{"id":"LibTmux.FindWindowRequest","name":"FindWindowRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one find-window invocation."},"source":{"file":"src/LibTmux/Requests/FindWindowRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.FindWindowRequest","product":"core","slug":"libtmux-findwindowrequest"},{"id":"LibTmux.FindWindowRequest.FindWindowRequest","name":"FindWindowRequest","kind":"method","modifiers":[],"parent":"LibTmux.FindWindowRequest","signatures":[{"params":[{"name":"pattern","type":"string","doc":"The text to look for."}],"raises":[{"type":"ArgumentException","doc":" is blank."}]}],"doc":{"summary":"Initializes a window-search request."},"source":{"file":"src/LibTmux/Requests/FindWindowRequest.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.FindWindowRequest.FindWindowRequest","product":"core","slug":"libtmux-findwindowrequest-findwindowrequest"},{"id":"LibTmux.FindWindowRequest.Pattern","name":"Pattern","kind":"property","modifiers":[],"parent":"LibTmux.FindWindowRequest","signatures":[],"type":"string","doc":{"summary":"Gets the text to look for."},"source":{"file":"src/LibTmux/Requests/FindWindowRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.FindWindowRequest.Pattern","product":"core","slug":"libtmux-findwindowrequest-pattern"},{"id":"LibTmux.FindWindowRequest.MatchContent","name":"MatchContent","kind":"property","modifiers":[],"parent":"LibTmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether pane content is searched."},"source":{"file":"src/LibTmux/Requests/FindWindowRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.FindWindowRequest.MatchContent","product":"core","slug":"libtmux-findwindowrequest-matchcontent"},{"id":"LibTmux.FindWindowRequest.IgnoreCase","name":"IgnoreCase","kind":"property","modifiers":[],"parent":"LibTmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the search ignores case."},"source":{"file":"src/LibTmux/Requests/FindWindowRequest.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.FindWindowRequest.IgnoreCase","product":"core","slug":"libtmux-findwindowrequest-ignorecase"},{"id":"LibTmux.FindWindowRequest.MatchName","name":"MatchName","kind":"property","modifiers":[],"parent":"LibTmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether window names are searched."},"source":{"file":"src/LibTmux/Requests/FindWindowRequest.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.FindWindowRequest.MatchName","product":"core","slug":"libtmux-findwindowrequest-matchname"},{"id":"LibTmux.FindWindowRequest.Regex","name":"Regex","kind":"property","modifiers":[],"parent":"LibTmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pattern is a regular expression."},"source":{"file":"src/LibTmux/Requests/FindWindowRequest.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.FindWindowRequest.Regex","product":"core","slug":"libtmux-findwindowrequest-regex"},{"id":"LibTmux.FindWindowRequest.MatchTitle","name":"MatchTitle","kind":"property","modifiers":[],"parent":"LibTmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether pane titles are searched."},"source":{"file":"src/LibTmux/Requests/FindWindowRequest.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.FindWindowRequest.MatchTitle","product":"core","slug":"libtmux-findwindowrequest-matchtitle"},{"id":"LibTmux.FindWindowRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.FindWindowRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane the search starts from."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a window-search request as one tmux command."},"source":{"file":"src/LibTmux/Requests/FindWindowRequest.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.FindWindowRequest.ToCommand","product":"core","slug":"libtmux-findwindowrequest-tocommand"},{"id":"LibTmux.GetOptionRequest","name":"GetOptionRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one show-options invocation for a single option."},"source":{"file":"src/LibTmux/Requests/GetOptionRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionRequest","product":"core","slug":"libtmux-getoptionrequest"},{"id":"LibTmux.GetOptionRequest.GetOptionRequest","name":"GetOptionRequest","kind":"method","modifiers":[],"parent":"LibTmux.GetOptionRequest","signatures":[{"params":[{"name":"name","type":"string","doc":"The option to read."}]}],"doc":{"summary":"Initializes a request for one option."},"source":{"file":"src/LibTmux/Requests/GetOptionRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionRequest.GetOptionRequest","product":"core","slug":"libtmux-getoptionrequest-getoptionrequest"},{"id":"LibTmux.GetOptionRequest.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionRequest","signatures":[],"type":"string","doc":{"summary":"Gets the option to read.","body":"tmux expands it as a format before it names anything, so a # in\nit does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/GetOptionRequest.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionRequest.Name","product":"core","slug":"libtmux-getoptionrequest-name"},{"id":"LibTmux.GetOptionRequest.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionRequest","signatures":[],"type":"OptionScope?","doc":{"summary":"Gets the scope to read in, or null for the owner's own."},"source":{"file":"src/LibTmux/Requests/GetOptionRequest.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionRequest.Scope","product":"core","slug":"libtmux-getoptionrequest-scope"},{"id":"LibTmux.GetOptionRequest.Global","name":"Global","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the global table is read instead of the local one."},"source":{"file":"src/LibTmux/Requests/GetOptionRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionRequest.Global","product":"core","slug":"libtmux-getoptionrequest-global"},{"id":"LibTmux.GetOptionRequest.IncludeHooks","name":"IncludeHooks","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether hooks are listed alongside options."},"source":{"file":"src/LibTmux/Requests/GetOptionRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionRequest.IncludeHooks","product":"core","slug":"libtmux-getoptionrequest-includehooks"},{"id":"LibTmux.GetOptionRequest.IncludeInherited","name":"IncludeInherited","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether values inherited from a parent scope are included."},"source":{"file":"src/LibTmux/Requests/GetOptionRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionRequest.IncludeInherited","product":"core","slug":"libtmux-getoptionrequest-includeinherited"},{"id":"LibTmux.GetOptionRequest.Quiet","name":"Quiet","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a missing option is answered with nothing instead of an error."},"source":{"file":"src/LibTmux/Requests/GetOptionRequest.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionRequest.Quiet","product":"core","slug":"libtmux-getoptionrequest-quiet"},{"id":"LibTmux.GetOptionRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.GetOptionRequest","signatures":[{"params":[{"name":"options","type":"TmuxOptions","doc":"The options handle whose scope is read."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a named option read as one tmux command.","body":"A chain returns one combined output stream, so several reads batched\ntogether arrive undelimited. Reach for this to read something beside\nthe changes a chain makes; reach for the handle's own accessor when\nwhat you want is a parsed value."},"source":{"file":"src/LibTmux/Requests/GetOptionRequest.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionRequest.ToCommand","product":"core","slug":"libtmux-getoptionrequest-tocommand"},{"id":"LibTmux.GetOptionsRequest","name":"GetOptionsRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one show-options invocation for every option in a scope."},"source":{"file":"src/LibTmux/Requests/GetOptionsRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionsRequest","product":"core","slug":"libtmux-getoptionsrequest"},{"id":"LibTmux.GetOptionsRequest.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionsRequest","signatures":[],"type":"OptionScope?","doc":{"summary":"Gets the scope to read in, or null for the owner's own."},"source":{"file":"src/LibTmux/Requests/GetOptionsRequest.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionsRequest.Scope","product":"core","slug":"libtmux-getoptionsrequest-scope"},{"id":"LibTmux.GetOptionsRequest.Global","name":"Global","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionsRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the global table is read instead of the local one."},"source":{"file":"src/LibTmux/Requests/GetOptionsRequest.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionsRequest.Global","product":"core","slug":"libtmux-getoptionsrequest-global"},{"id":"LibTmux.GetOptionsRequest.IncludeHooks","name":"IncludeHooks","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionsRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether hooks are listed alongside options."},"source":{"file":"src/LibTmux/Requests/GetOptionsRequest.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionsRequest.IncludeHooks","product":"core","slug":"libtmux-getoptionsrequest-includehooks"},{"id":"LibTmux.GetOptionsRequest.IncludeInherited","name":"IncludeInherited","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionsRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether values inherited from a parent scope are included."},"source":{"file":"src/LibTmux/Requests/GetOptionsRequest.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionsRequest.IncludeInherited","product":"core","slug":"libtmux-getoptionsrequest-includeinherited"},{"id":"LibTmux.GetOptionsRequest.Quiet","name":"Quiet","kind":"property","modifiers":[],"parent":"LibTmux.GetOptionsRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether an empty table is answered with nothing instead of an error."},"source":{"file":"src/LibTmux/Requests/GetOptionsRequest.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionsRequest.Quiet","product":"core","slug":"libtmux-getoptionsrequest-quiet"},{"id":"LibTmux.GetOptionsRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.GetOptionsRequest","signatures":[{"params":[{"name":"options","type":"TmuxOptions","doc":"The options handle whose scope is read."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a whole-scope option read as one tmux command."},"source":{"file":"src/LibTmux/Requests/GetOptionsRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.GetOptionsRequest.ToCommand","product":"core","slug":"libtmux-getoptionsrequest-tocommand"},{"id":"LibTmux.HookRequest","name":"HookRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one hook to read, run, or unset."},"source":{"file":"src/LibTmux/Requests/HookRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.HookRequest","product":"core","slug":"libtmux-hookrequest"},{"id":"LibTmux.HookRequest.HookRequest","name":"HookRequest","kind":"method","modifiers":[],"parent":"LibTmux.HookRequest","signatures":[{"params":[{"name":"name","type":"string","doc":"The hook name."}]}],"doc":{"summary":"Initializes a request naming one hook."},"source":{"file":"src/LibTmux/Requests/HookRequest.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.HookRequest.HookRequest","product":"core","slug":"libtmux-hookrequest-hookrequest"},{"id":"LibTmux.HookRequest.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.HookRequest","signatures":[],"type":"string","doc":{"summary":"Gets the hook name.","body":"tmux expands it as a format before it names anything, so a # in\nit does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/HookRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.HookRequest.Name","product":"core","slug":"libtmux-hookrequest-name"},{"id":"LibTmux.HookRequest.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.HookRequest","signatures":[],"type":"OptionScope?","doc":{"summary":"Gets the scope to reach it in, or null for the owner's own."},"source":{"file":"src/LibTmux/Requests/HookRequest.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.HookRequest.Scope","product":"core","slug":"libtmux-hookrequest-scope"},{"id":"LibTmux.HookRequest.Global","name":"Global","kind":"property","modifiers":[],"parent":"LibTmux.HookRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the global table is used instead of the local one."},"source":{"file":"src/LibTmux/Requests/HookRequest.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.HookRequest.Global","product":"core","slug":"libtmux-hookrequest-global"},{"id":"LibTmux.IfShellRequest","name":"IfShellRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one if-shell invocation."},"source":{"file":"src/LibTmux/Requests/IfShellRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IfShellRequest","product":"core","slug":"libtmux-ifshellrequest"},{"id":"LibTmux.IfShellRequest.IfShellRequest","name":"IfShellRequest","kind":"method","modifiers":[],"parent":"LibTmux.IfShellRequest","signatures":[{"params":[{"name":"shellCommand","type":"string","doc":"The shell command whose success decides."},{"name":"thenCommand","type":"IReadOnlyList","doc":"The tmux command run when it succeeds."}]}],"doc":{"summary":"Initializes a conditional command."},"source":{"file":"src/LibTmux/Requests/IfShellRequest.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IfShellRequest.IfShellRequest","product":"core","slug":"libtmux-ifshellrequest-ifshellrequest"},{"id":"LibTmux.IfShellRequest.ShellCommand","name":"ShellCommand","kind":"property","modifiers":[],"parent":"LibTmux.IfShellRequest","signatures":[],"type":"string","doc":{"summary":"Gets the shell command whose success decides.","body":"tmux expands it as a format before running it, so a # in it does\nnot survive verbatim."},"source":{"file":"src/LibTmux/Requests/IfShellRequest.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IfShellRequest.ShellCommand","product":"core","slug":"libtmux-ifshellrequest-shellcommand"},{"id":"LibTmux.IfShellRequest.ThenCommand","name":"ThenCommand","kind":"property","modifiers":[],"parent":"LibTmux.IfShellRequest","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the tmux command run when it succeeds."},"source":{"file":"src/LibTmux/Requests/IfShellRequest.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IfShellRequest.ThenCommand","product":"core","slug":"libtmux-ifshellrequest-thencommand"},{"id":"LibTmux.IfShellRequest.ElseCommand","name":"ElseCommand","kind":"property","modifiers":[],"parent":"LibTmux.IfShellRequest","signatures":[],"type":"IReadOnlyList?","doc":{"summary":"Gets the tmux command run when it fails, when any."},"source":{"file":"src/LibTmux/Requests/IfShellRequest.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IfShellRequest.ElseCommand","product":"core","slug":"libtmux-ifshellrequest-elsecommand"},{"id":"LibTmux.IfShellRequest.Background","name":"Background","kind":"property","modifiers":[],"parent":"LibTmux.IfShellRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether tmux runs the shell command without waiting."},"source":{"file":"src/LibTmux/Requests/IfShellRequest.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IfShellRequest.Background","product":"core","slug":"libtmux-ifshellrequest-background"},{"id":"LibTmux.IfShellRequest.TargetPane","name":"TargetPane","kind":"property","modifiers":[],"parent":"LibTmux.IfShellRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the pane the commands run against."},"source":{"file":"src/LibTmux/Requests/IfShellRequest.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IfShellRequest.TargetPane","product":"core","slug":"libtmux-ifshellrequest-targetpane"},{"id":"LibTmux.IfShellRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.IfShellRequest","signatures":[{"params":[],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a ."}],"doc":{"summary":"Returns a conditional request as one tmux command."},"source":{"file":"src/LibTmux/Requests/IfShellRequest.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.IfShellRequest.ToCommand","product":"core","slug":"libtmux-ifshellrequest-tocommand"},{"id":"LibTmux.LinkWindowRequest","name":"LinkWindowRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one link-window invocation."},"source":{"file":"src/LibTmux/Requests/LinkWindowRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LinkWindowRequest","product":"core","slug":"libtmux-linkwindowrequest"},{"id":"LibTmux.LinkWindowRequest.LinkWindowRequest","name":"LinkWindowRequest","kind":"method","modifiers":[],"parent":"LibTmux.LinkWindowRequest","signatures":[{"params":[{"name":"targetSession","type":"string","doc":"The session the window is linked into."}],"raises":[{"type":"ArgumentException","doc":" is blank."}]}],"doc":{"summary":"Initializes a window-link request."},"source":{"file":"src/LibTmux/Requests/LinkWindowRequest.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LinkWindowRequest.LinkWindowRequest","product":"core","slug":"libtmux-linkwindowrequest-linkwindowrequest"},{"id":"LibTmux.LinkWindowRequest.TargetSession","name":"TargetSession","kind":"property","modifiers":[],"parent":"LibTmux.LinkWindowRequest","signatures":[],"type":"string","doc":{"summary":"Gets the session the window is linked into."},"source":{"file":"src/LibTmux/Requests/LinkWindowRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LinkWindowRequest.TargetSession","product":"core","slug":"libtmux-linkwindowrequest-targetsession"},{"id":"LibTmux.LinkWindowRequest.TargetIndex","name":"TargetIndex","kind":"property","modifiers":[],"parent":"LibTmux.LinkWindowRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the index to link at, or null for the next free one."},"source":{"file":"src/LibTmux/Requests/LinkWindowRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LinkWindowRequest.TargetIndex","product":"core","slug":"libtmux-linkwindowrequest-targetindex"},{"id":"LibTmux.LinkWindowRequest.Direction","name":"Direction","kind":"property","modifiers":[],"parent":"LibTmux.LinkWindowRequest","signatures":[],"type":"WindowDirection?","doc":{"summary":"Gets whether to insert before or after the target.","body":"Without an index tmux inserts relative to the destination session's\ncurrent window, not its first or last."},"source":{"file":"src/LibTmux/Requests/LinkWindowRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LinkWindowRequest.Direction","product":"core","slug":"libtmux-linkwindowrequest-direction"},{"id":"LibTmux.LinkWindowRequest.ReplaceExisting","name":"ReplaceExisting","kind":"property","modifiers":[],"parent":"LibTmux.LinkWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a window already at the index is replaced."},"source":{"file":"src/LibTmux/Requests/LinkWindowRequest.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LinkWindowRequest.ReplaceExisting","product":"core","slug":"libtmux-linkwindowrequest-replaceexisting"},{"id":"LibTmux.LinkWindowRequest.Detach","name":"Detach","kind":"property","modifiers":[],"parent":"LibTmux.LinkWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the linked window is left unselected."},"source":{"file":"src/LibTmux/Requests/LinkWindowRequest.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LinkWindowRequest.Detach","product":"core","slug":"libtmux-linkwindowrequest-detach"},{"id":"LibTmux.LinkWindowRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.LinkWindowRequest","signatures":[{"params":[{"name":"window","type":"Window","doc":"The window being linked."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a link request as one tmux command.","body":"The source names the session and index captured with the window."},"source":{"file":"src/LibTmux/Requests/LinkWindowRequest.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.LinkWindowRequest.ToCommand","product":"core","slug":"libtmux-linkwindowrequest-tocommand"},{"id":"LibTmux.ListBuffersRequest","name":"ListBuffersRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one list-buffers invocation."},"source":{"file":"src/LibTmux/Requests/ListBuffersRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ListBuffersRequest","product":"core","slug":"libtmux-listbuffersrequest"},{"id":"LibTmux.ListBuffersRequest.Format","name":"Format","kind":"property","modifiers":[],"parent":"LibTmux.ListBuffersRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the tmux format each buffer is rendered with."},"source":{"file":"src/LibTmux/Requests/ListBuffersRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ListBuffersRequest.Format","product":"core","slug":"libtmux-listbuffersrequest-format"},{"id":"LibTmux.ListBuffersRequest.Filter","name":"Filter","kind":"property","modifiers":[],"parent":"LibTmux.ListBuffersRequest","signatures":[],"type":"UnsafeTmuxFilter?","doc":{"summary":"Gets the tmux filter expression, kept as written."},"source":{"file":"src/LibTmux/Requests/ListBuffersRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ListBuffersRequest.Filter","product":"core","slug":"libtmux-listbuffersrequest-filter"},{"id":"LibTmux.ListBuffersRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.ListBuffersRequest","signatures":[{"params":[],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a ."}],"doc":{"summary":"Returns a buffer-listing request as one tmux command."},"source":{"file":"src/LibTmux/Requests/ListBuffersRequest.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ListBuffersRequest.ToCommand","product":"core","slug":"libtmux-listbuffersrequest-tocommand"},{"id":"LibTmux.ListHooksRequest","name":"ListHooksRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one show-hooks invocation."},"source":{"file":"src/LibTmux/Requests/ListHooksRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ListHooksRequest","product":"core","slug":"libtmux-listhooksrequest"},{"id":"LibTmux.ListHooksRequest.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.ListHooksRequest","signatures":[],"type":"OptionScope?","doc":{"summary":"Gets the scope to read, or null for the owner's own."},"source":{"file":"src/LibTmux/Requests/ListHooksRequest.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ListHooksRequest.Scope","product":"core","slug":"libtmux-listhooksrequest-scope"},{"id":"LibTmux.ListHooksRequest.Global","name":"Global","kind":"property","modifiers":[],"parent":"LibTmux.ListHooksRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the global table is read instead of the local one."},"source":{"file":"src/LibTmux/Requests/ListHooksRequest.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ListHooksRequest.Global","product":"core","slug":"libtmux-listhooksrequest-global"},{"id":"LibTmux.ListHooksRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.ListHooksRequest","signatures":[{"params":[{"name":"hooks","type":"TmuxHooks","doc":"The hooks handle whose scope is listed."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a hook listing as one tmux command.","body":"A chain returns one combined output stream, so batch a listing to see\nwhat the same invocation just installed. \nanswers the same question with the hooks already parsed."},"source":{"file":"src/LibTmux/Requests/ListHooksRequest.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ListHooksRequest.ToCommand","product":"core","slug":"libtmux-listhooksrequest-tocommand"},{"id":"LibTmux.MovePaneRequest","name":"MovePaneRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one move-pane or join-pane invocation."},"source":{"file":"src/LibTmux/Requests/MovePaneRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MovePaneRequest","product":"core","slug":"libtmux-movepanerequest"},{"id":"LibTmux.MovePaneRequest.MovePaneRequest","name":"MovePaneRequest","kind":"method","modifiers":[],"parent":"LibTmux.MovePaneRequest","signatures":[{"params":[{"name":"target","type":"string","doc":"The pane or window to move against."}],"raises":[{"type":"ArgumentException","doc":" is blank."}]}],"doc":{"summary":"Initializes a pane-move request."},"source":{"file":"src/LibTmux/Requests/MovePaneRequest.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MovePaneRequest.MovePaneRequest","product":"core","slug":"libtmux-movepanerequest-movepanerequest"},{"id":"LibTmux.MovePaneRequest.Target","name":"Target","kind":"property","modifiers":[],"parent":"LibTmux.MovePaneRequest","signatures":[],"type":"string","doc":{"summary":"Gets the pane or window to move against."},"source":{"file":"src/LibTmux/Requests/MovePaneRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MovePaneRequest.Target","product":"core","slug":"libtmux-movepanerequest-target"},{"id":"LibTmux.MovePaneRequest.Direction","name":"Direction","kind":"property","modifiers":[],"parent":"LibTmux.MovePaneRequest","signatures":[],"type":"PaneDirection","doc":{"summary":"Gets which side of the target the pane lands on.","body":"Only the axis comes from the direction; landing before the target is\n, which an above or left direction implies."},"source":{"file":"src/LibTmux/Requests/MovePaneRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MovePaneRequest.Direction","product":"core","slug":"libtmux-movepanerequest-direction"},{"id":"LibTmux.MovePaneRequest.Size","name":"Size","kind":"property","modifiers":[],"parent":"LibTmux.MovePaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the size in cells or as a percentage.","body":"Sent as one sizing flag on every supported tmux, because the percentage\nflag is broken from 3.4 through 3.6."},"source":{"file":"src/LibTmux/Requests/MovePaneRequest.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MovePaneRequest.Size","product":"core","slug":"libtmux-movepanerequest-size"},{"id":"LibTmux.MovePaneRequest.Detach","name":"Detach","kind":"property","modifiers":[],"parent":"LibTmux.MovePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the moved pane is left unselected."},"source":{"file":"src/LibTmux/Requests/MovePaneRequest.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MovePaneRequest.Detach","product":"core","slug":"libtmux-movepanerequest-detach"},{"id":"LibTmux.MovePaneRequest.FullWindow","name":"FullWindow","kind":"property","modifiers":[],"parent":"LibTmux.MovePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the split spans the whole window."},"source":{"file":"src/LibTmux/Requests/MovePaneRequest.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MovePaneRequest.FullWindow","product":"core","slug":"libtmux-movepanerequest-fullwindow"},{"id":"LibTmux.MovePaneRequest.Before","name":"Before","kind":"property","modifiers":[],"parent":"LibTmux.MovePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane lands before the target."},"source":{"file":"src/LibTmux/Requests/MovePaneRequest.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MovePaneRequest.Before","product":"core","slug":"libtmux-movepanerequest-before"},{"id":"LibTmux.MovePaneRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.MovePaneRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane being moved."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a pane-move request as one tmux command."},"source":{"file":"src/LibTmux/Requests/MovePaneRequest.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MovePaneRequest.ToCommand","product":"core","slug":"libtmux-movepanerequest-tocommand"},{"id":"LibTmux.MoveWindowRequest","name":"MoveWindowRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one move-window invocation."},"source":{"file":"src/LibTmux/Requests/MoveWindowRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MoveWindowRequest","product":"core","slug":"libtmux-movewindowrequest"},{"id":"LibTmux.MoveWindowRequest.Destination","name":"Destination","kind":"property","modifiers":[],"parent":"LibTmux.MoveWindowRequest","signatures":[],"type":"string","doc":{"summary":"Gets the window part of the target, empty for the next free index."},"source":{"file":"src/LibTmux/Requests/MoveWindowRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MoveWindowRequest.Destination","product":"core","slug":"libtmux-movewindowrequest-destination"},{"id":"LibTmux.MoveWindowRequest.Session","name":"Session","kind":"property","modifiers":[],"parent":"LibTmux.MoveWindowRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the destination session, or null for the window's own."},"source":{"file":"src/LibTmux/Requests/MoveWindowRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MoveWindowRequest.Session","product":"core","slug":"libtmux-movewindowrequest-session"},{"id":"LibTmux.MoveWindowRequest.Direction","name":"Direction","kind":"property","modifiers":[],"parent":"LibTmux.MoveWindowRequest","signatures":[],"type":"WindowDirection?","doc":{"summary":"Gets whether to insert before or after the destination.","body":"A relative target or a numeric index with no window inserts beside the\ndestination session's active window, following tmux target resolution."},"source":{"file":"src/LibTmux/Requests/MoveWindowRequest.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MoveWindowRequest.Direction","product":"core","slug":"libtmux-movewindowrequest-direction"},{"id":"LibTmux.MoveWindowRequest.NoSelect","name":"NoSelect","kind":"property","modifiers":[],"parent":"LibTmux.MoveWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the moved window is left unselected."},"source":{"file":"src/LibTmux/Requests/MoveWindowRequest.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MoveWindowRequest.NoSelect","product":"core","slug":"libtmux-movewindowrequest-noselect"},{"id":"LibTmux.MoveWindowRequest.ReplaceExisting","name":"ReplaceExisting","kind":"property","modifiers":[],"parent":"LibTmux.MoveWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a window already at the index is replaced."},"source":{"file":"src/LibTmux/Requests/MoveWindowRequest.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MoveWindowRequest.ReplaceExisting","product":"core","slug":"libtmux-movewindowrequest-replaceexisting"},{"id":"LibTmux.MoveWindowRequest.Renumber","name":"Renumber","kind":"property","modifiers":[],"parent":"LibTmux.MoveWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the destination session's windows are renumbered.","body":"tmux renumbers and returns without moving anything, ignoring every other\nflag on the request, so this is a renumber request rather than a move\nthat also renumbers."},"source":{"file":"src/LibTmux/Requests/MoveWindowRequest.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MoveWindowRequest.Renumber","product":"core","slug":"libtmux-movewindowrequest-renumber"},{"id":"LibTmux.MoveWindowRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.MoveWindowRequest","signatures":[{"params":[{"name":"window","type":"Window","doc":"The window being moved."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a window-move request as one tmux command."},"source":{"file":"src/LibTmux/Requests/MoveWindowRequest.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.MoveWindowRequest.ToCommand","product":"core","slug":"libtmux-movewindowrequest-tocommand"},{"id":"LibTmux.NewPaneRequest","name":"NewPaneRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one new-pane invocation.","body":"new-pane arrived in tmux 3.7. Unlike a split it places a floating\npane, so it carries a position as well as a size."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest","product":"core","slug":"libtmux-newpanerequest"},{"id":"LibTmux.NewPaneRequest.Target","name":"Target","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the window or pane to place against."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Target","product":"core","slug":"libtmux-newpanerequest-target"},{"id":"LibTmux.NewPaneRequest.StartDirectory","name":"StartDirectory","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the working directory for the new pane.","body":"tmux expands it as a format before it changes directory, so a #\nin it does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.StartDirectory","product":"core","slug":"libtmux-newpanerequest-startdirectory"},{"id":"LibTmux.NewPaneRequest.Attach","name":"Attach","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the new pane becomes active."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Attach","product":"core","slug":"libtmux-newpanerequest-attach"},{"id":"LibTmux.NewPaneRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the command the new pane runs."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Command","product":"core","slug":"libtmux-newpanerequest-command"},{"id":"LibTmux.NewPaneRequest.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"IReadOnlyDictionary?","doc":{"summary":"Gets the environment entries set on the new pane."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Environment","product":"core","slug":"libtmux-newpanerequest-environment"},{"id":"LibTmux.NewPaneRequest.Width","name":"Width","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"int?","doc":{"summary":"Gets the pane width in cells."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Width","product":"core","slug":"libtmux-newpanerequest-width"},{"id":"LibTmux.NewPaneRequest.Height","name":"Height","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"int?","doc":{"summary":"Gets the pane height in cells."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":62,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Height","product":"core","slug":"libtmux-newpanerequest-height"},{"id":"LibTmux.NewPaneRequest.X","name":"X","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"int?","doc":{"summary":"Gets the column to place the pane at."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.X","product":"core","slug":"libtmux-newpanerequest-x"},{"id":"LibTmux.NewPaneRequest.Y","name":"Y","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"int?","doc":{"summary":"Gets the row to place the pane at."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":88,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Y","product":"core","slug":"libtmux-newpanerequest-y"},{"id":"LibTmux.NewPaneRequest.Zoom","name":"Zoom","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the new pane is zoomed."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":100,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Zoom","product":"core","slug":"libtmux-newpanerequest-zoom"},{"id":"LibTmux.NewPaneRequest.Empty","name":"Empty","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane starts with no command."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":103,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Empty","product":"core","slug":"libtmux-newpanerequest-empty"},{"id":"LibTmux.NewPaneRequest.Style","name":"Style","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the pane style."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":106,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Style","product":"core","slug":"libtmux-newpanerequest-style"},{"id":"LibTmux.NewPaneRequest.ActiveBorderStyle","name":"ActiveBorderStyle","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the border style while the pane is active."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":109,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.ActiveBorderStyle","product":"core","slug":"libtmux-newpanerequest-activeborderstyle"},{"id":"LibTmux.NewPaneRequest.InactiveBorderStyle","name":"InactiveBorderStyle","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the border style while the pane is not active."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":112,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.InactiveBorderStyle","product":"core","slug":"libtmux-newpanerequest-inactiveborderstyle"},{"id":"LibTmux.NewPaneRequest.Message","name":"Message","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the message shown in the pane."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":115,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.Message","product":"core","slug":"libtmux-newpanerequest-message"},{"id":"LibTmux.NewPaneRequest.KeepOpen","name":"KeepOpen","kind":"property","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane stays after its command exits."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":118,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.KeepOpen","product":"core","slug":"libtmux-newpanerequest-keepopen"},{"id":"LibTmux.NewPaneRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.NewPaneRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane the new one is created from."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."},{"type":"TmuxVersionTooLowException","doc":"tmux is older than 3.7."}]}],"doc":{"summary":"Returns a floating-pane request as one tmux command.","body":"The command arrived whole in tmux 3.7, so batching does not soften the\nrefusal below that: an older server has nothing to send it to."},"source":{"file":"src/LibTmux/Requests/NewPaneRequest.cs","line":148,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewPaneRequest.ToCommand","product":"core","slug":"libtmux-newpanerequest-tocommand"},{"id":"LibTmux.NewSessionRequest","name":"NewSessionRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one new-session invocation.","body":"Every flag is explicit rather than inferred, so the argv tmux receives is\nreadable from the call site instead of assembled by hidden defaults."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest","product":"core","slug":"libtmux-newsessionrequest"},{"id":"LibTmux.NewSessionRequest.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the session name, or null to let tmux choose.","body":"tmux expands the name as a format, so a # in it does not survive\nverbatim."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.Name","product":"core","slug":"libtmux-newsessionrequest-name"},{"id":"LibTmux.NewSessionRequest.ReplaceExisting","name":"ReplaceExisting","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a session of the same name is removed first."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.ReplaceExisting","product":"core","slug":"libtmux-newsessionrequest-replaceexisting"},{"id":"LibTmux.NewSessionRequest.ExpectedGeneration","name":"ExpectedGeneration","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"ServerGeneration?","doc":{"summary":"Gets the daemon generation required for creation, or null for endpoint-scoped creation.","body":"Use a generation obtained from \nto refuse creation on a replacement daemon. An absent daemon is never\nstarted and its configuration is not loaded. Cannot be combined with\n."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.ExpectedGeneration","product":"core","slug":"libtmux-newsessionrequest-expectedgeneration"},{"id":"LibTmux.NewSessionRequest.Attach","name":"Attach","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the new session is attached rather than detached."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.Attach","product":"core","slug":"libtmux-newsessionrequest-attach"},{"id":"LibTmux.NewSessionRequest.StartDirectory","name":"StartDirectory","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the working directory for the first pane.","body":"tmux expands it as a format before it changes directory, so a #\nin it does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.StartDirectory","product":"core","slug":"libtmux-newsessionrequest-startdirectory"},{"id":"LibTmux.NewSessionRequest.WindowName","name":"WindowName","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the name of the first window.","body":"tmux expands it as a format before it names anything, so a # in\nit does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":62,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.WindowName","product":"core","slug":"libtmux-newsessionrequest-windowname"},{"id":"LibTmux.NewSessionRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the command the first pane runs."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":65,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.Command","product":"core","slug":"libtmux-newsessionrequest-command"},{"id":"LibTmux.NewSessionRequest.Width","name":"Width","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the requested width."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.Width","product":"core","slug":"libtmux-newsessionrequest-width"},{"id":"LibTmux.NewSessionRequest.Height","name":"Height","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the requested height."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":71,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.Height","product":"core","slug":"libtmux-newsessionrequest-height"},{"id":"LibTmux.NewSessionRequest.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"IReadOnlyDictionary?","doc":{"summary":"Gets the environment entries set on the session."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.Environment","product":"core","slug":"libtmux-newsessionrequest-environment"},{"id":"LibTmux.NewSessionRequest.DetachOthers","name":"DetachOthers","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether other clients are detached on attach."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.DetachOthers","product":"core","slug":"libtmux-newsessionrequest-detachothers"},{"id":"LibTmux.NewSessionRequest.NoSize","name":"NoSize","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether tmux may ignore the requested size."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":90,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.NoSize","product":"core","slug":"libtmux-newsessionrequest-nosize"},{"id":"LibTmux.NewSessionRequest.ClientFlags","name":"ClientFlags","kind":"property","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the comma-separated client flags passed with -f."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":93,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.ClientFlags","product":"core","slug":"libtmux-newsessionrequest-clientflags"},{"id":"LibTmux.NewSessionRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.NewSessionRequest","signatures":[{"params":[],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentException","doc":"The name is blank or contains ':' or '.', or generation-bound creation requests replacement."}]}],"doc":{"summary":"Returns a session request as one tmux command."},"source":{"file":"src/LibTmux/Requests/NewSessionRequest.cs","line":98,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewSessionRequest.ToCommand","product":"core","slug":"libtmux-newsessionrequest-tocommand"},{"id":"LibTmux.NewWindowRequest","name":"NewWindowRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one new-window invocation."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest","product":"core","slug":"libtmux-newwindowrequest"},{"id":"LibTmux.NewWindowRequest.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the window name.","body":"tmux expands the name as a format, so a # in it does not survive\nverbatim."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.Name","product":"core","slug":"libtmux-newwindowrequest-name"},{"id":"LibTmux.NewWindowRequest.StartDirectory","name":"StartDirectory","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the working directory for the first pane.","body":"tmux expands it as a format before it changes directory, so a #\nin it does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.StartDirectory","product":"core","slug":"libtmux-newwindowrequest-startdirectory"},{"id":"LibTmux.NewWindowRequest.Attach","name":"Attach","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the new window becomes current."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.Attach","product":"core","slug":"libtmux-newwindowrequest-attach"},{"id":"LibTmux.NewWindowRequest.Index","name":"Index","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the window index to create at."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.Index","product":"core","slug":"libtmux-newwindowrequest-index"},{"id":"LibTmux.NewWindowRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the command the first pane runs."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.Command","product":"core","slug":"libtmux-newwindowrequest-command"},{"id":"LibTmux.NewWindowRequest.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"IReadOnlyDictionary?","doc":{"summary":"Gets the environment entries set on the window."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.Environment","product":"core","slug":"libtmux-newwindowrequest-environment"},{"id":"LibTmux.NewWindowRequest.Direction","name":"Direction","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"WindowDirection?","doc":{"summary":"Gets whether to insert before or after the target."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.Direction","product":"core","slug":"libtmux-newwindowrequest-direction"},{"id":"LibTmux.NewWindowRequest.TargetWindow","name":"TargetWindow","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the window to insert relative to."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.TargetWindow","product":"core","slug":"libtmux-newwindowrequest-targetwindow"},{"id":"LibTmux.NewWindowRequest.KillExisting","name":"KillExisting","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether an existing window at the index is replaced."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":53,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.KillExisting","product":"core","slug":"libtmux-newwindowrequest-killexisting"},{"id":"LibTmux.NewWindowRequest.SelectExisting","name":"SelectExisting","kind":"property","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether an existing window is selected instead."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.SelectExisting","product":"core","slug":"libtmux-newwindowrequest-selectexisting"},{"id":"LibTmux.NewWindowRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.NewWindowRequest","signatures":[{"params":[{"name":"session","type":"Session","doc":"The session the window is created in."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a window request as one tmux command."},"source":{"file":"src/LibTmux/Requests/NewWindowRequest.cs","line":92,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.NewWindowRequest.ToCommand","product":"core","slug":"libtmux-newwindowrequest-tocommand"},{"id":"LibTmux.PaneRunRequest","name":"PaneRunRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes a shell command to run in a pane and wait for."},"source":{"file":"src/LibTmux/Requests/PaneRunRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunRequest","product":"core","slug":"libtmux-panerunrequest"},{"id":"LibTmux.PaneRunRequest.PaneRunRequest","name":"PaneRunRequest","kind":"method","modifiers":[],"parent":"LibTmux.PaneRunRequest","signatures":[{"params":[{"name":"command","type":"string","doc":"The shell command, run in a subshell of the pane's shell."}],"raises":[{"type":"ArgumentException","doc":" is blank."}]}],"doc":{"summary":"Initializes a run request."},"source":{"file":"src/LibTmux/Requests/PaneRunRequest.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunRequest.PaneRunRequest","product":"core","slug":"libtmux-panerunrequest-panerunrequest"},{"id":"LibTmux.PaneRunRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunRequest","signatures":[],"type":"string","doc":{"summary":"Gets the shell command."},"source":{"file":"src/LibTmux/Requests/PaneRunRequest.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunRequest.Command","product":"core","slug":"libtmux-panerunrequest-command"},{"id":"LibTmux.PaneRunRequest.Timeout","name":"Timeout","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunRequest","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets how long to wait for the command to finish."},"source":{"file":"src/LibTmux/Requests/PaneRunRequest.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunRequest.Timeout","product":"core","slug":"libtmux-panerunrequest-timeout"},{"id":"LibTmux.PaneRunRequest.KeepOutOfHistory","name":"KeepOutOfHistory","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the line the shell reads starts with a space, which many shells keep out of history."},"source":{"file":"src/LibTmux/Requests/PaneRunRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunRequest.KeepOutOfHistory","product":"core","slug":"libtmux-panerunrequest-keepoutofhistory"},{"id":"LibTmux.PaneRunRequest.MaxOutputLines","name":"MaxOutputLines","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunRequest","signatures":[],"type":"int","doc":{"summary":"Gets the most recent rendered output lines to return."},"source":{"file":"src/LibTmux/Requests/PaneRunRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunRequest.MaxOutputLines","product":"core","slug":"libtmux-panerunrequest-maxoutputlines"},{"id":"LibTmux.PaneRunRequest.MaxOutputBytes","name":"MaxOutputBytes","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunRequest","signatures":[],"type":"int","doc":{"summary":"Gets the maximum UTF-8 bytes of rendered output to return."},"source":{"file":"src/LibTmux/Requests/PaneRunRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunRequest.MaxOutputBytes","product":"core","slug":"libtmux-panerunrequest-maxoutputbytes"},{"id":"LibTmux.PaneRunRequest.Validate","name":"Validate","kind":"method","modifiers":[],"parent":"LibTmux.PaneRunRequest","signatures":[{"params":[],"returns":"void","raises":[{"type":"ArgumentException","doc":"The command is blank, contains NUL, or exceeds 65536 UTF-8 bytes."},{"type":"ArgumentOutOfRangeException","doc":"The timeout or output bounds are invalid."}]}],"doc":{"summary":"Validates the request without reading a pane or creating tmux resources."},"source":{"file":"src/LibTmux/Requests/PaneRunRequest.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunRequest.Validate","product":"core","slug":"libtmux-panerunrequest-validate"},{"id":"LibTmux.PaneWaitRequest","name":"PaneWaitRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes rendered output to wait for in a pane.","body":"Patterns are tested line by line, first against the current screen and then\nagainst rows the pane writes or rewrites. Text typed into the pane is output\ntoo; command completion requires ."},"source":{"file":"src/LibTmux/Requests/PaneWaitRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitRequest","product":"core","slug":"libtmux-panewaitrequest"},{"id":"LibTmux.PaneWaitRequest.Patterns","name":"Patterns","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitRequest","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets patterns that end the wait; none means any new output does."},"source":{"file":"src/LibTmux/Requests/PaneWaitRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitRequest.Patterns","product":"core","slug":"libtmux-panewaitrequest-patterns"},{"id":"LibTmux.PaneWaitRequest.StopPatterns","name":"StopPatterns","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitRequest","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets stop patterns, checked before wanted patterns even at entry."},"source":{"file":"src/LibTmux/Requests/PaneWaitRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitRequest.StopPatterns","product":"core","slug":"libtmux-panewaitrequest-stoppatterns"},{"id":"LibTmux.PaneWaitRequest.Timeout","name":"Timeout","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitRequest","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the total time allowed, including attach and captures."},"source":{"file":"src/LibTmux/Requests/PaneWaitRequest.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitRequest.Timeout","product":"core","slug":"libtmux-panewaitrequest-timeout"},{"id":"LibTmux.PaneWaitRequest.AllowPollingFallback","name":"AllowPollingFallback","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitRequest","signatures":[],"type":"bool","doc":{"summary":"Permits observable timed reads when the control stream fails."},"source":{"file":"src/LibTmux/Requests/PaneWaitRequest.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitRequest.AllowPollingFallback","product":"core","slug":"libtmux-panewaitrequest-allowpollingfallback"},{"id":"LibTmux.PaneWaitRequest.TailLines","name":"TailLines","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitRequest","signatures":[],"type":"int","doc":{"summary":"Gets the maximum recent rendered lines returned, from 1 through 1000."},"source":{"file":"src/LibTmux/Requests/PaneWaitRequest.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitRequest.TailLines","product":"core","slug":"libtmux-panewaitrequest-taillines"},{"id":"LibTmux.PaneWaitRequest.MaxOutputBytes","name":"MaxOutputBytes","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitRequest","signatures":[],"type":"int","doc":{"summary":"Gets the maximum UTF-8 bytes returned in the tail, from 1 through 1048576."},"source":{"file":"src/LibTmux/Requests/PaneWaitRequest.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitRequest.MaxOutputBytes","product":"core","slug":"libtmux-panewaitrequest-maxoutputbytes"},{"id":"LibTmux.PaneWaitRequest.FromTextPatterns","name":"FromTextPatterns","kind":"method","modifiers":["static"],"parent":"LibTmux.PaneWaitRequest","signatures":[{"params":[{"name":"patterns","type":"IReadOnlyList?","default":"null","doc":"Wanted patterns, or null for any new output."},{"name":"stopPatterns","type":"IReadOnlyList?","default":"null","doc":"Patterns that stop the wait."},{"name":"ignoreCase","type":"bool","default":"false","doc":"Whether text matching ignores case."},{"name":"simpleMatch","type":"bool","default":"false","doc":"Whether pattern text is matched literally."}],"returns":"PaneWaitRequest","returnsDoc":"A request with owned, bounded regular expressions.","raises":[{"type":"ArgumentException","doc":"A pattern is empty, oversized, or invalid."}]}],"doc":{"summary":"Builds a request from text patterns while retaining their original spelling."},"source":{"file":"src/LibTmux/Requests/PaneWaitRequest.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitRequest.FromTextPatterns","product":"core","slug":"libtmux-panewaitrequest-fromtextpatterns"},{"id":"LibTmux.PaneWaitRequest.Validate","name":"Validate","kind":"method","modifiers":[],"parent":"LibTmux.PaneWaitRequest","signatures":[{"params":[],"returns":"void"}],"doc":{"summary":"Validates and copies bounded patterns before pane I/O."},"source":{"file":"src/LibTmux/Requests/PaneWaitRequest.cs","line":84,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitRequest.Validate","product":"core","slug":"libtmux-panewaitrequest-validate"},{"id":"LibTmux.PasteBufferRequest","name":"PasteBufferRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one paste-buffer invocation."},"source":{"file":"src/LibTmux/Requests/PasteBufferRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PasteBufferRequest","product":"core","slug":"libtmux-pastebufferrequest"},{"id":"LibTmux.PasteBufferRequest.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.PasteBufferRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the buffer to paste, or null for the most recent."},"source":{"file":"src/LibTmux/Requests/PasteBufferRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PasteBufferRequest.Name","product":"core","slug":"libtmux-pastebufferrequest-name"},{"id":"LibTmux.PasteBufferRequest.DeleteAfter","name":"DeleteAfter","kind":"property","modifiers":[],"parent":"LibTmux.PasteBufferRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the buffer is deleted once pasted."},"source":{"file":"src/LibTmux/Requests/PasteBufferRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PasteBufferRequest.DeleteAfter","product":"core","slug":"libtmux-pastebufferrequest-deleteafter"},{"id":"LibTmux.PasteBufferRequest.UseLineFeedSeparator","name":"UseLineFeedSeparator","kind":"property","modifiers":[],"parent":"LibTmux.PasteBufferRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether line feeds separate the lines."},"source":{"file":"src/LibTmux/Requests/PasteBufferRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PasteBufferRequest.UseLineFeedSeparator","product":"core","slug":"libtmux-pastebufferrequest-uselinefeedseparator"},{"id":"LibTmux.PasteBufferRequest.Bracketed","name":"Bracketed","kind":"property","modifiers":[],"parent":"LibTmux.PasteBufferRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the paste is bracketed."},"source":{"file":"src/LibTmux/Requests/PasteBufferRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PasteBufferRequest.Bracketed","product":"core","slug":"libtmux-pastebufferrequest-bracketed"},{"id":"LibTmux.PasteBufferRequest.Separator","name":"Separator","kind":"property","modifiers":[],"parent":"LibTmux.PasteBufferRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the separator used between lines."},"source":{"file":"src/LibTmux/Requests/PasteBufferRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PasteBufferRequest.Separator","product":"core","slug":"libtmux-pastebufferrequest-separator"},{"id":"LibTmux.PasteBufferRequest.RawBytes","name":"RawBytes","kind":"property","modifiers":[],"parent":"LibTmux.PasteBufferRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the bytes are pasted without translation.","body":"tmux gained the flag in 3.7. Older servers already paste raw bytes, so\nomitting it there asks for what they already do."},"source":{"file":"src/LibTmux/Requests/PasteBufferRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PasteBufferRequest.RawBytes","product":"core","slug":"libtmux-pastebufferrequest-rawbytes"},{"id":"LibTmux.PasteBufferRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.PasteBufferRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane being pasted into."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a paste request as one tmux command.","body":"Pasting raw bytes arrived in tmux 3.7, so the pane decides whether the\nbuilt command carries that flag."},"source":{"file":"src/LibTmux/Requests/PasteBufferRequest.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PasteBufferRequest.ToCommand","product":"core","slug":"libtmux-pastebufferrequest-tocommand"},{"id":"LibTmux.PipePaneRequest","name":"PipePaneRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one pipe-pane invocation."},"source":{"file":"src/LibTmux/Requests/PipePaneRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PipePaneRequest","product":"core","slug":"libtmux-pipepanerequest"},{"id":"LibTmux.PipePaneRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.PipePaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the command to pipe through, or null to stop piping.","body":"Omitting a command does not leave an existing pipe alone: it stops it."},"source":{"file":"src/LibTmux/Requests/PipePaneRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PipePaneRequest.Command","product":"core","slug":"libtmux-pipepanerequest-command"},{"id":"LibTmux.PipePaneRequest.OutputOnly","name":"OutputOnly","kind":"property","modifiers":[],"parent":"LibTmux.PipePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether only pane output is piped."},"source":{"file":"src/LibTmux/Requests/PipePaneRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PipePaneRequest.OutputOnly","product":"core","slug":"libtmux-pipepanerequest-outputonly"},{"id":"LibTmux.PipePaneRequest.InputOnly","name":"InputOnly","kind":"property","modifiers":[],"parent":"LibTmux.PipePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether only pane input is piped."},"source":{"file":"src/LibTmux/Requests/PipePaneRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PipePaneRequest.InputOnly","product":"core","slug":"libtmux-pipepanerequest-inputonly"},{"id":"LibTmux.PipePaneRequest.Toggle","name":"Toggle","kind":"property","modifiers":[],"parent":"LibTmux.PipePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether an identical existing pipe is stopped instead."},"source":{"file":"src/LibTmux/Requests/PipePaneRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PipePaneRequest.Toggle","product":"core","slug":"libtmux-pipepanerequest-toggle"},{"id":"LibTmux.PipePaneRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.PipePaneRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane being piped."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a pane-piping request as one tmux command."},"source":{"file":"src/LibTmux/Requests/PipePaneRequest.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PipePaneRequest.ToCommand","product":"core","slug":"libtmux-pipepanerequest-tocommand"},{"id":"LibTmux.ResizePaneRequest","name":"ResizePaneRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one resize-pane invocation.","body":"Trimming is an exclusive operation: tmux handles it before sizing, zoom or\nmouse adjustment. Combining those modes would silently ignore the resize."},"source":{"file":"src/LibTmux/Requests/ResizePaneRequest.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizePaneRequest","product":"core","slug":"libtmux-resizepanerequest"},{"id":"LibTmux.ResizePaneRequest.Direction","name":"Direction","kind":"property","modifiers":[],"parent":"LibTmux.ResizePaneRequest","signatures":[],"type":"ResizeDirection?","doc":{"summary":"Gets the edge to move."},"source":{"file":"src/LibTmux/Requests/ResizePaneRequest.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizePaneRequest.Direction","product":"core","slug":"libtmux-resizepanerequest-direction"},{"id":"LibTmux.ResizePaneRequest.Adjustment","name":"Adjustment","kind":"property","modifiers":[],"parent":"LibTmux.ResizePaneRequest","signatures":[],"type":"int?","doc":{"summary":"Gets how many cells to move the edge by."},"source":{"file":"src/LibTmux/Requests/ResizePaneRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizePaneRequest.Adjustment","product":"core","slug":"libtmux-resizepanerequest-adjustment"},{"id":"LibTmux.ResizePaneRequest.Width","name":"Width","kind":"property","modifiers":[],"parent":"LibTmux.ResizePaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the explicit width in cells or as a percentage."},"source":{"file":"src/LibTmux/Requests/ResizePaneRequest.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizePaneRequest.Width","product":"core","slug":"libtmux-resizepanerequest-width"},{"id":"LibTmux.ResizePaneRequest.Height","name":"Height","kind":"property","modifiers":[],"parent":"LibTmux.ResizePaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the explicit height in cells or as a percentage."},"source":{"file":"src/LibTmux/Requests/ResizePaneRequest.cs","line":65,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizePaneRequest.Height","product":"core","slug":"libtmux-resizepanerequest-height"},{"id":"LibTmux.ResizePaneRequest.Zoom","name":"Zoom","kind":"property","modifiers":[],"parent":"LibTmux.ResizePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane's zoom is toggled."},"source":{"file":"src/LibTmux/Requests/ResizePaneRequest.cs","line":77,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizePaneRequest.Zoom","product":"core","slug":"libtmux-resizepanerequest-zoom"},{"id":"LibTmux.ResizePaneRequest.Mouse","name":"Mouse","kind":"property","modifiers":[],"parent":"LibTmux.ResizePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the resize follows the mouse."},"source":{"file":"src/LibTmux/Requests/ResizePaneRequest.cs","line":80,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizePaneRequest.Mouse","product":"core","slug":"libtmux-resizepanerequest-mouse"},{"id":"LibTmux.ResizePaneRequest.TrimBelow","name":"TrimBelow","kind":"property","modifiers":[],"parent":"LibTmux.ResizePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether lines below the cursor are trimmed."},"source":{"file":"src/LibTmux/Requests/ResizePaneRequest.cs","line":83,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizePaneRequest.TrimBelow","product":"core","slug":"libtmux-resizepanerequest-trimbelow"},{"id":"LibTmux.ResizePaneRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.ResizePaneRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane being resized."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a pane-resize request as one tmux command."},"source":{"file":"src/LibTmux/Requests/ResizePaneRequest.cs","line":153,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizePaneRequest.ToCommand","product":"core","slug":"libtmux-resizepanerequest-tocommand"},{"id":"LibTmux.WindowResizeMode","name":"WindowResizeMode","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names how a window is resized against its clients."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowResizeMode","product":"core","slug":"libtmux-windowresizemode"},{"id":"LibTmux.WindowResizeMode.Expand","name":"Expand","kind":"constant","modifiers":[],"parent":"LibTmux.WindowResizeMode","signatures":[],"doc":{"summary":"Size the window to its largest client."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowResizeMode.Expand","product":"core","slug":"libtmux-windowresizemode-expand"},{"id":"LibTmux.WindowResizeMode.Shrink","name":"Shrink","kind":"constant","modifiers":[],"parent":"LibTmux.WindowResizeMode","signatures":[],"doc":{"summary":"Size the window to its smallest client."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowResizeMode.Shrink","product":"core","slug":"libtmux-windowresizemode-shrink"},{"id":"LibTmux.ResizeWindowRequest","name":"ResizeWindowRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one resize-window invocation.","body":"tmux applies a mode after a direction or an explicit size and silently\ndiscards the loser, so the request refuses the ambiguity instead."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeWindowRequest","product":"core","slug":"libtmux-resizewindowrequest"},{"id":"LibTmux.ResizeWindowRequest.Direction","name":"Direction","kind":"property","modifiers":[],"parent":"LibTmux.ResizeWindowRequest","signatures":[],"type":"ResizeDirection?","doc":{"summary":"Gets the edge to move."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeWindowRequest.Direction","product":"core","slug":"libtmux-resizewindowrequest-direction"},{"id":"LibTmux.ResizeWindowRequest.Adjustment","name":"Adjustment","kind":"property","modifiers":[],"parent":"LibTmux.ResizeWindowRequest","signatures":[],"type":"int?","doc":{"summary":"Gets how many cells to move the edge by."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeWindowRequest.Adjustment","product":"core","slug":"libtmux-resizewindowrequest-adjustment"},{"id":"LibTmux.ResizeWindowRequest.Width","name":"Width","kind":"property","modifiers":[],"parent":"LibTmux.ResizeWindowRequest","signatures":[],"type":"int?","doc":{"summary":"Gets the explicit width."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeWindowRequest.Width","product":"core","slug":"libtmux-resizewindowrequest-width"},{"id":"LibTmux.ResizeWindowRequest.Height","name":"Height","kind":"property","modifiers":[],"parent":"LibTmux.ResizeWindowRequest","signatures":[],"type":"int?","doc":{"summary":"Gets the explicit height."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeWindowRequest.Height","product":"core","slug":"libtmux-resizewindowrequest-height"},{"id":"LibTmux.ResizeWindowRequest.Mode","name":"Mode","kind":"property","modifiers":[],"parent":"LibTmux.ResizeWindowRequest","signatures":[],"type":"WindowResizeMode?","doc":{"summary":"Gets the sizing to follow against the window's clients."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":83,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeWindowRequest.Mode","product":"core","slug":"libtmux-resizewindowrequest-mode"},{"id":"LibTmux.ResizeWindowRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.ResizeWindowRequest","signatures":[{"params":[{"name":"window","type":"Window","doc":"The window being resized."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a window-resize request as one tmux command."},"source":{"file":"src/LibTmux/Requests/ResizeWindowRequest.cs","line":148,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ResizeWindowRequest.ToCommand","product":"core","slug":"libtmux-resizewindowrequest-tocommand"},{"id":"LibTmux.RespawnRequest","name":"RespawnRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one respawn-window or respawn-pane invocation.","body":"tmux refuses to respawn anything still running, so a caller who means to\nrestart a live window or pane has to say so with\n."},"source":{"file":"src/LibTmux/Requests/RespawnRequest.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RespawnRequest","product":"core","slug":"libtmux-respawnrequest"},{"id":"LibTmux.RespawnRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.RespawnRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the command to run, or null to reuse the original."},"source":{"file":"src/LibTmux/Requests/RespawnRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RespawnRequest.Command","product":"core","slug":"libtmux-respawnrequest-command"},{"id":"LibTmux.RespawnRequest.StartDirectory","name":"StartDirectory","kind":"property","modifiers":[],"parent":"LibTmux.RespawnRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the working directory to respawn in.","body":"tmux expands it as a format before it changes directory, so a #\nin it does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/RespawnRequest.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RespawnRequest.StartDirectory","product":"core","slug":"libtmux-respawnrequest-startdirectory"},{"id":"LibTmux.RespawnRequest.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.RespawnRequest","signatures":[],"type":"IReadOnlyDictionary?","doc":{"summary":"Gets the environment entries set on the respawned target."},"source":{"file":"src/LibTmux/Requests/RespawnRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RespawnRequest.Environment","product":"core","slug":"libtmux-respawnrequest-environment"},{"id":"LibTmux.RespawnRequest.KillExistingProcess","name":"KillExistingProcess","kind":"property","modifiers":[],"parent":"LibTmux.RespawnRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a running process is killed first.","body":"Respawning a live target fails without this."},"source":{"file":"src/LibTmux/Requests/RespawnRequest.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RespawnRequest.KillExistingProcess","product":"core","slug":"libtmux-respawnrequest-killexistingprocess"},{"id":"LibTmux.RespawnRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.RespawnRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane being respawned."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a respawn request as one tmux command for a pane."},"source":{"file":"src/LibTmux/Requests/RespawnRequest.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RespawnRequest.ToCommand","product":"core","slug":"libtmux-respawnrequest-tocommand"},{"id":"LibTmux.RunShellRequest","name":"RunShellRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one run-shell invocation."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest","product":"core","slug":"libtmux-runshellrequest"},{"id":"LibTmux.RunShellRequest.RunShellRequest","name":"RunShellRequest","kind":"method","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[{"params":[{"name":"command","type":"string","doc":"The command to run."}]}],"doc":{"summary":"Initializes a shell command."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.RunShellRequest","product":"core","slug":"libtmux-runshellrequest-runshellrequest"},{"id":"LibTmux.RunShellRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[],"type":"string","doc":{"summary":"Gets the command to run."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.Command","product":"core","slug":"libtmux-runshellrequest-command"},{"id":"LibTmux.RunShellRequest.Arguments","name":"Arguments","kind":"property","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[],"type":"IReadOnlyList?","doc":{"summary":"Gets arguments passed to it without a shell in between."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.Arguments","product":"core","slug":"libtmux-runshellrequest-arguments"},{"id":"LibTmux.RunShellRequest.Background","name":"Background","kind":"property","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether tmux returns without waiting for it."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.Background","product":"core","slug":"libtmux-runshellrequest-background"},{"id":"LibTmux.RunShellRequest.Delay","name":"Delay","kind":"property","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[],"type":"TimeSpan?","doc":{"summary":"Gets how long tmux waits before starting it."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.Delay","product":"core","slug":"libtmux-runshellrequest-delay"},{"id":"LibTmux.RunShellRequest.AsTmuxCommand","name":"AsTmuxCommand","kind":"property","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the text is a tmux command rather than a shell one."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":51,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.AsTmuxCommand","product":"core","slug":"libtmux-runshellrequest-astmuxcommand"},{"id":"LibTmux.RunShellRequest.TargetPane","name":"TargetPane","kind":"property","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the pane the command runs against."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.TargetPane","product":"core","slug":"libtmux-runshellrequest-targetpane"},{"id":"LibTmux.RunShellRequest.WorkingDirectory","name":"WorkingDirectory","kind":"property","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the directory it starts in."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.WorkingDirectory","product":"core","slug":"libtmux-runshellrequest-workingdirectory"},{"id":"LibTmux.RunShellRequest.ShowStandardError","name":"ShowStandardError","kind":"property","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether its error output is shown too."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":60,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.ShowStandardError","product":"core","slug":"libtmux-runshellrequest-showstandarderror"},{"id":"LibTmux.RunShellRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.RunShellRequest","signatures":[{"params":[{"name":"server","type":"Server","doc":"The server that runs it."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a shell request as one tmux command.","body":"Three of this command's flags arrived at different tmux versions, so\nthe server is what decides which of them the built command carries."},"source":{"file":"src/LibTmux/Requests/RunShellRequest.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.RunShellRequest.ToCommand","product":"core","slug":"libtmux-runshellrequest-tocommand"},{"id":"LibTmux.SelectLayoutMode","name":"SelectLayoutMode","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names a layout change that needs no layout string."},"source":{"file":"src/LibTmux/Requests/SelectLayoutRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectLayoutMode","product":"core","slug":"libtmux-selectlayoutmode"},{"id":"LibTmux.SelectLayoutMode.Spread","name":"Spread","kind":"constant","modifiers":[],"parent":"LibTmux.SelectLayoutMode","signatures":[],"doc":{"summary":"Spread the panes out evenly."},"source":{"file":"src/LibTmux/Requests/SelectLayoutRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectLayoutMode.Spread","product":"core","slug":"libtmux-selectlayoutmode-spread"},{"id":"LibTmux.SelectLayoutMode.Next","name":"Next","kind":"constant","modifiers":[],"parent":"LibTmux.SelectLayoutMode","signatures":[],"doc":{"summary":"Move to the next layout."},"source":{"file":"src/LibTmux/Requests/SelectLayoutRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectLayoutMode.Next","product":"core","slug":"libtmux-selectlayoutmode-next"},{"id":"LibTmux.SelectLayoutMode.Previous","name":"Previous","kind":"constant","modifiers":[],"parent":"LibTmux.SelectLayoutMode","signatures":[],"doc":{"summary":"Move to the previous layout."},"source":{"file":"src/LibTmux/Requests/SelectLayoutRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectLayoutMode.Previous","product":"core","slug":"libtmux-selectlayoutmode-previous"},{"id":"LibTmux.SelectLayoutRequest","name":"SelectLayoutRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one select-layout invocation."},"source":{"file":"src/LibTmux/Requests/SelectLayoutRequest.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectLayoutRequest","product":"core","slug":"libtmux-selectlayoutrequest"},{"id":"LibTmux.SelectLayoutRequest.Layout","name":"Layout","kind":"property","modifiers":[],"parent":"LibTmux.SelectLayoutRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the named layout, or a layout string tmux dumped."},"source":{"file":"src/LibTmux/Requests/SelectLayoutRequest.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectLayoutRequest.Layout","product":"core","slug":"libtmux-selectlayoutrequest-layout"},{"id":"LibTmux.SelectLayoutRequest.Mode","name":"Mode","kind":"property","modifiers":[],"parent":"LibTmux.SelectLayoutRequest","signatures":[],"type":"SelectLayoutMode?","doc":{"summary":"Gets the layout change that needs no name."},"source":{"file":"src/LibTmux/Requests/SelectLayoutRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectLayoutRequest.Mode","product":"core","slug":"libtmux-selectlayoutrequest-mode"},{"id":"LibTmux.SelectLayoutRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.SelectLayoutRequest","signatures":[{"params":[{"name":"window","type":"Window","doc":"The window the layout applies to."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."},{"type":"TmuxWindowException","doc":"The layout is one tmux may not recognise."}]}],"doc":{"summary":"Returns a layout request as one tmux command for a window.","body":"This takes the window because a layout name is checked against the ones\nthe running tmux knows, and an unrecognised name takes the whole server\ndown on tmux 3.3a. Batching a layout must not skip that check."},"source":{"file":"src/LibTmux/Requests/SelectLayoutRequest.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectLayoutRequest.ToCommand","product":"core","slug":"libtmux-selectlayoutrequest-tocommand"},{"id":"LibTmux.PaneSelectDirection","name":"PaneSelectDirection","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names which pane a selection moves to."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneSelectDirection","product":"core","slug":"libtmux-paneselectdirection"},{"id":"LibTmux.PaneSelectDirection.Up","name":"Up","kind":"constant","modifiers":[],"parent":"LibTmux.PaneSelectDirection","signatures":[],"doc":{"summary":"The pane above."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneSelectDirection.Up","product":"core","slug":"libtmux-paneselectdirection-up"},{"id":"LibTmux.PaneSelectDirection.Down","name":"Down","kind":"constant","modifiers":[],"parent":"LibTmux.PaneSelectDirection","signatures":[],"doc":{"summary":"The pane below."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneSelectDirection.Down","product":"core","slug":"libtmux-paneselectdirection-down"},{"id":"LibTmux.PaneSelectDirection.Left","name":"Left","kind":"constant","modifiers":[],"parent":"LibTmux.PaneSelectDirection","signatures":[],"doc":{"summary":"The pane to the left."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneSelectDirection.Left","product":"core","slug":"libtmux-paneselectdirection-left"},{"id":"LibTmux.PaneSelectDirection.Right","name":"Right","kind":"constant","modifiers":[],"parent":"LibTmux.PaneSelectDirection","signatures":[],"doc":{"summary":"The pane to the right."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneSelectDirection.Right","product":"core","slug":"libtmux-paneselectdirection-right"},{"id":"LibTmux.PaneSelectDirection.Last","name":"Last","kind":"constant","modifiers":[],"parent":"LibTmux.PaneSelectDirection","signatures":[],"doc":{"summary":"The pane that was last active."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneSelectDirection.Last","product":"core","slug":"libtmux-paneselectdirection-last"},{"id":"LibTmux.SelectPaneRequest","name":"SelectPaneRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one select-pane invocation."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectPaneRequest","product":"core","slug":"libtmux-selectpanerequest"},{"id":"LibTmux.SelectPaneRequest.Direction","name":"Direction","kind":"property","modifiers":[],"parent":"LibTmux.SelectPaneRequest","signatures":[],"type":"PaneSelectDirection?","doc":{"summary":"Gets which pane to move to.","body":" and are two\nspellings of the same tmux flag, which is sent once either way."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectPaneRequest.Direction","product":"core","slug":"libtmux-selectpanerequest-direction"},{"id":"LibTmux.SelectPaneRequest.KeepZoom","name":"KeepZoom","kind":"property","modifiers":[],"parent":"LibTmux.SelectPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a zoomed pane stays zoomed."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectPaneRequest.KeepZoom","product":"core","slug":"libtmux-selectpanerequest-keepzoom"},{"id":"LibTmux.SelectPaneRequest.Mark","name":"Mark","kind":"property","modifiers":[],"parent":"LibTmux.SelectPaneRequest","signatures":[],"type":"bool?","doc":{"summary":"Gets whether the pane is marked, unmarked, or left alone.","body":"Null omits both flags, so tmux leaves the mark as it is."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectPaneRequest.Mark","product":"core","slug":"libtmux-selectpanerequest-mark"},{"id":"LibTmux.SelectPaneRequest.InputEnabled","name":"InputEnabled","kind":"property","modifiers":[],"parent":"LibTmux.SelectPaneRequest","signatures":[],"type":"bool?","doc":{"summary":"Gets whether input is enabled, disabled, or left alone.","body":"Null omits both flags, so tmux leaves input as it is."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectPaneRequest.InputEnabled","product":"core","slug":"libtmux-selectpanerequest-inputenabled"},{"id":"LibTmux.SelectPaneRequest.Last","name":"Last","kind":"property","modifiers":[],"parent":"LibTmux.SelectPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the last active pane is selected."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":59,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectPaneRequest.Last","product":"core","slug":"libtmux-selectpanerequest-last"},{"id":"LibTmux.SelectPaneRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.SelectPaneRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane the selection is relative to."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a pane-selection request as one tmux command."},"source":{"file":"src/LibTmux/Requests/SelectPaneRequest.cs","line":65,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SelectPaneRequest.ToCommand","product":"core","slug":"libtmux-selectpanerequest-tocommand"},{"id":"LibTmux.SendKeysRequest","name":"SendKeysRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes keys and an optional following Enter for a pane."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest","product":"core","slug":"libtmux-sendkeysrequest"},{"id":"LibTmux.SendKeysRequest.Text","name":"Text","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the text or key names to send."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.Text","product":"core","slug":"libtmux-sendkeysrequest-text"},{"id":"LibTmux.SendKeysRequest.Enter","name":"Enter","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether Enter follows the text.","body":"Enter is a second command rather than an appended key, because a literal\nsend would otherwise type the five characters of its name."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.Enter","product":"core","slug":"libtmux-sendkeysrequest-enter"},{"id":"LibTmux.SendKeysRequest.SuppressHistory","name":"SuppressHistory","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the shell is asked not to record the line.","body":"There is no tmux flag for this: the text is sent with a leading space,\nwhich most shells take as a signal to keep it out of history."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.SuppressHistory","product":"core","slug":"libtmux-sendkeysrequest-suppresshistory"},{"id":"LibTmux.SendKeysRequest.Literal","name":"Literal","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the text is sent verbatim rather than as key names."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.Literal","product":"core","slug":"libtmux-sendkeysrequest-literal"},{"id":"LibTmux.SendKeysRequest.Reset","name":"Reset","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane's terminal state is reset first."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.Reset","product":"core","slug":"libtmux-sendkeysrequest-reset"},{"id":"LibTmux.SendKeysRequest.CopyModeCommand","name":"CopyModeCommand","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the copy-mode command to send instead of text."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.CopyModeCommand","product":"core","slug":"libtmux-sendkeysrequest-copymodecommand"},{"id":"LibTmux.SendKeysRequest.Repeat","name":"Repeat","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"int?","doc":{"summary":"Gets how many times the keys repeat."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.Repeat","product":"core","slug":"libtmux-sendkeysrequest-repeat"},{"id":"LibTmux.SendKeysRequest.ExpandFormats","name":"ExpandFormats","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the text is expanded as a format."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.ExpandFormats","product":"core","slug":"libtmux-sendkeysrequest-expandformats"},{"id":"LibTmux.SendKeysRequest.HexKeys","name":"HexKeys","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether key names are read as hexadecimal."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.HexKeys","product":"core","slug":"libtmux-sendkeysrequest-hexkeys"},{"id":"LibTmux.SendKeysRequest.TargetClient","name":"TargetClient","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the client whose keys are sent.","body":"tmux gained this in 3.4."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.TargetClient","product":"core","slug":"libtmux-sendkeysrequest-targetclient"},{"id":"LibTmux.SendKeysRequest.KeyName","name":"KeyName","kind":"property","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the text names a key rather than a string.","body":"tmux gained this in 3.4."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.KeyName","product":"core","slug":"libtmux-sendkeysrequest-keyname"},{"id":"LibTmux.SendKeysRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane that receives them."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."},{"type":"ArgumentException","doc":"The request sends nothing or needs separate text and Enter commands."}]}],"doc":{"summary":"Returns a key request that needs only one tmux command."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.ToCommand","product":"core","slug":"libtmux-sendkeysrequest-tocommand"},{"id":"LibTmux.SendKeysRequest.ToCommands","name":"ToCommands","kind":"method","modifiers":[],"parent":"LibTmux.SendKeysRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane that receives the keys."}],"returns":"IReadOnlyList","returnsDoc":"The text command followed by Enter when requested.","raises":[{"type":"ArgumentNullException","doc":" is null."},{"type":"ArgumentException","doc":"The request sends nothing or its text contains NUL."}]}],"doc":{"summary":"Returns every command the key request sends, in order.","body":"Enter uses a separate command so literal mode types the text and then presses the key."},"source":{"file":"src/LibTmux/Requests/SendKeysRequest.cs","line":72,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SendKeysRequest.ToCommands","product":"core","slug":"libtmux-sendkeysrequest-tocommands"},{"id":"LibTmux.ServerAccessRequest","name":"ServerAccessRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one server-access invocation.","body":"tmux lets other users attach to a server over its socket. Access is granted\nper user, and read-only or read-write says what a granted user may do."},"source":{"file":"src/LibTmux/Requests/ServerAccessRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerAccessRequest","product":"core","slug":"libtmux-serveraccessrequest"},{"id":"LibTmux.ServerAccessRequest.AllowUser","name":"AllowUser","kind":"property","modifiers":[],"parent":"LibTmux.ServerAccessRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the user to grant access to."},"source":{"file":"src/LibTmux/Requests/ServerAccessRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerAccessRequest.AllowUser","product":"core","slug":"libtmux-serveraccessrequest-allowuser"},{"id":"LibTmux.ServerAccessRequest.DenyUser","name":"DenyUser","kind":"property","modifiers":[],"parent":"LibTmux.ServerAccessRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the user to take access from."},"source":{"file":"src/LibTmux/Requests/ServerAccessRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerAccessRequest.DenyUser","product":"core","slug":"libtmux-serveraccessrequest-denyuser"},{"id":"LibTmux.ServerAccessRequest.List","name":"List","kind":"property","modifiers":[],"parent":"LibTmux.ServerAccessRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the current list is reported."},"source":{"file":"src/LibTmux/Requests/ServerAccessRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerAccessRequest.List","product":"core","slug":"libtmux-serveraccessrequest-list"},{"id":"LibTmux.ServerAccessRequest.ReadOnly","name":"ReadOnly","kind":"property","modifiers":[],"parent":"LibTmux.ServerAccessRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the granted user may only look."},"source":{"file":"src/LibTmux/Requests/ServerAccessRequest.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerAccessRequest.ReadOnly","product":"core","slug":"libtmux-serveraccessrequest-readonly"},{"id":"LibTmux.ServerAccessRequest.ReadWrite","name":"ReadWrite","kind":"property","modifiers":[],"parent":"LibTmux.ServerAccessRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the granted user may also act."},"source":{"file":"src/LibTmux/Requests/ServerAccessRequest.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerAccessRequest.ReadWrite","product":"core","slug":"libtmux-serveraccessrequest-readwrite"},{"id":"LibTmux.ServerAccessRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.ServerAccessRequest","signatures":[{"params":[{"name":"server","type":"Server","doc":"The server whose access is changed."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."},{"type":"TmuxVersionTooLowException","doc":"tmux is older than 3.3."}]}],"doc":{"summary":"Returns an access request as one tmux command.","body":"The command itself arrived in tmux 3.3, so batching does not soften the\nrefusal below that: an older server has nothing to send it to."},"source":{"file":"src/LibTmux/Requests/ServerAccessRequest.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerAccessRequest.ToCommand","product":"core","slug":"libtmux-serveraccessrequest-tocommand"},{"id":"LibTmux.SetHookRequest","name":"SetHookRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one set-hook invocation."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest","product":"core","slug":"libtmux-sethookrequest"},{"id":"LibTmux.SetHookRequest.SetHookRequest","name":"SetHookRequest","kind":"method","modifiers":[],"parent":"LibTmux.SetHookRequest","signatures":[{"params":[{"name":"name","type":"string","doc":"The hook name, optionally with an array index."},{"name":"value","type":"string","doc":"The tmux command to run when the hook fires."}]}],"doc":{"summary":"Initializes a request to set one hook."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest.SetHookRequest","product":"core","slug":"libtmux-sethookrequest-sethookrequest"},{"id":"LibTmux.SetHookRequest.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.SetHookRequest","signatures":[],"type":"string","doc":{"summary":"Gets the hook name, optionally with an array index.","body":"tmux expands it as a format before it names anything, so a # in\nit does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest.Name","product":"core","slug":"libtmux-sethookrequest-name"},{"id":"LibTmux.SetHookRequest.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.SetHookRequest","signatures":[],"type":"string","doc":{"summary":"Gets the tmux command to run when the hook fires."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest.Value","product":"core","slug":"libtmux-sethookrequest-value"},{"id":"LibTmux.SetHookRequest.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.SetHookRequest","signatures":[],"type":"OptionScope?","doc":{"summary":"Gets the scope to set in, or null for the owner's own."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest.Scope","product":"core","slug":"libtmux-sethookrequest-scope"},{"id":"LibTmux.SetHookRequest.Global","name":"Global","kind":"property","modifiers":[],"parent":"LibTmux.SetHookRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the global table is set instead of the local one."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest.Global","product":"core","slug":"libtmux-sethookrequest-global"},{"id":"LibTmux.SetHookRequest.Unset","name":"Unset","kind":"property","modifiers":[],"parent":"LibTmux.SetHookRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the hook is removed rather than set."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest.Unset","product":"core","slug":"libtmux-sethookrequest-unset"},{"id":"LibTmux.SetHookRequest.RunImmediately","name":"RunImmediately","kind":"property","modifiers":[],"parent":"LibTmux.SetHookRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether tmux also runs the command now."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest.RunImmediately","product":"core","slug":"libtmux-sethookrequest-runimmediately"},{"id":"LibTmux.SetHookRequest.Append","name":"Append","kind":"property","modifiers":[],"parent":"LibTmux.SetHookRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the command joins the hook's existing entries."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest.Append","product":"core","slug":"libtmux-sethookrequest-append"},{"id":"LibTmux.SetHookRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.SetHookRequest","signatures":[{"params":[{"name":"hooks","type":"TmuxHooks","doc":"The hooks handle whose scope the hook is set in."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a hook request as one tmux command."},"source":{"file":"src/LibTmux/Requests/SetHookRequest.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHookRequest.ToCommand","product":"core","slug":"libtmux-sethookrequest-tocommand"},{"id":"LibTmux.SetHooksRequest","name":"SetHooksRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes setting several entries of one hook.","body":"A tmux hook is an array, and the indices decide the order its commands run\nin. Entries are written sequentially in index order, without a transaction.\nThe hook may fire between writes, and failure leaves earlier writes applied."},"source":{"file":"src/LibTmux/Requests/SetHooksRequest.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHooksRequest","product":"core","slug":"libtmux-sethooksrequest"},{"id":"LibTmux.SetHooksRequest.SetHooksRequest","name":"SetHooksRequest","kind":"method","modifiers":[],"parent":"LibTmux.SetHooksRequest","signatures":[{"params":[{"name":"name","type":"string","doc":"The hook name, without an index."},{"name":"values","type":"IReadOnlyDictionary","doc":"The command to place at each index."}]}],"doc":{"summary":"Initializes a request to set several entries of one hook."},"source":{"file":"src/LibTmux/Requests/SetHooksRequest.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHooksRequest.SetHooksRequest","product":"core","slug":"libtmux-sethooksrequest-sethooksrequest"},{"id":"LibTmux.SetHooksRequest.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.SetHooksRequest","signatures":[],"type":"string","doc":{"summary":"Gets the hook name, without an index.","body":"tmux expands it as a format before it names anything, so a # in\nit does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/SetHooksRequest.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHooksRequest.Name","product":"core","slug":"libtmux-sethooksrequest-name"},{"id":"LibTmux.SetHooksRequest.Values","name":"Values","kind":"property","modifiers":[],"parent":"LibTmux.SetHooksRequest","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the command to place at each index."},"source":{"file":"src/LibTmux/Requests/SetHooksRequest.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHooksRequest.Values","product":"core","slug":"libtmux-sethooksrequest-values"},{"id":"LibTmux.SetHooksRequest.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.SetHooksRequest","signatures":[],"type":"OptionScope?","doc":{"summary":"Gets the scope to set in, or null for the owner's own."},"source":{"file":"src/LibTmux/Requests/SetHooksRequest.cs","line":60,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHooksRequest.Scope","product":"core","slug":"libtmux-sethooksrequest-scope"},{"id":"LibTmux.SetHooksRequest.Global","name":"Global","kind":"property","modifiers":[],"parent":"LibTmux.SetHooksRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the global table is set instead of the local one."},"source":{"file":"src/LibTmux/Requests/SetHooksRequest.cs","line":63,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHooksRequest.Global","product":"core","slug":"libtmux-sethooksrequest-global"},{"id":"LibTmux.SetHooksRequest.ClearExisting","name":"ClearExisting","kind":"property","modifiers":[],"parent":"LibTmux.SetHooksRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether entries already there are removed first."},"source":{"file":"src/LibTmux/Requests/SetHooksRequest.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetHooksRequest.ClearExisting","product":"core","slug":"libtmux-sethooksrequest-clearexisting"},{"id":"LibTmux.SetOptionRequest","name":"SetOptionRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one set-option invocation."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest","product":"core","slug":"libtmux-setoptionrequest"},{"id":"LibTmux.SetOptionRequest.SetOptionRequest","name":"SetOptionRequest","kind":"method","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[{"params":[{"name":"name","type":"string","doc":"The option to set, optionally with an array index."},{"name":"value","type":"string","doc":"The value to store."}]}],"doc":{"summary":"Initializes a request to set one option."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.SetOptionRequest","product":"core","slug":"libtmux-setoptionrequest-setoptionrequest"},{"id":"LibTmux.SetOptionRequest.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[],"type":"string","doc":{"summary":"Gets the option to set, optionally with an array index.","body":"tmux expands it as a format before it names anything, so a # in\nit does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.Name","product":"core","slug":"libtmux-setoptionrequest-name"},{"id":"LibTmux.SetOptionRequest.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[],"type":"string","doc":{"summary":"Gets the value to store."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.Value","product":"core","slug":"libtmux-setoptionrequest-value"},{"id":"LibTmux.SetOptionRequest.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[],"type":"OptionScope?","doc":{"summary":"Gets the scope to set in, or null for the owner's own."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.Scope","product":"core","slug":"libtmux-setoptionrequest-scope"},{"id":"LibTmux.SetOptionRequest.ExpandFormat","name":"ExpandFormat","kind":"property","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether tmux expands the value as a format before storing it."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.ExpandFormat","product":"core","slug":"libtmux-setoptionrequest-expandformat"},{"id":"LibTmux.SetOptionRequest.PreventOverwrite","name":"PreventOverwrite","kind":"property","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether an already-set option is left alone."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.PreventOverwrite","product":"core","slug":"libtmux-setoptionrequest-preventoverwrite"},{"id":"LibTmux.SetOptionRequest.Quiet","name":"Quiet","kind":"property","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a rejected option is answered with nothing instead of an error."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.Quiet","product":"core","slug":"libtmux-setoptionrequest-quiet"},{"id":"LibTmux.SetOptionRequest.Append","name":"Append","kind":"property","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the value is appended to the existing one."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.Append","product":"core","slug":"libtmux-setoptionrequest-append"},{"id":"LibTmux.SetOptionRequest.Global","name":"Global","kind":"property","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the global table is set instead of the local one."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.Global","product":"core","slug":"libtmux-setoptionrequest-global"},{"id":"LibTmux.SetOptionRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.SetOptionRequest","signatures":[{"params":[{"name":"options","type":"TmuxOptions","doc":"The options handle whose scope the option is set in."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns an option request as one tmux command.","body":"This takes the options handle rather than a server, because which\nscope flags and target tmux receives follow from the handle the caller\nreached for: a window's options and a server's are the same request\nspelled differently."},"source":{"file":"src/LibTmux/Requests/SetOptionRequest.cs","line":59,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SetOptionRequest.ToCommand","product":"core","slug":"libtmux-setoptionrequest-tocommand"},{"id":"LibTmux.SplitPaneRequest","name":"SplitPaneRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one split-window invocation.","body":"Every option is set through an initializer rather than a constructor\nargument. tmux gains flags, and a constructor that grew one would break\nevery caller already compiled against the old signature; a property added\nbeside these does not."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest","product":"core","slug":"libtmux-splitpanerequest"},{"id":"LibTmux.SplitPaneRequest.Target","name":"Target","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the pane to split, or null for the active one."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Target","product":"core","slug":"libtmux-splitpanerequest-target"},{"id":"LibTmux.SplitPaneRequest.ExpectedWindowId","name":"ExpectedWindowId","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"WindowId?","doc":{"summary":"Gets the window that must contain the target pane at dispatch.","body":"When supplied, a nonwaiting native guard checks the resolved target's\nwindow immediately before splitting. Null keeps ordinary tmux target\nsemantics. This check does not prevent a later move during readback."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.ExpectedWindowId","product":"core","slug":"libtmux-splitpanerequest-expectedwindowid"},{"id":"LibTmux.SplitPaneRequest.StartDirectory","name":"StartDirectory","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the working directory for the new pane.","body":"tmux expands it as a format before it changes directory, so a #\nin it does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.StartDirectory","product":"core","slug":"libtmux-splitpanerequest-startdirectory"},{"id":"LibTmux.SplitPaneRequest.Attach","name":"Attach","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the new pane becomes active."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Attach","product":"core","slug":"libtmux-splitpanerequest-attach"},{"id":"LibTmux.SplitPaneRequest.Direction","name":"Direction","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"PaneDirection?","doc":{"summary":"Gets where the new pane goes."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Direction","product":"core","slug":"libtmux-splitpanerequest-direction"},{"id":"LibTmux.SplitPaneRequest.FullWindow","name":"FullWindow","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the split spans the whole window."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.FullWindow","product":"core","slug":"libtmux-splitpanerequest-fullwindow"},{"id":"LibTmux.SplitPaneRequest.Zoom","name":"Zoom","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the new pane is zoomed."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Zoom","product":"core","slug":"libtmux-splitpanerequest-zoom"},{"id":"LibTmux.SplitPaneRequest.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the command the new pane runs."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Command","product":"core","slug":"libtmux-splitpanerequest-command"},{"id":"LibTmux.SplitPaneRequest.Size","name":"Size","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the explicit size in cells."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Size","product":"core","slug":"libtmux-splitpanerequest-size"},{"id":"LibTmux.SplitPaneRequest.Percentage","name":"Percentage","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"int?","doc":{"summary":"Gets the size as a percentage of the window."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Percentage","product":"core","slug":"libtmux-splitpanerequest-percentage"},{"id":"LibTmux.SplitPaneRequest.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"IReadOnlyDictionary?","doc":{"summary":"Gets the environment entries set on the new pane."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Environment","product":"core","slug":"libtmux-splitpanerequest-environment"},{"id":"LibTmux.SplitPaneRequest.Empty","name":"Empty","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane starts with no command."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Empty","product":"core","slug":"libtmux-splitpanerequest-empty"},{"id":"LibTmux.SplitPaneRequest.Style","name":"Style","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the pane style."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":90,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Style","product":"core","slug":"libtmux-splitpanerequest-style"},{"id":"LibTmux.SplitPaneRequest.ActiveBorderStyle","name":"ActiveBorderStyle","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the border style while the pane is active."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":93,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.ActiveBorderStyle","product":"core","slug":"libtmux-splitpanerequest-activeborderstyle"},{"id":"LibTmux.SplitPaneRequest.InactiveBorderStyle","name":"InactiveBorderStyle","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the border style while it is not."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":96,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.InactiveBorderStyle","product":"core","slug":"libtmux-splitpanerequest-inactiveborderstyle"},{"id":"LibTmux.SplitPaneRequest.Message","name":"Message","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the message shown in the pane."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":99,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.Message","product":"core","slug":"libtmux-splitpanerequest-message"},{"id":"LibTmux.SplitPaneRequest.KeepOpen","name":"KeepOpen","kind":"property","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane stays after its command exits."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":102,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.KeepOpen","product":"core","slug":"libtmux-splitpanerequest-keepopen"},{"id":"LibTmux.SplitPaneRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.SplitPaneRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane being split."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a split request as one tmux command.","body":"Splitting into an empty pane arrived in tmux 3.7 and the appearance\nflags in 3.6, so the pane decides which of them the built command\ncarries. It prints the new pane's identifier the same way the one-shot\npath does."},"source":{"file":"src/LibTmux/Requests/SplitPaneRequest.cs","line":133,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SplitPaneRequest.ToCommand","product":"core","slug":"libtmux-splitpanerequest-tocommand"},{"id":"LibTmux.PaneSwapDirection","name":"PaneSwapDirection","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names which neighbouring pane a swap uses."},"source":{"file":"src/LibTmux/Requests/SwapPaneRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneSwapDirection","product":"core","slug":"libtmux-paneswapdirection"},{"id":"LibTmux.PaneSwapDirection.Up","name":"Up","kind":"constant","modifiers":[],"parent":"LibTmux.PaneSwapDirection","signatures":[],"doc":{"summary":"The pane above."},"source":{"file":"src/LibTmux/Requests/SwapPaneRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneSwapDirection.Up","product":"core","slug":"libtmux-paneswapdirection-up"},{"id":"LibTmux.PaneSwapDirection.Down","name":"Down","kind":"constant","modifiers":[],"parent":"LibTmux.PaneSwapDirection","signatures":[],"doc":{"summary":"The pane below."},"source":{"file":"src/LibTmux/Requests/SwapPaneRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneSwapDirection.Down","product":"core","slug":"libtmux-paneswapdirection-down"},{"id":"LibTmux.SwapPaneRequest","name":"SwapPaneRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one swap-pane invocation.","body":"tmux replaces a named source with the neighbour whenever a direction is\ngiven, so sending both would quietly drop the name."},"source":{"file":"src/LibTmux/Requests/SwapPaneRequest.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SwapPaneRequest","product":"core","slug":"libtmux-swappanerequest"},{"id":"LibTmux.SwapPaneRequest.Target","name":"Target","kind":"property","modifiers":[],"parent":"LibTmux.SwapPaneRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the pane to swap with."},"source":{"file":"src/LibTmux/Requests/SwapPaneRequest.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SwapPaneRequest.Target","product":"core","slug":"libtmux-swappanerequest-target"},{"id":"LibTmux.SwapPaneRequest.Direction","name":"Direction","kind":"property","modifiers":[],"parent":"LibTmux.SwapPaneRequest","signatures":[],"type":"PaneSwapDirection?","doc":{"summary":"Gets the neighbour to swap with instead."},"source":{"file":"src/LibTmux/Requests/SwapPaneRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SwapPaneRequest.Direction","product":"core","slug":"libtmux-swappanerequest-direction"},{"id":"LibTmux.SwapPaneRequest.Detach","name":"Detach","kind":"property","modifiers":[],"parent":"LibTmux.SwapPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the swapped pane is left unselected."},"source":{"file":"src/LibTmux/Requests/SwapPaneRequest.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SwapPaneRequest.Detach","product":"core","slug":"libtmux-swappanerequest-detach"},{"id":"LibTmux.SwapPaneRequest.KeepZoom","name":"KeepZoom","kind":"property","modifiers":[],"parent":"LibTmux.SwapPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a zoomed pane stays zoomed."},"source":{"file":"src/LibTmux/Requests/SwapPaneRequest.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SwapPaneRequest.KeepZoom","product":"core","slug":"libtmux-swappanerequest-keepzoom"},{"id":"LibTmux.SwapPaneRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.SwapPaneRequest","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane being swapped."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns a pane-swap request as one tmux command."},"source":{"file":"src/LibTmux/Requests/SwapPaneRequest.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SwapPaneRequest.ToCommand","product":"core","slug":"libtmux-swappanerequest-tocommand"},{"id":"LibTmux.UnbindKeyRequest","name":"UnbindKeyRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one unbind-key invocation."},"source":{"file":"src/LibTmux/Requests/UnbindKeyRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnbindKeyRequest","product":"core","slug":"libtmux-unbindkeyrequest"},{"id":"LibTmux.UnbindKeyRequest.Key","name":"Key","kind":"property","modifiers":[],"parent":"LibTmux.UnbindKeyRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the key to unbind, or null when removing them all."},"source":{"file":"src/LibTmux/Requests/UnbindKeyRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnbindKeyRequest.Key","product":"core","slug":"libtmux-unbindkeyrequest-key"},{"id":"LibTmux.UnbindKeyRequest.KeyTable","name":"KeyTable","kind":"property","modifiers":[],"parent":"LibTmux.UnbindKeyRequest","signatures":[],"type":"string?","doc":{"summary":"Gets the key table, or null for the prefix table."},"source":{"file":"src/LibTmux/Requests/UnbindKeyRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnbindKeyRequest.KeyTable","product":"core","slug":"libtmux-unbindkeyrequest-keytable"},{"id":"LibTmux.UnbindKeyRequest.All","name":"All","kind":"property","modifiers":[],"parent":"LibTmux.UnbindKeyRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether every binding in the table goes."},"source":{"file":"src/LibTmux/Requests/UnbindKeyRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnbindKeyRequest.All","product":"core","slug":"libtmux-unbindkeyrequest-all"},{"id":"LibTmux.UnbindKeyRequest.Quiet","name":"Quiet","kind":"property","modifiers":[],"parent":"LibTmux.UnbindKeyRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether an absent binding is passed over in silence."},"source":{"file":"src/LibTmux/Requests/UnbindKeyRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnbindKeyRequest.Quiet","product":"core","slug":"libtmux-unbindkeyrequest-quiet"},{"id":"LibTmux.UnbindKeyRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.UnbindKeyRequest","signatures":[{"params":[],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a ."}],"doc":{"summary":"Returns a key-unbinding request as one tmux command."},"source":{"file":"src/LibTmux/Requests/UnbindKeyRequest.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnbindKeyRequest.ToCommand","product":"core","slug":"libtmux-unbindkeyrequest-tocommand"},{"id":"LibTmux.UnsetOptionRequest","name":"UnsetOptionRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one set-option -u invocation."},"source":{"file":"src/LibTmux/Requests/UnsetOptionRequest.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsetOptionRequest","product":"core","slug":"libtmux-unsetoptionrequest"},{"id":"LibTmux.UnsetOptionRequest.UnsetOptionRequest","name":"UnsetOptionRequest","kind":"method","modifiers":[],"parent":"LibTmux.UnsetOptionRequest","signatures":[{"params":[{"name":"name","type":"string","doc":"The option to unset, optionally with an array index."}]}],"doc":{"summary":"Initializes a request to unset one option."},"source":{"file":"src/LibTmux/Requests/UnsetOptionRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsetOptionRequest.UnsetOptionRequest","product":"core","slug":"libtmux-unsetoptionrequest-unsetoptionrequest"},{"id":"LibTmux.UnsetOptionRequest.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.UnsetOptionRequest","signatures":[],"type":"string","doc":{"summary":"Gets the option to unset, optionally with an array index.","body":"tmux expands it as a format before it names anything, so a # in\nit does not survive verbatim."},"source":{"file":"src/LibTmux/Requests/UnsetOptionRequest.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsetOptionRequest.Name","product":"core","slug":"libtmux-unsetoptionrequest-name"},{"id":"LibTmux.UnsetOptionRequest.Scope","name":"Scope","kind":"property","modifiers":[],"parent":"LibTmux.UnsetOptionRequest","signatures":[],"type":"OptionScope?","doc":{"summary":"Gets the scope to unset in, or null for the owner's own."},"source":{"file":"src/LibTmux/Requests/UnsetOptionRequest.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsetOptionRequest.Scope","product":"core","slug":"libtmux-unsetoptionrequest-scope"},{"id":"LibTmux.UnsetOptionRequest.Global","name":"Global","kind":"property","modifiers":[],"parent":"LibTmux.UnsetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether the global table is unset instead of the local one."},"source":{"file":"src/LibTmux/Requests/UnsetOptionRequest.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsetOptionRequest.Global","product":"core","slug":"libtmux-unsetoptionrequest-global"},{"id":"LibTmux.UnsetOptionRequest.UnsetPaneOverrides","name":"UnsetPaneOverrides","kind":"property","modifiers":[],"parent":"LibTmux.UnsetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether every pane's override of the option goes too."},"source":{"file":"src/LibTmux/Requests/UnsetOptionRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsetOptionRequest.UnsetPaneOverrides","product":"core","slug":"libtmux-unsetoptionrequest-unsetpaneoverrides"},{"id":"LibTmux.UnsetOptionRequest.Quiet","name":"Quiet","kind":"property","modifiers":[],"parent":"LibTmux.UnsetOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Gets whether a missing option is answered with nothing instead of an error."},"source":{"file":"src/LibTmux/Requests/UnsetOptionRequest.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsetOptionRequest.Quiet","product":"core","slug":"libtmux-unsetoptionrequest-quiet"},{"id":"LibTmux.UnsetOptionRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.UnsetOptionRequest","signatures":[{"params":[{"name":"options","type":"TmuxOptions","doc":"The options handle whose scope the option is unset in."}],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a .","raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Returns an unset request as one tmux command."},"source":{"file":"src/LibTmux/Requests/UnsetOptionRequest.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsetOptionRequest.ToCommand","product":"core","slug":"libtmux-unsetoptionrequest-tocommand"},{"id":"LibTmux.TmuxWaitMode","name":"TmuxWaitMode","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"What to do with a wait-for channel."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitMode","product":"core","slug":"libtmux-tmuxwaitmode"},{"id":"LibTmux.TmuxWaitMode.Wait","name":"Wait","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxWaitMode","signatures":[],"doc":{"summary":"Block until the channel is signalled."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitMode.Wait","product":"core","slug":"libtmux-tmuxwaitmode-wait"},{"id":"LibTmux.TmuxWaitMode.Signal","name":"Signal","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxWaitMode","signatures":[],"doc":{"summary":"Release everything waiting on the channel."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitMode.Signal","product":"core","slug":"libtmux-tmuxwaitmode-signal"},{"id":"LibTmux.TmuxWaitMode.Lock","name":"Lock","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxWaitMode","signatures":[],"doc":{"summary":"Take the channel's lock, blocking until it is free."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitMode.Lock","product":"core","slug":"libtmux-tmuxwaitmode-lock"},{"id":"LibTmux.TmuxWaitMode.Unlock","name":"Unlock","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxWaitMode","signatures":[],"doc":{"summary":"Release the channel's lock."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitMode.Unlock","product":"core","slug":"libtmux-tmuxwaitmode-unlock"},{"id":"LibTmux.WaitForRequest","name":"WaitForRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one wait-for invocation.","body":"tmux channels let a command wait for something another command will do.\nWaiting blocks the tmux client, so a call that waits has nothing to answer\nuntil whoever it is waiting for arrives."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WaitForRequest","product":"core","slug":"libtmux-waitforrequest"},{"id":"LibTmux.WaitForRequest.WaitForRequest","name":"WaitForRequest","kind":"method","modifiers":[],"parent":"LibTmux.WaitForRequest","signatures":[{"params":[{"name":"channel","type":"string","doc":"The channel name."},{"name":"mode","type":"TmuxWaitMode","doc":"What to do with it."}]}],"doc":{"summary":"Initializes a channel request."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WaitForRequest.WaitForRequest","product":"core","slug":"libtmux-waitforrequest-waitforrequest"},{"id":"LibTmux.WaitForRequest.Channel","name":"Channel","kind":"property","modifiers":[],"parent":"LibTmux.WaitForRequest","signatures":[],"type":"string","doc":{"summary":"Gets the channel name."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WaitForRequest.Channel","product":"core","slug":"libtmux-waitforrequest-channel"},{"id":"LibTmux.WaitForRequest.Mode","name":"Mode","kind":"property","modifiers":[],"parent":"LibTmux.WaitForRequest","signatures":[],"type":"TmuxWaitMode","doc":{"summary":"Gets what to do with it."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WaitForRequest.Mode","product":"core","slug":"libtmux-waitforrequest-mode"},{"id":"LibTmux.WaitForRequest.ToCommand","name":"ToCommand","kind":"method","modifiers":[],"parent":"LibTmux.WaitForRequest","signatures":[{"params":[],"returns":"TmuxCommand","returnsDoc":"The command, ready to add to a ."}],"doc":{"summary":"Returns a channel request as one tmux command."},"source":{"file":"src/LibTmux/Requests/WaitForRequest.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WaitForRequest.ToCommand","product":"core","slug":"libtmux-waitforrequest-tocommand"},{"id":"LibTmux.Server.ConfigureAccessAsync","name":"ConfigureAccessAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"ServerAccessRequest","doc":"Who, and what they may do."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task?>","returnsDoc":"The current list when it was asked for, and null otherwise.","raises":[{"type":"TmuxVersionTooLowException","doc":"tmux is older than 3.3."}]}],"doc":{"summary":"Grants or withdraws another user's access to this server."},"source":{"file":"src/LibTmux/Server.Administration.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ConfigureAccessAsync","product":"core","slug":"libtmux-server-configureaccessasync"},{"id":"LibTmux.Server.SourceFileAsync","name":"SourceFileAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"path","type":"string","doc":"The file to read."},{"name":"quiet","type":"bool","default":"false","doc":"Whether a missing file is passed over in silence."},{"name":"parseOnly","type":"bool","default":"false","doc":"Whether the file is checked rather than run."},{"name":"verbose","type":"bool","default":"false","doc":"Whether each command read is reported."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Reads a tmux configuration file."},"source":{"file":"src/LibTmux/Server.Administration.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.SourceFileAsync","product":"core","slug":"libtmux-server-sourcefileasync"},{"id":"LibTmux.Server.LockAsync","name":"LockAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Locks every client attached to this server."},"source":{"file":"src/LibTmux/Server.Administration.cs","line":78,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.LockAsync","product":"core","slug":"libtmux-server-lockasync"},{"id":"LibTmux.Server.GetMessagesAsync","name":"GetMessagesAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"targetClient","type":"string?","default":"null","doc":"The client to read for, or null for the server."},{"name":"mode","type":"ShowMessagesMode","default":"ShowMessagesMode.Messages","doc":"Which log to read."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"One line per entry."}],"doc":{"summary":"Reads what the server has been logging."},"source":{"file":"src/LibTmux/Server.Administration.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetMessagesAsync","product":"core","slug":"libtmux-server-getmessagesasync"},{"id":"LibTmux.Server.GetCommandsAsync","name":"GetCommandsAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"name","type":"string?","default":"null","doc":"One command to describe, or null for all of them."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"One line per command, giving its syntax."}],"doc":{"summary":"Reads the commands this tmux knows."},"source":{"file":"src/LibTmux/Server.Administration.cs","line":107,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetCommandsAsync","product":"core","slug":"libtmux-server-getcommandsasync"},{"id":"LibTmux.Server.Chain","name":"Chain","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[],"returns":"TmuxChain","returnsDoc":"An empty chain bound to this server.","raises":[{"type":"InvalidOperationException","doc":"The handle has no connection."}]}],"doc":{"summary":"Begins a chain that runs its commands in one tmux invocation.","body":"This is the batched counterpart to the one-shot methods. Which one is\nin use is visible where the call starts rather than in an option, and\nnothing runs until the chain is executed."},"source":{"file":"src/LibTmux/Server.Chaining.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Chain","product":"core","slug":"libtmux-server-chain"},{"id":"LibTmux.Server.GetClientsAsync","name":"GetClientsAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The clients tmux reports.","raises":[{"type":"LibTmuxException","doc":"The listing failed, including an absent daemon."}]}],"doc":{"summary":"Reads the clients attached to this server.","body":"A handle that has not found a live server yet discovers one first.","examples":[{"lang":"console","intro":"Read scalar listings from two detached sessions on a private server. Fresh rows do not imply captured child relations. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerListings.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverlistings-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope demo = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\nawait using OwnedSessionScope worker = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"worker\", Command = \"/bin/cat\" }, token);\nServer server = await Server.ConnectAsync(options, token);\n\nIReadOnlyList sessions = await server.GetSessionsAsync(token);\nIReadOnlyList windows = await server.GetWindowsAsync(token);\nIReadOnlyList panes = await server.GetPanesAsync(token);\nIReadOnlyList clients = await server.GetClientsAsync(token);\nif (sessions.Count != 2 || windows.Count != 2 || panes.Count != 2 || clients.Count != 0)\n{\n throw new InvalidOperationException(\"Expected two detached sessions, each with one window and pane.\");\n}\nif (sessions.Any(session => session.Windows.IsCaptured))\n{\n throw new InvalidOperationException(\"Scalar listings must not imply captured child relations.\");\n}\n\nforeach (Session session in sessions.OrderBy(session => session.Name, StringComparer.Ordinal))\n{\n Console.WriteLine($\"Session: {session.Name} ({session.Id})\");\n}\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}; clients: {clients.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Session: demo ($0)\nSession: worker ($1)\nWindows: 2; panes: 2; clients: 0\n"}]},"source":{"file":"src/LibTmux/Server.Clients.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetClientsAsync","product":"core","slug":"libtmux-server-getclientsasync"},{"id":"LibTmux.Server.DetachClientAsync","name":"DetachClientAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"targetClient","type":"string?","default":"null","doc":"The client, or null for the caller's own."},{"name":"shellCommand","type":"string?","default":"null","doc":"A command the detached client runs."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Detaches one client."},"source":{"file":"src/LibTmux/Server.Clients.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.DetachClientAsync","product":"core","slug":"libtmux-server-detachclientasync"},{"id":"LibTmux.Server.DetachAllClientsAsync","name":"DetachAllClientsAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"keepClient","type":"string?","default":"null","doc":"The client to leave attached."},{"name":"shellCommand","type":"string?","default":"null","doc":"A command the detached clients run."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Detaches every client except one.","body":"tmux reads the kept client from the same target flag it uses to name a\nclient, so this always spares one. Naming none does not mean \"spare\nnone\": tmux falls back to whichever client it resolves for the caller,\nwhich from a process with no client of its own leaves that client\nattached and detaches nothing."},"source":{"file":"src/LibTmux/Server.Clients.cs","line":63,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.DetachAllClientsAsync","product":"core","slug":"libtmux-server-detachallclientsasync"},{"id":"LibTmux.Server.LockClientAsync","name":"LockClientAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"targetClient","type":"string?","default":"null","doc":"The client, or null for the caller's own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Locks one client."},"source":{"file":"src/LibTmux/Server.Clients.cs","line":73,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.LockClientAsync","product":"core","slug":"libtmux-server-lockclientasync"},{"id":"LibTmux.Server.SuspendClientAsync","name":"SuspendClientAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"targetClient","type":"string?","default":"null","doc":"The client, or null for the caller's own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Suspends one client."},"source":{"file":"src/LibTmux/Server.Clients.cs","line":82,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.SuspendClientAsync","product":"core","slug":"libtmux-server-suspendclientasync"},{"id":"LibTmux.Server.RefreshClientAsync","name":"RefreshClientAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"targetClient","type":"string?","default":"null","doc":"The client, or null for the caller's own."},{"name":"requestClipboard","type":"bool","default":"false","doc":"Whether the client is asked for its clipboard."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Redraws one client.","body":"Asking for the clipboard arrived in tmux 3.7. Older servers are asked to\nredraw and nothing else."},"source":{"file":"src/LibTmux/Server.Clients.cs","line":96,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.RefreshClientAsync","product":"core","slug":"libtmux-server-refreshclientasync"},{"id":"LibTmux.Server.SwitchClientAsync","name":"SwitchClientAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"targetSession","type":"string","doc":"The session to switch to."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Switches the caller's client to another session."},"source":{"file":"src/LibTmux/Server.Clients.cs","line":115,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.SwitchClientAsync","product":"core","slug":"libtmux-server-switchclientasync"},{"id":"LibTmux.Server.GetSessionsAsync","name":"GetSessionsAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The sessions reported by a successful read.","raises":[{"type":"LibTmuxException","doc":"The listing failed, including an absent daemon."}]}],"doc":{"summary":"Reads every session on this server.","body":"A handle that has not found a live server yet discovers one first.","examples":[{"lang":"console","intro":"Read scalar listings from two detached sessions on a private server. Fresh rows do not imply captured child relations. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerListings.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverlistings-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope demo = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\nawait using OwnedSessionScope worker = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"worker\", Command = \"/bin/cat\" }, token);\nServer server = await Server.ConnectAsync(options, token);\n\nIReadOnlyList sessions = await server.GetSessionsAsync(token);\nIReadOnlyList windows = await server.GetWindowsAsync(token);\nIReadOnlyList panes = await server.GetPanesAsync(token);\nIReadOnlyList clients = await server.GetClientsAsync(token);\nif (sessions.Count != 2 || windows.Count != 2 || panes.Count != 2 || clients.Count != 0)\n{\n throw new InvalidOperationException(\"Expected two detached sessions, each with one window and pane.\");\n}\nif (sessions.Any(session => session.Windows.IsCaptured))\n{\n throw new InvalidOperationException(\"Scalar listings must not imply captured child relations.\");\n}\n\nforeach (Session session in sessions.OrderBy(session => session.Name, StringComparer.Ordinal))\n{\n Console.WriteLine($\"Session: {session.Name} ({session.Id})\");\n}\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}; clients: {clients.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Session: demo ($0)\nSession: worker ($1)\nWindows: 2; panes: 2; clients: 0\n"}]},"source":{"file":"src/LibTmux/Server.Collections.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetSessionsAsync","product":"core","slug":"libtmux-server-getsessionsasync"},{"id":"LibTmux.Server.GetAttachedSessionsAsync","name":"GetAttachedSessionsAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The attached sessions reported by a successful read.","raises":[{"type":"LibTmuxException","doc":"The listing failed, including an absent daemon."}]}],"doc":{"summary":"Reads every session with at least one attached client.","body":"A handle that has not found a live server yet discovers one first."},"source":{"file":"src/LibTmux/Server.Collections.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetAttachedSessionsAsync","product":"core","slug":"libtmux-server-getattachedsessionsasync"},{"id":"LibTmux.Server.GetWindowsAsync","name":"GetWindowsAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The windows reported by a successful read.","raises":[{"type":"LibTmuxException","doc":"The listing failed, including an absent daemon."}]}],"doc":{"summary":"Reads every window on this server.","body":"A handle that has not found a live server yet discovers one first.","examples":[{"lang":"console","intro":"Read scalar listings from two detached sessions on a private server. Fresh rows do not imply captured child relations. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerListings.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverlistings-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope demo = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\nawait using OwnedSessionScope worker = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"worker\", Command = \"/bin/cat\" }, token);\nServer server = await Server.ConnectAsync(options, token);\n\nIReadOnlyList sessions = await server.GetSessionsAsync(token);\nIReadOnlyList windows = await server.GetWindowsAsync(token);\nIReadOnlyList panes = await server.GetPanesAsync(token);\nIReadOnlyList clients = await server.GetClientsAsync(token);\nif (sessions.Count != 2 || windows.Count != 2 || panes.Count != 2 || clients.Count != 0)\n{\n throw new InvalidOperationException(\"Expected two detached sessions, each with one window and pane.\");\n}\nif (sessions.Any(session => session.Windows.IsCaptured))\n{\n throw new InvalidOperationException(\"Scalar listings must not imply captured child relations.\");\n}\n\nforeach (Session session in sessions.OrderBy(session => session.Name, StringComparer.Ordinal))\n{\n Console.WriteLine($\"Session: {session.Name} ({session.Id})\");\n}\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}; clients: {clients.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Session: demo ($0)\nSession: worker ($1)\nWindows: 2; panes: 2; clients: 0\n"}]},"source":{"file":"src/LibTmux/Server.Collections.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetWindowsAsync","product":"core","slug":"libtmux-server-getwindowsasync"},{"id":"LibTmux.Server.GetPanesAsync","name":"GetPanesAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The panes reported by a successful read.","raises":[{"type":"LibTmuxException","doc":"The listing failed, including an absent daemon."}]}],"doc":{"summary":"Reads every pane on this server.","body":"A handle that has not found a live server yet discovers one first.","examples":[{"lang":"console","intro":"Read scalar listings from two detached sessions on a private server. Fresh rows do not imply captured child relations. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerListings.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverlistings-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope demo = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\nawait using OwnedSessionScope worker = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"worker\", Command = \"/bin/cat\" }, token);\nServer server = await Server.ConnectAsync(options, token);\n\nIReadOnlyList sessions = await server.GetSessionsAsync(token);\nIReadOnlyList windows = await server.GetWindowsAsync(token);\nIReadOnlyList panes = await server.GetPanesAsync(token);\nIReadOnlyList clients = await server.GetClientsAsync(token);\nif (sessions.Count != 2 || windows.Count != 2 || panes.Count != 2 || clients.Count != 0)\n{\n throw new InvalidOperationException(\"Expected two detached sessions, each with one window and pane.\");\n}\nif (sessions.Any(session => session.Windows.IsCaptured))\n{\n throw new InvalidOperationException(\"Scalar listings must not imply captured child relations.\");\n}\n\nforeach (Session session in sessions.OrderBy(session => session.Name, StringComparer.Ordinal))\n{\n Console.WriteLine($\"Session: {session.Name} ({session.Id})\");\n}\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}; clients: {clients.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Session: demo ($0)\nSession: worker ($1)\nWindows: 2; panes: 2; clients: 0\n"}]},"source":{"file":"src/LibTmux/Server.Collections.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetPanesAsync","product":"core","slug":"libtmux-server-getpanesasync"},{"id":"LibTmux.Server.ExecuteCommandAsync","name":"ExecuteCommandAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"arguments","type":"IReadOnlyList"},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Executes one raw tmux command."},"source":{"file":"src/LibTmux/Server.Command.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ExecuteCommandAsync","product":"core","slug":"libtmux-server-executecommandasync"},{"id":"LibTmux.Server.EndpointArguments","name":"EndpointArguments","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the endpoint selection arguments -- -L, -S, or a configuration file flag -- this handle's connection resolved.","body":"Prepend these to 's result, and\nto , to invoke tmux\nas this process's own child rather than through this library's\ndispatch -- the shape an interactive attach needs, since attaching must\ninherit the caller's own terminal."},"source":{"file":"src/LibTmux/Server.Command.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.EndpointArguments","product":"core","slug":"libtmux-server-endpointarguments"},{"id":"LibTmux.Server.BuildGuardedCommandLine","name":"BuildGuardedCommandLine","kind":"method","modifiers":["static"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"expected","type":"ServerGeneration","doc":"The generation the command requires."},{"name":"mismatchCommand","type":"string","doc":"A tmux command run instead when the generation has changed. The caller\nalready committed to spawning a process expecting\n, so this is typically one that fails\nloudly rather than one that repairs anything."},{"name":"IReadOnlyList[]","type":"IReadOnlyList"},{"name":"commands","doc":"One or more tmux commands to run when the generation still matches,\neach its own argument vector."}],"returns":"IReadOnlyList","returnsDoc":"The encoded arguments. Prepend before\npassing this to a process started at\n."}],"doc":{"summary":"Builds the argument vector for a raw tmux invocation that only takes effect while the named server generation is still current.","body":"A command this library dispatches itself is already guarded by\n through\n. This is for the one case that cannot go\nthrough that dispatch -- an interactive attach, which must run as its\nown foreground process to inherit the caller's terminal, so the guard\nhas to travel inside the argument vector instead."},"source":{"file":"src/LibTmux/Server.Command.cs","line":65,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.BuildGuardedCommandLine","product":"core","slug":"libtmux-server-buildguardedcommandline"},{"id":"LibTmux.Server.EnterControlModeAsync","name":"EnterControlModeAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"target","type":"string?","default":"null","doc":"The session to attach to, or to let tmux pick\nthe most recently used one."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels starting the client."}],"returns":"Task","returnsDoc":"A session that reports what tmux does until it is disposed.","raises":[{"type":"InvalidOperationException","doc":"The handle has no connection."},{"type":"StaleServerGenerationException","doc":"The endpoint changed servers while the control client was attaching."}]}],"doc":{"summary":"Starts a tmux control client and keeps it running.","body":"This is the streaming counterpart to the one-shot methods, not a mode\nthey can be switched into: the rest of this type starts a client, runs\none command, and lets it exit, which is why it never sees anything it\ndid not ask for. Hold the returned session and read\n to see the rest."},"source":{"file":"src/LibTmux/Server.ControlMode.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.EnterControlModeAsync","product":"core","slug":"libtmux-server-entercontrolmodeasync"},{"id":"LibTmux.Server.DisplayMessageAsync","name":"DisplayMessageAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"DisplayMessageRequest","doc":"What to show, and how."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task?>","returnsDoc":"The rendered text when it was asked for, and null otherwise."}],"doc":{"summary":"Shows a message on a client.","body":"tmux reports a bad format on its error stream rather than by failing, so\na message it would not render is logged and answered with nothing."},"source":{"file":"src/LibTmux/Server.Display.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.DisplayMessageAsync","product":"core","slug":"libtmux-server-displaymessageasync"},{"id":"LibTmux.Server.RunShellAsync","name":"RunShellAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"RunShellRequest","doc":"What to run, and how."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels waiting for tmux's reply. tmux itself is not told: the server,\nnot this process, owns run-shell's spawned command, so cancelling\nstops this call from waiting on it, not the command from running. Nor\ndoes stopping the whole server: does not reap\na run-shell child either, so it keeps running as its own\norphaned process."}],"returns":"Task?>","returnsDoc":"What the command printed, or null when tmux did not wait for it."}],"doc":{"summary":"Runs a shell command and reports what it printed.","body":"The directory flag arrived in tmux 3.4, the error-output flag in 3.6,\nand passing arguments without a shell in 3.7.\nOn tmux 3.3a and 3.4, shell text goes to pane view mode, so the process\nrequest can return an empty collection even when the shell printed lines."},"source":{"file":"src/LibTmux/Server.Execution.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.RunShellAsync","product":"core","slug":"libtmux-server-runshellasync"},{"id":"LibTmux.Server.IfShellAsync","name":"IfShellAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"IfShellRequest","doc":"What to test, and what to run either way."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Runs one tmux command or another depending on a shell command."},"source":{"file":"src/LibTmux/Server.Execution.cs","line":95,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.IfShellAsync","product":"core","slug":"libtmux-server-ifshellasync"},{"id":"LibTmux.Server.WaitForAsync","name":"WaitForAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"WaitForRequest","doc":"Which channel, and what to do with it."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels waiting for tmux's reply. For \nthis kills the client, and tmux before 3.8 keeps its queue entry, which\ntakes the next signal: a signal sent while nothing else waits is then\nspent on that entry instead of waking the next wait. Prefer\n whenever a \nneeds a deadline. For\n cancelling never kills the client, since\ntmux hands a released lock to whichever queued client is still alive: the\nclient keeps running, and a lock it goes on to acquire is released again\nautomatically once this call has already given up on it. A lock that is\nnever released therefore keeps one tmux client queued per cancelled call."}],"returns":"Task"}],"doc":{"summary":"Waits on, signals, locks, or unlocks a tmux channel.","body":"Waiting blocks until something else signals the channel, so a call that\nwaits does not return on its own. A wait or a lock is not bounded by\n: it waits for another\nclient by design, and ending it would leave tmux holding its place."},"source":{"file":"src/LibTmux/Server.Execution.cs","line":139,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.WaitForAsync","product":"core","slug":"libtmux-server-waitforasync"},{"id":"LibTmux.Server.OpenWaitChannel","name":"OpenWaitChannel","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"channel","type":"string","doc":"The channel to wait on."}],"returns":"TmuxWaitChannel","returnsDoc":"The open wait, which must be disposed to withdraw it."}],"doc":{"summary":"Opens a wait on a channel that survives a timed attempt.","body":"Prefer this to whenever the wait has a\ndeadline. Cancelling a waiting wait-for kills its client, and tmux\nbefore 3.8 keeps the registration, which takes the next signal.","examples":[{"lang":"console","intro":"Send literal text and a named Enter key, wait for a private completion signal, then require a whole captured output line. All scopes are disposed after errors or cancellation. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/InputCapture.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-inputcapture-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/sh\" }, token);\nServer server = await Server.ConnectAsync(options, token);\nPane pane = (await server.GetPanesAsync(token)).Single();\nstring channel = \"capture-\" + Guid.NewGuid().ToString(\"N\");\nawait using TmuxWaitChannel wait = server.OpenWaitChannel(channel);\nconst string marker = \"api capture ready\";\nstring command = $\"printf '%s\\\\n' {QuoteShell(marker)}; \"\n + $\"{QuoteShell(binary)} -L {QuoteShell(socketName)} wait-for -S {QuoteShell(channel)}\";\n\nawait pane.SendKeysAsync(new SendKeysRequest { Text = command, Literal = true, Enter = false }, token);\nawait pane.SendKeysAsync(new SendKeysRequest { Text = \"Enter\", Enter = false }, token);\nif (!await wait.WaitAsync(TimeSpan.FromSeconds(5), token))\n{\n throw new InvalidOperationException(\"The pane did not signal that its output was ready.\");\n}\nIReadOnlyList lines = await pane.CaptureAsync(\n new CapturePaneRequest { JoinWrappedLines = true }, token);\n// Joining wrapped lines preserves terminal padding after the output.\nif (!lines.Any(line => string.Equals(line.TrimEnd(), marker, StringComparison.Ordinal)))\n{\n throw new InvalidOperationException(\"Capture did not contain the complete output line.\");\n}\nConsole.WriteLine(marker);\n\nstatic string QuoteShell(string value) => \"'\" + value.Replace(\"'\", \"'\\\\''\", StringComparison.Ordinal) + \"'\";\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"api capture ready\n"}]},"source":{"file":"src/LibTmux/Server.Execution.cs","line":228,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.OpenWaitChannel","product":"core","slug":"libtmux-server-openwaitchannel"},{"id":"LibTmux.Server.FromEnvironment","name":"FromEnvironment","kind":"method","modifiers":["static"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"environment","type":"IReadOnlyDictionary?","default":"null","doc":"The environment, or null for the process."}],"returns":"Server","returnsDoc":"An unmaterialized handle for the exported socket.","raises":[{"type":"TmuxObjectNotFoundException","doc":"The environment does not name a tmux server."}]}],"doc":{"summary":"Returns the server whose pane this process was spawned in.","body":"Only the socket path is used. The pid and session id in TMUX are\nfrozen at pane spawn, and the session id goes stale as soon as the\npane's window moves between sessions. Costs no tmux subprocess."},"source":{"file":"src/LibTmux/Server.FromEnvironment.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.FromEnvironment","product":"core","slug":"libtmux-server-fromenvironment"},{"id":"LibTmux.Server.ConnectionOptions","name":"ConnectionOptions","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"ServerConnectionOptions","doc":{"summary":"Gets the connection options."},"source":{"file":"src/LibTmux/Server.Identity.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ConnectionOptions","product":"core","slug":"libtmux-server-connectionoptions"},{"id":"LibTmux.Server.Generation","name":"Generation","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"ServerGeneration?","doc":{"summary":"Gets the materialized server generation."},"source":{"file":"src/LibTmux/Server.Identity.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Generation","product":"core","slug":"libtmux-server-generation"},{"id":"LibTmux.Server.IsMaterialized","name":"IsMaterialized","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"bool","doc":{"summary":"Gets whether this handle has discovered a live server."},"source":{"file":"src/LibTmux/Server.Identity.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.IsMaterialized","product":"core","slug":"libtmux-server-ismaterialized"},{"id":"LibTmux.Server.Within","name":"Within","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"timeout","type":"TimeSpan","doc":"How long tmux may take to answer each command."}],"returns":"Server","returnsDoc":"A handle to the same server. Every session, window, pane and client\ntaken from it gives tmux the same bound.","raises":[{"type":"InvalidOperationException","doc":"This server has no connection identity."},{"type":"ArgumentOutOfRangeException","doc":"The timeout does not run forward."}]}],"doc":{"summary":"Returns this server with every command bounded by a timeout of the caller's choosing.","body":"The handle shares this one's connection, so nothing is started or\nverified again, and it compares equal to this one. A command that\noutlasts the bound throws whose\n is\n, as with\n. A caller's own\ncancellation still reads as cancellation."},"source":{"file":"src/LibTmux/Server.Identity.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Within","product":"core","slug":"libtmux-server-within"},{"id":"LibTmux.Server.Open","name":"Open","kind":"method","modifiers":["static"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"options","type":"ServerConnectionOptions?","default":"null"}],"returns":"Server"}],"doc":{"summary":"Opens an unmaterialized server connection handle.","examples":[{"lang":"console","intro":"Distinguish an endpoint handle from a discovered server. Connection discovery returns an immutable replacement without capturing child relations. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerConstruction.cs","code":"using System;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverconstruction-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// Open records the endpoint without running tmux or reading its state.\nServer endpoint = Server.Open(options);\nif (endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Open must not discover a server.\");\n}\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n\n// Connect discovers the live daemon and returns a new materialized handle.\nServer connected = await endpoint.ConnectAsync(token);\nServer sameEndpoint = await Server.ConnectAsync(options, token);\nif (!connected.IsMaterialized || !sameEndpoint.IsMaterialized || endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Connecting must leave the original handle unchanged.\");\n}\nif (connected.Generation != sameEndpoint.Generation || connected.Sessions.IsCaptured)\n{\n throw new InvalidOperationException(\"Connection discovery must not capture the hierarchy.\");\n}\n\nConsole.WriteLine(\"Open records an endpoint; Connect discovers the running server.\");\nConsole.WriteLine(\"The original handle stays unmaterialized; relations remain uncaptured.\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Open records an endpoint; Connect discovers the running server.\nThe original handle stays unmaterialized; relations remain uncaptured.\n"}]},"source":{"file":"src/LibTmux/Server.Identity.cs","line":69,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Open","product":"core","slug":"libtmux-server-open"},{"id":"LibTmux.Server.ConnectAsync","name":"ConnectAsync","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"options","type":"ServerConnectionOptions?","default":"null"},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"},{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Connects to a configured tmux endpoint.","examples":[{"lang":"console","intro":"Distinguish an endpoint handle from a discovered server. Connection discovery returns an immutable replacement without capturing child relations. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerConstruction.cs","code":"using System;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverconstruction-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// Open records the endpoint without running tmux or reading its state.\nServer endpoint = Server.Open(options);\nif (endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Open must not discover a server.\");\n}\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n\n// Connect discovers the live daemon and returns a new materialized handle.\nServer connected = await endpoint.ConnectAsync(token);\nServer sameEndpoint = await Server.ConnectAsync(options, token);\nif (!connected.IsMaterialized || !sameEndpoint.IsMaterialized || endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Connecting must leave the original handle unchanged.\");\n}\nif (connected.Generation != sameEndpoint.Generation || connected.Sessions.IsCaptured)\n{\n throw new InvalidOperationException(\"Connection discovery must not capture the hierarchy.\");\n}\n\nConsole.WriteLine(\"Open records an endpoint; Connect discovers the running server.\");\nConsole.WriteLine(\"The original handle stays unmaterialized; relations remain uncaptured.\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Open records an endpoint; Connect discovers the running server.\nThe original handle stays unmaterialized; relations remain uncaptured.\n"}]},"source":{"file":"src/LibTmux/Server.Identity.cs","line":76,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ConnectAsync","product":"core","slug":"libtmux-server-connectasync"},{"id":"LibTmux.Server.InspectAsync","name":"InspectAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels inspection before publication."}],"returns":"Task","returnsDoc":"A materialized identity-only handle, or null when no daemon is listening.","raises":[{"type":"StaleServerGenerationException","doc":"A different daemon owns the endpoint."},{"type":"LibTmuxException","doc":"Inspection failed for a reason other than verified daemon absence."},{"type":"InvalidOperationException","doc":"This handle has no connection identity."},{"type":"OperationCanceledException","doc":"Inspection was cancelled before publication."}]}],"doc":{"summary":"Reads the live endpoint identity without running its initializer.","body":"Reuses the resolved endpoint and reads its current generation and daemon version.\nNo initializer runs, including when the returned handle is subsequently connected.\nCaptured relationships are not acquired or copied. A materialized input remains\nbound to its generation and cannot adopt a replacement daemon."},"source":{"file":"src/LibTmux/Server.Identity.cs","line":112,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.InspectAsync","product":"core","slug":"libtmux-server-inspectasync"},{"id":"LibTmux.Server.GetSessionAsync","name":"GetSessionAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"id","type":"SessionId","doc":"The session identifier."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A materialized session carrying captured scalar state.","raises":[{"type":"TmuxObjectNotFoundException","doc":"The session does not exist."},{"type":"LibTmuxException","doc":"The lookup failed, including an absent daemon."}]}],"doc":{"summary":"Reads one session by identifier, throwing when it is absent.","body":"A handle that has not found a live server yet discovers one first.","examples":[{"lang":"console","intro":"Use typed required lookups, nullable absence and explicit errors. Cancellation, invalid input and a stopped server remain exceptions. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/EntityLookups.cs","code":"using System;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-entitylookups-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nServer stoppedServer;\nawait using (OwnedServerScope owned = await Server.CreateOwnedAsync(options, token))\n{\n await using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n Server server = await Server.ConnectAsync(options, token);\n Session found = await server.GetSessionAsync(session.Value.Id, token);\n Window listedWindow = (await found.GetWindowsAsync(token)).Single();\n Window window = await server.GetWindowAsync(listedWindow.Id, token);\n Pane listedPane = (await window.GetPanesAsync(token)).Single();\n Pane pane = await server.GetPaneAsync(listedPane.Id, token);\n if (found.Id != session.Value.Id || pane.Id != listedPane.Id)\n {\n throw new InvalidOperationException(\"Typed lookup returned an unexpected entity.\");\n }\n\n SessionId missingId = new(int.MaxValue);\n Session? missing = await server.FindSessionAsync(missingId, token);\n if (missing is not null)\n {\n throw new InvalidOperationException(\"The absent session unexpectedly exists.\");\n }\n Console.WriteLine(\"A successful lookup can return null.\");\n try\n {\n _ = await server.GetSessionAsync(missingId, token);\n throw new InvalidOperationException(\"GetSessionAsync must throw for an absent session.\");\n }\n catch (TmuxObjectNotFoundException)\n {\n Console.WriteLine(\"Required lookup reports TmuxObjectNotFoundException.\");\n }\n\n using CancellationTokenSource cancelled = new();\n cancelled.Cancel();\n try\n {\n _ = await server.FindSessionAsync(session.Value.Id, cancelled.Token);\n throw new InvalidOperationException(\"Cancelled lookup must throw.\");\n }\n catch (OperationCanceledException)\n {\n Console.WriteLine(\"Cancellation remains OperationCanceledException.\");\n }\n try\n {\n _ = await window.FindPaneAsync(\" \", token);\n throw new InvalidOperationException(\"A blank pane target must be rejected.\");\n }\n catch (ArgumentException)\n {\n Console.WriteLine(\"A blank pane target remains ArgumentException.\");\n }\n stoppedServer = server;\n}\n\ntry\n{\n _ = await stoppedServer.FindSessionAsync(new SessionId(int.MaxValue), token);\n throw new InvalidOperationException(\"A failed read must not become null.\");\n}\ncatch (LibTmuxException)\n{\n Console.WriteLine(\"A stopped server remains a LibTmuxException.\");\n}\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"A successful lookup can return null.\nRequired lookup reports TmuxObjectNotFoundException.\nCancellation remains OperationCanceledException.\nA blank pane target remains ArgumentException.\nA stopped server remains a LibTmuxException.\n"}]},"source":{"file":"src/LibTmux/Server.Identity.cs","line":210,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetSessionAsync","product":"core","slug":"libtmux-server-getsessionasync"},{"id":"LibTmux.Server.FindSessionAsync","name":"FindSessionAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"id","type":"SessionId","doc":"The session identifier."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A materialized session, or null after a successful read finds no match.","raises":[{"type":"LibTmuxException","doc":"The lookup failed, including an absent daemon."}]}],"doc":{"summary":"Reads one session by identifier, returning null when it is absent.","body":"A handle that has not found a live server yet discovers one first.","examples":[{"lang":"console","intro":"Use typed required lookups, nullable absence and explicit errors. Cancellation, invalid input and a stopped server remain exceptions. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/EntityLookups.cs","code":"using System;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-entitylookups-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nServer stoppedServer;\nawait using (OwnedServerScope owned = await Server.CreateOwnedAsync(options, token))\n{\n await using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n Server server = await Server.ConnectAsync(options, token);\n Session found = await server.GetSessionAsync(session.Value.Id, token);\n Window listedWindow = (await found.GetWindowsAsync(token)).Single();\n Window window = await server.GetWindowAsync(listedWindow.Id, token);\n Pane listedPane = (await window.GetPanesAsync(token)).Single();\n Pane pane = await server.GetPaneAsync(listedPane.Id, token);\n if (found.Id != session.Value.Id || pane.Id != listedPane.Id)\n {\n throw new InvalidOperationException(\"Typed lookup returned an unexpected entity.\");\n }\n\n SessionId missingId = new(int.MaxValue);\n Session? missing = await server.FindSessionAsync(missingId, token);\n if (missing is not null)\n {\n throw new InvalidOperationException(\"The absent session unexpectedly exists.\");\n }\n Console.WriteLine(\"A successful lookup can return null.\");\n try\n {\n _ = await server.GetSessionAsync(missingId, token);\n throw new InvalidOperationException(\"GetSessionAsync must throw for an absent session.\");\n }\n catch (TmuxObjectNotFoundException)\n {\n Console.WriteLine(\"Required lookup reports TmuxObjectNotFoundException.\");\n }\n\n using CancellationTokenSource cancelled = new();\n cancelled.Cancel();\n try\n {\n _ = await server.FindSessionAsync(session.Value.Id, cancelled.Token);\n throw new InvalidOperationException(\"Cancelled lookup must throw.\");\n }\n catch (OperationCanceledException)\n {\n Console.WriteLine(\"Cancellation remains OperationCanceledException.\");\n }\n try\n {\n _ = await window.FindPaneAsync(\" \", token);\n throw new InvalidOperationException(\"A blank pane target must be rejected.\");\n }\n catch (ArgumentException)\n {\n Console.WriteLine(\"A blank pane target remains ArgumentException.\");\n }\n stoppedServer = server;\n}\n\ntry\n{\n _ = await stoppedServer.FindSessionAsync(new SessionId(int.MaxValue), token);\n throw new InvalidOperationException(\"A failed read must not become null.\");\n}\ncatch (LibTmuxException)\n{\n Console.WriteLine(\"A stopped server remains a LibTmuxException.\");\n}\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"A successful lookup can return null.\nRequired lookup reports TmuxObjectNotFoundException.\nCancellation remains OperationCanceledException.\nA blank pane target remains ArgumentException.\nA stopped server remains a LibTmuxException.\n"}]},"source":{"file":"src/LibTmux/Server.Identity.cs","line":223,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.FindSessionAsync","product":"core","slug":"libtmux-server-findsessionasync"},{"id":"LibTmux.Server.GetWindowAsync","name":"GetWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"id","type":"WindowId","doc":"The window identifier."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A materialized window carrying captured scalar state.","raises":[{"type":"TmuxObjectNotFoundException","doc":"The window does not exist."},{"type":"LibTmuxException","doc":"The lookup failed, including an absent daemon."}]}],"doc":{"summary":"Reads one window by identifier, throwing when it is absent.","body":"A handle that has not found a live server yet discovers one first.","examples":[{"lang":"console","intro":"Use typed required lookups, nullable absence and explicit errors. Cancellation, invalid input and a stopped server remain exceptions. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/EntityLookups.cs","code":"using System;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-entitylookups-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nServer stoppedServer;\nawait using (OwnedServerScope owned = await Server.CreateOwnedAsync(options, token))\n{\n await using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n Server server = await Server.ConnectAsync(options, token);\n Session found = await server.GetSessionAsync(session.Value.Id, token);\n Window listedWindow = (await found.GetWindowsAsync(token)).Single();\n Window window = await server.GetWindowAsync(listedWindow.Id, token);\n Pane listedPane = (await window.GetPanesAsync(token)).Single();\n Pane pane = await server.GetPaneAsync(listedPane.Id, token);\n if (found.Id != session.Value.Id || pane.Id != listedPane.Id)\n {\n throw new InvalidOperationException(\"Typed lookup returned an unexpected entity.\");\n }\n\n SessionId missingId = new(int.MaxValue);\n Session? missing = await server.FindSessionAsync(missingId, token);\n if (missing is not null)\n {\n throw new InvalidOperationException(\"The absent session unexpectedly exists.\");\n }\n Console.WriteLine(\"A successful lookup can return null.\");\n try\n {\n _ = await server.GetSessionAsync(missingId, token);\n throw new InvalidOperationException(\"GetSessionAsync must throw for an absent session.\");\n }\n catch (TmuxObjectNotFoundException)\n {\n Console.WriteLine(\"Required lookup reports TmuxObjectNotFoundException.\");\n }\n\n using CancellationTokenSource cancelled = new();\n cancelled.Cancel();\n try\n {\n _ = await server.FindSessionAsync(session.Value.Id, cancelled.Token);\n throw new InvalidOperationException(\"Cancelled lookup must throw.\");\n }\n catch (OperationCanceledException)\n {\n Console.WriteLine(\"Cancellation remains OperationCanceledException.\");\n }\n try\n {\n _ = await window.FindPaneAsync(\" \", token);\n throw new InvalidOperationException(\"A blank pane target must be rejected.\");\n }\n catch (ArgumentException)\n {\n Console.WriteLine(\"A blank pane target remains ArgumentException.\");\n }\n stoppedServer = server;\n}\n\ntry\n{\n _ = await stoppedServer.FindSessionAsync(new SessionId(int.MaxValue), token);\n throw new InvalidOperationException(\"A failed read must not become null.\");\n}\ncatch (LibTmuxException)\n{\n Console.WriteLine(\"A stopped server remains a LibTmuxException.\");\n}\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"A successful lookup can return null.\nRequired lookup reports TmuxObjectNotFoundException.\nCancellation remains OperationCanceledException.\nA blank pane target remains ArgumentException.\nA stopped server remains a LibTmuxException.\n"}]},"source":{"file":"src/LibTmux/Server.Identity.cs","line":247,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetWindowAsync","product":"core","slug":"libtmux-server-getwindowasync"},{"id":"LibTmux.Server.FindWindowAsync","name":"FindWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"id","type":"WindowId","doc":"The window identifier."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A materialized window, or null after a successful read finds no match.","raises":[{"type":"LibTmuxException","doc":"The lookup failed, including an absent daemon."}]}],"doc":{"summary":"Reads one window by identifier, returning null when it is absent.","body":"A handle that has not found a live server yet discovers one first."},"source":{"file":"src/LibTmux/Server.Identity.cs","line":260,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.FindWindowAsync","product":"core","slug":"libtmux-server-findwindowasync"},{"id":"LibTmux.Server.GetPaneAsync","name":"GetPaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"id","type":"PaneId","doc":"The pane identifier."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A materialized pane carrying captured scalar state.","raises":[{"type":"TmuxObjectNotFoundException","doc":"The pane does not exist."},{"type":"LibTmuxException","doc":"The lookup failed, including an absent daemon."}]}],"doc":{"summary":"Reads one pane by identifier, throwing when it is absent.","body":"A handle that has not found a live server yet discovers one first.","examples":[{"lang":"console","intro":"Use typed required lookups, nullable absence and explicit errors. Cancellation, invalid input and a stopped server remain exceptions. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/EntityLookups.cs","code":"using System;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-entitylookups-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nServer stoppedServer;\nawait using (OwnedServerScope owned = await Server.CreateOwnedAsync(options, token))\n{\n await using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n Server server = await Server.ConnectAsync(options, token);\n Session found = await server.GetSessionAsync(session.Value.Id, token);\n Window listedWindow = (await found.GetWindowsAsync(token)).Single();\n Window window = await server.GetWindowAsync(listedWindow.Id, token);\n Pane listedPane = (await window.GetPanesAsync(token)).Single();\n Pane pane = await server.GetPaneAsync(listedPane.Id, token);\n if (found.Id != session.Value.Id || pane.Id != listedPane.Id)\n {\n throw new InvalidOperationException(\"Typed lookup returned an unexpected entity.\");\n }\n\n SessionId missingId = new(int.MaxValue);\n Session? missing = await server.FindSessionAsync(missingId, token);\n if (missing is not null)\n {\n throw new InvalidOperationException(\"The absent session unexpectedly exists.\");\n }\n Console.WriteLine(\"A successful lookup can return null.\");\n try\n {\n _ = await server.GetSessionAsync(missingId, token);\n throw new InvalidOperationException(\"GetSessionAsync must throw for an absent session.\");\n }\n catch (TmuxObjectNotFoundException)\n {\n Console.WriteLine(\"Required lookup reports TmuxObjectNotFoundException.\");\n }\n\n using CancellationTokenSource cancelled = new();\n cancelled.Cancel();\n try\n {\n _ = await server.FindSessionAsync(session.Value.Id, cancelled.Token);\n throw new InvalidOperationException(\"Cancelled lookup must throw.\");\n }\n catch (OperationCanceledException)\n {\n Console.WriteLine(\"Cancellation remains OperationCanceledException.\");\n }\n try\n {\n _ = await window.FindPaneAsync(\" \", token);\n throw new InvalidOperationException(\"A blank pane target must be rejected.\");\n }\n catch (ArgumentException)\n {\n Console.WriteLine(\"A blank pane target remains ArgumentException.\");\n }\n stoppedServer = server;\n}\n\ntry\n{\n _ = await stoppedServer.FindSessionAsync(new SessionId(int.MaxValue), token);\n throw new InvalidOperationException(\"A failed read must not become null.\");\n}\ncatch (LibTmuxException)\n{\n Console.WriteLine(\"A stopped server remains a LibTmuxException.\");\n}\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"A successful lookup can return null.\nRequired lookup reports TmuxObjectNotFoundException.\nCancellation remains OperationCanceledException.\nA blank pane target remains ArgumentException.\nA stopped server remains a LibTmuxException.\n"}]},"source":{"file":"src/LibTmux/Server.Identity.cs","line":284,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetPaneAsync","product":"core","slug":"libtmux-server-getpaneasync"},{"id":"LibTmux.Server.FindPaneAsync","name":"FindPaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"id","type":"PaneId","doc":"The pane identifier."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A materialized pane, or null after a successful read finds no match.","raises":[{"type":"LibTmuxException","doc":"The lookup failed, including an absent daemon."}]}],"doc":{"summary":"Reads one pane by identifier, returning null when it is absent.","body":"A handle that has not found a live server yet discovers one first."},"source":{"file":"src/LibTmux/Server.Identity.cs","line":297,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.FindPaneAsync","product":"core","slug":"libtmux-server-findpaneasync"},{"id":"LibTmux.Server.Equals","name":"Equals","kind":"method","modifiers":["overload"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"other","type":"Server?"}],"returns":"bool"},{"params":[{"name":"obj","type":"object?"}],"returns":"bool"}],"doc":{"summary":"","body":"A handle that has not reached tmux has no endpoint to compare, so it\nequals only itself."},"source":{"file":"src/LibTmux/Server.Identity.cs","line":332,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Equals","product":"core","slug":"libtmux-server-equals"},{"id":"LibTmux.Server.GetHashCode","name":"GetHashCode","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[],"returns":"int"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Server.Identity.cs","line":343,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetHashCode","product":"core","slug":"libtmux-server-gethashcode"},{"id":"LibTmux.Server.ShowCommandPromptAsync","name":"ShowCommandPromptAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"CommandPromptRequest","doc":"What to ask, and how."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","raises":[{"type":"TmuxVersionTooLowException","doc":"The request asks for a format or a prompt type and tmux is older than 3.3."}]}],"doc":{"summary":"Asks a client for input and runs a command with the answer."},"source":{"file":"src/LibTmux/Server.Interaction.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ShowCommandPromptAsync","product":"core","slug":"libtmux-server-showcommandpromptasync"},{"id":"LibTmux.Server.ClearPromptHistoryAsync","name":"ClearPromptHistoryAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"type","type":"PromptType?","default":"null","doc":"Which history to clear, or null for all of them."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","raises":[{"type":"TmuxVersionTooLowException","doc":"tmux is older than 3.3."}]}],"doc":{"summary":"Forgets what has been typed at command prompts."},"source":{"file":"src/LibTmux/Server.Interaction.cs","line":90,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ClearPromptHistoryAsync","product":"core","slug":"libtmux-server-clearprompthistoryasync"},{"id":"LibTmux.Server.GetPromptHistoryAsync","name":"GetPromptHistoryAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"type","type":"PromptType?","default":"null","doc":"Which history to read, or null for all of them."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"One line per remembered entry.","raises":[{"type":"TmuxVersionTooLowException","doc":"tmux is older than 3.3."}]}],"doc":{"summary":"Reads what has been typed at command prompts."},"source":{"file":"src/LibTmux/Server.Interaction.cs","line":111,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.GetPromptHistoryAsync","product":"core","slug":"libtmux-server-getprompthistoryasync"},{"id":"LibTmux.Server.ConfirmBeforeAsync","name":"ConfirmBeforeAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"ConfirmBeforeRequest","doc":"What to run, and how to ask."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Asks a client to confirm before running a command.","body":"Naming the key, and defaulting to yes, arrived in tmux 3.4."},"source":{"file":"src/LibTmux/Server.Interaction.cs","line":161,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ConfirmBeforeAsync","product":"core","slug":"libtmux-server-confirmbeforeasync"},{"id":"LibTmux.Server.ShowMenuAsync","name":"ShowMenuAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"DisplayMenuRequest","doc":"What the menu offers, and how it looks."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Shows a menu on a client.","body":"The style flags arrived in tmux 3.4 and the mouse flag in 3.5. Older\nservers are shown the same menu without them."},"source":{"file":"src/LibTmux/Server.Interaction.cs","line":222,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ShowMenuAsync","product":"core","slug":"libtmux-server-showmenuasync"},{"id":"LibTmux.Server.IsValidLayoutCandidate","name":"IsValidLayoutCandidate","kind":"method","modifiers":["static"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"layout","type":"string","doc":"A custom layout string or a named layout."},{"name":"paneCount","type":"int","doc":"The number of panes the layout must accommodate."}],"returns":"bool","returnsDoc":" when the checksum, cell tree and cell count are\nconsistent for a custom layout, or the name is an unambiguous prefix of\na named layout."}],"doc":{"summary":"Checks a layout's syntax without contacting a server.","body":"This is the version-independent half of :\nit never contacts tmux, so it cannot catch a named layout that only some\ndaemon versions accept. Call it at parse time, before a document is\notherwise trusted; call afterward to\ncatch a version-sensitive name."},"source":{"file":"src/LibTmux/Server.Layout.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.IsValidLayoutCandidate","product":"core","slug":"libtmux-server-isvalidlayoutcandidate"},{"id":"LibTmux.Server.ValidateLayoutsAsync","name":"ValidateLayoutsAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"layouts","type":"IEnumerable<(string Layout, int PaneCount)>","doc":"Layouts and the number of panes each must accommodate."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels version discovery."}],"returns":"Task","returnsDoc":"A task completing when every layout is safe to send.","raises":[{"type":"ArgumentNullException","doc":"The layouts collection is null."},{"type":"ArgumentException","doc":"A layout or pane count is invalid."},{"type":"InvalidDataException","doc":"The daemon version reply is malformed."},{"type":"OperationCanceledException","doc":"Validation was canceled."},{"type":"StaleServerGenerationException","doc":"The daemon changed."},{"type":"TmuxCommandException","doc":"The daemon version query failed."}]}],"doc":{"summary":"Checks layouts before a workspace changes the server.","body":"Checks custom syntax, checksums, and minimum cell counts without checking\ngeometry. Version-sensitive names use the daemon version, or the client\nversion when no daemon is running. This never starts or changes a server."},"source":{"file":"src/LibTmux/Server.Layout.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ValidateLayoutsAsync","product":"core","slug":"libtmux-server-validatelayoutsasync"},{"id":"LibTmux.Server.StartServerAsync","name":"StartServerAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Starts the tmux server without creating a session.","body":"No handle comes back because there may be nothing to describe: a tmux\nserver holding no sessions exits as soon as it starts. Materialize with\n once a session exists."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.StartServerAsync","product":"core","slug":"libtmux-server-startserverasync"},{"id":"LibTmux.Server.IsAliveAsync","name":"IsAliveAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"True when the server responded."}],"doc":{"summary":"Reports whether a tmux server is answering.","body":"A probe may answer no; it never reports a failure."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.IsAliveAsync","product":"core","slug":"libtmux-server-isaliveasync"},{"id":"LibTmux.Server.ThrowIfDeadAsync","name":"ThrowIfDeadAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Throws unless a tmux server is answering."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.ThrowIfDeadAsync","product":"core","slug":"libtmux-server-throwifdeadasync"},{"id":"LibTmux.Server.KillAsync","name":"KillAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Stops the tmux server.","body":"A server that is already gone is the requested outcome, so an absent\ndaemon succeeds rather than failing."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.KillAsync","product":"core","slug":"libtmux-server-killasync"},{"id":"LibTmux.Server.KillSessionAsync","name":"KillSessionAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"target","type":"string","doc":"The session to stop."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Stops one session."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":80,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.KillSessionAsync","product":"core","slug":"libtmux-server-killsessionasync"},{"id":"LibTmux.Server.HasSessionAsync","name":"HasSessionAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"target","type":"string","doc":"The session to look for."},{"name":"exact","type":"bool","default":"true","doc":"Whether the name must match in full."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"True when tmux reports the session."}],"doc":{"summary":"Reports whether a session exists."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":101,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.HasSessionAsync","product":"core","slug":"libtmux-server-hassessionasync"},{"id":"LibTmux.Server.CreateSessionAsync","name":"CreateSessionAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"NewSessionRequest?","default":"null","doc":"The session to create."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The created session.","raises":[{"type":"TmuxSessionExistsException","doc":"The name is already taken."},{"type":"ArgumentException","doc":"The name is invalid, or generation-bound creation requests replacement."}]}],"doc":{"summary":"Creates a session.","body":"Set to require one daemon before\ncreation. Readback always uses the generation reported by creation itself. A daemon\nchange after creation reports a partial failure rather than returning its replacement.","examples":[{"lang":"console","intro":"Create entities directly inside an owned server scope, then read the session and window children. The outer scope stops its daemon and all created entities. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/CreateWindowPane.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-createwindowpane-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// The outer server scope owns everything created directly inside this daemon.\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nSession session = await owned.Value.CreateSessionAsync(\n new NewSessionRequest { Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\" }, token);\nWindow window = await session.CreateWindowAsync(\n new NewWindowRequest { Name = \"editor\", Command = \"/bin/cat\" }, token);\nPane original = (await window.GetPanesAsync(token)).Single();\nPane added = await original.SplitAsync(\n new SplitPaneRequest { Direction = PaneDirection.Right, Command = \"/bin/cat\" }, token);\n\nIReadOnlyList windows = await session.GetWindowsAsync(token);\nIReadOnlyList panes = await session.GetPanesAsync(token);\nif (windows.Count != 2 || panes.Count != 3 || added.Id == original.Id)\n{\n throw new InvalidOperationException(\"Expected two windows and three distinct panes.\");\n}\n\nConsole.WriteLine($\"Created session {session.Name} and window {window.Name}.\");\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Created session demo and window editor.\nWindows: 2; panes: 3\n"}]},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":131,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.CreateSessionAsync","product":"core","slug":"libtmux-server-createsessionasync"},{"id":"LibTmux.Server.CreateSessionWithReceiptAsync","name":"CreateSessionWithReceiptAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"NewSessionRequest?","default":"null","doc":"The session to create."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels creation and readback."}],"returns":"Task","returnsDoc":"The created session and child identifiers from the same creation reply.","raises":[{"type":"ArgumentException","doc":"The name is invalid, or generation-bound creation requests replacement."},{"type":"TmuxSessionExistsException","doc":"The name is already taken."},{"type":"LibTmuxException","doc":"Creation or readback failed; a failure after creation has unknown dispatch outcome."}]}],"doc":{"summary":"Creates a session and returns its initial window and pane identities.","body":"The returned session is bound to the creating daemon. Its child identifiers are\ncreation-time facts, not a snapshot or a promise that the children still belong\nto the session. A failed readback publishes no receipt or cleanup ownership."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":149,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.CreateSessionWithReceiptAsync","product":"core","slug":"libtmux-server-createsessionwithreceiptasync"},{"id":"LibTmux.Server.CreateOwnedAsync","name":"CreateOwnedAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"options","type":"ServerConnectionOptions?","default":"null","doc":"Connection options."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"A scope that stops the server when disposed.","raises":[{"type":"InvalidOperationException","doc":"A server is already listening on the default socket."},{"type":"TmuxCommandException","doc":"tmux failed to say whether a server is listening, such as on a socket it may not open."}]}],"doc":{"summary":"Starts a server and takes ownership of it.","body":"The scope holds an endpoint rather than a materialized server, because\na tmux server with no sessions exits at once. \nstays that endpoint after a session is created through it; its session,\nwindow, and pane listings and \ndiscover the live server on each call, and the objects they return\ncarry the discovered handle.\n\nOn the default socket, the one a caller gets by naming none, a server\nalready listening is refused rather than adopted: disposing the scope\nstops the server, and on a developer's machine the default socket holds\nthe one they are using. A named socket or path stays the caller's to\nadopt deliberately. The check and the start are two tmux calls, so two\ncallers that own the default socket at the same moment can both pass\nit; give each owned server a socket of its own.\n\nA call that fails or is cancelled after starting a server stops it, since\nno scope reaches the caller to do so; a server it found running is left.","examples":[{"lang":"console","intro":"Distinguish an endpoint handle from a discovered server. Connection discovery returns an immutable replacement without capturing child relations. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerConstruction.cs","code":"using System;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverconstruction-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// Open records the endpoint without running tmux or reading its state.\nServer endpoint = Server.Open(options);\nif (endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Open must not discover a server.\");\n}\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n\n// Connect discovers the live daemon and returns a new materialized handle.\nServer connected = await endpoint.ConnectAsync(token);\nServer sameEndpoint = await Server.ConnectAsync(options, token);\nif (!connected.IsMaterialized || !sameEndpoint.IsMaterialized || endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Connecting must leave the original handle unchanged.\");\n}\nif (connected.Generation != sameEndpoint.Generation || connected.Sessions.IsCaptured)\n{\n throw new InvalidOperationException(\"Connection discovery must not capture the hierarchy.\");\n}\n\nConsole.WriteLine(\"Open records an endpoint; Connect discovers the running server.\");\nConsole.WriteLine(\"The original handle stays unmaterialized; relations remain uncaptured.\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Open records an endpoint; Connect discovers the running server.\nThe original handle stays unmaterialized; relations remain uncaptured.\n"}]},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":250,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.CreateOwnedAsync","product":"core","slug":"libtmux-server-createownedasync"},{"id":"LibTmux.Server.CreateOwnedSessionAsync","name":"CreateOwnedSessionAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"NewSessionRequest?","default":"null","doc":"The session to create."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"A scope that stops the session when disposed."}],"doc":{"summary":"Creates a session and takes ownership of it.","examples":[{"lang":"console","intro":"Distinguish an endpoint handle from a discovered server. Connection discovery returns an immutable replacement without capturing child relations. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerConstruction.cs","code":"using System;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverconstruction-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// Open records the endpoint without running tmux or reading its state.\nServer endpoint = Server.Open(options);\nif (endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Open must not discover a server.\");\n}\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n\n// Connect discovers the live daemon and returns a new materialized handle.\nServer connected = await endpoint.ConnectAsync(token);\nServer sameEndpoint = await Server.ConnectAsync(options, token);\nif (!connected.IsMaterialized || !sameEndpoint.IsMaterialized || endpoint.IsMaterialized)\n{\n throw new InvalidOperationException(\"Connecting must leave the original handle unchanged.\");\n}\nif (connected.Generation != sameEndpoint.Generation || connected.Sessions.IsCaptured)\n{\n throw new InvalidOperationException(\"Connection discovery must not capture the hierarchy.\");\n}\n\nConsole.WriteLine(\"Open records an endpoint; Connect discovers the running server.\");\nConsole.WriteLine(\"The original handle stays unmaterialized; relations remain uncaptured.\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Open records an endpoint; Connect discovers the running server.\nThe original handle stays unmaterialized; relations remain uncaptured.\n"}]},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":321,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.CreateOwnedSessionAsync","product":"core","slug":"libtmux-server-createownedsessionasync"},{"id":"LibTmux.Server.AttachSessionAsync","name":"AttachSessionAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"request","type":"AttachSessionRequest","doc":"Attachment options naming the session."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Attaches a client to a session on this server."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":336,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.AttachSessionAsync","product":"core","slug":"libtmux-server-attachsessionasync"},{"id":"LibTmux.OwnedServerScope","name":"OwnedServerScope","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Owns a server and stops it when disposed.","body":"Ownership is explicit: a handle obtained any other way never tears its\nserver down, so a caller cannot accidentally kill a server it merely\nconnected to."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":465,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OwnedServerScope","product":"core","slug":"libtmux-ownedserverscope"},{"id":"LibTmux.OwnedServerScope.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.OwnedServerScope","signatures":[],"type":"Server","doc":{"summary":"Gets the owned server."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":478,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OwnedServerScope.Value","product":"core","slug":"libtmux-ownedserverscope-value"},{"id":"LibTmux.OwnedServerScope.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":[],"parent":"LibTmux.OwnedServerScope","signatures":[{"params":[],"returns":"ValueTask","returnsDoc":"A task that completes once the server process has exited.","raises":[{"type":"LibTmuxException","doc":"The server could not be stopped, or had not exited within five seconds."}]}],"doc":{"summary":"Stops the owned server.","body":"Calls made while a stop is under way share it, and complete or fail with\nit. A call after a failed stop tries again; one after a stop that\nsucceeded returns at once."},"source":{"file":"src/LibTmux/Server.Lifecycle.cs","line":488,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OwnedServerScope.DisposeAsync","product":"core","slug":"libtmux-ownedserverscope-disposeasync"},{"id":"LibTmux.Server.Options","name":"Options","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"TmuxOptions","doc":{"summary":"Gets the options of this server.","body":"Server options belong to the daemon rather than to anything inside it,\nso nothing is targeted and the global table is the only one there is."},"source":{"file":"src/LibTmux/Server.Scopes.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Options","product":"core","slug":"libtmux-server-options"},{"id":"LibTmux.Server.Hooks","name":"Hooks","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"TmuxHooks","doc":{"summary":"Gets the hooks of this server.","body":"tmux has no server hook table of its own: the global one is it, which is\nwhy these are reached with the global flag rather than a server flag."},"source":{"file":"src/LibTmux/Server.Scopes.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Hooks","product":"core","slug":"libtmux-server-hooks"},{"id":"LibTmux.Server.Buffers","name":"Buffers","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"TmuxBuffers","doc":{"summary":"Gets the paste buffers of this server."},"source":{"file":"src/LibTmux/Server.Scopes.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Buffers","product":"core","slug":"libtmux-server-buffers"},{"id":"LibTmux.Server.Keys","name":"Keys","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"TmuxKeys","doc":{"summary":"Gets the key bindings of this server."},"source":{"file":"src/LibTmux/Server.Scopes.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Keys","product":"core","slug":"libtmux-server-keys"},{"id":"LibTmux.Server.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"TmuxEnvironment","doc":{"summary":"Gets the environment new sessions inherit from."},"source":{"file":"src/LibTmux/Server.Scopes.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Environment","product":"core","slug":"libtmux-server-environment"},{"id":"LibTmux.Server.SnapshotMetadata","name":"SnapshotMetadata","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"SnapshotMetadata?","doc":{"summary":"Gets acquisition metadata, or null when this handle was not captured."},"source":{"file":"src/LibTmux/Server.Snapshots.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.SnapshotMetadata","product":"core","slug":"libtmux-server-snapshotmetadata"},{"id":"LibTmux.Server.Sessions","name":"Sessions","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"CapturedRelation","doc":{"summary":"Gets the sessions this handle captured."},"source":{"file":"src/LibTmux/Server.Snapshots.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Sessions","product":"core","slug":"libtmux-server-sessions"},{"id":"LibTmux.Server.Windows","name":"Windows","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"CapturedRelation","doc":{"summary":"Gets the windows this handle captured, across every session.","body":"Each session/index placement appears separately, including repeated links\nin one session. Each handle preserves its captured parent and children."},"source":{"file":"src/LibTmux/Server.Snapshots.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Windows","product":"core","slug":"libtmux-server-windows"},{"id":"LibTmux.Server.Panes","name":"Panes","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"CapturedRelation","doc":{"summary":"Gets the panes this handle captured, across every window.","body":"tmux lists panes per window rather than per server, so a capture that\nstopped short of panes leaves this uncaptured even when the windows are\nthere."},"source":{"file":"src/LibTmux/Server.Snapshots.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Panes","product":"core","slug":"libtmux-server-panes"},{"id":"LibTmux.Server.Clients","name":"Clients","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"CapturedRelation","doc":{"summary":"Gets the clients this handle captured.","body":"A capture reads the hierarchy, which clients are not part of: a client\nis attached to a session rather than contained by one. Reading them is\n."},"source":{"file":"src/LibTmux/Server.Snapshots.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Clients","product":"core","slug":"libtmux-server-clients"},{"id":"LibTmux.Server.CaptureSnapshotAsync","name":"CaptureSnapshotAsync","kind":"method","modifiers":[],"parent":"LibTmux.Server","signatures":[{"params":[{"name":"depth","type":"SnapshotDepth","default":"SnapshotDepth.Panes","doc":"How far down the hierarchy to read."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"A handle whose relations are the ones this reading found.","raises":[{"type":"InvalidOperationException","doc":"The handle has no connection."},{"type":"ArgumentOutOfRangeException","doc":"The depth is undefined."},{"type":"InconsistentSnapshotException","doc":"The acquired parent, placement, or child-count rows contradict each other."},{"type":"StaleServerGenerationException","doc":"The endpoint now names a different daemon generation."},{"type":"OperationCanceledException","doc":"Acquisition was cancelled before publication."}]}],"doc":{"summary":"Reads the server and answers a handle carrying what it found.","body":"A handle that has not yet found a live server discovers one first,\nbecause a scope hands back the unmaterialized endpoint it started.\n\nEvery depth performs a fresh guarded read. Separate reads are not an\natomic observation; detected topology contradictions fail the attempt\nwithout retrying or publishing partial relations.","examples":[{"lang":"console","intro":"Capture a new immutable hierarchy, check optional pane state, and distinguish an empty captured relation from one that has not been read. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/SnapshotAccess.cs","code":"using System;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-snapshotaccess-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nServer server;\nawait using (OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token))\n{\n server = await Server.ConnectAsync(options, token);\n if (server.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"Connecting must not capture the hierarchy.\");\n }\n Console.WriteLine(\"Sessions have not been captured.\");\n\n Server captured = await server.CaptureSnapshotAsync(SnapshotDepth.Panes, token);\n if (!captured.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"The requested sessions were not captured.\");\n }\n Session capturedSession = captured.Sessions.Single();\n if (!capturedSession.ActivePane.IsCaptured)\n {\n throw new InvalidOperationException(\"The active pane was not captured.\");\n }\n Pane pane = capturedSession.ActivePane.Value;\n if (pane.CurrentPath is null || pane.CurrentCommand is null)\n {\n throw new InvalidOperationException(\"The running pane should report its path and command.\");\n }\n Console.WriteLine(\"The captured active pane has a path and command.\");\n if (server.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"Capturing must return a new immutable handle.\");\n }\n Console.WriteLine(\"The original handle is still uncaptured.\");\n\n // Keep this private daemon alive after its only owned session is disposed.\n TmuxCommandResult result = await server.ExecuteCommandAsync(\n [\"set-option\", \"-s\", \"exit-empty\", \"off\"], token);\n if (result.ExitCode != 0)\n {\n throw new InvalidOperationException(\"Could not keep the empty server alive.\");\n }\n}\nServer empty = await server.CaptureSnapshotAsync(SnapshotDepth.Sessions, token);\nif (!empty.Sessions.IsCaptured || empty.Sessions.Count != 0)\n{\n throw new InvalidOperationException(\"An empty captured relation differs from an uncaptured relation.\");\n}\nConsole.WriteLine(\"Captured sessions can be empty.\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux/Server.Snapshots.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.CaptureSnapshotAsync","product":"core","slug":"libtmux-server-capturesnapshotasync"},{"id":"LibTmux.ShowMessagesMode","name":"ShowMessagesMode","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"What show-messages should list."},"source":{"file":"src/LibTmux/Server.Utilities.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ShowMessagesMode","product":"core","slug":"libtmux-showmessagesmode"},{"id":"LibTmux.ShowMessagesMode.Messages","name":"Messages","kind":"constant","modifiers":[],"parent":"LibTmux.ShowMessagesMode","signatures":[],"doc":{"summary":"The server's own message log."},"source":{"file":"src/LibTmux/Server.Utilities.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ShowMessagesMode.Messages","product":"core","slug":"libtmux-showmessagesmode-messages"},{"id":"LibTmux.ShowMessagesMode.Jobs","name":"Jobs","kind":"constant","modifiers":[],"parent":"LibTmux.ShowMessagesMode","signatures":[],"doc":{"summary":"The jobs the server is running."},"source":{"file":"src/LibTmux/Server.Utilities.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ShowMessagesMode.Jobs","product":"core","slug":"libtmux-showmessagesmode-jobs"},{"id":"LibTmux.ShowMessagesMode.Terminals","name":"Terminals","kind":"constant","modifiers":[],"parent":"LibTmux.ShowMessagesMode","signatures":[],"doc":{"summary":"What the server knows about attached terminals."},"source":{"file":"src/LibTmux/Server.Utilities.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ShowMessagesMode.Terminals","product":"core","slug":"libtmux-showmessagesmode-terminals"},{"id":"LibTmux.Server.DaemonVersion","name":"DaemonVersion","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"TmuxVersion?","doc":{"summary":"Gets the daemon version read by inspection, or null when it was not acquired."},"source":{"file":"src/LibTmux/Server.Version.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.DaemonVersion","product":"core","slug":"libtmux-server-daemonversion"},{"id":"LibTmux.Server.Version","name":"Version","kind":"property","modifiers":[],"parent":"LibTmux.Server","signatures":[],"type":"TmuxVersion?","doc":{"summary":"Gets the verified tmux client executable version."},"source":{"file":"src/LibTmux/Server.Version.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Server.Version","product":"core","slug":"libtmux-server-version"},{"id":"LibTmux.Session","name":"Session","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Represents an immutable session handle and snapshot.","body":"Thread-safe: the handle is immutable once constructed and may be shared\nfreely, including as a singleton. Every mutating call answers a new handle\nrather than changing this one."},"source":{"file":"src/LibTmux/Session.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session","product":"core","slug":"libtmux-session"},{"id":"LibTmux.Session.ExecuteCommandAsync","name":"ExecuteCommandAsync","kind":"method","modifiers":[],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"arguments","type":"IReadOnlyList"},{"name":"targetOverride","type":"string?","default":"null"},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Executes one raw tmux command against this session."},"source":{"file":"src/LibTmux/Session.Command.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.ExecuteCommandAsync","product":"core","slug":"libtmux-session-executecommandasync"},{"id":"LibTmux.Session.FromEnvironmentAsync","name":"FromEnvironmentAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"environment","type":"IReadOnlyDictionary?","default":"null","doc":"The environment, or null for the process."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The resolved session."}],"doc":{"summary":"Returns the session holding the pane this process runs in.","body":"Resolved through the pane rather than through the session id in\nTMUX. That id is frozen at pane spawn, so it names the wrong\nsession once the pane's window is moved or linked elsewhere."},"source":{"file":"src/LibTmux/Session.FromEnvironment.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.FromEnvironmentAsync","product":"core","slug":"libtmux-session-fromenvironmentasync"},{"id":"LibTmux.Session.RawFormatFields","name":"RawFormatFields","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the tmux fields captured when this handle materialized."},"source":{"file":"src/LibTmux/Session.Identity.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.RawFormatFields","product":"core","slug":"libtmux-session-rawformatfields"},{"id":"LibTmux.Session.Id","name":"Id","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"SessionId","doc":{"summary":"Gets the session identifier."},"source":{"file":"src/LibTmux/Session.Identity.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Id","product":"core","slug":"libtmux-session-id"},{"id":"LibTmux.Session.Generation","name":"Generation","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"ServerGeneration","doc":{"summary":"Gets the server generation captured with this session."},"source":{"file":"src/LibTmux/Session.Identity.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Generation","product":"core","slug":"libtmux-session-generation"},{"id":"LibTmux.Session.Equals","name":"Equals","kind":"method","modifiers":["overload"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"other","type":"Session?"}],"returns":"bool"},{"params":[{"name":"obj","type":"object?"}],"returns":"bool"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Session.Identity.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Equals","product":"core","slug":"libtmux-session-equals"},{"id":"LibTmux.Session.GetHashCode","name":"GetHashCode","kind":"method","modifiers":[],"parent":"LibTmux.Session","signatures":[{"params":[],"returns":"int"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Session.Identity.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.GetHashCode","product":"core","slug":"libtmux-session-gethashcode"},{"id":"LibTmux.Session.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"string","doc":{"summary":"Gets the session name captured with this handle."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Name","product":"core","slug":"libtmux-session-name"},{"id":"LibTmux.Session.Attached","name":"Attached","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"bool","doc":{"summary":"Gets whether a client was attached when this session was read.","body":"This is captured state rather than a live one: it says what tmux\nreported when the handle was made, which is what makes a reading of a\nhierarchy consistent with itself."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Attached","product":"core","slug":"libtmux-session-attached"},{"id":"LibTmux.Session.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"Server","doc":{"summary":"Gets the server that owns this session.","body":"Reading this uses the owner captured with the entity."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Server","product":"core","slug":"libtmux-session-server"},{"id":"LibTmux.Session.RefreshAsync","name":"RefreshAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying current state."}],"doc":{"summary":"Re-reads this session from tmux."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.RefreshAsync","product":"core","slug":"libtmux-session-refreshasync"},{"id":"LibTmux.Session.RenameAsync","name":"RenameAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"name","type":"string","doc":"The new name."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new name."}],"doc":{"summary":"Renames this session.","body":"tmux expands the name as a format, so a # in it does not survive\nverbatim."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.RenameAsync","product":"core","slug":"libtmux-session-renameasync"},{"id":"LibTmux.Session.KillAsync","name":"KillAsync","kind":"method","modifiers":[],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"allExcept","type":"bool","default":"false","doc":"Whether every other session is stopped instead of this one."},{"name":"clearAlerts","type":"bool","default":"false","doc":"Whether alerts are cleared in every window instead."},{"name":"group","type":"bool","default":"false","doc":"Whether every session in this session's group is stopped."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Stops this session.","body":"Group stopping arrived in tmux 3.7. Older servers reject the flag and\nstop nothing at all, so against those the request is logged and the flag\nomitted: this session still dies, its group siblings do not."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":88,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.KillAsync","product":"core","slug":"libtmux-session-killasync"},{"id":"LibTmux.Session.LockAsync","name":"LockAsync","kind":"method","modifiers":[],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Locks this session."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":118,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.LockAsync","product":"core","slug":"libtmux-session-lockasync"},{"id":"LibTmux.Session.DetachClientAsync","name":"DetachClientAsync","kind":"method","modifiers":[],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"shellCommand","type":"string?","default":"null","doc":"A command the detached clients run, when any."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Detaches every client attached to this session.","body":"The session scope is always sent, because -s is the only\ndetach-client flag group that names a session rather than a\nclient."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":130,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.DetachClientAsync","product":"core","slug":"libtmux-session-detachclientasync"},{"id":"LibTmux.Session.SelectWindowAsync","name":"SelectWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"target","type":"string","doc":"The window target."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The window that is active afterwards."}],"doc":{"summary":"Selects a window in this session."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":144,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.SelectWindowAsync","product":"core","slug":"libtmux-session-selectwindowasync"},{"id":"LibTmux.Session.SelectNextWindowAsync","name":"SelectNextWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The window that is active afterwards."}],"doc":{"summary":"Selects the next window."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":159,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.SelectNextWindowAsync","product":"core","slug":"libtmux-session-selectnextwindowasync"},{"id":"LibTmux.Session.SelectPreviousWindowAsync","name":"SelectPreviousWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The window that is active afterwards."}],"doc":{"summary":"Selects the previous window."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":171,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.SelectPreviousWindowAsync","product":"core","slug":"libtmux-session-selectpreviouswindowasync"},{"id":"LibTmux.Session.KillWindowAsync","name":"KillWindowAsync","kind":"method","modifiers":[],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"target","type":"string?","default":"null","doc":"The window target, or null for the active window."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Stops one window in this session."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":184,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.KillWindowAsync","product":"core","slug":"libtmux-session-killwindowasync"},{"id":"LibTmux.Session.SwitchClientAsync","name":"SwitchClientAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the state after the switch."}],"doc":{"summary":"Switches the current client to this session."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":195,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.SwitchClientAsync","product":"core","slug":"libtmux-session-switchclientasync"},{"id":"LibTmux.Session.SearchWindowsAsync","name":"SearchWindowsAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"filter","type":"UnsafeTmuxFilter","doc":"The raw tmux filter expression."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The windows tmux kept."}],"doc":{"summary":"Runs a tmux-side filter over this session's windows."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":208,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.SearchWindowsAsync","product":"core","slug":"libtmux-session-searchwindowsasync"},{"id":"LibTmux.Session.SearchPanesAsync","name":"SearchPanesAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"filter","type":"UnsafeTmuxFilter","doc":"The raw tmux filter expression."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The panes tmux kept."}],"doc":{"summary":"Runs a tmux-side filter over this session's panes."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":229,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.SearchPanesAsync","product":"core","slug":"libtmux-session-searchpanesasync"},{"id":"LibTmux.Session.AttachAsync","name":"AttachAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"request","type":"AttachSessionRequest?","default":"null","doc":"Attachment options."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A refreshed handle for this session."}],"doc":{"summary":"Attaches a client to this session.","body":"Attaching inherits the caller's terminal on stdin and waits for detach.\nA positive acknowledgement is required within five seconds, or a shorter\n. CommandTimeout\nstill bounds the whole attachment; null permits an indefinite interactive\nlifetime after acknowledgement. Cancellation stops only the owned client.\n remains a raw target override;\nleave it unset to attach this session by its identifier."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":259,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.AttachAsync","product":"core","slug":"libtmux-session-attachasync"},{"id":"LibTmux.Session.CreateWindowAsync","name":"CreateWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"request","type":"NewWindowRequest?","default":"null","doc":"The window to create."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The created window."}],"doc":{"summary":"Creates a window in this session.","examples":[{"lang":"console","intro":"Create entities directly inside an owned server scope, then read the session and window children. The outer scope stops its daemon and all created entities. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/CreateWindowPane.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-createwindowpane-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// The outer server scope owns everything created directly inside this daemon.\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nSession session = await owned.Value.CreateSessionAsync(\n new NewSessionRequest { Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\" }, token);\nWindow window = await session.CreateWindowAsync(\n new NewWindowRequest { Name = \"editor\", Command = \"/bin/cat\" }, token);\nPane original = (await window.GetPanesAsync(token)).Single();\nPane added = await original.SplitAsync(\n new SplitPaneRequest { Direction = PaneDirection.Right, Command = \"/bin/cat\" }, token);\n\nIReadOnlyList windows = await session.GetWindowsAsync(token);\nIReadOnlyList panes = await session.GetPanesAsync(token);\nif (windows.Count != 2 || panes.Count != 3 || added.Id == original.Id)\n{\n throw new InvalidOperationException(\"Expected two windows and three distinct panes.\");\n}\n\nConsole.WriteLine($\"Created session {session.Name} and window {window.Name}.\");\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Created session demo and window editor.\nWindows: 2; panes: 3\n"}]},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":285,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.CreateWindowAsync","product":"core","slug":"libtmux-session-createwindowasync"},{"id":"LibTmux.Session.CreateWindowWithReceiptAsync","name":"CreateWindowWithReceiptAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"request","type":"NewWindowRequest?","default":"null","doc":"The window to create."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels creation and readback."}],"returns":"Task","returnsDoc":"The created window in this session and its initial pane identifier.","raises":[{"type":"ArgumentException","doc":"The request may select an existing window."},{"type":"LibTmuxException","doc":"Creation or readback failed; a failure after creation has unknown dispatch outcome."}]}],"doc":{"summary":"Creates a window and returns its initial pane identity.","body":"Rejects before dispatch because an\nexisting window has no creation receipt. The pane identifier comes from creation,\nnot a later listing; the pane may have moved or disappeared before readback.\nA failed readback publishes no receipt or cleanup ownership."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":304,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.CreateWindowWithReceiptAsync","product":"core","slug":"libtmux-session-createwindowwithreceiptasync"},{"id":"LibTmux.OwnedSessionScope","name":"OwnedSessionScope","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Owns a session and stops it when disposed."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":576,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OwnedSessionScope","product":"core","slug":"libtmux-ownedsessionscope"},{"id":"LibTmux.OwnedSessionScope.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.OwnedSessionScope","signatures":[],"type":"Session","doc":{"summary":"Gets the owned session."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":584,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OwnedSessionScope.Value","product":"core","slug":"libtmux-ownedsessionscope-value"},{"id":"LibTmux.OwnedSessionScope.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.OwnedSessionScope","signatures":[{"params":[],"returns":"ValueTask","returnsDoc":"A task that completes once the session is gone.","raises":[{"type":"LibTmuxException","doc":"The session could not be stopped."}]}],"doc":{"summary":"Stops the owned session."},"source":{"file":"src/LibTmux/Session.Lifecycle.cs","line":589,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OwnedSessionScope.DisposeAsync","product":"core","slug":"libtmux-ownedsessionscope-disposeasync"},{"id":"LibTmux.Session.ActiveWindow","name":"ActiveWindow","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"CapturedValue","doc":{"summary":"Gets the captured active window, or an uncaptured relation.","body":"Reading this is local. A session reached through an inactive window\ncarries that window's row, so its active window was not captured."},"source":{"file":"src/LibTmux/Session.Relations.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.ActiveWindow","product":"core","slug":"libtmux-session-activewindow"},{"id":"LibTmux.Session.ActivePane","name":"ActivePane","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"CapturedValue","doc":{"summary":"Gets the captured active pane, or an uncaptured relation.","body":"Reading this is local. The row must describe the active pane in the\nsession's active window; other rows leave this relation uncaptured."},"source":{"file":"src/LibTmux/Session.Relations.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.ActivePane","product":"core","slug":"libtmux-session-activepane"},{"id":"LibTmux.Session.Windows","name":"Windows","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"CapturedRelation","doc":{"summary":"Gets the windows the capture found in this session.","body":"Reading this never reaches tmux; unacquired relations remain uncaptured."},"source":{"file":"src/LibTmux/Session.Relations.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Windows","product":"core","slug":"libtmux-session-windows"},{"id":"LibTmux.Session.Panes","name":"Panes","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"CapturedRelation","doc":{"summary":"Gets the panes the capture found in this session.","body":"Reading this never reaches tmux."},"source":{"file":"src/LibTmux/Session.Relations.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Panes","product":"core","slug":"libtmux-session-panes"},{"id":"LibTmux.Session.GetWindowAsync","name":"GetWindowAsync","kind":"method","modifiers":["async","overload"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"id","type":"WindowId","doc":"The window identifier."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The materialized window in this session.","raises":[{"type":"TmuxObjectNotFoundException","doc":"This session has no matching window."},{"type":"LibTmuxException","doc":"The lookup failed."}]},{"params":[{"name":"target","type":"string","doc":"The window identifier or name."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The materialized window in this session.","raises":[{"type":"TmuxObjectNotFoundException","doc":"This session has no matching window."},{"type":"LibTmuxException","doc":"The lookup failed."}]}],"doc":{"summary":"Reads one window in this session, throwing when it is absent."},"source":{"file":"src/LibTmux/Session.Relations.cs","line":59,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.GetWindowAsync","product":"core","slug":"libtmux-session-getwindowasync"},{"id":"LibTmux.Session.FindWindowAsync","name":"FindWindowAsync","kind":"method","modifiers":["async","overload"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"id","type":"WindowId","doc":"The window identifier to look for."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The window, or null when this session has no such window."},{"params":[{"name":"target","type":"string","doc":"A tmux window target inside this session."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The window, or null when this session has no such window."}],"doc":{"summary":"Reads one of this session's windows by identifier.","body":"A typed identifier is unique in a session that links a window at only\none index; the string overload also accepts a window name, which two\nwindows can share. When this session links the same window at more\nthan one index, this returns whichever placement tmux lists first."},"source":{"file":"src/LibTmux/Session.Relations.cs","line":91,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.FindWindowAsync","product":"core","slug":"libtmux-session-findwindowasync"},{"id":"LibTmux.Session.GetWindowsAsync","name":"GetWindowsAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The windows tmux reports for this session."}],"doc":{"summary":"Reads this session's windows from tmux.","examples":[{"lang":"console","intro":"Create entities directly inside an owned server scope, then read the session and window children. The outer scope stops its daemon and all created entities. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/CreateWindowPane.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-createwindowpane-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// The outer server scope owns everything created directly inside this daemon.\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nSession session = await owned.Value.CreateSessionAsync(\n new NewSessionRequest { Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\" }, token);\nWindow window = await session.CreateWindowAsync(\n new NewWindowRequest { Name = \"editor\", Command = \"/bin/cat\" }, token);\nPane original = (await window.GetPanesAsync(token)).Single();\nPane added = await original.SplitAsync(\n new SplitPaneRequest { Direction = PaneDirection.Right, Command = \"/bin/cat\" }, token);\n\nIReadOnlyList windows = await session.GetWindowsAsync(token);\nIReadOnlyList panes = await session.GetPanesAsync(token);\nif (windows.Count != 2 || panes.Count != 3 || added.Id == original.Id)\n{\n throw new InvalidOperationException(\"Expected two windows and three distinct panes.\");\n}\n\nConsole.WriteLine($\"Created session {session.Name} and window {window.Name}.\");\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Created session demo and window editor.\nWindows: 2; panes: 3\n"}]},"source":{"file":"src/LibTmux/Session.Relations.cs","line":147,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.GetWindowsAsync","product":"core","slug":"libtmux-session-getwindowsasync"},{"id":"LibTmux.Session.GetPanesAsync","name":"GetPanesAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The panes tmux reports for this session."}],"doc":{"summary":"Reads this session's panes from tmux.","examples":[{"lang":"console","intro":"Create entities directly inside an owned server scope, then read the session and window children. The outer scope stops its daemon and all created entities. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/CreateWindowPane.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-createwindowpane-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// The outer server scope owns everything created directly inside this daemon.\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nSession session = await owned.Value.CreateSessionAsync(\n new NewSessionRequest { Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\" }, token);\nWindow window = await session.CreateWindowAsync(\n new NewWindowRequest { Name = \"editor\", Command = \"/bin/cat\" }, token);\nPane original = (await window.GetPanesAsync(token)).Single();\nPane added = await original.SplitAsync(\n new SplitPaneRequest { Direction = PaneDirection.Right, Command = \"/bin/cat\" }, token);\n\nIReadOnlyList windows = await session.GetWindowsAsync(token);\nIReadOnlyList panes = await session.GetPanesAsync(token);\nif (windows.Count != 2 || panes.Count != 3 || added.Id == original.Id)\n{\n throw new InvalidOperationException(\"Expected two windows and three distinct panes.\");\n}\n\nConsole.WriteLine($\"Created session {session.Name} and window {window.Name}.\");\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Created session demo and window editor.\nWindows: 2; panes: 3\n"}]},"source":{"file":"src/LibTmux/Session.Relations.cs","line":161,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.GetPanesAsync","product":"core","slug":"libtmux-session-getpanesasync"},{"id":"LibTmux.Session.GetActivePaneAsync","name":"GetActivePaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The pane tmux reports.","raises":[{"type":"TmuxObjectNotFoundException","doc":"tmux reports no such pane."}]}],"doc":{"summary":"Reads from tmux the pane this session shows: its current window's active pane.","body":"Asks tmux now, where holds what a capture saw."},"source":{"file":"src/LibTmux/Session.Relations.cs","line":177,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.GetActivePaneAsync","product":"core","slug":"libtmux-session-getactivepaneasync"},{"id":"LibTmux.Session.HoldWaitClientAsync","name":"HoldWaitClientAsync","kind":"method","modifiers":[],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels attaching the client."}],"returns":"Task","returnsDoc":"A handle; disposing it lets the client detach once no wait needs it."}],"doc":{"summary":"Keeps the control client that waits on this session's panes use attached until the handle is disposed.","body":"A wait on a pane attaches a control client to the pane's session and\nreads through it, and lets it go when the wait ends unless another wait\nstill needs it. Attaching costs about as much as a tmux process start,\nso holding the client saves that for each wait in a series, which then\ncosts little more than the keys it sends.\n\nThe client ignores its size, so it leaves window sizes alone, and is\nexcluded wherever this library tells observers from people attached.\ntmux itself still lists it among the session's clients while it is\nheld, so the session counts as attached for destroy-unattached,\nand the client keeps reading the session's output while no wait runs.\nThe hold is for this server process: one started again needs a new\none. When control mode is unavailable the waits poll, and the handle\nholds nothing."},"source":{"file":"src/LibTmux/Session.Scopes.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.HoldWaitClientAsync","product":"core","slug":"libtmux-session-holdwaitclientasync"},{"id":"LibTmux.Session.Options","name":"Options","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"TmuxOptions","doc":{"summary":"Gets the options of this session."},"source":{"file":"src/LibTmux/Session.Scopes.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Options","product":"core","slug":"libtmux-session-options"},{"id":"LibTmux.Session.Hooks","name":"Hooks","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"TmuxHooks","doc":{"summary":"Gets the hooks of this session."},"source":{"file":"src/LibTmux/Session.Scopes.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Hooks","product":"core","slug":"libtmux-session-hooks"},{"id":"LibTmux.Session.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.Session","signatures":[],"type":"TmuxEnvironment","doc":{"summary":"Gets the environment panes created in this session inherit from."},"source":{"file":"src/LibTmux/Session.Scopes.cs","line":60,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.Environment","product":"core","slug":"libtmux-session-environment"},{"id":"LibTmux.Session.SelectLastWindowAsync","name":"SelectLastWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The window that is active afterwards."}],"doc":{"summary":"Selects the window that was last active."},"source":{"file":"src/LibTmux/Session.WindowNavigation.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.SelectLastWindowAsync","product":"core","slug":"libtmux-session-selectlastwindowasync"},{"id":"LibTmux.Session.CreateOwnedWindowAsync","name":"CreateOwnedWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Session","signatures":[{"params":[{"name":"request","type":"NewWindowRequest?","default":"null","doc":"The window to create."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"A scope that stops the window when disposed."}],"doc":{"summary":"Creates a window in this session and takes ownership of it."},"source":{"file":"src/LibTmux/Session.WindowNavigation.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Session.CreateOwnedWindowAsync","product":"core","slug":"libtmux-session-createownedwindowasync"},{"id":"LibTmux.OwnedWindowScope","name":"OwnedWindowScope","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Owns a window and stops it when disposed."},"source":{"file":"src/LibTmux/Session.WindowNavigation.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OwnedWindowScope","product":"core","slug":"libtmux-ownedwindowscope"},{"id":"LibTmux.OwnedWindowScope.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.OwnedWindowScope","signatures":[],"type":"Window","doc":{"summary":"Gets the owned window."},"source":{"file":"src/LibTmux/Session.WindowNavigation.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OwnedWindowScope.Value","product":"core","slug":"libtmux-ownedwindowscope-value"},{"id":"LibTmux.OwnedWindowScope.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.OwnedWindowScope","signatures":[{"params":[],"returns":"ValueTask","returnsDoc":"A task that completes once the window is gone.","raises":[{"type":"LibTmuxException","doc":"The window could not be stopped."}]}],"doc":{"summary":"Stops the owned window."},"source":{"file":"src/LibTmux/Session.WindowNavigation.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.OwnedWindowScope.DisposeAsync","product":"core","slug":"libtmux-ownedwindowscope-disposeasync"},{"id":"LibTmux.SessionCreationResult","name":"SessionCreationResult","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A created session and the initial child identities reported by its creation command.","body":"The identifiers belong to 's endpoint and generation.\nThey describe creation time, not captured relationships or current membership.\nResolve those exact identifiers before acting on the children; another client\nor hook may already have moved or removed them."},"source":{"file":"src/LibTmux/SessionCreationResult.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionCreationResult","product":"core","slug":"libtmux-sessioncreationresult"},{"id":"LibTmux.SessionCreationResult.Session","name":"Session","kind":"property","modifiers":[],"parent":"LibTmux.SessionCreationResult","signatures":[],"type":"Session","doc":{"summary":"Gets the created session, bound to the daemon that acknowledged creation."},"source":{"file":"src/LibTmux/SessionCreationResult.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionCreationResult.Session","product":"core","slug":"libtmux-sessioncreationresult-session"},{"id":"LibTmux.SessionCreationResult.InitialWindowId","name":"InitialWindowId","kind":"property","modifiers":[],"parent":"LibTmux.SessionCreationResult","signatures":[],"type":"WindowId","doc":{"summary":"Gets the initial window identifier from the creation reply."},"source":{"file":"src/LibTmux/SessionCreationResult.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionCreationResult.InitialWindowId","product":"core","slug":"libtmux-sessioncreationresult-initialwindowid"},{"id":"LibTmux.SessionCreationResult.InitialWindowIndex","name":"InitialWindowIndex","kind":"property","modifiers":[],"parent":"LibTmux.SessionCreationResult","signatures":[],"type":"int","doc":{"summary":"Gets the initial window's session-relative index from the creation reply."},"source":{"file":"src/LibTmux/SessionCreationResult.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionCreationResult.InitialWindowIndex","product":"core","slug":"libtmux-sessioncreationresult-initialwindowindex"},{"id":"LibTmux.SessionCreationResult.InitialPaneId","name":"InitialPaneId","kind":"property","modifiers":[],"parent":"LibTmux.SessionCreationResult","signatures":[],"type":"PaneId","doc":{"summary":"Gets the initial pane identifier from the creation reply."},"source":{"file":"src/LibTmux/SessionCreationResult.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionCreationResult.InitialPaneId","product":"core","slug":"libtmux-sessioncreationresult-initialpaneid"},{"id":"LibTmux.SessionId","name":"SessionId","kind":"struct","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Represents a generation-independent tmux session identifier."},"source":{"file":"src/LibTmux/SessionId.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionId","product":"core","slug":"libtmux-sessionid"},{"id":"LibTmux.SessionId.SessionId","name":"SessionId","kind":"method","modifiers":[],"parent":"LibTmux.SessionId","signatures":[{"params":[{"name":"value","type":"int"}]}],"doc":{"summary":"Initializes a session identifier."},"source":{"file":"src/LibTmux/SessionId.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionId.SessionId","product":"core","slug":"libtmux-sessionid-sessionid"},{"id":"LibTmux.SessionId.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.SessionId","signatures":[],"type":"int","doc":{"summary":"Gets the nonnegative numeric value."},"source":{"file":"src/LibTmux/SessionId.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionId.Value","product":"core","slug":"libtmux-sessionid-value"},{"id":"LibTmux.SessionId.Parse","name":"Parse","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.SessionId","signatures":[{"params":[{"name":"text","type":"string"}],"returns":"SessionId"},{"params":[{"name":"text","type":"ReadOnlySpan","doc":"The text to parse."}],"returns":"SessionId","returnsDoc":"The parsed identifier.","raises":[{"type":"FormatException","doc":"The text is not a canonical session identifier."}]}],"doc":{"summary":"Parses a prefixed session identifier."},"source":{"file":"src/LibTmux/SessionId.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionId.Parse","product":"core","slug":"libtmux-sessionid-parse"},{"id":"LibTmux.SessionId.TryParse","name":"TryParse","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.SessionId","signatures":[{"params":[{"name":"text","type":"string?"},{"name":"result","type":"SessionId"}],"returns":"bool"},{"params":[{"name":"text","type":"ReadOnlySpan","doc":"The text to parse."},{"name":"result","type":"SessionId","doc":"The parsed identifier when this succeeds."}],"returns":"bool","returnsDoc":" when the text was a canonical identifier."}],"doc":{"summary":"Tries to parse a prefixed session identifier."},"source":{"file":"src/LibTmux/SessionId.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionId.TryParse","product":"core","slug":"libtmux-sessionid-tryparse"},{"id":"LibTmux.SessionId.CompareTo","name":"CompareTo","kind":"method","modifiers":[],"parent":"LibTmux.SessionId","signatures":[{"params":[{"name":"other","type":"SessionId","doc":"The identifier to compare against."}],"returns":"int","returnsDoc":"A negative value, zero, or a positive value."}],"doc":{"summary":"Orders this identifier against another numerically.","body":"tmux hands out session identifiers in increasing order, so the ordering\nis oldest first. Without it OrderBy and Array.Sort throw\nrather than sorting."},"source":{"file":"src/LibTmux/SessionId.cs","line":76,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionId.CompareTo","product":"core","slug":"libtmux-sessionid-compareto"},{"id":"LibTmux.SessionId.ToString","name":"ToString","kind":"method","modifiers":[],"parent":"LibTmux.SessionId","signatures":[{"params":[],"returns":"string"}],"doc":{"summary":"Returns the canonical prefixed identifier."},"source":{"file":"src/LibTmux/SessionId.cs","line":124,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionId.ToString","product":"core","slug":"libtmux-sessionid-tostring"},{"id":"LibTmux.CapturedRelation","name":"CapturedRelation","kind":"class","modifiers":[],"signatures":[],"typeParams":["T"],"typeParameters":[{"name":"T","doc":"The captured child type."}],"doc":{"summary":"Holds the children a snapshot captured for one relation.","body":"An uncaptured relation is not an empty one. Enumerating a relation the\nsnapshot never read throws instead of reporting zero children, so a caller\ncannot mistake unread state for absent state."},"source":{"file":"src/LibTmux/Snapshots/CapturedRelation.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedRelation","product":"core","slug":"libtmux-capturedrelation"},{"id":"LibTmux.CapturedRelation.Relation","name":"Relation","kind":"property","modifiers":[],"parent":"LibTmux.CapturedRelation","signatures":[],"type":"string","doc":{"summary":"Gets the relation name this instance carries."},"source":{"file":"src/LibTmux/Snapshots/CapturedRelation.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedRelation.Relation","product":"core","slug":"libtmux-capturedrelation-relation"},{"id":"LibTmux.CapturedRelation.CapturedDepth","name":"CapturedDepth","kind":"property","modifiers":[],"parent":"LibTmux.CapturedRelation","signatures":[],"type":"SnapshotDepth","doc":{"summary":"Gets the depth the owning snapshot reached."},"source":{"file":"src/LibTmux/Snapshots/CapturedRelation.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedRelation.CapturedDepth","product":"core","slug":"libtmux-capturedrelation-captureddepth"},{"id":"LibTmux.CapturedRelation.IsCaptured","name":"IsCaptured","kind":"property","modifiers":[],"parent":"LibTmux.CapturedRelation","signatures":[],"type":"bool","doc":{"summary":"Gets whether the snapshot read this relation.","examples":[{"lang":"console","intro":"Capture a new immutable hierarchy, check optional pane state, and distinguish an empty captured relation from one that has not been read. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/SnapshotAccess.cs","code":"using System;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-snapshotaccess-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nServer server;\nawait using (OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token))\n{\n server = await Server.ConnectAsync(options, token);\n if (server.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"Connecting must not capture the hierarchy.\");\n }\n Console.WriteLine(\"Sessions have not been captured.\");\n\n Server captured = await server.CaptureSnapshotAsync(SnapshotDepth.Panes, token);\n if (!captured.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"The requested sessions were not captured.\");\n }\n Session capturedSession = captured.Sessions.Single();\n if (!capturedSession.ActivePane.IsCaptured)\n {\n throw new InvalidOperationException(\"The active pane was not captured.\");\n }\n Pane pane = capturedSession.ActivePane.Value;\n if (pane.CurrentPath is null || pane.CurrentCommand is null)\n {\n throw new InvalidOperationException(\"The running pane should report its path and command.\");\n }\n Console.WriteLine(\"The captured active pane has a path and command.\");\n if (server.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"Capturing must return a new immutable handle.\");\n }\n Console.WriteLine(\"The original handle is still uncaptured.\");\n\n // Keep this private daemon alive after its only owned session is disposed.\n TmuxCommandResult result = await server.ExecuteCommandAsync(\n [\"set-option\", \"-s\", \"exit-empty\", \"off\"], token);\n if (result.ExitCode != 0)\n {\n throw new InvalidOperationException(\"Could not keep the empty server alive.\");\n }\n}\nServer empty = await server.CaptureSnapshotAsync(SnapshotDepth.Sessions, token);\nif (!empty.Sessions.IsCaptured || empty.Sessions.Count != 0)\n{\n throw new InvalidOperationException(\"An empty captured relation differs from an uncaptured relation.\");\n}\nConsole.WriteLine(\"Captured sessions can be empty.\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux/Snapshots/CapturedRelation.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedRelation.IsCaptured","product":"core","slug":"libtmux-capturedrelation-iscaptured"},{"id":"LibTmux.CapturedRelation.Count","name":"Count","kind":"property","modifiers":[],"parent":"LibTmux.CapturedRelation","signatures":[],"type":"int","doc":{"summary":""},"source":{"file":"src/LibTmux/Snapshots/CapturedRelation.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedRelation.Count","product":"core","slug":"libtmux-capturedrelation-count"},{"id":"LibTmux.CapturedRelation.GetEnumerator","name":"GetEnumerator","kind":"method","modifiers":[],"parent":"LibTmux.CapturedRelation","signatures":[{"params":[],"returns":"IEnumerator"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Snapshots/CapturedRelation.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedRelation.GetEnumerator","product":"core","slug":"libtmux-capturedrelation-getenumerator"},{"id":"LibTmux.CapturedRelation.OrEmpty","name":"OrEmpty","kind":"method","modifiers":[],"parent":"LibTmux.CapturedRelation","signatures":[{"params":[],"returns":"IReadOnlyList","returnsDoc":"The children, empty when the relation was never captured."}],"doc":{"summary":"Returns the captured children, or an empty list when unread."},"source":{"file":"src/LibTmux/Snapshots/CapturedRelation.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedRelation.OrEmpty","product":"core","slug":"libtmux-capturedrelation-orempty"},{"id":"LibTmux.CapturedValue","name":"CapturedValue","kind":"class","modifiers":[],"signatures":[],"typeParams":["T"],"typeParameters":[{"name":"T","bound":"class","doc":"The captured child type."}],"doc":{"summary":"Holds the one child a snapshot captured for a relation, if it read it.","body":"A relation that holds at most one child says so in its type. An uncaptured\nvalue is not an absent one: reading when the snapshot\nnever looked throws rather than\nanswering null, so a caller cannot mistake unread state for absent state."},"source":{"file":"src/LibTmux/Snapshots/CapturedValue.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedValue","product":"core","slug":"libtmux-capturedvalue"},{"id":"LibTmux.CapturedValue.Relation","name":"Relation","kind":"property","modifiers":[],"parent":"LibTmux.CapturedValue","signatures":[],"type":"string","doc":{"summary":"Gets the relation name this instance carries."},"source":{"file":"src/LibTmux/Snapshots/CapturedValue.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedValue.Relation","product":"core","slug":"libtmux-capturedvalue-relation"},{"id":"LibTmux.CapturedValue.CapturedDepth","name":"CapturedDepth","kind":"property","modifiers":[],"parent":"LibTmux.CapturedValue","signatures":[],"type":"SnapshotDepth","doc":{"summary":"Gets the depth the owning snapshot reached."},"source":{"file":"src/LibTmux/Snapshots/CapturedValue.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedValue.CapturedDepth","product":"core","slug":"libtmux-capturedvalue-captureddepth"},{"id":"LibTmux.CapturedValue.IsCaptured","name":"IsCaptured","kind":"property","modifiers":[],"parent":"LibTmux.CapturedValue","signatures":[],"type":"bool","doc":{"summary":"Gets whether the snapshot read this relation.","examples":[{"lang":"console","intro":"Capture a new immutable hierarchy, check optional pane state, and distinguish an empty captured relation from one that has not been read. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/SnapshotAccess.cs","code":"using System;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-snapshotaccess-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nServer server;\nawait using (OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token))\n{\n server = await Server.ConnectAsync(options, token);\n if (server.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"Connecting must not capture the hierarchy.\");\n }\n Console.WriteLine(\"Sessions have not been captured.\");\n\n Server captured = await server.CaptureSnapshotAsync(SnapshotDepth.Panes, token);\n if (!captured.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"The requested sessions were not captured.\");\n }\n Session capturedSession = captured.Sessions.Single();\n if (!capturedSession.ActivePane.IsCaptured)\n {\n throw new InvalidOperationException(\"The active pane was not captured.\");\n }\n Pane pane = capturedSession.ActivePane.Value;\n if (pane.CurrentPath is null || pane.CurrentCommand is null)\n {\n throw new InvalidOperationException(\"The running pane should report its path and command.\");\n }\n Console.WriteLine(\"The captured active pane has a path and command.\");\n if (server.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"Capturing must return a new immutable handle.\");\n }\n Console.WriteLine(\"The original handle is still uncaptured.\");\n\n // Keep this private daemon alive after its only owned session is disposed.\n TmuxCommandResult result = await server.ExecuteCommandAsync(\n [\"set-option\", \"-s\", \"exit-empty\", \"off\"], token);\n if (result.ExitCode != 0)\n {\n throw new InvalidOperationException(\"Could not keep the empty server alive.\");\n }\n}\nServer empty = await server.CaptureSnapshotAsync(SnapshotDepth.Sessions, token);\nif (!empty.Sessions.IsCaptured || empty.Sessions.Count != 0)\n{\n throw new InvalidOperationException(\"An empty captured relation differs from an uncaptured relation.\");\n}\nConsole.WriteLine(\"Captured sessions can be empty.\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux/Snapshots/CapturedValue.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedValue.IsCaptured","product":"core","slug":"libtmux-capturedvalue-iscaptured"},{"id":"LibTmux.CapturedValue.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.CapturedValue","signatures":[],"type":"T","doc":{"summary":"Gets the captured child.","examples":[{"lang":"console","intro":"Capture a new immutable hierarchy, check optional pane state, and distinguish an empty captured relation from one that has not been read. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/SnapshotAccess.cs","code":"using System;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-snapshotaccess-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nServer server;\nawait using (OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token))\n{\n server = await Server.ConnectAsync(options, token);\n if (server.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"Connecting must not capture the hierarchy.\");\n }\n Console.WriteLine(\"Sessions have not been captured.\");\n\n Server captured = await server.CaptureSnapshotAsync(SnapshotDepth.Panes, token);\n if (!captured.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"The requested sessions were not captured.\");\n }\n Session capturedSession = captured.Sessions.Single();\n if (!capturedSession.ActivePane.IsCaptured)\n {\n throw new InvalidOperationException(\"The active pane was not captured.\");\n }\n Pane pane = capturedSession.ActivePane.Value;\n if (pane.CurrentPath is null || pane.CurrentCommand is null)\n {\n throw new InvalidOperationException(\"The running pane should report its path and command.\");\n }\n Console.WriteLine(\"The captured active pane has a path and command.\");\n if (server.Sessions.IsCaptured)\n {\n throw new InvalidOperationException(\"Capturing must return a new immutable handle.\");\n }\n Console.WriteLine(\"The original handle is still uncaptured.\");\n\n // Keep this private daemon alive after its only owned session is disposed.\n TmuxCommandResult result = await server.ExecuteCommandAsync(\n [\"set-option\", \"-s\", \"exit-empty\", \"off\"], token);\n if (result.ExitCode != 0)\n {\n throw new InvalidOperationException(\"Could not keep the empty server alive.\");\n }\n}\nServer empty = await server.CaptureSnapshotAsync(SnapshotDepth.Sessions, token);\nif (!empty.Sessions.IsCaptured || empty.Sessions.Count != 0)\n{\n throw new InvalidOperationException(\"An empty captured relation differs from an uncaptured relation.\");\n}\nConsole.WriteLine(\"Captured sessions can be empty.\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux/Snapshots/CapturedValue.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedValue.Value","product":"core","slug":"libtmux-capturedvalue-value"},{"id":"LibTmux.CapturedValue.OrNull","name":"OrNull","kind":"method","modifiers":[],"parent":"LibTmux.CapturedValue","signatures":[{"params":[],"returns":"T?","returnsDoc":"The child, or null."}],"doc":{"summary":"Gets the captured child, or null when the snapshot never read it."},"source":{"file":"src/LibTmux/Snapshots/CapturedValue.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedValue.OrNull","product":"core","slug":"libtmux-capturedvalue-ornull"},{"id":"LibTmux.CapturedValue.TryGetValue","name":"TryGetValue","kind":"method","modifiers":[],"parent":"LibTmux.CapturedValue","signatures":[{"params":[{"name":"value","type":"T?","doc":"The child when the snapshot read it."}],"returns":"bool","returnsDoc":" when the snapshot read it."}],"doc":{"summary":"Tries to read the captured child."},"source":{"file":"src/LibTmux/Snapshots/CapturedValue.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.CapturedValue.TryGetValue","product":"core","slug":"libtmux-capturedvalue-trygetvalue"},{"id":"LibTmux.ServerMirrorView","name":"ServerMirrorView","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record ServerMirrorView(long Epoch, Server Server, IReadOnlyList Clients);","params":[{"name":"Epoch","type":"long","doc":"How many views the mirror published before this one."},{"name":"Server","type":"Server","doc":"The server as the rebuild captured it, down to its panes."},{"name":"Clients","type":"IReadOnlyList","doc":"The clients attached when it was captured."}]}],"doc":{"summary":"One state of a mirrored server."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirrorView","product":"core","slug":"libtmux-servermirrorview"},{"id":"LibTmux.ServerMirrorView.Epoch","name":"Epoch","kind":"property","parent":"LibTmux.ServerMirrorView","type":"long","modifiers":[],"signatures":[],"doc":{"summary":"How many views the mirror published before this one."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirrorView.Epoch","product":"core","slug":"libtmux-servermirrorview-epoch"},{"id":"LibTmux.ServerMirrorView.Server","name":"Server","kind":"property","parent":"LibTmux.ServerMirrorView","type":"Server","modifiers":[],"signatures":[],"doc":{"summary":"The server as the rebuild captured it, down to its panes."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirrorView.Server","product":"core","slug":"libtmux-servermirrorview-server"},{"id":"LibTmux.ServerMirrorView.Clients","name":"Clients","kind":"property","parent":"LibTmux.ServerMirrorView","type":"IReadOnlyList","modifiers":[],"signatures":[],"doc":{"summary":"The clients attached when it was captured."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirrorView.Clients","product":"core","slug":"libtmux-servermirrorview-clients"},{"id":"LibTmux.ServerMirror","name":"ServerMirror","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A live copy of one tmux server's sessions, windows, panes and clients, rebuilt whenever tmux announces a change.","body":"A control client attached to an anchor session hears what tmux announces. Any\nannouncement, or the loss of one, starts a fresh capture, never a patch of the\nlast one, since an announcement says that something changed, not everything\nthat did. Announcements that arrive during a capture collapse into one more,\nand a capture that finds nothing different publishes nothing; activity\ntimes, cursor positions and history sizes, which change with every\nkeystroke, do not count as different. Each published view carries an epoch\none above the last, counted by this mirror.\n\ntmux announces only some changes to a client: not a pane's running command or\nworking directory, and not a layout change in a session the client is not\nattached to. Give a refresh interval to see those within that long.\n\nWhen the control client ends, the mirror finds the anchor session again by its\nID and attaches through it; if the session has gone, the mirror ends with\n, and if the server has, with the\nfailure that said so. The client asks tmux for notifications only, not pane\noutput, and does not affect window sizes."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirror","product":"core","slug":"libtmux-servermirror"},{"id":"LibTmux.ServerMirror.Current","name":"Current","kind":"property","modifiers":[],"parent":"LibTmux.ServerMirror","signatures":[],"type":"ServerMirrorView","doc":{"summary":"Gets the latest published view."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":104,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirror.Current","product":"core","slug":"libtmux-servermirror-current"},{"id":"LibTmux.ServerMirror.IsEnded","name":"IsEnded","kind":"property","modifiers":[],"parent":"LibTmux.ServerMirror","signatures":[],"type":"bool","doc":{"summary":"Gets whether the mirror has stopped publishing, because it was disposed or its anchor has gone."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":116,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirror.IsEnded","product":"core","slug":"libtmux-servermirror-isended"},{"id":"LibTmux.ServerMirror.Failure","name":"Failure","kind":"property","modifiers":[],"parent":"LibTmux.ServerMirror","signatures":[],"type":"Exception?","doc":{"summary":"Gets why the mirror ended, when something other than disposal ended it."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":128,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirror.Failure","product":"core","slug":"libtmux-servermirror-failure"},{"id":"LibTmux.ServerMirror.OpenAsync","name":"OpenAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.ServerMirror","signatures":[{"params":[{"name":"anchor","type":"Session","doc":"The session the mirror's control client attaches to."},{"name":"refreshEvery","type":"TimeSpan","default":"default","doc":"How long a quiet mirror waits before capturing anyway, so a change tmux\ndoes not announce is seen within that long; zero never does."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels attaching and the first capture."}],"returns":"Task","returnsDoc":"A mirror whose first view is already captured.","raises":[{"type":"ArgumentOutOfRangeException","doc":"The refresh interval is negative."},{"type":"IncompleteSnapshotException","doc":"The session was not read through a server."}]}],"doc":{"summary":"Mirrors the server an anchor session belongs to."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":149,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirror.OpenAsync","product":"core","slug":"libtmux-servermirror-openasync"},{"id":"LibTmux.ServerMirror.WaitForNewerAsync","name":"WaitForNewerAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.ServerMirror","signatures":[{"params":[{"name":"epoch","type":"long","doc":"The epoch of the view the caller already has."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops waiting."}],"returns":"Task","returnsDoc":"The newer view, or null once the mirror has ended without one."}],"doc":{"summary":"Waits for a view newer than an epoch."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":175,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirror.WaitForNewerAsync","product":"core","slug":"libtmux-servermirror-waitfornewerasync"},{"id":"LibTmux.ServerMirror.WaitUntilAsync","name":"WaitUntilAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.ServerMirror","signatures":[{"params":[{"name":"condition","type":"Func","doc":"Judges each view."},{"name":"timeout","type":"TimeSpan","doc":"How long to wait, or ."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops waiting."}],"returns":"Task","returnsDoc":"The first view the condition accepts.","raises":[{"type":"TmuxWaitTimeoutException","doc":"No view satisfied the condition in time."},{"type":"InvalidOperationException","doc":"The mirror ended first; its failure, if any, is the inner exception."}]}],"doc":{"summary":"Waits until a view satisfies a condition, testing the current view first."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":206,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirror.WaitUntilAsync","product":"core","slug":"libtmux-servermirror-waituntilasync"},{"id":"LibTmux.ServerMirror.WatchAsync","name":"WatchAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.ServerMirror","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops the stream."}],"returns":"IAsyncEnumerable","returnsDoc":"Views in epoch order, ending when the mirror ends; a failure that ended it is thrown."}],"doc":{"summary":"Streams the current view and then each newer one, skipping any published while the reader was busy."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":239,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirror.WatchAsync","product":"core","slug":"libtmux-servermirror-watchasync"},{"id":"LibTmux.ServerMirror.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.ServerMirror","signatures":[{"params":[],"returns":"ValueTask","returnsDoc":"A task that completes when the mirror has stopped."}],"doc":{"summary":"Stops listening and detaches the control client; the last view stays readable."},"source":{"file":"src/LibTmux/Snapshots/ServerMirror.cs","line":257,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.ServerMirror.DisposeAsync","product":"core","slug":"libtmux-servermirror-disposeasync"},{"id":"LibTmux.SessionWindowEdge","name":"SessionWindowEdge","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Places one window at one index inside one session.","body":"A window can occupy several indexes in the same session or be linked into\nseveral sessions. Each indexed placement has its own edge. The ordinal\nstays null until a snapshot orders a session's edges."},"source":{"file":"src/LibTmux/Snapshots/SessionWindowEdge.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionWindowEdge","product":"core","slug":"libtmux-sessionwindowedge"},{"id":"LibTmux.SessionWindowEdge.SessionId","name":"SessionId","kind":"property","modifiers":[],"parent":"LibTmux.SessionWindowEdge","signatures":[],"type":"SessionId","doc":{"summary":"Gets the session the window is linked into."},"source":{"file":"src/LibTmux/Snapshots/SessionWindowEdge.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionWindowEdge.SessionId","product":"core","slug":"libtmux-sessionwindowedge-sessionid"},{"id":"LibTmux.SessionWindowEdge.WindowId","name":"WindowId","kind":"property","modifiers":[],"parent":"LibTmux.SessionWindowEdge","signatures":[],"type":"WindowId","doc":{"summary":"Gets the linked window."},"source":{"file":"src/LibTmux/Snapshots/SessionWindowEdge.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionWindowEdge.WindowId","product":"core","slug":"libtmux-sessionwindowedge-windowid"},{"id":"LibTmux.SessionWindowEdge.WindowIndex","name":"WindowIndex","kind":"property","modifiers":[],"parent":"LibTmux.SessionWindowEdge","signatures":[],"type":"int","doc":{"summary":"Gets the tmux window index inside the session."},"source":{"file":"src/LibTmux/Snapshots/SessionWindowEdge.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionWindowEdge.WindowIndex","product":"core","slug":"libtmux-sessionwindowedge-windowindex"},{"id":"LibTmux.SessionWindowEdge.Ordinal","name":"Ordinal","kind":"property","modifiers":[],"parent":"LibTmux.SessionWindowEdge","signatures":[],"type":"int?","doc":{"summary":"Gets the edge's position in the session's window order."},"source":{"file":"src/LibTmux/Snapshots/SessionWindowEdge.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionWindowEdge.Ordinal","product":"core","slug":"libtmux-sessionwindowedge-ordinal"},{"id":"LibTmux.SessionWindowEdge.Key","name":"Key","kind":"property","modifiers":[],"parent":"LibTmux.SessionWindowEdge","signatures":[],"type":"WindowEntityKey","doc":{"summary":"Gets the session, window and index this edge joins."},"source":{"file":"src/LibTmux/Snapshots/SessionWindowEdge.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SessionWindowEdge.Key","product":"core","slug":"libtmux-sessionwindowedge-key"},{"id":"LibTmux.SnapshotDepth","name":"SnapshotDepth","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names how far down the tmux hierarchy a snapshot captured.","body":"Depth is recorded rather than inferred so a caller can tell an empty level\napart from a level that was never read."},"source":{"file":"src/LibTmux/Snapshots/SnapshotDepth.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotDepth","product":"core","slug":"libtmux-snapshotdepth"},{"id":"LibTmux.SnapshotDepth.Server","name":"Server","kind":"constant","modifiers":[],"parent":"LibTmux.SnapshotDepth","signatures":[],"doc":{"summary":"Only the server itself was captured."},"source":{"file":"src/LibTmux/Snapshots/SnapshotDepth.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotDepth.Server","product":"core","slug":"libtmux-snapshotdepth-server"},{"id":"LibTmux.SnapshotDepth.Sessions","name":"Sessions","kind":"constant","modifiers":[],"parent":"LibTmux.SnapshotDepth","signatures":[],"doc":{"summary":"Sessions were captured, but not their windows."},"source":{"file":"src/LibTmux/Snapshots/SnapshotDepth.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotDepth.Sessions","product":"core","slug":"libtmux-snapshotdepth-sessions"},{"id":"LibTmux.SnapshotDepth.Windows","name":"Windows","kind":"constant","modifiers":[],"parent":"LibTmux.SnapshotDepth","signatures":[],"doc":{"summary":"Sessions and their windows were captured."},"source":{"file":"src/LibTmux/Snapshots/SnapshotDepth.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotDepth.Windows","product":"core","slug":"libtmux-snapshotdepth-windows"},{"id":"LibTmux.SnapshotDepth.Panes","name":"Panes","kind":"constant","modifiers":[],"parent":"LibTmux.SnapshotDepth","signatures":[],"doc":{"summary":"Sessions, windows, and their panes were captured."},"source":{"file":"src/LibTmux/Snapshots/SnapshotDepth.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotDepth.Panes","product":"core","slug":"libtmux-snapshotdepth-panes"},{"id":"LibTmux.SnapshotMetadata","name":"SnapshotMetadata","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes the interval and scope of one successful hierarchy acquisition.","body":"Separate tmux reads do not form a transaction. The recorded interval includes\ndiscovery, initialization, reads, validation, and graph assembly."},"source":{"file":"src/LibTmux/Snapshots/SnapshotMetadata.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotMetadata","product":"core","slug":"libtmux-snapshotmetadata"},{"id":"LibTmux.SnapshotMetadata.Depth","name":"Depth","kind":"property","modifiers":[],"parent":"LibTmux.SnapshotMetadata","signatures":[],"type":"SnapshotDepth","doc":{"summary":"Gets the requested depth that was successfully acquired."},"source":{"file":"src/LibTmux/Snapshots/SnapshotMetadata.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotMetadata.Depth","product":"core","slug":"libtmux-snapshotmetadata-depth"},{"id":"LibTmux.SnapshotMetadata.Generation","name":"Generation","kind":"property","modifiers":[],"parent":"LibTmux.SnapshotMetadata","signatures":[],"type":"ServerGeneration","doc":{"summary":"Gets the daemon generation that answered the acquisition."},"source":{"file":"src/LibTmux/Snapshots/SnapshotMetadata.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotMetadata.Generation","product":"core","slug":"libtmux-snapshotmetadata-generation"},{"id":"LibTmux.SnapshotMetadata.StartedAtUtc","name":"StartedAtUtc","kind":"property","modifiers":[],"parent":"LibTmux.SnapshotMetadata","signatures":[],"type":"DateTimeOffset","doc":{"summary":"Gets the UTC clock reading before acquisition began."},"source":{"file":"src/LibTmux/Snapshots/SnapshotMetadata.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotMetadata.StartedAtUtc","product":"core","slug":"libtmux-snapshotmetadata-startedatutc"},{"id":"LibTmux.SnapshotMetadata.CompletedAtUtc","name":"CompletedAtUtc","kind":"property","modifiers":[],"parent":"LibTmux.SnapshotMetadata","signatures":[],"type":"DateTimeOffset","doc":{"summary":"Gets the UTC clock reading after graph assembly completed.","body":"Clock adjustment can place this before .\nUse for the duration."},"source":{"file":"src/LibTmux/Snapshots/SnapshotMetadata.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotMetadata.CompletedAtUtc","product":"core","slug":"libtmux-snapshotmetadata-completedatutc"},{"id":"LibTmux.SnapshotMetadata.Elapsed","name":"Elapsed","kind":"property","modifiers":[],"parent":"LibTmux.SnapshotMetadata","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the acquisition duration measured with a monotonic clock."},"source":{"file":"src/LibTmux/Snapshots/SnapshotMetadata.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.SnapshotMetadata.Elapsed","product":"core","slug":"libtmux-snapshotmetadata-elapsed"},{"id":"LibTmux.WindowEntityKey","name":"WindowEntityKey","kind":"struct","modifiers":["readonly"],"signatures":[{"raw":"public readonly record struct WindowEntityKey(SessionId SessionId, WindowId WindowId, int WindowIndex)","params":[{"name":"SessionId","type":"SessionId","doc":"The session the window is linked into."},{"name":"WindowId","type":"WindowId","doc":"The linked window."},{"name":"WindowIndex","type":"int","doc":"The index of this placement in the session."}]}],"doc":{"summary":"Identifies one window linked into one session.","body":"tmux can link a window at several indexes in the same session. This key\nnames one placement within a captured server generation; window equality\ncontinues to compare the generation and window identifier."},"source":{"file":"src/LibTmux/Snapshots/WindowEntityKey.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowEntityKey","product":"core","slug":"libtmux-windowentitykey"},{"id":"LibTmux.WindowEntityKey.ToString","name":"ToString","kind":"method","modifiers":[],"parent":"LibTmux.WindowEntityKey","signatures":[{"params":[],"returns":"string"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Snapshots/WindowEntityKey.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowEntityKey.ToString","product":"core","slug":"libtmux-windowentitykey-tostring"},{"id":"LibTmux.WindowEntityKey.SessionId","name":"SessionId","kind":"property","parent":"LibTmux.WindowEntityKey","type":"SessionId","modifiers":[],"signatures":[],"doc":{"summary":"The session the window is linked into."},"source":{"file":"src/LibTmux/Snapshots/WindowEntityKey.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowEntityKey.SessionId","product":"core","slug":"libtmux-windowentitykey-sessionid"},{"id":"LibTmux.WindowEntityKey.WindowId","name":"WindowId","kind":"property","parent":"LibTmux.WindowEntityKey","type":"WindowId","modifiers":[],"signatures":[],"doc":{"summary":"The linked window."},"source":{"file":"src/LibTmux/Snapshots/WindowEntityKey.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowEntityKey.WindowId","product":"core","slug":"libtmux-windowentitykey-windowid"},{"id":"LibTmux.WindowEntityKey.WindowIndex","name":"WindowIndex","kind":"property","parent":"LibTmux.WindowEntityKey","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"The index of this placement in the session."},"source":{"file":"src/LibTmux/Snapshots/WindowEntityKey.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowEntityKey.WindowIndex","product":"core","slug":"libtmux-windowentitykey-windowindex"},{"id":"LibTmux.PaneOutputPosition","name":"PaneOutputPosition","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Where a read of a pane's output finished, so the next read returns only what is new.","body":"Opaque, and good only for the pane that issued it while it runs the same\nprogram. It survives scrolling, history trimming and resizing: a later read\nfinds its place again or says it could not."},"source":{"file":"src/LibTmux/Streaming/PaneOutputSince.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneOutputPosition","product":"core","slug":"libtmux-paneoutputposition"},{"id":"LibTmux.PaneOutputSince","name":"PaneOutputSince","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record PaneOutputSince(IReadOnlyList Lines, PaneOutputPosition Position, bool LinesMissed);","params":[{"name":"Lines","type":"IReadOnlyList","doc":"The new lines, oldest first; none on a read that starts without a position."},{"name":"Position","type":"PaneOutputPosition","doc":"Where this read finished; pass it to the next read."},{"name":"LinesMissed","type":"bool","doc":"Whether output may be missing: scrollback dropped lines before this read\nsaw them, or the position could not be found again. \nis then what the pane shows rather than exactly what is new."}]}],"doc":{"summary":"What a pane printed since a position, and where this read finished."},"source":{"file":"src/LibTmux/Streaming/PaneOutputSince.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneOutputSince","product":"core","slug":"libtmux-paneoutputsince"},{"id":"LibTmux.PaneOutputSince.Lines","name":"Lines","kind":"property","parent":"LibTmux.PaneOutputSince","type":"IReadOnlyList","modifiers":[],"signatures":[],"doc":{"summary":"The new lines, oldest first; none on a read that starts without a position."},"source":{"file":"src/LibTmux/Streaming/PaneOutputSince.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneOutputSince.Lines","product":"core","slug":"libtmux-paneoutputsince-lines"},{"id":"LibTmux.PaneOutputSince.Position","name":"Position","kind":"property","parent":"LibTmux.PaneOutputSince","type":"PaneOutputPosition","modifiers":[],"signatures":[],"doc":{"summary":"Where this read finished; pass it to the next read."},"source":{"file":"src/LibTmux/Streaming/PaneOutputSince.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneOutputSince.Position","product":"core","slug":"libtmux-paneoutputsince-position"},{"id":"LibTmux.PaneOutputSince.LinesMissed","name":"LinesMissed","kind":"property","parent":"LibTmux.PaneOutputSince","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether output may be missing: scrollback dropped lines before this read\nsaw them, or the position could not be found again. \nis then what the pane shows rather than exactly what is new."},"source":{"file":"src/LibTmux/Streaming/PaneOutputSince.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneOutputSince.LinesMissed","product":"core","slug":"libtmux-paneoutputsince-linesmissed"},{"id":"LibTmux.PaneRunResult","name":"PaneRunResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record PaneRunResult(\n int? ExitStatus,\n bool TimedOut,\n IReadOnlyList Output,\n TimeSpan Elapsed,\n bool Started,\n bool LinesMissed)","params":[{"name":"ExitStatus","type":"int?","doc":"The command's exit status, or null when it had not finished."},{"name":"TimedOut","type":"bool","doc":"Whether the time allowed ran out first; the command may still be running."},{"name":"Output","type":"IReadOnlyList","doc":"Bounded rendered lines from the command, not byte-exact stdout or stderr."},{"name":"Elapsed","type":"TimeSpan","doc":"How long the command ran, or how long it was waited for."},{"name":"Started","type":"bool","doc":"Whether the wrapper's begin marker was observed; false does not prove nonexecution."},{"name":"LinesMissed","type":"bool","doc":"Whether scrollback dropped output before it was read; \nthen holds only what the pane still showed."}]}],"doc":{"summary":"Describes how a command run in a pane ended."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult","product":"core","slug":"libtmux-panerunresult"},{"id":"LibTmux.PaneRunResult.PaneId","name":"PaneId","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunResult","signatures":[],"type":"PaneId","doc":{"summary":"Gets the pane that received the command."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.PaneId","product":"core","slug":"libtmux-panerunresult-paneid"},{"id":"LibTmux.PaneRunResult.EffectiveTimeout","name":"EffectiveTimeout","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunResult","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the completion-wait budget applied after dispatch."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.EffectiveTimeout","product":"core","slug":"libtmux-panerunresult-effectivetimeout"},{"id":"LibTmux.PaneRunResult.AnchorLost","name":"AnchorLost","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether the output cursor's previous grid anchor was lost."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.AnchorLost","product":"core","slug":"libtmux-panerunresult-anchorlost"},{"id":"LibTmux.PaneRunResult.OmittedOutputLines","name":"OmittedOutputLines","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunResult","signatures":[],"type":"int","doc":{"summary":"Gets the number of whole rendered lines omitted by output limits."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.OmittedOutputLines","product":"core","slug":"libtmux-panerunresult-omittedoutputlines"},{"id":"LibTmux.PaneRunResult.OmittedOutputBytes","name":"OmittedOutputBytes","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunResult","signatures":[],"type":"int","doc":{"summary":"Gets the number of UTF-8 output bytes omitted by output limits."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.OmittedOutputBytes","product":"core","slug":"libtmux-panerunresult-omittedoutputbytes"},{"id":"LibTmux.PaneRunResult.Succeeded","name":"Succeeded","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether the command finished with exit status 0."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.Succeeded","product":"core","slug":"libtmux-panerunresult-succeeded"},{"id":"LibTmux.PaneRunResult.PaneExited","name":"PaneExited","kind":"property","modifiers":[],"parent":"LibTmux.PaneRunResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane's program exited before the command reported its status.","body":"The run ends within five seconds of the exit, sooner early in the run,\nrather than at its timeout.\n is then null, and holds\nwhat the pane still showed, including any line tmux writes for a dead\npane, or nothing when tmux closed the pane."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.PaneExited","product":"core","slug":"libtmux-panerunresult-paneexited"},{"id":"LibTmux.PaneRunResult.ExitStatus","name":"ExitStatus","kind":"property","parent":"LibTmux.PaneRunResult","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"The command's exit status, or null when it had not finished."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.ExitStatus","product":"core","slug":"libtmux-panerunresult-exitstatus"},{"id":"LibTmux.PaneRunResult.TimedOut","name":"TimedOut","kind":"property","parent":"LibTmux.PaneRunResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the time allowed ran out first; the command may still be running."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.TimedOut","product":"core","slug":"libtmux-panerunresult-timedout"},{"id":"LibTmux.PaneRunResult.Output","name":"Output","kind":"property","parent":"LibTmux.PaneRunResult","type":"IReadOnlyList","modifiers":[],"signatures":[],"doc":{"summary":"Bounded rendered lines from the command, not byte-exact stdout or stderr."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.Output","product":"core","slug":"libtmux-panerunresult-output"},{"id":"LibTmux.PaneRunResult.Elapsed","name":"Elapsed","kind":"property","parent":"LibTmux.PaneRunResult","type":"TimeSpan","modifiers":[],"signatures":[],"doc":{"summary":"How long the command ran, or how long it was waited for."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.Elapsed","product":"core","slug":"libtmux-panerunresult-elapsed"},{"id":"LibTmux.PaneRunResult.Started","name":"Started","kind":"property","parent":"LibTmux.PaneRunResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the wrapper's begin marker was observed; false does not prove nonexecution."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.Started","product":"core","slug":"libtmux-panerunresult-started"},{"id":"LibTmux.PaneRunResult.LinesMissed","name":"LinesMissed","kind":"property","parent":"LibTmux.PaneRunResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether scrollback dropped output before it was read; \nthen holds only what the pane still showed."},"source":{"file":"src/LibTmux/Streaming/PaneRunResult.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneRunResult.LinesMissed","product":"core","slug":"libtmux-panerunresult-linesmissed"},{"id":"LibTmux.PaneWaitOutcome","name":"PaneWaitOutcome","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names how a wait on a pane's rendered output ended."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitOutcome","product":"core","slug":"libtmux-panewaitoutcome"},{"id":"LibTmux.PaneWaitOutcome.Matched","name":"Matched","kind":"constant","modifiers":[],"parent":"LibTmux.PaneWaitOutcome","signatures":[],"doc":{"summary":"New output matched a pattern."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitOutcome.Matched","product":"core","slug":"libtmux-panewaitoutcome-matched"},{"id":"LibTmux.PaneWaitOutcome.PresentAtEntry","name":"PresentAtEntry","kind":"constant","modifiers":[],"parent":"LibTmux.PaneWaitOutcome","signatures":[],"doc":{"summary":"A wanted pattern already matched when the wait began."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitOutcome.PresentAtEntry","product":"core","slug":"libtmux-panewaitoutcome-presentatentry"},{"id":"LibTmux.PaneWaitOutcome.AnyOutput","name":"AnyOutput","kind":"constant","modifiers":[],"parent":"LibTmux.PaneWaitOutcome","signatures":[],"doc":{"summary":"The pane printed something, and no wanted pattern was given."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitOutcome.AnyOutput","product":"core","slug":"libtmux-panewaitoutcome-anyoutput"},{"id":"LibTmux.PaneWaitOutcome.Stopped","name":"Stopped","kind":"constant","modifiers":[],"parent":"LibTmux.PaneWaitOutcome","signatures":[],"doc":{"summary":"A stop pattern matched, including at entry."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitOutcome.Stopped","product":"core","slug":"libtmux-panewaitoutcome-stopped"},{"id":"LibTmux.PaneWaitOutcome.TimedOut","name":"TimedOut","kind":"constant","modifiers":[],"parent":"LibTmux.PaneWaitOutcome","signatures":[],"doc":{"summary":"The complete time budget ran out without a match."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitOutcome.TimedOut","product":"core","slug":"libtmux-panewaitoutcome-timedout"},{"id":"LibTmux.PaneWaitOutcome.PaneExited","name":"PaneExited","kind":"constant","modifiers":[],"parent":"LibTmux.PaneWaitOutcome","signatures":[],"doc":{"summary":"The pane's original program exited or its pane closed."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitOutcome.PaneExited","product":"core","slug":"libtmux-panewaitoutcome-paneexited"},{"id":"LibTmux.PaneWaitOutcome.AlternateScreen","name":"AlternateScreen","kind":"constant","modifiers":[],"parent":"LibTmux.PaneWaitOutcome","signatures":[],"doc":{"summary":"An observation source could not continue across an alternate screen."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitOutcome.AlternateScreen","product":"core","slug":"libtmux-panewaitoutcome-alternatescreen"},{"id":"LibTmux.PaneWaitResult","name":"PaneWaitResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record PaneWaitResult(PaneWaitOutcome Outcome, string? Pattern, TimeSpan Elapsed)","params":[{"name":"Outcome","type":"PaneWaitOutcome","doc":"How the wait ended."},{"name":"Pattern","type":"string?","doc":"The original pattern spelling that matched, when one did."},{"name":"Elapsed","type":"TimeSpan","doc":"How long the wait ran."}]}],"doc":{"summary":"Describes how a wait on a pane's rendered output ended."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult","product":"core","slug":"libtmux-panewaitresult"},{"id":"LibTmux.PaneWaitResult.Found","name":"Found","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether the awaited text appeared, before or during the wait."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":63,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.Found","product":"core","slug":"libtmux-panewaitresult-found"},{"id":"LibTmux.PaneWaitResult.PaneId","name":"PaneId","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"PaneId","doc":{"summary":"Gets the watched pane's typed ID."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.PaneId","product":"core","slug":"libtmux-panewaitresult-paneid"},{"id":"LibTmux.PaneWaitResult.Tail","name":"Tail","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets an owned, bounded tail of rendered pane lines."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":69,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.Tail","product":"core","slug":"libtmux-panewaitresult-tail"},{"id":"LibTmux.PaneWaitResult.EffectiveTimeout","name":"EffectiveTimeout","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the requested time budget applied to this wait."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":72,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.EffectiveTimeout","product":"core","slug":"libtmux-panewaitresult-effectivetimeout"},{"id":"LibTmux.PaneWaitResult.EventsDropped","name":"EventsDropped","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"long","doc":{"summary":"Gets session events dropped during this wait."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.EventsDropped","product":"core","slug":"libtmux-panewaitresult-eventsdropped"},{"id":"LibTmux.PaneWaitResult.PollingFallback","name":"PollingFallback","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether this wait used explicitly permitted polling."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":78,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.PollingFallback","product":"core","slug":"libtmux-panewaitresult-pollingfallback"},{"id":"LibTmux.PaneWaitResult.PollingInterval","name":"PollingInterval","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"TimeSpan?","doc":{"summary":"Gets the timed-read interval when fallback was used."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":81,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.PollingInterval","product":"core","slug":"libtmux-panewaitresult-pollinginterval"},{"id":"LibTmux.PaneWaitResult.LinesMissed","name":"LinesMissed","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether scrollback or event loss may have hidden lines."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":84,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.LinesMissed","product":"core","slug":"libtmux-panewaitresult-linesmissed"},{"id":"LibTmux.PaneWaitResult.AnchorLost","name":"AnchorLost","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether the previous grid anchor was lost."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.AnchorLost","product":"core","slug":"libtmux-panewaitresult-anchorlost"},{"id":"LibTmux.PaneWaitResult.OmittedTailLines","name":"OmittedTailLines","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"int","doc":{"summary":"Gets how many complete tail lines were omitted by limits."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":90,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.OmittedTailLines","product":"core","slug":"libtmux-panewaitresult-omittedtaillines"},{"id":"LibTmux.PaneWaitResult.OmittedTailBytes","name":"OmittedTailBytes","kind":"property","modifiers":[],"parent":"LibTmux.PaneWaitResult","signatures":[],"type":"int","doc":{"summary":"Gets how many UTF-8 tail bytes were omitted by limits."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":93,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.OmittedTailBytes","product":"core","slug":"libtmux-panewaitresult-omittedtailbytes"},{"id":"LibTmux.PaneWaitResult.Outcome","name":"Outcome","kind":"property","parent":"LibTmux.PaneWaitResult","type":"PaneWaitOutcome","modifiers":[],"signatures":[],"doc":{"summary":"How the wait ended."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.Outcome","product":"core","slug":"libtmux-panewaitresult-outcome"},{"id":"LibTmux.PaneWaitResult.Pattern","name":"Pattern","kind":"property","parent":"LibTmux.PaneWaitResult","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The original pattern spelling that matched, when one did."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.Pattern","product":"core","slug":"libtmux-panewaitresult-pattern"},{"id":"LibTmux.PaneWaitResult.Elapsed","name":"Elapsed","kind":"property","parent":"LibTmux.PaneWaitResult","type":"TimeSpan","modifiers":[],"signatures":[],"doc":{"summary":"How long the wait ran."},"source":{"file":"src/LibTmux/Streaming/PaneWaitResult.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneWaitResult.Elapsed","product":"core","slug":"libtmux-panewaitresult-elapsed"},{"id":"LibTmux.TmuxColorMode","name":"TmuxColorMode","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Defines the tmux client color mode."},"source":{"file":"src/LibTmux/TmuxColorMode.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxColorMode","product":"core","slug":"libtmux-tmuxcolormode"},{"id":"LibTmux.TmuxColorMode.Default","name":"Default","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxColorMode","signatures":[],"doc":{"summary":"Uses tmux's default color behavior."},"source":{"file":"src/LibTmux/TmuxColorMode.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxColorMode.Default","product":"core","slug":"libtmux-tmuxcolormode-default"},{"id":"LibTmux.TmuxColorMode.Colors256","name":"Colors256","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxColorMode","signatures":[],"doc":{"summary":"Requests 256-color mode."},"source":{"file":"src/LibTmux/TmuxColorMode.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxColorMode.Colors256","product":"core","slug":"libtmux-tmuxcolormode-colors256"},{"id":"LibTmux.TmuxColorMode.TrueColor","name":"TrueColor","kind":"constant","modifiers":[],"parent":"LibTmux.TmuxColorMode","signatures":[],"doc":{"summary":"Requests RGB true-color mode."},"source":{"file":"src/LibTmux/TmuxColorMode.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxColorMode.TrueColor","product":"core","slug":"libtmux-tmuxcolormode-truecolor"},{"id":"LibTmux.TmuxCommandResult","name":"TmuxCommandResult","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Contains the inspectable result of one raw tmux command."},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult","product":"core","slug":"libtmux-tmuxcommandresult"},{"id":"LibTmux.TmuxCommandResult.TmuxCommandResult","name":"TmuxCommandResult","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommandResult","signatures":[{"params":[{"name":"arguments","type":"IReadOnlyList"},{"name":"exitCode","type":"int"},{"name":"standardOutput","type":"ReadOnlyMemory"},{"name":"standardError","type":"ReadOnlyMemory"},{"name":"standardOutputLines","type":"IReadOnlyList"},{"name":"standardErrorLines","type":"IReadOnlyList"}]}],"doc":{"summary":"Initializes a command result."},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult.TmuxCommandResult","product":"core","slug":"libtmux-tmuxcommandresult-tmuxcommandresult"},{"id":"LibTmux.TmuxCommandResult.Arguments","name":"Arguments","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommandResult","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the logical tmux arguments."},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult.Arguments","product":"core","slug":"libtmux-tmuxcommandresult-arguments"},{"id":"LibTmux.TmuxCommandResult.ExitCode","name":"ExitCode","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommandResult","signatures":[],"type":"int","doc":{"summary":"Gets the client exit code."},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult.ExitCode","product":"core","slug":"libtmux-tmuxcommandresult-exitcode"},{"id":"LibTmux.TmuxCommandResult.StandardOutput","name":"StandardOutput","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommandResult","signatures":[],"type":"ReadOnlyMemory","doc":{"summary":"Gets the exact standard-output bytes."},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult.StandardOutput","product":"core","slug":"libtmux-tmuxcommandresult-standardoutput"},{"id":"LibTmux.TmuxCommandResult.StandardError","name":"StandardError","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommandResult","signatures":[],"type":"ReadOnlyMemory","doc":{"summary":"Gets the exact standard-error bytes."},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult.StandardError","product":"core","slug":"libtmux-tmuxcommandresult-standarderror"},{"id":"LibTmux.TmuxCommandResult.StandardOutputLines","name":"StandardOutputLines","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommandResult","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the projected standard-output lines."},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult.StandardOutputLines","product":"core","slug":"libtmux-tmuxcommandresult-standardoutputlines"},{"id":"LibTmux.TmuxCommandResult.StandardErrorLines","name":"StandardErrorLines","kind":"property","modifiers":[],"parent":"LibTmux.TmuxCommandResult","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the projected standard-error lines."},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":51,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult.StandardErrorLines","product":"core","slug":"libtmux-tmuxcommandresult-standarderrorlines"},{"id":"LibTmux.TmuxCommandResult.Equals","name":"Equals","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommandResult","signatures":[{"params":[{"name":"other","type":"TmuxCommandResult?"}],"returns":"bool"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult.Equals","product":"core","slug":"libtmux-tmuxcommandresult-equals"},{"id":"LibTmux.TmuxCommandResult.GetHashCode","name":"GetHashCode","kind":"method","modifiers":[],"parent":"LibTmux.TmuxCommandResult","signatures":[{"params":[],"returns":"int"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Transport/TmuxCommandResult.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxCommandResult.GetHashCode","product":"core","slug":"libtmux-tmuxcommandresult-gethashcode"},{"id":"LibTmux.TmuxInvocation","name":"TmuxInvocation","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One tmux invocation, as a sees it."},"source":{"file":"src/LibTmux/Transport/TmuxInterceptor.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxInvocation","product":"core","slug":"libtmux-tmuxinvocation"},{"id":"LibTmux.TmuxInvocation.TmuxInvocation","name":"TmuxInvocation","kind":"method","modifiers":[],"parent":"LibTmux.TmuxInvocation","signatures":[{"params":[{"name":"arguments","type":"IReadOnlyList","doc":"The arguments tmux receives."}],"raises":[{"type":"ArgumentNullException","doc":" is null."}]}],"doc":{"summary":"Initializes an invocation."},"source":{"file":"src/LibTmux/Transport/TmuxInterceptor.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxInvocation.TmuxInvocation","product":"core","slug":"libtmux-tmuxinvocation-tmuxinvocation"},{"id":"LibTmux.TmuxInvocation.Arguments","name":"Arguments","kind":"property","modifiers":[],"parent":"LibTmux.TmuxInvocation","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the arguments tmux receives.","body":"These follow the socket and configuration flags, which the connection\nadds itself, and match on a\nresult tmux produced. Grouped commands are separated by a ;\nargument."},"source":{"file":"src/LibTmux/Transport/TmuxInterceptor.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxInvocation.Arguments","product":"core","slug":"libtmux-tmuxinvocation-arguments"},{"id":"LibTmux.UnsafeTmuxFilter","name":"UnsafeTmuxFilter","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record UnsafeTmuxFilter(string Value);","params":[{"name":"Value","type":"string","doc":"The raw tmux -f filter text."}]}],"doc":{"summary":"A tmux filter expression passed through without translation.","body":"tmux evaluates the text itself, so nothing here is validated against the\nclosed field catalog. A malformed or unknown token makes tmux return no\nrows rather than report an error, which reads as an empty result."},"source":{"file":"src/LibTmux/UnsafeTmuxFilter.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsafeTmuxFilter","product":"core","slug":"libtmux-unsafetmuxfilter"},{"id":"LibTmux.UnsafeTmuxFilter.Value","name":"Value","kind":"property","parent":"LibTmux.UnsafeTmuxFilter","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The raw tmux -f filter text."},"source":{"file":"src/LibTmux/UnsafeTmuxFilter.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.UnsafeTmuxFilter.Value","product":"core","slug":"libtmux-unsafetmuxfilter-value"},{"id":"LibTmux.TmuxBuffer","name":"TmuxBuffer","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One tmux paste buffer.","body":"tmux lists a buffer's size and the start of its contents, not the whole\nthing. Reading a buffer in full is a separate command, so what is listed is\nenough to choose between buffers rather than to use one."},"source":{"file":"src/LibTmux/Utilities/TmuxBuffer.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffer","product":"core","slug":"libtmux-tmuxbuffer"},{"id":"LibTmux.TmuxBuffer.TmuxBuffer","name":"TmuxBuffer","kind":"method","modifiers":[],"parent":"LibTmux.TmuxBuffer","signatures":[{"params":[{"name":"name","type":"string","doc":"The buffer name."},{"name":"size","type":"long","doc":"How many bytes it holds."},{"name":"sample","type":"string?","doc":"The start of its contents, as tmux chose to show it."}]}],"doc":{"summary":"Initializes one buffer."},"source":{"file":"src/LibTmux/Utilities/TmuxBuffer.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffer.TmuxBuffer","product":"core","slug":"libtmux-tmuxbuffer-tmuxbuffer"},{"id":"LibTmux.TmuxBuffer.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.TmuxBuffer","signatures":[],"type":"string","doc":{"summary":"Gets the buffer name."},"source":{"file":"src/LibTmux/Utilities/TmuxBuffer.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffer.Name","product":"core","slug":"libtmux-tmuxbuffer-name"},{"id":"LibTmux.TmuxBuffer.Size","name":"Size","kind":"property","modifiers":[],"parent":"LibTmux.TmuxBuffer","signatures":[],"type":"long","doc":{"summary":"Gets how many bytes it holds."},"source":{"file":"src/LibTmux/Utilities/TmuxBuffer.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffer.Size","product":"core","slug":"libtmux-tmuxbuffer-size"},{"id":"LibTmux.TmuxBuffer.Sample","name":"Sample","kind":"property","modifiers":[],"parent":"LibTmux.TmuxBuffer","signatures":[],"type":"string?","doc":{"summary":"Gets the start of its contents, as tmux chose to show it."},"source":{"file":"src/LibTmux/Utilities/TmuxBuffer.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxBuffer.Sample","product":"core","slug":"libtmux-tmuxbuffer-sample"},{"id":"LibTmux.TmuxMenuItem","name":"TmuxMenuItem","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One line of a tmux menu.","body":"tmux takes menu items as bare triples on the command line rather than as\nflags, so the order of the three is what tells them apart."},"source":{"file":"src/LibTmux/Utilities/TmuxMenuItem.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxMenuItem","product":"core","slug":"libtmux-tmuxmenuitem"},{"id":"LibTmux.TmuxMenuItem.TmuxMenuItem","name":"TmuxMenuItem","kind":"method","modifiers":[],"parent":"LibTmux.TmuxMenuItem","signatures":[{"params":[{"name":"name","type":"string","doc":"The text shown for the item."},{"name":"key","type":"string","doc":"The key that chooses it."},{"name":"command","type":"string","doc":"The tmux command it runs."}]}],"doc":{"summary":"Initializes one menu item."},"source":{"file":"src/LibTmux/Utilities/TmuxMenuItem.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxMenuItem.TmuxMenuItem","product":"core","slug":"libtmux-tmuxmenuitem-tmuxmenuitem"},{"id":"LibTmux.TmuxMenuItem.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.TmuxMenuItem","signatures":[],"type":"string","doc":{"summary":"Gets the text shown for the item."},"source":{"file":"src/LibTmux/Utilities/TmuxMenuItem.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxMenuItem.Name","product":"core","slug":"libtmux-tmuxmenuitem-name"},{"id":"LibTmux.TmuxMenuItem.Key","name":"Key","kind":"property","modifiers":[],"parent":"LibTmux.TmuxMenuItem","signatures":[],"type":"string","doc":{"summary":"Gets the key that chooses it."},"source":{"file":"src/LibTmux/Utilities/TmuxMenuItem.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxMenuItem.Key","product":"core","slug":"libtmux-tmuxmenuitem-key"},{"id":"LibTmux.TmuxMenuItem.Command","name":"Command","kind":"property","modifiers":[],"parent":"LibTmux.TmuxMenuItem","signatures":[],"type":"string","doc":{"summary":"Gets the tmux command it runs."},"source":{"file":"src/LibTmux/Utilities/TmuxMenuItem.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxMenuItem.Command","product":"core","slug":"libtmux-tmuxmenuitem-command"},{"id":"LibTmux.TmuxVersion","name":"TmuxVersion","kind":"struct","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Represents one lossless parsed tmux version."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion","product":"core","slug":"libtmux-tmuxversion"},{"id":"LibTmux.TmuxVersion.TmuxVersion","name":"TmuxVersion","kind":"method","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"raw","type":"string"}]}],"doc":{"summary":"Initializes a tmux version."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.TmuxVersion","product":"core","slug":"libtmux-tmuxversion-tmuxversion"},{"id":"LibTmux.TmuxVersion.IsValid","name":"IsValid","kind":"property","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[],"type":"bool","doc":{"summary":"Gets whether this value contains a parsed tmux version."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.IsValid","product":"core","slug":"libtmux-tmuxversion-isvalid"},{"id":"LibTmux.TmuxVersion.Major","name":"Major","kind":"property","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[],"type":"int","doc":{"summary":"Gets the parsed major version."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":65,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.Major","product":"core","slug":"libtmux-tmuxversion-major"},{"id":"LibTmux.TmuxVersion.Minor","name":"Minor","kind":"property","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[],"type":"int","doc":{"summary":"Gets the parsed minor version."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.Minor","product":"core","slug":"libtmux-tmuxversion-minor"},{"id":"LibTmux.TmuxVersion.Raw","name":"Raw","kind":"property","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[],"type":"string","doc":{"summary":"Gets the exact normalized tmux version text."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":71,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.Raw","product":"core","slug":"libtmux-tmuxversion-raw"},{"id":"LibTmux.TmuxVersion.Suffix","name":"Suffix","kind":"property","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[],"type":"string?","doc":{"summary":"Gets the exact preserved suffix projection."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.Suffix","product":"core","slug":"libtmux-tmuxversion-suffix"},{"id":"LibTmux.TmuxVersion.Parse","name":"Parse","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"text","type":"string"}],"returns":"TmuxVersion"}],"doc":{"summary":"Parses a tmux version string."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":77,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.Parse","product":"core","slug":"libtmux-tmuxversion-parse"},{"id":"LibTmux.TmuxVersion.TryParse","name":"TryParse","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"text","type":"string?"},{"name":"result","type":"TmuxVersion"}],"returns":"bool"}],"doc":{"summary":"Tries to parse a tmux version string."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":84,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.TryParse","product":"core","slug":"libtmux-tmuxversion-tryparse"},{"id":"LibTmux.TmuxVersion.CompareTo","name":"CompareTo","kind":"method","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"other","type":"TmuxVersion"}],"returns":"int"}],"doc":{"summary":"Compares parsed tmux versions."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":97,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.CompareTo","product":"core","slug":"libtmux-tmuxversion-compareto"},{"id":"LibTmux.TmuxVersion.IsAtLeast","name":"IsAtLeast","kind":"method","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"minimum","type":"TmuxVersion"}],"returns":"bool"}],"doc":{"summary":"Reports whether this version meets a minimum."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":143,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.IsAtLeast","product":"core","slug":"libtmux-tmuxversion-isatleast"},{"id":"LibTmux.TmuxVersion.EnsureAtLeast","name":"EnsureAtLeast","kind":"method","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"minimum","type":"TmuxVersion"}],"returns":"void"}],"doc":{"summary":"Throws when this version is below a minimum."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":146,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.EnsureAtLeast","product":"core","slug":"libtmux-tmuxversion-ensureatleast"},{"id":"LibTmux.TmuxVersion.DetectStringAsync","name":"DetectStringAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Detects the selected tmux executable version string."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":158,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.DetectStringAsync","product":"core","slug":"libtmux-tmuxversion-detectstringasync"},{"id":"LibTmux.TmuxVersion.DetectAsync","name":"DetectAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Detects the selected tmux executable version."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":208,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.DetectAsync","product":"core","slug":"libtmux-tmuxversion-detectasync"},{"id":"LibTmux.TmuxVersion.IsInstalledNewerThanAsync","name":"IsInstalledNewerThanAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"version","type":"TmuxVersion"},{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Checks whether installed tmux is newer."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":215,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.IsInstalledNewerThanAsync","product":"core","slug":"libtmux-tmuxversion-isinstallednewerthanasync"},{"id":"LibTmux.TmuxVersion.IsInstalledAtLeastAsync","name":"IsInstalledAtLeastAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"version","type":"TmuxVersion"},{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Checks whether installed tmux meets a minimum."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":223,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.IsInstalledAtLeastAsync","product":"core","slug":"libtmux-tmuxversion-isinstalledatleastasync"},{"id":"LibTmux.TmuxVersion.IsInstalledOlderThanAsync","name":"IsInstalledOlderThanAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"version","type":"TmuxVersion"},{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Checks whether installed tmux is older."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":231,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.IsInstalledOlderThanAsync","product":"core","slug":"libtmux-tmuxversion-isinstalledolderthanasync"},{"id":"LibTmux.TmuxVersion.IsInstalledAtMostAsync","name":"IsInstalledAtMostAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"version","type":"TmuxVersion"},{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Checks whether installed tmux is at most a maximum."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":239,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.IsInstalledAtMostAsync","product":"core","slug":"libtmux-tmuxversion-isinstalledatmostasync"},{"id":"LibTmux.TmuxVersion.IsInstalledVersionAsync","name":"IsInstalledVersionAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"version","type":"TmuxVersion"},{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Checks exact installed version equality."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":247,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.IsInstalledVersionAsync","product":"core","slug":"libtmux-tmuxversion-isinstalledversionasync"},{"id":"LibTmux.TmuxVersion.CheckMinimumSupportedVersionAsync","name":"CheckMinimumSupportedVersionAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"throwIfUnsupported","type":"bool","default":"true"},{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Checks the package minimum and optionally throws."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":255,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.CheckMinimumSupportedVersionAsync","product":"core","slug":"libtmux-tmuxversion-checkminimumsupportedversionasync"},{"id":"LibTmux.TmuxVersion.IsMinimumSupportedVersionInstalledAsync","name":"IsMinimumSupportedVersionInstalledAsync","kind":"method","modifiers":["static"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Reports whether installed tmux meets the package minimum."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":277,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.IsMinimumSupportedVersionInstalledAsync","product":"core","slug":"libtmux-tmuxversion-isminimumsupportedversioninstalledasync"},{"id":"LibTmux.TmuxVersion.EnsureMinimumSupportedVersionAsync","name":"EnsureMinimumSupportedVersionAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[{"name":"tmuxBinaryPath","type":"string","default":"\"tmux\""},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Throws when installed tmux is below the package minimum."},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":287,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.EnsureMinimumSupportedVersionAsync","product":"core","slug":"libtmux-tmuxversion-ensureminimumsupportedversionasync"},{"id":"LibTmux.TmuxVersion.ToString","name":"ToString","kind":"method","modifiers":[],"parent":"LibTmux.TmuxVersion","signatures":[{"params":[],"returns":"string"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Versioning/TmuxVersion.cs","line":298,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxVersion.ToString","product":"core","slug":"libtmux-tmuxversion-tostring"},{"id":"LibTmux.TmuxWait","name":"TmuxWait","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Waits for tmux to reach a state instead of sleeping.","body":"tmux answers a command as soon as it has accepted it, not once the effect\nhas landed, so code that acts and then reads immediately is racing the\nserver. A fixed delay only hides that on an idle machine; waiting for the\nstate itself is what makes the read say what it means. This is ordinary\nclient work, not test scaffolding: reading back what a command produced is\nthe common case, so it ships in the client rather than in\nLibTmux.Testing."},"source":{"file":"src/LibTmux/Waiting/TmuxWait.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWait","product":"core","slug":"libtmux-tmuxwait"},{"id":"LibTmux.TmuxWait.UntilAsync","name":"UntilAsync","kind":"method","modifiers":["static","async","overload"],"parent":"LibTmux.TmuxWait","signatures":[{"params":[{"name":"probe","type":"Func>","doc":"Answers whether the state has been reached."},{"name":"timeout","type":"TimeSpan","doc":"How long to keep asking."},{"name":"interval","type":"TimeSpan","doc":"How long to wait between askings."},{"name":"throwOnTimeout","type":"bool","default":"true","doc":"Whether running out is a failure."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the wait."}],"returns":"Task","returnsDoc":"True when the state was reached.","raises":[{"type":"TmuxWaitTimeoutException","doc":"The state was not reached and running out was to be a failure."}]},{"params":[{"name":"probe","type":"Func>","doc":"Reads the current value."},{"name":"predicate","type":"Func","doc":"Answers whether a reading is the wanted one."},{"name":"timeout","type":"TimeSpan","doc":"How long to keep reading."},{"name":"interval","type":"TimeSpan","doc":"How long to wait between readings."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the wait."}],"returns":"Task","typeParams":["T"],"typeParameters":[{"name":"T","doc":"What is being read."}],"returnsDoc":"The first reading the predicate accepted.","raises":[{"type":"TmuxWaitTimeoutException","doc":"No reading was accepted in time."}]}],"doc":{"summary":"Waits until a probe reports the state was reached."},"source":{"file":"src/LibTmux/Waiting/TmuxWait.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWait.UntilAsync","product":"core","slug":"libtmux-tmuxwait-untilasync"},{"id":"LibTmux.TmuxWaitChannel","name":"TmuxWaitChannel","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"An open wait on a tmux wait-for channel.","body":"tmux gives a signal to whoever is registered on the channel and raises the\nchannel's pending flag only when nobody is. A waiter whose client dies stays\nregistered — tmux clears waiters when the server exits and at no other time\n— so it goes on eating signals that can no longer reach anybody. Killing a\nwaiting client to enforce a timeout therefore destroys the next signal, and\neach timed-out retry leaves another corpse to destroy the one after that.\n\n returning false means that attempt expired without\nobserving completion. The open wait remains owned and may already have\ncompleted from a racing signal. Closing attempts withdrawal before ending\nthe local client; failed withdrawal leaves remote registration unknown."},"source":{"file":"src/LibTmux/Waiting/TmuxWaitChannel.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitChannel","product":"core","slug":"libtmux-tmuxwaitchannel"},{"id":"LibTmux.TmuxWaitChannel.Channel","name":"Channel","kind":"property","modifiers":[],"parent":"LibTmux.TmuxWaitChannel","signatures":[],"type":"string","doc":{"summary":"Gets the channel being waited on."},"source":{"file":"src/LibTmux/Waiting/TmuxWaitChannel.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitChannel.Channel","product":"core","slug":"libtmux-tmuxwaitchannel-channel"},{"id":"LibTmux.TmuxWaitChannel.Signalled","name":"Signalled","kind":"property","modifiers":[],"parent":"LibTmux.TmuxWaitChannel","signatures":[],"type":"bool","doc":{"summary":"Gets whether the wait completed before withdrawal began.","body":"A false value does not prove that no signal arrived. Withdrawing must\nsignal the same channel, so tmux cannot attribute a completion that\nraces the decision to withdraw."},"source":{"file":"src/LibTmux/Waiting/TmuxWaitChannel.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitChannel.Signalled","product":"core","slug":"libtmux-tmuxwaitchannel-signalled"},{"id":"LibTmux.TmuxWaitChannel.WaitAsync","name":"WaitAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.TmuxWaitChannel","signatures":[{"params":[{"name":"budget","type":"TimeSpan","doc":"How long this attempt may take."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Abandons this attempt, not the waiter."}],"returns":"Task","returnsDoc":"True when the channel was signalled, false when the budget ran out."}],"doc":{"summary":"Waits for the signal, giving this attempt a budget.","examples":[{"lang":"console","intro":"Send literal text and a named Enter key, wait for a private completion signal, then require a whole captured output line. All scopes are disposed after errors or cancellation. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/InputCapture.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-inputcapture-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/sh\" }, token);\nServer server = await Server.ConnectAsync(options, token);\nPane pane = (await server.GetPanesAsync(token)).Single();\nstring channel = \"capture-\" + Guid.NewGuid().ToString(\"N\");\nawait using TmuxWaitChannel wait = server.OpenWaitChannel(channel);\nconst string marker = \"api capture ready\";\nstring command = $\"printf '%s\\\\n' {QuoteShell(marker)}; \"\n + $\"{QuoteShell(binary)} -L {QuoteShell(socketName)} wait-for -S {QuoteShell(channel)}\";\n\nawait pane.SendKeysAsync(new SendKeysRequest { Text = command, Literal = true, Enter = false }, token);\nawait pane.SendKeysAsync(new SendKeysRequest { Text = \"Enter\", Enter = false }, token);\nif (!await wait.WaitAsync(TimeSpan.FromSeconds(5), token))\n{\n throw new InvalidOperationException(\"The pane did not signal that its output was ready.\");\n}\nIReadOnlyList lines = await pane.CaptureAsync(\n new CapturePaneRequest { JoinWrappedLines = true }, token);\n// Joining wrapped lines preserves terminal padding after the output.\nif (!lines.Any(line => string.Equals(line.TrimEnd(), marker, StringComparison.Ordinal)))\n{\n throw new InvalidOperationException(\"Capture did not contain the complete output line.\");\n}\nConsole.WriteLine(marker);\n\nstatic string QuoteShell(string value) => \"'\" + value.Replace(\"'\", \"'\\\\''\", StringComparison.Ordinal) + \"'\";\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"api capture ready\n"}]},"source":{"file":"src/LibTmux/Waiting/TmuxWaitChannel.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitChannel.WaitAsync","product":"core","slug":"libtmux-tmuxwaitchannel-waitasync"},{"id":"LibTmux.TmuxWaitChannel.CloseAsync","name":"CloseAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxWaitChannel","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Ends the shared withdrawal attempt early."}],"returns":"ValueTask","returnsDoc":"The shared close operation, including owned local cleanup."}],"doc":{"summary":"Withdraws the waiter and ends its owned client lifetime.","body":"Withdrawal has a one-second deadline. Cancellation or failed withdrawal\nleaves the remote registration unknown and is reported after local cleanup.\nConcurrent callers share this lifetime; cancelling one closes it for all."},"source":{"file":"src/LibTmux/Waiting/TmuxWaitChannel.cs","line":107,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitChannel.CloseAsync","product":"core","slug":"libtmux-tmuxwaitchannel-closeasync"},{"id":"LibTmux.TmuxWaitChannel.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":[],"parent":"LibTmux.TmuxWaitChannel","signatures":[{"params":[],"returns":"ValueTask"}],"doc":{"summary":"Withdraws the waiter from tmux.","body":"Signalling the channel is how a waiter withdraws: tmux wakes the\nregistered waiters and, because the list was not empty, leaves the\npending flag down. Nothing else can deregister one.\n\nA signal landing between the check below and the withdrawal is woken by\nthis waiter and then re-raised by the withdrawal itself, because by then\nno waiter is left to take it. That leaves the channel pending rather\nthan empty — an extra wake for the next caller, never a lost one. tmux\ncannot say which signal completed this waiter in that race.\n\nA signal wakes every waiter on the channel and tmux offers no way to\nderegister one on its own, so withdrawing here also completes any other\nwait open on the same channel. Keep one open wait per channel.\n\nA wait that did not dispatch or returned a command failure never\nregistered, so disposal does not signal it. Close uses a one-second\nwithdrawal deadline, then ends the owned local client. Failed withdrawal\nreports unknown remote registration; unrelated waiter failures remain observable."},"source":{"file":"src/LibTmux/Waiting/TmuxWaitChannel.cs","line":155,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.TmuxWaitChannel.DisposeAsync","product":"core","slug":"libtmux-tmuxwaitchannel-disposeasync"},{"id":"LibTmux.Window","name":"Window","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Represents an immutable window handle and snapshot.","body":"Thread-safe: the handle is immutable once constructed and may be shared\nfreely, including as a singleton. Every mutating call answers a new handle\nrather than changing this one."},"source":{"file":"src/LibTmux/Window.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window","product":"core","slug":"libtmux-window"},{"id":"LibTmux.Window.ExecuteCommandAsync","name":"ExecuteCommandAsync","kind":"method","modifiers":[],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"arguments","type":"IReadOnlyList"},{"name":"targetOverride","type":"string?","default":"null"},{"name":"cancellationToken","type":"CancellationToken","default":"default"}],"returns":"Task"}],"doc":{"summary":"Executes one raw tmux command against this window."},"source":{"file":"src/LibTmux/Window.Command.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.ExecuteCommandAsync","product":"core","slug":"libtmux-window-executecommandasync"},{"id":"LibTmux.Window.DisplayMessageAsync","name":"DisplayMessageAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"request","type":"DisplayMessageRequest","doc":"The message to show."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task?>","returnsDoc":"The printed lines when the request asked for them, else null.","raises":[{"type":"ArgumentException","doc":"The request asks to redraw the pane, which only a pane can honour."}]}],"doc":{"summary":"Shows a message on the client viewing this window.","body":"A message with no client to show it on is not a failure, so tmux's\ncomplaint is logged rather than raised."},"source":{"file":"src/LibTmux/Window.Display.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.DisplayMessageAsync","product":"core","slug":"libtmux-window-displaymessageasync"},{"id":"LibTmux.Window.FromEnvironmentAsync","name":"FromEnvironmentAsync","kind":"method","modifiers":["static","async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"environment","type":"IReadOnlyDictionary?","default":"null","doc":"The environment, or null for the process."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The resolved window."}],"doc":{"summary":"Returns the window holding the pane this process runs in.","body":"Resolved through the pane rather than through the session id in\nTMUX, which is frozen at pane spawn and goes stale when the\nwindow is moved."},"source":{"file":"src/LibTmux/Window.FromEnvironment.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.FromEnvironmentAsync","product":"core","slug":"libtmux-window-fromenvironmentasync"},{"id":"LibTmux.Window.RawFormatFields","name":"RawFormatFields","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the tmux fields captured when this handle materialized."},"source":{"file":"src/LibTmux/Window.Identity.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.RawFormatFields","product":"core","slug":"libtmux-window-rawformatfields"},{"id":"LibTmux.Window.Id","name":"Id","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"WindowId","doc":{"summary":"Gets the window identifier."},"source":{"file":"src/LibTmux/Window.Identity.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Id","product":"core","slug":"libtmux-window-id"},{"id":"LibTmux.Window.Generation","name":"Generation","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"ServerGeneration","doc":{"summary":"Gets the server generation captured with this window."},"source":{"file":"src/LibTmux/Window.Identity.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Generation","product":"core","slug":"libtmux-window-generation"},{"id":"LibTmux.Window.Equals","name":"Equals","kind":"method","modifiers":["overload"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"other","type":"Window?"}],"returns":"bool"},{"params":[{"name":"obj","type":"object?"}],"returns":"bool"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Window.Identity.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Equals","product":"core","slug":"libtmux-window-equals"},{"id":"LibTmux.Window.GetHashCode","name":"GetHashCode","kind":"method","modifiers":[],"parent":"LibTmux.Window","signatures":[{"params":[],"returns":"int"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Window.Identity.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.GetHashCode","product":"core","slug":"libtmux-window-gethashcode"},{"id":"LibTmux.Window.ResizeAsync","name":"ResizeAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"request","type":"ResizeWindowRequest","doc":"The size to apply."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new size."}],"doc":{"summary":"Resizes this window.","body":"Resizing switches the window's window-size option to manual, so\nit stops following its clients."},"source":{"file":"src/LibTmux/Window.Layout.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.ResizeAsync","product":"core","slug":"libtmux-window-resizeasync"},{"id":"LibTmux.Window.SelectLayoutAsync","name":"SelectLayoutAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"request","type":"SelectLayoutRequest?","default":"null","doc":"The layout to apply."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new layout.","raises":[{"type":"TmuxWindowException","doc":"The layout is one tmux may not recognise."}]}],"doc":{"summary":"Applies a layout to this window.","body":"Feeding a previously captured back restores the\nsame pane sizes on every version, but on tmux 3.7 and earlier it can\nrotate which pane lands in which position - measured by hand, not a\nhypothetical. tmux 3.8 and newer accepts the JSON form of the layout\n(from a plain, non-control client) and restores the exact arrangement,\nincluding which pane id sits where; the classic checksum-prefixed form\nnever carries pane ids and so cannot."},"source":{"file":"src/LibTmux/Window.Layout.cs","line":96,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SelectLayoutAsync","product":"core","slug":"libtmux-window-selectlayoutasync"},{"id":"LibTmux.Window.SelectNextLayoutAsync","name":"SelectNextLayoutAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new layout."}],"doc":{"summary":"Moves to the next layout."},"source":{"file":"src/LibTmux/Window.Layout.cs","line":117,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SelectNextLayoutAsync","product":"core","slug":"libtmux-window-selectnextlayoutasync"},{"id":"LibTmux.Window.SelectPreviousLayoutAsync","name":"SelectPreviousLayoutAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new layout."}],"doc":{"summary":"Moves to the previous layout."},"source":{"file":"src/LibTmux/Window.Layout.cs","line":130,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SelectPreviousLayoutAsync","product":"core","slug":"libtmux-window-selectpreviouslayoutasync"},{"id":"LibTmux.WindowRotationDirection","name":"WindowRotationDirection","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names which way a window's panes rotate."},"source":{"file":"src/LibTmux/Window.Lifecycle.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowRotationDirection","product":"core","slug":"libtmux-windowrotationdirection"},{"id":"LibTmux.WindowRotationDirection.Up","name":"Up","kind":"constant","modifiers":[],"parent":"LibTmux.WindowRotationDirection","signatures":[],"doc":{"summary":"Rotate panes towards the top of the window."},"source":{"file":"src/LibTmux/Window.Lifecycle.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowRotationDirection.Up","product":"core","slug":"libtmux-windowrotationdirection-up"},{"id":"LibTmux.WindowRotationDirection.Down","name":"Down","kind":"constant","modifiers":[],"parent":"LibTmux.WindowRotationDirection","signatures":[],"doc":{"summary":"Rotate panes towards the bottom of the window."},"source":{"file":"src/LibTmux/Window.Lifecycle.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowRotationDirection.Down","product":"core","slug":"libtmux-windowrotationdirection-down"},{"id":"LibTmux.Window.RenameAsync","name":"RenameAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"name","type":"string","doc":"The new name."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the new name."}],"doc":{"summary":"Renames this window.","body":"tmux expands the name as a format, so a # in it does not survive\nverbatim."},"source":{"file":"src/LibTmux/Window.Lifecycle.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.RenameAsync","product":"core","slug":"libtmux-window-renameasync"},{"id":"LibTmux.Window.SelectAsync","name":"SelectAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the state after selection."}],"doc":{"summary":"Selects this window in its session."},"source":{"file":"src/LibTmux/Window.Lifecycle.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SelectAsync","product":"core","slug":"libtmux-window-selectasync"},{"id":"LibTmux.Window.KillAsync","name":"KillAsync","kind":"method","modifiers":[],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"allExcept","type":"bool","default":"false","doc":"Whether every other window in the session is stopped instead."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Stops this window."},"source":{"file":"src/LibTmux/Window.Lifecycle.cs","line":53,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.KillAsync","product":"core","slug":"libtmux-window-killasync"},{"id":"LibTmux.Window.RotateAsync","name":"RotateAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"direction","type":"WindowRotationDirection?","default":"null","doc":"Which way to rotate, or null for tmux's default."},{"name":"keepZoom","type":"bool","default":"false","doc":"Whether a zoomed pane stays zoomed."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the state after rotation."}],"doc":{"summary":"Rotates the panes in this window."},"source":{"file":"src/LibTmux/Window.Lifecycle.cs","line":72,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.RotateAsync","product":"core","slug":"libtmux-window-rotateasync"},{"id":"LibTmux.Window.RespawnAsync","name":"RespawnAsync","kind":"method","modifiers":[],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"request","type":"RespawnRequest?","default":"null","doc":"What to respawn, or null to reuse the original."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Restarts the command running in this window.","body":"tmux refuses to respawn a window that is still running unless the\nrequest kills it first, and killing it destroys every pane but one."},"source":{"file":"src/LibTmux/Window.Lifecycle.cs","line":102,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.RespawnAsync","product":"core","slug":"libtmux-window-respawnasync"},{"id":"LibTmux.Window.CreateWindowAsync","name":"CreateWindowAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"request","type":"NewWindowRequest?","default":"null","doc":"The window to create."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The created window."}],"doc":{"summary":"Creates a window next to this one."},"source":{"file":"src/LibTmux/Window.Lifecycle.cs","line":129,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.CreateWindowAsync","product":"core","slug":"libtmux-window-createwindowasync"},{"id":"LibTmux.Window.LinkAsync","name":"LinkAsync","kind":"method","modifiers":[],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"request","type":"LinkWindowRequest","doc":"Where the link goes."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Links this window into another session.","body":"A guard in the native queue rejects the command when the captured\nsource index belongs to a different window or no longer exists."},"source":{"file":"src/LibTmux/Window.Links.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.LinkAsync","product":"core","slug":"libtmux-window-linkasync"},{"id":"LibTmux.Window.UnlinkAsync","name":"UnlinkAsync","kind":"method","modifiers":["overload"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"killIfLast","type":"bool","default":"false","doc":"Whether the window dies when this was its last link."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"},{"params":[{"name":"killIfLast","type":"bool","doc":"Whether the window dies when this was its last link."},{"name":"expectedPaneIds","type":"IReadOnlyList","doc":"The nonempty, distinct pane IDs expected in the window, in any order."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","raises":[{"type":"ArgumentException","doc":"The IDs are empty, duplicated, or exceed the native command byte budget."},{"type":"TmuxCommandException","doc":"The placement or pane membership changed, or tmux refused the unlink."}]}],"doc":{"summary":"Removes this window's link to the session it was read through.","body":"tmux refuses to unlink a window that belongs to only one session unless\nit is allowed to destroy it. A guard in the native queue checks the\ncaptured session/index still names this window before unlinking it."},"source":{"file":"src/LibTmux/Window.Links.cs","line":65,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.UnlinkAsync","product":"core","slug":"libtmux-window-unlinkasync"},{"id":"LibTmux.Window.SwapAsync","name":"SwapAsync","kind":"method","modifiers":[],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"target","type":"WindowId","doc":"The window to swap with."},{"name":"detach","type":"bool","default":"false","doc":"Whether the swapped window is left unselected."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task"}],"doc":{"summary":"Swaps this window with another.","body":"A window linked into several sessions resolves to whichever link tmux\npicks, because a window identifier does not name one."},"source":{"file":"src/LibTmux/Window.Links.cs","line":153,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SwapAsync","product":"core","slug":"libtmux-window-swapasync"},{"id":"LibTmux.Window.MoveAsync","name":"MoveAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"request","type":"MoveWindowRequest","doc":"Where the window goes."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying the affected placement."}],"doc":{"summary":"Moves this window to another index or session.","body":"A renumber request preserves placement order and returns this link at\nits new index; renumbering another session leaves this link in place.\nA guard in the native queue checks that the captured session/index\nstill names this window before the mutation. Reads before and after\nthe command detect inconsistent placement changes, but do not make\nthe operation atomic. A failed readback reports unknown\ndispatch state: the move already succeeded and must not be retried."},"source":{"file":"src/LibTmux/Window.Move.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.MoveAsync","product":"core","slug":"libtmux-window-moveasync"},{"id":"LibTmux.PaneInputMode","name":"PaneInputMode","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names whether a pane accepts input."},"source":{"file":"src/LibTmux/Window.Panes.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneInputMode","product":"core","slug":"libtmux-paneinputmode"},{"id":"LibTmux.PaneInputMode.Enable","name":"Enable","kind":"constant","modifiers":[],"parent":"LibTmux.PaneInputMode","signatures":[],"doc":{"summary":"The pane accepts input."},"source":{"file":"src/LibTmux/Window.Panes.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneInputMode.Enable","product":"core","slug":"libtmux-paneinputmode-enable"},{"id":"LibTmux.PaneInputMode.Disable","name":"Disable","kind":"constant","modifiers":[],"parent":"LibTmux.PaneInputMode","signatures":[],"doc":{"summary":"The pane ignores input."},"source":{"file":"src/LibTmux/Window.Panes.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.PaneInputMode.Disable","product":"core","slug":"libtmux-paneinputmode-disable"},{"id":"LibTmux.Window.SelectLastPaneAsync","name":"SelectLastPaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"inputMode","type":"PaneInputMode?","default":"null","doc":"Whether to change the pane's input handling instead."},{"name":"keepZoom","type":"bool","default":"false","doc":"Whether a zoomed pane stays zoomed."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The pane that is active afterwards, or null when none is."}],"doc":{"summary":"Selects the pane that was last active.","body":"Asking for an input change makes tmux apply that to the last pane and\nleave the active pane alone, so the handle that comes back is the pane\nthat was already active."},"source":{"file":"src/LibTmux/Window.Panes.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SelectLastPaneAsync","product":"core","slug":"libtmux-window-selectlastpaneasync"},{"id":"LibTmux.Window.SelectPaneAsync","name":"SelectPaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"target","type":"string","doc":"A pane target, or a direction such as -U."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The pane that is active afterwards, or null when none is."}],"doc":{"summary":"Selects a pane in this window."},"source":{"file":"src/LibTmux/Window.Panes.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SelectPaneAsync","product":"core","slug":"libtmux-window-selectpaneasync"},{"id":"LibTmux.Window.GetPaneAsync","name":"GetPaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"target","type":"string","doc":"The pane identifier or index."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The materialized pane in this window.","raises":[{"type":"TmuxObjectNotFoundException","doc":"This window has no matching pane."},{"type":"LibTmuxException","doc":"The lookup failed."}]}],"doc":{"summary":"Reads one pane in this window, throwing when it is absent."},"source":{"file":"src/LibTmux/Window.Panes.cs","line":94,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.GetPaneAsync","product":"core","slug":"libtmux-window-getpaneasync"},{"id":"LibTmux.Window.FindPaneAsync","name":"FindPaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"target","type":"string","doc":"The pane target."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The pane, or null when this window has no such pane."}],"doc":{"summary":"Reads one pane in this window.","examples":[{"lang":"console","intro":"Use typed required lookups, nullable absence and explicit errors. Cancellation, invalid input and a stopped server remain exceptions. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/EntityLookups.cs","code":"using System;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-entitylookups-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nServer stoppedServer;\nawait using (OwnedServerScope owned = await Server.CreateOwnedAsync(options, token))\n{\n await using OwnedSessionScope session = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", Command = \"/bin/cat\" }, token);\n Server server = await Server.ConnectAsync(options, token);\n Session found = await server.GetSessionAsync(session.Value.Id, token);\n Window listedWindow = (await found.GetWindowsAsync(token)).Single();\n Window window = await server.GetWindowAsync(listedWindow.Id, token);\n Pane listedPane = (await window.GetPanesAsync(token)).Single();\n Pane pane = await server.GetPaneAsync(listedPane.Id, token);\n if (found.Id != session.Value.Id || pane.Id != listedPane.Id)\n {\n throw new InvalidOperationException(\"Typed lookup returned an unexpected entity.\");\n }\n\n SessionId missingId = new(int.MaxValue);\n Session? missing = await server.FindSessionAsync(missingId, token);\n if (missing is not null)\n {\n throw new InvalidOperationException(\"The absent session unexpectedly exists.\");\n }\n Console.WriteLine(\"A successful lookup can return null.\");\n try\n {\n _ = await server.GetSessionAsync(missingId, token);\n throw new InvalidOperationException(\"GetSessionAsync must throw for an absent session.\");\n }\n catch (TmuxObjectNotFoundException)\n {\n Console.WriteLine(\"Required lookup reports TmuxObjectNotFoundException.\");\n }\n\n using CancellationTokenSource cancelled = new();\n cancelled.Cancel();\n try\n {\n _ = await server.FindSessionAsync(session.Value.Id, cancelled.Token);\n throw new InvalidOperationException(\"Cancelled lookup must throw.\");\n }\n catch (OperationCanceledException)\n {\n Console.WriteLine(\"Cancellation remains OperationCanceledException.\");\n }\n try\n {\n _ = await window.FindPaneAsync(\" \", token);\n throw new InvalidOperationException(\"A blank pane target must be rejected.\");\n }\n catch (ArgumentException)\n {\n Console.WriteLine(\"A blank pane target remains ArgumentException.\");\n }\n stoppedServer = server;\n}\n\ntry\n{\n _ = await stoppedServer.FindSessionAsync(new SessionId(int.MaxValue), token);\n throw new InvalidOperationException(\"A failed read must not become null.\");\n}\ncatch (LibTmuxException)\n{\n Console.WriteLine(\"A stopped server remains a LibTmuxException.\");\n}\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"A successful lookup can return null.\nRequired lookup reports TmuxObjectNotFoundException.\nCancellation remains OperationCanceledException.\nA blank pane target remains ArgumentException.\nA stopped server remains a LibTmuxException.\n"}]},"source":{"file":"src/LibTmux/Window.Panes.cs","line":106,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.FindPaneAsync","product":"core","slug":"libtmux-window-findpaneasync"},{"id":"LibTmux.Window.SplitPaneAsync","name":"SplitPaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"request","type":"SplitPaneRequest?","default":"null","doc":"How to split."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The created pane."}],"doc":{"summary":"Splits a pane in this window."},"source":{"file":"src/LibTmux/Window.Panes.cs","line":122,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SplitPaneAsync","product":"core","slug":"libtmux-window-splitpaneasync"},{"id":"LibTmux.Window.CreatePaneAsync","name":"CreatePaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"request","type":"NewPaneRequest?","default":"null","doc":"The pane to create."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The created pane.","raises":[{"type":"TmuxVersionTooLowException","doc":"The server predates tmux 3.7, which introduced the command."}]}],"doc":{"summary":"Creates a floating pane in this window."},"source":{"file":"src/LibTmux/Window.Panes.cs","line":199,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.CreatePaneAsync","product":"core","slug":"libtmux-window-createpaneasync"},{"id":"LibTmux.Window.SearchPanesAsync","name":"SearchPanesAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"filter","type":"UnsafeTmuxFilter","doc":"The raw tmux filter expression."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The panes tmux kept."}],"doc":{"summary":"Runs a tmux-side filter over this window's panes."},"source":{"file":"src/LibTmux/Window.Panes.cs","line":288,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SearchPanesAsync","product":"core","slug":"libtmux-window-searchpanesasync"},{"id":"LibTmux.Window.ActivePane","name":"ActivePane","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"CapturedValue","doc":{"summary":"Gets the captured active pane, or an uncaptured relation.","body":"Reading this is local. A window reached through an inactive pane\ncarries that pane's row, so its active pane was not captured."},"source":{"file":"src/LibTmux/Window.Relations.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.ActivePane","product":"core","slug":"libtmux-window-activepane"},{"id":"LibTmux.Window.Panes","name":"Panes","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"CapturedRelation","doc":{"summary":"Gets the panes the capture found in this window.","body":"Reading this never reaches tmux."},"source":{"file":"src/LibTmux/Window.Relations.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Panes","product":"core","slug":"libtmux-window-panes"},{"id":"LibTmux.Window.LinkedSessions","name":"LinkedSessions","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"CapturedRelation","doc":{"summary":"Gets the sessions the capture found this window linked into.","body":"Reading this never reaches tmux."},"source":{"file":"src/LibTmux/Window.Relations.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.LinkedSessions","product":"core","slug":"libtmux-window-linkedsessions"},{"id":"LibTmux.Window.Edge","name":"Edge","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"SessionWindowEdge","doc":{"summary":"Gets where this window sits in the session it was read from.","body":"A window has one edge per indexed placement, including multiple indexes\nwithin one session. This is the edge for the session and index captured\nby this handle."},"source":{"file":"src/LibTmux/Window.Relations.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Edge","product":"core","slug":"libtmux-window-edge"},{"id":"LibTmux.Window.EntityKey","name":"EntityKey","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"WindowEntityKey","doc":{"summary":"Gets the session, window and index this handle names together.","body":"tmux can link a window at several indexes in one session, so the session\nand window identifiers alone do not name a place in the hierarchy."},"source":{"file":"src/LibTmux/Window.Relations.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.EntityKey","product":"core","slug":"libtmux-window-entitykey"},{"id":"LibTmux.Window.GetPanesAsync","name":"GetPanesAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The panes tmux reports for this window."}],"doc":{"summary":"Reads this window's panes from tmux.","examples":[{"lang":"console","intro":"Create entities directly inside an owned server scope, then read the session and window children. The outer scope stops its daemon and all created entities. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/CreateWindowPane.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-createwindowpane-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\n// The outer server scope owns everything created directly inside this daemon.\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nSession session = await owned.Value.CreateSessionAsync(\n new NewSessionRequest { Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\" }, token);\nWindow window = await session.CreateWindowAsync(\n new NewWindowRequest { Name = \"editor\", Command = \"/bin/cat\" }, token);\nPane original = (await window.GetPanesAsync(token)).Single();\nPane added = await original.SplitAsync(\n new SplitPaneRequest { Direction = PaneDirection.Right, Command = \"/bin/cat\" }, token);\n\nIReadOnlyList windows = await session.GetWindowsAsync(token);\nIReadOnlyList panes = await session.GetPanesAsync(token);\nif (windows.Count != 2 || panes.Count != 3 || added.Id == original.Id)\n{\n throw new InvalidOperationException(\"Expected two windows and three distinct panes.\");\n}\n\nConsole.WriteLine($\"Created session {session.Name} and window {window.Name}.\");\nConsole.WriteLine($\"Windows: {windows.Count}; panes: {panes.Count}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Created session demo and window editor.\nWindows: 2; panes: 3\n"}]},"source":{"file":"src/LibTmux/Window.Relations.cs","line":115,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.GetPanesAsync","product":"core","slug":"libtmux-window-getpanesasync"},{"id":"LibTmux.Window.GetActivePaneAsync","name":"GetActivePaneAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The pane tmux reports.","raises":[{"type":"TmuxObjectNotFoundException","doc":"tmux reports no such pane."}]}],"doc":{"summary":"Reads from tmux this window's active pane.","body":"Asks tmux now, where holds what a capture saw."},"source":{"file":"src/LibTmux/Window.Relations.cs","line":135,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.GetActivePaneAsync","product":"core","slug":"libtmux-window-getactivepaneasync"},{"id":"LibTmux.Window.GetLinkedSessionsAsync","name":"GetLinkedSessionsAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task>","returnsDoc":"The sessions that link this window."}],"doc":{"summary":"Reads every session this window is linked into.","body":"tmux can link one window into several sessions, so this reports every\nsession holding the window rather than a single parent."},"source":{"file":"src/LibTmux/Window.Relations.cs","line":155,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.GetLinkedSessionsAsync","product":"core","slug":"libtmux-window-getlinkedsessionsasync"},{"id":"LibTmux.Window.Options","name":"Options","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"TmuxOptions","doc":{"summary":"Gets the options of this window.","body":"tmux once spelled these set-window-option and\nshow-window-options. They are the ordinary option commands with\nthe window flag, which is what this scope carries."},"source":{"file":"src/LibTmux/Window.Scopes.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Options","product":"core","slug":"libtmux-window-options"},{"id":"LibTmux.Window.Hooks","name":"Hooks","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"TmuxHooks","doc":{"summary":"Gets the hooks of this window."},"source":{"file":"src/LibTmux/Window.Scopes.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Hooks","product":"core","slug":"libtmux-window-hooks"},{"id":"LibTmux.Window.Name","name":"Name","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"string","doc":{"summary":"Gets the window name captured with this handle."},"source":{"file":"src/LibTmux/Window.State.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Name","product":"core","slug":"libtmux-window-name"},{"id":"LibTmux.Window.Index","name":"Index","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"int","doc":{"summary":"Gets the index this window holds in its session.","body":"A window linked into several sessions holds a different index in each,\nso this is the index of the session this handle was read through."},"source":{"file":"src/LibTmux/Window.State.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Index","product":"core","slug":"libtmux-window-index"},{"id":"LibTmux.Window.IsActive","name":"IsActive","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"bool","doc":{"summary":"Gets whether this captured placement is the selected window in its session."},"source":{"file":"src/LibTmux/Window.State.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.IsActive","product":"core","slug":"libtmux-window-isactive"},{"id":"LibTmux.Window.Active","name":"Active","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"bool","doc":{"summary":"Gets whether this is the current window of the session it was read through.","body":"A window linked into several sessions can be current in one and not in\nanother, as with ."},"source":{"file":"src/LibTmux/Window.State.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Active","product":"core","slug":"libtmux-window-active"},{"id":"LibTmux.Window.BellAlert","name":"BellAlert","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"bool","doc":{"summary":"Gets whether a bell rang in the window since it was last the current window.","body":"tmux sets it only while monitor-bell is on, which it is by default."},"source":{"file":"src/LibTmux/Window.State.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.BellAlert","product":"core","slug":"libtmux-window-bellalert"},{"id":"LibTmux.Window.ActivityAlert","name":"ActivityAlert","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"bool","doc":{"summary":"Gets whether the window printed since it was last the current window.","body":"tmux sets it only while monitor-activity is on."},"source":{"file":"src/LibTmux/Window.State.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.ActivityAlert","product":"core","slug":"libtmux-window-activityalert"},{"id":"LibTmux.Window.SilenceAlert","name":"SilenceAlert","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"bool","doc":{"summary":"Gets whether the window has been silent for monitor-silence seconds."},"source":{"file":"src/LibTmux/Window.State.cs","line":53,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.SilenceAlert","product":"core","slug":"libtmux-window-silencealert"},{"id":"LibTmux.Window.Zoomed","name":"Zoomed","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"bool","doc":{"summary":"Gets whether one of the window's panes is zoomed to fill it."},"source":{"file":"src/LibTmux/Window.State.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Zoomed","product":"core","slug":"libtmux-window-zoomed"},{"id":"LibTmux.Window.Flags","name":"Flags","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"string","doc":{"summary":"Gets the window's flags as its status line shows them, such as * for the current window.","body":"Empty for a window with no flags."},"source":{"file":"src/LibTmux/Window.State.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Flags","product":"core","slug":"libtmux-window-flags"},{"id":"LibTmux.Window.Height","name":"Height","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"int","doc":{"summary":"Gets the window height captured with this handle."},"source":{"file":"src/LibTmux/Window.State.cs","line":67,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Height","product":"core","slug":"libtmux-window-height"},{"id":"LibTmux.Window.Width","name":"Width","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"int","doc":{"summary":"Gets the window width captured with this handle."},"source":{"file":"src/LibTmux/Window.State.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Width","product":"core","slug":"libtmux-window-width"},{"id":"LibTmux.Window.Layout","name":"Layout","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"string","doc":{"summary":"Gets the layout string captured with this handle.","body":"Restoring this through can rotate\nwhich pane lands in which position; see that method's remarks for when."},"source":{"file":"src/LibTmux/Window.State.cs","line":77,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Layout","product":"core","slug":"libtmux-window-layout"},{"id":"LibTmux.Window.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"Server","doc":{"summary":"Gets the server that owns this window.","body":"Reading this uses the owner captured with the entity."},"source":{"file":"src/LibTmux/Window.State.cs","line":85,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Server","product":"core","slug":"libtmux-window-server"},{"id":"LibTmux.Window.Session","name":"Session","kind":"property","modifiers":[],"parent":"LibTmux.Window","signatures":[],"type":"Session","doc":{"summary":"Gets the session this window was read through."},"source":{"file":"src/LibTmux/Window.State.cs","line":91,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.Session","product":"core","slug":"libtmux-window-session"},{"id":"LibTmux.Window.RefreshAsync","name":"RefreshAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Window","signatures":[{"params":[{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"A replacement handle carrying current state."}],"doc":{"summary":"Re-reads this window from tmux."},"source":{"file":"src/LibTmux/Window.State.cs","line":101,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Window.RefreshAsync","product":"core","slug":"libtmux-window-refreshasync"},{"id":"LibTmux.WindowCreationResult","name":"WindowCreationResult","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A created window and the initial pane identity reported by its creation command.","body":"The pane identifier belongs to 's endpoint and generation.\nIt describes creation time, not a captured relationship or current membership.\nResolve that exact identifier before acting on the pane; another client or\nhook may already have moved or removed it."},"source":{"file":"src/LibTmux/WindowCreationResult.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowCreationResult","product":"core","slug":"libtmux-windowcreationresult"},{"id":"LibTmux.WindowCreationResult.Window","name":"Window","kind":"property","modifiers":[],"parent":"LibTmux.WindowCreationResult","signatures":[],"type":"Window","doc":{"summary":"Gets the created window in the creating session's placement."},"source":{"file":"src/LibTmux/WindowCreationResult.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowCreationResult.Window","product":"core","slug":"libtmux-windowcreationresult-window"},{"id":"LibTmux.WindowCreationResult.InitialPaneId","name":"InitialPaneId","kind":"property","modifiers":[],"parent":"LibTmux.WindowCreationResult","signatures":[],"type":"PaneId","doc":{"summary":"Gets the initial pane identifier from the creation reply."},"source":{"file":"src/LibTmux/WindowCreationResult.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowCreationResult.InitialPaneId","product":"core","slug":"libtmux-windowcreationresult-initialpaneid"},{"id":"LibTmux.WindowId","name":"WindowId","kind":"struct","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Represents a generation-independent tmux window identifier."},"source":{"file":"src/LibTmux/WindowId.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowId","product":"core","slug":"libtmux-windowid"},{"id":"LibTmux.WindowId.WindowId","name":"WindowId","kind":"method","modifiers":[],"parent":"LibTmux.WindowId","signatures":[{"params":[{"name":"value","type":"int"}]}],"doc":{"summary":"Initializes a window identifier."},"source":{"file":"src/LibTmux/WindowId.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowId.WindowId","product":"core","slug":"libtmux-windowid-windowid"},{"id":"LibTmux.WindowId.Value","name":"Value","kind":"property","modifiers":[],"parent":"LibTmux.WindowId","signatures":[],"type":"int","doc":{"summary":"Gets the nonnegative numeric value."},"source":{"file":"src/LibTmux/WindowId.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowId.Value","product":"core","slug":"libtmux-windowid-value"},{"id":"LibTmux.WindowId.Parse","name":"Parse","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.WindowId","signatures":[{"params":[{"name":"text","type":"string"}],"returns":"WindowId"},{"params":[{"name":"text","type":"ReadOnlySpan","doc":"The text to parse."}],"returns":"WindowId","returnsDoc":"The parsed identifier.","raises":[{"type":"FormatException","doc":"The text is not a canonical window identifier."}]}],"doc":{"summary":"Parses a prefixed window identifier."},"source":{"file":"src/LibTmux/WindowId.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowId.Parse","product":"core","slug":"libtmux-windowid-parse"},{"id":"LibTmux.WindowId.TryParse","name":"TryParse","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.WindowId","signatures":[{"params":[{"name":"text","type":"string?"},{"name":"result","type":"WindowId"}],"returns":"bool"},{"params":[{"name":"text","type":"ReadOnlySpan","doc":"The text to parse."},{"name":"result","type":"WindowId","doc":"The parsed identifier when this succeeds."}],"returns":"bool","returnsDoc":" when the text was a canonical identifier."}],"doc":{"summary":"Tries to parse a prefixed window identifier."},"source":{"file":"src/LibTmux/WindowId.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowId.TryParse","product":"core","slug":"libtmux-windowid-tryparse"},{"id":"LibTmux.WindowId.CompareTo","name":"CompareTo","kind":"method","modifiers":[],"parent":"LibTmux.WindowId","signatures":[{"params":[{"name":"other","type":"WindowId","doc":"The identifier to compare against."}],"returns":"int","returnsDoc":"A negative value, zero, or a positive value."}],"doc":{"summary":"Orders this identifier against another numerically.","body":"tmux hands out window identifiers in increasing order, so the ordering\nis oldest first. Without it OrderBy and Array.Sort throw\nrather than sorting."},"source":{"file":"src/LibTmux/WindowId.cs","line":76,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowId.CompareTo","product":"core","slug":"libtmux-windowid-compareto"},{"id":"LibTmux.WindowId.ToString","name":"ToString","kind":"method","modifiers":[],"parent":"LibTmux.WindowId","signatures":[{"params":[],"returns":"string"}],"doc":{"summary":"Returns the canonical prefixed identifier."},"source":{"file":"src/LibTmux/WindowId.cs","line":124,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.WindowId.ToString","product":"core","slug":"libtmux-windowid-tostring"},{"id":"LibTmux.Query.QueryEdgeParser","name":"QueryEdgeParser","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Parses the one legacy lookup spelling this port still carries.","body":"Python accepts a whole family of field__operator lookups. Only\nname__contains survives here, as a migration aid for callers porting\nkeyword-argument filters. New code writes an expression and lets translation\nbuild the document.\n\nThis deliberately diverges from Python: there, an unrecognised\noperator falls back silently to an exact match. Answering a\ndifferent question than the one asked is the failure this port\nrefuses."},"source":{"file":"src/LibTmux/Query/NameContainsLookupParser.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryEdgeParser","product":"core","slug":"libtmux-query-queryedgeparser"},{"id":"LibTmux.Query.QueryEdgeParser.ParseNameContains","name":"ParseNameContains","kind":"method","modifiers":["static"],"parent":"LibTmux.Query.QueryEdgeParser","signatures":[{"params":[{"name":"target","type":"QueryTarget","doc":"The tmux object whose name is matched."},{"name":"value","type":"string","doc":"The substring the name must contain."}],"returns":"QueryDocument","returnsDoc":"The equivalent query document.","raises":[{"type":"UnsupportedQueryExpressionException","doc":"The target has no queryable name field."}]}],"doc":{"summary":"Parses a name__contains lookup into a query document."},"source":{"file":"src/LibTmux/Query/NameContainsLookupParser.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryEdgeParser.ParseNameContains","product":"core","slug":"libtmux-query-queryedgeparser-parsenamecontains"},{"id":"LibTmux.Query.QueryDocument","name":"QueryDocument","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One translated query predicate and its wire schema.","body":"The document is the stable interchange form. It is produced by translation\nand never by client evaluation, so an expression that cannot be translated\nfails loudly rather than silently degrading to in-memory filtering."},"source":{"file":"src/LibTmux/Query/QueryDocument.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryDocument","product":"core","slug":"libtmux-query-querydocument"},{"id":"LibTmux.Query.QueryDocument.Schema","name":"Schema","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryDocument","signatures":[],"type":"string","doc":{"summary":"Gets the wire schema identifier."},"source":{"file":"src/LibTmux/Query/QueryDocument.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryDocument.Schema","product":"core","slug":"libtmux-query-querydocument-schema"},{"id":"LibTmux.Query.QueryDocument.Version","name":"Version","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryDocument","signatures":[],"type":"int","doc":{"summary":"Gets the wire schema version."},"source":{"file":"src/LibTmux/Query/QueryDocument.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryDocument.Version","product":"core","slug":"libtmux-query-querydocument-version"},{"id":"LibTmux.Query.QueryDocument.Target","name":"Target","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryDocument","signatures":[],"type":"QueryTarget","doc":{"summary":"Gets the object the predicate selects."},"source":{"file":"src/LibTmux/Query/QueryDocument.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryDocument.Target","product":"core","slug":"libtmux-query-querydocument-target"},{"id":"LibTmux.Query.QueryDocument.RequiredSnapshotDepth","name":"RequiredSnapshotDepth","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryDocument","signatures":[],"type":"SnapshotDepth","doc":{"summary":"Gets the snapshot depth this predicate needs to evaluate.","body":"A quantifier over a relation cannot be answered by a shallower capture,\nso the depth is derived from the predicate rather than assumed."},"source":{"file":"src/LibTmux/Query/QueryDocument.cs","line":51,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryDocument.RequiredSnapshotDepth","product":"core","slug":"libtmux-query-querydocument-requiredsnapshotdepth"},{"id":"LibTmux.Query.QueryExtensions","name":"QueryExtensions","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Translates, compiles, and applies declarative query predicates.","body":"The same predicate translates to the portable document and compiles to an\nin-memory delegate, so its stored form and local interpretation share one\nmeaning."},"source":{"file":"src/LibTmux/Query/QueryExtensions.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryExtensions","product":"core","slug":"libtmux-query-queryextensions"},{"id":"LibTmux.Query.QueryExtensions.Translate","name":"Translate","kind":"method","modifiers":["static"],"parent":"LibTmux.Query.QueryExtensions","signatures":[{"params":[{"name":"predicate","type":"Expression>","doc":"The predicate to translate."}],"returns":"QueryDocument","typeParams":["T"],"typeParameters":[{"name":"T","doc":"The filtered element type."}],"returnsDoc":"The translated document.","raises":[{"type":"UnsupportedQueryExpressionException","doc":"The expression contains a node the query vocabulary does not cover."}]}],"doc":{"summary":"Translates an expression into a wire document.","examples":[{"lang":"console","intro":"Compare LINQ with translated expression and document predicates, preserve cancellation, and capture the hierarchy before filtering its children. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerQueries.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\nusing System.Linq.Expressions;\nusing LibTmux.Query;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverqueries-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope demo = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\" }, token);\nawait using OwnedSessionScope worker = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/cat\" }, token);\nServer server = await Server.ConnectAsync(options, token);\nIReadOnlyList sessions = await server.GetSessionsAsync(token);\n\n// LINQ and portable predicates operate on these rows; neither reads tmux.\nSession native = sessions.Where(session => session.Name == \"demo\").Single();\nExpression> predicate = session => session.Name == \"demo\";\nQueryDocument document = QueryExtensions.Translate(predicate);\nSession expressionMatch = sessions.Matching(predicate).Single();\nSession documentMatch = sessions.Matching(document).Single();\nSession cancellableMatch = sessions.Matching(document, token).Single();\nif (new[] { native, expressionMatch, documentMatch, cancellableMatch }\n .Any(session => session.Id != demo.Value.Id))\n{\n throw new InvalidOperationException(\"The native and portable predicates selected different sessions.\");\n}\n\n// A predicate that traverses children requires an explicitly captured hierarchy.\nServer captured = await server.CaptureSnapshotAsync(SnapshotDepth.Panes, token);\nSession parent = captured.Sessions.Matching(session =>\n session.Windows.Any(window => window.Name == \"shell\" && window.Panes.Any(pane => pane.CurrentCommand == \"cat\"))).Single();\nif (parent.Id != demo.Value.Id)\n{\n throw new InvalidOperationException(\"The hierarchy predicate selected an unexpected parent.\");\n}\n\nusing CancellationTokenSource cancelled = new();\ncancelled.Cancel();\ntry\n{\n _ = sessions.Matching(document, cancelled.Token);\n throw new InvalidOperationException(\"Cancelled filtering must throw.\");\n}\ncatch (OperationCanceledException)\n{\n Console.WriteLine(\"Cancelled filtering remains OperationCanceledException.\");\n}\nConsole.WriteLine($\"LINQ, expression and document filters: {native.Name}; captured parent: {parent.Name}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Cancelled filtering remains OperationCanceledException.\nLINQ, expression and document filters: demo; captured parent: demo\n"}]},"source":{"file":"src/LibTmux/Query/QueryExtensions.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryExtensions.Translate","product":"core","slug":"libtmux-query-queryextensions-translate"},{"id":"LibTmux.Query.QueryExtensions.Plan","name":"Plan","kind":"method","modifiers":["static"],"parent":"LibTmux.Query.QueryExtensions","signatures":[{"params":[{"name":"document","type":"QueryDocument","doc":"The portable predicate."},{"name":"daemonVersion","type":"TmuxVersion","doc":"The daemon version observed by Server.InspectAsync."},{"name":"pushdown","type":"QueryPushdown","default":"QueryPushdown.Auto","doc":"Whether predicates may execute inside tmux."}],"returns":"QueryPlan","typeParams":["T"],"typeParameters":[{"name":"T","doc":"The native Session, Window, or Pane type."}],"returnsDoc":"An immutable, reusable execution plan."}],"doc":{"summary":"Plans an explicit query against the supplied daemon version without I/O."},"source":{"file":"src/LibTmux/Query/QueryExtensions.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryExtensions.Plan","product":"core","slug":"libtmux-query-queryextensions-plan"},{"id":"LibTmux.Query.QueryExtensions.Compile","name":"Compile","kind":"method","modifiers":["static"],"parent":"LibTmux.Query.QueryExtensions","signatures":[{"params":[{"name":"document","type":"QueryDocument","doc":"The translated document."}],"returns":"Func","typeParams":["T"],"typeParameters":[{"name":"T","doc":"The filtered element type."}],"returnsDoc":"The compiled predicate."}],"doc":{"summary":"Compiles a document into an in-memory predicate."},"source":{"file":"src/LibTmux/Query/QueryExtensions.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryExtensions.Compile","product":"core","slug":"libtmux-query-queryextensions-compile"},{"id":"LibTmux.Query.QueryExtensions.Matching","name":"Matching","kind":"method","modifiers":["static","overload"],"parent":"LibTmux.Query.QueryExtensions","signatures":[{"params":[{"name":"source","type":"IEnumerable","doc":"The captured elements."},{"name":"predicate","type":"Expression>","doc":"The predicate to translate and apply."}],"returns":"IReadOnlyList","typeParams":["T"],"typeParameters":[{"name":"T","doc":"The filtered element type."}],"returnsDoc":"The matching elements."},{"params":[{"name":"source","type":"IEnumerable","doc":"The captured elements."},{"name":"document","type":"QueryDocument","doc":"The translated document."}],"returns":"IReadOnlyList","typeParams":["T"],"typeParameters":[{"name":"T","doc":"The filtered element type."}],"returnsDoc":"The matching elements."},{"params":[{"name":"source","type":"IEnumerable","doc":"The captured elements."},{"name":"document","type":"QueryDocument","doc":"The translated document."},{"name":"cancellationToken","type":"CancellationToken","doc":"Stops enumeration and predicate evaluation."}],"returns":"IReadOnlyList","typeParams":["T"],"typeParameters":[{"name":"T","doc":"The filtered element type."}],"returnsDoc":"The matching elements."}],"doc":{"summary":"Filters a snapshot with a declarative predicate.","examples":[{"lang":"console","intro":"Compare LINQ with translated expression and document predicates, preserve cancellation, and capture the hierarchy before filtering its children. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.csproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/api/csharp/Example.csproj","code":"\n \n Exe\n net8.0;net10.0\n 12.0\n enable\n disable\n false\n true\n 10-recommended\n \n \n \n \n \n\n"},{"lang":"csharp","intro":"Save this complete program as Program.cs. It creates a private server; await using disposes its owned scopes after success, cancellation or failure. The complete file contains explicit imports, a top-level async entry point and a cancellation deadline.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc/examples/LibTmux.Examples/Programs/ServerQueries.cs","code":"using System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Threading;\nusing LibTmux;\nusing System.Linq.Expressions;\nusing LibTmux.Query;\n\nif (OperatingSystem.IsWindows())\n{\n throw new PlatformNotSupportedException(\"This example requires tmux on Linux or macOS.\");\n}\n\nusing CancellationTokenSource deadline = new(TimeSpan.FromSeconds(10));\nCancellationToken token = deadline.Token;\nstring binary = Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\") ?? \"tmux\";\nstring socketName = \"csharp-serverqueries-\" + Guid.NewGuid().ToString(\"N\");\nServerConnectionOptions options = new()\n{\n SocketName = socketName,\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary,\n};\n\nawait using OwnedServerScope owned = await Server.CreateOwnedAsync(options, token);\nawait using OwnedSessionScope demo = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\" }, token);\nawait using OwnedSessionScope worker = await owned.Value.CreateOwnedSessionAsync(\n new NewSessionRequest { Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/cat\" }, token);\nServer server = await Server.ConnectAsync(options, token);\nIReadOnlyList sessions = await server.GetSessionsAsync(token);\n\n// LINQ and portable predicates operate on these rows; neither reads tmux.\nSession native = sessions.Where(session => session.Name == \"demo\").Single();\nExpression> predicate = session => session.Name == \"demo\";\nQueryDocument document = QueryExtensions.Translate(predicate);\nSession expressionMatch = sessions.Matching(predicate).Single();\nSession documentMatch = sessions.Matching(document).Single();\nSession cancellableMatch = sessions.Matching(document, token).Single();\nif (new[] { native, expressionMatch, documentMatch, cancellableMatch }\n .Any(session => session.Id != demo.Value.Id))\n{\n throw new InvalidOperationException(\"The native and portable predicates selected different sessions.\");\n}\n\n// A predicate that traverses children requires an explicitly captured hierarchy.\nServer captured = await server.CaptureSnapshotAsync(SnapshotDepth.Panes, token);\nSession parent = captured.Sessions.Matching(session =>\n session.Windows.Any(window => window.Name == \"shell\" && window.Panes.Any(pane => pane.CurrentCommand == \"cat\"))).Single();\nif (parent.Id != demo.Value.Id)\n{\n throw new InvalidOperationException(\"The hierarchy predicate selected an unexpected parent.\");\n}\n\nusing CancellationTokenSource cancelled = new();\ncancelled.Cancel();\ntry\n{\n _ = sessions.Matching(document, cancelled.Token);\n throw new InvalidOperationException(\"Cancelled filtering must throw.\");\n}\ncatch (OperationCanceledException)\n{\n Console.WriteLine(\"Cancelled filtering remains OperationCanceledException.\");\n}\nConsole.WriteLine($\"LINQ, expression and document filters: {native.Name}; captured parent: {parent.Name}\");\n"},{"lang":"console","intro":"Build the exact source package and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux/LibTmux.csproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.csproj --configfile NuGet.config && \\\n dotnet build Example.csproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Cancelled filtering remains OperationCanceledException.\nLINQ, expression and document filters: demo; captured parent: demo\n"}]},"source":{"file":"src/LibTmux/Query/QueryExtensions.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryExtensions.Matching","product":"core","slug":"libtmux-query-queryextensions-matching"},{"id":"LibTmux.Query.QueryFieldCatalog","name":"QueryFieldCatalog","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Discovers the closed query vocabulary and its built-in entity bindings."},"source":{"file":"src/LibTmux/Query/QueryFieldCatalog.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldCatalog","product":"core","slug":"libtmux-query-queryfieldcatalog"},{"id":"LibTmux.Query.QueryFieldCatalog.GetFields","name":"GetFields","kind":"method","modifiers":["static"],"parent":"LibTmux.Query.QueryFieldCatalog","signatures":[{"params":[{"name":"target","type":"QueryTarget","doc":"The target whose vocabulary is requested."}],"returns":"IReadOnlyList","returnsDoc":"Immutable descriptors in stable wire-name order.","raises":[{"type":"ArgumentOutOfRangeException","doc":"The target is undefined."}]}],"doc":{"summary":"Reads the supported fields for one portable query target."},"source":{"file":"src/LibTmux/Query/QueryFieldCatalog.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldCatalog.GetFields","product":"core","slug":"libtmux-query-queryfieldcatalog-getfields"},{"id":"LibTmux.Query.QueryRelationCardinality","name":"QueryRelationCardinality","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names whether a captured query relation has one child or a collection."},"source":{"file":"src/LibTmux/Query/QueryFieldCatalog.cs","line":559,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryRelationCardinality","product":"core","slug":"libtmux-query-queryrelationcardinality"},{"id":"LibTmux.Query.QueryRelationCardinality.One","name":"One","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryRelationCardinality","signatures":[],"doc":{"summary":"A captured to-one relation."},"source":{"file":"src/LibTmux/Query/QueryFieldCatalog.cs","line":562,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryRelationCardinality.One","product":"core","slug":"libtmux-query-queryrelationcardinality-one"},{"id":"LibTmux.Query.QueryRelationCardinality.Many","name":"Many","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryRelationCardinality","signatures":[],"doc":{"summary":"A captured collection relation."},"source":{"file":"src/LibTmux/Query/QueryFieldCatalog.cs","line":565,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryRelationCardinality.Many","product":"core","slug":"libtmux-query-queryrelationcardinality-many"},{"id":"LibTmux.Query.QueryFieldDescriptor","name":"QueryFieldDescriptor","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one field accepted by the current portable query schema.","body":"Property paths describe built-in entity bindings. A schema-only field has no\nproperty path. Uncaptured state still throws; it is not a nullable field value."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor","product":"core","slug":"libtmux-query-queryfielddescriptor"},{"id":"LibTmux.Query.QueryFieldDescriptor.WireName","name":"WireName","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"string","doc":{"summary":"Gets the field name used in query JSON."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.WireName","product":"core","slug":"libtmux-query-queryfielddescriptor-wirename"},{"id":"LibTmux.Query.QueryFieldDescriptor.Target","name":"Target","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"QueryTarget","doc":{"summary":"Gets the target that owns this field."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.Target","product":"core","slug":"libtmux-query-queryfielddescriptor-target"},{"id":"LibTmux.Query.QueryFieldDescriptor.ValueKind","name":"ValueKind","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"QueryValueKind?","doc":{"summary":"Gets the scalar type, or null for a to-one relation."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.ValueKind","product":"core","slug":"libtmux-query-queryfielddescriptor-valuekind"},{"id":"LibTmux.Query.QueryFieldDescriptor.ScalarPropertyPath","name":"ScalarPropertyPath","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"string?","doc":{"summary":"Gets the native scalar property path, or null without a scalar binding.","body":"Collection counts end in .Count."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.ScalarPropertyPath","product":"core","slug":"libtmux-query-queryfielddescriptor-scalarpropertypath"},{"id":"LibTmux.Query.QueryFieldDescriptor.RelationPropertyPath","name":"RelationPropertyPath","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"string?","doc":{"summary":"Gets the native relation property path, or null without a relation binding.","body":"Captured active values end in .Value."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":49,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.RelationPropertyPath","product":"core","slug":"libtmux-query-queryfielddescriptor-relationpropertypath"},{"id":"LibTmux.Query.QueryFieldDescriptor.RelatedTarget","name":"RelatedTarget","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"QueryTarget?","doc":{"summary":"Gets the related target kind, or null for a scalar-only field."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.RelatedTarget","product":"core","slug":"libtmux-query-queryfielddescriptor-relatedtarget"},{"id":"LibTmux.Query.QueryFieldDescriptor.Cardinality","name":"Cardinality","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"QueryRelationCardinality?","doc":{"summary":"Gets the relation cardinality, or null for a scalar-only field."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.Cardinality","product":"core","slug":"libtmux-query-queryfielddescriptor-cardinality"},{"id":"LibTmux.Query.QueryFieldDescriptor.MinimumSnapshotDepth","name":"MinimumSnapshotDepth","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"SnapshotDepth?","doc":{"summary":"Gets the field's minimum hierarchy capture depth, or null outside that hierarchy.","body":"Clients and schema-only fields have no hierarchy capture depth. Nested\npredicates may need a deeper capture; read ."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":62,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.MinimumSnapshotDepth","product":"core","slug":"libtmux-query-queryfielddescriptor-minimumsnapshotdepth"},{"id":"LibTmux.Query.QueryFieldDescriptor.IsNullable","name":"IsNullable","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"bool?","doc":{"summary":"Gets whether the captured native scalar can be null, or null without a scalar binding.","body":"The schema permits null equality comparisons even for nonnullable fields."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":66,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.IsNullable","product":"core","slug":"libtmux-query-queryfielddescriptor-isnullable"},{"id":"LibTmux.Query.QueryFieldDescriptor.Operators","name":"Operators","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryFieldDescriptor","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the accepted wire operation names for this field.","body":"Comparison names populate operator; any and all populate\nquantifier. regex and related identify their node kinds.\nBoolean composition is independent of field operations."},"source":{"file":"src/LibTmux/Query/QueryFieldDescriptor.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryFieldDescriptor.Operators","product":"core","slug":"libtmux-query-queryfielddescriptor-operators"},{"id":"LibTmux.Query.QueryTarget","name":"QueryTarget","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names the tmux object a field or quantifier reads."},"source":{"file":"src/LibTmux/Query/QueryNode.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryTarget","product":"core","slug":"libtmux-query-querytarget"},{"id":"LibTmux.Query.QueryTarget.Session","name":"Session","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryTarget","signatures":[],"doc":{"summary":"A tmux session."},"source":{"file":"src/LibTmux/Query/QueryNode.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryTarget.Session","product":"core","slug":"libtmux-query-querytarget-session"},{"id":"LibTmux.Query.QueryTarget.Window","name":"Window","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryTarget","signatures":[],"doc":{"summary":"A tmux window."},"source":{"file":"src/LibTmux/Query/QueryNode.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryTarget.Window","product":"core","slug":"libtmux-query-querytarget-window"},{"id":"LibTmux.Query.QueryTarget.Pane","name":"Pane","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryTarget","signatures":[],"doc":{"summary":"A tmux pane."},"source":{"file":"src/LibTmux/Query/QueryNode.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryTarget.Pane","product":"core","slug":"libtmux-query-querytarget-pane"},{"id":"LibTmux.Query.QueryTarget.Client","name":"Client","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryTarget","signatures":[],"doc":{"summary":"A tmux client."},"source":{"file":"src/LibTmux/Query/QueryNode.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryTarget.Client","product":"core","slug":"libtmux-query-querytarget-client"},{"id":"LibTmux.Query.QueryPushdown","name":"QueryPushdown","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Controls predicate evaluation inside tmux."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPushdown","product":"core","slug":"libtmux-query-querypushdown"},{"id":"LibTmux.Query.QueryPushdown.Never","name":"Never","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryPushdown","signatures":[],"doc":{"summary":"Evaluate the whole predicate locally."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPushdown.Never","product":"core","slug":"libtmux-query-querypushdown-never"},{"id":"LibTmux.Query.QueryPushdown.Auto","name":"Auto","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryPushdown","signatures":[],"doc":{"summary":"Evaluate an exact leading portion in tmux and the remainder locally."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPushdown.Auto","product":"core","slug":"libtmux-query-querypushdown-auto"},{"id":"LibTmux.Query.QueryPushdown.Require","name":"Require","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryPushdown","signatures":[],"doc":{"summary":"Reject any predicate that cannot execute entirely in tmux."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPushdown.Require","product":"core","slug":"libtmux-query-querypushdown-require"},{"id":"LibTmux.Query.QueryPlan","name":"QueryPlan","kind":"class","modifiers":[],"signatures":[],"typeParams":["T"],"typeParameters":[{"name":"T","doc":"The native entity selected by this plan."}],"doc":{"summary":"An immutable query plan; inspecting it never reads tmux."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan","product":"core","slug":"libtmux-query-queryplan"},{"id":"LibTmux.Query.QueryPlan.Document","name":"Document","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryPlan","signatures":[],"type":"QueryDocument","doc":{"summary":"Gets the complete portable predicate."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan.Document","product":"core","slug":"libtmux-query-queryplan-document"},{"id":"LibTmux.Query.QueryPlan.DaemonVersion","name":"DaemonVersion","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryPlan","signatures":[],"type":"TmuxVersion","doc":{"summary":"Gets the daemon version against which this plan was prepared."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan.DaemonVersion","product":"core","slug":"libtmux-query-queryplan-daemonversion"},{"id":"LibTmux.Query.QueryPlan.Pushdown","name":"Pushdown","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryPlan","signatures":[],"type":"QueryPushdown","doc":{"summary":"Gets the requested evaluation mode."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan.Pushdown","product":"core","slug":"libtmux-query-queryplan-pushdown"},{"id":"LibTmux.Query.QueryPlan.PushedPredicate","name":"PushedPredicate","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryPlan","signatures":[],"type":"QueryDocument?","doc":{"summary":"Gets the predicate evaluated in tmux, or null when evaluation is local."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan.PushedPredicate","product":"core","slug":"libtmux-query-queryplan-pushedpredicate"},{"id":"LibTmux.Query.QueryPlan.ResidualPredicate","name":"ResidualPredicate","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryPlan","signatures":[],"type":"QueryDocument?","doc":{"summary":"Gets the predicate evaluated locally, or null when evaluation is entirely in tmux."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan.ResidualPredicate","product":"core","slug":"libtmux-query-queryplan-residualpredicate"},{"id":"LibTmux.Query.QueryPlan.RequiredFields","name":"RequiredFields","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryPlan","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets every scalar or relation field referenced by this query."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan.RequiredFields","product":"core","slug":"libtmux-query-queryplan-requiredfields"},{"id":"LibTmux.Query.QueryPlan.RequiredSnapshotDepth","name":"RequiredSnapshotDepth","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryPlan","signatures":[],"type":"SnapshotDepth","doc":{"summary":"Gets the complete hierarchy depth required for local evaluation."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan.RequiredSnapshotDepth","product":"core","slug":"libtmux-query-queryplan-requiredsnapshotdepth"},{"id":"LibTmux.Query.QueryPlan.FallbackReasons","name":"FallbackReasons","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryPlan","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets reasons why some or all predicate evaluation remains local."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan.FallbackReasons","product":"core","slug":"libtmux-query-queryplan-fallbackreasons"},{"id":"LibTmux.Query.QueryPlan.ExecuteAsync","name":"ExecuteAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Query.QueryPlan","signatures":[{"params":[{"name":"server","type":"Server","doc":"The endpoint to inspect without initializing it."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops acquisition, evaluation, and publication."}],"returns":"Task>","returnsDoc":"Ordered matches retaining the complete captured graph."}],"doc":{"summary":"Acquires a fresh snapshot and evaluates this plan."},"source":{"file":"src/LibTmux/Query/QueryPlan.cs","line":62,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryPlan.ExecuteAsync","product":"core","slug":"libtmux-query-queryplan-executeasync"},{"id":"LibTmux.Query.QueryResult","name":"QueryResult","kind":"class","modifiers":[],"signatures":[],"typeParams":["T"],"typeParameters":[{"name":"T","doc":"The selected native entity type."}],"doc":{"summary":"Ordered, read-only matches and the complete observation that produced them."},"source":{"file":"src/LibTmux/Query/QueryResult.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryResult","product":"core","slug":"libtmux-query-queryresult"},{"id":"LibTmux.Query.QueryResult.Snapshot","name":"Snapshot","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryResult","signatures":[],"type":"Server","doc":{"summary":"Gets the complete captured graph, including unselected entities."},"source":{"file":"src/LibTmux/Query/QueryResult.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryResult.Snapshot","product":"core","slug":"libtmux-query-queryresult-snapshot"},{"id":"LibTmux.Query.QueryResult.Count","name":"Count","kind":"property","modifiers":[],"parent":"LibTmux.Query.QueryResult","signatures":[],"type":"int","doc":{"summary":""},"source":{"file":"src/LibTmux/Query/QueryResult.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryResult.Count","product":"core","slug":"libtmux-query-queryresult-count"},{"id":"LibTmux.Query.QueryResult.GetEnumerator","name":"GetEnumerator","kind":"method","modifiers":[],"parent":"LibTmux.Query.QueryResult","signatures":[{"params":[],"returns":"IEnumerator"}],"doc":{"summary":""},"source":{"file":"src/LibTmux/Query/QueryResult.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryResult.GetEnumerator","product":"core","slug":"libtmux-query-queryresult-getenumerator"},{"id":"LibTmux.Query.QueryValueKind","name":"QueryValueKind","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names the scalar value types accepted by the portable query vocabulary."},"source":{"file":"src/LibTmux/Query/QueryValueKind.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryValueKind","product":"core","slug":"libtmux-query-queryvaluekind"},{"id":"LibTmux.Query.QueryValueKind.Boolean","name":"Boolean","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryValueKind","signatures":[],"doc":{"summary":"A Boolean value."},"source":{"file":"src/LibTmux/Query/QueryValueKind.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryValueKind.Boolean","product":"core","slug":"libtmux-query-queryvaluekind-boolean"},{"id":"LibTmux.Query.QueryValueKind.Int64","name":"Int64","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryValueKind","signatures":[],"doc":{"summary":"A signed 64-bit integer."},"source":{"file":"src/LibTmux/Query/QueryValueKind.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryValueKind.Int64","product":"core","slug":"libtmux-query-queryvaluekind-int64"},{"id":"LibTmux.Query.QueryValueKind.String","name":"String","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryValueKind","signatures":[],"doc":{"summary":"Ordinal text."},"source":{"file":"src/LibTmux/Query/QueryValueKind.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryValueKind.String","product":"core","slug":"libtmux-query-queryvaluekind-string"},{"id":"LibTmux.Query.QueryValueKind.TypedId","name":"TypedId","kind":"constant","modifiers":[],"parent":"LibTmux.Query.QueryValueKind","signatures":[],"doc":{"summary":"An identifier tagged with its target entity kind."},"source":{"file":"src/LibTmux/Query/QueryValueKind.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.QueryValueKind.TypedId","product":"core","slug":"libtmux-query-queryvaluekind-typedid"},{"id":"LibTmux.Workspace.WorkspaceActionKind","name":"WorkspaceActionKind","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Names one ordered workspace operation."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind"},{"id":"LibTmux.Workspace.WorkspaceActionKind.CreateSession","name":"CreateSession","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Creates a session with a temporary bootstrap window."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.CreateSession","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-createsession"},{"id":"LibTmux.Workspace.WorkspaceActionKind.CaptureBootstrap","name":"CaptureBootstrap","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Reads the sole bootstrap window created with a session."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.CaptureBootstrap","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-capturebootstrap"},{"id":"LibTmux.Workspace.WorkspaceActionKind.RemoveSession","name":"RemoveSession","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Removes the exact session selected during planning."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.RemoveSession","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-removesession"},{"id":"LibTmux.Workspace.WorkspaceActionKind.CreateWindow","name":"CreateWindow","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Creates a window in the selected session."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.CreateWindow","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-createwindow"},{"id":"LibTmux.Workspace.WorkspaceActionKind.CaptureFirstPane","name":"CaptureFirstPane","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Reads the first pane of a newly created window."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.CaptureFirstPane","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-capturefirstpane"},{"id":"LibTmux.Workspace.WorkspaceActionKind.SplitPane","name":"SplitPane","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Creates another pane by splitting a known pane."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.SplitPane","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-splitpane"},{"id":"LibTmux.Workspace.WorkspaceActionKind.SetOption","name":"SetOption","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Sets a session, window or pane option."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.SetOption","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-setoption"},{"id":"LibTmux.Workspace.WorkspaceActionKind.UnlinkWindow","name":"UnlinkWindow","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Removes a captured placement, destroying the window only when no other links remain."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.UnlinkWindow","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-unlinkwindow"},{"id":"LibTmux.Workspace.WorkspaceActionKind.MoveToBaseIndex","name":"MoveToBaseIndex","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Moves the first workspace window to the session's effective base index."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.MoveToBaseIndex","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-movetobaseindex"},{"id":"LibTmux.Workspace.WorkspaceActionKind.SendText","name":"SendText","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Sends literal command text, followed by Enter when requested."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.SendText","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-sendtext"},{"id":"LibTmux.Workspace.WorkspaceActionKind.SelectLayout","name":"SelectLayout","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Applies a layout to the created panes."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.SelectLayout","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-selectlayout"},{"id":"LibTmux.Workspace.WorkspaceActionKind.SelectPane","name":"SelectPane","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Selects a pane by its created identity."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.SelectPane","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-selectpane"},{"id":"LibTmux.Workspace.WorkspaceActionKind.SelectWindow","name":"SelectWindow","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Selects a window by its created placement."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.SelectWindow","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-selectwindow"},{"id":"LibTmux.Workspace.WorkspaceActionKind.OpenReadinessChannel","name":"OpenReadinessChannel","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Opens a unique cooperative readiness channel before pane startup."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.OpenReadinessChannel","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-openreadinesschannel"},{"id":"LibTmux.Workspace.WorkspaceActionKind.WaitForReadiness","name":"WaitForReadiness","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Waits for the pane's startup program to signal its channel."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.WaitForReadiness","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-waitforreadiness"},{"id":"LibTmux.Workspace.WorkspaceActionKind.CloseReadinessChannel","name":"CloseReadinessChannel","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Closes the owned readiness channel."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.CloseReadinessChannel","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-closereadinesschannel"},{"id":"LibTmux.Workspace.WorkspaceActionKind.ReuseSession","name":"ReuseSession","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Returns the exact existing session without mutation."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.ReuseSession","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-reusesession"},{"id":"LibTmux.Workspace.WorkspaceActionKind.RunHostScript","name":"RunHostScript","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Runs an allowed host script from the resolved session directory, or from the document directory when no session directory is declared."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.RunHostScript","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-runhostscript"},{"id":"LibTmux.Workspace.WorkspaceActionKind.CaptureResult","name":"CaptureResult","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Captures the final session and created placements in a server-wide pane snapshot."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":46,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.CaptureResult","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-captureresult"},{"id":"LibTmux.Workspace.WorkspaceActionKind.ArrangePanes","name":"ArrangePanes","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Arranges existing panes to make space for the next split; failure stops application."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.ArrangePanes","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-arrangepanes"},{"id":"LibTmux.Workspace.WorkspaceActionKind.MoveToWindowIndex","name":"MoveToWindowIndex","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionKind","signatures":[],"doc":{"summary":"Moves the first workspace window to its declared session-relative index."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionKind.MoveToWindowIndex","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionkind-movetowindowindex"},{"id":"LibTmux.Workspace.WorkspaceAction","name":"WorkspaceAction","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one immutable operation over plan-local targets.","body":"Targets are symbols resolved to native identities during application. Display and\nenumeration perform no I/O. Derived generic actions expose the actual request."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceAction","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceaction"},{"id":"LibTmux.Workspace.WorkspaceAction.Kind","name":"Kind","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceAction","signatures":[],"type":"WorkspaceActionKind","doc":{"summary":"Gets the operation to perform."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceAction.Kind","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceaction-kind"},{"id":"LibTmux.Workspace.WorkspaceAction.Target","name":"Target","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceAction","signatures":[],"type":"string","doc":{"summary":"Gets the symbolic target created or used by this action."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":71,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceAction.Target","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceaction-target"},{"id":"LibTmux.Workspace.WorkspaceAction.SourceTarget","name":"SourceTarget","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceAction","signatures":[],"type":"string?","doc":{"summary":"Gets the parent or source target, when the action needs one."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceAction.SourceTarget","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceaction-sourcetarget"},{"id":"LibTmux.Workspace.WorkspaceAction.ToString","name":"ToString","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceAction","signatures":[{"params":[],"returns":"string"}],"doc":{"summary":""},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":77,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceAction.ToString","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceaction-tostring"},{"id":"LibTmux.Workspace.WorkspaceAction.Request","name":"Request","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceAction","signatures":[],"type":"TRequest","doc":{"summary":"Gets the request reviewed by the caller before application."},"source":{"file":"src/LibTmux.Workspace/WorkspaceAction.cs","line":88,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceAction.Request","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceaction-request"},{"id":"LibTmux.Workspace.WorkspaceActionState","name":"WorkspaceActionState","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Describes how one reviewed workspace operation ended."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionState","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionstate"},{"id":"LibTmux.Workspace.WorkspaceActionState.NotStarted","name":"NotStarted","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionState","signatures":[],"doc":{"summary":"The operation was not attempted."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionState.NotStarted","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionstate-notstarted"},{"id":"LibTmux.Workspace.WorkspaceActionState.Completed","name":"Completed","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionState","signatures":[],"doc":{"summary":"The operation completed; sent input does not imply program completion."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionState.Completed","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionstate-completed"},{"id":"LibTmux.Workspace.WorkspaceActionState.Rejected","name":"Rejected","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionState","signatures":[],"doc":{"summary":"tmux rejected an optional layout and application continued."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionState.Rejected","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionstate-rejected"},{"id":"LibTmux.Workspace.WorkspaceActionState.Failed","name":"Failed","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionState","signatures":[],"doc":{"summary":"The operation failed with known dispatch information."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionState.Failed","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionstate-failed"},{"id":"LibTmux.Workspace.WorkspaceActionState.Unknown","name":"Unknown","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionState","signatures":[],"doc":{"summary":"The operation failed without establishing its final effect."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionState.Unknown","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionstate-unknown"},{"id":"LibTmux.Workspace.WorkspaceActionOutcome","name":"WorkspaceActionOutcome","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Records one plan action, its dispatch and any materialized result or failure."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionOutcome","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionoutcome"},{"id":"LibTmux.Workspace.WorkspaceActionOutcome.Action","name":"Action","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionOutcome","signatures":[],"type":"WorkspaceAction","doc":{"summary":"Gets the same immutable action instance held by the reviewed plan."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionOutcome.Action","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionoutcome-action"},{"id":"LibTmux.Workspace.WorkspaceActionOutcome.State","name":"State","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionOutcome","signatures":[],"type":"WorkspaceActionState","doc":{"summary":"Gets whether the action completed, failed or was never attempted."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionOutcome.State","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionoutcome-state"},{"id":"LibTmux.Workspace.WorkspaceActionOutcome.Dispatch","name":"Dispatch","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionOutcome","signatures":[],"type":"TmuxDispatchState","doc":{"summary":"Gets whether dispatch was observed; unknown effects must not be retried blindly."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionOutcome.Dispatch","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionoutcome-dispatch"},{"id":"LibTmux.Workspace.WorkspaceActionOutcome.Result","name":"Result","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionOutcome","signatures":[],"type":"object?","doc":{"summary":"Gets a materialized entity, readiness channel name or host result when available."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionOutcome.Result","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionoutcome-result"},{"id":"LibTmux.Workspace.WorkspaceActionOutcome.Failure","name":"Failure","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceActionOutcome","signatures":[],"type":"Exception?","doc":{"summary":"Gets the original action failure, including an optional layout rejection."},"source":{"file":"src/LibTmux.Workspace/WorkspaceActionOutcome.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceActionOutcome.Failure","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceactionoutcome-failure"},{"id":"LibTmux.Workspace.WorkspaceBuildException","name":"WorkspaceBuildException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports a workspace failure and the tmux state created before it."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuildException.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuildException","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuildexception"},{"id":"LibTmux.Workspace.WorkspaceBuildException.WorkspaceBuildException","name":"WorkspaceBuildException","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceBuildException","signatures":[{"params":[{"name":"partialResult","type":"WorkspaceResult?","doc":"The materialized state, or null when none was read."},{"name":"failure","type":"Exception","doc":"The operation that failed."}]}],"doc":{"summary":"Initializes a workspace build exception."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuildException.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuildException.WorkspaceBuildException","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuildexception-workspacebuildexception"},{"id":"LibTmux.Workspace.WorkspaceBuildException.PartialResult","name":"PartialResult","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceBuildException","signatures":[],"type":"WorkspaceResult?","doc":{"summary":"Gets the session and windows materialized before failure, when known."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuildException.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuildException.PartialResult","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuildexception-partialresult"},{"id":"LibTmux.Workspace.WorkspaceBuildException.Journal","name":"Journal","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceBuildException","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets all planned action outcomes, even when no session was materialized."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuildException.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuildException.Journal","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuildexception-journal"},{"id":"LibTmux.Workspace.WorkspaceBuildException.CompensationJournal","name":"CompensationJournal","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceBuildException","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets attempted cleanup outcomes and their failures without replacing the original cause."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuildException.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuildException.CompensationJournal","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuildexception-compensationjournal"},{"id":"LibTmux.Workspace.WorkspaceBuilder","name":"WorkspaceBuilder","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Plans and applies tmux sessions from tmuxp workspace files.","body":"The tmux-workspace CLI uses a separate builder with a wider document language."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuilder.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuilder","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuilder"},{"id":"LibTmux.Workspace.WorkspaceBuilder.ApplyAsync","name":"ApplyAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Workspace.WorkspaceBuilder","signatures":[{"params":[{"name":"plan","type":"WorkspacePlan","doc":"The immutable plan for this builder's resolved endpoint."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Stops further application and cancels the current operation."}],"returns":"Task","returnsDoc":"The materialized session, created windows and complete action journal.","raises":[{"type":"ArgumentException","doc":"The plan selects another endpoint."},{"type":"WorkspaceOperationCanceledException","doc":"The caller canceled application; the exception carries state and action journals."},{"type":"WorkspaceBuildException","doc":"Preconditions, application or owned cleanup failed."}]}],"doc":{"summary":"Applies the reviewed actions and records their individual outcomes.","body":"Native defaults and hooks remain runtime dependencies. Input acknowledgement is\nnot program completion. Cleanup uses only returned native identities; unknown\ncreations and irreversible shell effects remain visible in the journal."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuilder.Apply.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuilder.ApplyAsync","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuilder-applyasync"},{"id":"LibTmux.Workspace.WorkspaceBuilder.Validate","name":"Validate","kind":"method","modifiers":["static"],"parent":"LibTmux.Workspace.WorkspaceBuilder","signatures":[{"params":[{"name":"workspace","type":"WorkspaceFile","doc":"The immutable declaration to check."},{"name":"options","type":"WorkspacePlanOptions?","default":"null","doc":"The policies that will be used for planning."}],"returns":"void","raises":[{"type":"WorkspaceFormatException","doc":"The declaration cannot be applied under the supplied policies."},{"type":"ArgumentException","doc":"A declaration argument or policy value is invalid."}]}],"doc":{"summary":"Checks declaration and policy constraints without reading tmux or executing scripts.","body":"Reuse defers host-script admission until planning determines whether creation is needed.\nLayout syntax, checksums and minimum cell counts are checked locally; version-specific\nlayout names are checked during planning. Endpoint identity, conflicts, paths on disk,\nshell syntax and tmux option support are not checked by local validation."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuilder.Plan.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuilder.Validate","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuilder-validate"},{"id":"LibTmux.Workspace.WorkspaceBuilder.PlanAsync","name":"PlanAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Workspace.WorkspaceBuilder","signatures":[{"params":[{"name":"workspace","type":"WorkspaceFile","doc":"The immutable declaration, resolved explicitly when file-relative paths are needed."},{"name":"options","type":"WorkspacePlanOptions?","default":"null","doc":"The conflict, readiness and cleanup policies."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels read-only endpoint observation."}],"returns":"Task","returnsDoc":"The actions and observed identity preconditions; no workspace actions are executed.","raises":[{"type":"WorkspaceFormatException","doc":"The declaration cannot be applied."},{"type":"TmuxSessionExistsException","doc":"The default policy refuses an existing session."},{"type":"ArgumentException","doc":"The endpoint has an opaque initializer or the options are invalid."}]}],"doc":{"summary":"Observes the endpoint and constructs an immutable workspace action plan."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuilder.Plan.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuilder.PlanAsync","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuilder-planasync"},{"id":"LibTmux.Workspace.WorkspaceBuilder.WorkspaceBuilder","name":"WorkspaceBuilder","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceBuilder","signatures":[{"params":[{"name":"server","type":"Server","doc":"The endpoint inspected by plans and used during application."}]}],"doc":{"summary":"Initializes a builder against one server."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuilder.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuilder.WorkspaceBuilder","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuilder-workspacebuilder"},{"id":"LibTmux.Workspace.WorkspaceBuilder.BuildAsync","name":"BuildAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Workspace.WorkspaceBuilder","signatures":[{"params":[{"name":"workspace","type":"WorkspaceFile","doc":"The workspace to build."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels planning or application."}],"returns":"Task","returnsDoc":"The materialized result and complete action journal.","raises":[{"type":"WorkspaceFormatException","doc":"The workspace declaration is invalid."},{"type":"TmuxSessionExistsException","doc":"The requested session already exists."},{"type":"WorkspaceOperationCanceledException","doc":"The caller canceled application; the exception carries state and action journals."},{"type":"WorkspaceBuildException","doc":"Application failed; the exception carries the action journal."}]}],"doc":{"summary":"Plans and applies a workspace with the default policies.","body":"Uses the same plan and application engine as explicit PlanAsync and ApplyAsync.\nInput is sent immediately, without claiming shell readiness or command completion.\nUse an explicit plan to review actions or select readiness, conflict, host-script\nand compensation policies."},"source":{"file":"src/LibTmux.Workspace/WorkspaceBuilder.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceBuilder.BuildAsync","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacebuilder-buildasync"},{"id":"LibTmux.Workspace.WorkspaceCommand","name":"WorkspaceCommand","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one literal pane command and an optional Enter override."},"source":{"file":"src/LibTmux.Workspace/WorkspaceCommand.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceCommand","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacecommand"},{"id":"LibTmux.Workspace.WorkspaceCommand.WorkspaceCommand","name":"WorkspaceCommand","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceCommand","signatures":[{"params":[{"name":"text","type":"string","doc":"The literal text to send to the pane."},{"name":"enter","type":"bool?","default":"null","doc":"Whether this and later commands press Enter, or null to inherit."}]}],"doc":{"summary":"Initializes a command, inheriting the current Enter state by default."},"source":{"file":"src/LibTmux.Workspace/WorkspaceCommand.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceCommand.WorkspaceCommand","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacecommand-workspacecommand"},{"id":"LibTmux.Workspace.WorkspaceCommand.Text","name":"Text","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceCommand","signatures":[],"type":"string","doc":{"summary":"Gets the literal command text."},"source":{"file":"src/LibTmux.Workspace/WorkspaceCommand.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceCommand.Text","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacecommand-text"},{"id":"LibTmux.Workspace.WorkspaceCommand.Enter","name":"Enter","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceCommand","signatures":[],"type":"bool?","doc":{"summary":"Gets this command's Enter override, or null to inherit."},"source":{"file":"src/LibTmux.Workspace/WorkspaceCommand.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceCommand.Enter","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacecommand-enter"},{"id":"LibTmux.Workspace.WorkspacePane","name":"WorkspacePane","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one pane in a supported tmuxp workspace."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":8,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane"},{"id":"LibTmux.Workspace.WorkspacePane.WorkspacePane","name":"WorkspacePane","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[{"params":[{"name":"shellCommands","type":"IReadOnlyList?","default":"null","doc":"The commands to run, in order."},{"name":"startDirectory","type":"string?","default":"null","doc":"The directory the pane starts in."},{"name":"focus","type":"bool","default":"false","doc":"Whether the pane is left selected."},{"name":"options","type":"IReadOnlyDictionary?","default":"null","doc":"The pane options to set."},{"name":"commands","type":"IReadOnlyList?","default":"null","doc":"Typed commands; use instead of to set Enter overrides."},{"name":"enter","type":"bool?","default":"null","doc":"The pane's initial Enter state, or null for the default."}]}],"doc":{"summary":"Initializes a pane description."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.WorkspacePane","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-workspacepane"},{"id":"LibTmux.Workspace.WorkspacePane.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the environment entries contributed by this declaration."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.Environment","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-environment"},{"id":"LibTmux.Workspace.WorkspacePane.ShellCommandsBefore","name":"ShellCommandsBefore","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the commands prepended at this declaration level."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.ShellCommandsBefore","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-shellcommandsbefore"},{"id":"LibTmux.Workspace.WorkspacePane.BeforeCommands","name":"BeforeCommands","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the typed commands prepended at this declaration level."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":67,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.BeforeCommands","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-beforecommands"},{"id":"LibTmux.Workspace.WorkspacePane.WithDefaults","name":"WithDefaults","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[{"params":[{"name":"environment","type":"IReadOnlyDictionary?","default":"null","doc":"The local entries to copy, or null to preserve the existing entries."},{"name":"shellCommandsBefore","type":"IReadOnlyList?","default":"null","doc":"The local commands to copy, or null to preserve the existing commands."},{"name":"beforeCommands","type":"IReadOnlyList?","default":"null","doc":"Typed local commands; use instead of ."}],"returns":"WorkspacePane","returnsDoc":"A new declaration; empty collections clear the corresponding defaults.","raises":[{"type":"ArgumentException","doc":"An environment name is empty or contains '=' or NUL, or a value contains NUL."}]}],"doc":{"summary":"Returns a declaration with replacement environment and pre-command defaults."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.WithDefaults","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-withdefaults"},{"id":"LibTmux.Workspace.WorkspacePane.ShellCommands","name":"ShellCommands","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the commands to run, in order."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":82,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.ShellCommands","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-shellcommands"},{"id":"LibTmux.Workspace.WorkspacePane.Commands","name":"Commands","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the typed pane commands in declaration order."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":85,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.Commands","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-commands"},{"id":"LibTmux.Workspace.WorkspacePane.Enter","name":"Enter","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[],"type":"bool?","doc":{"summary":"Gets the pane's initial Enter state, or null for the default."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":88,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.Enter","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-enter"},{"id":"LibTmux.Workspace.WorkspacePane.StartDirectory","name":"StartDirectory","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[],"type":"string?","doc":{"summary":"Gets the directory the pane starts in."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":91,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.StartDirectory","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-startdirectory"},{"id":"LibTmux.Workspace.WorkspacePane.Focus","name":"Focus","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[],"type":"bool","doc":{"summary":"Gets whether the pane is left selected."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":94,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.Focus","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-focus"},{"id":"LibTmux.Workspace.WorkspacePane.Options","name":"Options","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePane","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the pane options to set."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":97,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePane.Options","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacepane-options"},{"id":"LibTmux.Workspace.WorkspaceWindow","name":"WorkspaceWindow","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one window in a supported tmuxp workspace."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":101,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow"},{"id":"LibTmux.Workspace.WorkspaceWindow.WorkspaceWindow","name":"WorkspaceWindow","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[{"params":[{"name":"windowName","type":"string?","default":"null","doc":"The window name."},{"name":"startDirectory","type":"string?","default":"null","doc":"The directory its panes start in."},{"name":"layout","type":"string?","default":"null","doc":"The layout to apply after creating its panes."},{"name":"focus","type":"bool","default":"false","doc":"Whether the window is left selected."},{"name":"options","type":"IReadOnlyDictionary?","default":"null","doc":"The window options to set before pane commands and splits."},{"name":"panes","type":"IReadOnlyList?","default":"null","doc":"The panes to create, in order."},{"name":"windowIndex","type":"int?","default":"null","doc":"The session-relative window index, or null for the next free index."},{"name":"optionsAfter","type":"IReadOnlyDictionary?","default":"null","doc":"The window options to set after pane commands and the final layout."}]}],"doc":{"summary":"Initializes a window description."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":120,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.WorkspaceWindow","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-workspacewindow"},{"id":"LibTmux.Workspace.WorkspaceWindow.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the environment entries contributed by this declaration."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":161,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.Environment","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-environment"},{"id":"LibTmux.Workspace.WorkspaceWindow.ShellCommandsBefore","name":"ShellCommandsBefore","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the commands prepended at this declaration level."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":164,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.ShellCommandsBefore","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-shellcommandsbefore"},{"id":"LibTmux.Workspace.WorkspaceWindow.BeforeCommands","name":"BeforeCommands","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the typed commands prepended at this declaration level."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":167,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.BeforeCommands","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-beforecommands"},{"id":"LibTmux.Workspace.WorkspaceWindow.WithDefaults","name":"WithDefaults","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[{"params":[{"name":"environment","type":"IReadOnlyDictionary?","default":"null","doc":"The local entries to copy, or null to preserve the existing entries."},{"name":"shellCommandsBefore","type":"IReadOnlyList?","default":"null","doc":"The local commands to copy, or null to preserve the existing commands."},{"name":"beforeCommands","type":"IReadOnlyList?","default":"null","doc":"Typed local commands; use instead of ."}],"returns":"WorkspaceWindow","returnsDoc":"A new declaration; empty collections clear the corresponding defaults.","raises":[{"type":"ArgumentException","doc":"An environment name is empty or contains '=' or NUL, or a value contains NUL."}]}],"doc":{"summary":"Returns a declaration with replacement environment and pre-command defaults."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":175,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.WithDefaults","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-withdefaults"},{"id":"LibTmux.Workspace.WorkspaceWindow.WindowName","name":"WindowName","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"string?","doc":{"summary":"Gets the window name."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":182,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.WindowName","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-windowname"},{"id":"LibTmux.Workspace.WorkspaceWindow.WindowIndex","name":"WindowIndex","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"int?","doc":{"summary":"Gets the requested session-relative window index, or null for the next free index."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":185,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.WindowIndex","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-windowindex"},{"id":"LibTmux.Workspace.WorkspaceWindow.StartDirectory","name":"StartDirectory","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"string?","doc":{"summary":"Gets the directory its panes start in."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":188,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.StartDirectory","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-startdirectory"},{"id":"LibTmux.Workspace.WorkspaceWindow.Layout","name":"Layout","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"string?","doc":{"summary":"Gets the layout to apply after creating its panes."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":191,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.Layout","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-layout"},{"id":"LibTmux.Workspace.WorkspaceWindow.Focus","name":"Focus","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"bool","doc":{"summary":"Gets whether the window is left selected."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":194,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.Focus","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-focus"},{"id":"LibTmux.Workspace.WorkspaceWindow.Options","name":"Options","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the window options to set before pane commands and splits."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":197,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.Options","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-options"},{"id":"LibTmux.Workspace.WorkspaceWindow.OptionsAfter","name":"OptionsAfter","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the window options to set after pane commands and the final layout."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":200,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.OptionsAfter","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-optionsafter"},{"id":"LibTmux.Workspace.WorkspaceWindow.Panes","name":"Panes","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceWindow","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the panes to create, in order."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":203,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceWindow.Panes","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacewindow-panes"},{"id":"LibTmux.Workspace.WorkspaceFile","name":"WorkspaceFile","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes the supported subset of one tmuxp workspace.","body":"Parsing rejects keys that require tmuxp's Python hooks or plugins. It does\nnot execute or silently discard configuration outside this model."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":211,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile"},{"id":"LibTmux.Workspace.WorkspaceFile.WorkspaceFile","name":"WorkspaceFile","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[{"params":[{"name":"sessionName","type":"string?","default":"null","doc":"The session name."},{"name":"startDirectory","type":"string?","default":"null","doc":"The directory its windows start in."},{"name":"options","type":"IReadOnlyDictionary?","default":"null","doc":"The session options to set."},{"name":"windows","type":"IReadOnlyList?","default":"null","doc":"The windows to create, in order."},{"name":"beforeScript","type":"string?","default":"null","doc":"The host command retained for explicitly enabled execution."},{"name":"globalOptions","type":"IReadOnlyDictionary?","default":"null","doc":"The global session options to set before creating the declared windows."}],"raises":[{"type":"ArgumentException","doc":"The host command is blank or contains NUL."}]}],"doc":{"summary":"Initializes a workspace description."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":229,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.WorkspaceFile","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-workspacefile"},{"id":"LibTmux.Workspace.WorkspaceFile.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the environment entries contributed by this declaration."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":273,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.Environment","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-environment"},{"id":"LibTmux.Workspace.WorkspaceFile.ShellCommandsBefore","name":"ShellCommandsBefore","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the commands prepended at this declaration level."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":276,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.ShellCommandsBefore","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-shellcommandsbefore"},{"id":"LibTmux.Workspace.WorkspaceFile.BeforeCommands","name":"BeforeCommands","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the typed commands prepended at this declaration level."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":279,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.BeforeCommands","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-beforecommands"},{"id":"LibTmux.Workspace.WorkspaceFile.WithDefaults","name":"WithDefaults","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[{"params":[{"name":"environment","type":"IReadOnlyDictionary?","default":"null","doc":"The local entries to copy, or null to preserve the existing entries."},{"name":"shellCommandsBefore","type":"IReadOnlyList?","default":"null","doc":"The local commands to copy, or null to preserve the existing commands."},{"name":"beforeCommands","type":"IReadOnlyList?","default":"null","doc":"Typed local commands; use instead of ."}],"returns":"WorkspaceFile","returnsDoc":"A new declaration; empty collections clear the corresponding defaults.","raises":[{"type":"ArgumentException","doc":"An environment name is empty or contains '=' or NUL, or a value contains NUL."}]}],"doc":{"summary":"Returns a declaration with replacement environment and pre-command defaults."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":287,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.WithDefaults","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-withdefaults"},{"id":"LibTmux.Workspace.WorkspaceFile.SessionName","name":"SessionName","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"string?","doc":{"summary":"Gets the session name."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":294,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.SessionName","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-sessionname"},{"id":"LibTmux.Workspace.WorkspaceFile.StartDirectory","name":"StartDirectory","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"string?","doc":{"summary":"Gets the directory its windows start in."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":297,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.StartDirectory","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-startdirectory"},{"id":"LibTmux.Workspace.WorkspaceFile.Options","name":"Options","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the session options to set."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":300,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.Options","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-options"},{"id":"LibTmux.Workspace.WorkspaceFile.GlobalOptions","name":"GlobalOptions","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the global session options to set before creating the declared windows.","body":"These can affect other sessions that inherit them and are not reversed by compensation."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":304,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.GlobalOptions","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-globaloptions"},{"id":"LibTmux.Workspace.WorkspaceFile.Windows","name":"Windows","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the windows to create, in order."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":307,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.Windows","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-windows"},{"id":"LibTmux.Workspace.WorkspaceFile.BeforeScript","name":"BeforeScript","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"string?","doc":{"summary":"Gets the host command retained without expansion or execution by parsing or resolution."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":310,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.BeforeScript","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-beforescript"},{"id":"LibTmux.Workspace.WorkspaceFile.DocumentDirectory","name":"DocumentDirectory","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[],"type":"string?","doc":{"summary":"Gets the absolute document directory supplied to resolution, or null before resolution."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":313,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.DocumentDirectory","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-documentdirectory"},{"id":"LibTmux.Workspace.WorkspaceFile.Resolve","name":"Resolve","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[{"params":[{"name":"baseDirectory","type":"string","doc":"The absolute directory containing the declaration."},{"name":"variables","type":"IReadOnlyDictionary?","default":"null","doc":"The only variables available to directory and option-value expansion."}],"returns":"WorkspaceFile","returnsDoc":"A new declaration with absolute inherited directories and its document directory.","raises":[{"type":"ArgumentException","doc":"The document base is not absolute."},{"type":"WorkspaceFormatException","doc":"A directory or expansion is invalid."}]}],"doc":{"summary":"Resolves inherited pane directories against an explicit document base.","body":"Resolves relative paths against the parent declaration's directory. Expansion\naccepts $NAME, ${NAME}, and a leading ~ using the supplied HOME variable;\n$$ produces a literal dollar sign. Session, window and pane option values\nexpand supplied variables; unknown variables remain literal. Resolution reads\nneither the process environment nor the filesystem. The builder treats resolved\ndirectories as literal paths, including tmux format characters. Commands, the\nhost script, names and environment values remain literal. Failures retain the\noriginal YAML or JSON value's line and column when the declaration was parsed."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":359,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.Resolve","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-resolve"},{"id":"LibTmux.Workspace.WorkspaceFile.FromSnapshot","name":"FromSnapshot","kind":"method","modifiers":["static"],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[{"params":[{"name":"session","type":"Session","doc":"The session with captured windows, panes, and active pane relations."}],"returns":"WorkspaceFile","returnsDoc":"An unresolved declaration without a document directory.","raises":[{"type":"ArgumentNullException","doc":"The session is null."},{"type":"IncompleteSnapshotException","doc":"A required field or relation was not captured."},{"type":"TmuxProtocolException","doc":"A captured window active flag is malformed."}]}],"doc":{"summary":"Creates a workspace declaration from a captured session without reaching tmux.","body":"Preserves captured window placements and pane order, names, layouts, and focus.\nRepeated links become separate declared windows. Captured pane directories\nescape literal dollars for a later explicit ; captured\nnull paths remain unspecified. Commands, environment, options, terminal text,\nentity identifiers, pane indices, and shared-link identity are not\nreconstructed.\nForeground command names do not establish shell intent. Restoring a native\ncustom layout can change which pane occupies a position; see\n."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":381,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.FromSnapshot","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-fromsnapshot"},{"id":"LibTmux.Workspace.WorkspaceFile.Parse","name":"Parse","kind":"method","modifiers":["static"],"parent":"LibTmux.Workspace.WorkspaceFile","signatures":[{"params":[{"name":"yaml","type":"string","doc":"The file contents."}],"returns":"WorkspaceFile","returnsDoc":"The parsed workspace.","raises":[{"type":"WorkspaceFormatException","doc":"The input is too large, malformed, contains more than one document, or\nuses a key or value shape outside the supported subset."}]}],"doc":{"summary":"Reads a workspace from tmuxp YAML or JSON."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":415,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFile.Parse","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacefile-parse"},{"id":"LibTmux.Workspace.WorkspaceFormatException","name":"WorkspaceFormatException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Thrown when a workspace file cannot be read."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":423,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFormatException","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceformatexception"},{"id":"LibTmux.Workspace.WorkspaceFormatException.WorkspaceFormatException","name":"WorkspaceFormatException","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceFormatException","signatures":[{"params":[{"name":"message","type":"string","doc":"The invalid part of the workspace."},{"name":"innerException","type":"Exception?","default":"null","doc":"The underlying YAML failure, when present."}]}],"doc":{"summary":"Initializes the exception."},"source":{"file":"src/LibTmux.Workspace/WorkspaceFile.cs","line":428,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceFormatException.WorkspaceFormatException","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceformatexception-workspaceformatexception"},{"id":"LibTmux.Workspace.WorkspaceHostCommand","name":"WorkspaceHostCommand","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes one explicitly enabled host shell command.","body":"Execution uses /bin/sh -c with the supplied directory and environment. Shell\neffects cannot be rolled back. Descendants that detach or outlive their shell\nare outside containment."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostCommand","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostcommand"},{"id":"LibTmux.Workspace.WorkspaceHostCommand.Script","name":"Script","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostCommand","signatures":[],"type":"string","doc":{"summary":"Gets the literal command passed to /bin/sh -c."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostCommand.Script","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostcommand-script"},{"id":"LibTmux.Workspace.WorkspaceHostCommand.WorkingDirectory","name":"WorkingDirectory","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostCommand","signatures":[],"type":"string","doc":{"summary":"Gets the absolute directory in which the command runs."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostCommand.WorkingDirectory","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostcommand-workingdirectory"},{"id":"LibTmux.Workspace.WorkspaceHostCommand.MaxOutputBytes","name":"MaxOutputBytes","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostCommand","signatures":[],"type":"int","doc":{"summary":"Gets the combined stdout and stderr capture limit in bytes."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostCommand.MaxOutputBytes","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostcommand-maxoutputbytes"},{"id":"LibTmux.Workspace.WorkspaceHostCommand.Timeout","name":"Timeout","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostCommand","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the deadline for process exit and output completion."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":53,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostCommand.Timeout","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostcommand-timeout"},{"id":"LibTmux.Workspace.WorkspaceHostCommand.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostCommand","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the explicit environment; execution does not inherit process variables."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostCommand.Environment","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostcommand-environment"},{"id":"LibTmux.Workspace.WorkspaceHostResult","name":"WorkspaceHostResult","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes captured output and the observed exit of a host command."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":60,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostResult","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostresult"},{"id":"LibTmux.Workspace.WorkspaceHostResult.Started","name":"Started","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether the shell started and may have left external effects."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":72,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostResult.Started","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostresult-started"},{"id":"LibTmux.Workspace.WorkspaceHostResult.ExitCode","name":"ExitCode","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostResult","signatures":[],"type":"int?","doc":{"summary":"Gets the observed shell exit code, or null when exit was not observed."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":75,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostResult.ExitCode","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostresult-exitcode"},{"id":"LibTmux.Workspace.WorkspaceHostResult.StandardOutput","name":"StandardOutput","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostResult","signatures":[],"type":"string","doc":{"summary":"Gets the retained UTF-8 stdout prefix."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":78,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostResult.StandardOutput","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostresult-standardoutput"},{"id":"LibTmux.Workspace.WorkspaceHostResult.StandardError","name":"StandardError","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostResult","signatures":[],"type":"string","doc":{"summary":"Gets the retained UTF-8 stderr prefix."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":81,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostResult.StandardError","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostresult-standarderror"},{"id":"LibTmux.Workspace.WorkspaceHostResult.DroppedOutputBytes","name":"DroppedOutputBytes","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceHostResult","signatures":[],"type":"long","doc":{"summary":"Gets bytes read but omitted from capture; unread output after interruption is unknown."},"source":{"file":"src/LibTmux.Workspace/WorkspaceHostCommand.cs","line":84,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceHostResult.DroppedOutputBytes","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacehostresult-droppedoutputbytes"},{"id":"LibTmux.Workspace.WorkspaceOperationCanceledException","name":"WorkspaceOperationCanceledException","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Reports workspace cancellation and the tmux state materialized before it."},"source":{"file":"src/LibTmux.Workspace/WorkspaceOperationCanceledException.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceOperationCanceledException","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceoperationcanceledexception"},{"id":"LibTmux.Workspace.WorkspaceOperationCanceledException.WorkspaceOperationCanceledException","name":"WorkspaceOperationCanceledException","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceOperationCanceledException","signatures":[{"params":[{"name":"partialResult","type":"WorkspaceResult?","doc":"The materialized state, or null when none was read."},{"name":"failure","type":"OperationCanceledException","doc":"The original cancellation."},{"name":"cancellationToken","type":"CancellationToken","doc":"The caller token that canceled application."}]}],"doc":{"summary":"Initializes a workspace cancellation exception."},"source":{"file":"src/LibTmux.Workspace/WorkspaceOperationCanceledException.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceOperationCanceledException.WorkspaceOperationCanceledException","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceoperationcanceledexception-workspaceoperationcanceledexception"},{"id":"LibTmux.Workspace.WorkspaceOperationCanceledException.PartialResult","name":"PartialResult","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceOperationCanceledException","signatures":[],"type":"WorkspaceResult?","doc":{"summary":"Gets the session and windows materialized before cancellation, when known."},"source":{"file":"src/LibTmux.Workspace/WorkspaceOperationCanceledException.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceOperationCanceledException.PartialResult","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceoperationcanceledexception-partialresult"},{"id":"LibTmux.Workspace.WorkspaceOperationCanceledException.Journal","name":"Journal","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceOperationCanceledException","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets all planned action outcomes, even when no session was materialized."},"source":{"file":"src/LibTmux.Workspace/WorkspaceOperationCanceledException.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceOperationCanceledException.Journal","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceoperationcanceledexception-journal"},{"id":"LibTmux.Workspace.WorkspaceOperationCanceledException.CompensationJournal","name":"CompensationJournal","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceOperationCanceledException","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets attempted cleanup outcomes and their failures without replacing the original cancellation."},"source":{"file":"src/LibTmux.Workspace/WorkspaceOperationCanceledException.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceOperationCanceledException.CompensationJournal","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceoperationcanceledexception-compensationjournal"},{"id":"LibTmux.Workspace.WorkspaceOperationCanceledException.Dispatch","name":"Dispatch","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceOperationCanceledException","signatures":[],"type":"TmuxDispatchState","doc":{"summary":"Gets the dispatch evidence from application."},"source":{"file":"src/LibTmux.Workspace/WorkspaceOperationCanceledException.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceOperationCanceledException.Dispatch","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceoperationcanceledexception-dispatch"},{"id":"LibTmux.Workspace.WorkspaceServerStartup","name":"WorkspaceServerStartup","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Controls application when planning observed no daemon."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":4,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceServerStartup","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceserverstartup"},{"id":"LibTmux.Workspace.WorkspaceServerStartup.CreateOrJoin","name":"CreateOrJoin","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceServerStartup","signatures":[],"doc":{"summary":"Allows creation to start a daemon or join one that appeared; a conflicting session is never reused."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":7,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceServerStartup.CreateOrJoin","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceserverstartup-createorjoin"},{"id":"LibTmux.Workspace.WorkspaceServerStartup.RequireExisting","name":"RequireExisting","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceServerStartup","signatures":[],"doc":{"summary":"Requires a daemon observed during planning and preserves its generation."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceServerStartup.RequireExisting","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceserverstartup-requireexisting"},{"id":"LibTmux.Workspace.WorkspaceExistingSession","name":"WorkspaceExistingSession","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Controls what planning does when the requested session already exists."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceExistingSession","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceexistingsession"},{"id":"LibTmux.Workspace.WorkspaceExistingSession.Error","name":"Error","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceExistingSession","signatures":[],"doc":{"summary":"Refuses the conflicting declaration before application."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceExistingSession.Error","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceexistingsession-error"},{"id":"LibTmux.Workspace.WorkspaceExistingSession.Reuse","name":"Reuse","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceExistingSession","signatures":[],"doc":{"summary":"Returns the inspected session without changing it."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceExistingSession.Reuse","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceexistingsession-reuse"},{"id":"LibTmux.Workspace.WorkspaceExistingSession.Append","name":"Append","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceExistingSession","signatures":[],"doc":{"summary":"Adds the declared windows without changing existing children or local session options."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceExistingSession.Append","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceexistingsession-append"},{"id":"LibTmux.Workspace.WorkspaceExistingSession.Replace","name":"Replace","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceExistingSession","signatures":[],"doc":{"summary":"Replaces only the inspected session, preserving the daemon with a temporary session."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceExistingSession.Replace","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceexistingsession-replace"},{"id":"LibTmux.Workspace.WorkspaceReadiness","name":"WorkspaceReadiness","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Controls whether pane startup must acknowledge readiness."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceReadiness","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacereadiness"},{"id":"LibTmux.Workspace.WorkspaceReadiness.Immediate","name":"Immediate","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceReadiness","signatures":[],"doc":{"summary":"Sends input immediately without claiming shell readiness or command completion."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceReadiness.Immediate","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacereadiness-immediate"},{"id":"LibTmux.Workspace.WorkspaceReadiness.Cooperative","name":"Cooperative","kind":"constant","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceReadiness","signatures":[],"doc":{"summary":"Requires startup to signal the channel named by LIBTMUX_WORKSPACE_READY."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceReadiness.Cooperative","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspacereadiness-cooperative"},{"id":"LibTmux.Workspace.WorkspacePlanOptions","name":"WorkspacePlanOptions","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Provides explicit policies copied into a workspace plan."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.WorkspacePlanOptions","name":"WorkspacePlanOptions","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[{"params":[]}],"doc":{"summary":"Initializes the default fail-on-conflict, immediate-input policy."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.WorkspacePlanOptions","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-workspaceplanoptions"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.ExistingSession","name":"ExistingSession","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[],"type":"WorkspaceExistingSession","doc":{"summary":"Gets the policy for an existing session."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.ExistingSession","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-existingsession"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.ServerStartup","name":"ServerStartup","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[],"type":"WorkspaceServerStartup","doc":{"summary":"Gets whether an initially absent endpoint may start or join a daemon.","body":"CreateOrJoin does not claim exclusive startup or ownership of the daemon."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.ServerStartup","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-serverstartup"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.Readiness","name":"Readiness","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[],"type":"WorkspaceReadiness","doc":{"summary":"Gets the pane startup contract."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":48,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.Readiness","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-readiness"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.ReadinessTimeout","name":"ReadinessTimeout","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the positive time allowed for each cooperative signal."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":51,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.ReadinessTimeout","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-readinesstimeout"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.CompensateOnFailure","name":"CompensateOnFailure","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[],"type":"bool","doc":{"summary":"Gets whether failure removes journal-proven created resources.","body":"Shell commands, host effects and global option changes are never reversed."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.CompensateOnFailure","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-compensateonfailure"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.AllowHostScripts","name":"AllowHostScripts","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[],"type":"bool","doc":{"summary":"Gets whether a declared before_script may run on the host."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.AllowHostScripts","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-allowhostscripts"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.HostScriptTimeout","name":"HostScriptTimeout","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the maximum duration of each host script, including output collection."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.HostScriptTimeout","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-hostscripttimeout"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.MaxHostOutputBytes","name":"MaxHostOutputBytes","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[],"type":"int","doc":{"summary":"Gets the combined stdout and stderr capture limit in UTF-8 bytes."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.MaxHostOutputBytes","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-maxhostoutputbytes"},{"id":"LibTmux.Workspace.WorkspacePlanOptions.CleanupTimeout","name":"CleanupTimeout","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlanOptions","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the total budget for cleanup after application fails."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":67,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlanOptions.CleanupTimeout","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplanoptions-cleanuptimeout"},{"id":"LibTmux.Workspace.WorkspacePlan","name":"WorkspacePlan","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Contains the reviewed actions and observed preconditions for one workspace application.","body":"Planning observes an interval, not a transaction. Native defaults, hooks and\nconfiguration remain tmux dependencies. Application resolves symbolic created\nidentities and uses each action in order; enumeration performs no I/O."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":96,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan"},{"id":"LibTmux.Workspace.WorkspacePlan.Endpoint","name":"Endpoint","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"Server","doc":{"summary":"Gets the resolved endpoint selected by the caller."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":119,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.Endpoint","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-endpoint"},{"id":"LibTmux.Workspace.WorkspacePlan.SessionName","name":"SessionName","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"string","doc":{"summary":"Gets the literal session name used for creation and conflict checks."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":121,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.SessionName","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-sessionname"},{"id":"LibTmux.Workspace.WorkspacePlan.ObservedServer","name":"ObservedServer","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"Server?","doc":{"summary":"Gets the identity-only observed server, or null when the endpoint was absent."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":123,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.ObservedServer","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-observedserver"},{"id":"LibTmux.Workspace.WorkspacePlan.ExistingSession","name":"ExistingSession","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"Session?","doc":{"summary":"Gets the exact conflicting session, or null when none was observed."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":125,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.ExistingSession","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-existingsession"},{"id":"LibTmux.Workspace.WorkspacePlan.ExistingSessionPolicy","name":"ExistingSessionPolicy","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"WorkspaceExistingSession","doc":{"summary":"Gets the reviewed conflict policy."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":127,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.ExistingSessionPolicy","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-existingsessionpolicy"},{"id":"LibTmux.Workspace.WorkspacePlan.ServerStartup","name":"ServerStartup","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"WorkspaceServerStartup","doc":{"summary":"Gets the reviewed startup policy for an initially absent endpoint."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":129,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.ServerStartup","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-serverstartup"},{"id":"LibTmux.Workspace.WorkspacePlan.Readiness","name":"Readiness","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"WorkspaceReadiness","doc":{"summary":"Gets the reviewed pane startup contract."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":131,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.Readiness","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-readiness"},{"id":"LibTmux.Workspace.WorkspacePlan.ReadinessTimeout","name":"ReadinessTimeout","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the budget for each cooperative startup signal."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":133,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.ReadinessTimeout","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-readinesstimeout"},{"id":"LibTmux.Workspace.WorkspacePlan.CompensateOnFailure","name":"CompensateOnFailure","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"bool","doc":{"summary":"Gets whether journal-owned resources are compensated after failure."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":135,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.CompensateOnFailure","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-compensateonfailure"},{"id":"LibTmux.Workspace.WorkspacePlan.CleanupTimeout","name":"CleanupTimeout","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the total budget for attempting cleanup after failure."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":137,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.CleanupTimeout","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-cleanuptimeout"},{"id":"LibTmux.Workspace.WorkspacePlan.ObservationStartedAt","name":"ObservationStartedAt","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"DateTimeOffset","doc":{"summary":"Gets the start of endpoint observation."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":139,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.ObservationStartedAt","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-observationstartedat"},{"id":"LibTmux.Workspace.WorkspacePlan.ObservationCompletedAt","name":"ObservationCompletedAt","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"DateTimeOffset","doc":{"summary":"Gets the end of endpoint observation."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":141,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.ObservationCompletedAt","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-observationcompletedat"},{"id":"LibTmux.Workspace.WorkspacePlan.Actions","name":"Actions","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the complete ordered application operations."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":143,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.Actions","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-actions"},{"id":"LibTmux.Workspace.WorkspacePlan.CompensationActions","name":"CompensationActions","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspacePlan","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets conditional cleanup operations over proven created identities, in cleanup order.","body":"Owned readiness channels and replacement keepalives are always cleaned; workspace resources follow the selected compensation policy."},"source":{"file":"src/LibTmux.Workspace/WorkspacePlan.cs","line":146,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspacePlan.CompensationActions","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceplan-compensationactions"},{"id":"LibTmux.Workspace.WorkspaceResult","name":"WorkspaceResult","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Describes workspace state materialized by a build."},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult"},{"id":"LibTmux.Workspace.WorkspaceResult.WorkspaceResult","name":"WorkspaceResult","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceResult","signatures":[{"params":[{"name":"Session","type":"Session","doc":"The session that was built."},{"name":"Windows","type":"IReadOnlyList","doc":"The windows, in the order the file listed them."},{"name":"Unsupported","type":"IReadOnlyList","doc":"The layouts tmux rejected after creating their windows."}]}],"doc":{"summary":"Initializes a workspace result."},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult.WorkspaceResult","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult-workspaceresult"},{"id":"LibTmux.Workspace.WorkspaceResult.Session","name":"Session","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceResult","signatures":[],"type":"Session","doc":{"summary":"Gets the session materialized by the build."},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult.Session","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult-session"},{"id":"LibTmux.Workspace.WorkspaceResult.Windows","name":"Windows","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceResult","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets created windows in workspace order, or an empty list for Reuse."},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult.Windows","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult-windows"},{"id":"LibTmux.Workspace.WorkspaceResult.Unsupported","name":"Unsupported","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceResult","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets the layouts tmux rejected after creating their windows."},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":51,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult.Unsupported","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult-unsupported"},{"id":"LibTmux.Workspace.WorkspaceResult.Journal","name":"Journal","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceResult","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets every reviewed action's outcome, including actions not started after failure."},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":62,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult.Journal","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult-journal"},{"id":"LibTmux.Workspace.WorkspaceResult.CompensationJournal","name":"CompensationJournal","kind":"property","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceResult","signatures":[],"type":"IReadOnlyList","doc":{"summary":"Gets conditional cleanup outcomes in the plan's cleanup order."},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":73,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult.CompensationJournal","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult-compensationjournal"},{"id":"LibTmux.Workspace.WorkspaceResult.Equals","name":"Equals","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceResult","signatures":[{"params":[{"name":"other","type":"WorkspaceResult?"}],"returns":"bool"}],"doc":{"summary":""},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":84,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult.Equals","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult-equals"},{"id":"LibTmux.Workspace.WorkspaceResult.GetHashCode","name":"GetHashCode","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceResult","signatures":[{"params":[],"returns":"int"}],"doc":{"summary":""},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":93,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult.GetHashCode","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult-gethashcode"},{"id":"LibTmux.Workspace.WorkspaceResult.Deconstruct","name":"Deconstruct","kind":"method","modifiers":[],"parent":"LibTmux.Workspace.WorkspaceResult","signatures":[{"params":[{"name":"Session","type":"Session","doc":"The session that was built."},{"name":"Windows","type":"IReadOnlyList","doc":"The windows, in workspace order."},{"name":"Unsupported","type":"IReadOnlyList","doc":"The layouts tmux rejected."}],"returns":"void"}],"doc":{"summary":"Deconstructs the result into the built session, windows, and rejected layouts."},"source":{"file":"src/LibTmux.Workspace/WorkspaceResult.cs","line":117,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Workspace.WorkspaceResult.Deconstruct","product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspaceresult-deconstruct"},{"id":"LibTmux.Query.Json.QueryJsonLimits","name":"QueryJsonLimits","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record QueryJsonLimits(\n int MaximumDepth,\n int MaximumNodes,\n int MaximumStringLength,\n int MaximumPatternLength,\n int MaximumUtf8Bytes)","params":[{"name":"MaximumDepth","type":"int","doc":"Deepest nesting accepted."},{"name":"MaximumNodes","type":"int","doc":"Most predicate nodes accepted."},{"name":"MaximumStringLength","type":"int","doc":"Longest string value accepted."},{"name":"MaximumPatternLength","type":"int","doc":"Longest regex pattern accepted."},{"name":"MaximumUtf8Bytes","type":"int","doc":"Largest encoded document accepted."}]}],"doc":{"summary":"Bounds one JSON document so parsing cannot be weaponised.","body":"Every dimension a hostile producer could grow is capped. Callers may tighten\na limit but never widen one."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJsonLimits","product":"core","slug":"libtmux-query-json-queryjsonlimits"},{"id":"LibTmux.Query.Json.QueryJsonLimits.Default","name":"Default","kind":"property","modifiers":["static"],"parent":"LibTmux.Query.Json.QueryJsonLimits","signatures":[],"type":"QueryJsonLimits","doc":{"summary":"Gets the maximum supported document limits."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJsonLimits.Default","product":"core","slug":"libtmux-query-json-queryjsonlimits-default"},{"id":"LibTmux.Query.Json.QueryJsonLimits.MaximumDepth","name":"MaximumDepth","kind":"property","parent":"LibTmux.Query.Json.QueryJsonLimits","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Deepest nesting accepted."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJsonLimits.MaximumDepth","product":"core","slug":"libtmux-query-json-queryjsonlimits-maximumdepth"},{"id":"LibTmux.Query.Json.QueryJsonLimits.MaximumNodes","name":"MaximumNodes","kind":"property","parent":"LibTmux.Query.Json.QueryJsonLimits","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Most predicate nodes accepted."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJsonLimits.MaximumNodes","product":"core","slug":"libtmux-query-json-queryjsonlimits-maximumnodes"},{"id":"LibTmux.Query.Json.QueryJsonLimits.MaximumStringLength","name":"MaximumStringLength","kind":"property","parent":"LibTmux.Query.Json.QueryJsonLimits","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Longest string value accepted."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJsonLimits.MaximumStringLength","product":"core","slug":"libtmux-query-json-queryjsonlimits-maximumstringlength"},{"id":"LibTmux.Query.Json.QueryJsonLimits.MaximumPatternLength","name":"MaximumPatternLength","kind":"property","parent":"LibTmux.Query.Json.QueryJsonLimits","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Longest regex pattern accepted."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJsonLimits.MaximumPatternLength","product":"core","slug":"libtmux-query-json-queryjsonlimits-maximumpatternlength"},{"id":"LibTmux.Query.Json.QueryJsonLimits.MaximumUtf8Bytes","name":"MaximumUtf8Bytes","kind":"property","parent":"LibTmux.Query.Json.QueryJsonLimits","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Largest encoded document accepted."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJsonLimits.MaximumUtf8Bytes","product":"core","slug":"libtmux-query-json-queryjsonlimits-maximumutf8bytes"},{"id":"LibTmux.Query.Json.QueryJson","name":"QueryJson","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Serializes query documents in their declared wire schema version.","body":"JSON lives in its own package so the core library carries no serializer\ndependency. A caller who never puts a query on a wire never pays for one."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJson","product":"core","slug":"libtmux-query-json-queryjson"},{"id":"LibTmux.Query.Json.QueryJson.Serialize","name":"Serialize","kind":"method","modifiers":["static"],"parent":"LibTmux.Query.Json.QueryJson","signatures":[{"params":[{"name":"document","type":"QueryDocument","doc":"The document to write."}],"returns":"string","returnsDoc":"The encoded document, with no trailing newline.","raises":[{"type":"UnsupportedQueryExpressionException","doc":"The document has an unsupported wire form or encodes past the size limit."}]}],"doc":{"summary":"Writes one document as versioned JSON."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":69,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJson.Serialize","product":"core","slug":"libtmux-query-json-queryjson-serialize"},{"id":"LibTmux.Query.Json.QueryJson.Deserialize","name":"Deserialize","kind":"method","modifiers":["static"],"parent":"LibTmux.Query.Json.QueryJson","signatures":[{"params":[{"name":"json","type":"string","doc":"The encoded document."},{"name":"limits","type":"QueryJsonLimits?","default":"null","doc":"Limits to apply, never wider than the defaults."}],"returns":"QueryDocument","returnsDoc":"The decoded document.","raises":[{"type":"System.Text.Json.JsonException","doc":"The text is not JSON."},{"type":"UnsupportedQueryExpressionException","doc":"The text is JSON, but not a supported wire form: an unknown schema, version,\ntarget, node or constant, a duplicate or unknown member, or a value past\none of the document limits."}]}],"doc":{"summary":"Reads one versioned JSON document."},"source":{"file":"src/LibTmux.Query.Json/QueryJsonSerializerContext.cs","line":100,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Query.Json.QueryJson.Deserialize","product":"core","slug":"libtmux-query-json-queryjson-deserialize"},{"id":"LibTmux.Testing.TemporaryHierarchyScope","name":"TemporaryHierarchyScope","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A server, session, window, and pane a test owns together.","body":"Most tests want somewhere to type, which is four objects deep. Making them\none at a time leaves a test holding four scopes and disposing them in the\nright order; one scope owns the lot and unwinds from the server, which takes\neverything inside it with it."},"source":{"file":"src/LibTmux.Testing/TemporaryHierarchyScope.cs","line":12,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryHierarchyScope","product":"core","slug":"libtmux-testing-temporaryhierarchyscope"},{"id":"LibTmux.Testing.TemporaryHierarchyScope.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TemporaryHierarchyScope","signatures":[],"type":"Server","doc":{"summary":"Gets the server the rest live in.","body":"Creating the session materializes its server. The returned handle carries\nthat generation and version, so it is ready for listings and lookups."},"source":{"file":"src/LibTmux.Testing/TemporaryHierarchyScope.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryHierarchyScope.Server","product":"core","slug":"libtmux-testing-temporaryhierarchyscope-server"},{"id":"LibTmux.Testing.TemporaryHierarchyScope.Session","name":"Session","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TemporaryHierarchyScope","signatures":[],"type":"Session","doc":{"summary":"Gets the session."},"source":{"file":"src/LibTmux.Testing/TemporaryHierarchyScope.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryHierarchyScope.Session","product":"core","slug":"libtmux-testing-temporaryhierarchyscope-session"},{"id":"LibTmux.Testing.TemporaryHierarchyScope.Window","name":"Window","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TemporaryHierarchyScope","signatures":[],"type":"Window","doc":{"summary":"Gets the window."},"source":{"file":"src/LibTmux.Testing/TemporaryHierarchyScope.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryHierarchyScope.Window","product":"core","slug":"libtmux-testing-temporaryhierarchyscope-window"},{"id":"LibTmux.Testing.TemporaryHierarchyScope.Pane","name":"Pane","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TemporaryHierarchyScope","signatures":[],"type":"Pane","doc":{"summary":"Gets the pane."},"source":{"file":"src/LibTmux.Testing/TemporaryHierarchyScope.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryHierarchyScope.Pane","product":"core","slug":"libtmux-testing-temporaryhierarchyscope-pane"},{"id":"LibTmux.Testing.TemporaryHierarchyScope.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TemporaryHierarchyScope","signatures":[{"params":[],"returns":"ValueTask"}],"doc":{"summary":"","body":"Only the server is unwound: killing it takes the session, window, and\npane with it, and asking tmux to remove each first would race that."},"source":{"file":"src/LibTmux.Testing/TemporaryHierarchyScope.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryHierarchyScope.DisposeAsync","product":"core","slug":"libtmux-testing-temporaryhierarchyscope-disposeasync"},{"id":"LibTmux.Testing.TemporaryServerScope","name":"TemporaryServerScope","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Creates a throwaway server for a test and stops it afterwards.","body":"Each scope gets its own socket, so tests never contend for one server and a\ncrashed test cannot leak state into the next."},"source":{"file":"src/LibTmux.Testing/TemporaryServerScope.cs","line":10,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryServerScope","product":"core","slug":"libtmux-testing-temporaryserverscope"},{"id":"LibTmux.Testing.TemporaryServerScope.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TemporaryServerScope","signatures":[],"type":"Server","doc":{"summary":"Gets the temporary server."},"source":{"file":"src/LibTmux.Testing/TemporaryServerScope.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryServerScope.Server","product":"core","slug":"libtmux-testing-temporaryserverscope-server"},{"id":"LibTmux.Testing.TemporaryServerScope.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TemporaryServerScope","signatures":[{"params":[],"returns":"ValueTask"}],"doc":{"summary":""},"source":{"file":"src/LibTmux.Testing/TemporaryServerScope.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryServerScope.DisposeAsync","product":"core","slug":"libtmux-testing-temporaryserverscope-disposeasync"},{"id":"LibTmux.Testing.TemporarySessionScope","name":"TemporarySessionScope","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Owns a throwaway session and any private server created with it."},"source":{"file":"src/LibTmux.Testing/TemporarySessionScope.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporarySessionScope","product":"core","slug":"libtmux-testing-temporarysessionscope"},{"id":"LibTmux.Testing.TemporarySessionScope.Session","name":"Session","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TemporarySessionScope","signatures":[],"type":"Session","doc":{"summary":"Gets the temporary session."},"source":{"file":"src/LibTmux.Testing/TemporarySessionScope.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporarySessionScope.Session","product":"core","slug":"libtmux-testing-temporarysessionscope-session"},{"id":"LibTmux.Testing.TemporarySessionScope.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Testing.TemporarySessionScope","signatures":[{"params":[],"returns":"ValueTask"}],"doc":{"summary":""},"source":{"file":"src/LibTmux.Testing/TemporarySessionScope.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporarySessionScope.DisposeAsync","product":"core","slug":"libtmux-testing-temporarysessionscope-disposeasync"},{"id":"LibTmux.Testing.TemporaryWindowScope","name":"TemporaryWindowScope","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Owns a throwaway window and any private session and server created with it."},"source":{"file":"src/LibTmux.Testing/TemporaryWindowScope.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryWindowScope","product":"core","slug":"libtmux-testing-temporarywindowscope"},{"id":"LibTmux.Testing.TemporaryWindowScope.Window","name":"Window","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TemporaryWindowScope","signatures":[],"type":"Window","doc":{"summary":"Gets the temporary window."},"source":{"file":"src/LibTmux.Testing/TemporaryWindowScope.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryWindowScope.Window","product":"core","slug":"libtmux-testing-temporarywindowscope-window"},{"id":"LibTmux.Testing.TemporaryWindowScope.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Testing.TemporaryWindowScope","signatures":[{"params":[],"returns":"ValueTask"}],"doc":{"summary":""},"source":{"file":"src/LibTmux.Testing/TemporaryWindowScope.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TemporaryWindowScope.DisposeAsync","product":"core","slug":"libtmux-testing-temporarywindowscope-disposeasync"},{"id":"LibTmux.Testing.TestEnvironment","name":"TestEnvironment","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"The directory and variables a test's tmux runs with.","body":"A test that inherits the developer's environment inherits their tmux too:\nTMUX points a new client at the server they are sitting in. Naming\nthe environment explicitly is what keeps a test off it."},"source":{"file":"src/LibTmux.Testing/TestEnvironment.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TestEnvironment","product":"core","slug":"libtmux-testing-testenvironment"},{"id":"LibTmux.Testing.TestEnvironment.TestEnvironment","name":"TestEnvironment","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TestEnvironment","signatures":[{"params":[{"name":"workingDirectory","type":"string","doc":"The directory tmux starts in."},{"name":"variables","type":"IReadOnlyDictionary","doc":"The variables to set, or null each to remove one."}]}],"doc":{"summary":"Initializes a test environment."},"source":{"file":"src/LibTmux.Testing/TestEnvironment.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TestEnvironment.TestEnvironment","product":"core","slug":"libtmux-testing-testenvironment-testenvironment"},{"id":"LibTmux.Testing.TestEnvironment.WorkingDirectory","name":"WorkingDirectory","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TestEnvironment","signatures":[],"type":"string","doc":{"summary":"Gets the directory tmux starts in."},"source":{"file":"src/LibTmux.Testing/TestEnvironment.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TestEnvironment.WorkingDirectory","product":"core","slug":"libtmux-testing-testenvironment-workingdirectory"},{"id":"LibTmux.Testing.TestEnvironment.Variables","name":"Variables","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TestEnvironment","signatures":[],"type":"IReadOnlyDictionary","doc":{"summary":"Gets the variables to set, with null meaning remove."},"source":{"file":"src/LibTmux.Testing/TestEnvironment.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TestEnvironment.Variables","product":"core","slug":"libtmux-testing-testenvironment-variables"},{"id":"LibTmux.Testing.TestEnvironment.WithVariable","name":"WithVariable","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TestEnvironment","signatures":[{"params":[{"name":"name","type":"string","doc":"The variable name."},{"name":"value","type":"string","doc":"The value to give it."}],"returns":"TestEnvironment","returnsDoc":"The copy."}],"doc":{"summary":"Answers a copy that also sets one variable."},"source":{"file":"src/LibTmux.Testing/TestEnvironment.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TestEnvironment.WithVariable","product":"core","slug":"libtmux-testing-testenvironment-withvariable"},{"id":"LibTmux.Testing.TestEnvironment.WithoutVariable","name":"WithoutVariable","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TestEnvironment","signatures":[{"params":[{"name":"name","type":"string","doc":"The variable name."}],"returns":"TestEnvironment","returnsDoc":"The copy."}],"doc":{"summary":"Answers a copy that removes one variable.","body":"Removing is not the same as setting nothing: a variable set to the\nempty string is still one tmux passes on."},"source":{"file":"src/LibTmux.Testing/TestEnvironment.cs","line":53,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TestEnvironment.WithoutVariable","product":"core","slug":"libtmux-testing-testenvironment-withoutvariable"},{"id":"LibTmux.Testing.TmuxNameGenerator","name":"TmuxNameGenerator","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Makes names no other test is using.","body":"Two tests that pick the same session name find each other's sessions, and\nthe failure lands in whichever ran second. A name carries enough randomness\nto be unique without a round trip, and the asking variants also check with\nthe server for the case where something outside the test took the name."},"source":{"file":"src/LibTmux.Testing/TmuxNameGenerator.cs","line":14,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxNameGenerator","product":"core","slug":"libtmux-testing-tmuxnamegenerator"},{"id":"LibTmux.Testing.TmuxNameGenerator.TmuxNameGenerator","name":"TmuxNameGenerator","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TmuxNameGenerator","signatures":[{"params":[{"name":"prefix","type":"string","default":"\"lt\"","doc":"What every name it makes starts with."}]}],"doc":{"summary":"Initializes a generator."},"source":{"file":"src/LibTmux.Testing/TmuxNameGenerator.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxNameGenerator.TmuxNameGenerator","product":"core","slug":"libtmux-testing-tmuxnamegenerator-tmuxnamegenerator"},{"id":"LibTmux.Testing.TmuxNameGenerator.CreateSessionName","name":"CreateSessionName","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TmuxNameGenerator","signatures":[{"params":[],"returns":"string","returnsDoc":"The name."}],"doc":{"summary":"Makes a session name."},"source":{"file":"src/LibTmux.Testing/TmuxNameGenerator.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxNameGenerator.CreateSessionName","product":"core","slug":"libtmux-testing-tmuxnamegenerator-createsessionname"},{"id":"LibTmux.Testing.TmuxNameGenerator.CreateWindowName","name":"CreateWindowName","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TmuxNameGenerator","signatures":[{"params":[],"returns":"string","returnsDoc":"The name."}],"doc":{"summary":"Makes a window name."},"source":{"file":"src/LibTmux.Testing/TmuxNameGenerator.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxNameGenerator.CreateWindowName","product":"core","slug":"libtmux-testing-tmuxnamegenerator-createwindowname"},{"id":"LibTmux.Testing.TmuxNameGenerator.CreateAvailableSessionNameAsync","name":"CreateAvailableSessionNameAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Testing.TmuxNameGenerator","signatures":[{"params":[{"name":"server","type":"Server","doc":"The server to ask."},{"name":"prefix","type":"string?","default":"null","doc":"What the name starts with, or null for this generator's."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The name."}],"doc":{"summary":"Makes a session name the server does not already hold."},"source":{"file":"src/LibTmux.Testing/TmuxNameGenerator.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxNameGenerator.CreateAvailableSessionNameAsync","product":"core","slug":"libtmux-testing-tmuxnamegenerator-createavailablesessionnameasync"},{"id":"LibTmux.Testing.TmuxNameGenerator.CreateAvailableWindowNameAsync","name":"CreateAvailableWindowNameAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Testing.TmuxNameGenerator","signatures":[{"params":[{"name":"session","type":"Session","doc":"The session to ask."},{"name":"prefix","type":"string?","default":"null","doc":"What the name starts with, or null for this generator's."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The name."}],"doc":{"summary":"Makes a window name the session does not already hold."},"source":{"file":"src/LibTmux.Testing/TmuxNameGenerator.cs","line":68,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxNameGenerator.CreateAvailableWindowNameAsync","product":"core","slug":"libtmux-testing-tmuxnamegenerator-createavailablewindownameasync"},{"id":"LibTmux.Testing.TmuxTestContext","name":"TmuxTestContext","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A tmux server a test owns, and the environment it runs in.","body":"Disposing kills the server, so a test that forgets a session still leaves\nnothing behind. The environment is reported so a test can spawn its own\nprocesses the same way tmux was spawned."},"source":{"file":"src/LibTmux.Testing/TmuxTestContext.cs","line":11,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestContext","product":"core","slug":"libtmux-testing-tmuxtestcontext"},{"id":"LibTmux.Testing.TmuxTestContext.Server","name":"Server","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TmuxTestContext","signatures":[],"type":"Server","doc":{"summary":"Gets the server this test owns."},"source":{"file":"src/LibTmux.Testing/TmuxTestContext.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestContext.Server","product":"core","slug":"libtmux-testing-tmuxtestcontext-server"},{"id":"LibTmux.Testing.TmuxTestContext.Environment","name":"Environment","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TmuxTestContext","signatures":[],"type":"TestEnvironment","doc":{"summary":"Gets the directory and variables the server was started with."},"source":{"file":"src/LibTmux.Testing/TmuxTestContext.cs","line":28,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestContext.Environment","product":"core","slug":"libtmux-testing-tmuxtestcontext-environment"},{"id":"LibTmux.Testing.TmuxTestContext.DisposeAsync","name":"DisposeAsync","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TmuxTestContext","signatures":[{"params":[],"returns":"ValueTask"}],"doc":{"summary":""},"source":{"file":"src/LibTmux.Testing/TmuxTestContext.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestContext.DisposeAsync","product":"core","slug":"libtmux-testing-tmuxtestcontext-disposeasync"},{"id":"LibTmux.Testing.TmuxTestFactory","name":"TmuxTestFactory","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Makes the tmux objects a test needs, each owning its own cleanup.","body":"Every scope this hands out is disposable, and disposing unwinds as far as\nthe scope owns: a session scope removes the session, a server scope kills\nthe server. A test that takes a scope therefore cannot leak a tmux server,\neven when it fails part way through."},"source":{"file":"src/LibTmux.Testing/TmuxTestFactory.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestFactory","product":"core","slug":"libtmux-testing-tmuxtestfactory"},{"id":"LibTmux.Testing.TmuxTestFactory.TmuxTestFactory","name":"TmuxTestFactory","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TmuxTestFactory","signatures":[{"params":[]}],"doc":{"summary":"Initializes a factory."},"source":{"file":"src/LibTmux.Testing/TmuxTestFactory.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestFactory.TmuxTestFactory","product":"core","slug":"libtmux-testing-tmuxtestfactory-tmuxtestfactory"},{"id":"LibTmux.Testing.TmuxTestFactory.CreateContextAsync","name":"CreateContextAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Testing.TmuxTestFactory","signatures":[{"params":[{"name":"options","type":"TmuxTestOptions?","default":"null","doc":"How to reach tmux, or null for a socket of its own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The context owning the server."}],"doc":{"summary":"Starts a server this test owns, with its environment."},"source":{"file":"src/LibTmux.Testing/TmuxTestFactory.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestFactory.CreateContextAsync","product":"core","slug":"libtmux-testing-tmuxtestfactory-createcontextasync"},{"id":"LibTmux.Testing.TmuxTestFactory.CreateServerAsync","name":"CreateServerAsync","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TmuxTestFactory","signatures":[{"params":[{"name":"options","type":"TmuxTestOptions?","default":"null","doc":"How to reach tmux, or null for a socket of its own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The scope owning the server."}],"doc":{"summary":"Starts a server this test owns."},"source":{"file":"src/LibTmux.Testing/TmuxTestFactory.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestFactory.CreateServerAsync","product":"core","slug":"libtmux-testing-tmuxtestfactory-createserverasync"},{"id":"LibTmux.Testing.TmuxTestFactory.CreateSessionAsync","name":"CreateSessionAsync","kind":"method","modifiers":["async","overload"],"parent":"LibTmux.Testing.TmuxTestFactory","signatures":[{"params":[{"name":"options","type":"TmuxTestOptions?","default":"null","doc":"How to reach tmux, or null for a socket of its own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The scope owning the session."},{"params":[{"name":"server","type":"Server","doc":"The server to start it on."},{"name":"options","type":"TmuxTestOptions?","default":"null","doc":"What to name it, or null for a name of its own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The scope owning the session."}],"doc":{"summary":"Starts a server and a session in it, both owned by this test.","body":"The server this makes is left to the session's own scope, which is a\nsession on a server nobody else will kill."},"source":{"file":"src/LibTmux.Testing/TmuxTestFactory.cs","line":59,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestFactory.CreateSessionAsync","product":"core","slug":"libtmux-testing-tmuxtestfactory-createsessionasync"},{"id":"LibTmux.Testing.TmuxTestFactory.CreateWindowAsync","name":"CreateWindowAsync","kind":"method","modifiers":["async","overload"],"parent":"LibTmux.Testing.TmuxTestFactory","signatures":[{"params":[{"name":"options","type":"TmuxTestOptions?","default":"null","doc":"How to reach tmux, or null for a socket of its own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The scope owning the window."},{"params":[{"name":"session","type":"Session","doc":"The session to start it in."},{"name":"options","type":"TmuxTestOptions?","default":"null","doc":"What to name it, or null for a name of its own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The scope owning the window."}],"doc":{"summary":"Starts a server, a session, and a window, all owned by this test."},"source":{"file":"src/LibTmux.Testing/TmuxTestFactory.cs","line":120,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestFactory.CreateWindowAsync","product":"core","slug":"libtmux-testing-tmuxtestfactory-createwindowasync"},{"id":"LibTmux.Testing.TmuxTestFactory.CreateHierarchyAsync","name":"CreateHierarchyAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Testing.TmuxTestFactory","signatures":[{"params":[{"name":"options","type":"TmuxTestOptions?","default":"null","doc":"How to reach tmux, or null for a socket of its own."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux commands."}],"returns":"Task","returnsDoc":"The scope owning all four."}],"doc":{"summary":"Starts a server, session, window, and pane a test can type into."},"source":{"file":"src/LibTmux.Testing/TmuxTestFactory.cs","line":181,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestFactory.CreateHierarchyAsync","product":"core","slug":"libtmux-testing-tmuxtestfactory-createhierarchyasync"},{"id":"LibTmux.Testing.TmuxTestOptions","name":"TmuxTestOptions","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"How a test's tmux is reached and how long it is waited on.","body":"Left alone, a test gets a socket nothing else can be using. Falling back to\nthe ambient connection would point a throwaway server at the developer's own\ntmux and kill it on the way out."},"source":{"file":"src/LibTmux.Testing/TmuxTestOptions.cs","line":9,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestOptions","product":"core","slug":"libtmux-testing-tmuxtestoptions"},{"id":"LibTmux.Testing.TmuxTestOptions.TmuxTestOptions","name":"TmuxTestOptions","kind":"method","modifiers":[],"parent":"LibTmux.Testing.TmuxTestOptions","signatures":[{"params":[{"name":"connectionOptions","type":"ServerConnectionOptions?","default":"null","doc":"How to reach tmux, or null for a socket of its own."},{"name":"timeout","type":"TimeSpan?","default":"null","doc":"How long a wait keeps asking."},{"name":"pollInterval","type":"TimeSpan?","default":"null","doc":"How long a wait pauses between askings."},{"name":"sessionNamePrefix","type":"string","default":"\"lt\"","doc":"What generated names start with."}]}],"doc":{"summary":"Initializes test options."},"source":{"file":"src/LibTmux.Testing/TmuxTestOptions.cs","line":16,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestOptions.TmuxTestOptions","product":"core","slug":"libtmux-testing-tmuxtestoptions-tmuxtestoptions"},{"id":"LibTmux.Testing.TmuxTestOptions.Default","name":"Default","kind":"property","modifiers":["static"],"parent":"LibTmux.Testing.TmuxTestOptions","signatures":[],"type":"TmuxTestOptions","doc":{"summary":"Gets options with a new private socket for each test scope."},"source":{"file":"src/LibTmux.Testing/TmuxTestOptions.cs","line":47,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestOptions.Default","product":"core","slug":"libtmux-testing-tmuxtestoptions-default"},{"id":"LibTmux.Testing.TmuxTestOptions.ConnectionOptions","name":"ConnectionOptions","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TmuxTestOptions","signatures":[],"type":"ServerConnectionOptions","doc":{"summary":"Gets how to reach tmux."},"source":{"file":"src/LibTmux.Testing/TmuxTestOptions.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestOptions.ConnectionOptions","product":"core","slug":"libtmux-testing-tmuxtestoptions-connectionoptions"},{"id":"LibTmux.Testing.TmuxTestOptions.Timeout","name":"Timeout","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TmuxTestOptions","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets how long a wait keeps asking."},"source":{"file":"src/LibTmux.Testing/TmuxTestOptions.cs","line":53,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestOptions.Timeout","product":"core","slug":"libtmux-testing-tmuxtestoptions-timeout"},{"id":"LibTmux.Testing.TmuxTestOptions.PollInterval","name":"PollInterval","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TmuxTestOptions","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets how long a wait pauses between askings."},"source":{"file":"src/LibTmux.Testing/TmuxTestOptions.cs","line":56,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestOptions.PollInterval","product":"core","slug":"libtmux-testing-tmuxtestoptions-pollinterval"},{"id":"LibTmux.Testing.TmuxTestOptions.SessionNamePrefix","name":"SessionNamePrefix","kind":"property","modifiers":[],"parent":"LibTmux.Testing.TmuxTestOptions","signatures":[],"type":"string","doc":{"summary":"Gets what generated names start with."},"source":{"file":"src/LibTmux.Testing/TmuxTestOptions.cs","line":59,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Testing.TmuxTestOptions.SessionNamePrefix","product":"core","slug":"libtmux-testing-tmuxtestoptions-sessionnameprefix"},{"id":"LibTmux.Mcp.TmuxConnectionAccessor","name":"TmuxConnectionAccessor","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Holds the tmux servers this process talks to, one per socket.","body":"A conversation outlives any single tool call, so connecting once and keeping\nthe handle costs one process launch instead of one per call. Sockets are\ncached separately because a machine runs several tmux servers at once — a\nuser's own, a test rig's, a sandbox's — and they are different servers with\nthe same commands, not one server addressed two ways.\n\nWhen no template is supplied, the tmux binary comes from\nLIBTMUX_TMUX. An explicit template is already a pinned route and wins\nover later process-environment changes."},"source":{"file":"src/LibTmux.Mcp/Connection/TmuxConnectionAccessor.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxConnectionAccessor","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxconnectionaccessor"},{"id":"LibTmux.Mcp.TmuxConnectionAccessor.TmuxConnectionAccessor","name":"TmuxConnectionAccessor","kind":"method","modifiers":["overload"],"parent":"LibTmux.Mcp.TmuxConnectionAccessor","signatures":[{"params":[{"name":"template","type":"ServerConnectionOptions?","default":"null","doc":"How to reach tmux, or null for the ambient server."},{"name":"defaultSocketName","type":"string?","default":"null","doc":"The socket used when a call names none."},{"name":"logger","type":"ILogger?","default":"null","doc":"Records connection failures."}]},{"params":[{"name":"server","type":"Server","doc":"The server every call reaches."}]}],"doc":{"summary":"Initializes the accessor."},"source":{"file":"src/LibTmux.Mcp/Connection/TmuxConnectionAccessor.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxConnectionAccessor.TmuxConnectionAccessor","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxconnectionaccessor-tmuxconnectionaccessor"},{"id":"LibTmux.Mcp.TmuxConnectionAccessor.DefaultSocketName","name":"DefaultSocketName","kind":"property","modifiers":[],"parent":"LibTmux.Mcp.TmuxConnectionAccessor","signatures":[],"type":"string?","doc":{"summary":"Gets the socket used when a call names none."},"source":{"file":"src/LibTmux.Mcp/Connection/TmuxConnectionAccessor.cs","line":71,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxConnectionAccessor.DefaultSocketName","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxconnectionaccessor-defaultsocketname"},{"id":"LibTmux.Mcp.TmuxConnectionAccessor.Dispose","name":"Dispose","kind":"method","modifiers":[],"parent":"LibTmux.Mcp.TmuxConnectionAccessor","signatures":[{"params":[],"returns":"void"}],"doc":{"summary":""},"source":{"file":"src/LibTmux.Mcp/Connection/TmuxConnectionAccessor.cs","line":74,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxConnectionAccessor.Dispose","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxconnectionaccessor-dispose"},{"id":"LibTmux.Mcp.TmuxConnectionAccessor.GetAsync","name":"GetAsync","kind":"method","modifiers":["async"],"parent":"LibTmux.Mcp.TmuxConnectionAccessor","signatures":[{"params":[{"name":"socketName","type":"string?","default":"null","doc":"The socket, or null for the configured default."},{"name":"cancellationToken","type":"CancellationToken","default":"default","doc":"Cancels the tmux command."}],"returns":"Task","returnsDoc":"The server.","raises":[{"type":"McpException","doc":"tmux could not be reached."}]}],"doc":{"summary":"Answers a server, connecting on the first ask for that socket."},"source":{"file":"src/LibTmux.Mcp/Connection/TmuxConnectionAccessor.cs","line":81,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxConnectionAccessor.GetAsync","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxconnectionaccessor-getasync"},{"id":"LibTmux.Mcp.TmuxConnectionAccessor.Invalidate","name":"Invalidate","kind":"method","modifiers":[],"parent":"LibTmux.Mcp.TmuxConnectionAccessor","signatures":[{"params":[{"name":"socketName","type":"string?","default":"null","doc":"The socket, or null for the configured default."}],"returns":"void"}],"doc":{"summary":"Forgets a cached server so the next call reconnects.","body":"A materialized handle names one tmux *process*. Killing the\nserver and starting another gives the same socket a different process,\nand the old handle then refuses to be used rather than quietly\nanswering for a server that no longer exists."},"source":{"file":"src/LibTmux.Mcp/Connection/TmuxConnectionAccessor.cs","line":147,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxConnectionAccessor.Invalidate","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxconnectionaccessor-invalidate"},{"id":"LibTmux.Mcp.LibTmuxMcp","name":"LibTmuxMcp","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"What this server says it is."},"source":{"file":"src/LibTmux.Mcp/LibTmuxMcp.cs","line":6,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.LibTmuxMcp","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-libtmuxmcp"},{"id":"LibTmux.Mcp.LibTmuxMcp.Version","name":"Version","kind":"property","modifiers":["static"],"parent":"LibTmux.Mcp.LibTmuxMcp","signatures":[],"type":"string","doc":{"summary":"Gets the version reported to a client.","body":"An assembly version is four numbers, so a prerelease would arrive at the\nclient as \"0.0.0.0\" — which reads as unset rather than as an alpha. The\ninformational version is the one the package carries, and the build\nmetadata after \"+\" is a commit nobody asked for."},"source":{"file":"src/LibTmux.Mcp/LibTmuxMcp.cs","line":15,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.LibTmuxMcp.Version","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-libtmuxmcp-version"},{"id":"LibTmux.Mcp.McpServerComposition","name":"McpServerComposition","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"Assembles the server: what it offers, and what it refuses to.","body":"One description of the wiring, used by the executable and by the tests that\ncheck what a client receives. Two descriptions would drift, and the one\nthat drifted would be the tested one."},"source":{"file":"src/LibTmux.Mcp/McpServerComposition.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.McpServerComposition","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-mcpservercomposition"},{"id":"LibTmux.Mcp.McpServerComposition.Add","name":"Add","kind":"method","modifiers":["static"],"parent":"LibTmux.Mcp.McpServerComposition","signatures":[{"params":[{"name":"services","type":"IServiceCollection","doc":"The container to register into."},{"name":"policy","type":"ServerPolicy","doc":"What the server will do."},{"name":"connectionOptions","type":"ServerConnectionOptions","doc":"How to reach tmux."},{"name":"callerPaneId","type":"string?","doc":"The pane the server runs in, when it runs in one."}],"returns":"IMcpServerBuilder","returnsDoc":"The builder, for a transport to be chosen on."}],"doc":{"summary":"Registers everything the server needs and everything it offers."},"source":{"file":"src/LibTmux.Mcp/McpServerComposition.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.McpServerComposition.Add","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-mcpservercomposition-add"},{"id":"LibTmux.Mcp.ServerPolicy","name":"ServerPolicy","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"What this server will do, and how much of it at once.","body":"Every knob is resolved once at startup from the environment. A bad or\nout-of-range value is clamped and logged rather than refused: an operator\nwho mistypes a ceiling gets a working server and a warning, not a client\nthat fails to start with nothing to read."},"source":{"file":"src/LibTmux.Mcp/Policy/ServerPolicy.cs","line":13,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ServerPolicy","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-serverpolicy"},{"id":"LibTmux.Mcp.ServerPolicy.WaitCeiling","name":"WaitCeiling","kind":"property","modifiers":[],"parent":"LibTmux.Mcp.ServerPolicy","signatures":[],"type":"TimeSpan","doc":{"summary":"Gets the longest a single wait may block before reporting a timeout.","body":"The ceiling bounds the model's turn rather than the transport: waits\nawait throughout, so a long one does not stall other calls. What an\nunbounded wait costs is the turn itself — a badly chosen pattern would\nspend all of it with nothing to show. Client-managed MCP tasks cover\nwork that legitimately outlives one synchronous request."},"source":{"file":"src/LibTmux.Mcp/Policy/ServerPolicy.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ServerPolicy.WaitCeiling","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-serverpolicy-waitceiling"},{"id":"LibTmux.Mcp.ServerPolicy.MaxLines","name":"MaxLines","kind":"property","modifiers":[],"parent":"LibTmux.Mcp.ServerPolicy","signatures":[],"type":"int","doc":{"summary":"Gets the line budget a capture uses when the caller names none."},"source":{"file":"src/LibTmux.Mcp/Policy/ServerPolicy.cs","line":57,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ServerPolicy.MaxLines","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-serverpolicy-maxlines"},{"id":"LibTmux.Mcp.ServerPolicy.MaxBytes","name":"MaxBytes","kind":"property","modifiers":[],"parent":"LibTmux.Mcp.ServerPolicy","signatures":[],"type":"int","doc":{"summary":"Gets the byte budget one content-bearing result may carry."},"source":{"file":"src/LibTmux.Mcp/Policy/ServerPolicy.cs","line":60,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ServerPolicy.MaxBytes","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-serverpolicy-maxbytes"},{"id":"LibTmux.Mcp.ServerPolicy.AllowPollingFallback","name":"AllowPollingFallback","kind":"property","modifiers":[],"parent":"LibTmux.Mcp.ServerPolicy","signatures":[],"type":"bool","doc":{"summary":"Gets whether pane text waits may poll when control observation is unavailable.","body":"Disabled by default. Results disclose activation; command completion still uses tmux wait channels."},"source":{"file":"src/LibTmux.Mcp/Policy/ServerPolicy.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ServerPolicy.AllowPollingFallback","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-serverpolicy-allowpollingfallback"},{"id":"LibTmux.Mcp.ServerPolicy.FromEnvironment","name":"FromEnvironment","kind":"method","modifiers":["static"],"parent":"LibTmux.Mcp.ServerPolicy","signatures":[{"params":[{"name":"read","type":"Func","doc":"Answers an environment variable, or null when it is unset."},{"name":"logger","type":"ILogger?","default":"null","doc":"Records a clamped or unreadable value."}],"returns":"ServerPolicy","returnsDoc":"The resolved policy."}],"doc":{"summary":"Reads the policy out of a set of environment variables."},"source":{"file":"src/LibTmux.Mcp/Policy/ServerPolicy.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ServerPolicy.FromEnvironment","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-serverpolicy-fromenvironment"},{"id":"LibTmux.Mcp.ServerPolicy.EffectiveTimeout","name":"EffectiveTimeout","kind":"method","modifiers":[],"parent":"LibTmux.Mcp.ServerPolicy","signatures":[{"params":[{"name":"requested","type":"TimeSpan?","doc":"What the caller asked for, or null for the ceiling."}],"returns":"TimeSpan","returnsDoc":"The duration a wait will actually use."}],"doc":{"summary":"Lowers a caller's timeout to the ceiling this policy sets.","body":"An over-large request is honoured at the ceiling rather than refused,\nand the result reports the value used, so a model learns the policy\nfrom what came back instead of from a failed call."},"source":{"file":"src/LibTmux.Mcp/Policy/ServerPolicy.cs","line":110,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ServerPolicy.EffectiveTimeout","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-serverpolicy-effectivetimeout"},{"id":"LibTmux.Mcp.BoundedText","name":"BoundedText","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record BoundedText(\n IReadOnlyList Lines,\n bool Truncated,\n int DroppedLines,\n int DroppedBytes)","params":[{"name":"Lines","type":"IReadOnlyList","doc":"The text that fits, oldest first."},{"name":"Truncated","type":"bool","doc":"Whether anything was dropped to make it fit."},{"name":"DroppedLines","type":"int","doc":"How many complete lines were dropped from the start."},{"name":"DroppedBytes","type":"int","doc":"The exact number of UTF-8 bytes of PANE TEXT dropped from the start. This is\nnot the unit the byte budget is spent in: that bounds the whole serialized\nresult, where the same text is escaped as JSON and carried twice, so for\nwide characters it can be several times larger than the number here."}]}],"doc":{"summary":"Terminal text cut to fit a budget, with what was cut reported.","body":"Dropping is always from the oldest end. A terminal's newest line is the one\nthat says what happened, so a budget that discarded it would answer the\nwrong question. Reporting the loss is what separates a short answer from a\nwrong one: a reader who cannot see that lines are missing will conclude the\npane never printed them."},"source":{"file":"src/LibTmux.Mcp/Results/BoundedText.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.BoundedText","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-boundedtext"},{"id":"LibTmux.Mcp.BoundedText.Empty","name":"Empty","kind":"property","modifiers":["static"],"parent":"LibTmux.Mcp.BoundedText","signatures":[],"type":"BoundedText","doc":{"summary":"An empty result that dropped nothing."},"source":{"file":"src/LibTmux.Mcp/Results/BoundedText.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.BoundedText.Empty","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-boundedtext-empty"},{"id":"LibTmux.Mcp.BoundedText.Fit","name":"Fit","kind":"method","modifiers":["static"],"parent":"LibTmux.Mcp.BoundedText","signatures":[{"params":[{"name":"lines","type":"IReadOnlyList","doc":"The captured text, oldest first."},{"name":"maxLines","type":"int?","doc":"The most lines to keep, or null for no line limit."},{"name":"maxBytes","type":"int","doc":"The most UTF-8 bytes to keep."}],"returns":"BoundedText","returnsDoc":"The text that fits, and what it cost to make it fit."}],"doc":{"summary":"Cuts lines down to a line and byte budget, keeping the newest."},"source":{"file":"src/LibTmux.Mcp/Results/BoundedText.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.BoundedText.Fit","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-boundedtext-fit"},{"id":"LibTmux.Mcp.BoundedText.ToDisplayString","name":"ToDisplayString","kind":"method","modifiers":[],"parent":"LibTmux.Mcp.BoundedText","signatures":[{"params":[],"returns":"string","returnsDoc":"The lines joined by newlines, after any truncation notice."}],"doc":{"summary":"Renders the text as one block, noting any loss at the top.","body":"The notice leads because a reader who sees it will read what follows as\na tail rather than as the whole pane."},"source":{"file":"src/LibTmux.Mcp/Results/BoundedText.cs","line":117,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.BoundedText.ToDisplayString","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-boundedtext-todisplaystring"},{"id":"LibTmux.Mcp.BoundedText.Lines","name":"Lines","kind":"property","parent":"LibTmux.Mcp.BoundedText","type":"IReadOnlyList","modifiers":[],"signatures":[],"doc":{"summary":"The text that fits, oldest first."},"source":{"file":"src/LibTmux.Mcp/Results/BoundedText.cs","line":23,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.BoundedText.Lines","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-boundedtext-lines"},{"id":"LibTmux.Mcp.BoundedText.Truncated","name":"Truncated","kind":"property","parent":"LibTmux.Mcp.BoundedText","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether anything was dropped to make it fit."},"source":{"file":"src/LibTmux.Mcp/Results/BoundedText.cs","line":24,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.BoundedText.Truncated","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-boundedtext-truncated"},{"id":"LibTmux.Mcp.BoundedText.DroppedLines","name":"DroppedLines","kind":"property","parent":"LibTmux.Mcp.BoundedText","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"How many complete lines were dropped from the start."},"source":{"file":"src/LibTmux.Mcp/Results/BoundedText.cs","line":25,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.BoundedText.DroppedLines","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-boundedtext-droppedlines"},{"id":"LibTmux.Mcp.BoundedText.DroppedBytes","name":"DroppedBytes","kind":"property","parent":"LibTmux.Mcp.BoundedText","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"The exact number of UTF-8 bytes of PANE TEXT dropped from the start. This is\nnot the unit the byte budget is spent in: that bounds the whole serialized\nresult, where the same text is escaped as JSON and carried twice, so for\nwide characters it can be several times larger than the number here."},"source":{"file":"src/LibTmux.Mcp/Results/BoundedText.cs","line":26,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.BoundedText.DroppedBytes","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-boundedtext-droppedbytes"},{"id":"LibTmux.Mcp.PaneInfo","name":"PaneInfo","kind":"class","modifiers":[],"signatures":[{"raw":"[UnsupportedOSPlatform(\"windows\")]\npublic sealed record PaneInfo(\n string PaneId,\n string WindowId,\n string SessionId,\n int Index,\n int Width,\n int Height,\n string? Title,\n bool Active,\n bool Dead,\n bool Zoomed,\n bool InMode,\n string? CurrentCommand,\n string? CurrentPath,\n int? Pid,\n int? HistorySize,\n int? HistoryLimit,\n bool IsCaller)","params":[{"name":"PaneId","type":"string","doc":"The pane's identifier, such as %1."},{"name":"WindowId","type":"string","doc":"The window holding it, such as @0."},{"name":"SessionId","type":"string","doc":"The session holding that window, such as $0."},{"name":"Index","type":"int","doc":"The pane's position within its window."},{"name":"Width","type":"int","doc":"Columns."},{"name":"Height","type":"int","doc":"Rows."},{"name":"Title","type":"string?","doc":"The pane title, when it has one."},{"name":"Active","type":"bool","doc":"Whether it is the window's active pane."},{"name":"Dead","type":"bool","doc":"Whether the program in it has exited."},{"name":"Zoomed","type":"bool","doc":"Whether it is zoomed to fill its window."},{"name":"InMode","type":"bool","doc":"Whether it is in copy mode or another pane mode."},{"name":"CurrentCommand","type":"string?","doc":"The command tmux believes is running."},{"name":"CurrentPath","type":"string?","doc":"The working directory tmux reports."},{"name":"Pid","type":"int?","doc":"The process the pane started."},{"name":"HistorySize","type":"int?","doc":"Lines currently held in scrollback."},{"name":"HistoryLimit","type":"int?","doc":"The most lines scrollback will hold."},{"name":"IsCaller","type":"bool","doc":"Whether this is the pane this server runs inside."}]}],"doc":{"summary":"What a pane is and what is running in it.","body":" is how a model answers \"which pane am I in?\"\nwithout a tool of its own: filter a listing for it."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo"},{"id":"LibTmux.Mcp.PaneInfo.From","name":"From","kind":"method","modifiers":["static"],"parent":"LibTmux.Mcp.PaneInfo","signatures":[{"params":[{"name":"pane","type":"Pane","doc":"The pane to describe."},{"name":"callerPaneId","type":"string?","default":"null","doc":"The pane this process runs in, when it runs in one."}],"returns":"PaneInfo","returnsDoc":"The description."}],"doc":{"summary":"Describes a pane the library has already materialized."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":51,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.From","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-from"},{"id":"LibTmux.Mcp.PaneInfo.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The pane's identifier, such as %1."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":29,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.PaneId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-paneid"},{"id":"LibTmux.Mcp.PaneInfo.WindowId","name":"WindowId","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The window holding it, such as @0."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":30,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.WindowId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-windowid"},{"id":"LibTmux.Mcp.PaneInfo.SessionId","name":"SessionId","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The session holding that window, such as $0."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":31,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.SessionId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-sessionid"},{"id":"LibTmux.Mcp.PaneInfo.Index","name":"Index","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"The pane's position within its window."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":32,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.Index","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-index"},{"id":"LibTmux.Mcp.PaneInfo.Width","name":"Width","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Columns."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":33,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.Width","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-width"},{"id":"LibTmux.Mcp.PaneInfo.Height","name":"Height","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Rows."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.Height","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-height"},{"id":"LibTmux.Mcp.PaneInfo.Title","name":"Title","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The pane title, when it has one."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":35,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.Title","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-title"},{"id":"LibTmux.Mcp.PaneInfo.Active","name":"Active","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether it is the window's active pane."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":36,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.Active","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-active"},{"id":"LibTmux.Mcp.PaneInfo.Dead","name":"Dead","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the program in it has exited."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":37,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.Dead","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-dead"},{"id":"LibTmux.Mcp.PaneInfo.Zoomed","name":"Zoomed","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether it is zoomed to fill its window."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":38,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.Zoomed","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-zoomed"},{"id":"LibTmux.Mcp.PaneInfo.InMode","name":"InMode","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether it is in copy mode or another pane mode."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":39,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.InMode","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-inmode"},{"id":"LibTmux.Mcp.PaneInfo.CurrentCommand","name":"CurrentCommand","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The command tmux believes is running."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":40,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.CurrentCommand","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-currentcommand"},{"id":"LibTmux.Mcp.PaneInfo.CurrentPath","name":"CurrentPath","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The working directory tmux reports."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":41,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.CurrentPath","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-currentpath"},{"id":"LibTmux.Mcp.PaneInfo.Pid","name":"Pid","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"The process the pane started."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":42,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.Pid","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-pid"},{"id":"LibTmux.Mcp.PaneInfo.HistorySize","name":"HistorySize","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"Lines currently held in scrollback."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":43,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.HistorySize","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-historysize"},{"id":"LibTmux.Mcp.PaneInfo.HistoryLimit","name":"HistoryLimit","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"The most lines scrollback will hold."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":44,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.HistoryLimit","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-historylimit"},{"id":"LibTmux.Mcp.PaneInfo.IsCaller","name":"IsCaller","kind":"property","parent":"LibTmux.Mcp.PaneInfo","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether this is the pane this server runs inside."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":45,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInfo.IsCaller","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinfo-iscaller"},{"id":"LibTmux.Mcp.WindowInfo","name":"WindowInfo","kind":"class","modifiers":[],"signatures":[{"raw":"[UnsupportedOSPlatform(\"windows\")]\npublic sealed record WindowInfo(\n string WindowId,\n string SessionId,\n int Index,\n string Name,\n int Width,\n int Height,\n bool Active,\n int? PaneCount,\n string? Layout)","params":[{"name":"WindowId","type":"string","doc":"The window's identifier, such as @0."},{"name":"SessionId","type":"string","doc":"The session holding it, such as $0."},{"name":"Index","type":"int","doc":"The window's index within its session."},{"name":"Name","type":"string","doc":"The window name."},{"name":"Width","type":"int","doc":"Columns."},{"name":"Height","type":"int","doc":"Rows."},{"name":"Active","type":"bool","doc":"Whether it is the session's current window."},{"name":"PaneCount","type":"int?","doc":"How many panes it holds."},{"name":"Layout","type":"string?","doc":"tmux's layout string for it."}]}],"doc":{"summary":"What a window is and how it is laid out."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":87,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo"},{"id":"LibTmux.Mcp.WindowInfo.From","name":"From","kind":"method","modifiers":["static"],"parent":"LibTmux.Mcp.WindowInfo","signatures":[{"params":[{"name":"window","type":"Window","doc":"The window to describe."}],"returns":"WindowInfo","returnsDoc":"The description."}],"doc":{"summary":"Describes a window the library has already materialized."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":102,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.From","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-from"},{"id":"LibTmux.Mcp.WindowInfo.WindowId","name":"WindowId","kind":"property","parent":"LibTmux.Mcp.WindowInfo","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The window's identifier, such as @0."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":89,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.WindowId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-windowid"},{"id":"LibTmux.Mcp.WindowInfo.SessionId","name":"SessionId","kind":"property","parent":"LibTmux.Mcp.WindowInfo","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The session holding it, such as $0."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":90,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.SessionId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-sessionid"},{"id":"LibTmux.Mcp.WindowInfo.Index","name":"Index","kind":"property","parent":"LibTmux.Mcp.WindowInfo","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"The window's index within its session."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":91,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.Index","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-index"},{"id":"LibTmux.Mcp.WindowInfo.Name","name":"Name","kind":"property","parent":"LibTmux.Mcp.WindowInfo","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The window name."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":92,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.Name","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-name"},{"id":"LibTmux.Mcp.WindowInfo.Width","name":"Width","kind":"property","parent":"LibTmux.Mcp.WindowInfo","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Columns."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":93,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.Width","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-width"},{"id":"LibTmux.Mcp.WindowInfo.Height","name":"Height","kind":"property","parent":"LibTmux.Mcp.WindowInfo","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Rows."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":94,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.Height","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-height"},{"id":"LibTmux.Mcp.WindowInfo.Active","name":"Active","kind":"property","parent":"LibTmux.Mcp.WindowInfo","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether it is the session's current window."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":95,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.Active","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-active"},{"id":"LibTmux.Mcp.WindowInfo.PaneCount","name":"PaneCount","kind":"property","parent":"LibTmux.Mcp.WindowInfo","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"How many panes it holds."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":96,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.PaneCount","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-panecount"},{"id":"LibTmux.Mcp.WindowInfo.Layout","name":"Layout","kind":"property","parent":"LibTmux.Mcp.WindowInfo","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"tmux's layout string for it."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":97,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WindowInfo.Layout","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-windowinfo-layout"},{"id":"LibTmux.Mcp.SessionInfo","name":"SessionInfo","kind":"class","modifiers":[],"signatures":[{"raw":"[UnsupportedOSPlatform(\"windows\")]\npublic sealed record SessionInfo(\n string SessionId,\n string Name,\n bool Attached,\n int? WindowCount)","params":[{"name":"SessionId","type":"string","doc":"The session's identifier, such as $0."},{"name":"Name","type":"string","doc":"The session name."},{"name":"Attached","type":"bool","doc":"Whether a client is attached to it. Never counts a control client this MCP\nserver opened for a wait or a capture - tmux counts that the same way it\ncounts a human client, and a session nobody is watching must not read as\nattached just because it is being observed."},{"name":"WindowCount","type":"int?","doc":"How many windows it holds."}]}],"doc":{"summary":"What a session is.","body":"There is no session size. tmux removed the session_width and\nsession_height formats in 2.9, so on every supported version those\nfields could only ever answer null."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":134,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SessionInfo","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sessioninfo"},{"id":"LibTmux.Mcp.SessionInfo.From","name":"From","kind":"method","modifiers":["static"],"parent":"LibTmux.Mcp.SessionInfo","signatures":[{"params":[{"name":"session","type":"Session","doc":"The session to describe."},{"name":"attached","type":"bool?","default":"null","doc":"Whether a client other than this server's own observers is attached,\nor null to trust the session's own captured field as-is."}],"returns":"SessionInfo","returnsDoc":"The description."}],"doc":{"summary":"Describes a session the library has already materialized."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":148,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SessionInfo.From","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sessioninfo-from"},{"id":"LibTmux.Mcp.SessionInfo.SessionId","name":"SessionId","kind":"property","parent":"LibTmux.Mcp.SessionInfo","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The session's identifier, such as $0."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":136,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SessionInfo.SessionId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sessioninfo-sessionid"},{"id":"LibTmux.Mcp.SessionInfo.Name","name":"Name","kind":"property","parent":"LibTmux.Mcp.SessionInfo","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The session name."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":137,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SessionInfo.Name","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sessioninfo-name"},{"id":"LibTmux.Mcp.SessionInfo.Attached","name":"Attached","kind":"property","parent":"LibTmux.Mcp.SessionInfo","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether a client is attached to it. Never counts a control client this MCP\nserver opened for a wait or a capture - tmux counts that the same way it\ncounts a human client, and a session nobody is watching must not read as\nattached just because it is being observed."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":138,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SessionInfo.Attached","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sessioninfo-attached"},{"id":"LibTmux.Mcp.SessionInfo.WindowCount","name":"WindowCount","kind":"property","parent":"LibTmux.Mcp.SessionInfo","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"How many windows it holds."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":139,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SessionInfo.WindowCount","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sessioninfo-windowcount"},{"id":"LibTmux.Mcp.TmuxServerInfo","name":"TmuxServerInfo","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record TmuxServerInfo(\n string? SocketName,\n string? SocketPath,\n string? Version,\n int SessionCount,\n int WindowCount,\n int PaneCount,\n string? CallerPaneId,\n string? CallerPaneSocket);","params":[{"name":"SocketName","type":"string?","doc":"The -L name this server answers on, or null when it was reached by\npath instead — a path-selected socket has no name of its own."},{"name":"SocketPath","type":"string?","doc":"The -S path this server answers on, or null when reached by name."},{"name":"Version","type":"string?","doc":"The tmux version running it, or null when the server is not answering —\nincluding one that was running earlier in this process and has since\nexited, so this never reports a stale version for a server that is gone."},{"name":"SessionCount","type":"int","doc":"How many sessions it holds."},{"name":"WindowCount","type":"int","doc":"How many windows, across every session."},{"name":"PaneCount","type":"int","doc":"How many panes, across every window."},{"name":"CallerPaneId","type":"string?","doc":"The pane this server runs in, when it runs in one."},{"name":"CallerPaneSocket","type":"string?","doc":"The socket the caller's own pane lives on, when that is not this server's.\nA null CallerPaneId beside a value here means the caller's terminal\nis on a different tmux server and no listing from this one can contain it —\nwhich is the default arrangement, not a failure to determine anything."}]}],"doc":{"summary":"What a tmux server is and how much it is holding."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":181,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxServerInfo","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxserverinfo"},{"id":"LibTmux.Mcp.TmuxServerInfo.SocketName","name":"SocketName","kind":"property","parent":"LibTmux.Mcp.TmuxServerInfo","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The -L name this server answers on, or null when it was reached by\npath instead — a path-selected socket has no name of its own."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":182,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxServerInfo.SocketName","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxserverinfo-socketname"},{"id":"LibTmux.Mcp.TmuxServerInfo.SocketPath","name":"SocketPath","kind":"property","parent":"LibTmux.Mcp.TmuxServerInfo","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The -S path this server answers on, or null when reached by name."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":183,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxServerInfo.SocketPath","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxserverinfo-socketpath"},{"id":"LibTmux.Mcp.TmuxServerInfo.Version","name":"Version","kind":"property","parent":"LibTmux.Mcp.TmuxServerInfo","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The tmux version running it, or null when the server is not answering —\nincluding one that was running earlier in this process and has since\nexited, so this never reports a stale version for a server that is gone."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":184,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxServerInfo.Version","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxserverinfo-version"},{"id":"LibTmux.Mcp.TmuxServerInfo.SessionCount","name":"SessionCount","kind":"property","parent":"LibTmux.Mcp.TmuxServerInfo","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"How many sessions it holds."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":185,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxServerInfo.SessionCount","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxserverinfo-sessioncount"},{"id":"LibTmux.Mcp.TmuxServerInfo.WindowCount","name":"WindowCount","kind":"property","parent":"LibTmux.Mcp.TmuxServerInfo","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"How many windows, across every session."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":186,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxServerInfo.WindowCount","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxserverinfo-windowcount"},{"id":"LibTmux.Mcp.TmuxServerInfo.PaneCount","name":"PaneCount","kind":"property","parent":"LibTmux.Mcp.TmuxServerInfo","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"How many panes, across every window."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":187,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxServerInfo.PaneCount","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxserverinfo-panecount"},{"id":"LibTmux.Mcp.TmuxServerInfo.CallerPaneId","name":"CallerPaneId","kind":"property","parent":"LibTmux.Mcp.TmuxServerInfo","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The pane this server runs in, when it runs in one."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":188,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxServerInfo.CallerPaneId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxserverinfo-callerpaneid"},{"id":"LibTmux.Mcp.TmuxServerInfo.CallerPaneSocket","name":"CallerPaneSocket","kind":"property","parent":"LibTmux.Mcp.TmuxServerInfo","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The socket the caller's own pane lives on, when that is not this server's.\nA null CallerPaneId beside a value here means the caller's terminal\nis on a different tmux server and no listing from this one can contain it —\nwhich is the default arrangement, not a failure to determine anything."},"source":{"file":"src/LibTmux.Mcp/Results/Entities.cs","line":189,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TmuxServerInfo.CallerPaneSocket","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tmuxserverinfo-callerpanesocket"},{"id":"LibTmux.Mcp.PaneSnapshot","name":"PaneSnapshot","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record PaneSnapshot(\n PaneInfo Pane,\n BoundedText Content,\n int? CursorX,\n int? CursorY,\n bool AlternateScreen);","params":[{"name":"Pane","type":"PaneInfo","doc":"What the pane is and what runs in it."},{"name":"Content","type":"BoundedText","doc":"What is on the screen, within the budget."},{"name":"CursorX","type":"int?","doc":"The cursor's column, zero-based."},{"name":"CursorY","type":"int?","doc":"The cursor's row within the visible screen, zero-based."},{"name":"AlternateScreen","type":"bool","doc":"Whether a full-screen program owns the pane. When it does, scrollback holds\nwhatever was on screen before that program started, not its output."}]}],"doc":{"summary":"A pane's content and its screen state, read together.","body":"One call rather than a capture followed by an info read: the two would be\nseparated by however long the model took to ask again, and a pane can move\nin between, which is how a cursor ends up described against the wrong text."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":17,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneSnapshot","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panesnapshot"},{"id":"LibTmux.Mcp.PaneSnapshot.Pane","name":"Pane","kind":"property","parent":"LibTmux.Mcp.PaneSnapshot","type":"PaneInfo","modifiers":[],"signatures":[],"doc":{"summary":"What the pane is and what runs in it."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":18,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneSnapshot.Pane","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panesnapshot-pane"},{"id":"LibTmux.Mcp.PaneSnapshot.Content","name":"Content","kind":"property","parent":"LibTmux.Mcp.PaneSnapshot","type":"BoundedText","modifiers":[],"signatures":[],"doc":{"summary":"What is on the screen, within the budget."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":19,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneSnapshot.Content","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panesnapshot-content"},{"id":"LibTmux.Mcp.PaneSnapshot.CursorX","name":"CursorX","kind":"property","parent":"LibTmux.Mcp.PaneSnapshot","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"The cursor's column, zero-based."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneSnapshot.CursorX","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panesnapshot-cursorx"},{"id":"LibTmux.Mcp.PaneSnapshot.CursorY","name":"CursorY","kind":"property","parent":"LibTmux.Mcp.PaneSnapshot","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"The cursor's row within the visible screen, zero-based."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":21,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneSnapshot.CursorY","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panesnapshot-cursory"},{"id":"LibTmux.Mcp.PaneSnapshot.AlternateScreen","name":"AlternateScreen","kind":"property","parent":"LibTmux.Mcp.PaneSnapshot","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether a full-screen program owns the pane. When it does, scrollback holds\nwhatever was on screen before that program started, not its output."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":22,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneSnapshot.AlternateScreen","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panesnapshot-alternatescreen"},{"id":"LibTmux.Mcp.CaptureResult","name":"CaptureResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record CaptureResult(string PaneId, BoundedText Content);","params":[{"name":"PaneId","type":"string","doc":"The pane that was read."},{"name":"Content","type":"BoundedText","doc":"The text, within the budget."}]}],"doc":{"summary":"What a pane was showing."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.CaptureResult","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-captureresult"},{"id":"LibTmux.Mcp.CaptureResult.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.Mcp.CaptureResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The pane that was read."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.CaptureResult.PaneId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-captureresult-paneid"},{"id":"LibTmux.Mcp.CaptureResult.Content","name":"Content","kind":"property","parent":"LibTmux.Mcp.CaptureResult","type":"BoundedText","modifiers":[],"signatures":[],"doc":{"summary":"The text, within the budget."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":27,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.CaptureResult.Content","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-captureresult-content"},{"id":"LibTmux.Mcp.TailResult","name":"TailResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record TailResult(\n string PaneId,\n BoundedText Content,\n string Cursor,\n bool LinesMissed,\n bool AnchorLost);","params":[{"name":"PaneId","type":"string","doc":"The pane that was read."},{"name":"Content","type":"BoundedText","doc":"The new text, within the budget."},{"name":"Cursor","type":"string","doc":"Where this read finished. Pass it to the next call to continue from here.\nIt is opaque; do not build one."},{"name":"LinesMissed","type":"bool","doc":"Whether scrollback dropped lines this read never saw. tmux frees the oldest\nhistory once history-limit is reached, so a pane that printed more\nthan that between two reads loses the lines in between for good."},{"name":"AnchorLost","type":"bool","doc":"Whether the previous position could no longer be found, so the read started\nfrom what is visible now rather than from where it left off."}]}],"doc":{"summary":"What a pane has printed since it was last read.","body":"This is the tool for watching a pane across turns. It answers only what is\nnew, so the tenth read of a busy pane costs what the first one did rather\nthan ten times as much."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":50,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TailResult","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tailresult"},{"id":"LibTmux.Mcp.TailResult.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.Mcp.TailResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The pane that was read."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":51,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TailResult.PaneId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tailresult-paneid"},{"id":"LibTmux.Mcp.TailResult.Content","name":"Content","kind":"property","parent":"LibTmux.Mcp.TailResult","type":"BoundedText","modifiers":[],"signatures":[],"doc":{"summary":"The new text, within the budget."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":52,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TailResult.Content","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tailresult-content"},{"id":"LibTmux.Mcp.TailResult.Cursor","name":"Cursor","kind":"property","parent":"LibTmux.Mcp.TailResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"Where this read finished. Pass it to the next call to continue from here.\nIt is opaque; do not build one."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":53,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TailResult.Cursor","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tailresult-cursor"},{"id":"LibTmux.Mcp.TailResult.LinesMissed","name":"LinesMissed","kind":"property","parent":"LibTmux.Mcp.TailResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether scrollback dropped lines this read never saw. tmux frees the oldest\nhistory once history-limit is reached, so a pane that printed more\nthan that between two reads loses the lines in between for good."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":54,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TailResult.LinesMissed","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tailresult-linesmissed"},{"id":"LibTmux.Mcp.TailResult.AnchorLost","name":"AnchorLost","kind":"property","parent":"LibTmux.Mcp.TailResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the previous position could no longer be found, so the read started\nfrom what is visible now rather than from where it left off."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":55,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.TailResult.AnchorLost","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tailresult-anchorlost"},{"id":"LibTmux.Mcp.WaitOutcome","name":"WaitOutcome","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"How a wait ended."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":58,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitOutcome","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitoutcome"},{"id":"LibTmux.Mcp.WaitOutcome.Matched","name":"Matched","kind":"constant","modifiers":[],"parent":"LibTmux.Mcp.WaitOutcome","signatures":[],"doc":{"summary":"One of the patterns the caller asked for appeared."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":61,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitOutcome.Matched","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitoutcome-matched"},{"id":"LibTmux.Mcp.WaitOutcome.AnyOutput","name":"AnyOutput","kind":"constant","modifiers":[],"parent":"LibTmux.Mcp.WaitOutcome","signatures":[],"doc":{"summary":"The pane printed something, and the caller asked for any output."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":64,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitOutcome.AnyOutput","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitoutcome-anyoutput"},{"id":"LibTmux.Mcp.WaitOutcome.Stopped","name":"Stopped","kind":"constant","modifiers":[],"parent":"LibTmux.Mcp.WaitOutcome","signatures":[],"doc":{"summary":"One of the caller's stop patterns appeared, so waiting was pointless."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":67,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitOutcome.Stopped","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitoutcome-stopped"},{"id":"LibTmux.Mcp.WaitOutcome.Timeout","name":"Timeout","kind":"constant","modifiers":[],"parent":"LibTmux.Mcp.WaitOutcome","signatures":[],"doc":{"summary":"The time ran out before anything matched."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":70,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitOutcome.Timeout","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitoutcome-timeout"},{"id":"LibTmux.Mcp.WaitOutcome.PaneDied","name":"PaneDied","kind":"constant","modifiers":[],"parent":"LibTmux.Mcp.WaitOutcome","signatures":[],"doc":{"summary":"The pane's program exited while the wait was running."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":73,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitOutcome.PaneDied","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitoutcome-panedied"},{"id":"LibTmux.Mcp.WaitOutcome.PresentAtEntry","name":"PresentAtEntry","kind":"constant","modifiers":[],"parent":"LibTmux.Mcp.WaitOutcome","signatures":[],"doc":{"summary":"A wanted pattern was already on screen in the initial capture.","body":"The wait returns this outcome before waiting for new output.\n names the existing match."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":82,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitOutcome.PresentAtEntry","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitoutcome-presentatentry"},{"id":"LibTmux.Mcp.WaitResult","name":"WaitResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record WaitResult(\n string PaneId,\n WaitOutcome Outcome,\n string? MatchedPattern,\n BoundedText Tail,\n double ElapsedSeconds,\n double EffectiveTimeoutSeconds)","params":[{"name":"PaneId","type":"string","doc":"The pane that was watched."},{"name":"Outcome","type":"WaitOutcome","doc":"How the wait ended."},{"name":"MatchedPattern","type":"string?","doc":"The pattern that ended it, when one did."},{"name":"Tail","type":"BoundedText","doc":"The last lines of the pane when the wait ended."},{"name":"ElapsedSeconds","type":"double","doc":"How long the wait ran."},{"name":"EffectiveTimeoutSeconds","type":"double","doc":"The timeout actually used. An over-large request is lowered to the server's\nceiling rather than refused, so read this instead of assuming the value\nasked for was honoured."}]}],"doc":{"summary":"What happened while waiting for a pane to print something."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":96,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult"},{"id":"LibTmux.Mcp.WaitResult.PollingFallback","name":"PollingFallback","kind":"property","modifiers":[],"parent":"LibTmux.Mcp.WaitResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether this wait enabled polling after control observation was unavailable.","body":"False identifies control observation. True includes an entry match obtained before the first timed poll."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":106,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.PollingFallback","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-pollingfallback"},{"id":"LibTmux.Mcp.WaitResult.EventsDropped","name":"EventsDropped","kind":"property","modifiers":[],"parent":"LibTmux.Mcp.WaitResult","signatures":[],"type":"long","doc":{"summary":"Gets control notifications dropped by the watched session during this wait.","body":"Loss wakes a fresh pane read but cannot recover intermediate output.\nThe session-wide count can include notifications about other panes."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":113,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.EventsDropped","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-eventsdropped"},{"id":"LibTmux.Mcp.WaitResult.LinesMissed","name":"LinesMissed","kind":"property","modifiers":[],"parent":"LibTmux.Mcp.WaitResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether unread rendered lines may have been lost."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":116,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.LinesMissed","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-linesmissed"},{"id":"LibTmux.Mcp.WaitResult.AnchorLost","name":"AnchorLost","kind":"property","modifiers":[],"parent":"LibTmux.Mcp.WaitResult","signatures":[],"type":"bool","doc":{"summary":"Gets whether the prior grid anchor could not be recovered."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":119,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.AnchorLost","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-anchorlost"},{"id":"LibTmux.Mcp.WaitResult.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.Mcp.WaitResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The pane that was watched."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":97,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.PaneId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-paneid"},{"id":"LibTmux.Mcp.WaitResult.Outcome","name":"Outcome","kind":"property","parent":"LibTmux.Mcp.WaitResult","type":"WaitOutcome","modifiers":[],"signatures":[],"doc":{"summary":"How the wait ended."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":98,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.Outcome","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-outcome"},{"id":"LibTmux.Mcp.WaitResult.MatchedPattern","name":"MatchedPattern","kind":"property","parent":"LibTmux.Mcp.WaitResult","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The pattern that ended it, when one did."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":99,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.MatchedPattern","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-matchedpattern"},{"id":"LibTmux.Mcp.WaitResult.Tail","name":"Tail","kind":"property","parent":"LibTmux.Mcp.WaitResult","type":"BoundedText","modifiers":[],"signatures":[],"doc":{"summary":"The last lines of the pane when the wait ended."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":100,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.Tail","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-tail"},{"id":"LibTmux.Mcp.WaitResult.ElapsedSeconds","name":"ElapsedSeconds","kind":"property","parent":"LibTmux.Mcp.WaitResult","type":"double","modifiers":[],"signatures":[],"doc":{"summary":"How long the wait ran."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":101,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.ElapsedSeconds","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-elapsedseconds"},{"id":"LibTmux.Mcp.WaitResult.EffectiveTimeoutSeconds","name":"EffectiveTimeoutSeconds","kind":"property","parent":"LibTmux.Mcp.WaitResult","type":"double","modifiers":[],"signatures":[],"doc":{"summary":"The timeout actually used. An over-large request is lowered to the server's\nceiling rather than refused, so read this instead of assuming the value\nasked for was honoured."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":102,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.WaitResult.EffectiveTimeoutSeconds","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-waitresult-effectivetimeoutseconds"},{"id":"LibTmux.Mcp.ChannelWaitResult","name":"ChannelWaitResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record ChannelWaitResult(\n string Changed,\n string Channel,\n bool Signalled,\n double ElapsedSeconds,\n double EffectiveTimeoutSeconds);","params":[{"name":"Changed","type":"string","doc":"What happened, in plain words."},{"name":"Channel","type":"string","doc":"The channel that was waited on."},{"name":"Signalled","type":"bool","doc":"Whether the channel was signalled. False means this attempt expired; tmux\ncannot say whether a signal raced the withdrawal, so it does not prove the\nchannel was never signalled."},{"name":"ElapsedSeconds","type":"double","doc":"How long the wait ran."},{"name":"EffectiveTimeoutSeconds","type":"double","doc":"The timeout actually used. An over-large request is lowered to the server's\nceiling rather than refused, so read this instead of assuming the value\nasked for was honoured."}]}],"doc":{"summary":"What happened while waiting on a tmux wait-for channel."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":136,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ChannelWaitResult","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-channelwaitresult"},{"id":"LibTmux.Mcp.ChannelWaitResult.Changed","name":"Changed","kind":"property","parent":"LibTmux.Mcp.ChannelWaitResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"What happened, in plain words."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":137,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ChannelWaitResult.Changed","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-channelwaitresult-changed"},{"id":"LibTmux.Mcp.ChannelWaitResult.Channel","name":"Channel","kind":"property","parent":"LibTmux.Mcp.ChannelWaitResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The channel that was waited on."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":138,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ChannelWaitResult.Channel","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-channelwaitresult-channel"},{"id":"LibTmux.Mcp.ChannelWaitResult.Signalled","name":"Signalled","kind":"property","parent":"LibTmux.Mcp.ChannelWaitResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the channel was signalled. False means this attempt expired; tmux\ncannot say whether a signal raced the withdrawal, so it does not prove the\nchannel was never signalled."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":139,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ChannelWaitResult.Signalled","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-channelwaitresult-signalled"},{"id":"LibTmux.Mcp.ChannelWaitResult.ElapsedSeconds","name":"ElapsedSeconds","kind":"property","parent":"LibTmux.Mcp.ChannelWaitResult","type":"double","modifiers":[],"signatures":[],"doc":{"summary":"How long the wait ran."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":140,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ChannelWaitResult.ElapsedSeconds","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-channelwaitresult-elapsedseconds"},{"id":"LibTmux.Mcp.ChannelWaitResult.EffectiveTimeoutSeconds","name":"EffectiveTimeoutSeconds","kind":"property","parent":"LibTmux.Mcp.ChannelWaitResult","type":"double","modifiers":[],"signatures":[],"doc":{"summary":"The timeout actually used. An over-large request is lowered to the server's\nceiling rather than refused, so read this instead of assuming the value\nasked for was honoured."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":141,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ChannelWaitResult.EffectiveTimeoutSeconds","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-channelwaitresult-effectivetimeoutseconds"},{"id":"LibTmux.Mcp.RunResult","name":"RunResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record RunResult(\n string PaneId,\n int? ExitStatus,\n bool TimedOut,\n BoundedText Output,\n double ElapsedSeconds,\n double EffectiveTimeoutSeconds,\n bool LinesMissed = false,\n bool AnchorLost = false,\n bool Started = true,\n bool PaneExited = false);","params":[{"name":"PaneId","type":"string","doc":"The pane it ran in."},{"name":"ExitStatus","type":"int?","doc":"The shell's exit status, or null when the command did not finish in time."},{"name":"TimedOut","type":"bool","doc":"Whether waiting stopped before completion. The shell command may still be\nrunning; inspect the pane and do not retry it."},{"name":"Output","type":"BoundedText","doc":"What the command printed, within the budget."},{"name":"ElapsedSeconds","type":"double","doc":"How long it took."},{"name":"EffectiveTimeoutSeconds","type":"double","doc":"The timeout actually used, after the server's ceiling."},{"name":"LinesMissed","type":"bool","default":"false","doc":"Whether scrollback dropped output before it could be read."},{"name":"AnchorLost","type":"bool","default":"false","doc":"Whether the pre-command output position could no longer be found."},{"name":"Started","type":"bool","default":"true","doc":"Whether the command was seen to begin. A timeout with this false means the\nwrapper never ran, usually because the pane was not at an empty, ready shell\nprompt. The usual \"it may still be running\" does not apply; inspect the pane\nbefore retrying."},{"name":"PaneExited","type":"bool","default":"false","doc":"Whether the pane's program exited before the command reported its status.\nThe run ends then rather than at its timeout, with no exit status."}]}],"doc":{"summary":"What a command did.","body":"The command runs in a subshell, so a cd or an export in it\ndoes not survive into the next call."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":171,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult"},{"id":"LibTmux.Mcp.RunResult.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The pane it ran in."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":172,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.PaneId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-paneid"},{"id":"LibTmux.Mcp.RunResult.ExitStatus","name":"ExitStatus","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"The shell's exit status, or null when the command did not finish in time."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":173,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.ExitStatus","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-exitstatus"},{"id":"LibTmux.Mcp.RunResult.TimedOut","name":"TimedOut","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether waiting stopped before completion. The shell command may still be\nrunning; inspect the pane and do not retry it."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":174,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.TimedOut","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-timedout"},{"id":"LibTmux.Mcp.RunResult.Output","name":"Output","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"BoundedText","modifiers":[],"signatures":[],"doc":{"summary":"What the command printed, within the budget."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":175,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.Output","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-output"},{"id":"LibTmux.Mcp.RunResult.ElapsedSeconds","name":"ElapsedSeconds","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"double","modifiers":[],"signatures":[],"doc":{"summary":"How long it took."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":176,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.ElapsedSeconds","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-elapsedseconds"},{"id":"LibTmux.Mcp.RunResult.EffectiveTimeoutSeconds","name":"EffectiveTimeoutSeconds","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"double","modifiers":[],"signatures":[],"doc":{"summary":"The timeout actually used, after the server's ceiling."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":177,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.EffectiveTimeoutSeconds","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-effectivetimeoutseconds"},{"id":"LibTmux.Mcp.RunResult.LinesMissed","name":"LinesMissed","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether scrollback dropped output before it could be read."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":178,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.LinesMissed","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-linesmissed"},{"id":"LibTmux.Mcp.RunResult.AnchorLost","name":"AnchorLost","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the pre-command output position could no longer be found."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":179,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.AnchorLost","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-anchorlost"},{"id":"LibTmux.Mcp.RunResult.Started","name":"Started","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the command was seen to begin. A timeout with this false means the\nwrapper never ran, usually because the pane was not at an empty, ready shell\nprompt. The usual \"it may still be running\" does not apply; inspect the pane\nbefore retrying."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":180,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.Started","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-started"},{"id":"LibTmux.Mcp.RunResult.PaneExited","name":"PaneExited","kind":"property","parent":"LibTmux.Mcp.RunResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the pane's program exited before the command reported its status.\nThe run ends then rather than at its timeout, with no exit status."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":181,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.RunResult.PaneExited","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-runresult-paneexited"},{"id":"LibTmux.Mcp.PaneMatch","name":"PaneMatch","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record PaneMatch(\n string PaneId,\n string WindowId,\n string SessionId,\n IReadOnlyList Matches);","params":[{"name":"PaneId","type":"string","doc":"The pane that matched."},{"name":"WindowId","type":"string","doc":"The window holding it."},{"name":"SessionId","type":"string","doc":"The session holding that window."},{"name":"Matches","type":"IReadOnlyList","doc":"The matching lines, with the row each was found on."}]}],"doc":{"summary":"One pane whose text matched a search."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":188,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneMatch","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panematch"},{"id":"LibTmux.Mcp.PaneMatch.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.Mcp.PaneMatch","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The pane that matched."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":189,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneMatch.PaneId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panematch-paneid"},{"id":"LibTmux.Mcp.PaneMatch.WindowId","name":"WindowId","kind":"property","parent":"LibTmux.Mcp.PaneMatch","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The window holding it."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":190,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneMatch.WindowId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panematch-windowid"},{"id":"LibTmux.Mcp.PaneMatch.SessionId","name":"SessionId","kind":"property","parent":"LibTmux.Mcp.PaneMatch","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The session holding that window."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":191,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneMatch.SessionId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panematch-sessionid"},{"id":"LibTmux.Mcp.PaneMatch.Matches","name":"Matches","kind":"property","parent":"LibTmux.Mcp.PaneMatch","type":"IReadOnlyList","modifiers":[],"signatures":[],"doc":{"summary":"The matching lines, with the row each was found on."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":192,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneMatch.Matches","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-panematch-matches"},{"id":"LibTmux.Mcp.MatchedLine","name":"MatchedLine","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record MatchedLine(int Row, string Text);","params":[{"name":"Row","type":"int","doc":"The row it was found on. Zero is the top of the visible screen; a negative\nrow is that many lines back into scrollback."},{"name":"Text","type":"string","doc":"The line."}]}],"doc":{"summary":"One line that matched a search."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":200,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.MatchedLine","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-matchedline"},{"id":"LibTmux.Mcp.MatchedLine.Row","name":"Row","kind":"property","parent":"LibTmux.Mcp.MatchedLine","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"The row it was found on. Zero is the top of the visible screen; a negative\nrow is that many lines back into scrollback."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":200,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.MatchedLine.Row","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-matchedline-row"},{"id":"LibTmux.Mcp.MatchedLine.Text","name":"Text","kind":"property","parent":"LibTmux.Mcp.MatchedLine","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The line."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":200,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.MatchedLine.Text","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-matchedline-text"},{"id":"LibTmux.Mcp.SearchResult","name":"SearchResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record SearchResult(\n string Pattern,\n int PanesSearched,\n IReadOnlyList Panes,\n bool Truncated);","params":[{"name":"Pattern","type":"string","doc":"The pattern that was searched for."},{"name":"PanesSearched","type":"int","doc":"How many panes were read."},{"name":"Panes","type":"IReadOnlyList","doc":"The panes that matched, and what matched in them."},{"name":"Truncated","type":"bool","doc":"Whether the match limit stopped the search early."}]}],"doc":{"summary":"What a search across panes found."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":207,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SearchResult","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-searchresult"},{"id":"LibTmux.Mcp.SearchResult.Pattern","name":"Pattern","kind":"property","parent":"LibTmux.Mcp.SearchResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The pattern that was searched for."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":208,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SearchResult.Pattern","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-searchresult-pattern"},{"id":"LibTmux.Mcp.SearchResult.PanesSearched","name":"PanesSearched","kind":"property","parent":"LibTmux.Mcp.SearchResult","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"How many panes were read."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":209,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SearchResult.PanesSearched","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-searchresult-panessearched"},{"id":"LibTmux.Mcp.SearchResult.Panes","name":"Panes","kind":"property","parent":"LibTmux.Mcp.SearchResult","type":"IReadOnlyList","modifiers":[],"signatures":[],"doc":{"summary":"The panes that matched, and what matched in them."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":210,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SearchResult.Panes","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-searchresult-panes"},{"id":"LibTmux.Mcp.SearchResult.Truncated","name":"Truncated","kind":"property","parent":"LibTmux.Mcp.SearchResult","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the match limit stopped the search early."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":211,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.SearchResult.Truncated","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-searchresult-truncated"},{"id":"LibTmux.Mcp.ActionResult","name":"ActionResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record ActionResult(\n string Changed,\n string? PaneId = null,\n string? WindowId = null,\n string? SessionId = null);","params":[{"name":"Changed","type":"string","doc":"What tmux now holds that it did not before, in plain words."},{"name":"PaneId","type":"string?","default":"null","doc":"The pane the action produced or acted on, when there is one."},{"name":"WindowId","type":"string?","default":"null","doc":"The window the action produced or acted on, when there is one."},{"name":"SessionId","type":"string?","default":"null","doc":"The session the action produced or acted on, when there is one."}]}],"doc":{"summary":"What a tool that changed tmux did.","body":"A mutating tool answers what it created rather than the whole hierarchy, so\nthe identifier needed for the next call is already in hand and no listing is\nrequired to find it."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":223,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ActionResult","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-actionresult"},{"id":"LibTmux.Mcp.ActionResult.Changed","name":"Changed","kind":"property","parent":"LibTmux.Mcp.ActionResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"What tmux now holds that it did not before, in plain words."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":224,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ActionResult.Changed","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-actionresult-changed"},{"id":"LibTmux.Mcp.ActionResult.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.Mcp.ActionResult","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The pane the action produced or acted on, when there is one."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":225,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ActionResult.PaneId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-actionresult-paneid"},{"id":"LibTmux.Mcp.ActionResult.WindowId","name":"WindowId","kind":"property","parent":"LibTmux.Mcp.ActionResult","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The window the action produced or acted on, when there is one."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":226,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ActionResult.WindowId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-actionresult-windowid"},{"id":"LibTmux.Mcp.ActionResult.SessionId","name":"SessionId","kind":"property","parent":"LibTmux.Mcp.ActionResult","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The session the action produced or acted on, when there is one."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":227,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ActionResult.SessionId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-actionresult-sessionid"},{"id":"LibTmux.Mcp.PaneInputResult","name":"PaneInputResult","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record PaneInputResult(\n string Changed,\n string PaneId,\n IReadOnlyList TargetPaneIds);","params":[{"name":"Changed","type":"string","doc":"What was sent, in plain words."},{"name":"PaneId","type":"string","doc":"The pane named by the caller after active-pane resolution."},{"name":"TargetPaneIds","type":"IReadOnlyList","doc":"The named source when its effective pane_synchronized value is 0. Only when\nit is 1, every configured effective-on cohort member; membership does not\nprove delivery."}]}],"doc":{"summary":"What pane input targeted after tmux synchronization was resolved."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":237,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInputResult","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinputresult"},{"id":"LibTmux.Mcp.PaneInputResult.Changed","name":"Changed","kind":"property","parent":"LibTmux.Mcp.PaneInputResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"What was sent, in plain words."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":238,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInputResult.Changed","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinputresult-changed"},{"id":"LibTmux.Mcp.PaneInputResult.PaneId","name":"PaneId","kind":"property","parent":"LibTmux.Mcp.PaneInputResult","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The pane named by the caller after active-pane resolution."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":239,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInputResult.PaneId","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinputresult-paneid"},{"id":"LibTmux.Mcp.PaneInputResult.TargetPaneIds","name":"TargetPaneIds","kind":"property","parent":"LibTmux.Mcp.PaneInputResult","type":"IReadOnlyList","modifiers":[],"signatures":[],"doc":{"summary":"The named source when its effective pane_synchronized value is 0. Only when\nit is 1, every configured effective-on cohort member; membership does not\nprove delivery."},"source":{"file":"src/LibTmux.Mcp/Results/Observations.cs","line":240,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.PaneInputResult.TargetPaneIds","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-paneinputresult-targetpaneids"},{"id":"LibTmux.Mcp.ServerInstructions","name":"ServerInstructions","kind":"class","modifiers":["static"],"signatures":[],"doc":{"summary":"What the client is told this server is for, before any tool is called.","body":"A tool description says what one tool does. These instructions say when this\nserver is the right one at all, which is the question a model answers first\nand cannot answer from a tool list. They carry the two things a tool\ndescription has no room for: what must never route here, and which of two\noverlapping tools to reach for.\n\nThe budget is real. Instructions are sent on every connection and sit in\ncontext for the whole conversation, so a paragraph added here is paid for by\nevery call that follows."},"source":{"file":"src/LibTmux.Mcp/ServerInstructions.cs","line":20,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ServerInstructions","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-serverinstructions"},{"id":"LibTmux.Mcp.ServerInstructions.Compose","name":"Compose","kind":"method","modifiers":["static"],"parent":"LibTmux.Mcp.ServerInstructions","signatures":[{"params":[{"name":"policy","type":"ServerPolicy","doc":"What this server will do."},{"name":"callerPaneId","type":"string?","doc":"The pane this server runs in, when it runs in one."}],"returns":"string","returnsDoc":"The instructions.","raises":[{"type":"InvalidOperationException","doc":"The fixed guidance no longer fits the budget. That is a bug in this file\nrather than a condition to degrade around: silently dropping a segment\nwould leave a model without the rule it was dropped from."}]}],"doc":{"summary":"Composes the instructions for a running server."},"source":{"file":"src/LibTmux.Mcp/ServerInstructions.cs","line":34,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.ServerInstructions.Compose","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-serverinstructions-compose"},{"id":"LibTmux.Mcp.OptionEntry","name":"OptionEntry","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record OptionEntry(\n string Name,\n string? Value,\n OptionScope Scope,\n bool Inherited);","params":[{"name":"Name","type":"string","doc":"The option name."},{"name":"Value","type":"string?","doc":"The value tmux reported."},{"name":"Scope","type":"OptionScope","doc":"The scope the read asked at, not where the value was set."},{"name":"Inherited","type":"bool","doc":"Whether the value came from a wider scope than the one asked."}]}],"doc":{"summary":"One tmux option as read at one scope."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":203,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.OptionEntry","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-optionentry"},{"id":"LibTmux.Mcp.OptionEntry.Name","name":"Name","kind":"property","parent":"LibTmux.Mcp.OptionEntry","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The option name."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":204,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.OptionEntry.Name","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-optionentry-name"},{"id":"LibTmux.Mcp.OptionEntry.Value","name":"Value","kind":"property","parent":"LibTmux.Mcp.OptionEntry","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"The value tmux reported."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":205,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.OptionEntry.Value","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-optionentry-value"},{"id":"LibTmux.Mcp.OptionEntry.Scope","name":"Scope","kind":"property","parent":"LibTmux.Mcp.OptionEntry","type":"OptionScope","modifiers":[],"signatures":[],"doc":{"summary":"The scope the read asked at, not where the value was set."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":206,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.OptionEntry.Scope","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-optionentry-scope"},{"id":"LibTmux.Mcp.OptionEntry.Inherited","name":"Inherited","kind":"property","parent":"LibTmux.Mcp.OptionEntry","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the value came from a wider scope than the one asked."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":207,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.OptionEntry.Inherited","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-optionentry-inherited"},{"id":"LibTmux.Mcp.EnvironmentEntry","name":"EnvironmentEntry","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record EnvironmentEntry(\n string Name,\n string? Value,\n bool IsRemoved,\n bool HasValue,\n bool Withheld);","params":[{"name":"Name","type":"string","doc":"The variable name."},{"name":"Value","type":"string?","doc":"Its value, or null when it is removed, unset, or withheld."},{"name":"IsRemoved","type":"bool","doc":"Whether tmux will unset it for a new pane."},{"name":"HasValue","type":"bool","doc":"Whether tmux holds a value, whatever this entry discloses."},{"name":"Withheld","type":"bool","doc":"Whether a value exists and was not disclosed."}]}],"doc":{"summary":"One variable in tmux's environment.","body":"The tmux server environment is server-wide and outlives every session on\nthe socket, so it is where exported API keys accumulate. A listing answers\n rather than values, and a value asked for by name\nis still withheld when the name reads as a credential."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":221,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.EnvironmentEntry","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-environmententry"},{"id":"LibTmux.Mcp.EnvironmentEntry.Name","name":"Name","kind":"property","parent":"LibTmux.Mcp.EnvironmentEntry","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The variable name."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":222,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.EnvironmentEntry.Name","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-environmententry-name"},{"id":"LibTmux.Mcp.EnvironmentEntry.Value","name":"Value","kind":"property","parent":"LibTmux.Mcp.EnvironmentEntry","type":"string?","modifiers":[],"signatures":[],"doc":{"summary":"Its value, or null when it is removed, unset, or withheld."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":223,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.EnvironmentEntry.Value","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-environmententry-value"},{"id":"LibTmux.Mcp.EnvironmentEntry.IsRemoved","name":"IsRemoved","kind":"property","parent":"LibTmux.Mcp.EnvironmentEntry","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether tmux will unset it for a new pane."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":224,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.EnvironmentEntry.IsRemoved","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-environmententry-isremoved"},{"id":"LibTmux.Mcp.EnvironmentEntry.HasValue","name":"HasValue","kind":"property","parent":"LibTmux.Mcp.EnvironmentEntry","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether tmux holds a value, whatever this entry discloses."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":225,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.EnvironmentEntry.HasValue","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-environmententry-hasvalue"},{"id":"LibTmux.Mcp.EnvironmentEntry.Withheld","name":"Withheld","kind":"property","parent":"LibTmux.Mcp.EnvironmentEntry","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether a value exists and was not disclosed."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":226,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.EnvironmentEntry.Withheld","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-environmententry-withheld"},{"id":"LibTmux.Mcp.HookEntry","name":"HookEntry","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record HookEntry(string Name, int Index, string Command, OptionScope Scope);","params":[{"name":"Name","type":"string","doc":"The hook name, such as pane-exited."},{"name":"Index","type":"int","doc":"Its position, when the hook holds several commands."},{"name":"Command","type":"string","doc":"The tmux command."},{"name":"Scope","type":"OptionScope","doc":"The level it was read at."}]}],"doc":{"summary":"One command tmux will run on an event."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":233,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.HookEntry","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-hookentry"},{"id":"LibTmux.Mcp.HookEntry.Name","name":"Name","kind":"property","parent":"LibTmux.Mcp.HookEntry","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The hook name, such as pane-exited."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":233,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.HookEntry.Name","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-hookentry-name"},{"id":"LibTmux.Mcp.HookEntry.Index","name":"Index","kind":"property","parent":"LibTmux.Mcp.HookEntry","type":"int","modifiers":[],"signatures":[],"doc":{"summary":"Its position, when the hook holds several commands."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":233,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.HookEntry.Index","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-hookentry-index"},{"id":"LibTmux.Mcp.HookEntry.Command","name":"Command","kind":"property","parent":"LibTmux.Mcp.HookEntry","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The tmux command."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":233,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.HookEntry.Command","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-hookentry-command"},{"id":"LibTmux.Mcp.HookEntry.Scope","name":"Scope","kind":"property","parent":"LibTmux.Mcp.HookEntry","type":"OptionScope","modifiers":[],"signatures":[],"doc":{"summary":"The level it was read at."},"source":{"file":"src/LibTmux.Mcp/Tools/ReadTools.Inspect.cs","line":233,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.HookEntry.Scope","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-hookentry-scope"},{"id":"LibTmux.Mcp.KeyStep","name":"KeyStep","kind":"class","modifiers":[],"signatures":[{"raw":"public sealed record KeyStep(\n string Keys,\n bool Enter = false,\n bool Literal = true,\n int? DelayMilliseconds = null);","params":[{"name":"Keys","type":"string","doc":"The text to type, or a key name."},{"name":"Enter","type":"bool","default":"false","doc":"Whether Enter follows."},{"name":"Literal","type":"bool","default":"true","doc":"Whether the text is sent as typed rather than read as a key name."},{"name":"DelayMilliseconds","type":"int?","default":"null","doc":"How long to pause afterwards, for a program that needs a moment to redraw\nbefore it will accept the next key. Capped at two seconds."}]}],"doc":{"summary":"One keystroke in a batch."},"source":{"file":"src/LibTmux.Mcp/Tools/WriteTools.Input.cs","line":547,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.KeyStep","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-keystep"},{"id":"LibTmux.Mcp.KeyStep.Keys","name":"Keys","kind":"property","parent":"LibTmux.Mcp.KeyStep","type":"string","modifiers":[],"signatures":[],"doc":{"summary":"The text to type, or a key name."},"source":{"file":"src/LibTmux.Mcp/Tools/WriteTools.Input.cs","line":548,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.KeyStep.Keys","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-keystep-keys"},{"id":"LibTmux.Mcp.KeyStep.Enter","name":"Enter","kind":"property","parent":"LibTmux.Mcp.KeyStep","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether Enter follows."},"source":{"file":"src/LibTmux.Mcp/Tools/WriteTools.Input.cs","line":549,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.KeyStep.Enter","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-keystep-enter"},{"id":"LibTmux.Mcp.KeyStep.Literal","name":"Literal","kind":"property","parent":"LibTmux.Mcp.KeyStep","type":"bool","modifiers":[],"signatures":[],"doc":{"summary":"Whether the text is sent as typed rather than read as a key name."},"source":{"file":"src/LibTmux.Mcp/Tools/WriteTools.Input.cs","line":550,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.KeyStep.Literal","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-keystep-literal"},{"id":"LibTmux.Mcp.KeyStep.DelayMilliseconds","name":"DelayMilliseconds","kind":"property","parent":"LibTmux.Mcp.KeyStep","type":"int?","modifiers":[],"signatures":[],"doc":{"summary":"How long to pause afterwards, for a program that needs a moment to redraw\nbefore it will accept the next key. Capped at two seconds."},"source":{"file":"src/LibTmux.Mcp/Tools/WriteTools.Input.cs","line":551,"repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc"},"publicId":"LibTmux.Mcp.KeyStep.DelayMilliseconds","product":"mcp","apiScope":"exported","slug":"libtmux-mcp-keystep-delaymilliseconds"}],"sources":[{"product":"core","package":"LibTmux","repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","version":"0.0.0-alpha.20"},{"product":"workspace","package":"LibTmux.Workspace","repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","version":"0.0.0-alpha.20"},{"product":"mcp","package":"LibTmux.Mcp","repo":"libtmux/libtmux-dotnet","revision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","extractedRevision":"ec8b6ab2a4f65e23664f43fba538ba200d4ae8bc","version":"0.0.0-alpha.20"}],"repo":"libtmux/libtmux-dotnet"} diff --git a/site/src/data/api/cxx.json b/site/src/data/api/cxx.json index dbfe92445..0136903e0 100644 --- a/site/src/data/api/cxx.json +++ b/site/src/data/api/cxx.json @@ -1 +1 @@ -{"port":"cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractor":"@libtmux/api-model@0.0.1 (doxygen)","symbols":[{"id":"abi.hpp::LIBTMUX_ABI_NAMESPACE","publicId":"abi.hpp::LIBTMUX_ABI_NAMESPACE","name":"LIBTMUX_ABI_NAMESPACE","kind":"constant","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/abi.hpp","line":19,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"abi-hpp-libtmux_abi_namespace"},{"id":"abi.hpp::LIBTMUX_NAMESPACE_BEGIN","publicId":"abi.hpp::LIBTMUX_NAMESPACE_BEGIN","name":"LIBTMUX_NAMESPACE_BEGIN","kind":"constant","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/abi.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"abi-hpp-libtmux_namespace_begin"},{"id":"abi.hpp::LIBTMUX_NAMESPACE_END","publicId":"abi.hpp::LIBTMUX_NAMESPACE_END","name":"LIBTMUX_NAMESPACE_END","kind":"constant","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/abi.hpp","line":26,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"abi-hpp-libtmux_namespace_end"},{"id":"libtmux::AttachCommand","publicId":"libtmux::AttachCommand","name":"AttachCommand","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"An attach argv and the private route selecting this server incarnation.","body":"Keep it alive until the client exits; same-process `exec` leaves the route on disk."},"source":{"file":"include/libtmux/entities.hpp","line":370,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-attachcommand"},{"id":"libtmux::AttachCommand::AttachCommand","publicId":"libtmux::AttachCommand::AttachCommand","name":"AttachCommand","kind":"method","modifiers":["overload"],"parent":"libtmux::AttachCommand","signatures":[{"params":[{"name":"const AttachCommand &"}],"raw":"AttachCommand(const AttachCommand&) noexcept;"},{"params":[{"name":"AttachCommand &&"}],"raw":"AttachCommand(AttachCommand&&) noexcept;"}],"source":{"file":"include/libtmux/entities.hpp","line":357,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-attachcommand-attachcommand-epcm"},{"id":"libtmux::AttachCommand::~AttachCommand","publicId":"libtmux::AttachCommand::~AttachCommand","name":"~AttachCommand","kind":"method","modifiers":[],"parent":"libtmux::AttachCommand","signatures":[{"params":[],"raw":"~AttachCommand();"}],"source":{"file":"include/libtmux/entities.hpp","line":361,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-attachcommand-attachcommand-1sg4"},{"id":"libtmux::AttachCommand::argv","publicId":"libtmux::AttachCommand::argv","name":"argv","kind":"method","modifiers":["readonly"],"parent":"libtmux::AttachCommand","signatures":[{"params":[],"raw":"[[nodiscard]] const std::vector& argv() const noexcept;","returns":"const std::vector &"}],"doc":{"summary":"Exec-order arguments; empty after this value is moved from."},"source":{"file":"include/libtmux/entities.hpp","line":364,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-attachcommand-argv"},{"id":"libtmux::Buffer","publicId":"libtmux::Buffer","name":"Buffer","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A named piece of text the server holds, outliving the pane it came from.","body":"tmux's cut buffers are the clipboard between panes: a pane's selection lands in one, and pasting reads one back. They belong to the server, not to any pane, which is why they are listed from it."},"source":{"file":"include/libtmux/entities.hpp","line":985,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer"},{"id":"libtmux::Buffer::kNoun","publicId":"libtmux::Buffer::kNoun","name":"kNoun","kind":"attribute","modifiers":["static"],"parent":"libtmux::Buffer","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/entities.hpp","line":985,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-knoun"},{"id":"libtmux::Buffer::kFields","publicId":"libtmux::Buffer::kFields","name":"kFields","kind":"attribute","modifiers":["static"],"parent":"libtmux::Buffer","signatures":[],"type":"std::array","source":{"file":"include/libtmux/entities.hpp","line":986,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-kfields"},{"id":"libtmux::Buffer::Buffer","publicId":"libtmux::Buffer::Buffer","name":"Buffer","kind":"method","modifiers":[],"parent":"libtmux::Buffer","signatures":[{"params":[{"name":"snapshot","type":"std::shared_ptr"},{"name":"row","type":"std::size_t"}],"raw":"Buffer(std::shared_ptr snapshot, std::size_t row) noexcept;"}],"source":{"file":"include/libtmux/entities.hpp","line":990,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-buffer"},{"id":"libtmux::Buffer::name","publicId":"libtmux::Buffer::name","name":"name","kind":"method","modifiers":["readonly"],"parent":"libtmux::Buffer","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view name() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"Named by the caller, or by tmux as `buffer0` and upward when it is not."},"source":{"file":"include/libtmux/entities.hpp","line":997,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-name-1523"},{"id":"libtmux::Buffer::size","publicId":"libtmux::Buffer::size","name":"size","kind":"method","modifiers":["readonly"],"parent":"libtmux::Buffer","signatures":[{"params":[],"raw":"[[nodiscard]] long long size() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":998,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-size-1dtq"},{"id":"libtmux::Buffer::sample","publicId":"libtmux::Buffer::sample","name":"sample","kind":"method","modifiers":["readonly"],"parent":"libtmux::Buffer","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view sample() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"The opening of the contents, as tmux prints it in a listing.","body":"Truncated, and with control characters rendered — `contents()` reads the bytes."},"source":{"file":"include/libtmux/entities.hpp","line":1001,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-sample-uygj"},{"id":"libtmux::Buffer::created","publicId":"libtmux::Buffer::created","name":"created","kind":"method","modifiers":["readonly"],"parent":"libtmux::Buffer","signatures":[{"params":[],"raw":"[[nodiscard]] std::chrono::sys_seconds created() const noexcept;","returns":"std::chrono::sys_seconds"}],"source":{"file":"include/libtmux/entities.hpp","line":1002,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-created-19rh"},{"id":"libtmux::Buffer::contents","publicId":"libtmux::Buffer::contents","name":"contents","kind":"method","modifiers":["readonly"],"parent":"libtmux::Buffer","signatures":[{"params":[],"raw":"[[nodiscard]] expected contents() const;","returns":"expected"}],"doc":{"summary":"The whole contents.","body":"tmux prints them with no trailing newline, so what comes back is exactly what was put in."},"source":{"file":"include/libtmux/entities.hpp","line":1012,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-contents"},{"id":"libtmux::Buffer::remove","publicId":"libtmux::Buffer::remove","name":"remove","kind":"method","modifiers":["readonly"],"parent":"libtmux::Buffer","signatures":[{"params":[],"raw":"[[nodiscard]] expected remove() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":1013,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-remove"},{"id":"libtmux::Chain","publicId":"libtmux::Chain","name":"Chain","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Several commands built up and sent as one tmux invocation.","body":"tmux runs a chain until a command fails and discards the rest, so the chain is the unit of atomicity a caller gets — and the reply count alone cannot say which command failed."},"source":{"file":"include/libtmux/chain.hpp","line":103,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain"},{"id":"libtmux::Chain::new_session","publicId":"libtmux::Chain::new_session","name":"new_session","kind":"method","modifiers":[],"parent":"libtmux::Chain","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"detached","type":"bool","default":"true"}],"raw":"Chain& new_session(std::string_view name, bool detached = true);","returns":"Chain &"}],"source":{"file":"include/libtmux/chain.hpp","line":32,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain-new_session"},{"id":"libtmux::Chain::new_window","publicId":"libtmux::Chain::new_window","name":"new_window","kind":"method","modifiers":[],"parent":"libtmux::Chain","signatures":[{"params":[{"name":"session","type":"std::string_view"},{"name":"name","type":"std::string_view"}],"raw":"Chain& new_window(std::string_view session, std::string_view name);","returns":"Chain &"}],"source":{"file":"include/libtmux/chain.hpp","line":44,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain-new_window"},{"id":"libtmux::Chain::split_window","publicId":"libtmux::Chain::split_window","name":"split_window","kind":"method","modifiers":[],"parent":"libtmux::Chain","signatures":[{"params":[{"name":"session","type":"std::string_view"},{"name":"window","type":"std::string_view"}],"raw":"Chain& split_window(std::string_view session, std::string_view window);","returns":"Chain &"}],"source":{"file":"include/libtmux/chain.hpp","line":55,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain-split_window"},{"id":"libtmux::Chain::send_text","publicId":"libtmux::Chain::send_text","name":"send_text","kind":"method","modifiers":[],"parent":"libtmux::Chain","signatures":[{"params":[{"name":"target","type":"std::string_view"},{"name":"text","type":"std::string_view"}],"raw":"Chain& send_text(std::string_view target, std::string_view text);","returns":"Chain &"}],"doc":{"summary":"Literal text, never interpreted as key names or formats."},"source":{"file":"include/libtmux/chain.hpp","line":64,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain-send_text"},{"id":"libtmux::Chain::send_key","publicId":"libtmux::Chain::send_key","name":"send_key","kind":"method","modifiers":[],"parent":"libtmux::Chain","signatures":[{"params":[{"name":"target","type":"std::string_view"},{"name":"key","type":"std::string_view"}],"raw":"Chain& send_key(std::string_view target, std::string_view key);","returns":"Chain &"}],"source":{"file":"include/libtmux/chain.hpp","line":74,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain-send_key"},{"id":"libtmux::Chain::command","publicId":"libtmux::Chain::command","name":"command","kind":"method","modifiers":[],"parent":"libtmux::Chain","signatures":[{"params":[{"name":"argv","type":"std::vector"}],"raw":"Chain& command(std::vector argv);","returns":"Chain &"}],"doc":{"summary":"Escape hatch for a command the typed steps do not cover."},"source":{"file":"include/libtmux/chain.hpp","line":82,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain-command"},{"id":"libtmux::Chain::valid","publicId":"libtmux::Chain::valid","name":"valid","kind":"method","modifiers":["readonly"],"parent":"libtmux::Chain","signatures":[{"params":[],"raw":"[[nodiscard]] bool valid() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/chain.hpp","line":84,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain-valid"},{"id":"libtmux::Chain::error","publicId":"libtmux::Chain::error","name":"error","kind":"method","modifiers":["readonly"],"parent":"libtmux::Chain","signatures":[{"params":[],"raw":"[[nodiscard]] const std::string& error() const noexcept;","returns":"const std::string &"}],"source":{"file":"include/libtmux/chain.hpp","line":85,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain-error"},{"id":"libtmux::Chain::batch","publicId":"libtmux::Chain::batch","name":"batch","kind":"method","modifiers":["readonly"],"parent":"libtmux::Chain","signatures":[{"params":[],"raw":"[[nodiscard]] const CommandBatch& batch() const noexcept;","returns":"const CommandBatch &"}],"source":{"file":"include/libtmux/chain.hpp","line":86,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain-batch"},{"id":"libtmux::Client","publicId":"libtmux::Client","name":"Client","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One attached client, as one listing saw it.","body":"The shortest-lived of these: a client goes away with its terminal, so a handle outlives what it names more often than the others do. It is named by its tty rather than by an id tmux issues."},"source":{"file":"include/libtmux/entities.hpp","line":1026,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client"},{"id":"libtmux::Client::kNoun","publicId":"libtmux::Client::kNoun","name":"kNoun","kind":"attribute","modifiers":["static"],"parent":"libtmux::Client","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/entities.hpp","line":1026,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-knoun"},{"id":"libtmux::Client::kFields","publicId":"libtmux::Client::kFields","name":"kFields","kind":"attribute","modifiers":["static"],"parent":"libtmux::Client","signatures":[],"type":"std::array","source":{"file":"include/libtmux/entities.hpp","line":1027,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-kfields"},{"id":"libtmux::Client::Client","publicId":"libtmux::Client::Client","name":"Client","kind":"method","modifiers":[],"parent":"libtmux::Client","signatures":[{"params":[{"name":"snapshot","type":"std::shared_ptr"},{"name":"row","type":"std::size_t"}],"raw":"Client(std::shared_ptr snapshot, std::size_t row) noexcept;"}],"source":{"file":"include/libtmux/entities.hpp","line":1036,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-client"},{"id":"libtmux::Client::name","publicId":"libtmux::Client::name","name":"name","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view name() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"A client is named by its terminal path, which is the only stable handle tmux gives; there is no client id format."},"source":{"file":"include/libtmux/entities.hpp","line":1044,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-name-1qid"},{"id":"libtmux::Client::session_name","publicId":"libtmux::Client::session_name","name":"session_name","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view session_name() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":1045,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-session_name-eye9"},{"id":"libtmux::Client::read_only","publicId":"libtmux::Client::read_only","name":"read_only","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] bool read_only() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":1046,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-read_only-15kr"},{"id":"libtmux::Client::tty","publicId":"libtmux::Client::tty","name":"tty","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view tty() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":1047,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-tty-nr7p"},{"id":"libtmux::Client::width","publicId":"libtmux::Client::width","name":"width","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] long long width() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":1048,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-width-s1md"},{"id":"libtmux::Client::height","publicId":"libtmux::Client::height","name":"height","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] long long height() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":1049,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-height-uv1e"},{"id":"libtmux::Client::created","publicId":"libtmux::Client::created","name":"created","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] std::chrono::sys_seconds created() const noexcept;","returns":"std::chrono::sys_seconds"}],"source":{"file":"include/libtmux/entities.hpp","line":1052,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-created-1o78"},{"id":"libtmux::Client::last_activity","publicId":"libtmux::Client::last_activity","name":"last_activity","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] std::chrono::sys_seconds last_activity() const noexcept;","returns":"std::chrono::sys_seconds"}],"source":{"file":"include/libtmux/entities.hpp","line":1055,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-last_activity-1dcv"},{"id":"libtmux::Client::terminal","publicId":"libtmux::Client::terminal","name":"terminal","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view terminal() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":1058,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-terminal-74vc"},{"id":"libtmux::Client::control_mode","publicId":"libtmux::Client::control_mode","name":"control_mode","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] bool control_mode() const noexcept;","returns":"bool"}],"doc":{"summary":"A control-mode client is a program driving tmux, not a terminal."},"source":{"file":"include/libtmux/entities.hpp","line":1060,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-control_mode-1lis"},{"id":"libtmux::Client::pid","publicId":"libtmux::Client::pid","name":"pid","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] long long pid() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":1061,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-pid-4rma"},{"id":"libtmux::Client::active_pane_id","publicId":"libtmux::Client::active_pane_id","name":"active_pane_id","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] PaneId active_pane_id() const noexcept;","returns":"PaneId"}],"doc":{"summary":"The session window's active pane, not independent client-local focus."},"source":{"file":"include/libtmux/entities.hpp","line":1063,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-active_pane_id-p6pw"},{"id":"libtmux::Client::flags","publicId":"libtmux::Client::flags","name":"flags","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view flags() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":1064,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-flags-tyan"},{"id":"libtmux::Client::window_id","publicId":"libtmux::Client::window_id","name":"window_id","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] WindowId window_id() const noexcept;","returns":"WindowId"}],"source":{"file":"include/libtmux/entities.hpp","line":1065,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-window_id-12ou"},{"id":"libtmux::Client::session","publicId":"libtmux::Client::session","name":"session","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] expected session() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":1073,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-session"},{"id":"libtmux::Client::switch_to","publicId":"libtmux::Client::switch_to","name":"switch_to","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[{"name":"session","type":"const Session &"}],"raw":"[[nodiscard]] expected switch_to(const Session& session) const;","returns":"expected"}],"doc":{"summary":"Point this client at another session, leaving it attached."},"source":{"file":"include/libtmux/entities.hpp","line":1076,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-switch_to"},{"id":"libtmux::Client::detach","publicId":"libtmux::Client::detach","name":"detach","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] expected detach() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":1077,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-detach"},{"id":"libtmux::Client::refresh","publicId":"libtmux::Client::refresh","name":"refresh","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] expected refresh() const;","returns":"expected"}],"doc":{"summary":"Redraw, and tell tmux the size this client is now, which matters for a control-mode client whose size tmux cannot otherwise observe."},"source":{"file":"include/libtmux/entities.hpp","line":1080,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-refresh"},{"id":"libtmux::Command","publicId":"libtmux::Command","name":"Command","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One command this tmux understands.","body":"The list is how a caller asks what the server can do rather than deducing it from a version string. A build with commands compiled out, or a version between releases, answers for itself."},"source":{"file":"include/libtmux/entities.hpp","line":955,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command"},{"id":"libtmux::Command::kNoun","publicId":"libtmux::Command::kNoun","name":"kNoun","kind":"attribute","modifiers":["static"],"parent":"libtmux::Command","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/entities.hpp","line":955,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command-knoun"},{"id":"libtmux::Command::kFields","publicId":"libtmux::Command::kFields","name":"kFields","kind":"attribute","modifiers":["static"],"parent":"libtmux::Command","signatures":[],"type":"std::array","source":{"file":"include/libtmux/entities.hpp","line":956,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command-kfields"},{"id":"libtmux::Command::Command","publicId":"libtmux::Command::Command","name":"Command","kind":"method","modifiers":[],"parent":"libtmux::Command","signatures":[{"params":[{"name":"snapshot","type":"std::shared_ptr"},{"name":"row","type":"std::size_t"}],"raw":"Command(std::shared_ptr snapshot, std::size_t row) noexcept;"}],"source":{"file":"include/libtmux/entities.hpp","line":960,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command-command"},{"id":"libtmux::Command::name","publicId":"libtmux::Command::name","name":"name","kind":"method","modifiers":["readonly"],"parent":"libtmux::Command","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view name() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":966,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command-name-8ewu"},{"id":"libtmux::Command::alias","publicId":"libtmux::Command::alias","name":"alias","kind":"method","modifiers":["readonly"],"parent":"libtmux::Command","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view alias() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"tmux's short form, such as `lscm` for `list-commands`.","body":"Empty when the command has none."},"source":{"file":"include/libtmux/entities.hpp","line":969,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command-alias-1wor"},{"id":"libtmux::Command::usage","publicId":"libtmux::Command::usage","name":"usage","kind":"method","modifiers":["readonly"],"parent":"libtmux::Command","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view usage() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"The flags and arguments, as tmux prints them in its own help."},"source":{"file":"include/libtmux/entities.hpp","line":971,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command-usage-167k"},{"id":"libtmux::CommandArgument","publicId":"libtmux::CommandArgument","name":"CommandArgument","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One argument, carrying whether any part of it is a secret.","body":"Implicitly constructible from the string types so building a command reads as a list of words; marking a part secret is the deliberate act."},"source":{"file":"include/libtmux/command.hpp","line":169,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandargument"},{"id":"libtmux::CommandArgument::CommandArgument","publicId":"libtmux::CommandArgument::CommandArgument","name":"CommandArgument","kind":"method","modifiers":["overload"],"parent":"libtmux::CommandArgument","signatures":[{"params":[{"name":"value","type":"const char *"}],"raw":"CommandArgument(const char* value);"},{"params":[{"name":"value","type":"std::string"}],"raw":"CommandArgument(std::string value);"},{"params":[{"name":"value","type":"std::string_view"}],"raw":"CommandArgument(std::string_view value);"}],"source":{"file":"include/libtmux/command.hpp","line":131,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandargument-commandargument"},{"id":"libtmux::CommandArgument::value","publicId":"libtmux::CommandArgument::value","name":"value","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandArgument","signatures":[{"params":[],"raw":"[[nodiscard]] const std::string& value() const noexcept;","returns":"const std::string &"}],"source":{"file":"include/libtmux/command.hpp","line":159,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandargument-value"},{"id":"libtmux::CommandArgument::sensitivity","publicId":"libtmux::CommandArgument::sensitivity","name":"sensitivity","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandArgument","signatures":[{"params":[],"raw":"[[nodiscard]] ArgumentSensitivity sensitivity() const noexcept;","returns":"ArgumentSensitivity"}],"source":{"file":"include/libtmux/command.hpp","line":160,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandargument-sensitivity"},{"id":"libtmux::CommandArgument::sensitive_parts","publicId":"libtmux::CommandArgument::sensitive_parts","name":"sensitive_parts","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandArgument","signatures":[{"params":[],"raw":"[[nodiscard]] const std::vector& sensitive_parts() const noexcept;","returns":"const std::vector &"}],"source":{"file":"include/libtmux/command.hpp","line":164,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandargument-sensitive_parts"},{"id":"libtmux::CommandArgument::sensitive","publicId":"libtmux::CommandArgument::sensitive","name":"sensitive","kind":"method","modifiers":["static"],"parent":"libtmux::CommandArgument","signatures":[{"params":[{"name":"value","type":"std::string"}],"raw":"[[nodiscard]] static CommandArgument sensitive(std::string value);","returns":"CommandArgument"}],"source":{"file":"include/libtmux/command.hpp","line":135,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandargument-sensitive"},{"id":"libtmux::CommandArgument::sensitive_range","publicId":"libtmux::CommandArgument::sensitive_range","name":"sensitive_range","kind":"method","modifiers":["static"],"parent":"libtmux::CommandArgument","signatures":[{"params":[{"name":"value","type":"std::string"},{"name":"offset","type":"std::size_t"},{"name":"size","type":"std::size_t"}],"raw":"[[nodiscard]] static CommandArgument\nsensitive_range(std::string value, std::size_t offset, std::size_t size);","returns":"CommandArgument"}],"doc":{"summary":"Keep a composite argument intact on the wire while treating one byte range inside it as sensitive.","body":"An invalid range hides the whole argument."},"source":{"file":"include/libtmux/command.hpp","line":146,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandargument-sensitive_range"},{"id":"libtmux::CommandBatch","publicId":"libtmux::CommandBatch","name":"CommandBatch","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"The argv a chain becomes: commands joined by tmux's separator.","body":"An empty command is rejected rather than emitted, because tmux reads two adjacent separators as the next command's first argument."},"source":{"file":"include/libtmux/batch.hpp","line":67,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandbatch"},{"id":"libtmux::CommandBatch::add","publicId":"libtmux::CommandBatch::add","name":"add","kind":"method","modifiers":[],"parent":"libtmux::CommandBatch","signatures":[{"params":[{"name":"command","type":"CommandRequest"}],"raw":"bool add(CommandRequest command);","returns":"bool"}],"doc":{"summary":"Append one command.","body":"An empty command is rejected rather than emitted, because an empty argv between separators makes tmux read the next command's name as an argument."},"source":{"file":"include/libtmux/batch.hpp","line":34,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandbatch-add"},{"id":"libtmux::CommandBatch::size","publicId":"libtmux::CommandBatch::size","name":"size","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandBatch","signatures":[{"params":[],"raw":"[[nodiscard]] std::size_t size() const noexcept;","returns":"std::size_t"}],"source":{"file":"include/libtmux/batch.hpp","line":42,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandbatch-size"},{"id":"libtmux::CommandBatch::empty","publicId":"libtmux::CommandBatch::empty","name":"empty","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandBatch","signatures":[{"params":[],"raw":"[[nodiscard]] bool empty() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/batch.hpp","line":43,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandbatch-empty"},{"id":"libtmux::CommandBatch::request","publicId":"libtmux::CommandBatch::request","name":"request","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandBatch","signatures":[{"params":[],"raw":"[[nodiscard]] CommandRequest request() const;","returns":"CommandRequest"}],"doc":{"summary":"Render the whole batch as one argv.","body":"A single command renders with no separator, so a batch of one is byte-identical to running it alone."},"source":{"file":"include/libtmux/batch.hpp","line":47,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandbatch-request"},{"id":"libtmux::CommandBatch::argv","publicId":"libtmux::CommandBatch::argv","name":"argv","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandBatch","signatures":[{"params":[],"raw":"[[nodiscard]] std::vector argv() const;","returns":"std::vector"}],"source":{"file":"include/libtmux/batch.hpp","line":60,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandbatch-argv"},{"id":"libtmux::CommandBatch::commands","publicId":"libtmux::CommandBatch::commands","name":"commands","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandBatch","signatures":[{"params":[],"raw":"[[nodiscard]] const std::vector& commands() const noexcept;","returns":"const std::vector &"}],"source":{"file":"include/libtmux/batch.hpp","line":62,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandbatch-commands"},{"id":"libtmux::CommandExecutor","publicId":"libtmux::CommandExecutor","name":"CommandExecutor","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A transport a caller supplies.","body":"`BackendKind::custom` named this possibility from the first release, but nothing implemented it: the interface a backend had to satisfy lived in the library's private headers, so the only reachable transport was the one that launches a subprocess per command. This is the seam that makes the name true.\n\nOne method, deliberately. Everything else a backend does — routing an entity command through its owning psmux session, proving a session belongs, preparing an attach argv — is either psmux's problem or the library's, and freezing it here would make a private arrangement permanent. What a transport owes is an answer to one command; the library supplies the rest and asks this for the tmux version too, by running `-V` through it.\n\n`run` is const and may be called from any thread, because a `Server` is copyable across threads and shares one executor. An implementation that keeps a connection or a buffer synchronises itself.\n\nReturning the command's standard output is the whole contract: a listing answers its rows, a mutation answers whatever tmux printed, and a failure answers `CommandFailure` rather than throwing.\n\nA batch arrives here too, as one request whose argv carries `;` between the grouped commands — there is no second method to implement, but the separators must reach tmux as they are. A transport that interprets or drops them turns one fail-fast group into something else without saying so."},"source":{"file":"include/libtmux/command.hpp","line":305,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandexecutor"},{"id":"libtmux::CommandExecutor::CommandExecutor","publicId":"libtmux::CommandExecutor::CommandExecutor","name":"CommandExecutor","kind":"method","modifiers":["overload"],"parent":"libtmux::CommandExecutor","signatures":[{"params":[],"raw":"CommandExecutor() = default;"},{"params":[{"name":"const CommandExecutor &"}],"raw":"CommandExecutor(const CommandExecutor&) = delete;"},{"params":[{"name":"CommandExecutor &&"}],"raw":"CommandExecutor(CommandExecutor&&) = delete;"}],"source":{"file":"include/libtmux/command.hpp","line":305,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandexecutor-commandexecutor-1clk"},{"id":"libtmux::CommandExecutor::~CommandExecutor","publicId":"libtmux::CommandExecutor::~CommandExecutor","name":"~CommandExecutor","kind":"method","modifiers":[],"parent":"libtmux::CommandExecutor","signatures":[{"params":[],"raw":"virtual ~CommandExecutor() = default;"}],"source":{"file":"include/libtmux/command.hpp","line":310,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandexecutor-commandexecutor-1h4s"},{"id":"libtmux::CommandExecutor::run","publicId":"libtmux::CommandExecutor::run","name":"run","kind":"method","modifiers":["abstract","readonly"],"parent":"libtmux::CommandExecutor","signatures":[{"params":[{"name":"command","type":"const CommandRequest &"},{"name":"timeout","type":"std::optional"},{"name":"output_limit","type":"std::optional"}],"raw":"[[nodiscard]] virtual expected\nrun(const CommandRequest& command, std::optional timeout,\n std::optional output_limit) const = 0;","returns":"expected"}],"doc":{"summary":"Absent timeout means the caller named none; absent limit means the same.","body":"An implementation that cannot bound itself should refuse rather than wait forever, the way every transport here already does."},"source":{"file":"include/libtmux/command.hpp","line":316,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandexecutor-run"},{"id":"libtmux::CommandOperation","publicId":"libtmux::CommandOperation","name":"CommandOperation","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Move-only result handle for one admitted command; its methods are not concurrent.","body":"Destruction releases its result without cancelling the command. It may outlive the runtime without retaining runtime threads."},"source":{"file":"include/libtmux/async.hpp","line":205,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandoperation"},{"id":"libtmux::CommandOperation::CommandOperation","publicId":"libtmux::CommandOperation::CommandOperation","name":"CommandOperation","kind":"method","modifiers":["overload"],"parent":"libtmux::CommandOperation","signatures":[{"params":[{"name":"other","type":"CommandOperation &&"}],"raw":"CommandOperation(CommandOperation&& other) noexcept;"},{"params":[{"name":"const CommandOperation &"}],"raw":"CommandOperation(const CommandOperation&) = delete;"}],"source":{"file":"include/libtmux/async.hpp","line":146,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandoperation-commandoperation-1203"},{"id":"libtmux::CommandOperation::~CommandOperation","publicId":"libtmux::CommandOperation::~CommandOperation","name":"~CommandOperation","kind":"method","modifiers":[],"parent":"libtmux::CommandOperation","signatures":[{"params":[],"raw":"~CommandOperation();"}],"source":{"file":"include/libtmux/async.hpp","line":150,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandoperation-commandoperation-1z0o"},{"id":"libtmux::CommandOperation::wait","publicId":"libtmux::CommandOperation::wait","name":"wait","kind":"method","modifiers":[],"parent":"libtmux::CommandOperation","signatures":[{"params":[],"raw":"[[nodiscard]] expected wait() &&;","returns":"expected"}],"doc":{"summary":"Consumes the same bounded answer `Server::run` gives.","body":"Waiting never dispatches the Server's global observer."},"source":{"file":"include/libtmux/async.hpp","line":154,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandoperation-wait"},{"id":"libtmux::CommandOperation::wait_until","publicId":"libtmux::CommandOperation::wait_until","name":"wait_until","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandOperation","signatures":[{"params":[{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"[[nodiscard]] expected\nwait_until(std::chrono::steady_clock::time_point deadline) const;","returns":"expected"}],"doc":{"summary":"True means the result can be taken; false means only this wait expired.","body":"Neither outcome consumes the handle or changes the command's deadline. A consumed or moved-from handle reports FailureKind::validation."},"source":{"file":"include/libtmux/async.hpp","line":160,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandoperation-wait_until"},{"id":"libtmux::CommandOperation::wait_for","publicId":"libtmux::CommandOperation::wait_for","name":"wait_for","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandOperation","signatures":[{"params":[{"name":"timeout","type":"std::chrono::milliseconds"}],"raw":"[[nodiscard]] expected\nwait_for(std::chrono::milliseconds timeout) const;","returns":"expected"}],"source":{"file":"include/libtmux/async.hpp","line":162,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandoperation-wait_for"},{"id":"libtmux::CommandOperation::detach","publicId":"libtmux::CommandOperation::detach","name":"detach","kind":"method","modifiers":[],"parent":"libtmux::CommandOperation","signatures":[{"params":[],"raw":"void detach() && noexcept;","returns":"void"}],"doc":{"summary":"Releases the result obligation without cancelling the command.","body":"The Server's global observer remains a runtime obligation."},"source":{"file":"include/libtmux/async.hpp","line":195,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandoperation-detach"},{"id":"libtmux::CommandOperation::request_cancel","publicId":"libtmux::CommandOperation::request_cancel","name":"request_cancel","kind":"method","modifiers":[],"parent":"libtmux::CommandOperation","signatures":[{"params":[],"raw":"[[nodiscard]] bool request_cancel();","returns":"bool"}],"doc":{"summary":"Requests withdrawal; false means no live transport cancellation remains.","body":"The eventual result's delivery says whether tmux may have acted."},"source":{"file":"include/libtmux/async.hpp","line":199,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandoperation-request_cancel"},{"id":"libtmux::CommandRequest","publicId":"libtmux::CommandRequest","name":"CommandRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One tmux command as argv, with no shell between it and tmux.","body":"Arguments are passed as separate words, so a value holding a space, a quote or a `;` arrives whole and nothing here needs escaping."},"source":{"file":"include/libtmux/command.hpp","line":213,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandrequest"},{"id":"libtmux::CommandRequest::CommandRequest","publicId":"libtmux::CommandRequest::CommandRequest","name":"CommandRequest","kind":"method","modifiers":["overload"],"parent":"libtmux::CommandRequest","signatures":[{"params":[],"raw":"CommandRequest() = default;"},{"params":[{"name":"arguments","type":"std::initializer_list"}],"raw":"CommandRequest(std::initializer_list arguments);"},{"params":[{"name":"arguments","type":"std::vector"}],"raw":"CommandRequest(std::vector arguments);"}],"source":{"file":"include/libtmux/command.hpp","line":179,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandrequest-commandrequest"},{"id":"libtmux::CommandRequest::empty","publicId":"libtmux::CommandRequest::empty","name":"empty","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandRequest","signatures":[{"params":[],"raw":"[[nodiscard]] bool empty() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/command.hpp","line":189,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandrequest-empty"},{"id":"libtmux::CommandRequest::size","publicId":"libtmux::CommandRequest::size","name":"size","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandRequest","signatures":[{"params":[],"raw":"[[nodiscard]] std::size_t size() const noexcept;","returns":"std::size_t"}],"source":{"file":"include/libtmux/command.hpp","line":190,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandrequest-size"},{"id":"libtmux::CommandRequest::reserve","publicId":"libtmux::CommandRequest::reserve","name":"reserve","kind":"method","modifiers":[],"parent":"libtmux::CommandRequest","signatures":[{"params":[{"name":"size","type":"std::size_t"}],"raw":"void reserve(std::size_t size);","returns":"void"}],"source":{"file":"include/libtmux/command.hpp","line":191,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandrequest-reserve"},{"id":"libtmux::CommandRequest::emplace_back","publicId":"libtmux::CommandRequest::emplace_back","name":"emplace_back","kind":"method","modifiers":["overload"],"parent":"libtmux::CommandRequest","signatures":[{"params":[{"name":"value","type":"const char *"}],"raw":"void emplace_back(const char* value);","returns":"void"},{"params":[{"name":"value","type":"std::string"}],"raw":"void emplace_back(std::string value);","returns":"void"},{"params":[{"name":"value","type":"std::string_view"}],"raw":"void emplace_back(std::string_view value);","returns":"void"}],"source":{"file":"include/libtmux/command.hpp","line":193,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandrequest-emplace_back"},{"id":"libtmux::CommandRequest::push_back","publicId":"libtmux::CommandRequest::push_back","name":"push_back","kind":"method","modifiers":[],"parent":"libtmux::CommandRequest","signatures":[{"params":[{"name":"argument","type":"CommandArgument"}],"raw":"void push_back(CommandArgument argument);","returns":"void"}],"source":{"file":"include/libtmux/command.hpp","line":196,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandrequest-push_back"},{"id":"libtmux::CommandRequest::arguments","publicId":"libtmux::CommandRequest::arguments","name":"arguments","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandRequest","signatures":[{"params":[],"raw":"[[nodiscard]] const std::vector& arguments() const noexcept;","returns":"const std::vector &"}],"source":{"file":"include/libtmux/command.hpp","line":200,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandrequest-arguments"},{"id":"libtmux::CommandRequest::argv","publicId":"libtmux::CommandRequest::argv","name":"argv","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandRequest","signatures":[{"params":[],"raw":"[[nodiscard]] std::vector argv() const;","returns":"std::vector"}],"source":{"file":"include/libtmux/command.hpp","line":203,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandrequest-argv"},{"id":"libtmux::CommandRuntime","publicId":"libtmux::CommandRuntime","name":"CommandRuntime","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Move-only owner of the transport threads, admission bound, and observations.","body":"Runtime operations, including `try_submit`, may race; move and destruction may not."},"source":{"file":"include/libtmux/async.hpp","line":136,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime"},{"id":"libtmux::CommandRuntime::start","publicId":"libtmux::CommandRuntime::start","name":"start","kind":"method","modifiers":["static"],"parent":"libtmux::CommandRuntime","signatures":[{"params":[{"name":"config","type":"CommandRuntimeConfig","default":"{}"}],"raw":"static expected\nstart(CommandRuntimeConfig config = {});","returns":"expected"}],"doc":{"summary":"Starts the bounded transport; startup failures are not-started values."},"source":{"file":"include/libtmux/async.hpp","line":86,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-start"},{"id":"libtmux::CommandRuntime::CommandRuntime","publicId":"libtmux::CommandRuntime::CommandRuntime","name":"CommandRuntime","kind":"method","modifiers":["overload"],"parent":"libtmux::CommandRuntime","signatures":[{"params":[{"name":"CommandRuntime &&"}],"raw":"CommandRuntime(CommandRuntime&&) noexcept;"},{"params":[{"name":"const CommandRuntime &"}],"raw":"CommandRuntime(const CommandRuntime&) = delete;"}],"source":{"file":"include/libtmux/async.hpp","line":87,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-commandruntime-1hs6"},{"id":"libtmux::CommandRuntime::~CommandRuntime","publicId":"libtmux::CommandRuntime::~CommandRuntime","name":"~CommandRuntime","kind":"method","modifiers":[],"parent":"libtmux::CommandRuntime","signatures":[{"params":[],"raw":"~CommandRuntime();"}],"doc":{"summary":"Stops and joins owned threads; pending observers are discarded, not invoked.","body":"Call `close` first when its terminal report matters."},"source":{"file":"include/libtmux/async.hpp","line":94,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-commandruntime-1nwg"},{"id":"libtmux::CommandRuntime::request_stop","publicId":"libtmux::CommandRuntime::request_stop","name":"request_stop","kind":"method","modifiers":[],"parent":"libtmux::CommandRuntime","signatures":[{"params":[],"raw":"void request_stop() noexcept;","returns":"void"}],"doc":{"summary":"Stops admission and requests cancellation without waiting."},"source":{"file":"include/libtmux/async.hpp","line":97,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-request_stop"},{"id":"libtmux::CommandRuntime::close","publicId":"libtmux::CommandRuntime::close","name":"close","kind":"method","modifiers":[],"parent":"libtmux::CommandRuntime","signatures":[{"params":[],"raw":"[[nodiscard]] CommandRuntimeShutdown close();","returns":"CommandRuntimeShutdown"}],"doc":{"summary":"Joins every owned thread without invoking or discarding observers, and does not return or throw until every blocked `wait_ready` caller has left.","body":"The first successful report is cached; a throwing shutdown can be retried."},"source":{"file":"include/libtmux/async.hpp","line":101,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-close"},{"id":"libtmux::CommandRuntime::snapshot","publicId":"libtmux::CommandRuntime::snapshot","name":"snapshot","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandRuntime","signatures":[{"params":[],"raw":"[[nodiscard]] CommandRuntimeSnapshot snapshot() const noexcept;","returns":"CommandRuntimeSnapshot"}],"doc":{"summary":"Reads one lock-consistent instant without waiting for work."},"source":{"file":"include/libtmux/async.hpp","line":103,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-snapshot"},{"id":"libtmux::CommandRuntime::wait_ready","publicId":"libtmux::CommandRuntime::wait_ready","name":"wait_ready","kind":"method","modifiers":[],"parent":"libtmux::CommandRuntime","signatures":[{"params":[{"name":"deadline","type":"std::chrono::steady_clock::time_point","default":"std::chrono::steady_clock::time_point::max()"}],"raw":"[[nodiscard]] ReadyStatus\nwait_ready(std::chrono::steady_clock::time_point deadline =\n std::chrono::steady_clock::time_point::max());","returns":"ReadyStatus"}],"doc":{"summary":"Waits for a ready observer without invoking it.","body":"`closed` means close has joined the transports and no ready observers remain, or this owner was moved. Ready records take precedence over closure and deadline expiry."},"source":{"file":"include/libtmux/async.hpp","line":108,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-wait_ready"},{"id":"libtmux::CommandRuntime::wait_ready_for","publicId":"libtmux::CommandRuntime::wait_ready_for","name":"wait_ready_for","kind":"method","modifiers":[],"parent":"libtmux::CommandRuntime","signatures":[{"params":[{"name":"timeout","type":"std::chrono::milliseconds"}],"raw":"[[nodiscard]] ReadyStatus wait_ready_for(std::chrono::milliseconds timeout);","returns":"ReadyStatus"}],"source":{"file":"include/libtmux/async.hpp","line":110,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-wait_ready_for"},{"id":"libtmux::CommandRuntime::dispatch_ready","publicId":"libtmux::CommandRuntime::dispatch_ready","name":"dispatch_ready","kind":"method","modifiers":[],"parent":"libtmux::CommandRuntime","signatures":[{"params":[],"raw":"[[nodiscard]] std::size_t dispatch_ready();","returns":"std::size_t"}],"doc":{"summary":"Runs one snapshot of ready observers on this thread and returns its count.","body":"A callback exception releases that record, propagates, and leaves later records."},"source":{"file":"include/libtmux/async.hpp","line":114,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-dispatch_ready"},{"id":"libtmux::CommandRuntime::discard_ready","publicId":"libtmux::CommandRuntime::discard_ready","name":"discard_ready","kind":"method","modifiers":[],"parent":"libtmux::CommandRuntime","signatures":[{"params":[],"raw":"[[nodiscard]] std::size_t discard_ready();","returns":"std::size_t"}],"doc":{"summary":"Releases ready observer obligations without invoking callbacks.","body":"Only one dispatch or discard call runs at once; competitors return zero."},"source":{"file":"include/libtmux/async.hpp","line":117,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-discard_ready"},{"id":"libtmux::CommandRuntime::ready_fd","publicId":"libtmux::CommandRuntime::ready_fd","name":"ready_fd","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandRuntime","signatures":[{"params":[],"raw":"[[nodiscard]] int ready_fd() const noexcept;","returns":"int"}],"doc":{"summary":"Readable exactly when `wait_ready` would return without blocking, for a caller that owns an event loop and cannot park a thread in `wait_ready`.","body":"The same contract as `Connection::notification_fd`:\n\nReadability is the signal. Do not read from it: the byte carries nothing and is this runtime's to consume. Drain by taking the work — `dispatch_ready` or `discard_ready` — which clears it.\n\nA closed runtime makes it readable, so a poller learns that no answer is coming rather than waiting for one.\n\nValid until this runtime is destroyed or moved from. `-1` when the pipe could not be created, and on Windows, where the runtime has no descriptor to offer; a caller that gets `-1` uses `wait_ready`."},"source":{"file":"include/libtmux/async.hpp","line":131,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-ready_fd"},{"id":"libtmux::Connection","publicId":"libtmux::Connection","name":"Connection","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One held-open control client.","body":"Shared freely between threads. `execute`, `take_notifications`, `wait_for_notifications`, `watch_notifications`, `set_pane_output` and the muting pair may all be called at once: writes are serialized, and each reply is matched to its own request through a private boundary, which is what lets concurrent callers tell their blocks apart even though tmux puts no request id on a guard.\n\nMoving from a connection, or destroying one, may not race with any of those — the same rule `CommandRuntime` states for itself.\n\nIt remains one FIFO client, so a command that waits on the server also delays whatever another thread asked for next. That is why `Server::run` stays the surface for a command whose final result matters."},"source":{"file":"include/libtmux/control.hpp","line":368,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection"},{"id":"libtmux::Connection::connect","publicId":"libtmux::Connection::connect","name":"connect","kind":"method","modifiers":["static"],"parent":"libtmux::Connection","signatures":[{"params":[{"name":"options","type":"ConnectionOptions"}],"raw":"static expected connect(ConnectionOptions options);","returns":"expected"}],"source":{"file":"include/libtmux/control.hpp","line":257,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-connect"},{"id":"libtmux::Connection::~Connection","publicId":"libtmux::Connection::~Connection","name":"~Connection","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[],"raw":"~Connection() noexcept;"}],"source":{"file":"include/libtmux/control.hpp","line":259,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-connection-1tno"},{"id":"libtmux::Connection::Connection","publicId":"libtmux::Connection::Connection","name":"Connection","kind":"method","modifiers":["overload"],"parent":"libtmux::Connection","signatures":[{"params":[{"name":"Connection &&"}],"raw":"Connection(Connection&&) noexcept;"},{"params":[{"name":"const Connection &"}],"raw":"Connection(const Connection&) = delete;"}],"source":{"file":"include/libtmux/control.hpp","line":260,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-connection-1eqf"},{"id":"libtmux::Connection::execute","publicId":"libtmux::Connection::execute","name":"execute","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[{"name":"request","type":"ControlRequest"},{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"ControlRequestResult execute(ControlRequest request,\n std::chrono::steady_clock::time_point deadline);","returns":"ControlRequestResult"}],"doc":{"summary":"Completes at this request's private protocol boundary and preserves every guarded block before it.","body":"This is wire evidence, not a final command result: tmux may end a block before a waiting job or file operation later reports unguarded output or failure. Use `Server::run` when final success or failure is required."},"source":{"file":"include/libtmux/control.hpp","line":270,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-execute"},{"id":"libtmux::Connection::take_notifications","publicId":"libtmux::Connection::take_notifications","name":"take_notifications","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[],"raw":"[[nodiscard]] std::vector take_notifications();","returns":"std::vector"}],"doc":{"summary":"Every outside-block event tmux has written since the last call.","body":"Taking drains: what comes back will not come back again. It says nothing about what happens next, so an empty result does not mean the stream has gone quiet, and a later one is new traffic rather than a repeat. Wait for the next event with `wait_for_notifications` rather than polling for one."},"source":{"file":"include/libtmux/control.hpp","line":278,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-take_notifications"},{"id":"libtmux::Connection::watch_notifications","publicId":"libtmux::Connection::watch_notifications","name":"watch_notifications","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[],"raw":"[[nodiscard]] NotificationWatch watch_notifications();","returns":"NotificationWatch"}],"doc":{"summary":"Open an independent cursor at the next outside-block event.","body":"Unlike the legacy taking methods above, watches do not steal events from each other."},"source":{"file":"include/libtmux/control.hpp","line":282,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-watch_notifications"},{"id":"libtmux::Connection::wait_for_notifications","publicId":"libtmux::Connection::wait_for_notifications","name":"wait_for_notifications","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"[[nodiscard]] std::vector\nwait_for_notifications(std::chrono::steady_clock::time_point deadline);","returns":"std::vector"}],"doc":{"summary":"The same, but waits for something to arrive.","body":"`take_notifications` returns immediately, so a caller reacting to tmux had to call it in a loop and sleep between — which either wakes too often or reacts too late, and picks that trade with no idea how long the next event will take. This blocks until at least one event is available, the connection fails, or the deadline passes, and returns whatever it has.\n\nAn empty result means the deadline passed or the stream ended; the two are told apart by asking `execute` or `shutdown`, which report the failure. Events already buffered are returned without waiting at all."},"source":{"file":"include/libtmux/control.hpp","line":296,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-wait_for_notifications"},{"id":"libtmux::Connection::notification_fd","publicId":"libtmux::Connection::notification_fd","name":"notification_fd","kind":"method","modifiers":["readonly"],"parent":"libtmux::Connection","signatures":[{"params":[],"raw":"[[nodiscard]] int notification_fd() const noexcept;","returns":"int"}],"doc":{"summary":"A descriptor that is readable exactly when a take would return something.","body":"For a caller who owns their own event loop. Without it, integrating means a thread blocked in `wait_for_notifications`, a queue of their own, and a self-pipe to wake the loop — which is this descriptor, rebuilt by hand on top of the thread and queue this connection already has.\n\nDo not read from it: readability is the signal and the byte is this connection's to consume. Drain with `take_notifications`, which clears it. A broken stream makes it readable too, so a poller learns of the failure rather than waiting for an answer that cannot come.\n\nValid until the connection is destroyed or moved from; `-1` if the pipe could not be created."},"source":{"file":"include/libtmux/control.hpp","line":311,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-notification_fd"},{"id":"libtmux::Connection::set_pane_output","publicId":"libtmux::Connection::set_pane_output","name":"set_pane_output","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[{"name":"pane","type":"std::string_view"},{"name":"deliver","type":"bool"},{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"expected\nset_pane_output(std::string_view pane, bool deliver,\n std::chrono::steady_clock::time_point deadline);","returns":"expected"}],"doc":{"summary":"Stop or resume `output` for one pane, on a connection that asked for it.","body":"The direction is not symmetrical, because tmux is not: a connection that started without `pane_output` cannot be made to listen to anything, and muting is the only per-pane control it offers. So this narrows what a listening connection receives; it cannot widen a silent one.\n\nResuming clears both mute and pause, starting at tmux's current output offset. What a caller sees for output produced while muted differs by tmux version, and is not this library's choice either way:\n\nBefore tmux 3.7, muting stops delivery to this connection only. What the pane printed while muted is lost — resuming never replays it.\n\nOn tmux 3.7+, muting stops tmux from reading the pane's pty at all. The pane freezes for every attached client and tool, not only this connection, and what it printed while muted arrives as a backlog on resume (measured against raw tmux, both directions)."},"source":{"file":"include/libtmux/control.hpp","line":332,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-set_pane_output"},{"id":"libtmux::Connection::mute_pane_output","publicId":"libtmux::Connection::mute_pane_output","name":"mute_pane_output","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[{"name":"pane","type":"std::string_view"},{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"[[nodiscard]] expected\nmute_pane_output(std::string_view pane,\n std::chrono::steady_clock::time_point deadline);","returns":"expected"}],"doc":{"summary":"Named forms of set_pane_output; the same connection policy applies.","body":"Muting is not this connection's private business on tmux 3.7+: tmux stops reading the pane's pty, so the pane freezes for every attached client and tool until it is resumed. `set_pane_output` has the version-by-version detail; this is the part worth knowing before reaching for the name."},"source":{"file":"include/libtmux/control.hpp","line":342,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-mute_pane_output"},{"id":"libtmux::Connection::resume_pane_output","publicId":"libtmux::Connection::resume_pane_output","name":"resume_pane_output","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[{"name":"pane","type":"std::string_view"},{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"[[nodiscard]] expected\nresume_pane_output(std::string_view pane,\n std::chrono::steady_clock::time_point deadline);","returns":"expected"}],"source":{"file":"include/libtmux/control.hpp","line":347,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-resume_pane_output"},{"id":"libtmux::Connection::events","publicId":"libtmux::Connection::events","name":"events","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"[[nodiscard]] NotificationRange\nevents(std::chrono::steady_clock::time_point deadline);","returns":"NotificationRange"}],"doc":{"summary":"Everything tmux says until the deadline, as one loop rather than two.","body":"Borrows this connection, which must outlive it."},"source":{"file":"include/libtmux/control.hpp","line":356,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-events"},{"id":"libtmux::Connection::dropped_notifications","publicId":"libtmux::Connection::dropped_notifications","name":"dropped_notifications","kind":"method","modifiers":["readonly"],"parent":"libtmux::Connection","signatures":[{"params":[],"raw":"[[nodiscard]] std::size_t dropped_notifications() const noexcept;","returns":"std::size_t"}],"doc":{"summary":"How many outside-block events this Connection's legacy taking cursor missed to keep the shared log bounded.","body":"Each watch has its own count."},"source":{"file":"include/libtmux/control.hpp","line":360,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-dropped_notifications"},{"id":"libtmux::Connection::native_child_pid","publicId":"libtmux::Connection::native_child_pid","name":"native_child_pid","kind":"method","modifiers":["readonly"],"parent":"libtmux::Connection","signatures":[{"params":[],"raw":"[[nodiscard]] std::int64_t native_child_pid() const noexcept;","returns":"std::int64_t"}],"source":{"file":"include/libtmux/control.hpp","line":361,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-native_child_pid"},{"id":"libtmux::Connection::shutdown","publicId":"libtmux::Connection::shutdown","name":"shutdown","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"expected\nshutdown(std::chrono::steady_clock::time_point deadline);","returns":"expected"}],"source":{"file":"include/libtmux/control.hpp","line":363,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-shutdown"},{"id":"libtmux::EntityId","publicId":"libtmux::EntityId","name":"EntityId","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A tmux object id, typed by what it names.","body":"tmux spells these `$0`, `@1` and `%2`. The prefix says which kind it is, and nothing in the type did: six accessors returned `std::string_view`, so a window id compiled wherever a pane id belonged, and `pane.id() == window.id()` was a comparison that can never be true but always built.\n\nThe string is reached through `value()` rather than through a conversion. A conversion is what let the mix-up through in the first place: with one, every `std::string_view` parameter accepts any id again, and this would read as type safety while providing none.\n\nComparing an id to plain text still works, because that cannot confuse two kinds — `pane.id() == \"%0\"` asks something answerable. Comparing two ids of different kinds does not compile."},"source":{"file":"include/libtmux/entities.hpp","line":222,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-entityid"},{"id":"libtmux::EntityId::EntityId","publicId":"libtmux::EntityId::EntityId","name":"EntityId","kind":"method","modifiers":["overload"],"parent":"libtmux::EntityId","signatures":[{"params":[],"raw":"libtmux::EntityId::EntityId() = default;"},{"params":[{"name":"value","type":"std::string_view"}],"raw":"constexpr explicit libtmux::EntityId::EntityId(std::string_view value) noexcept;","returns":"constexpr"}],"source":{"file":"include/libtmux/entities.hpp","line":202,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-entityid-entityid"},{"id":"libtmux::EntityId::value","publicId":"libtmux::EntityId::value","name":"value","kind":"method","modifiers":["readonly"],"parent":"libtmux::EntityId","signatures":[{"params":[],"raw":"[[nodiscard]] constexpr std::string_view\nlibtmux::EntityId::value() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":205,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-entityid-value"},{"id":"libtmux::EntityId::empty","publicId":"libtmux::EntityId::empty","name":"empty","kind":"method","modifiers":["readonly"],"parent":"libtmux::EntityId","signatures":[{"params":[],"raw":"[[nodiscard]] constexpr bool libtmux::EntityId::empty() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":206,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-entityid-empty"},{"id":"libtmux::FilterExpr","publicId":"libtmux::FilterExpr","name":"FilterExpr","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A filter over one entity type, as a value.","body":"Owns every operand it compares against, so it outlives the call that built it and can be stored and copied. The node set is a closed variant rather than an expression template, which is what lets the same value both filter a range already in memory and be translated to a tmux `-f` format later."},"source":{"file":"include/libtmux/filter_expr.hpp","line":125,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr"},{"id":"libtmux::FilterExpr::Node","publicId":"libtmux::FilterExpr::Node","name":"Node","kind":"typealias","modifiers":[],"parent":"libtmux::FilterExpr","signatures":[],"type":"std::variant","source":{"file":"include/libtmux/filter_expr.hpp","line":125,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-node-qrpx"},{"id":"libtmux::FilterExpr::FilterExpr","publicId":"libtmux::FilterExpr::FilterExpr","name":"FilterExpr","kind":"method","modifiers":["overload"],"parent":"libtmux::FilterExpr","signatures":[{"params":[{"name":"node","type":"Node"}],"raw":"explicit libtmux::FilterExpr::FilterExpr(Node node);"},{"params":[{"name":"other","type":"const FilterExpr &"}],"raw":"libtmux::FilterExpr::FilterExpr(const FilterExpr& other);"},{"params":[{"name":"FilterExpr &&"}],"raw":"libtmux::FilterExpr::FilterExpr(FilterExpr&&) noexcept = default;"}],"source":{"file":"include/libtmux/filter_expr.hpp","line":128,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-filterexpr-m43k"},{"id":"libtmux::FilterExpr::~FilterExpr","publicId":"libtmux::FilterExpr::~FilterExpr","name":"~FilterExpr","kind":"method","modifiers":[],"parent":"libtmux::FilterExpr","signatures":[{"params":[],"raw":"libtmux::FilterExpr::~FilterExpr() = default;"}],"source":{"file":"include/libtmux/filter_expr.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-filterexpr-23mp"},{"id":"libtmux::FilterExpr::node","publicId":"libtmux::FilterExpr::node","name":"node","kind":"method","modifiers":["readonly"],"parent":"libtmux::FilterExpr","signatures":[{"params":[],"raw":"[[nodiscard]] const Node& libtmux::FilterExpr::node() const noexcept;","returns":"const Node &"}],"source":{"file":"include/libtmux/filter_expr.hpp","line":146,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-node-1r0r"},{"id":"libtmux::FormatBuilder","publicId":"libtmux::FormatBuilder","name":"FormatBuilder","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Build a format from alternating literal and variable pieces so a caller never hand-concatenates and forgets to escape one of them."},"source":{"file":"include/libtmux/format.hpp","line":53,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-formatbuilder"},{"id":"libtmux::FormatBuilder::literal","publicId":"libtmux::FormatBuilder::literal","name":"literal","kind":"method","modifiers":[],"parent":"libtmux::FormatBuilder","signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"FormatBuilder& literal(std::string_view text);","returns":"FormatBuilder &"}],"source":{"file":"include/libtmux/format.hpp","line":40,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-formatbuilder-literal"},{"id":"libtmux::FormatBuilder::field","publicId":"libtmux::FormatBuilder::field","name":"field","kind":"method","modifiers":[],"parent":"libtmux::FormatBuilder","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"FormatBuilder& field(std::string_view name);","returns":"FormatBuilder &"}],"source":{"file":"include/libtmux/format.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-formatbuilder-field"},{"id":"libtmux::FormatBuilder::str","publicId":"libtmux::FormatBuilder::str","name":"str","kind":"method","modifiers":["readonly"],"parent":"libtmux::FormatBuilder","signatures":[{"params":[],"raw":"[[nodiscard]] const std::string& str() const noexcept;","returns":"const std::string &"}],"source":{"file":"include/libtmux/format.hpp","line":50,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-formatbuilder-str"},{"id":"libtmux::NodeCollector","publicId":"libtmux::NodeCollector","name":"NodeCollector","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Collects a lowered expression.","body":"This is the sink the relation builders use to capture their child, and it is a plain value so the result is copyable. Builds the flat node list a lowered expression is, keeping the indices stable so a parent can reference a child it has not finished emitting."},"source":{"file":"include/libtmux/lowered_node.hpp","line":109,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector"},{"id":"libtmux::NodeCollector::string_test","publicId":"libtmux::NodeCollector::string_test","name":"string_test","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[{"name":"field","type":"std::string_view"},{"name":"op","type":"std::string_view"},{"name":"operand","type":"std::string_view"}],"raw":"void string_test(std::string_view field, std::string_view op,\n std::string_view operand);","returns":"void"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":57,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-string_test"},{"id":"libtmux::NodeCollector::bool_test","publicId":"libtmux::NodeCollector::bool_test","name":"bool_test","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[{"name":"field","type":"std::string_view"},{"name":"expected","type":"bool"}],"raw":"void bool_test(std::string_view field, bool expected);","returns":"void"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":66,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-bool_test"},{"id":"libtmux::NodeCollector::number_test","publicId":"libtmux::NodeCollector::number_test","name":"number_test","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[{"name":"field","type":"std::string_view"},{"name":"op","type":"std::string_view"},{"name":"operand","type":"long long"}],"raw":"void number_test(std::string_view field, std::string_view op, long long operand);","returns":"void"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":73,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-number_test"},{"id":"libtmux::NodeCollector::begin_group","publicId":"libtmux::NodeCollector::begin_group","name":"begin_group","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[{"name":"conjunction","type":"bool"}],"raw":"void begin_group(bool conjunction);","returns":"void"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":81,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-begin_group"},{"id":"libtmux::NodeCollector::end_group","publicId":"libtmux::NodeCollector::end_group","name":"end_group","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[],"raw":"void end_group();","returns":"void"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":87,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-end_group"},{"id":"libtmux::NodeCollector::begin_negation","publicId":"libtmux::NodeCollector::begin_negation","name":"begin_negation","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[],"raw":"void begin_negation();","returns":"void"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":88,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-begin_negation"},{"id":"libtmux::NodeCollector::end_negation","publicId":"libtmux::NodeCollector::end_negation","name":"end_negation","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[],"raw":"void end_negation();","returns":"void"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":89,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-end_negation"},{"id":"libtmux::NodeCollector::begin_relation","publicId":"libtmux::NodeCollector::begin_relation","name":"begin_relation","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"quantifier","type":"int"}],"raw":"void begin_relation(std::string_view name, int quantifier);","returns":"void"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":90,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-begin_relation"},{"id":"libtmux::NodeCollector::end_relation","publicId":"libtmux::NodeCollector::end_relation","name":"end_relation","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[],"raw":"void end_relation();","returns":"void"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":97,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-end_relation"},{"id":"libtmux::NodeCollector::nodes","publicId":"libtmux::NodeCollector::nodes","name":"nodes","kind":"method","modifiers":["readonly"],"parent":"libtmux::NodeCollector","signatures":[{"params":[],"raw":"[[nodiscard]] const LoweredExpression& nodes() const noexcept;","returns":"const LoweredExpression &"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":99,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-nodes"},{"id":"libtmux::NodeCollector::take","publicId":"libtmux::NodeCollector::take","name":"take","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[],"raw":"[[nodiscard]] LoweredExpression take() noexcept;","returns":"LoweredExpression"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":100,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-take"},{"id":"libtmux::NotificationRange","publicId":"libtmux::NotificationRange","name":"NotificationRange","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Everything tmux says, until the deadline, as one loop.","body":"Draining by hand is two nested loops and a break: ask for a batch, stop if it is empty, walk it, ask again. That shape was written six times across this repository's own tests and examples before this existed, which is the argument for it.\n\nAn input range, single pass. A `ParsedNotification` views the notification it was read from, and this owns that notification only until the iterator advances — so copy what you need out of one before asking for the next."},"source":{"file":"include/libtmux/control.hpp","line":230,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationrange"},{"id":"libtmux::NotificationRange::NotificationRange","publicId":"libtmux::NotificationRange::NotificationRange","name":"NotificationRange","kind":"method","modifiers":[],"parent":"libtmux::NotificationRange","signatures":[{"params":[{"name":"connection","type":"Connection &"},{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"NotificationRange(Connection& connection,\n std::chrono::steady_clock::time_point deadline) noexcept;"}],"source":{"file":"include/libtmux/control.hpp","line":222,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationrange-notificationrange"},{"id":"libtmux::NotificationRange::begin","publicId":"libtmux::NotificationRange::begin","name":"begin","kind":"method","modifiers":[],"parent":"libtmux::NotificationRange","signatures":[{"params":[],"raw":"[[nodiscard]] iterator begin();","returns":"iterator"}],"source":{"file":"include/libtmux/control.hpp","line":226,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationrange-begin"},{"id":"libtmux::NotificationRange::end","publicId":"libtmux::NotificationRange::end","name":"end","kind":"method","modifiers":["readonly"],"parent":"libtmux::NotificationRange","signatures":[{"params":[],"raw":"[[nodiscard]] std::default_sentinel_t end() const noexcept;","returns":"std::default_sentinel_t"}],"source":{"file":"include/libtmux/control.hpp","line":227,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationrange-end"},{"id":"libtmux::NotificationRange::iterator","publicId":"libtmux::NotificationRange::iterator","name":"iterator","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Single-pass, and the value it yields is borrowed: advancing invalidates the notification the previous dereference viewed."},"source":{"file":"include/libtmux/control.hpp","line":195,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationrange-iterator"},{"id":"libtmux::NotificationRange::iterator::difference_type","publicId":"libtmux::NotificationRange::iterator::difference_type","name":"difference_type","kind":"typealias","modifiers":[],"parent":"libtmux::NotificationRange::iterator","signatures":[],"type":"std::ptrdiff_t","source":{"file":"include/libtmux/control.hpp","line":195,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationrange-iterator-difference_type"},{"id":"libtmux::NotificationRange::iterator::value_type","publicId":"libtmux::NotificationRange::iterator::value_type","name":"value_type","kind":"typealias","modifiers":[],"parent":"libtmux::NotificationRange::iterator","signatures":[],"type":"ParsedNotification","source":{"file":"include/libtmux/control.hpp","line":196,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationrange-iterator-value_type"},{"id":"libtmux::NotificationRange::iterator::iterator_concept","publicId":"libtmux::NotificationRange::iterator::iterator_concept","name":"iterator_concept","kind":"typealias","modifiers":[],"parent":"libtmux::NotificationRange::iterator","signatures":[],"type":"std::input_iterator_tag","source":{"file":"include/libtmux/control.hpp","line":197,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationrange-iterator-iterator_concept"},{"id":"libtmux::NotificationRange::iterator::iterator","publicId":"libtmux::NotificationRange::iterator::iterator","name":"iterator","kind":"method","modifiers":["overload"],"parent":"libtmux::NotificationRange::iterator","signatures":[{"params":[],"raw":"iterator() = default;"},{"params":[{"name":"range","type":"NotificationRange *"}],"raw":"explicit iterator(NotificationRange* range);"}],"source":{"file":"include/libtmux/control.hpp","line":199,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationrange-iterator-iterator"},{"id":"libtmux::NotificationWatch","publicId":"libtmux::NotificationWatch","name":"NotificationWatch","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One independent view of outside-block events emitted after opening.","body":"Taking from one watch never drains another watch or the Connection's legacy event queue. The retained log is shared and bounded; this watch's dropped count reports only events this watch actually missed.\n\nA watch retains the stream state. It can drain already-buffered events after its Connection is moved or destroyed; waits then wake as a closed stream."},"source":{"file":"include/libtmux/notification.hpp","line":154,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationwatch"},{"id":"libtmux::NotificationWatch::NotificationWatch","publicId":"libtmux::NotificationWatch::NotificationWatch","name":"NotificationWatch","kind":"method","modifiers":["overload"],"parent":"libtmux::NotificationWatch","signatures":[{"params":[],"raw":"NotificationWatch() noexcept;"},{"params":[{"name":"NotificationWatch &&"}],"raw":"NotificationWatch(NotificationWatch&&) noexcept;"},{"params":[{"name":"const NotificationWatch &"}],"raw":"NotificationWatch(const NotificationWatch&) = delete;"}],"source":{"file":"include/libtmux/notification.hpp","line":131,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationwatch-notificationwatch-dfl5"},{"id":"libtmux::NotificationWatch::~NotificationWatch","publicId":"libtmux::NotificationWatch::~NotificationWatch","name":"~NotificationWatch","kind":"method","modifiers":[],"parent":"libtmux::NotificationWatch","signatures":[{"params":[],"raw":"~NotificationWatch() noexcept;"}],"source":{"file":"include/libtmux/notification.hpp","line":132,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationwatch-notificationwatch-1v3s"},{"id":"libtmux::NotificationWatch::take_notifications","publicId":"libtmux::NotificationWatch::take_notifications","name":"take_notifications","kind":"method","modifiers":[],"parent":"libtmux::NotificationWatch","signatures":[{"params":[],"raw":"[[nodiscard]] std::vector take_notifications();","returns":"std::vector"}],"doc":{"summary":"Everything this watch has not taken yet, returned without waiting."},"source":{"file":"include/libtmux/notification.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationwatch-take_notifications"},{"id":"libtmux::NotificationWatch::wait_for_notifications","publicId":"libtmux::NotificationWatch::wait_for_notifications","name":"wait_for_notifications","kind":"method","modifiers":[],"parent":"libtmux::NotificationWatch","signatures":[{"params":[{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"[[nodiscard]] std::vector\nwait_for_notifications(std::chrono::steady_clock::time_point deadline);","returns":"std::vector"}],"doc":{"summary":"Wait for this watch to have an event, for the stream to close, or for the deadline.","body":"An empty result means one of the latter two happened."},"source":{"file":"include/libtmux/notification.hpp","line":143,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationwatch-wait_for_notifications"},{"id":"libtmux::NotificationWatch::notification_fd","publicId":"libtmux::NotificationWatch::notification_fd","name":"notification_fd","kind":"method","modifiers":["readonly"],"parent":"libtmux::NotificationWatch","signatures":[{"params":[],"raw":"[[nodiscard]] int notification_fd() const noexcept;","returns":"int"}],"doc":{"summary":"Readable when this watch has something to take or its stream has closed.","body":"Do not read it; taking all available events clears this watch's byte while the stream is open, and closure remains readable. `-1` means the pipe could not be created or the watch is empty/moved from."},"source":{"file":"include/libtmux/notification.hpp","line":148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationwatch-notification_fd"},{"id":"libtmux::NotificationWatch::dropped_notifications","publicId":"libtmux::NotificationWatch::dropped_notifications","name":"dropped_notifications","kind":"method","modifiers":["readonly"],"parent":"libtmux::NotificationWatch","signatures":[{"params":[],"raw":"[[nodiscard]] std::size_t dropped_notifications() const noexcept;","returns":"std::size_t"}],"doc":{"summary":"Events evicted before this watch took them, excluding events consumed by other cursors and events emitted before this watch opened."},"source":{"file":"include/libtmux/notification.hpp","line":151,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationwatch-dropped_notifications"},{"id":"libtmux::Pane","publicId":"libtmux::Pane","name":"Pane","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One pane, as one listing saw it.","body":"The narrowest thing tmux addresses, and the only one that owns a process: `pid` is the command tmux started, not the shell's children, so a pane running a program under a shell reports the shell.\n\nReads its own fields without touching tmux, on the same terms as `Session`.","examples":[{"lang":"console","intro":"Traverse a session and its children. List windows and panes within one session, then follow a pane back to its owning window and session. Each relation method performs a new read; the original entity still holds its earlier snapshot. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/relations.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto windows = session.windows();\n const auto session_panes = session.panes();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!session_panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", session_panes.error().diagnostic.c_str());\n return 1;\n }\n if (windows->size() != 1 || session_panes->size() != 1) {\n std::fputs(\"expected one window and pane\\n\", stderr);\n return 1;\n }\n const auto& window = windows->front();\n const auto panes = window.panes();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 1) {\n std::fputs(\"expected one window pane\\n\", stderr);\n return 1;\n }\n const auto owner_window = panes->front().window();\n const auto owner_session = panes->front().session();\n if (!owner_window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_window.error().diagnostic.c_str());\n return 1;\n }\n if (!owner_session.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_session.error().diagnostic.c_str());\n return 1;\n }\n if (*owner_window != window || *owner_session != session ||\n panes->front() != session_panes->front()) {\n std::fputs(\"entity ownership does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"api session -> one window -> one pane; owners match.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"api session -> one window -> one pane; owners match.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":705,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane"},{"id":"libtmux::Pane::kNoun","publicId":"libtmux::Pane::kNoun","name":"kNoun","kind":"attribute","modifiers":["static"],"parent":"libtmux::Pane","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/entities.hpp","line":705,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-knoun"},{"id":"libtmux::Pane::kSessionNameField","publicId":"libtmux::Pane::kSessionNameField","name":"kSessionNameField","kind":"attribute","modifiers":["static"],"parent":"libtmux::Pane","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/entities.hpp","line":706,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-ksessionnamefield"},{"id":"libtmux::Pane::kFields","publicId":"libtmux::Pane::kFields","name":"kFields","kind":"attribute","modifiers":["static"],"parent":"libtmux::Pane","signatures":[],"type":"std::array","source":{"file":"include/libtmux/entities.hpp","line":707,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-kfields"},{"id":"libtmux::Pane::Pane","publicId":"libtmux::Pane::Pane","name":"Pane","kind":"method","modifiers":[],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"snapshot","type":"std::shared_ptr"},{"name":"row","type":"std::size_t"}],"raw":"Pane(std::shared_ptr snapshot, std::size_t row) noexcept;"}],"source":{"file":"include/libtmux/entities.hpp","line":720,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-pane"},{"id":"libtmux::Pane::id","publicId":"libtmux::Pane::id","name":"id","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] PaneId id() const noexcept;","returns":"PaneId"}],"source":{"file":"include/libtmux/entities.hpp","line":726,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-id-wgkk"},{"id":"libtmux::Pane::command","publicId":"libtmux::Pane::command","name":"command","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view command() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"What is running in the pane now, which is not what started it."},"source":{"file":"include/libtmux/entities.hpp","line":728,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-command-6i9x"},{"id":"libtmux::Pane::active","publicId":"libtmux::Pane::active","name":"active","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] bool active() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":729,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-active-12uw"},{"id":"libtmux::Pane::window_id","publicId":"libtmux::Pane::window_id","name":"window_id","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] WindowId window_id() const noexcept;","returns":"WindowId"}],"source":{"file":"include/libtmux/entities.hpp","line":730,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-window_id-1v4v"},{"id":"libtmux::Pane::session_id","publicId":"libtmux::Pane::session_id","name":"session_id","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] SessionId session_id() const noexcept;","returns":"SessionId"}],"source":{"file":"include/libtmux/entities.hpp","line":731,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-session_id-d112"},{"id":"libtmux::Pane::index","publicId":"libtmux::Pane::index","name":"index","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] long long index() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":732,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-index-56y3"},{"id":"libtmux::Pane::title","publicId":"libtmux::Pane::title","name":"title","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view title() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":733,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-title-18ie"},{"id":"libtmux::Pane::pid","publicId":"libtmux::Pane::pid","name":"pid","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] long long pid() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":734,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-pid-172a"},{"id":"libtmux::Pane::tty","publicId":"libtmux::Pane::tty","name":"tty","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view tty() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":735,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-tty-1z0j"},{"id":"libtmux::Pane::path","publicId":"libtmux::Pane::path","name":"path","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view path() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":736,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-path-1piq"},{"id":"libtmux::Pane::width","publicId":"libtmux::Pane::width","name":"width","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] long long width() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":737,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-width-ojiw"},{"id":"libtmux::Pane::height","publicId":"libtmux::Pane::height","name":"height","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] long long height() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":740,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-height-l0kt"},{"id":"libtmux::Pane::dead","publicId":"libtmux::Pane::dead","name":"dead","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] bool dead() const noexcept;","returns":"bool"}],"doc":{"summary":"A pane whose program exited while `remain-on-exit` kept it on screen."},"source":{"file":"include/libtmux/entities.hpp","line":744,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-dead-9qv2"},{"id":"libtmux::Pane::in_mode","publicId":"libtmux::Pane::in_mode","name":"in_mode","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] bool in_mode() const noexcept;","returns":"bool"}],"doc":{"summary":"Copy mode and its relatives, in which sent keys move the cursor rather than reaching the program."},"source":{"file":"include/libtmux/entities.hpp","line":747,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-in_mode-blbb"},{"id":"libtmux::Pane::at_top","publicId":"libtmux::Pane::at_top","name":"at_top","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] bool at_top() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":748,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-at_top-110l"},{"id":"libtmux::Pane::at_bottom","publicId":"libtmux::Pane::at_bottom","name":"at_bottom","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] bool at_bottom() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":749,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-at_bottom-uzyl"},{"id":"libtmux::Pane::at_left","publicId":"libtmux::Pane::at_left","name":"at_left","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] bool at_left() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":750,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-at_left-1pop"},{"id":"libtmux::Pane::at_right","publicId":"libtmux::Pane::at_right","name":"at_right","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] bool at_right() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":751,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-at_right-e9fi"},{"id":"libtmux::Pane::piping","publicId":"libtmux::Pane::piping","name":"piping","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] bool piping() const noexcept;","returns":"bool"}],"doc":{"summary":"Whether this pane's output is currently being copied to a command."},"source":{"file":"include/libtmux/entities.hpp","line":753,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-piping-1eja"},{"id":"libtmux::Pane::left","publicId":"libtmux::Pane::left","name":"left","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] long long left() const noexcept;","returns":"long long"}],"doc":{"summary":"Position within the window, in cells from its top-left corner — the geometry `select_layout`'s saved arrangement places panes at."},"source":{"file":"include/libtmux/entities.hpp","line":756,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-left-n1t8"},{"id":"libtmux::Pane::top","publicId":"libtmux::Pane::top","name":"top","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] long long top() const noexcept;","returns":"long long"}],"doc":{"summary":"Its counterpart along the other axis."},"source":{"file":"include/libtmux/entities.hpp","line":758,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-top-1x0l"},{"id":"libtmux::Pane::exit_status","publicId":"libtmux::Pane::exit_status","name":"exit_status","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] std::optional exit_status() const noexcept;","returns":"std::optional"}],"doc":{"summary":"What the pane's process exited with, once it has.","body":"Optional rather than a number because zero is a real exit status and \"still running\" is not a status at all — tmux renders the field empty until the process is gone. Only a pane held on screen by `remain-on-exit` can report one: without it tmux destroys the pane, and there is nothing left to ask."},"source":{"file":"include/libtmux/entities.hpp","line":766,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-exit_status-zax2"},{"id":"libtmux::Pane::session_name","publicId":"libtmux::Pane::session_name","name":"session_name","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view session_name() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"The owning psmux route carried by Windows live snapshots.","body":"Empty on POSIX and in recordings made from the backward-compatible `kFields` schema."},"source":{"file":"include/libtmux/entities.hpp","line":781,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-session_name-swm7"},{"id":"libtmux::Pane::window","publicId":"libtmux::Pane::window","name":"window","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected window() const;","returns":"expected"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Traverse a session and its children. List windows and panes within one session, then follow a pane back to its owning window and session. Each relation method performs a new read; the original entity still holds its earlier snapshot. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/relations.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto windows = session.windows();\n const auto session_panes = session.panes();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!session_panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", session_panes.error().diagnostic.c_str());\n return 1;\n }\n if (windows->size() != 1 || session_panes->size() != 1) {\n std::fputs(\"expected one window and pane\\n\", stderr);\n return 1;\n }\n const auto& window = windows->front();\n const auto panes = window.panes();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 1) {\n std::fputs(\"expected one window pane\\n\", stderr);\n return 1;\n }\n const auto owner_window = panes->front().window();\n const auto owner_session = panes->front().session();\n if (!owner_window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_window.error().diagnostic.c_str());\n return 1;\n }\n if (!owner_session.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_session.error().diagnostic.c_str());\n return 1;\n }\n if (*owner_window != window || *owner_session != session ||\n panes->front() != session_panes->front()) {\n std::fputs(\"entity ownership does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"api session -> one window -> one pane; owners match.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"api session -> one window -> one pane; owners match.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":795,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-window"},{"id":"libtmux::Pane::session","publicId":"libtmux::Pane::session","name":"session","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected session() const;","returns":"expected"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Traverse a session and its children. List windows and panes within one session, then follow a pane back to its owning window and session. Each relation method performs a new read; the original entity still holds its earlier snapshot. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/relations.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto windows = session.windows();\n const auto session_panes = session.panes();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!session_panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", session_panes.error().diagnostic.c_str());\n return 1;\n }\n if (windows->size() != 1 || session_panes->size() != 1) {\n std::fputs(\"expected one window and pane\\n\", stderr);\n return 1;\n }\n const auto& window = windows->front();\n const auto panes = window.panes();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 1) {\n std::fputs(\"expected one window pane\\n\", stderr);\n return 1;\n }\n const auto owner_window = panes->front().window();\n const auto owner_session = panes->front().session();\n if (!owner_window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_window.error().diagnostic.c_str());\n return 1;\n }\n if (!owner_session.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_session.error().diagnostic.c_str());\n return 1;\n }\n if (*owner_window != window || *owner_session != session ||\n panes->front() != session_panes->front()) {\n std::fputs(\"entity ownership does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"api session -> one window -> one pane; owners match.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"api session -> one window -> one pane; owners match.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":796,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-session"},{"id":"libtmux::Pane::send_text","publicId":"libtmux::Pane::send_text","name":"send_text","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] expected send_text(std::string_view text) const;","returns":"expected"}],"doc":{"summary":"Literal text, never interpreted as key names or formats, and never followed by a newline the caller did not ask for.","examples":[{"lang":"console","intro":"Send input and capture confirmed output. Start a small shell reader with terminal echo disabled, wait for readiness, send one line, and capture its response. The two bounded waits prevent startup races and confirm output from the program. The final cat keeps the pane available for capture until cleanup. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/input-capture.cpp","code":"#include \n#include \n#include \n#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto window = sessions->front().new_window(libtmux::NewWindowOptions{\n .name = \"reader\",\n .shell_command = R\"(exec sh -c '\n stty -echo\n printf \"ready\\n\"\n IFS= read -r line\n printf \"got:%s\\n\" \"$line\"\n exec cat >/dev/null\n ')\",\n });\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n const auto pane = window->active_pane();\n if (!pane.has_value()) {\n std::fprintf(stderr, \"%s\\n\", pane.error().diagnostic.c_str());\n return 1;\n }\n const auto ready = pane->wait_for_text(\"ready\", {.timeout = std::chrono::seconds{5}});\n if (!ready.has_value()) {\n std::fprintf(stderr, \"%s\\n\", ready.error().diagnostic.c_str());\n return 1;\n }\n if (!ready->matched) {\n std::fputs(\"reader did not become ready\\n\", stderr);\n return 1;\n }\n const auto text = pane->send_text(\"hello \");\n if (!text.has_value()) {\n std::fprintf(stderr, \"%s\\n\", text.error().diagnostic.c_str());\n return 1;\n }\n const auto line = pane->send_line(\"C++\");\n if (!line.has_value()) {\n std::fprintf(stderr, \"%s\\n\", line.error().diagnostic.c_str());\n return 1;\n }\n const auto answered =\n pane->wait_for_text(\"got:hello C++\", {.timeout = std::chrono::seconds{5}});\n if (!answered.has_value()) {\n std::fprintf(stderr, \"%s\\n\", answered.error().diagnostic.c_str());\n return 1;\n }\n if (!answered->matched) {\n std::fputs(\"reader did not confirm the input\\n\", stderr);\n return 1;\n }\n const auto captured = pane->capture();\n if (!captured.has_value()) {\n std::fprintf(stderr, \"%s\\n\", captured.error().diagnostic.c_str());\n return 1;\n }\n // The captured string outlives the line views returned by capture_lines.\n const auto lines = libtmux::capture_lines(*captured);\n if (std::ranges::find(lines, \"got:hello C++\") == std::ranges::end(lines)) {\n std::fputs(\"captured output does not contain the response\\n\", stderr);\n return 1;\n }\n std::puts(\"got:hello C++\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"got:hello C++\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":800,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-send_text"},{"id":"libtmux::Pane::send_key","publicId":"libtmux::Pane::send_key","name":"send_key","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"key","type":"std::string_view"}],"raw":"[[nodiscard]] expected send_key(std::string_view key) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":801,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-send_key"},{"id":"libtmux::Pane::send_line","publicId":"libtmux::Pane::send_line","name":"send_line","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] expected send_line(std::string_view text) const;","returns":"expected"}],"doc":{"summary":"The text and then Enter, as one tmux invocation.","body":"Running a command in a pane is two commands to tmux, and sending them separately costs two round trips and leaves a window where the line is typed and not submitted. This sends both in one batch, which tmux runs fail-fast, so a refused line is not followed by an Enter.\n\nEmpty text sends Enter alone, which is what submitting a blank line means. `send_text` refuses it instead: there, nothing would be sent.","examples":[{"lang":"console","intro":"Send input and capture confirmed output. Start a small shell reader with terminal echo disabled, wait for readiness, send one line, and capture its response. The two bounded waits prevent startup races and confirm output from the program. The final cat keeps the pane available for capture until cleanup. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/input-capture.cpp","code":"#include \n#include \n#include \n#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto window = sessions->front().new_window(libtmux::NewWindowOptions{\n .name = \"reader\",\n .shell_command = R\"(exec sh -c '\n stty -echo\n printf \"ready\\n\"\n IFS= read -r line\n printf \"got:%s\\n\" \"$line\"\n exec cat >/dev/null\n ')\",\n });\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n const auto pane = window->active_pane();\n if (!pane.has_value()) {\n std::fprintf(stderr, \"%s\\n\", pane.error().diagnostic.c_str());\n return 1;\n }\n const auto ready = pane->wait_for_text(\"ready\", {.timeout = std::chrono::seconds{5}});\n if (!ready.has_value()) {\n std::fprintf(stderr, \"%s\\n\", ready.error().diagnostic.c_str());\n return 1;\n }\n if (!ready->matched) {\n std::fputs(\"reader did not become ready\\n\", stderr);\n return 1;\n }\n const auto text = pane->send_text(\"hello \");\n if (!text.has_value()) {\n std::fprintf(stderr, \"%s\\n\", text.error().diagnostic.c_str());\n return 1;\n }\n const auto line = pane->send_line(\"C++\");\n if (!line.has_value()) {\n std::fprintf(stderr, \"%s\\n\", line.error().diagnostic.c_str());\n return 1;\n }\n const auto answered =\n pane->wait_for_text(\"got:hello C++\", {.timeout = std::chrono::seconds{5}});\n if (!answered.has_value()) {\n std::fprintf(stderr, \"%s\\n\", answered.error().diagnostic.c_str());\n return 1;\n }\n if (!answered->matched) {\n std::fputs(\"reader did not confirm the input\\n\", stderr);\n return 1;\n }\n const auto captured = pane->capture();\n if (!captured.has_value()) {\n std::fprintf(stderr, \"%s\\n\", captured.error().diagnostic.c_str());\n return 1;\n }\n // The captured string outlives the line views returned by capture_lines.\n const auto lines = libtmux::capture_lines(*captured);\n if (std::ranges::find(lines, \"got:hello C++\") == std::ranges::end(lines)) {\n std::fputs(\"captured output does not contain the response\\n\", stderr);\n return 1;\n }\n std::puts(\"got:hello C++\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"got:hello C++\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":812,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-send_line"},{"id":"libtmux::Pane::split","publicId":"libtmux::Pane::split","name":"split","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"options","type":"SplitOptions","default":"{}"}],"raw":"[[nodiscard]] expected split(SplitOptions options = {}) const;","returns":"expected"}],"doc":{"summary":"Split this exact pane rather than whichever pane in its window happens to be active.","examples":[{"lang":"console","intro":"Create a window and split a pane. Create a detached window, split it side by side, and verify both panes belong to it. The cat processes keep each pane alive until fixture cleanup. Creation leaves the session selection unchanged because focus defaults to false. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/new-window-pane.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto before = session.active_window();\n if (!before.has_value()) {\n std::fprintf(stderr, \"%s\\n\", before.error().diagnostic.c_str());\n return 1;\n }\n const auto window = session.new_window(\n libtmux::NewWindowOptions{.name = \"editor\", .shell_command = \"exec cat\"});\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n const auto first = window->active_pane();\n if (!first.has_value()) {\n std::fprintf(stderr, \"%s\\n\", first.error().diagnostic.c_str());\n return 1;\n }\n const auto second = first->split(\n libtmux::SplitOptions{.horizontal = true, .shell_command = \"exec cat\"});\n if (!second.has_value()) {\n std::fprintf(stderr, \"%s\\n\", second.error().diagnostic.c_str());\n return 1;\n }\n const auto panes = window->panes();\n const auto after = session.active_window();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (!after.has_value()) {\n std::fprintf(stderr, \"%s\\n\", after.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 2 || *before != *after ||\n first->window_id() != second->window_id() || *first == *second) {\n std::fputs(\"created panes or selection do not match\\n\", stderr);\n return 1;\n }\n std::puts(\"Created editor with two panes; the active window is unchanged.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Created editor with two panes; the active window is unchanged.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":816,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-split"},{"id":"libtmux::Pane::capture","publicId":"libtmux::Pane::capture","name":"capture","kind":"method","modifiers":["readonly","overload"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected capture() const;","returns":"expected"},{"params":[{"name":"options","type":"CaptureOptions"}],"raw":"[[nodiscard]] expected\ncapture(CaptureOptions options) const;","returns":"expected"}],"doc":{"summary":"The visible contents, as tmux printed them.","body":"`capture_lines` frames it into lines, and takes a named string: the lines are views into it, so framing this return value directly is a compile error rather than a dangling read.\n\nA pane's scrollback can be far larger than the default bound, and a capture that does not fit is reported rather than cut, so a caller reading history passes the size it is prepared to hold.","examples":[{"lang":"console","intro":"Send input and capture confirmed output. Start a small shell reader with terminal echo disabled, wait for readiness, send one line, and capture its response. The two bounded waits prevent startup races and confirm output from the program. The final cat keeps the pane available for capture until cleanup. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/input-capture.cpp","code":"#include \n#include \n#include \n#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto window = sessions->front().new_window(libtmux::NewWindowOptions{\n .name = \"reader\",\n .shell_command = R\"(exec sh -c '\n stty -echo\n printf \"ready\\n\"\n IFS= read -r line\n printf \"got:%s\\n\" \"$line\"\n exec cat >/dev/null\n ')\",\n });\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n const auto pane = window->active_pane();\n if (!pane.has_value()) {\n std::fprintf(stderr, \"%s\\n\", pane.error().diagnostic.c_str());\n return 1;\n }\n const auto ready = pane->wait_for_text(\"ready\", {.timeout = std::chrono::seconds{5}});\n if (!ready.has_value()) {\n std::fprintf(stderr, \"%s\\n\", ready.error().diagnostic.c_str());\n return 1;\n }\n if (!ready->matched) {\n std::fputs(\"reader did not become ready\\n\", stderr);\n return 1;\n }\n const auto text = pane->send_text(\"hello \");\n if (!text.has_value()) {\n std::fprintf(stderr, \"%s\\n\", text.error().diagnostic.c_str());\n return 1;\n }\n const auto line = pane->send_line(\"C++\");\n if (!line.has_value()) {\n std::fprintf(stderr, \"%s\\n\", line.error().diagnostic.c_str());\n return 1;\n }\n const auto answered =\n pane->wait_for_text(\"got:hello C++\", {.timeout = std::chrono::seconds{5}});\n if (!answered.has_value()) {\n std::fprintf(stderr, \"%s\\n\", answered.error().diagnostic.c_str());\n return 1;\n }\n if (!answered->matched) {\n std::fputs(\"reader did not confirm the input\\n\", stderr);\n return 1;\n }\n const auto captured = pane->capture();\n if (!captured.has_value()) {\n std::fprintf(stderr, \"%s\\n\", captured.error().diagnostic.c_str());\n return 1;\n }\n // The captured string outlives the line views returned by capture_lines.\n const auto lines = libtmux::capture_lines(*captured);\n if (std::ranges::find(lines, \"got:hello C++\") == std::ranges::end(lines)) {\n std::fputs(\"captured output does not contain the response\\n\", stderr);\n return 1;\n }\n std::puts(\"got:hello C++\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"got:hello C++\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":825,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-capture"},{"id":"libtmux::Pane::wait_for_text","publicId":"libtmux::Pane::wait_for_text","name":"wait_for_text","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"wanted","type":"std::string_view"},{"name":"options","type":"const WaitOptions &","default":"{}"}],"raw":"[[nodiscard]] expected\nwait_for_text(std::string_view wanted, const WaitOptions& options = {}) const;","returns":"expected"}],"doc":{"summary":"Wait until this pane produces `wanted`, rather than until it merely appears on screen.","body":"Prefers the control stream's `%output` and falls back to re-reading the screen when no connection can be opened; `WaitOptions` says which, and `WaitResult::path` says which answered. A caller that typed the text it is waiting for names it in `WaitOptions::sent`, or the shell's echo of its own command is credited to the pane as output.","examples":[{"lang":"console","intro":"Send input and capture confirmed output. Start a small shell reader with terminal echo disabled, wait for readiness, send one line, and capture its response. The two bounded waits prevent startup races and confirm output from the program. The final cat keeps the pane available for capture until cleanup. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/input-capture.cpp","code":"#include \n#include \n#include \n#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto window = sessions->front().new_window(libtmux::NewWindowOptions{\n .name = \"reader\",\n .shell_command = R\"(exec sh -c '\n stty -echo\n printf \"ready\\n\"\n IFS= read -r line\n printf \"got:%s\\n\" \"$line\"\n exec cat >/dev/null\n ')\",\n });\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n const auto pane = window->active_pane();\n if (!pane.has_value()) {\n std::fprintf(stderr, \"%s\\n\", pane.error().diagnostic.c_str());\n return 1;\n }\n const auto ready = pane->wait_for_text(\"ready\", {.timeout = std::chrono::seconds{5}});\n if (!ready.has_value()) {\n std::fprintf(stderr, \"%s\\n\", ready.error().diagnostic.c_str());\n return 1;\n }\n if (!ready->matched) {\n std::fputs(\"reader did not become ready\\n\", stderr);\n return 1;\n }\n const auto text = pane->send_text(\"hello \");\n if (!text.has_value()) {\n std::fprintf(stderr, \"%s\\n\", text.error().diagnostic.c_str());\n return 1;\n }\n const auto line = pane->send_line(\"C++\");\n if (!line.has_value()) {\n std::fprintf(stderr, \"%s\\n\", line.error().diagnostic.c_str());\n return 1;\n }\n const auto answered =\n pane->wait_for_text(\"got:hello C++\", {.timeout = std::chrono::seconds{5}});\n if (!answered.has_value()) {\n std::fprintf(stderr, \"%s\\n\", answered.error().diagnostic.c_str());\n return 1;\n }\n if (!answered->matched) {\n std::fputs(\"reader did not confirm the input\\n\", stderr);\n return 1;\n }\n const auto captured = pane->capture();\n if (!captured.has_value()) {\n std::fprintf(stderr, \"%s\\n\", captured.error().diagnostic.c_str());\n return 1;\n }\n // The captured string outlives the line views returned by capture_lines.\n const auto lines = libtmux::capture_lines(*captured);\n if (std::ranges::find(lines, \"got:hello C++\") == std::ranges::end(lines)) {\n std::fputs(\"captured output does not contain the response\\n\", stderr);\n return 1;\n }\n std::puts(\"got:hello C++\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"got:hello C++\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":836,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-wait_for_text"},{"id":"libtmux::Pane::set_width","publicId":"libtmux::Pane::set_width","name":"set_width","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"width","type":"long long"}],"raw":"[[nodiscard]] expected set_width(long long width) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":838,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-set_width"},{"id":"libtmux::Pane::set_height","publicId":"libtmux::Pane::set_height","name":"set_height","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"height","type":"long long"}],"raw":"[[nodiscard]] expected set_height(long long height) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":839,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-set_height"},{"id":"libtmux::Pane::swap_with","publicId":"libtmux::Pane::swap_with","name":"swap_with","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"other","type":"const Pane &"}],"raw":"[[nodiscard]] expected swap_with(const Pane& other) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":840,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-swap_with"},{"id":"libtmux::Pane::toggle_zoom","publicId":"libtmux::Pane::toggle_zoom","name":"toggle_zoom","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected toggle_zoom() const;","returns":"expected"}],"doc":{"summary":"Toggle whether this pane's window is zoomed onto it — the whole window given over to one pane, full size.","body":"Zoom is window state, which `Window::zoomed()` reads; naming a pane here is how tmux picks which one to give the window to.\n\nOnly the zoom-in direction reads this pane: a window already zoomed unzooms on any target, this pane included, and stays on whichever pane it was zoomed onto (measured against raw tmux)."},"source":{"file":"include/libtmux/entities.hpp","line":850,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-toggle_zoom"},{"id":"libtmux::Pane::break_out","publicId":"libtmux::Pane::break_out","name":"break_out","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"name","type":"std::string_view","default":"{}"}],"raw":"[[nodiscard]] expected\nbreak_out(std::string_view name = {}) const;","returns":"expected"}],"doc":{"summary":"Take this pane out into a window of its own, which is returned.","body":"If it is already the window's only pane, return that window without moving it. An empty name leaves tmux to name the window after what is running."},"source":{"file":"include/libtmux/entities.hpp","line":856,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-break_out"},{"id":"libtmux::Pane::join","publicId":"libtmux::Pane::join","name":"join","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"target","type":"const Window &"}],"raw":"[[nodiscard]] expected join(const Window& target) const;","returns":"expected"}],"doc":{"summary":"Move this pane into another window, splitting it.","body":"The other half of `break_out`: that takes the tree apart, this puts it back.\n\nThe pane keeps its id, so a value held across the move still names it. The window it came from disappears if it held nothing else, which is why the target is named rather than inferred from where this pane is."},"source":{"file":"include/libtmux/entities.hpp","line":864,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-join"},{"id":"libtmux::Pane::enter_copy_mode","publicId":"libtmux::Pane::enter_copy_mode","name":"enter_copy_mode","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected enter_copy_mode() const;","returns":"expected"}],"doc":{"summary":"Put this pane into copy mode, where its contents can be scrolled and selected rather than typed into.","body":"Needs no attached client: the mode is pane state, which `in_mode` reports. Entering twice is harmless."},"source":{"file":"include/libtmux/entities.hpp","line":871,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-enter_copy_mode"},{"id":"libtmux::Pane::leave_mode","publicId":"libtmux::Pane::leave_mode","name":"leave_mode","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected leave_mode() const;","returns":"expected"}],"doc":{"summary":"Leave whatever mode the pane is in.","body":"A pane in no mode is refused, with tmux's \"not in a mode\". That is kept rather than smoothed into success: checking first would cost a round trip and still race, and a caller who cares can read `in_mode` or ignore the failure."},"source":{"file":"include/libtmux/entities.hpp","line":879,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-leave_mode"},{"id":"libtmux::Pane::pipe_to","publicId":"libtmux::Pane::pipe_to","name":"pipe_to","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"command","type":"std::string_view"}],"raw":"[[nodiscard]] expected pipe_to(std::string_view command) const;","returns":"expected"}],"doc":{"summary":"Copy everything this pane prints to a shell command, until told to stop.","body":"The command runs on the tmux server's machine with the pane's output on its standard input.\n\nStarting a second pipe replaces the first: tmux keeps one per pane, so there is nothing to close and nothing to leak."},"source":{"file":"include/libtmux/entities.hpp","line":887,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-pipe_to"},{"id":"libtmux::Pane::stop_piping","publicId":"libtmux::Pane::stop_piping","name":"stop_piping","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected stop_piping() const;","returns":"expected"}],"doc":{"summary":"Stop copying. Harmless on a pane that was not piping."},"source":{"file":"include/libtmux/entities.hpp","line":890,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-stop_piping"},{"id":"libtmux::Pane::set_title","publicId":"libtmux::Pane::set_title","name":"set_title","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"title","type":"std::string_view"}],"raw":"[[nodiscard]] expected set_title(std::string_view title) const;","returns":"expected"}],"doc":{"summary":"Name this pane.","body":"The title is what `#{pane_title}` reports and what a status line can show; it survives the process being replaced."},"source":{"file":"include/libtmux/entities.hpp","line":894,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-set_title"},{"id":"libtmux::Pane::respawn","publicId":"libtmux::Pane::respawn","name":"respawn","kind":"method","modifiers":["readonly","overload"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"replace_running","type":"bool","default":"false"}],"raw":"[[nodiscard]] expected\nrespawn(bool replace_running = false) const;","returns":"expected"},{"params":[{"name":"options","type":"RespawnOptions"}],"raw":"[[nodiscard]] expected respawn(RespawnOptions options) const;","returns":"expected"}],"doc":{"summary":"Start the pane's command again.","body":"tmux refuses a pane whose process is still running unless told to kill it, and that refusal is kept rather than smoothed over: replacing a live process is a decision, so `replace_running` has to be asked for."},"source":{"file":"include/libtmux/entities.hpp","line":902,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-respawn"},{"id":"libtmux::Pane::clear_history","publicId":"libtmux::Pane::clear_history","name":"clear_history","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected clear_history() const;","returns":"expected"}],"doc":{"summary":"Forget the scrollback, which is the only way to bound a pane's memory without restarting what is running in it."},"source":{"file":"include/libtmux/entities.hpp","line":907,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-clear_history"},{"id":"libtmux::Pane::expand","publicId":"libtmux::Pane::expand","name":"expand","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"format","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nexpand(std::string_view format) const;","returns":"expected"}],"doc":{"summary":"Ask tmux to expand a format against this pane.","body":"`#{pane_current_command}` and `#{pane_current_path}` are the two most callers reach for, and neither is a field this class carries: both change under a value that stays still.\n\nGuarded like the session and window forms, because tmux answers a pane that has gone with a blank and a zero exit status."},"source":{"file":"include/libtmux/entities.hpp","line":917,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-expand"},{"id":"libtmux::Pane::show_message","publicId":"libtmux::Pane::show_message","name":"show_message","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nshow_message(std::string_view text) const;","returns":"expected"}],"doc":{"summary":"Show a message to the clients watching this pane's session, expanded against this pane."},"source":{"file":"include/libtmux/entities.hpp","line":922,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-show_message"},{"id":"libtmux::Pane::paste","publicId":"libtmux::Pane::paste","name":"paste","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"buffer","type":"const Buffer &"},{"name":"consume","type":"bool","default":"false"}],"raw":"[[nodiscard]] expected paste(const Buffer& buffer,\n bool consume = false) const;","returns":"expected"}],"doc":{"summary":"Deliver a buffer's text to this pane, as if it had been typed.","body":"The text arrives on the command line and is not run: a caller wanting it executed sends Enter afterwards, which is the same distinction `send_text` draws.\n\n`consume` is tmux's `-d`, deleting the buffer once it has been pasted, which is what a caller treating it as a one-shot transfer wants."},"source":{"file":"include/libtmux/entities.hpp","line":930,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-paste"},{"id":"libtmux::Pane::select","publicId":"libtmux::Pane::select","name":"select","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected select() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":933,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-select"},{"id":"libtmux::Pane::kill","publicId":"libtmux::Pane::kill","name":"kill","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected kill() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":934,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-kill"},{"id":"libtmux::Pane::refresh","publicId":"libtmux::Pane::refresh","name":"refresh","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected refresh() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":935,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-refresh"},{"id":"libtmux::Pane::options","publicId":"libtmux::Pane::options","name":"options","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> options() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"Pane options, the narrowest scope tmux has, and the end of an inheritance chain that runs pane, window, session, global."},"source":{"file":"include/libtmux/entities.hpp","line":939,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-options"},{"id":"libtmux::Pane::option","publicId":"libtmux::Pane::option","name":"option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\noption(std::string_view name) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":941,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-option"},{"id":"libtmux::Pane::set_option","publicId":"libtmux::Pane::set_option","name":"set_option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] expected set_option(std::string_view name,\n std::string_view value) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":942,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-set_option"},{"id":"libtmux::Pane::unset_option","publicId":"libtmux::Pane::unset_option","name":"unset_option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nunset_option(std::string_view name) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":945,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-unset_option"},{"id":"libtmux::Parser","publicId":"libtmux::Parser","name":"Parser","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"The control-mode wire format, decoded into whole events.","body":"Owns the partial state between reads, so a caller feeds whatever bytes arrived and gets back only complete events. It bounds what it retains because a connection, unlike a subprocess, never gives its memory back."},"source":{"file":"include/libtmux/control.hpp","line":101,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parser"},{"id":"libtmux::Parser::Parser","publicId":"libtmux::Parser::Parser","name":"Parser","kind":"method","modifiers":["overload"],"parent":"libtmux::Parser","signatures":[{"params":[],"raw":"Parser() = default;"},{"params":[{"name":"retained_reply_bytes","type":"std::size_t"},{"name":"line_bytes","type":"std::size_t"}],"raw":"Parser(std::size_t retained_reply_bytes, std::size_t line_bytes) noexcept;"}],"source":{"file":"include/libtmux/control.hpp","line":91,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parser-parser"},{"id":"libtmux::Parser::feed","publicId":"libtmux::Parser::feed","name":"feed","kind":"method","modifiers":[],"parent":"libtmux::Parser","signatures":[{"params":[{"name":"bytes","type":"std::span"}],"raw":"expected, ProtocolError> feed(std::span bytes);","returns":"expected, ProtocolError>"}],"source":{"file":"include/libtmux/control.hpp","line":97,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parser-feed"},{"id":"libtmux::Parser::finish","publicId":"libtmux::Parser::finish","name":"finish","kind":"method","modifiers":[],"parent":"libtmux::Parser","signatures":[{"params":[],"raw":"expected finish();","returns":"expected"}],"source":{"file":"include/libtmux/control.hpp","line":98,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parser-finish"},{"id":"libtmux::Server","publicId":"libtmux::Server","name":"Server","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One tmux server, addressed by the socket it listens on.","body":"The entry point: sessions, windows and panes are read from here and carry the server with them. Constructing a handle sends no command. Only a startable handle may create an absent daemon; ordinary handles never do.","examples":[{"lang":"console","intro":"Connect to an owned server. Construct a Server handle for an explicit socket. Construction sends no command; sessions() reads the running server. The fixture controls daemon lifetime, while copies of Server share the connection. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/server.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n // Copying the handle keeps the same connection; it does not start another server.\n const libtmux::Server copy = *server;\n const auto sessions = copy.sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (copy.socket_path() != fixture->socket_path().string() || sessions->size() != 1 ||\n sessions->front().name() != \"api\") {\n std::fputs(\"unexpected server or session\\n\", stderr);\n return 1;\n }\n std::puts(\"Connected to the private api session.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Connected to the private api session.\n"}]},"source":{"file":"include/libtmux/server.hpp","line":505,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server"},{"id":"libtmux::Server::at_socket_path","publicId":"libtmux::Server::at_socket_path","name":"at_socket_path","kind":"method","modifiers":["static","overload"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"path","type":"std::string_view"},{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"raw":"[[nodiscard]] static expected\nat_socket_path(std::string_view path, CommandObserver observer = {},\n ExecutionPolicy policy = {});","returns":"expected"},{"params":[{"name":"path","type":"Path &&"},{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"typeParams":["typename Path"],"raw":"template \n requires std::same_as, std::filesystem::path>\n[[nodiscard]] static expected\nat_socket_path(Path&& path, CommandObserver observer = {},\n ExecutionPolicy policy = {});","returns":"expected"}],"doc":{"summary":"`-S path`: the socket file, used verbatim.","body":"These report `CommandFailure`, the same type every other call reports, rather than the `SocketError` the argument builders use: a factory that failed differently is a factory nothing can be chained onto. The reason a selector was rejected is in the diagnostic, and `socket_path_arguments` still returns the enum for a caller that wants to branch on it.\n\nAn observer, if given, is told about every command this server runs. It is fixed at construction because the connection is immutable afterwards, and that is what makes a Server safe to copy between threads. The policy is fixed for the same reason, and says what a call gets when it names no timeout or limit of its own.","examples":[{"lang":"console","intro":"Connect to an owned server. Construct a Server handle for an explicit socket. Construction sends no command; sessions() reads the running server. The fixture controls daemon lifetime, while copies of Server share the connection. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/server.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n // Copying the handle keeps the same connection; it does not start another server.\n const libtmux::Server copy = *server;\n const auto sessions = copy.sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (copy.socket_path() != fixture->socket_path().string() || sessions->size() != 1 ||\n sessions->front().name() != \"api\") {\n std::fputs(\"unexpected server or session\\n\", stderr);\n return 1;\n }\n std::puts(\"Connected to the private api session.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Connected to the private api session.\n"}]},"source":{"file":"include/libtmux/server.hpp","line":92,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-at_socket_path"},{"id":"libtmux::Server::at_socket_name","publicId":"libtmux::Server::at_socket_name","name":"at_socket_name","kind":"method","modifiers":["static"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"raw":"[[nodiscard]] static expected\nat_socket_name(std::string_view name, CommandObserver observer = {},\n ExecutionPolicy policy = {});","returns":"expected"}],"doc":{"summary":"`-L name`: resolved under tmux's socket directory, as the tmux flag does."},"source":{"file":"include/libtmux/server.hpp","line":108,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-at_socket_name"},{"id":"libtmux::Server::startable_at_socket_path","publicId":"libtmux::Server::startable_at_socket_path","name":"startable_at_socket_path","kind":"method","modifiers":["static","overload"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"path","type":"std::string_view"},{"name":"configuration","type":"std::optional"},{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"raw":"[[nodiscard]] static expected\nstartable_at_socket_path(std::string_view path,\n std::optional configuration,\n CommandObserver observer = {}, ExecutionPolicy policy = {});","returns":"expected"},{"params":[{"name":"path","type":"Path &&"},{"name":"configuration","type":"std::optional"},{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"typeParams":["typename Path"],"raw":"template \n requires std::same_as, std::filesystem::path>\n[[nodiscard]] static expected\nstartable_at_socket_path(Path&& path,\n std::optional configuration,\n CommandObserver observer = {}, ExecutionPolicy policy = {});","returns":"expected"}],"doc":{"summary":"A socket handle that may create an absent server on its first `new_session` call or an explicit `run({\"start-server\"})`.","body":"`configuration` is passed to tmux as `-f`; absent preserves tmux's user configuration. Every other call remains no-start while the socket is absent. The selector and configuration are frozen in the handle, and concurrent first-session calls are serialized."},"source":{"file":"include/libtmux/server.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-startable_at_socket_path"},{"id":"libtmux::Server::startable_at_socket_name","publicId":"libtmux::Server::startable_at_socket_name","name":"startable_at_socket_name","kind":"method","modifiers":["static"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"configuration","type":"std::optional"},{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"raw":"[[nodiscard]] static expected\nstartable_at_socket_name(std::string_view name,\n std::optional configuration,\n CommandObserver observer = {}, ExecutionPolicy policy = {});","returns":"expected"}],"source":{"file":"include/libtmux/server.hpp","line":133,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-startable_at_socket_name"},{"id":"libtmux::Server::startable_at_default","publicId":"libtmux::Server::startable_at_default","name":"startable_at_default","kind":"method","modifiers":["static"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"configuration","type":"std::optional"},{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"raw":"[[nodiscard]] static expected\nstartable_at_default(std::optional configuration,\n CommandObserver observer = {}, ExecutionPolicy policy = {});","returns":"expected"}],"source":{"file":"include/libtmux/server.hpp","line":137,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-startable_at_default"},{"id":"libtmux::Server::from_env","publicId":"libtmux::Server::from_env","name":"from_env","kind":"method","modifiers":["static"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"raw":"[[nodiscard]] static expected\nfrom_env(CommandObserver observer = {}, ExecutionPolicy policy = {});","returns":"expected"}],"doc":{"summary":"The server this process is running inside.","body":"tmux exports `TMUX` to everything it starts, as `,,`. Only the socket path is read: the session id is stale the moment a pane moves, and a `#()` job carries no session at all — so a caller who wants the session asks tmux, rather than trusting what it inherited."},"source":{"file":"include/libtmux/server.hpp","line":148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-from_env"},{"id":"libtmux::Server::at_default","publicId":"libtmux::Server::at_default","name":"at_default","kind":"method","modifiers":["static"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"raw":"[[nodiscard]] static expected\nat_default(CommandObserver observer = {}, ExecutionPolicy policy = {});","returns":"expected"}],"doc":{"summary":"The server tmux would talk to with no `-L` or `-S` at all, which is the one a person means when they say \"my tmux\"."},"source":{"file":"include/libtmux/server.hpp","line":153,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-at_default"},{"id":"libtmux::Server::over","publicId":"libtmux::Server::over","name":"over","kind":"method","modifiers":["static"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"executor","type":"std::shared_ptr"},{"name":"options","type":"ExecutorOptions","default":"{}"},{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"raw":"[[nodiscard]] static expected\nover(std::shared_ptr executor, ExecutorOptions options = {},\n CommandObserver observer = {}, ExecutionPolicy policy = {});","returns":"expected"}],"doc":{"summary":"A Server over a transport the caller supplies.","body":"`BackendKind::custom` named this possibility from the first release and nothing could reach it: the interface a backend had to satisfy lived in a header this package does not install, so the only transport a consumer could get was the one that launches a subprocess per command. An executor answers one command; the library keeps session routing, batching, attach preparation and the rest on its own side rather than making them a promise."},"source":{"file":"include/libtmux/server.hpp","line":165,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-over"},{"id":"libtmux::Server::capabilities","publicId":"libtmux::Server::capabilities","name":"capabilities","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] ServerCapabilities capabilities() const noexcept;","returns":"ServerCapabilities"}],"doc":{"summary":"The local backend contract; no command runs.","body":"`tmux_version()` separately queries the executable or the connected control server."},"source":{"file":"include/libtmux/server.hpp","line":170,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-capabilities"},{"id":"libtmux::Server::socket_path","publicId":"libtmux::Server::socket_path","name":"socket_path","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view socket_path() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"The resolved path pinned by this handle, including a startable path whose server has not been created yet.","body":"Empty only when the backend has no socket path representation."},"source":{"file":"include/libtmux/server.hpp","line":175,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-socket_path"},{"id":"libtmux::Server::run","publicId":"libtmux::Server::run","name":"run","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"command","type":"const CommandRequest &"},{"name":"timeout","type":"std::optional","default":"{}"},{"name":"output_limit","type":"std::optional","default":"{}"}],"raw":"[[nodiscard]] expected\nrun(const CommandRequest& command,\n std::optional timeout = {},\n std::optional output_limit = {}) const;","returns":"expected"}],"doc":{"summary":"Run one command and return its standard output.","body":"The timeout still rides on the call: how long a caller will wait is a property of what they asked for, and listing sessions does not share a deadline with attaching a client. Unset takes the server's `ExecutionPolicy`, which is thirty seconds rather than forever — a floor, not a guess at what this particular command needs. `output_limit` bounds how much of tmux's answer this call will hold. Past it the command reports `truncated` rather than returning a prefix that reads like a complete answer. Unset uses the package default, which is ample for every listing and can be too small for a long scrollback."},"source":{"file":"include/libtmux/server.hpp","line":189,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-run"},{"id":"libtmux::Server::try_submit","publicId":"libtmux::Server::try_submit","name":"try_submit","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"runtime","type":"CommandRuntime &"},{"name":"command","type":"CommandRequest"},{"name":"timeout","type":"std::optional","default":"{}"},{"name":"output_limit","type":"std::optional","default":"{}"}],"raw":"[[nodiscard]] expected\ntry_submit(CommandRuntime& runtime, CommandRequest command,\n std::optional timeout = {},\n std::optional output_limit = {}) const;","returns":"expected"}],"doc":{"summary":"Admit one command to an explicit bounded runtime without waiting for it.","body":"A refusal before admission is returned here; an admitted command carries every later transport or tmux failure in its operation."},"source":{"file":"include/libtmux/server.hpp","line":197,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-try_submit"},{"id":"libtmux::Server::run_batch","publicId":"libtmux::Server::run_batch","name":"run_batch","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"batch","type":"const CommandBatch &"}],"raw":"[[nodiscard]] expected\nrun_batch(const CommandBatch& batch) const;","returns":"expected"}],"doc":{"summary":"Run several commands in one invocation.","body":"tmux runs a batch fail-fast, so a failed batch is partially applied rather than rolled back, and one exit status covers the group, so tmux does not identify which member failed."},"source":{"file":"include/libtmux/server.hpp","line":205,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-run_batch"},{"id":"libtmux::Server::run_chain","publicId":"libtmux::Server::run_chain","name":"run_chain","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"chain","type":"const Chain &"}],"raw":"[[nodiscard]] expected\nrun_chain(const Chain& chain) const;","returns":"expected"}],"doc":{"summary":"Run a chain.","body":"A chain that failed validation never reaches tmux, and says which step was wrong rather than surfacing a tmux message about it."},"source":{"file":"include/libtmux/server.hpp","line":210,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-run_chain"},{"id":"libtmux::Server::control","publicId":"libtmux::Server::control","name":"control","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"session","type":"std::string_view"}],"raw":"[[nodiscard]] expected\ncontrol(std::string_view session) const;","returns":"expected"}],"doc":{"summary":"Open a control-mode connection to one session.","body":"This is the streaming half of the transport: a control connection stays open, exposes guarded reply blocks in wire order, and delivers events outside those blocks. The synchronous surface above is unaffected — a caller who never opens one never pays for it. A guarded block is not a final result for commands whose work tmux completes asynchronously.\n\nFails with `ProtocolError`, not `CommandFailure`, because that is what the `Connection` it returns speaks: an error type here that the value's own surface does not use would make the doorway disagree with the room."},"source":{"file":"include/libtmux/server.hpp","line":224,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-control"},{"id":"libtmux::Server::control_with_options","publicId":"libtmux::Server::control_with_options","name":"control_with_options","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"session","type":"std::string_view"},{"name":"options","type":"ConnectionOptions"}],"raw":"[[nodiscard]] expected\ncontrol_with_options(std::string_view session, ConnectionOptions options) const;","returns":"expected"}],"doc":{"summary":"The Server supplies the socket and `session` supplies the session name; every other connection option is kept, including pane output policy.","body":"`session` matches its exact tmux session name even when it holds a \".\" or \":\", which would otherwise be split as a window or pane target."},"source":{"file":"include/libtmux/server.hpp","line":230,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-control_with_options"},{"id":"libtmux::Server::over_control","publicId":"libtmux::Server::over_control","name":"over_control","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"session","type":"std::string_view"},{"name":"connections","type":"std::size_t","default":"1"}],"raw":"[[nodiscard]] expected\nover_control(std::string_view session, std::size_t connections = 1) const;","returns":"expected"}],"doc":{"summary":"A Server whose commands travel over held-open control clients attached to `session`, rather than one launched process each.","body":"Only where that gives the same answer. tmux can end a command's guarded block before the command has finished, so a command goes over the wire only if the typed surface issues it and tmux cannot defer it as sent — `split-window` without `-I` or `-W`, `display-message` without `-I`, the listings, and the other commands in the list in `server.cpp`, each checked against tmux's `CMD_RETURN_WAIT`. Anything else launches, as it would from this Server: a deferring command, one that acts on the client itself, an alias or an abbreviation this cannot see through. A failure reads as the same `CommandFailure` a launch would give.\n\n`connections` spreads commands over that many clients. One is enough for most callers — a connection already carries concurrent requests — and each extra client is attached to `session` and shows in `clients()`.\n\nA command with no target resolves against the control client's session rather than the most recently used one. The typed surface always names a target; a caller passing raw commands through `run` should too."},"source":{"file":"include/libtmux/server.hpp","line":253,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-over_control"},{"id":"libtmux::Server::tmux_version","publicId":"libtmux::Server::tmux_version","name":"tmux_version","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected tmux_version() const;","returns":"expected"}],"doc":{"summary":"Ask the selected subprocess executable with `tmux -V` without touching a server.","body":"The call uses this Server's execution policy."},"source":{"file":"include/libtmux/server.hpp","line":257,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-tmux_version"},{"id":"libtmux::Server::validate_layouts","publicId":"libtmux::Server::validate_layouts","name":"validate_layouts","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"layouts","type":"std::span"}],"raw":"[[nodiscard]] expected\nvalidate_layouts(std::span layouts) const;","returns":"expected"}],"doc":{"summary":"Validate the complete batch's syntax before any I/O, then query its daemon once for version-dependent names or v2 JSON layouts.","body":"No layout is applied. Only an unbound native subprocess handle may use the client version for an absent socket; failures from previously bound endpoints remain failures."},"source":{"file":"include/libtmux/server.hpp","line":264,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-validate_layouts"},{"id":"libtmux::Server::is_alive","publicId":"libtmux::Server::is_alive","name":"is_alive","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"timeout","type":"std::chrono::milliseconds","default":"std::chrono::seconds{ 5}"}],"raw":"[[nodiscard]] bool is_alive(std::chrono::milliseconds timeout = std::chrono::seconds{\n 5}) const;","returns":"bool"}],"doc":{"summary":"Whether a server is answering on this socket.","body":"False covers every reason — no server, no socket, a tmux that would not run — because a caller who only wants to know whether to start one does not need to tell them apart.\n\nBounded by default: the one call whose whole job is answering \"can I reach\nthis\" must not be the call that hangs. A stalled socket or a stopped server answers no, in time, rather than never."},"source":{"file":"include/libtmux/server.hpp","line":273,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-is_alive"},{"id":"libtmux::Server::check_alive","publicId":"libtmux::Server::check_alive","name":"check_alive","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"timeout","type":"std::chrono::milliseconds","default":"std::chrono::seconds{5}"}],"raw":"[[nodiscard]] expected\ncheck_alive(std::chrono::milliseconds timeout = std::chrono::seconds{5}) const;","returns":"expected"}],"doc":{"summary":"The same question, keeping why the answer was no."},"source":{"file":"include/libtmux/server.hpp","line":277,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-check_alive"},{"id":"libtmux::Server::kill","publicId":"libtmux::Server::kill","name":"kill","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected kill() const;","returns":"expected"}],"doc":{"summary":"End the server and everything in it."},"source":{"file":"include/libtmux/server.hpp","line":280,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-kill"},{"id":"libtmux::Server::sessions","publicId":"libtmux::Server::sessions","name":"sessions","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> sessions() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"One snapshot each.","body":"Iterating or filtering the result never reaches tmux again; taking a current view means calling these again.","examples":[{"lang":"console","intro":"List server objects. Read independent snapshots of every session, window, pane, and client. Iterating these vectors makes no further tmux calls. The detached fixture has one session, one window, one pane, and no attached clients. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/listings.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n const auto windows = server->windows();\n const auto panes = server->panes();\n const auto clients = server->clients();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (!clients.has_value()) {\n std::fprintf(stderr, \"%s\\n\", clients.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1 || windows->size() != 1 || panes->size() != 1 ||\n !clients->empty()) {\n std::fputs(\"unexpected detached server contents\\n\", stderr);\n return 1;\n }\n std::printf(\"sessions=%zu windows=%zu panes=%zu clients=%zu\\n\", sessions->size(),\n windows->size(), panes->size(), clients->size());\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"sessions=1 windows=1 panes=1 clients=0\n"}]},"source":{"file":"include/libtmux/server.hpp","line":284,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-sessions"},{"id":"libtmux::Server::windows","publicId":"libtmux::Server::windows","name":"windows","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> windows() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"tmux scopes window and pane listings to the current session unless asked for every one, so `-a` is part of the request rather than a caller's responsibility to remember.","examples":[{"lang":"console","intro":"List server objects. Read independent snapshots of every session, window, pane, and client. Iterating these vectors makes no further tmux calls. The detached fixture has one session, one window, one pane, and no attached clients. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/listings.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n const auto windows = server->windows();\n const auto panes = server->panes();\n const auto clients = server->clients();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (!clients.has_value()) {\n std::fprintf(stderr, \"%s\\n\", clients.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1 || windows->size() != 1 || panes->size() != 1 ||\n !clients->empty()) {\n std::fputs(\"unexpected detached server contents\\n\", stderr);\n return 1;\n }\n std::printf(\"sessions=%zu windows=%zu panes=%zu clients=%zu\\n\", sessions->size(),\n windows->size(), panes->size(), clients->size());\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"sessions=1 windows=1 panes=1 clients=0\n"}]},"source":{"file":"include/libtmux/server.hpp","line":288,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-windows"},{"id":"libtmux::Server::panes","publicId":"libtmux::Server::panes","name":"panes","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> panes() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"List server objects. Read independent snapshots of every session, window, pane, and client. Iterating these vectors makes no further tmux calls. The detached fixture has one session, one window, one pane, and no attached clients. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/listings.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n const auto windows = server->windows();\n const auto panes = server->panes();\n const auto clients = server->clients();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (!clients.has_value()) {\n std::fprintf(stderr, \"%s\\n\", clients.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1 || windows->size() != 1 || panes->size() != 1 ||\n !clients->empty()) {\n std::fputs(\"unexpected detached server contents\\n\", stderr);\n return 1;\n }\n std::printf(\"sessions=%zu windows=%zu panes=%zu clients=%zu\\n\", sessions->size(),\n windows->size(), panes->size(), clients->size());\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"sessions=1 windows=1 panes=1 clients=0\n"}]},"source":{"file":"include/libtmux/server.hpp","line":289,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-panes"},{"id":"libtmux::Server::clients","publicId":"libtmux::Server::clients","name":"clients","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> clients() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"List server objects. Read independent snapshots of every session, window, pane, and client. Iterating these vectors makes no further tmux calls. The detached fixture has one session, one window, one pane, and no attached clients. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/listings.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n const auto windows = server->windows();\n const auto panes = server->panes();\n const auto clients = server->clients();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (!clients.has_value()) {\n std::fprintf(stderr, \"%s\\n\", clients.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1 || windows->size() != 1 || panes->size() != 1 ||\n !clients->empty()) {\n std::fputs(\"unexpected detached server contents\\n\", stderr);\n return 1;\n }\n std::printf(\"sessions=%zu windows=%zu panes=%zu clients=%zu\\n\", sessions->size(),\n windows->size(), panes->size(), clients->size());\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"sessions=1 windows=1 panes=1 clients=0\n"}]},"source":{"file":"include/libtmux/server.hpp","line":290,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-clients"},{"id":"libtmux::Server::wait_for","publicId":"libtmux::Server::wait_for","name":"wait_for","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"channel","type":"std::string_view"},{"name":"timeout","type":"std::optional","default":"{}"}],"raw":"[[nodiscard]] expected\nwait_for(std::string_view channel,\n std::optional timeout = {}) const;","returns":"expected"}],"doc":{"summary":"Block until someone signals this channel, or the deadline passes.","body":"tmux latches a signal: one sent while nobody is waiting satisfies the next wait rather than being lost. That makes signal-before-wait safe, and it also means a stale signal can release a later waiter, so a channel is worth naming for one exchange rather than reusing.\n\nA server that dies under a waiter makes tmux exit zero, which is indistinguishable from being signalled — a caller would carry on as though the other side had spoken. This reports that as a failure instead, which is the reason to prefer it over running the command.\n\nOmitting `timeout` waits with no deadline: if the channel is never signalled, this call never returns. Waiting is the whole point of the request, so that is deliberate rather than a gap — pass a timeout to bound it."},"source":{"file":"include/libtmux/server.hpp","line":309,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-wait_for"},{"id":"libtmux::Server::signal","publicId":"libtmux::Server::signal","name":"signal","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"channel","type":"std::string_view"}],"raw":"[[nodiscard]] expected signal(std::string_view channel) const;","returns":"expected"}],"doc":{"summary":"Release whoever is waiting on the channel, or latch it for whoever waits next."},"source":{"file":"include/libtmux/server.hpp","line":314,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-signal"},{"id":"libtmux::Server::commands","publicId":"libtmux::Server::commands","name":"commands","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> commands() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"Every command this tmux understands, with its alias and usage.","body":"Asking beats inferring: the supported-version range is a floor, not a description, and a distribution can ship a build with commands left out. A caller deciding whether a capability exists can look."},"source":{"file":"include/libtmux/server.hpp","line":321,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-commands"},{"id":"libtmux::Server::buffers","publicId":"libtmux::Server::buffers","name":"buffers","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> buffers() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"The server's cut buffers, newest first as tmux orders them.","body":"A server holding none answers with an empty list rather than a failure, like every other listing here."},"source":{"file":"include/libtmux/server.hpp","line":326,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-buffers"},{"id":"libtmux::Server::load_buffer","publicId":"libtmux::Server::load_buffer","name":"load_buffer","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"from","type":"const std::filesystem::path &"}],"raw":"[[nodiscard]] expected\nload_buffer(std::string_view name, const std::filesystem::path& from) const;","returns":"expected"}],"doc":{"summary":"Read a file into a named buffer, and write one back out.","body":"The file is read and written by the tmux server, so the path is the server's to resolve — which matters when it is not on this machine. The bytes are not interpreted: a buffer round-tripped through a file comes back identical."},"source":{"file":"include/libtmux/server.hpp","line":335,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-load_buffer"},{"id":"libtmux::Server::save_buffer","publicId":"libtmux::Server::save_buffer","name":"save_buffer","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"to","type":"const std::filesystem::path &"}],"raw":"[[nodiscard]] expected\nsave_buffer(std::string_view name, const std::filesystem::path& to) const;","returns":"expected"}],"source":{"file":"include/libtmux/server.hpp","line":337,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-save_buffer"},{"id":"libtmux::Server::bind_key","publicId":"libtmux::Server::bind_key","name":"bind_key","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"table","type":"std::string_view"},{"name":"key","type":"std::string_view"},{"name":"command","type":"const std::vector &"},{"name":"repeatable","type":"bool","default":"false"}],"raw":"[[nodiscard]] expected\nbind_key(std::string_view table, std::string_view key,\n const std::vector& command, bool repeatable = false) const;","returns":"expected"}],"doc":{"summary":"Bind a key in a key table, and take a binding away again.","body":"The command is argv, not a string, so nothing here has to be quoted for tmux to take it apart again correctly.\n\nA table name containing whitespace is refused. tmux accepts one and then prints it unquoted in `list-keys`, where `-T my table X command` cannot be told apart from the table `my` bound to the key `table` — so a name that survives being listed is required, the same way a target refuses a name that cannot survive being parsed.\n\nKey names are tmux's to check: unlike `send-keys`, `bind-key` reports an unknown one — including an empty one — so there is nothing for this to add, and nothing here repeats it.\n\n`repeatable` is tmux's `-r`, letting the key repeat without the prefix being pressed again."},"source":{"file":"include/libtmux/server.hpp","line":357,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-bind_key"},{"id":"libtmux::Server::unbind_key","publicId":"libtmux::Server::unbind_key","name":"unbind_key","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"table","type":"std::string_view"},{"name":"key","type":"std::string_view"}],"raw":"[[nodiscard]] expected unbind_key(std::string_view table,\n std::string_view key) const;","returns":"expected"}],"doc":{"summary":"Unbinding a key that was not bound succeeds; unbinding in a table that does not exist is refused.","body":"A table exists only while something is bound in it, so taking away the last binding takes the table with it."},"source":{"file":"include/libtmux/server.hpp","line":363,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-unbind_key"},{"id":"libtmux::Server::run_shell","publicId":"libtmux::Server::run_shell","name":"run_shell","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"command","type":"std::string_view"},{"name":"background","type":"bool","default":"false"}],"raw":"[[nodiscard]] expected run_shell(std::string_view command,\n bool background = false) const;","returns":"expected"}],"doc":{"summary":"Run a shell command on the machine the server is on.","body":"Reports whether it ran, not what it printed. tmux hands back the output on most versions and discards it on 3.3a and 3.4, and an answer that is empty on two versions in the middle of the range is worse than no answer at all. A caller that needs the output redirects it to a file.\n\nWhat is uniform is the exit status: a command that fails is a failure here, carrying its code in `exit_code`.\n\n`background` is tmux's `-b`, which returns as soon as the command is started. Nothing can then be said about how it ended, so a backgrounded command that fails still reports success."},"source":{"file":"include/libtmux/server.hpp","line":379,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-run_shell"},{"id":"libtmux::Server::source_file","publicId":"libtmux::Server::source_file","name":"source_file","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"file","type":"const std::filesystem::path &"}],"raw":"[[nodiscard]] expected\nsource_file(const std::filesystem::path& file) const;","returns":"expected"}],"doc":{"summary":"Run the commands in a file, the way tmux runs a configuration file.","body":"The server reads the file, so the path is the server's to resolve. A file it cannot read is reported rather than passed over. A control-backed Server rejects execution because the file can add an unknowable number of reply blocks; `check_file` remains available there."},"source":{"file":"include/libtmux/server.hpp","line":389,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-source_file"},{"id":"libtmux::Server::check_file","publicId":"libtmux::Server::check_file","name":"check_file","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"file","type":"const std::filesystem::path &"}],"raw":"[[nodiscard]] expected\ncheck_file(const std::filesystem::path& file) const;","returns":"expected"}],"doc":{"summary":"Parse the same file and report what tmux would refuse in it, running none of it.","body":"This is how a program checks a configuration it is about to apply without applying half of it first."},"source":{"file":"include/libtmux/server.hpp","line":395,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-check_file"},{"id":"libtmux::Server::expand","publicId":"libtmux::Server::expand","name":"expand","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"format","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nexpand(std::string_view format) const;","returns":"expected"}],"doc":{"summary":"Ask tmux to expand a format, against no target but the server itself.","body":"Unguarded, unlike the entity forms: there is no target here that could have gone away. A server kept alive with no sessions still answers its own fields, and answers the session-scoped ones with nothing — which is the truth about that server, not a failure to report."},"source":{"file":"include/libtmux/server.hpp","line":404,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-expand"},{"id":"libtmux::Server::show_message","publicId":"libtmux::Server::show_message","name":"show_message","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nshow_message(std::string_view text) const;","returns":"expected"}],"doc":{"summary":"Put a message on the status line of every attached client, and send it to each control client as `message`.","body":"tmux expands the text as a format, so a `#{...}` in it is substituted rather than shown. Text built from data belongs in `escape_literal` first."},"source":{"file":"include/libtmux/server.hpp","line":413,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-show_message"},{"id":"libtmux::Server::set_buffer","publicId":"libtmux::Server::set_buffer","name":"set_buffer","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"data","type":"std::string_view"}],"raw":"[[nodiscard]] expected set_buffer(std::string_view name,\n std::string_view data) const;","returns":"expected"}],"doc":{"summary":"Put text in a named buffer, replacing what was there.","body":"An empty name lets tmux choose one, which is what a caller copying without caring about the name wants."},"source":{"file":"include/libtmux/server.hpp","line":418,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-set_buffer"},{"id":"libtmux::Server::session","publicId":"libtmux::Server::session","name":"session","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"target","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nsession(std::string_view target) const;","returns":"expected"}],"doc":{"summary":"One object by target, for a caller holding an id or a `session:window` path that came from somewhere else.","body":"The target is resolved the way tmux resolves it, so a session target names that session's active pane and the window that pane is in. A target tmux cannot resolve is reported missing."},"source":{"file":"include/libtmux/server.hpp","line":426,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-session"},{"id":"libtmux::Server::window","publicId":"libtmux::Server::window","name":"window","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"target","type":"std::string_view"}],"raw":"[[nodiscard]] expected window(std::string_view target) const;","returns":"expected"}],"source":{"file":"include/libtmux/server.hpp","line":427,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-window"},{"id":"libtmux::Server::pane","publicId":"libtmux::Server::pane","name":"pane","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"target","type":"std::string_view"}],"raw":"[[nodiscard]] expected pane(std::string_view target) const;","returns":"expected"}],"source":{"file":"include/libtmux/server.hpp","line":428,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-pane"},{"id":"libtmux::Server::wait_for_text","publicId":"libtmux::Server::wait_for_text","name":"wait_for_text","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"target","type":"std::string_view"},{"name":"wanted","type":"std::string_view"},{"name":"options","type":"const WaitOptions &","default":"{}"}],"raw":"[[nodiscard]] expected\nwait_for_text(std::string_view target, std::string_view wanted,\n const WaitOptions& options = {}) const;","returns":"expected"}],"doc":{"summary":"Wait until the pane `target` names produces `wanted`.","body":"For a caller holding a target rather than a `Pane` — `Pane::wait_for_text` is the same wait without the lookup. One deadline covers both: a target that will not resolve cannot spend the whole budget and leave nothing for waiting, and `WaitPath::pane_lookup` says that is what happened."},"source":{"file":"include/libtmux/server.hpp","line":436,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-wait_for_text"},{"id":"libtmux::Server::new_session","publicId":"libtmux::Server::new_session","name":"new_session","kind":"method","modifiers":["readonly","overload"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nnew_session(std::string_view name) const;","returns":"expected"},{"params":[{"name":"options","type":"NewSessionOptions"}],"raw":"[[nodiscard]] expected\nnew_session(NewSessionOptions options) const;","returns":"expected"}],"doc":{"summary":"Created detached, and returned, because tmux prints what it made.","body":"Windows psmux rejects typed creation: concurrent creators cannot prove ownership.","examples":[{"lang":"console","intro":"Create a detached session. Create a detached session with a named first window, then read back its name and owner. The cat process keeps the first pane alive until fixture cleanup. A fresh listing sees both the fixture session and the new session. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/new-session.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto made = server->new_session(libtmux::NewSessionOptions{\n .name = \"work\",\n .first_window_name = \"main\",\n .shell_command = \"exec cat\",\n });\n if (!made.has_value()) {\n std::fprintf(stderr, \"%s\\n\", made.error().diagnostic.c_str());\n return 1;\n }\n const auto window = made->active_window();\n const auto sessions = server->sessions();\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (made->name() != \"work\" || sessions->size() != 2 || window->name() != \"main\" ||\n window->session_id() != made->id()) {\n std::fputs(\"created session or first window does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"Created work with the main window; two sessions are available.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Created work with the main window; two sessions are available.\n"}]},"source":{"file":"include/libtmux/server.hpp","line":442,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-new_session"},{"id":"libtmux::Server::options","publicId":"libtmux::Server::options","name":"options","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"target","type":"std::string_view","default":"{}"}],"raw":"[[nodiscard]] expected, CommandFailure>\noptions(std::string_view target = {}) const;","returns":"expected, CommandFailure>"}],"source":{"file":"include/libtmux/server.hpp","line":447,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-options"},{"id":"libtmux::Server::server_options","publicId":"libtmux::Server::server_options","name":"server_options","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure>\nserver_options() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"The server's own options, which are neither session nor window options and are the only ones a server without a session still has."},"source":{"file":"include/libtmux/server.hpp","line":451,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-server_options"},{"id":"libtmux::Server::set_server_option","publicId":"libtmux::Server::set_server_option","name":"set_server_option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nset_server_option(std::string_view name, std::string_view value) const;","returns":"expected"}],"source":{"file":"include/libtmux/server.hpp","line":453,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-set_server_option"},{"id":"libtmux::Server::global_options","publicId":"libtmux::Server::global_options","name":"global_options","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure>\nglobal_options() const;","returns":"expected, CommandFailure>"}],"source":{"file":"include/libtmux/server.hpp","line":455,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-global_options"},{"id":"libtmux::Server::set_global_option","publicId":"libtmux::Server::set_global_option","name":"set_global_option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nset_global_option(std::string_view name, std::string_view value) const;","returns":"expected"}],"doc":{"summary":"Sets the value every session inherits, rather than one session's own."},"source":{"file":"include/libtmux/server.hpp","line":458,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-set_global_option"},{"id":"libtmux::Server::hooks","publicId":"libtmux::Server::hooks","name":"hooks","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"target","type":"std::string_view","default":"{}"}],"raw":"[[nodiscard]] expected, CommandFailure>\nhooks(std::string_view target = {}) const;","returns":"expected, CommandFailure>"}],"source":{"file":"include/libtmux/server.hpp","line":460,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-hooks"},{"id":"libtmux::Server::environment","publicId":"libtmux::Server::environment","name":"environment","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure>\nenvironment() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"The environment every new process on this server starts with.","body":"Server-global here; a session has its own. tmux keeps hidden entries apart from these, and this asks for neither `-h` nor the shell form, so what comes back is the plain listing a caller means."},"source":{"file":"include/libtmux/server.hpp","line":468,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-environment"},{"id":"libtmux::Server::set_environment","publicId":"libtmux::Server::set_environment","name":"set_environment","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nset_environment(std::string_view name, std::string_view value) const;","returns":"expected"}],"doc":{"summary":"Bind a name.","body":"An empty value binds it to empty, which is not the same as not binding it at all."},"source":{"file":"include/libtmux/server.hpp","line":473,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-set_environment"},{"id":"libtmux::Server::unset_environment","publicId":"libtmux::Server::unset_environment","name":"unset_environment","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nunset_environment(std::string_view name) const;","returns":"expected"}],"doc":{"summary":"Forget the name, so a new process inherits whatever the tmux server itself has.","body":"This is tmux's `-u`."},"source":{"file":"include/libtmux/server.hpp","line":478,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-unset_environment"},{"id":"libtmux::Server::remove_environment","publicId":"libtmux::Server::remove_environment","name":"remove_environment","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nremove_environment(std::string_view name) const;","returns":"expected"}],"doc":{"summary":"Keep the name and take it out of what a new process inherits — tmux's `-r`, which a listing then prints as `-NAME`.","body":"Different from forgetting it: this one is remembered, as an instruction to remove."},"source":{"file":"include/libtmux/server.hpp","line":484,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-remove_environment"},{"id":"libtmux::Server::global_hooks","publicId":"libtmux::Server::global_hooks","name":"global_hooks","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> global_hooks() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"A hook set globally is not reported by the unscoped listing, so reading it back needs the scope it was set with."},"source":{"file":"include/libtmux/server.hpp","line":487,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-global_hooks"},{"id":"libtmux::Server::set_global_hook","publicId":"libtmux::Server::set_global_hook","name":"set_global_hook","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"command","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nset_global_hook(std::string_view name, std::string_view command) const;","returns":"expected"}],"source":{"file":"include/libtmux/server.hpp","line":489,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-set_global_hook"},{"id":"libtmux::Session","publicId":"libtmux::Session","name":"Session","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One session, as one listing saw it.","body":"Reads its own fields without touching tmux: the listing ran once, and every value here is that moment's. A window created since is not in `window_count`, and a session killed since still answers.\n\nEquality is the server incarnation and the session id together, so two handles from separate listings of one live server agree, and a handle kept across a restart does not become a handle to whatever reused `$0`.","examples":[{"lang":"console","intro":"Traverse a session and its children. List windows and panes within one session, then follow a pane back to its owning window and session. Each relation method performs a new read; the original entity still holds its earlier snapshot. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/relations.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto windows = session.windows();\n const auto session_panes = session.panes();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!session_panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", session_panes.error().diagnostic.c_str());\n return 1;\n }\n if (windows->size() != 1 || session_panes->size() != 1) {\n std::fputs(\"expected one window and pane\\n\", stderr);\n return 1;\n }\n const auto& window = windows->front();\n const auto panes = window.panes();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 1) {\n std::fputs(\"expected one window pane\\n\", stderr);\n return 1;\n }\n const auto owner_window = panes->front().window();\n const auto owner_session = panes->front().session();\n if (!owner_window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_window.error().diagnostic.c_str());\n return 1;\n }\n if (!owner_session.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_session.error().diagnostic.c_str());\n return 1;\n }\n if (*owner_window != window || *owner_session != session ||\n panes->front() != session_panes->front()) {\n std::fputs(\"entity ownership does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"api session -> one window -> one pane; owners match.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"api session -> one window -> one pane; owners match.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":385,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session"},{"id":"libtmux::Session::kNoun","publicId":"libtmux::Session::kNoun","name":"kNoun","kind":"attribute","modifiers":["static"],"parent":"libtmux::Session","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/entities.hpp","line":385,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-knoun"},{"id":"libtmux::Session::kFields","publicId":"libtmux::Session::kFields","name":"kFields","kind":"attribute","modifiers":["static"],"parent":"libtmux::Session","signatures":[],"type":"std::array","source":{"file":"include/libtmux/entities.hpp","line":386,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-kfields"},{"id":"libtmux::Session::Session","publicId":"libtmux::Session::Session","name":"Session","kind":"method","modifiers":[],"parent":"libtmux::Session","signatures":[{"params":[{"name":"snapshot","type":"std::shared_ptr"},{"name":"row","type":"std::size_t"}],"raw":"Session(std::shared_ptr snapshot, std::size_t row) noexcept;"}],"source":{"file":"include/libtmux/entities.hpp","line":392,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-session"},{"id":"libtmux::Session::id","publicId":"libtmux::Session::id","name":"id","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] SessionId id() const noexcept;","returns":"SessionId"}],"source":{"file":"include/libtmux/entities.hpp","line":398,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-id-yxxu"},{"id":"libtmux::Session::name","publicId":"libtmux::Session::name","name":"name","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view name() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":399,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-name-1gd8"},{"id":"libtmux::Session::attached","publicId":"libtmux::Session::attached","name":"attached","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] bool attached() const noexcept;","returns":"bool"}],"doc":{"summary":"`session_attached` counts clients rather than rendering a flag, so any count other than zero means attached."},"source":{"file":"include/libtmux/entities.hpp","line":402,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-attached-a5b8"},{"id":"libtmux::Session::client_count","publicId":"libtmux::Session::client_count","name":"client_count","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] long long client_count() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":403,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-client_count-1omo"},{"id":"libtmux::Session::window_count","publicId":"libtmux::Session::window_count","name":"window_count","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] long long window_count() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":406,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-window_count-nx2y"},{"id":"libtmux::Session::path","publicId":"libtmux::Session::path","name":"path","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view path() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"The directory a new window starts in, not the shell's current directory."},"source":{"file":"include/libtmux/entities.hpp","line":410,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-path-dilj"},{"id":"libtmux::Session::created","publicId":"libtmux::Session::created","name":"created","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] std::chrono::sys_seconds created() const noexcept;","returns":"std::chrono::sys_seconds"}],"source":{"file":"include/libtmux/entities.hpp","line":411,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-created-1c37"},{"id":"libtmux::Session::group","publicId":"libtmux::Session::group","name":"group","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view group() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"Empty unless the session belongs to a group sharing its windows."},"source":{"file":"include/libtmux/entities.hpp","line":415,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-group-7v42"},{"id":"libtmux::Session::grouped","publicId":"libtmux::Session::grouped","name":"grouped","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] bool grouped() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":416,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-grouped-1dtv"},{"id":"libtmux::Session::windows","publicId":"libtmux::Session::windows","name":"windows","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> windows() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Traverse a session and its children. List windows and panes within one session, then follow a pane back to its owning window and session. Each relation method performs a new read; the original entity still holds its earlier snapshot. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/relations.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto windows = session.windows();\n const auto session_panes = session.panes();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!session_panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", session_panes.error().diagnostic.c_str());\n return 1;\n }\n if (windows->size() != 1 || session_panes->size() != 1) {\n std::fputs(\"expected one window and pane\\n\", stderr);\n return 1;\n }\n const auto& window = windows->front();\n const auto panes = window.panes();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 1) {\n std::fputs(\"expected one window pane\\n\", stderr);\n return 1;\n }\n const auto owner_window = panes->front().window();\n const auto owner_session = panes->front().session();\n if (!owner_window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_window.error().diagnostic.c_str());\n return 1;\n }\n if (!owner_session.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_session.error().diagnostic.c_str());\n return 1;\n }\n if (*owner_window != window || *owner_session != session ||\n panes->front() != session_panes->front()) {\n std::fputs(\"entity ownership does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"api session -> one window -> one pane; owners match.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"api session -> one window -> one pane; owners match.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":425,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-windows"},{"id":"libtmux::Session::panes","publicId":"libtmux::Session::panes","name":"panes","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> panes() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Traverse a session and its children. List windows and panes within one session, then follow a pane back to its owning window and session. Each relation method performs a new read; the original entity still holds its earlier snapshot. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/relations.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto windows = session.windows();\n const auto session_panes = session.panes();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!session_panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", session_panes.error().diagnostic.c_str());\n return 1;\n }\n if (windows->size() != 1 || session_panes->size() != 1) {\n std::fputs(\"expected one window and pane\\n\", stderr);\n return 1;\n }\n const auto& window = windows->front();\n const auto panes = window.panes();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 1) {\n std::fputs(\"expected one window pane\\n\", stderr);\n return 1;\n }\n const auto owner_window = panes->front().window();\n const auto owner_session = panes->front().session();\n if (!owner_window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_window.error().diagnostic.c_str());\n return 1;\n }\n if (!owner_session.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_session.error().diagnostic.c_str());\n return 1;\n }\n if (*owner_window != window || *owner_session != session ||\n panes->front() != session_panes->front()) {\n std::fputs(\"entity ownership does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"api session -> one window -> one pane; owners match.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"api session -> one window -> one pane; owners match.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":426,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-panes"},{"id":"libtmux::Session::active_window","publicId":"libtmux::Session::active_window","name":"active_window","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected active_window() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":427,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-active_window"},{"id":"libtmux::Session::active_pane","publicId":"libtmux::Session::active_pane","name":"active_pane","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected active_pane() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":428,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-active_pane"},{"id":"libtmux::Session::select_next_window","publicId":"libtmux::Session::select_next_window","name":"select_next_window","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected select_next_window() const;","returns":"expected"}],"doc":{"summary":"Move the selection, and answer with the window it landed on.","body":"Named for what they do rather than for what they return: `next_window()` would read as a question, and these change which window is active.\n\nRelative navigation is tmux's to perform, not a caller's to compute. Next and previous wrap around the window list, and \"last\" means the previously selected window — state only the server holds, which a caller listing windows has no way to reconstruct.\n\nEach fails when there is nowhere to go, as tmux does: a session with one window refuses all three rather than selecting the window already active."},"source":{"file":"include/libtmux/entities.hpp","line":442,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-select_next_window"},{"id":"libtmux::Session::select_previous_window","publicId":"libtmux::Session::select_previous_window","name":"select_previous_window","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected select_previous_window() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":443,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-select_previous_window"},{"id":"libtmux::Session::select_last_window","publicId":"libtmux::Session::select_last_window","name":"select_last_window","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected select_last_window() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":444,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-select_last_window"},{"id":"libtmux::Session::new_window","publicId":"libtmux::Session::new_window","name":"new_window","kind":"method","modifiers":["readonly","overload"],"parent":"libtmux::Session","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nnew_window(std::string_view name) const;","returns":"expected"},{"params":[{"name":"options","type":"NewWindowOptions"}],"raw":"[[nodiscard]] expected\nnew_window(NewWindowOptions options) const;","returns":"expected"}],"doc":{"summary":"Created detached: a library call that stole the terminal would be a surprise, and attaching is a separate decision.","examples":[{"lang":"console","intro":"Create a window and split a pane. Create a detached window, split it side by side, and verify both panes belong to it. The cat processes keep each pane alive until fixture cleanup. Creation leaves the session selection unchanged because focus defaults to false. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/new-window-pane.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto before = session.active_window();\n if (!before.has_value()) {\n std::fprintf(stderr, \"%s\\n\", before.error().diagnostic.c_str());\n return 1;\n }\n const auto window = session.new_window(\n libtmux::NewWindowOptions{.name = \"editor\", .shell_command = \"exec cat\"});\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n const auto first = window->active_pane();\n if (!first.has_value()) {\n std::fprintf(stderr, \"%s\\n\", first.error().diagnostic.c_str());\n return 1;\n }\n const auto second = first->split(\n libtmux::SplitOptions{.horizontal = true, .shell_command = \"exec cat\"});\n if (!second.has_value()) {\n std::fprintf(stderr, \"%s\\n\", second.error().diagnostic.c_str());\n return 1;\n }\n const auto panes = window->panes();\n const auto after = session.active_window();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (!after.has_value()) {\n std::fprintf(stderr, \"%s\\n\", after.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 2 || *before != *after ||\n first->window_id() != second->window_id() || *first == *second) {\n std::fputs(\"created panes or selection do not match\\n\", stderr);\n return 1;\n }\n std::puts(\"Created editor with two panes; the active window is unchanged.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Created editor with two panes; the active window is unchanged.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":449,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-new_window"},{"id":"libtmux::Session::rename","publicId":"libtmux::Session::rename","name":"rename","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected rename(std::string_view name) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":453,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-rename"},{"id":"libtmux::Session::kill","publicId":"libtmux::Session::kill","name":"kill","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected kill() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":454,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-kill"},{"id":"libtmux::Session::refresh","publicId":"libtmux::Session::refresh","name":"refresh","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected refresh() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":455,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-refresh"},{"id":"libtmux::Session::options","publicId":"libtmux::Session::options","name":"options","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> options() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"Session options.","body":"Reading reports the value tmux would use, marking one that comes from a wider scope as inherited rather than hiding it."},"source":{"file":"include/libtmux/entities.hpp","line":459,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-options"},{"id":"libtmux::Session::option","publicId":"libtmux::Session::option","name":"option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\noption(std::string_view name) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":461,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-option"},{"id":"libtmux::Session::set_option","publicId":"libtmux::Session::set_option","name":"set_option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] expected set_option(std::string_view name,\n std::string_view value) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":462,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-set_option"},{"id":"libtmux::Session::unset_option","publicId":"libtmux::Session::unset_option","name":"unset_option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nunset_option(std::string_view name) const;","returns":"expected"}],"doc":{"summary":"Remove the value set here, so the wider scope shows through again."},"source":{"file":"include/libtmux/entities.hpp","line":466,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-unset_option"},{"id":"libtmux::Session::attach_command","publicId":"libtmux::Session::attach_command","name":"attach_command","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected attach_command() const;","returns":"expected"}],"doc":{"summary":"A command line that attaches a terminal to this session.","body":"Not a method that attaches: a tmux client needs a terminal, and every command this library runs talks to it through pipes, so an attach it performed itself could only ever fail. Spawn the returned argv and retain the value until that client exits."},"source":{"file":"include/libtmux/entities.hpp","line":474,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-attach_command"},{"id":"libtmux::Session::detach_clients","publicId":"libtmux::Session::detach_clients","name":"detach_clients","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected detach_clients() const;","returns":"expected"}],"doc":{"summary":"Send every client here away, leaving the session running."},"source":{"file":"include/libtmux/entities.hpp","line":477,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-detach_clients"},{"id":"libtmux::Session::expand","publicId":"libtmux::Session::expand","name":"expand","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[{"name":"format","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nexpand(std::string_view format) const;","returns":"expected"}],"doc":{"summary":"Ask tmux to expand a format against this session.","body":"The fields above are what a session is; this reaches the rest of tmux's vocabulary without a method per variable.\n\nA target tmux cannot find is not an error to tmux. It expands the fields it cannot resolve to nothing, prints the literals around them, and exits zero — so a session that has been killed answers with a blank that reads like a value. This asks for the session's own id alongside the caller's format and reports `missing` when the answer is not this session."},"source":{"file":"include/libtmux/entities.hpp","line":489,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-expand"},{"id":"libtmux::Session::show_message","publicId":"libtmux::Session::show_message","name":"show_message","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nshow_message(std::string_view text) const;","returns":"expected"}],"doc":{"summary":"Put a message on the status line of every client attached here, and send it to a control client as `message`.","body":"tmux expands the text as a format, so a `#{...}` in it is substituted rather than shown. Text built from data belongs in `escape_literal` first."},"source":{"file":"include/libtmux/entities.hpp","line":497,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-show_message"},{"id":"libtmux::Session::hooks","publicId":"libtmux::Session::hooks","name":"hooks","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> hooks() const;","returns":"expected, CommandFailure>"}],"source":{"file":"include/libtmux/entities.hpp","line":499,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-hooks"},{"id":"libtmux::Session::set_hook","publicId":"libtmux::Session::set_hook","name":"set_hook","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"command","type":"std::string_view"}],"raw":"[[nodiscard]] expected set_hook(std::string_view name,\n std::string_view command) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":500,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-set_hook"},{"id":"libtmux::Snapshot","publicId":"libtmux::Snapshot","name":"Snapshot","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Owning row storage, shared by every entity taken from it."},"source":{"file":"include/libtmux/snapshot.hpp","line":208,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-snapshot"},{"id":"libtmux::Snapshot::take","publicId":"libtmux::Snapshot::take","name":"take","kind":"method","modifiers":["static"],"parent":"libtmux::Snapshot","signatures":[{"params":[{"name":"backend","type":"std::shared_ptr"},{"name":"fields","type":"std::span"},{"name":"request","type":"CommandRequest"},{"name":"placement","type":"FormatArgument","default":"FormatArgument::flag"}],"raw":"[[nodiscard]] static expected, CommandFailure>\ntake(std::shared_ptr backend,\n std::span fields, CommandRequest request,\n FormatArgument placement = FormatArgument::flag);","returns":"expected, CommandFailure>"}],"doc":{"summary":"Run `request` with this entity's fields appended and parse what came back.","body":"Rows are parsed once, here: entities hold views into them, so a second parse would invalidate every entity already handed out."},"source":{"file":"include/libtmux/snapshot.hpp","line":164,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-snapshot-take"},{"id":"libtmux::Snapshot::take_in_session","publicId":"libtmux::Snapshot::take_in_session","name":"take_in_session","kind":"method","modifiers":["static","overload"],"parent":"libtmux::Snapshot","signatures":[{"params":[{"name":"backend","type":"std::shared_ptr"},{"name":"fields","type":"std::span"},{"name":"request","type":"CommandRequest"},{"name":"placement","type":"FormatArgument"},{"name":"session_id","type":"std::string_view"},{"name":"session_name","type":"std::string_view"}],"raw":"[[nodiscard]] static expected, CommandFailure>\ntake_in_session(std::shared_ptr backend,\n std::span fields, CommandRequest request,\n FormatArgument placement, std::string_view session_id,\n std::string_view session_name);","returns":"expected, CommandFailure>"},{"params":[{"name":"backend","type":"std::shared_ptr"},{"name":"fields","type":"std::span"},{"name":"request","type":"CommandRequest"},{"name":"placement","type":"FormatArgument"},{"name":"session_id","type":"std::string_view"},{"name":"session_name","type":"std::string_view"},{"name":"timeout","type":"std::optional"},{"name":"output_limit","type":"std::optional"}],"raw":"[[nodiscard]] static expected, CommandFailure>\ntake_in_session(std::shared_ptr backend,\n std::span fields, CommandRequest request,\n FormatArgument placement, std::string_view session_id,\n std::string_view session_name,\n std::optional timeout,\n std::optional output_limit);","returns":"expected, CommandFailure>"}],"source":{"file":"include/libtmux/snapshot.hpp","line":169,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-snapshot-take_in_session"},{"id":"libtmux::Snapshot::from_recording","publicId":"libtmux::Snapshot::from_recording","name":"from_recording","kind":"method","modifiers":["static"],"parent":"libtmux::Snapshot","signatures":[{"params":[{"name":"fields","type":"std::span"},{"name":"output","type":"std::string"}],"raw":"[[nodiscard]] static std::shared_ptr\nfrom_recording(std::span fields, std::string output);","returns":"std::shared_ptr"}],"doc":{"summary":"Output that did not come from a live server: a recording, a fixture, a test.","body":"Entities read and filter exactly as they would from a listing, and anything that would run a command reports that there is no connection. Returns null if a row does not match the fields it claims to have."},"source":{"file":"include/libtmux/snapshot.hpp","line":187,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-snapshot-from_recording"},{"id":"libtmux::Snapshot::Snapshot","publicId":"libtmux::Snapshot::Snapshot","name":"Snapshot","kind":"method","modifiers":["overload"],"parent":"libtmux::Snapshot","signatures":[{"params":[{"name":"const Snapshot &"}],"raw":"Snapshot(const Snapshot&) = delete;"},{"params":[{"name":"Snapshot &&"}],"raw":"Snapshot(Snapshot&&) = delete;"}],"source":{"file":"include/libtmux/snapshot.hpp","line":189,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-snapshot-snapshot-wiw0"},{"id":"libtmux::Snapshot::~Snapshot","publicId":"libtmux::Snapshot::~Snapshot","name":"~Snapshot","kind":"method","modifiers":[],"parent":"libtmux::Snapshot","signatures":[{"params":[],"raw":"~Snapshot();"}],"source":{"file":"include/libtmux/snapshot.hpp","line":193,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-snapshot-snapshot-134m"},{"id":"libtmux::Snapshot::index_of","publicId":"libtmux::Snapshot::index_of","name":"index_of","kind":"method","modifiers":["readonly"],"parent":"libtmux::Snapshot","signatures":[{"params":[{"name":"field","type":"std::string_view"}],"raw":"[[nodiscard]] std::size_t index_of(std::string_view field) const noexcept;","returns":"std::size_t"}],"source":{"file":"include/libtmux/snapshot.hpp","line":195,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-snapshot-index_of"},{"id":"libtmux::Snapshot::rows","publicId":"libtmux::Snapshot::rows","name":"rows","kind":"method","modifiers":["readonly"],"parent":"libtmux::Snapshot","signatures":[{"params":[],"raw":"[[nodiscard]] const std::vector>& rows() const noexcept;","returns":"const std::vector> &"}],"source":{"file":"include/libtmux/snapshot.hpp","line":198,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-snapshot-rows"},{"id":"libtmux::Snapshot::backend","publicId":"libtmux::Snapshot::backend","name":"backend","kind":"method","modifiers":["readonly"],"parent":"libtmux::Snapshot","signatures":[{"params":[],"raw":"[[nodiscard]] const std::shared_ptr& backend() const noexcept;","returns":"const std::shared_ptr &"}],"doc":{"summary":"The connection this came from, so an entity can act on what it describes."},"source":{"file":"include/libtmux/snapshot.hpp","line":203,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-snapshot-backend"},{"id":"libtmux::Window","publicId":"libtmux::Window","name":"Window","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One window, as one listing saw it.","body":"A window can be linked into more than one session; this handle carries the session it was reached through, which is the one its qualified target addresses.\n\nReads its own fields without touching tmux, on the same terms as `Session`.","examples":[{"lang":"console","intro":"Traverse a session and its children. List windows and panes within one session, then follow a pane back to its owning window and session. Each relation method performs a new read; the original entity still holds its earlier snapshot. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/relations.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto windows = session.windows();\n const auto session_panes = session.panes();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!session_panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", session_panes.error().diagnostic.c_str());\n return 1;\n }\n if (windows->size() != 1 || session_panes->size() != 1) {\n std::fputs(\"expected one window and pane\\n\", stderr);\n return 1;\n }\n const auto& window = windows->front();\n const auto panes = window.panes();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 1) {\n std::fputs(\"expected one window pane\\n\", stderr);\n return 1;\n }\n const auto owner_window = panes->front().window();\n const auto owner_session = panes->front().session();\n if (!owner_window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_window.error().diagnostic.c_str());\n return 1;\n }\n if (!owner_session.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_session.error().diagnostic.c_str());\n return 1;\n }\n if (*owner_window != window || *owner_session != session ||\n panes->front() != session_panes->front()) {\n std::fputs(\"entity ownership does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"api session -> one window -> one pane; owners match.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"api session -> one window -> one pane; owners match.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":514,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window"},{"id":"libtmux::Window::kNoun","publicId":"libtmux::Window::kNoun","name":"kNoun","kind":"attribute","modifiers":["static"],"parent":"libtmux::Window","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/entities.hpp","line":514,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-knoun"},{"id":"libtmux::Window::kSessionNameField","publicId":"libtmux::Window::kSessionNameField","name":"kSessionNameField","kind":"attribute","modifiers":["static"],"parent":"libtmux::Window","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/entities.hpp","line":515,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-ksessionnamefield"},{"id":"libtmux::Window::kFields","publicId":"libtmux::Window::kFields","name":"kFields","kind":"attribute","modifiers":["static"],"parent":"libtmux::Window","signatures":[],"type":"std::array","source":{"file":"include/libtmux/entities.hpp","line":516,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-kfields"},{"id":"libtmux::Window::Window","publicId":"libtmux::Window::Window","name":"Window","kind":"method","modifiers":[],"parent":"libtmux::Window","signatures":[{"params":[{"name":"snapshot","type":"std::shared_ptr"},{"name":"row","type":"std::size_t"}],"raw":"Window(std::shared_ptr snapshot, std::size_t row) noexcept;"}],"source":{"file":"include/libtmux/entities.hpp","line":530,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-window"},{"id":"libtmux::Window::id","publicId":"libtmux::Window::id","name":"id","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] WindowId id() const noexcept;","returns":"WindowId"}],"source":{"file":"include/libtmux/entities.hpp","line":536,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-id-roem"},{"id":"libtmux::Window::name","publicId":"libtmux::Window::name","name":"name","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view name() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":537,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-name-145z"},{"id":"libtmux::Window::active","publicId":"libtmux::Window::active","name":"active","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] bool active() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":538,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-active-ggh4"},{"id":"libtmux::Window::session_id","publicId":"libtmux::Window::session_id","name":"session_id","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] SessionId session_id() const noexcept;","returns":"SessionId"}],"doc":{"summary":"The link to the parent, carried in the row so traversal upward costs nothing until the parent itself is wanted."},"source":{"file":"include/libtmux/entities.hpp","line":541,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-session_id-2uq6"},{"id":"libtmux::Window::index","publicId":"libtmux::Window::index","name":"index","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] long long index() const noexcept;","returns":"long long"}],"doc":{"summary":"Position within its session, which `base-index` is free to start anywhere."},"source":{"file":"include/libtmux/entities.hpp","line":543,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-index-1i4m"},{"id":"libtmux::Window::pane_count","publicId":"libtmux::Window::pane_count","name":"pane_count","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] long long pane_count() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":544,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-pane_count-m51h"},{"id":"libtmux::Window::width","publicId":"libtmux::Window::width","name":"width","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] long long width() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":547,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-width-ncb8"},{"id":"libtmux::Window::height","publicId":"libtmux::Window::height","name":"height","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] long long height() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":548,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-height-d46i"},{"id":"libtmux::Window::layout","publicId":"libtmux::Window::layout","name":"layout","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view layout() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"An opaque token: hand it back to `select_layout` exactly as received, and do not parse its shape.","body":"tmux 3.8+ reports JSON here for a plain client, and keeps the classic layout string for a control client unless that client has asked tmux for JSON with `refresh-client -f new-layouts` — which `Connection::connect` sends on every connection, so control mode through this library gets JSON on 3.8+ too.\n\nA version's own `layout()` output round-trips through its own `select_layout` on that version; see that method's comment for what \"round-trips\" promises and what it does not."},"source":{"file":"include/libtmux/entities.hpp","line":561,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-layout-srt0"},{"id":"libtmux::Window::zoomed","publicId":"libtmux::Window::zoomed","name":"zoomed","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] bool zoomed() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":562,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-zoomed-8v2t"},{"id":"libtmux::Window::bell","publicId":"libtmux::Window::bell","name":"bell","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] bool bell() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":563,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-bell-e6d4"},{"id":"libtmux::Window::activity","publicId":"libtmux::Window::activity","name":"activity","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] bool activity() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":564,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-activity-yjhl"},{"id":"libtmux::Window::linked_sessions","publicId":"libtmux::Window::linked_sessions","name":"linked_sessions","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] long long linked_sessions() const noexcept;","returns":"long long"}],"doc":{"summary":"How many sessions hold this window.","body":"More than one means the same window is shown in several places, and a command aimed at a bare id could land on any of them — which is why targets here are qualified."},"source":{"file":"include/libtmux/entities.hpp","line":568,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-linked_sessions-w58l"},{"id":"libtmux::Window::session_name","publicId":"libtmux::Window::session_name","name":"session_name","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view session_name() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"The owning psmux route carried by Windows live snapshots.","body":"Empty on POSIX and in recordings made from the backward-compatible `kFields` schema."},"source":{"file":"include/libtmux/entities.hpp","line":573,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-session_name-1x3f"},{"id":"libtmux::Window::target","publicId":"libtmux::Window::target","name":"target","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] std::string target() const;","returns":"std::string"}],"doc":{"summary":"How to address this window, and the reason a window id alone will not do.","body":"The same window can be linked into several sessions, and a bare `@id` leaves tmux to pick one of those homes: the index it reports, the session it names, and the link a move or a kill lands on then depend on a choice the caller did not make. Qualifying by the session this window was listed from names one link.\n\nPrefer `checked_target()`; this source-compatible form returns an empty string when psmux cannot bind a reusable target without a stale race."},"source":{"file":"include/libtmux/entities.hpp","line":597,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-target"},{"id":"libtmux::Window::checked_target","publicId":"libtmux::Window::checked_target","name":"checked_target","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected checked_target() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":598,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-checked_target"},{"id":"libtmux::Window::session","publicId":"libtmux::Window::session","name":"session","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected session() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":600,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-session"},{"id":"libtmux::Window::panes","publicId":"libtmux::Window::panes","name":"panes","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> panes() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Traverse a session and its children. List windows and panes within one session, then follow a pane back to its owning window and session. Each relation method performs a new read; the original entity still holds its earlier snapshot. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/relations.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto windows = session.windows();\n const auto session_panes = session.panes();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!session_panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", session_panes.error().diagnostic.c_str());\n return 1;\n }\n if (windows->size() != 1 || session_panes->size() != 1) {\n std::fputs(\"expected one window and pane\\n\", stderr);\n return 1;\n }\n const auto& window = windows->front();\n const auto panes = window.panes();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 1) {\n std::fputs(\"expected one window pane\\n\", stderr);\n return 1;\n }\n const auto owner_window = panes->front().window();\n const auto owner_session = panes->front().session();\n if (!owner_window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_window.error().diagnostic.c_str());\n return 1;\n }\n if (!owner_session.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_session.error().diagnostic.c_str());\n return 1;\n }\n if (*owner_window != window || *owner_session != session ||\n panes->front() != session_panes->front()) {\n std::fputs(\"entity ownership does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"api session -> one window -> one pane; owners match.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"api session -> one window -> one pane; owners match.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":601,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-panes"},{"id":"libtmux::Window::active_pane","publicId":"libtmux::Window::active_pane","name":"active_pane","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected active_pane() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":602,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-active_pane"},{"id":"libtmux::Window::split","publicId":"libtmux::Window::split","name":"split","kind":"method","modifiers":["readonly","overload"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected split() const;","returns":"expected"},{"params":[{"name":"options","type":"SplitOptions"}],"raw":"[[nodiscard]] expected split(SplitOptions options) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":604,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-split"},{"id":"libtmux::Window::rename","publicId":"libtmux::Window::rename","name":"rename","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected rename(std::string_view name) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":606,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-rename"},{"id":"libtmux::Window::select_layout","publicId":"libtmux::Window::select_layout","name":"select_layout","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"layout","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nselect_layout(std::string_view layout) const;","returns":"expected"}],"doc":{"summary":"Rearrange the panes.","body":"tmux names five layouts, plus two mirrored ones on tmux 3.5+, and also accepts the layout description `layout()` returns.\n\nRestoring one exactly — the same pane back at the same position, not only the same shape — holds on tmux 3.8+, where the saved string is JSON and carries each pane's id. On tmux 3.7 and earlier the classic layout string restores the shape but can rotate which pane lands in which cell (measured against raw tmux; not a choice this library makes). A JSON layout is refused before 3.8, and a mirrored preset before 3.5.\n\nAnything not shaped like one of those — a leading `-`, a name tmux does not know, or an incomplete layout string — is refused before reaching tmux rather than passed through: on tmux 3.3 and 3.3a, that shape crashes the server outright rather than being refused."},"source":{"file":"include/libtmux/entities.hpp","line":624,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-select_layout"},{"id":"libtmux::Window::resize","publicId":"libtmux::Window::resize","name":"resize","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"width","type":"long long"},{"name":"height","type":"long long"}],"raw":"[[nodiscard]] expected resize(long long width,\n long long height) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":625,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-resize"},{"id":"libtmux::Window::next_layout","publicId":"libtmux::Window::next_layout","name":"next_layout","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected next_layout() const;","returns":"expected"}],"doc":{"summary":"Step through tmux's preset arrangements, and turn the panes within the one in use.","body":"The layouts are tmux's list, not a caller's: asking for \"the next one\" is the only way to reach them without naming each. Rotating is a different act — it moves which pane occupies which cell and leaves the cells where they are.\n\nNone of the three refuses a window holding a single pane. tmux accepts all of them there and changes nothing, which is worth knowing before treating success as evidence that something moved."},"source":{"file":"include/libtmux/entities.hpp","line":638,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-next_layout"},{"id":"libtmux::Window::previous_layout","publicId":"libtmux::Window::previous_layout","name":"previous_layout","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected previous_layout() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":639,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-previous_layout"},{"id":"libtmux::Window::rotate","publicId":"libtmux::Window::rotate","name":"rotate","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected rotate() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":640,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-rotate"},{"id":"libtmux::Window::select_last_pane","publicId":"libtmux::Window::select_last_pane","name":"select_last_pane","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected select_last_pane() const;","returns":"expected"}],"doc":{"summary":"Go back to the pane that was selected before the current one, and answer with it.","body":"Server state, like the window equivalent: nothing in a listing says which pane that was. A window holding one pane is refused rather than reselecting it, which is what tmux does."},"source":{"file":"include/libtmux/entities.hpp","line":647,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-select_last_pane"},{"id":"libtmux::Window::link_to","publicId":"libtmux::Window::link_to","name":"link_to","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"target","type":"const Session &"}],"raw":"[[nodiscard]] expected link_to(const Session& target) const;","returns":"expected"}],"doc":{"summary":"Show this window in another session as well.","body":"The same window, not a copy: what runs in it is running in one place and shown in two."},"source":{"file":"include/libtmux/entities.hpp","line":651,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-link_to"},{"id":"libtmux::Window::unlink","publicId":"libtmux::Window::unlink","name":"unlink","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected unlink() const;","returns":"expected"}],"doc":{"summary":"Stop showing it in the session this value came from.","body":"tmux refuses to remove the last link rather than leaving a window no session holds, and that refusal is kept: a caller who meant to be rid of the window wants `kill`, which says so."},"source":{"file":"include/libtmux/entities.hpp","line":658,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-unlink"},{"id":"libtmux::Window::swap_with","publicId":"libtmux::Window::swap_with","name":"swap_with","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"other","type":"const Window &"}],"raw":"[[nodiscard]] expected swap_with(const Window& other) const;","returns":"expected"}],"doc":{"summary":"Exchange positions with another window, keeping both ids."},"source":{"file":"include/libtmux/entities.hpp","line":661,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-swap_with"},{"id":"libtmux::Window::move_to","publicId":"libtmux::Window::move_to","name":"move_to","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"index","type":"long long"}],"raw":"[[nodiscard]] expected move_to(long long index) const;","returns":"expected"}],"doc":{"summary":"Move to another index within the same session."},"source":{"file":"include/libtmux/entities.hpp","line":663,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-move_to"},{"id":"libtmux::Window::expand","publicId":"libtmux::Window::expand","name":"expand","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"format","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nexpand(std::string_view format) const;","returns":"expected"}],"doc":{"summary":"Ask tmux to expand a format against this window: the same reach the session form gives, guarded the same way.","body":"A window that has gone reports `missing` rather than answering with a blank."},"source":{"file":"include/libtmux/entities.hpp","line":669,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-expand"},{"id":"libtmux::Window::show_message","publicId":"libtmux::Window::show_message","name":"show_message","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nshow_message(std::string_view text) const;","returns":"expected"}],"doc":{"summary":"Show a message to the clients watching this window's session.","body":"The window is the context the text expands in, not just who sees it: `#{window_name}` in a message sent from here names this window even while another is the active one."},"source":{"file":"include/libtmux/entities.hpp","line":677,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-show_message"},{"id":"libtmux::Window::select","publicId":"libtmux::Window::select","name":"select","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected select() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":679,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-select"},{"id":"libtmux::Window::kill","publicId":"libtmux::Window::kill","name":"kill","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected kill() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":680,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-kill"},{"id":"libtmux::Window::refresh","publicId":"libtmux::Window::refresh","name":"refresh","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected refresh() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":681,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-refresh"},{"id":"libtmux::Window::options","publicId":"libtmux::Window::options","name":"options","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> options() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"Window options.","body":"tmux looks a named option up in the table it belongs to, so the scope here selects which window provides the context and the inheritance chain, not which names are legal."},"source":{"file":"include/libtmux/entities.hpp","line":686,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-options"},{"id":"libtmux::Window::option","publicId":"libtmux::Window::option","name":"option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\noption(std::string_view name) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":688,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-option"},{"id":"libtmux::Window::set_option","publicId":"libtmux::Window::set_option","name":"set_option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] expected set_option(std::string_view name,\n std::string_view value) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":689,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-set_option"},{"id":"libtmux::Window::unset_option","publicId":"libtmux::Window::unset_option","name":"unset_option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nunset_option(std::string_view name) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":692,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-unset_option"},{"id":"libtmux::detail::Row","publicId":"libtmux::detail::Row","name":"Row","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"The storage every entity has, in one place: the snapshot that owns the bytes and which of its rows this entity is.","body":"Inherited privately — an entity is implemented in terms of a row, it is not a kind of row."},"source":{"file":"include/libtmux/entities.hpp","line":347,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-row"},{"id":"libtmux::detail::Row::Row","publicId":"libtmux::detail::Row::Row","name":"Row","kind":"method","modifiers":[],"parent":"libtmux::detail::Row","signatures":[{"params":[{"name":"snapshot","type":"std::shared_ptr"},{"name":"row","type":"std::size_t"}],"raw":"Row(std::shared_ptr snapshot, std::size_t row) noexcept;"}],"source":{"file":"include/libtmux/entities.hpp","line":281,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-row-row"},{"id":"libtmux::detail::Row::server","publicId":"libtmux::detail::Row::server","name":"server","kind":"method","modifiers":["readonly"],"parent":"libtmux::detail::Row","signatures":[{"params":[],"raw":"[[nodiscard]] expected server() const;","returns":"expected"}],"doc":{"summary":"The server this entity came from, for a command the typed surface does not cover.","body":"This rather than a public `run`: a command built there would lose the qualified target the entity knows to use, and a caller reaching for the escape hatch should be able to see that they are back to raw argv."},"source":{"file":"include/libtmux/entities.hpp","line":326,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-row-server"},{"id":"libtmux::detail::Row::connection_identity","publicId":"libtmux::detail::Row::connection_identity","name":"connection_identity","kind":"method","modifiers":["readonly"],"parent":"libtmux::detail::Row","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view connection_identity() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"Which tmux server incarnation this came from.","body":"Equality and hashing are defined in terms of it, so two handles opened on one live socket agree but a handle kept across a restart does not become a handle to the replacement.\n\nEmpty for a value read out of a recording, which is on no server at all."},"source":{"file":"include/libtmux/entities.hpp","line":333,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-row-connection_identity"},{"id":"libtmux::test::EnvironmentGuard","publicId":"libtmux::test::EnvironmentGuard","name":"EnvironmentGuard","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Environment variables set for the lifetime of this value and restored on destruction, including the ones that were previously unset."},"source":{"file":"include/libtmux/testing/environment_guard.hpp","line":47,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-environmentguard"},{"id":"libtmux::test::EnvironmentGuard::EnvironmentGuard","publicId":"libtmux::test::EnvironmentGuard::EnvironmentGuard","name":"EnvironmentGuard","kind":"method","modifiers":["overload"],"parent":"libtmux::test::EnvironmentGuard","signatures":[{"params":[{"name":"name","type":"std::string"},{"name":"value","type":"std::string_view"}],"raw":"EnvironmentGuard(std::string name, std::string_view value);"},{"params":[{"name":"const EnvironmentGuard &"}],"raw":"EnvironmentGuard(const EnvironmentGuard&) = delete;"},{"params":[{"name":"EnvironmentGuard &&"}],"raw":"EnvironmentGuard(EnvironmentGuard&&) = delete;"}],"source":{"file":"include/libtmux/testing/environment_guard.hpp","line":26,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-environmentguard-environmentguard-f89v"},{"id":"libtmux::test::EnvironmentGuard::~EnvironmentGuard","publicId":"libtmux::test::EnvironmentGuard::~EnvironmentGuard","name":"~EnvironmentGuard","kind":"method","modifiers":[],"parent":"libtmux::test::EnvironmentGuard","signatures":[{"params":[],"raw":"~EnvironmentGuard();"}],"source":{"file":"include/libtmux/testing/environment_guard.hpp","line":33,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-environmentguard-environmentguard-mcrv"},{"id":"libtmux::test::ScopedTmuxServer","publicId":"libtmux::test::ScopedTmuxServer","name":"ScopedTmuxServer","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A tmux server that exists for the lifetime of this value.","body":"Owns a private socket and directory and kills the server on destruction, so suites running at once cannot see each other's sessions. Teardown reports rather than throws — a destructor that throws during a failing test hides the failure."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":130,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver"},{"id":"libtmux::test::ScopedTmuxServer::start","publicId":"libtmux::test::ScopedTmuxServer::start","name":"start","kind":"method","modifiers":["static"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[{"name":"options","type":"ScopedTmuxServerOptions","default":"{}"}],"raw":"static libtmux::expected\nstart(ScopedTmuxServerOptions options = {});","returns":"libtmux::expected"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":105,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-start"},{"id":"libtmux::test::ScopedTmuxServer::~ScopedTmuxServer","publicId":"libtmux::test::ScopedTmuxServer::~ScopedTmuxServer","name":"~ScopedTmuxServer","kind":"method","modifiers":[],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"~ScopedTmuxServer() noexcept;"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":106,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-scopedtmuxserver-xky0"},{"id":"libtmux::test::ScopedTmuxServer::ScopedTmuxServer","publicId":"libtmux::test::ScopedTmuxServer::ScopedTmuxServer","name":"ScopedTmuxServer","kind":"method","modifiers":["overload"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[{"name":"ScopedTmuxServer &&"}],"raw":"ScopedTmuxServer(ScopedTmuxServer&&) noexcept;"},{"params":[{"name":"const ScopedTmuxServer &"}],"raw":"ScopedTmuxServer(const ScopedTmuxServer&) = delete;"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":107,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-scopedtmuxserver-6op7"},{"id":"libtmux::test::ScopedTmuxServer::socket_mode","publicId":"libtmux::test::ScopedTmuxServer::socket_mode","name":"socket_mode","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] SocketMode socket_mode() const noexcept;","returns":"SocketMode"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":112,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-socket_mode"},{"id":"libtmux::test::ScopedTmuxServer::socket_name","publicId":"libtmux::test::ScopedTmuxServer::socket_name","name":"socket_name","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] std::optional socket_name() const noexcept;","returns":"std::optional"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":113,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-socket_name"},{"id":"libtmux::test::ScopedTmuxServer::socket_path","publicId":"libtmux::test::ScopedTmuxServer::socket_path","name":"socket_path","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] const std::filesystem::path& socket_path() const noexcept;","returns":"const std::filesystem::path &"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":114,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-socket_path"},{"id":"libtmux::test::ScopedTmuxServer::tmux_tmpdir","publicId":"libtmux::test::ScopedTmuxServer::tmux_tmpdir","name":"tmux_tmpdir","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] const std::filesystem::path& tmux_tmpdir() const noexcept;","returns":"const std::filesystem::path &"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":115,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-tmux_tmpdir"},{"id":"libtmux::test::ScopedTmuxServer::session_name","publicId":"libtmux::test::ScopedTmuxServer::session_name","name":"session_name","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view session_name() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":116,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-session_name"},{"id":"libtmux::test::ScopedTmuxServer::socket_namespace","publicId":"libtmux::test::ScopedTmuxServer::socket_namespace","name":"socket_namespace","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view socket_namespace() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":117,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-socket_namespace"},{"id":"libtmux::test::ScopedTmuxServer::server_pid","publicId":"libtmux::test::ScopedTmuxServer::server_pid","name":"server_pid","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] int server_pid() const noexcept;","returns":"int"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-server_pid"},{"id":"libtmux::test::ScopedTmuxServer::command_prefix","publicId":"libtmux::test::ScopedTmuxServer::command_prefix","name":"command_prefix","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] std::vector command_prefix() const;","returns":"std::vector"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":119,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-command_prefix"},{"id":"libtmux::test::ScopedTmuxServer::is_alive","publicId":"libtmux::test::ScopedTmuxServer::is_alive","name":"is_alive","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] bool is_alive() const;","returns":"bool"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":120,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-is_alive"},{"id":"libtmux::test::ScopedTmuxServer::child_environment","publicId":"libtmux::test::ScopedTmuxServer::child_environment","name":"child_environment","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] std::vector child_environment() const;","returns":"std::vector"}],"doc":{"summary":"`NAME=VALUE` entries for a child that should reach this server and not the surrounding one: `TMUX_TMPDIR` inside the private tree, `TMUX` and `TMUX_PANE` absent."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":125,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-child_environment"},{"id":"libtmux::ReadyStatus","publicId":"libtmux::ReadyStatus","name":"ReadyStatus","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"include/libtmux/async.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-readystatus"},{"id":"libtmux::ReadyStatus::ready","publicId":"libtmux::ReadyStatus::ready","name":"ready","kind":"constant","modifiers":[],"parent":"libtmux::ReadyStatus","signatures":[],"source":{"file":"include/libtmux/async.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-readystatus-ready"},{"id":"libtmux::ReadyStatus::timeout","publicId":"libtmux::ReadyStatus::timeout","name":"timeout","kind":"constant","modifiers":[],"parent":"libtmux::ReadyStatus","signatures":[],"source":{"file":"include/libtmux/async.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-readystatus-timeout"},{"id":"libtmux::ReadyStatus::closed","publicId":"libtmux::ReadyStatus::closed","name":"closed","kind":"constant","modifiers":[],"parent":"libtmux::ReadyStatus","signatures":[],"source":{"file":"include/libtmux/async.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-readystatus-closed"},{"id":"libtmux::ServerImplementation","publicId":"libtmux::ServerImplementation","name":"ServerImplementation","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Which server answered: tmux, a compatible reimplementation, or not yet determined."},"source":{"file":"include/libtmux/capabilities.hpp","line":15,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverimplementation"},{"id":"libtmux::ServerImplementation::unknown","publicId":"libtmux::ServerImplementation::unknown","name":"unknown","kind":"constant","modifiers":[],"parent":"libtmux::ServerImplementation","signatures":[],"source":{"file":"include/libtmux/capabilities.hpp","line":15,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverimplementation-unknown"},{"id":"libtmux::ServerImplementation::tmux","publicId":"libtmux::ServerImplementation::tmux","name":"tmux","kind":"constant","modifiers":[],"parent":"libtmux::ServerImplementation","signatures":[],"source":{"file":"include/libtmux/capabilities.hpp","line":15,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverimplementation-tmux"},{"id":"libtmux::ServerImplementation::psmux","publicId":"libtmux::ServerImplementation::psmux","name":"psmux","kind":"constant","modifiers":[],"parent":"libtmux::ServerImplementation","signatures":[],"source":{"file":"include/libtmux/capabilities.hpp","line":15,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverimplementation-psmux"},{"id":"libtmux::BackendKind","publicId":"libtmux::BackendKind","name":"BackendKind","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"How commands reach the server: by spawning a process, or through a backend the caller supplied."},"source":{"file":"include/libtmux/capabilities.hpp","line":36,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-backendkind"},{"id":"libtmux::BackendKind::custom","publicId":"libtmux::BackendKind::custom","name":"custom","kind":"constant","modifiers":[],"parent":"libtmux::BackendKind","signatures":[],"source":{"file":"include/libtmux/capabilities.hpp","line":36,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-backendkind-custom"},{"id":"libtmux::BackendKind::subprocess","publicId":"libtmux::BackendKind::subprocess","name":"subprocess","kind":"constant","modifiers":[],"parent":"libtmux::BackendKind","signatures":[],"source":{"file":"include/libtmux/capabilities.hpp","line":36,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-backendkind-subprocess"},{"id":"libtmux::BackendKind::control","publicId":"libtmux::BackendKind::control","name":"control","kind":"constant","modifiers":[],"parent":"libtmux::BackendKind","signatures":[],"doc":{"summary":"Held-open control clients, with a launch for what they cannot answer completely.","body":"Appended: the values before it are an installed ABI."},"source":{"file":"include/libtmux/capabilities.hpp","line":36,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-backendkind-control"},{"id":"libtmux::ServerFeature","publicId":"libtmux::ServerFeature","name":"ServerFeature","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Coarse-grained promises callers choose around.","body":"Raw commands remain unchecked; the psmux preview promises only exact inspection and namespace cleanup."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature"},{"id":"libtmux::ServerFeature::exact_inspection","publicId":"libtmux::ServerFeature::exact_inspection","name":"exact_inspection","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"Exact session/window/pane listings, traversal, refresh, and format reads."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-exact_inspection"},{"id":"libtmux::ServerFeature::server_cleanup","publicId":"libtmux::ServerFeature::server_cleanup","name":"server_cleanup","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"Cleanup of the selected namespace under the Server's execution policy."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-server_cleanup"},{"id":"libtmux::ServerFeature::server_entity_lookup","publicId":"libtmux::ServerFeature::server_entity_lookup","name":"server_entity_lookup","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"`Server::window` and `Server::pane` without an owning session handle."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-server_entity_lookup"},{"id":"libtmux::ServerFeature::session_creation","publicId":"libtmux::ServerFeature::session_creation","name":"session_creation","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"Typed session creation with an attributable result."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-session_creation"},{"id":"libtmux::ServerFeature::window_creation","publicId":"libtmux::ServerFeature::window_creation","name":"window_creation","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"Typed window creation with an attributable result."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-window_creation"},{"id":"libtmux::ServerFeature::captured_mutation","publicId":"libtmux::ServerFeature::captured_mutation","name":"captured_mutation","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"Mutating an object captured in an earlier snapshot."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-captured_mutation"},{"id":"libtmux::ServerFeature::pane_io","publicId":"libtmux::ServerFeature::pane_io","name":"pane_io","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"Pane input, capture, copy mode, history, and piping."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-pane_io"},{"id":"libtmux::ServerFeature::terminal_attach","publicId":"libtmux::ServerFeature::terminal_attach","name":"terminal_attach","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"Producing argv that attaches a caller-owned terminal to a session."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-terminal_attach"},{"id":"libtmux::ServerFeature::reusable_window_target","publicId":"libtmux::ServerFeature::reusable_window_target","name":"reusable_window_target","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"A reusable public target that identifies one captured window link."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-reusable_window_target"},{"id":"libtmux::ServerFeature::server_state","publicId":"libtmux::ServerFeature::server_state","name":"server_state","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"Clients, buffers, commands, configuration, options, and hooks."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-server_state"},{"id":"libtmux::ServerFeature::wait_channels","publicId":"libtmux::ServerFeature::wait_channels","name":"wait_channels","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"Latched `wait-for` channels."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-wait_channels"},{"id":"libtmux::ServerFeature::control_mode","publicId":"libtmux::ServerFeature::control_mode","name":"control_mode","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"This Server can open a persistent control connection."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-control_mode"},{"id":"libtmux::CardinalityError","publicId":"libtmux::CardinalityError","name":"CardinalityError","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Why a lookup that required exactly one match did not get one.","body":"The two want opposite fixes, which is why they are distinct: one needs wider criteria and the other needs narrower.","examples":[{"lang":"console","intro":"Filter snapshots and require one match. Filter a window snapshot with typed fields and standard ranges. exactly_one_owned copies a unique match, so the temporary view is safe. Missing and ambiguous matches have different CardinalityError values; these lookups make no tmux calls. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/query.cpp","code":"#include \n#include \n#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n for (const char* name : {\"editor\", \"logs\"}) {\n const auto made = sessions->front().new_window(\n libtmux::NewWindowOptions{.name = name, .shell_command = \"exec cat\"});\n if (!made.has_value()) {\n std::fprintf(stderr, \"%s\\n\", made.error().diagnostic.c_str());\n return 1;\n }\n }\n const auto windows = server->windows();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n const auto wanted =\n libtmux::window::name.starts_with(\"edit\") || libtmux::window::name == \"logs\";\n auto matches = *windows | libtmux::matching(wanted);\n const auto editor = libtmux::exactly_one_owned(\n *windows | libtmux::matching(libtmux::window::name == \"editor\"));\n auto absent = *windows | libtmux::matching(libtmux::window::name == \"absent\");\n const auto missing = libtmux::exactly_one(absent);\n const auto ambiguous = libtmux::exactly_one(matches);\n if (!editor.has_value() || std::ranges::distance(matches) != 2 ||\n missing.has_value() ||\n missing.error() != libtmux::CardinalityError::none_matched ||\n ambiguous.has_value() ||\n ambiguous.error() != libtmux::CardinalityError::several_matched) {\n std::fputs(\"unexpected query cardinality\\n\", stderr);\n return 1;\n }\n std::printf(\"Selected %s; two matches; missing and ambiguous are distinct.\\n\",\n std::string{editor->name()}.c_str());\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Selected editor; two matches; missing and ambiguous are distinct.\n"}]},"source":{"file":"include/libtmux/cardinality.hpp","line":26,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-cardinalityerror"},{"id":"libtmux::CardinalityError::none_matched","publicId":"libtmux::CardinalityError::none_matched","name":"none_matched","kind":"constant","modifiers":[],"parent":"libtmux::CardinalityError","signatures":[],"source":{"file":"include/libtmux/cardinality.hpp","line":26,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-cardinalityerror-none_matched"},{"id":"libtmux::CardinalityError::several_matched","publicId":"libtmux::CardinalityError::several_matched","name":"several_matched","kind":"constant","modifiers":[],"parent":"libtmux::CardinalityError","signatures":[],"source":{"file":"include/libtmux/cardinality.hpp","line":26,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-cardinalityerror-several_matched"},{"id":"libtmux::FailureKind","publicId":"libtmux::FailureKind","name":"FailureKind","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Why a command did not produce an answer, in the order a caller would diagnose them: bad before it left, then how it left, then what came back."},"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind"},{"id":"libtmux::FailureKind::validation","publicId":"libtmux::FailureKind::validation","name":"validation","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-validation"},{"id":"libtmux::FailureKind::spawn","publicId":"libtmux::FailureKind::spawn","name":"spawn","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-spawn"},{"id":"libtmux::FailureKind::pre_exec","publicId":"libtmux::FailureKind::pre_exec","name":"pre_exec","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-pre_exec"},{"id":"libtmux::FailureKind::pipe","publicId":"libtmux::FailureKind::pipe","name":"pipe","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-pipe"},{"id":"libtmux::FailureKind::timeout","publicId":"libtmux::FailureKind::timeout","name":"timeout","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-timeout"},{"id":"libtmux::FailureKind::refused","publicId":"libtmux::FailureKind::refused","name":"refused","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-refused"},{"id":"libtmux::FailureKind::missing","publicId":"libtmux::FailureKind::missing","name":"missing","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-missing"},{"id":"libtmux::FailureKind::truncated","publicId":"libtmux::FailureKind::truncated","name":"truncated","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"doc":{"summary":"tmux ran and answered, and the answer did not fit.","body":"Reported rather than returned, because a truncated answer is indistinguishable from a complete one: the last line is simply cut, mid-word."},"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-truncated"},{"id":"libtmux::FailureKind::unsupported","publicId":"libtmux::FailureKind::unsupported","name":"unsupported","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"doc":{"summary":"The backend cannot provide this operation without weakening its contract; nothing was dispatched."},"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-unsupported"},{"id":"libtmux::FailureKind::overloaded","publicId":"libtmux::FailureKind::overloaded","name":"overloaded","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"doc":{"summary":"More work is in flight than the engine accepts.","body":"Nothing was dispatched, so this is the one refusal a caller may simply try again later — appended rather than grouped, because the values before it are an installed ABI."},"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-overloaded"},{"id":"libtmux::FailureKind::cancelled","publicId":"libtmux::FailureKind::cancelled","name":"cancelled","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"doc":{"summary":"The caller withdrew the call.","body":"Whether tmux acted is a separate question, and `delivery` is what answers it: a cancellation accepted before dispatch is not_started, and one accepted after the command was written is not."},"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-cancelled"},{"id":"libtmux::ArgumentSensitivity","publicId":"libtmux::ArgumentSensitivity","name":"ArgumentSensitivity","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","doc":{"summary":"Whether an argument may appear in a diagnostic, a log, or an error message."},"source":{"file":"include/libtmux/command.hpp","line":123,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-argumentsensitivity"},{"id":"libtmux::ArgumentSensitivity::public_value","publicId":"libtmux::ArgumentSensitivity::public_value","name":"public_value","kind":"constant","modifiers":[],"parent":"libtmux::ArgumentSensitivity","signatures":[],"source":{"file":"include/libtmux/command.hpp","line":123,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-argumentsensitivity-public_value"},{"id":"libtmux::ArgumentSensitivity::secret","publicId":"libtmux::ArgumentSensitivity::secret","name":"secret","kind":"constant","modifiers":[],"parent":"libtmux::ArgumentSensitivity","signatures":[],"source":{"file":"include/libtmux/command.hpp","line":123,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-argumentsensitivity-secret"},{"id":"libtmux::ControlTerminal","publicId":"libtmux::ControlTerminal","name":"ControlTerminal","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","doc":{"summary":"How tmux closed a reply block: normally, or reporting a failure."},"source":{"file":"include/libtmux/control.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlterminal"},{"id":"libtmux::ControlTerminal::end","publicId":"libtmux::ControlTerminal::end","name":"end","kind":"constant","modifiers":[],"parent":"libtmux::ControlTerminal","signatures":[],"source":{"file":"include/libtmux/control.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlterminal-end"},{"id":"libtmux::ControlTerminal::error","publicId":"libtmux::ControlTerminal::error","name":"error","kind":"constant","modifiers":[],"parent":"libtmux::ControlTerminal","signatures":[],"source":{"file":"include/libtmux/control.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlterminal-error"},{"id":"libtmux::DeliveryStatus","publicId":"libtmux::DeliveryStatus","name":"DeliveryStatus","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","doc":{"summary":"How far a command is known to have got before something stopped it.","body":"This is the value that decides whether retrying is safe: only `not_started` is safe blindly, and `indeterminate` is an answer rather than a missing one."},"source":{"file":"include/libtmux/delivery.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-deliverystatus"},{"id":"libtmux::DeliveryStatus::not_started","publicId":"libtmux::DeliveryStatus::not_started","name":"not_started","kind":"constant","modifiers":[],"parent":"libtmux::DeliveryStatus","signatures":[],"source":{"file":"include/libtmux/delivery.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-deliverystatus-not_started"},{"id":"libtmux::DeliveryStatus::written","publicId":"libtmux::DeliveryStatus::written","name":"written","kind":"constant","modifiers":[],"parent":"libtmux::DeliveryStatus","signatures":[],"source":{"file":"include/libtmux/delivery.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-deliverystatus-written"},{"id":"libtmux::DeliveryStatus::replied","publicId":"libtmux::DeliveryStatus::replied","name":"replied","kind":"constant","modifiers":[],"parent":"libtmux::DeliveryStatus","signatures":[],"source":{"file":"include/libtmux/delivery.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-deliverystatus-replied"},{"id":"libtmux::DeliveryStatus::indeterminate","publicId":"libtmux::DeliveryStatus::indeterminate","name":"indeterminate","kind":"constant","modifiers":[],"parent":"libtmux::DeliveryStatus","signatures":[],"source":{"file":"include/libtmux/delivery.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-deliverystatus-indeterminate"},{"id":"libtmux::StringOp","publicId":"libtmux::StringOp","name":"StringOp","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"How a text field is compared. `iequals` folds case; the rest do not."},"source":{"file":"include/libtmux/filter_expr.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringop"},{"id":"libtmux::StringOp::equals","publicId":"libtmux::StringOp::equals","name":"equals","kind":"constant","modifiers":[],"parent":"libtmux::StringOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringop-equals"},{"id":"libtmux::StringOp::iequals","publicId":"libtmux::StringOp::iequals","name":"iequals","kind":"constant","modifiers":[],"parent":"libtmux::StringOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringop-iequals"},{"id":"libtmux::StringOp::contains","publicId":"libtmux::StringOp::contains","name":"contains","kind":"constant","modifiers":[],"parent":"libtmux::StringOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringop-contains"},{"id":"libtmux::StringOp::starts_with","publicId":"libtmux::StringOp::starts_with","name":"starts_with","kind":"constant","modifiers":[],"parent":"libtmux::StringOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringop-starts_with"},{"id":"libtmux::StringOp::ends_with","publicId":"libtmux::StringOp::ends_with","name":"ends_with","kind":"constant","modifiers":[],"parent":"libtmux::StringOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringop-ends_with"},{"id":"libtmux::NumberOp","publicId":"libtmux::NumberOp","name":"NumberOp","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"tmux renders a count, a size and an index as text.","body":"Comparing them as text puts \"9\" after \"10\", so a numeric field is its own kind with its own operations rather than a string field a caller must remember to convert. How a numeric field is compared, on the value rather than on its text."},"source":{"file":"include/libtmux/filter_expr.hpp","line":33,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberop"},{"id":"libtmux::NumberOp::equals","publicId":"libtmux::NumberOp::equals","name":"equals","kind":"constant","modifiers":[],"parent":"libtmux::NumberOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":33,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberop-equals"},{"id":"libtmux::NumberOp::not_equals","publicId":"libtmux::NumberOp::not_equals","name":"not_equals","kind":"constant","modifiers":[],"parent":"libtmux::NumberOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":33,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberop-not_equals"},{"id":"libtmux::NumberOp::less","publicId":"libtmux::NumberOp::less","name":"less","kind":"constant","modifiers":[],"parent":"libtmux::NumberOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":33,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberop-less"},{"id":"libtmux::NumberOp::less_equal","publicId":"libtmux::NumberOp::less_equal","name":"less_equal","kind":"constant","modifiers":[],"parent":"libtmux::NumberOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":33,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberop-less_equal"},{"id":"libtmux::NumberOp::greater","publicId":"libtmux::NumberOp::greater","name":"greater","kind":"constant","modifiers":[],"parent":"libtmux::NumberOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":33,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberop-greater"},{"id":"libtmux::NumberOp::greater_equal","publicId":"libtmux::NumberOp::greater_equal","name":"greater_equal","kind":"constant","modifiers":[],"parent":"libtmux::NumberOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":33,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberop-greater_equal"},{"id":"libtmux::Combine","publicId":"libtmux::Combine","name":"Combine","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Whether a group's operands must all hold or any one of them."},"source":{"file":"include/libtmux/filter_expr.hpp","line":35,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-combine"},{"id":"libtmux::Combine::conjunction","publicId":"libtmux::Combine::conjunction","name":"conjunction","kind":"constant","modifiers":[],"parent":"libtmux::Combine","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":35,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-combine-conjunction"},{"id":"libtmux::Combine::disjunction","publicId":"libtmux::Combine::disjunction","name":"disjunction","kind":"constant","modifiers":[],"parent":"libtmux::Combine","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":35,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-combine-disjunction"},{"id":"libtmux::KeyError","publicId":"libtmux::KeyError","name":"KeyError","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Why a key name could not be resolved to something tmux accepts."},"source":{"file":"include/libtmux/keys.hpp","line":24,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-keyerror"},{"id":"libtmux::KeyError::empty","publicId":"libtmux::KeyError::empty","name":"empty","kind":"constant","modifiers":[],"parent":"libtmux::KeyError","signatures":[],"source":{"file":"include/libtmux/keys.hpp","line":24,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-keyerror-empty"},{"id":"libtmux::KeyError::unknown_name","publicId":"libtmux::KeyError::unknown_name","name":"unknown_name","kind":"constant","modifiers":[],"parent":"libtmux::KeyError","signatures":[],"source":{"file":"include/libtmux/keys.hpp","line":24,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-keyerror-unknown_name"},{"id":"libtmux::LookupParseError","publicId":"libtmux::LookupParseError","name":"LookupParseError","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Why a legacy lookup string could not be read."},"source":{"file":"include/libtmux/legacy_lookup.hpp","line":21,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lookupparseerror"},{"id":"libtmux::LookupParseError::missing_value","publicId":"libtmux::LookupParseError::missing_value","name":"missing_value","kind":"constant","modifiers":[],"parent":"libtmux::LookupParseError","signatures":[],"source":{"file":"include/libtmux/legacy_lookup.hpp","line":21,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lookupparseerror-missing_value"},{"id":"libtmux::LookupParseError::unknown_field","publicId":"libtmux::LookupParseError::unknown_field","name":"unknown_field","kind":"constant","modifiers":[],"parent":"libtmux::LookupParseError","signatures":[],"source":{"file":"include/libtmux/legacy_lookup.hpp","line":21,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lookupparseerror-unknown_field"},{"id":"libtmux::LookupParseError::unknown_lookup","publicId":"libtmux::LookupParseError::unknown_lookup","name":"unknown_lookup","kind":"constant","modifiers":[],"parent":"libtmux::LookupParseError","signatures":[],"source":{"file":"include/libtmux/legacy_lookup.hpp","line":21,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lookupparseerror-unknown_lookup"},{"id":"libtmux::NotificationKind","publicId":"libtmux::NotificationKind","name":"NotificationKind","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","doc":{"summary":"What a notification is, once its name and arguments have been read.","body":"`unknown` is not a failure. The body may be a notification added by a newer tmux or unguarded delayed command output. A kind and fields keep additions from breaking an exhaustive `std::visit` in caller code."},"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind"},{"id":"libtmux::NotificationKind::unknown","publicId":"libtmux::NotificationKind::unknown","name":"unknown","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-unknown"},{"id":"libtmux::NotificationKind::output","publicId":"libtmux::NotificationKind::output","name":"output","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-output"},{"id":"libtmux::NotificationKind::extended_output","publicId":"libtmux::NotificationKind::extended_output","name":"extended_output","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-extended_output"},{"id":"libtmux::NotificationKind::paused","publicId":"libtmux::NotificationKind::paused","name":"paused","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-paused"},{"id":"libtmux::NotificationKind::resumed","publicId":"libtmux::NotificationKind::resumed","name":"resumed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-resumed"},{"id":"libtmux::NotificationKind::sessions_changed","publicId":"libtmux::NotificationKind::sessions_changed","name":"sessions_changed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-sessions_changed"},{"id":"libtmux::NotificationKind::session_changed","publicId":"libtmux::NotificationKind::session_changed","name":"session_changed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-session_changed"},{"id":"libtmux::NotificationKind::session_renamed","publicId":"libtmux::NotificationKind::session_renamed","name":"session_renamed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-session_renamed"},{"id":"libtmux::NotificationKind::session_window_changed","publicId":"libtmux::NotificationKind::session_window_changed","name":"session_window_changed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-session_window_changed"},{"id":"libtmux::NotificationKind::client_detached","publicId":"libtmux::NotificationKind::client_detached","name":"client_detached","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-client_detached"},{"id":"libtmux::NotificationKind::client_session_changed","publicId":"libtmux::NotificationKind::client_session_changed","name":"client_session_changed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-client_session_changed"},{"id":"libtmux::NotificationKind::window_add","publicId":"libtmux::NotificationKind::window_add","name":"window_add","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-window_add"},{"id":"libtmux::NotificationKind::window_close","publicId":"libtmux::NotificationKind::window_close","name":"window_close","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-window_close"},{"id":"libtmux::NotificationKind::window_renamed","publicId":"libtmux::NotificationKind::window_renamed","name":"window_renamed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-window_renamed"},{"id":"libtmux::NotificationKind::window_pane_changed","publicId":"libtmux::NotificationKind::window_pane_changed","name":"window_pane_changed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-window_pane_changed"},{"id":"libtmux::NotificationKind::unlinked_window_add","publicId":"libtmux::NotificationKind::unlinked_window_add","name":"unlinked_window_add","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-unlinked_window_add"},{"id":"libtmux::NotificationKind::unlinked_window_close","publicId":"libtmux::NotificationKind::unlinked_window_close","name":"unlinked_window_close","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-unlinked_window_close"},{"id":"libtmux::NotificationKind::unlinked_window_renamed","publicId":"libtmux::NotificationKind::unlinked_window_renamed","name":"unlinked_window_renamed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-unlinked_window_renamed"},{"id":"libtmux::NotificationKind::pane_mode_changed","publicId":"libtmux::NotificationKind::pane_mode_changed","name":"pane_mode_changed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-pane_mode_changed"},{"id":"libtmux::NotificationKind::paste_buffer_changed","publicId":"libtmux::NotificationKind::paste_buffer_changed","name":"paste_buffer_changed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-paste_buffer_changed"},{"id":"libtmux::NotificationKind::paste_buffer_deleted","publicId":"libtmux::NotificationKind::paste_buffer_deleted","name":"paste_buffer_deleted","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-paste_buffer_deleted"},{"id":"libtmux::NotificationKind::subscription_changed","publicId":"libtmux::NotificationKind::subscription_changed","name":"subscription_changed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-subscription_changed"},{"id":"libtmux::NotificationKind::config_error","publicId":"libtmux::NotificationKind::config_error","name":"config_error","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-config_error"},{"id":"libtmux::NotificationKind::exit","publicId":"libtmux::NotificationKind::exit","name":"exit","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-exit"},{"id":"libtmux::NotificationKind::layout_change","publicId":"libtmux::NotificationKind::layout_change","name":"layout_change","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-layout_change"},{"id":"libtmux::NotificationKind::message","publicId":"libtmux::NotificationKind::message","name":"message","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-message"},{"id":"libtmux::Quantifier","publicId":"libtmux::Quantifier","name":"Quantifier","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"How a filter applies across a relation.","body":"`all_of` and `none_of` hold for an empty relation, which is set theory rather than an oversight; `any_of` is usually what a caller means."},"source":{"file":"include/libtmux/relations.hpp","line":27,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-quantifier"},{"id":"libtmux::Quantifier::any_of","publicId":"libtmux::Quantifier::any_of","name":"any_of","kind":"constant","modifiers":[],"parent":"libtmux::Quantifier","signatures":[],"source":{"file":"include/libtmux/relations.hpp","line":27,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-quantifier-any_of"},{"id":"libtmux::Quantifier::all_of","publicId":"libtmux::Quantifier::all_of","name":"all_of","kind":"constant","modifiers":[],"parent":"libtmux::Quantifier","signatures":[],"source":{"file":"include/libtmux/relations.hpp","line":27,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-quantifier-all_of"},{"id":"libtmux::Quantifier::none_of","publicId":"libtmux::Quantifier::none_of","name":"none_of","kind":"constant","modifiers":[],"parent":"libtmux::Quantifier","signatures":[],"source":{"file":"include/libtmux/relations.hpp","line":27,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-quantifier-none_of"},{"id":"libtmux::Quantifier::is","publicId":"libtmux::Quantifier::is","name":"is","kind":"constant","modifiers":[],"parent":"libtmux::Quantifier","signatures":[],"source":{"file":"include/libtmux/relations.hpp","line":27,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-quantifier-is"},{"id":"libtmux::FormatArgument","publicId":"libtmux::FormatArgument","name":"FormatArgument","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Where a tmux subcommand wants its format string.","body":"Most take `-F`; `display-message` takes the format as its message argument instead, and passing `-F` to it addresses a different thing entirely."},"source":{"file":"include/libtmux/snapshot.hpp","line":155,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-formatargument"},{"id":"libtmux::FormatArgument::flag","publicId":"libtmux::FormatArgument::flag","name":"flag","kind":"constant","modifiers":[],"parent":"libtmux::FormatArgument","signatures":[],"source":{"file":"include/libtmux/snapshot.hpp","line":155,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-formatargument-flag"},{"id":"libtmux::FormatArgument::message","publicId":"libtmux::FormatArgument::message","name":"message","kind":"constant","modifiers":[],"parent":"libtmux::FormatArgument","signatures":[],"source":{"file":"include/libtmux/snapshot.hpp","line":155,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-formatargument-message"},{"id":"libtmux::SocketError","publicId":"libtmux::SocketError","name":"SocketError","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Why a socket name or path was rejected before any server was contacted.","body":"Length is the one that surprises: a unix socket path is bounded by the platform, not by tmux."},"source":{"file":"include/libtmux/socket.hpp","line":42,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-socketerror"},{"id":"libtmux::SocketError::empty","publicId":"libtmux::SocketError::empty","name":"empty","kind":"constant","modifiers":[],"parent":"libtmux::SocketError","signatures":[],"source":{"file":"include/libtmux/socket.hpp","line":42,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-socketerror-empty"},{"id":"libtmux::SocketError::name_has_separator","publicId":"libtmux::SocketError::name_has_separator","name":"name_has_separator","kind":"constant","modifiers":[],"parent":"libtmux::SocketError","signatures":[],"source":{"file":"include/libtmux/socket.hpp","line":42,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-socketerror-name_has_separator"},{"id":"libtmux::SocketError::path_too_long","publicId":"libtmux::SocketError::path_too_long","name":"path_too_long","kind":"constant","modifiers":[],"parent":"libtmux::SocketError","signatures":[],"source":{"file":"include/libtmux/socket.hpp","line":42,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-socketerror-path_too_long"},{"id":"libtmux::SocketError::path_unsupported","publicId":"libtmux::SocketError::path_unsupported","name":"path_unsupported","kind":"constant","modifiers":[],"parent":"libtmux::SocketError","signatures":[],"source":{"file":"include/libtmux/socket.hpp","line":42,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-socketerror-path_unsupported"},{"id":"libtmux::TargetError","publicId":"libtmux::TargetError","name":"TargetError","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Why a target could not be built from a name."},"source":{"file":"include/libtmux/target.hpp","line":19,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-targeterror"},{"id":"libtmux::TargetError::empty_name","publicId":"libtmux::TargetError::empty_name","name":"empty_name","kind":"constant","modifiers":[],"parent":"libtmux::TargetError","signatures":[],"source":{"file":"include/libtmux/target.hpp","line":19,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-targeterror-empty_name"},{"id":"libtmux::TargetError::separator_in_name","publicId":"libtmux::TargetError::separator_in_name","name":"separator_in_name","kind":"constant","modifiers":[],"parent":"libtmux::TargetError","signatures":[],"doc":{"summary":"A name holding a separator would re-parse as a different target."},"source":{"file":"include/libtmux/target.hpp","line":19,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-targeterror-separator_in_name"},{"id":"libtmux::VersionError","publicId":"libtmux::VersionError","name":"VersionError","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Why a tmux version string could not be read."},"source":{"file":"include/libtmux/version.hpp","line":19,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-versionerror"},{"id":"libtmux::VersionError::missing_prefix","publicId":"libtmux::VersionError::missing_prefix","name":"missing_prefix","kind":"constant","modifiers":[],"parent":"libtmux::VersionError","signatures":[],"source":{"file":"include/libtmux/version.hpp","line":19,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-versionerror-missing_prefix"},{"id":"libtmux::VersionError::malformed","publicId":"libtmux::VersionError::malformed","name":"malformed","kind":"constant","modifiers":[],"parent":"libtmux::VersionError","signatures":[],"source":{"file":"include/libtmux/version.hpp","line":19,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-versionerror-malformed"},{"id":"libtmux::WaitPath","publicId":"libtmux::WaitPath","name":"WaitPath","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","doc":{"summary":"Which path answered the wait.","body":"A caller that reports on how it learned something needs this; a caller that does not can ignore it."},"source":{"file":"include/libtmux/wait.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitpath"},{"id":"libtmux::WaitPath::pane_lookup","publicId":"libtmux::WaitPath::pane_lookup","name":"pane_lookup","kind":"constant","modifiers":[],"parent":"libtmux::WaitPath","signatures":[],"doc":{"summary":"The target never resolved to a pane, so nothing was ever waited on.","body":"Only the `Server` overload can answer this: a `Pane` is already resolved."},"source":{"file":"include/libtmux/wait.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitpath-pane_lookup"},{"id":"libtmux::WaitPath::capture_at_entry","publicId":"libtmux::WaitPath::capture_at_entry","name":"capture_at_entry","kind":"constant","modifiers":[],"parent":"libtmux::WaitPath","signatures":[],"doc":{"summary":"Already on screen when the wait began, and credited to the pane."},"source":{"file":"include/libtmux/wait.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitpath-capture_at_entry"},{"id":"libtmux::WaitPath::capture_after_control_connect","publicId":"libtmux::WaitPath::capture_after_control_connect","name":"capture_after_control_connect","kind":"constant","modifiers":[],"parent":"libtmux::WaitPath","signatures":[],"doc":{"summary":"Found by the capture taken right after the control connection opened, which closes the window between the entry capture and the first notification."},"source":{"file":"include/libtmux/wait.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitpath-capture_after_control_connect"},{"id":"libtmux::WaitPath::capture_before_control","publicId":"libtmux::WaitPath::capture_before_control","name":"capture_before_control","kind":"constant","modifiers":[],"parent":"libtmux::WaitPath","signatures":[],"doc":{"summary":"The budget expired before a connection could be opened."},"source":{"file":"include/libtmux/wait.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitpath-capture_before_control"},{"id":"libtmux::WaitPath::control_output","publicId":"libtmux::WaitPath::control_output","name":"control_output","kind":"constant","modifiers":[],"parent":"libtmux::WaitPath","signatures":[],"doc":{"summary":"A `output` notification for this pane prompted the capture that matched."},"source":{"file":"include/libtmux/wait.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitpath-control_output"},{"id":"libtmux::WaitPath::capture_polling","publicId":"libtmux::WaitPath::capture_polling","name":"capture_polling","kind":"constant","modifiers":[],"parent":"libtmux::WaitPath","signatures":[],"doc":{"summary":"No connection could be opened, so the screen was re-read on a timer."},"source":{"file":"include/libtmux/wait.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitpath-capture_polling"},{"id":"libtmux::Referenced","publicId":"libtmux::Referenced","name":"Referenced","kind":"typealias","modifiers":[],"signatures":[],"type":"std::reference_wrapper>","doc":{"summary":"A borrowed element of a range, rather than a copy of it.","body":"These lookups reference an element of the range they were given, so the range has to outlive the result. That is why they take an lvalue."},"source":{"file":"include/libtmux/cardinality.hpp","line":43,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-referenced"},{"id":"libtmux::CommandObserver","publicId":"libtmux::CommandObserver","name":"CommandObserver","kind":"typealias","modifiers":[],"signatures":[],"type":"std::function","doc":{"summary":"Every member expires on return; a caller keeping any of it copies it."},"source":{"file":"include/libtmux/command.hpp","line":242,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandobserver"},{"id":"libtmux::Event","publicId":"libtmux::Event","name":"Event","kind":"typealias","modifiers":[],"signatures":[],"type":"std::variant","doc":{"summary":"Anything the parser produces: a reply to something asked, or something tmux said on its own.","body":"The two arrive interleaved on one stream."},"source":{"file":"include/libtmux/control.hpp","line":82,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-event"},{"id":"libtmux::SessionId","publicId":"libtmux::SessionId","name":"SessionId","kind":"typealias","modifiers":[],"signatures":[],"type":"EntityId","doc":{"summary":"Distinct types, not aliases of one: `Kind` is only ever named here."},"source":{"file":"include/libtmux/entities.hpp","line":226,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-sessionid"},{"id":"libtmux::WindowId","publicId":"libtmux::WindowId","name":"WindowId","kind":"typealias","modifiers":[],"signatures":[],"type":"EntityId","source":{"file":"include/libtmux/entities.hpp","line":227,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-windowid"},{"id":"libtmux::PaneId","publicId":"libtmux::PaneId","name":"PaneId","kind":"typealias","modifiers":[],"signatures":[],"type":"EntityId","source":{"file":"include/libtmux/entities.hpp","line":228,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-paneid"},{"id":"libtmux::expected","publicId":"libtmux::expected","name":"expected","kind":"typealias","modifiers":[],"signatures":[],"type":"std::expected","doc":{"summary":"A value or the reason there is not one.","body":"`std::expected` where the standard library has it, and a drop-in otherwise, so a caller writes the same code either way. Nothing in this library throws to report a tmux failure."},"source":{"file":"include/libtmux/expected.hpp","line":49,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-expected"},{"id":"libtmux::unexpected_t","publicId":"libtmux::unexpected_t","name":"unexpected_t","kind":"typealias","modifiers":[],"signatures":[],"type":"std::unexpected","doc":{"summary":"The error side of `expected`, named for the rare declaration that has to spell it.","body":"Returning one is how a function reports a failure."},"source":{"file":"include/libtmux/expected.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-unexpected_t"},{"id":"libtmux::bad_expected_access","publicId":"libtmux::bad_expected_access","name":"bad_expected_access","kind":"typealias","modifiers":[],"signatures":[],"type":"std::bad_expected_access","doc":{"summary":"What `value()` throws when there is none.","body":"Named here so a caller who wants an exception at a boundary can catch it in either standard's build."},"source":{"file":"include/libtmux/expected.hpp","line":69,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-bad_expected_access"},{"id":"libtmux::LoweredExpression","publicId":"libtmux::LoweredExpression","name":"LoweredExpression","kind":"typealias","modifiers":[],"signatures":[],"type":"std::vector","doc":{"summary":"A whole lowered filter, flat: children are referenced by index rather than owned, so the vector can be walked without recursion."},"source":{"file":"include/libtmux/lowered_node.hpp","line":49,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-loweredexpression"},{"id":"libtmux::RelatedMany","publicId":"libtmux::RelatedMany","name":"RelatedMany","kind":"typealias","modifiers":[],"signatures":[],"type":"std::ranges::range_value_t>>","doc":{"summary":"The related entity is whatever the accessor yields, so a bare flag field can stand in for a predicate here exactly as it does in `matching`."},"source":{"file":"include/libtmux/relations.hpp","line":72,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-relatedmany"},{"id":"libtmux::RelatedOne","publicId":"libtmux::RelatedOne","name":"RelatedOne","kind":"typealias","modifiers":[],"signatures":[],"type":"std::remove_cvref_t>>","doc":{"summary":"The entity on the far side of a to-one link, with the accessor's indirection and qualifiers stripped away."},"source":{"file":"include/libtmux/relations.hpp","line":78,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-relatedone"},{"id":"libtmux::kCommandSeparator","publicId":"libtmux::kCommandSeparator","name":"kCommandSeparator","kind":"attribute","modifiers":[],"signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/batch.hpp","line":23,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-kcommandseparator"},{"id":"libtmux::kDefaultRetainedReplyBytes","publicId":"libtmux::kDefaultRetainedReplyBytes","name":"kDefaultRetainedReplyBytes","kind":"attribute","modifiers":[],"signatures":[],"type":"std::size_t","doc":{"summary":"How much of one reply a decoder holds, and how long a single line may grow before the stream is called broken.","body":"A subprocess ends and gives its memory back; a connection does not, so the bound has to be in the decoder rather than in whatever reads it afterwards. The reply bound is the subprocess transport's capture limit, so the same call costs the same memory over either transport. The line bound has no subprocess equivalent: it is the point past which an unterminated line is evidence of a broken stream rather than a large answer."},"source":{"file":"include/libtmux/control.hpp","line":56,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-kdefaultretainedreplybytes"},{"id":"libtmux::kDefaultLineBytes","publicId":"libtmux::kDefaultLineBytes","name":"kDefaultLineBytes","kind":"attribute","modifiers":[],"signatures":[],"type":"std::size_t","source":{"file":"include/libtmux/control.hpp","line":57,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-kdefaultlinebytes"},{"id":"libtmux::is_validation_reason","publicId":"libtmux::is_validation_reason","name":"is_validation_reason","kind":"attribute","modifiers":[],"signatures":[],"type":"bool","doc":{"summary":"Which error types name a validation reason rather than a runtime failure.","body":"Opted in one by one rather than matched on being an enum: `FailureKind` and `DeliveryStatus` are enums too, and neither is a reason a call was refused."},"source":{"file":"include/libtmux/error.hpp","line":59,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_validation_reason"},{"id":"libtmux::is_validation_reason","publicId":"libtmux::is_validation_reason","name":"is_validation_reason","kind":"attribute","modifiers":[],"signatures":[],"type":"bool","source":{"file":"include/libtmux/error.hpp","line":60,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_validation_reason-targeterror"},{"id":"libtmux::is_validation_reason","publicId":"libtmux::is_validation_reason","name":"is_validation_reason","kind":"attribute","modifiers":[],"signatures":[],"type":"bool","source":{"file":"include/libtmux/error.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_validation_reason-socketerror"},{"id":"libtmux::is_validation_reason","publicId":"libtmux::is_validation_reason","name":"is_validation_reason","kind":"attribute","modifiers":[],"signatures":[],"type":"bool","source":{"file":"include/libtmux/error.hpp","line":62,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_validation_reason-cardinalityerror"},{"id":"libtmux::is_validation_reason","publicId":"libtmux::is_validation_reason","name":"is_validation_reason","kind":"attribute","modifiers":[],"signatures":[],"type":"bool","source":{"file":"include/libtmux/error.hpp","line":63,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_validation_reason-lookupparseerror"},{"id":"libtmux::is_validation_reason","publicId":"libtmux::is_validation_reason","name":"is_validation_reason","kind":"attribute","modifiers":[],"signatures":[],"type":"bool","source":{"file":"include/libtmux/error.hpp","line":64,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_validation_reason-versionerror"},{"id":"libtmux::is_validation_reason","publicId":"libtmux::is_validation_reason","name":"is_validation_reason","kind":"attribute","modifiers":[],"signatures":[],"type":"bool","source":{"file":"include/libtmux/error.hpp","line":65,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_validation_reason-keyerror"},{"id":"libtmux::kNamedKeys","publicId":"libtmux::kNamedKeys","name":"kNamedKeys","kind":"attribute","modifiers":[],"signatures":[],"type":"std::array","doc":{"summary":"Named keys tmux accepts, taken from the table in its own key-string.c at the oldest supported release.","body":"Function keys are generated rather than listed, and a single character is handled separately."},"source":{"file":"include/libtmux/keys.hpp","line":39,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-knamedkeys"},{"id":"libtmux::kFormatSeparator","publicId":"libtmux::kFormatSeparator","name":"kFormatSeparator","kind":"attribute","modifiers":[],"signatures":[],"type":"std::string_view","doc":{"summary":"tmux joins requested formats with a separator that cannot appear in a format name.","body":"U+241E matches the Python implementation's default so both can read the same recorded output.\n\nIt is multi-byte, so every tmux this library starts is passed `-u`: a tmux that believes the terminal is not UTF-8 substitutes an underscore and no row splits at all."},"source":{"file":"include/libtmux/snapshot.hpp","line":43,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-kformatseparator"},{"id":"libtmux::kFormatEscape","publicId":"libtmux::kFormatEscape","name":"kFormatEscape","kind":"attribute","modifiers":[],"signatures":[],"type":"std::string_view","doc":{"summary":"A separator absent from every format name is not absent from every format value, which is the whole difficulty.","body":"`tmux rename-window 'a␞b'` is accepted, and one such name used to make every window and pane listing on that server fail to split — data the caller never chose breaking reads of everything else.\n\nSo tmux escapes the separator before it can be mistaken for one. U+241B pairs with it and is escaped in turn, which is what makes the transform reversible: `␛S` is a separator that was in the value and `␛E` is an escape marker that was, and neither has a second reading."},"source":{"file":"include/libtmux/snapshot.hpp","line":55,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-kformatescape"},{"id":"libtmux::kSocketPathLimit","publicId":"libtmux::kSocketPathLimit","name":"kSocketPathLimit","kind":"attribute","modifiers":[],"signatures":[],"type":"std::size_t","source":{"file":"include/libtmux/socket.hpp","line":35,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-ksocketpathlimit"},{"id":"libtmux::kMinimumSupported","publicId":"libtmux::kMinimumSupported","name":"kMinimumSupported","kind":"attribute","modifiers":[],"signatures":[],"type":"Version","doc":{"summary":"The oldest release this library supports, matching the Python package."},"source":{"file":"include/libtmux/version.hpp","line":150,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-kminimumsupported"},{"id":"libtmux::to_string","publicId":"libtmux::to_string","name":"to_string","kind":"function","modifiers":["overload"],"signatures":[{"params":[{"name":"implementation","type":"ServerImplementation"}],"raw":"[[nodiscard]] constexpr std::string_view\nto_string(ServerImplementation implementation) noexcept;","returns":"std::string_view"},{"params":[{"name":"backend","type":"BackendKind"}],"raw":"[[nodiscard]] constexpr std::string_view to_string(BackendKind backend) noexcept;","returns":"std::string_view"},{"params":[{"name":"feature","type":"ServerFeature"}],"raw":"[[nodiscard]] constexpr std::string_view to_string(ServerFeature feature) noexcept;","returns":"std::string_view"},{"params":[{"name":"error","type":"CardinalityError"}],"raw":"[[nodiscard]] constexpr std::string_view to_string(CardinalityError error) noexcept;","returns":"std::string_view"},{"params":[{"name":"kind","type":"FailureKind"}],"raw":"[[nodiscard]] constexpr std::string_view to_string(FailureKind kind) noexcept;","returns":"std::string_view"},{"params":[{"name":"failure","type":"const CommandFailure &"}],"raw":"[[nodiscard]] std::string to_string(const CommandFailure& failure);","returns":"std::string"},{"params":[{"name":"status","type":"DeliveryStatus"}],"raw":"[[nodiscard]] constexpr std::string_view to_string(DeliveryStatus status) noexcept;","returns":"std::string_view"},{"params":[{"name":"session","type":"const Session &"}],"raw":"[[nodiscard]] std::string to_string(const Session& session);","returns":"std::string"},{"params":[{"name":"window","type":"const Window &"}],"raw":"[[nodiscard]] std::string to_string(const Window& window);","returns":"std::string"},{"params":[{"name":"pane","type":"const Pane &"}],"raw":"[[nodiscard]] std::string to_string(const Pane& pane);","returns":"std::string"},{"params":[{"name":"client","type":"const Client &"}],"raw":"[[nodiscard]] std::string to_string(const Client& client);","returns":"std::string"},{"params":[{"name":"error","type":"KeyError"}],"raw":"[[nodiscard]] constexpr std::string_view to_string(KeyError error) noexcept;","returns":"std::string_view"},{"params":[{"name":"kind","type":"NotificationKind"}],"raw":"[[nodiscard]] std::string_view to_string(NotificationKind kind) noexcept;","returns":"std::string_view"},{"params":[{"name":"error","type":"SocketError"}],"raw":"[[nodiscard]] constexpr std::string_view to_string(SocketError error) noexcept;","returns":"std::string_view"},{"params":[{"name":"error","type":"TargetError"}],"raw":"[[nodiscard]] constexpr std::string_view to_string(TargetError error) noexcept;","returns":"std::string_view"},{"params":[{"name":"error","type":"VersionError"}],"raw":"[[nodiscard]] constexpr std::string_view to_string(VersionError error) noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/capabilities.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-to_string"},{"id":"libtmux::capture_lines","publicId":"libtmux::capture_lines","name":"capture_lines","kind":"function","modifiers":["overload"],"signatures":[{"params":[{"name":"Text &&"}],"typeParams":["typename Text"],"raw":"template \n requires std::same_as, std::string> &&\n (!std::is_lvalue_reference_v)\nstd::vector capture_lines(Text&&) = delete;","returns":"std::vector"},{"params":[{"name":"output","type":"std::string_view"}],"raw":"[[nodiscard]] std::vector capture_lines(std::string_view output);","returns":"std::vector"}],"doc":{"summary":"The lines are views into the text, so text that dies at the semicolon takes them with it — and `pane.capture()` returns its output by value, which makes `capture_lines(*pane.capture())` the natural thing to write and a use-after-free to run.","body":"Deleted for an rvalue string only: an lvalue string converts as before, and so does a literal.","examples":[{"lang":"console","intro":"Send input and capture confirmed output. Start a small shell reader with terminal echo disabled, wait for readiness, send one line, and capture its response. The two bounded waits prevent startup races and confirm output from the program. The final cat keeps the pane available for capture until cleanup. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/input-capture.cpp","code":"#include \n#include \n#include \n#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto window = sessions->front().new_window(libtmux::NewWindowOptions{\n .name = \"reader\",\n .shell_command = R\"(exec sh -c '\n stty -echo\n printf \"ready\\n\"\n IFS= read -r line\n printf \"got:%s\\n\" \"$line\"\n exec cat >/dev/null\n ')\",\n });\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n const auto pane = window->active_pane();\n if (!pane.has_value()) {\n std::fprintf(stderr, \"%s\\n\", pane.error().diagnostic.c_str());\n return 1;\n }\n const auto ready = pane->wait_for_text(\"ready\", {.timeout = std::chrono::seconds{5}});\n if (!ready.has_value()) {\n std::fprintf(stderr, \"%s\\n\", ready.error().diagnostic.c_str());\n return 1;\n }\n if (!ready->matched) {\n std::fputs(\"reader did not become ready\\n\", stderr);\n return 1;\n }\n const auto text = pane->send_text(\"hello \");\n if (!text.has_value()) {\n std::fprintf(stderr, \"%s\\n\", text.error().diagnostic.c_str());\n return 1;\n }\n const auto line = pane->send_line(\"C++\");\n if (!line.has_value()) {\n std::fprintf(stderr, \"%s\\n\", line.error().diagnostic.c_str());\n return 1;\n }\n const auto answered =\n pane->wait_for_text(\"got:hello C++\", {.timeout = std::chrono::seconds{5}});\n if (!answered.has_value()) {\n std::fprintf(stderr, \"%s\\n\", answered.error().diagnostic.c_str());\n return 1;\n }\n if (!answered->matched) {\n std::fputs(\"reader did not confirm the input\\n\", stderr);\n return 1;\n }\n const auto captured = pane->capture();\n if (!captured.has_value()) {\n std::fprintf(stderr, \"%s\\n\", captured.error().diagnostic.c_str());\n return 1;\n }\n // The captured string outlives the line views returned by capture_lines.\n const auto lines = libtmux::capture_lines(*captured);\n if (std::ranges::find(lines, \"got:hello C++\") == std::ranges::end(lines)) {\n std::fputs(\"captured output does not contain the response\\n\", stderr);\n return 1;\n }\n std::puts(\"got:hello C++\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"got:hello C++\n"}]},"source":{"file":"include/libtmux/capture.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-capture_lines"},{"id":"libtmux::without_trailing_blanks","publicId":"libtmux::without_trailing_blanks","name":"without_trailing_blanks","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"lines","type":"std::vector"}],"raw":"[[nodiscard]] std::vector\nwithout_trailing_blanks(std::vector lines);","returns":"std::vector"}],"doc":{"summary":"Drop the blank rows a pane pads its height with, keeping blank lines that have content below them."},"source":{"file":"include/libtmux/capture.hpp","line":60,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-without_trailing_blanks"},{"id":"libtmux::output_confirms","publicId":"libtmux::output_confirms","name":"output_confirms","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"captured","type":"std::string_view"},{"name":"wanted","type":"std::string_view"},{"name":"sent","type":"const std::vector &","default":"{}"}],"raw":"[[nodiscard]] bool output_confirms(std::string_view captured, std::string_view wanted,\n const std::vector& sent = {});","returns":"bool"}],"doc":{"summary":"Whether `wanted` appears in captured text as something the pane produced, rather than as text that is merely on screen.","body":"Waiting for a pane to say something is the first thing a supervising program needs and the easiest to get wrong, because a capture shows two things that are not output. The first is a command still sitting on the prompt: it has been typed, nothing has run it, and searching for it succeeds immediately. The second is its echo. A shell echoes typed input at least once — the kernel's own cooked-mode echo — and often twice more before anything runs, from the line editor's redisplay and from any unrelated repaint. None of those are output, however many rows they end up spread across.\n\n`sent` is what the calling program itself typed into this pane and has not had confirmed. Every whole occurrence of every entry is masked before `wanted` is looked for, so an echo cannot be credited to the pane no matter where a redraw moved it, and a short entry cannot corrupt a longer real word that merely contains it. That is the check row position alone misses: the same unsubmitted line, unchanged, after something else pushed it off the last row without the pane having produced anything."},"source":{"file":"include/libtmux/capture.hpp","line":129,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-output_confirms"},{"id":"libtmux::first","publicId":"libtmux::first","name":"first","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"range","type":"Range &"}],"typeParams":["ReferenceRange Range"],"raw":"template \n[[nodiscard]] std::optional> first(Range& range);","returns":"std::optional>"}],"doc":{"summary":"`first` states that a caller tolerates extras; it never reports several."},"source":{"file":"include/libtmux/cardinality.hpp","line":60,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-first"},{"id":"libtmux::exactly_one","publicId":"libtmux::exactly_one","name":"exactly_one","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"range","type":"Range &"}],"typeParams":["ReferenceRange Range"],"raw":"template \n[[nodiscard]] expected, CardinalityError> exactly_one(Range& range);","returns":"expected, CardinalityError>"}],"doc":{"summary":"`exactly_one` states that several is a caller error, and says which one.","examples":[{"lang":"console","intro":"Filter snapshots and require one match. Filter a window snapshot with typed fields and standard ranges. exactly_one_owned copies a unique match, so the temporary view is safe. Missing and ambiguous matches have different CardinalityError values; these lookups make no tmux calls. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/query.cpp","code":"#include \n#include \n#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n for (const char* name : {\"editor\", \"logs\"}) {\n const auto made = sessions->front().new_window(\n libtmux::NewWindowOptions{.name = name, .shell_command = \"exec cat\"});\n if (!made.has_value()) {\n std::fprintf(stderr, \"%s\\n\", made.error().diagnostic.c_str());\n return 1;\n }\n }\n const auto windows = server->windows();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n const auto wanted =\n libtmux::window::name.starts_with(\"edit\") || libtmux::window::name == \"logs\";\n auto matches = *windows | libtmux::matching(wanted);\n const auto editor = libtmux::exactly_one_owned(\n *windows | libtmux::matching(libtmux::window::name == \"editor\"));\n auto absent = *windows | libtmux::matching(libtmux::window::name == \"absent\");\n const auto missing = libtmux::exactly_one(absent);\n const auto ambiguous = libtmux::exactly_one(matches);\n if (!editor.has_value() || std::ranges::distance(matches) != 2 ||\n missing.has_value() ||\n missing.error() != libtmux::CardinalityError::none_matched ||\n ambiguous.has_value() ||\n ambiguous.error() != libtmux::CardinalityError::several_matched) {\n std::fputs(\"unexpected query cardinality\\n\", stderr);\n return 1;\n }\n std::printf(\"Selected %s; two matches; missing and ambiguous are distinct.\\n\",\n std::string{editor->name()}.c_str());\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Selected editor; two matches; missing and ambiguous are distinct.\n"}]},"source":{"file":"include/libtmux/cardinality.hpp","line":70,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-exactly_one"},{"id":"libtmux::first_owned","publicId":"libtmux::first_owned","name":"first_owned","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"range","type":"Range &&"}],"typeParams":["std::ranges::input_range Range"],"raw":"template \n requires std::constructible_from,\n std::ranges::range_reference_t>\n[[nodiscard]] std::optional>\nfirst_owned(Range&& range);","returns":"std::optional>"}],"doc":{"summary":"Copies referenced elements; moves when an iterator yields an rvalue.","body":"A temporary view over an lvalue container therefore leaves that container intact. Owning the element does not extend storage borrowed by its own members."},"source":{"file":"include/libtmux/cardinality.hpp","line":94,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-first_owned"},{"id":"libtmux::exactly_one_owned","publicId":"libtmux::exactly_one_owned","name":"exactly_one_owned","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"range","type":"Range &&"}],"typeParams":["std::ranges::input_range Range"],"raw":"template \n requires std::constructible_from,\n std::ranges::range_reference_t> &&\n std::move_constructible>\n[[nodiscard]] expected, CardinalityError>\nexactly_one_owned(Range&& range);","returns":"expected, CardinalityError>"}],"doc":{"summary":"A forward range's iterator can be copied and advanced independently of the original, so a second element rules the range out before the first is materialized.","body":"A single-pass range (a stream, a generator) shares mutable state between copies instead, so it has no way to look ahead: the first element must be materialized before the range can be advanced to check for a second, and an error there still consumes it.","examples":[{"lang":"console","intro":"Filter snapshots and require one match. Filter a window snapshot with typed fields and standard ranges. exactly_one_owned copies a unique match, so the temporary view is safe. Missing and ambiguous matches have different CardinalityError values; these lookups make no tmux calls. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/query.cpp","code":"#include \n#include \n#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n for (const char* name : {\"editor\", \"logs\"}) {\n const auto made = sessions->front().new_window(\n libtmux::NewWindowOptions{.name = name, .shell_command = \"exec cat\"});\n if (!made.has_value()) {\n std::fprintf(stderr, \"%s\\n\", made.error().diagnostic.c_str());\n return 1;\n }\n }\n const auto windows = server->windows();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n const auto wanted =\n libtmux::window::name.starts_with(\"edit\") || libtmux::window::name == \"logs\";\n auto matches = *windows | libtmux::matching(wanted);\n const auto editor = libtmux::exactly_one_owned(\n *windows | libtmux::matching(libtmux::window::name == \"editor\"));\n auto absent = *windows | libtmux::matching(libtmux::window::name == \"absent\");\n const auto missing = libtmux::exactly_one(absent);\n const auto ambiguous = libtmux::exactly_one(matches);\n if (!editor.has_value() || std::ranges::distance(matches) != 2 ||\n missing.has_value() ||\n missing.error() != libtmux::CardinalityError::none_matched ||\n ambiguous.has_value() ||\n ambiguous.error() != libtmux::CardinalityError::several_matched) {\n std::fputs(\"unexpected query cardinality\\n\", stderr);\n return 1;\n }\n std::printf(\"Selected %s; two matches; missing and ambiguous are distinct.\\n\",\n std::string{editor->name()}.c_str());\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Selected editor; two matches; missing and ambiguous are distinct.\n"}]},"source":{"file":"include/libtmux/cardinality.hpp","line":113,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-exactly_one_owned"},{"id":"libtmux::as_command_failure","publicId":"libtmux::as_command_failure","name":"as_command_failure","kind":"function","modifiers":["overload"],"signatures":[{"params":[{"name":"error","type":"ProtocolError"}],"raw":"[[nodiscard]] CommandFailure as_command_failure(ProtocolError error);","returns":"CommandFailure"},{"params":[{"name":"reason","type":"Reason"}],"typeParams":["typename Reason"],"raw":"template \n requires is_validation_reason\n[[nodiscard]] CommandFailure as_command_failure(Reason reason);","returns":"CommandFailure"}],"doc":{"summary":"A control-wire failure as a command failure, keeping what it says about delivery — the one thing a caller cannot reconstruct.","body":"A protocol error that never started is a validation refusal; past that point the wire is what broke, which is `pipe`."},"source":{"file":"include/libtmux/error.hpp","line":39,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-as_command_failure"},{"id":"libtmux::as_protocol_error","publicId":"libtmux::as_protocol_error","name":"as_protocol_error","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"failure","type":"CommandFailure"}],"raw":"[[nodiscard]] ProtocolError as_protocol_error(CommandFailure failure);","returns":"ProtocolError"}],"doc":{"summary":"The other direction, for a caller handing a command failure to a surface that speaks the wire's type.","body":"The kind is dropped because the wire has no word for it; the diagnostic carries what it said."},"source":{"file":"include/libtmux/error.hpp","line":51,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-as_protocol_error"},{"id":"libtmux::unexpected","publicId":"libtmux::unexpected","name":"unexpected","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"error","type":"Error &&"}],"typeParams":["typename Error"],"raw":"template [[nodiscard]] constexpr auto unexpected(Error&& error);","returns":"auto"}],"doc":{"summary":"A factory rather than an alias: an alias template cannot deduce its argument, so `unexpected(error)` would stop compiling at every call site."},"source":{"file":"include/libtmux/expected.hpp","line":74,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-unexpected"},{"id":"libtmux::escape_literal","publicId":"libtmux::escape_literal","name":"escape_literal","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] std::string escape_literal(std::string_view text);","returns":"std::string"}],"doc":{"summary":"Escape literal text for inclusion in a format string."},"source":{"file":"include/libtmux/format.hpp","line":18,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-escape_literal"},{"id":"libtmux::variable","publicId":"libtmux::variable","name":"variable","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] std::string variable(std::string_view name);","returns":"std::string"}],"doc":{"summary":"Wrap a variable name as a substitution.","body":"The name is not escaped: a name is chosen by the caller from tmux's format vocabulary, not built from data."},"source":{"file":"include/libtmux/format.hpp","line":32,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-variable"},{"id":"libtmux::is_function_key","publicId":"libtmux::is_function_key","name":"is_function_key","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] bool is_function_key(std::string_view name) noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/keys.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_function_key"},{"id":"libtmux::is_key_name","publicId":"libtmux::is_key_name","name":"is_key_name","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"key","type":"std::string_view"}],"raw":"[[nodiscard]] bool is_key_name(std::string_view key) noexcept;","returns":"bool"}],"doc":{"summary":"Accept a key with any number of C-, M-, or S- modifiers."},"source":{"file":"include/libtmux/keys.hpp","line":83,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_key_name"},{"id":"libtmux::literal_arguments","publicId":"libtmux::literal_arguments","name":"literal_arguments","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] expected, KeyError>\nliteral_arguments(std::string_view text);","returns":"expected, KeyError>"}],"doc":{"summary":"Send text exactly as written: the flag, the end of flags, and the text.","body":"`--` is part of the fragment rather than something a caller appends, because text beginning with a dash is read as another `send-keys` option without it and that is not a mistake worth making twice. It was made twice: this returned the flag and the text alone, `Pane::send_text` inserted the separator afterwards, and `Chain::send_text` did not — so the same text through the two spellings reached tmux as two different commands."},"source":{"file":"include/libtmux/keys.hpp","line":116,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-literal_arguments"},{"id":"libtmux::validate_layout","publicId":"libtmux::validate_layout","name":"validate_layout","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"layout","type":"std::string_view"},{"name":"minimum_panes","type":"std::size_t","default":"1"}],"raw":"[[nodiscard]] expected\nvalidate_layout(std::string_view layout, std::size_t minimum_panes = 1);","returns":"expected"}],"doc":{"summary":"Check names, v1 saved-layout checksum, v1/v2 tree grammar and minimum cell count without I/O.","body":"Names must be valid on at least one supported tmux version; Server::validate_layouts resolves version-dependent names and requires tmux 3.8 (including 3.8-rc) or newer for v2 JSON layouts. Saved input, including floating-pane metadata, is retained unchanged. The v2 reader follows tmux's restricted JSON syntax. Geometry and resizing remain tmux's responsibility. Empty layouts are invalid."},"source":{"file":"include/libtmux/layout.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-validate_layout"},{"id":"libtmux::lookup_of","publicId":"libtmux::lookup_of","name":"lookup_of","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected lookup_of(std::string_view name);","returns":"expected"}],"doc":{"summary":"`eq` is the implicit lookup, matching Python's bare `field=value`.","body":"An empty name reaches here only from a key that carried no separator at all; a key ending in one is refused before this is asked."},"source":{"file":"include/libtmux/legacy_lookup.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lookup_of"},{"id":"libtmux::parse_lookup","publicId":"libtmux::parse_lookup","name":"parse_lookup","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"term","type":"std::string_view"},{"name":"fields","type":"std::span>"}],"typeParams":["typename Entity"],"raw":"template \n[[nodiscard]] expected, LookupParseError>\nparse_lookup(std::string_view term,\n std::span> fields);","returns":"expected, LookupParseError>"}],"doc":{"summary":"Parse one `field[__lookup]=value` term against a caller-supplied field table.","body":"The value is taken verbatim after the first `=`, so a value containing `=` or `__` survives unchanged; only the key is split."},"source":{"file":"include/libtmux/legacy_lookup.hpp","line":56,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parse_lookup"},{"id":"libtmux::name_of","publicId":"libtmux::name_of","name":"name_of","kind":"function","modifiers":["overload"],"signatures":[{"params":[{"name":"op","type":"StringOp"}],"raw":"[[nodiscard]] constexpr std::string_view name_of(StringOp op) noexcept;","returns":"std::string_view"},{"params":[{"name":"op","type":"NumberOp"}],"raw":"[[nodiscard]] constexpr std::string_view name_of(NumberOp op) noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/lowering.hpp","line":20,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-name_of"},{"id":"libtmux::replay","publicId":"libtmux::replay","name":"replay","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"nodes","type":"const LoweredExpression &"},{"name":"sink","type":"Sink &"}],"typeParams":["typename Sink"],"raw":"template void replay(const LoweredExpression& nodes, Sink& sink);","returns":"void"}],"doc":{"summary":"Replay an already-lowered child into a sink."},"source":{"file":"include/libtmux/lowering.hpp","line":55,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-replay"},{"id":"libtmux::lower","publicId":"libtmux::lower","name":"lower","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"expr","type":"const FilterExpr &"},{"name":"sink","type":"Sink &"}],"typeParams":["typename Entity","typename Sink"],"raw":"template \nvoid lower(const FilterExpr& expr, Sink& sink);","returns":"void"}],"doc":{"summary":"A sink receives one call per node in prefix order.","body":"Groups and negations are bracketed by begin/end so a sink never has to count operands itself."},"source":{"file":"include/libtmux/lowering.hpp","line":92,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lower"},{"id":"libtmux::parse","publicId":"libtmux::parse","name":"parse","kind":"function","modifiers":["overload"],"signatures":[{"params":[{"name":"notification","type":"const Notification &"}],"raw":"[[nodiscard]] ParsedNotification parse(const Notification& notification);","returns":"ParsedNotification"},{"params":[{"name":"Notification &&"}],"raw":"ParsedNotification parse(Notification&&) = delete;","returns":"ParsedNotification"}],"source":{"file":"include/libtmux/notification.hpp","line":97,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parse"},{"id":"libtmux::layout_contains_pane","publicId":"libtmux::layout_contains_pane","name":"layout_contains_pane","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"layout_change_text","type":"std::string_view"},{"name":"pane_id","type":"std::string_view"}],"raw":"[[nodiscard]] std::optional\nlayout_contains_pane(std::string_view layout_change_text, std::string_view pane_id);","returns":"std::optional"}],"doc":{"summary":"Whether `pane_id` (`%N`) is still part of a window's arrangement, reading a `layout_change` notification's own `text` — `window_layout` followed by `window_visible_layout` and the window's flags (control-notify.c) — for its first, whitespace-delimited token.","body":"tmux gives no notification dedicated to a pane leaving its window; a `%layout-change` naming the pane gone is the only signal there is. This answers only from the JSON layout (3.8+, and only for a connection that requested it — see `Window::layout()`), which carries each pane's stable id. The classic layout string encodes each pane's position by index instead, which the removal of any other pane in the window renumbers, so this returns `std::nullopt` there rather than guessing: killing the observed pane is the one case a caller most wants an honest answer for, and a stale index is exactly where a guess would be wrong."},"source":{"file":"include/libtmux/notification.hpp","line":115,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-layout_contains_pane"},{"id":"libtmux::unquote","publicId":"libtmux::unquote","name":"unquote","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] std::string unquote(std::string_view value);","returns":"std::string"}],"doc":{"summary":"Undo the quoting tmux applies when it prints a value.","body":"tmux picks one of four forms, and a reader that knows only one corrupts the rest: `''` for an empty value; double quotes when the value contains any of ` #';${}`; single quotes when it contains a double quote; and otherwise no quotes at all. Inside any of them the body is escaped the way `vis` does it — `\\t`, `\\n`, `\\\\`, `\\ooo` for a byte with no printable form — and a leading tilde is escaped whether or not anything else is.\n\nThis is the inverse of tmux's own `args_escape`, so a value read here and written back is the value that was there."},"source":{"file":"include/libtmux/options.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-unquote"},{"id":"libtmux::parse_option","publicId":"libtmux::parse_option","name":"parse_option","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"line","type":"std::string_view"}],"raw":"[[nodiscard]] std::optional parse_option(std::string_view line);","returns":"std::optional"}],"doc":{"summary":"Parse one line.","body":"Returns nullopt for a blank line so callers can feed raw output straight in."},"source":{"file":"include/libtmux/options.hpp","line":134,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parse_option"},{"id":"libtmux::parse_options","publicId":"libtmux::parse_options","name":"parse_options","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"output","type":"std::string_view"}],"raw":"[[nodiscard]] std::vector parse_options(std::string_view output);","returns":"std::vector"}],"source":{"file":"include/libtmux/options.hpp","line":174,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parse_options"},{"id":"libtmux::children_of","publicId":"libtmux::children_of","name":"children_of","kind":"function","modifiers":["overload"],"signatures":[{"params":[{"name":"rows","type":"const std::vector &"},{"name":"foreign_key","type":"StringFieldHandle"},{"name":"key","type":"StringFieldHandle"}],"typeParams":["typename Parent","typename Child"],"raw":"template \n[[nodiscard]] auto children_of(const std::vector& rows,\n StringFieldHandle foreign_key,\n StringFieldHandle key);","returns":"auto"},{"params":[{"name":"const std::vector< Child > &&"},{"name":"StringFieldHandle< Child >"},{"name":"StringFieldHandle< Parent >"}],"typeParams":["typename Parent","typename Child"],"raw":"template \nauto children_of(const std::vector&&, StringFieldHandle,\n StringFieldHandle) = delete;","returns":"auto"}],"doc":{"summary":"Join two listings on the id one of them carries.","body":"A relation predicate has to reach the related rows without running tmux, so the caller lists both kinds once and links them here. The result borrows the rows it was given, exactly as a filtered view does, so it must not outlive the listing it reads."},"source":{"file":"include/libtmux/relations.hpp","line":36,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-children_of"},{"id":"libtmux::parent_of","publicId":"libtmux::parent_of","name":"parent_of","kind":"function","modifiers":["overload"],"signatures":[{"params":[{"name":"rows","type":"const std::vector &"},{"name":"foreign_key","type":"StringFieldHandle"},{"name":"key","type":"StringFieldHandle"}],"typeParams":["typename Child","typename Parent"],"raw":"template \n[[nodiscard]] auto parent_of(const std::vector& rows,\n StringFieldHandle foreign_key,\n StringFieldHandle key);","returns":"auto"},{"params":[{"name":"const std::vector< Parent > &&"},{"name":"StringFieldHandle< Child >"},{"name":"StringFieldHandle< Parent >"}],"typeParams":["typename Child","typename Parent"],"raw":"template \nauto parent_of(const std::vector&&, StringFieldHandle,\n StringFieldHandle) = delete;","returns":"auto"}],"doc":{"summary":"The same join read the other way: the one row a child points at, or none."},"source":{"file":"include/libtmux/relations.hpp","line":55,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parent_of"},{"id":"libtmux::quantified","publicId":"libtmux::quantified","name":"quantified","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string"},{"name":"quantifier","type":"Quantifier"},{"name":"read","type":"auto"},{"name":"predicate","type":"auto"}],"typeParams":["typename Entity"],"raw":"template \n[[nodiscard]] FilterExpr quantified(std::string name, Quantifier quantifier,\n auto read, auto predicate);","returns":"FilterExpr"}],"doc":{"summary":"To-many and to-one links take different accessors, so they get different builders rather than one that has to compile both shapes."},"source":{"file":"include/libtmux/relations.hpp","line":84,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-quantified"},{"id":"libtmux::any_of","publicId":"libtmux::any_of","name":"any_of","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string"},{"name":"read","type":"auto"},{"name":"predicate","type":"auto"}],"typeParams":["typename Entity"],"raw":"template \n[[nodiscard]] FilterExpr any_of(std::string name, auto read, auto predicate);","returns":"FilterExpr"}],"source":{"file":"include/libtmux/relations.hpp","line":110,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-any_of"},{"id":"libtmux::all_of","publicId":"libtmux::all_of","name":"all_of","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string"},{"name":"read","type":"auto"},{"name":"predicate","type":"auto"}],"typeParams":["typename Entity"],"raw":"template \n[[nodiscard]] FilterExpr all_of(std::string name, auto read, auto predicate);","returns":"FilterExpr"}],"source":{"file":"include/libtmux/relations.hpp","line":115,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-all_of"},{"id":"libtmux::none_of","publicId":"libtmux::none_of","name":"none_of","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string"},{"name":"read","type":"auto"},{"name":"predicate","type":"auto"}],"typeParams":["typename Entity"],"raw":"template \n[[nodiscard]] FilterExpr none_of(std::string name, auto read, auto predicate);","returns":"FilterExpr"}],"source":{"file":"include/libtmux/relations.hpp","line":120,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-none_of"},{"id":"libtmux::is","publicId":"libtmux::is","name":"is","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string"},{"name":"read","type":"auto"},{"name":"predicate","type":"auto"}],"typeParams":["typename Entity"],"raw":"template \n[[nodiscard]] FilterExpr is(std::string name, auto read, auto predicate);","returns":"FilterExpr"}],"doc":{"summary":"An absent to-one link never satisfies `is`: a window with no active pane is not a window whose active pane runs an editor."},"source":{"file":"include/libtmux/relations.hpp","line":127,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is"},{"id":"libtmux::format_request","publicId":"libtmux::format_request","name":"format_request","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"fields","type":"std::span"}],"raw":"[[nodiscard]] std::string format_request(std::span fields);","returns":"std::string"}],"doc":{"summary":"Build the format argument for one entity's fields, terminating every field so a trailing empty value is still a value rather than a missing column.","body":"The two substitutions nest rather than run in sequence, because tmux applies the inner one to the raw value and the outer one to its result. In that order a value already holding the escape marker is neutralised before the separator pass can produce one; reversed, the two become indistinguishable.\n\n`#{s/…/…/:…}` predates every tmux this library supports, and neither character is a regular-expression metacharacter.\n\nUnconditional, rather than applied only to the fields that could carry a separator. Expanding the substitutions costs about 0.32us per row — a 61-row listing pays 19us, against a process launch of some milliseconds — and a per-field exemption list is a thing to get wrong later, once, silently."},"source":{"file":"include/libtmux/snapshot.hpp","line":73,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-format_request"},{"id":"libtmux::decode_value","publicId":"libtmux::decode_value","name":"decode_value","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"begin","type":"char *"},{"name":"size","type":"std::size_t"}],"raw":"[[nodiscard]] std::size_t decode_value(char* begin, std::size_t size) noexcept;","returns":"std::size_t"}],"doc":{"summary":"Undo that escaping, in place.","body":"Escaping only ever lengthens, so the decoded bytes fit where the encoded ones were: the write cursor never overtakes the read cursor, nothing moves, and nothing is allocated. Answers the decoded length.\n\nAn escape marker followed by anything else is left as written. Output this library asked for contains no such sequence, and failing on one would mean a recording could not carry a literal `␛`."},"source":{"file":"include/libtmux/snapshot.hpp","line":109,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-decode_value"},{"id":"libtmux::split_row","publicId":"libtmux::split_row","name":"split_row","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"line","type":"std::string_view"},{"name":"fields","type":"std::size_t"},{"name":"values","type":"std::vector &"}],"raw":"[[nodiscard]] bool split_row(std::string_view line, std::size_t fields,\n std::vector& values);","returns":"bool"}],"doc":{"summary":"Split one tmux output line into its field values.","body":"The trailing separator emitted by `format_request` produces one empty tail element, which is dropped; a short or long row is reported rather than padded so a format-name typo cannot masquerade as an empty field."},"source":{"file":"include/libtmux/snapshot.hpp","line":137,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-split_row"},{"id":"libtmux::socket_name_arguments","publicId":"libtmux::socket_name_arguments","name":"socket_name_arguments","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected, SocketError>\nsocket_name_arguments(std::string_view name);","returns":"expected, SocketError>"}],"doc":{"summary":"`-L name`: a single component resolved under the socket directory."},"source":{"file":"include/libtmux/socket.hpp","line":65,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-socket_name_arguments"},{"id":"libtmux::socket_path_arguments","publicId":"libtmux::socket_path_arguments","name":"socket_path_arguments","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"path","type":"std::string_view"}],"raw":"[[nodiscard]] expected, SocketError>\nsocket_path_arguments(std::string_view path);","returns":"expected, SocketError>"}],"doc":{"summary":"`-S path`: used verbatim, so the address limit applies to it directly."},"source":{"file":"include/libtmux/socket.hpp","line":81,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-socket_path_arguments"},{"id":"libtmux::is_pane_id","publicId":"libtmux::is_pane_id","name":"is_pane_id","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] constexpr bool is_pane_id(std::string_view value) noexcept;","returns":"bool"}],"doc":{"summary":"Whether a value is written as an id, which is what decides that it needs no separator validation below — not whether tmux would resolve it.","body":"`x` is an id by this test and no pane by tmux's, and both are right: it carries no separator, so composing it can only produce the caller's own mistake back."},"source":{"file":"include/libtmux/target.hpp","line":39,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_pane_id"},{"id":"libtmux::is_window_id","publicId":"libtmux::is_window_id","name":"is_window_id","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] constexpr bool is_window_id(std::string_view value) noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/target.hpp","line":42,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_window_id"},{"id":"libtmux::is_session_id","publicId":"libtmux::is_session_id","name":"is_session_id","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] constexpr bool is_session_id(std::string_view value) noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/target.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_session_id"},{"id":"libtmux::path_component","publicId":"libtmux::path_component","name":"path_component","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\npath_component(std::string_view name);","returns":"expected"}],"doc":{"summary":"Validate one path component.","body":"Ids skip validation because they contain no separator by construction."},"source":{"file":"include/libtmux/target.hpp","line":52,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-path_component"},{"id":"libtmux::session_target","publicId":"libtmux::session_target","name":"session_target","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"session","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nsession_target(std::string_view session);","returns":"expected"}],"doc":{"summary":"A session target is its id, or its validated name."},"source":{"file":"include/libtmux/target.hpp","line":64,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session_target"},{"id":"libtmux::window_target","publicId":"libtmux::window_target","name":"window_target","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"session","type":"std::string_view"},{"name":"window","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nwindow_target(std::string_view session, std::string_view window);","returns":"expected"}],"doc":{"summary":"A window target is its id, which needs no session, or `session:window`."},"source":{"file":"include/libtmux/target.hpp","line":73,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window_target"},{"id":"libtmux::pane_target","publicId":"libtmux::pane_target","name":"pane_target","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"session","type":"std::string_view"},{"name":"window","type":"std::string_view"},{"name":"pane","type":"std::string_view"}],"raw":"[[nodiscard]] expected\npane_target(std::string_view session, std::string_view window, std::string_view pane);","returns":"expected"}],"doc":{"summary":"A pane target is its id, or `session:window.pane`."},"source":{"file":"include/libtmux/target.hpp","line":90,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane_target"},{"id":"libtmux::parse_version","publicId":"libtmux::parse_version","name":"parse_version","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"output","type":"std::string_view"}],"raw":"[[nodiscard]] expected parse_version(std::string_view output);","returns":"expected"}],"doc":{"summary":"Parse the first line of `tmux -V`, with or without its trailing newline."},"source":{"file":"include/libtmux/version.hpp","line":70,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parse_version"},{"id":"libtmux::is_supported","publicId":"libtmux::is_supported","name":"is_supported","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"version","type":"const Version &"}],"raw":"[[nodiscard]] constexpr bool is_supported(const Version& version) noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/version.hpp","line":152,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_supported"},{"id":"libtmux::library_version","publicId":"libtmux::library_version","name":"library_version","kind":"function","modifiers":[],"signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view library_version() noexcept;","returns":"std::string_view"}],"doc":{"summary":"This package's own version, not tmux's."},"source":{"file":"include/libtmux/version.hpp","line":157,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-library_version"},{"id":"libtmux::matching","publicId":"libtmux::matching","name":"matching","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"expr","type":"FilterExpr"}],"typeParams":["typename Entity"],"raw":"template \n[[nodiscard]] auto libtmux::tmuxq::matching(FilterExpr expr);","returns":"auto"}],"doc":{"summary":"`matching(expr)` is a range adaptor closure so it composes with std views.","examples":[{"lang":"console","intro":"Filter snapshots and require one match. Filter a window snapshot with typed fields and standard ranges. exactly_one_owned copies a unique match, so the temporary view is safe. Missing and ambiguous matches have different CardinalityError values; these lookups make no tmux calls. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/query.cpp","code":"#include \n#include \n#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n for (const char* name : {\"editor\", \"logs\"}) {\n const auto made = sessions->front().new_window(\n libtmux::NewWindowOptions{.name = name, .shell_command = \"exec cat\"});\n if (!made.has_value()) {\n std::fprintf(stderr, \"%s\\n\", made.error().diagnostic.c_str());\n return 1;\n }\n }\n const auto windows = server->windows();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n const auto wanted =\n libtmux::window::name.starts_with(\"edit\") || libtmux::window::name == \"logs\";\n auto matches = *windows | libtmux::matching(wanted);\n const auto editor = libtmux::exactly_one_owned(\n *windows | libtmux::matching(libtmux::window::name == \"editor\"));\n auto absent = *windows | libtmux::matching(libtmux::window::name == \"absent\");\n const auto missing = libtmux::exactly_one(absent);\n const auto ambiguous = libtmux::exactly_one(matches);\n if (!editor.has_value() || std::ranges::distance(matches) != 2 ||\n missing.has_value() ||\n missing.error() != libtmux::CardinalityError::none_matched ||\n ambiguous.has_value() ||\n ambiguous.error() != libtmux::CardinalityError::several_matched) {\n std::fputs(\"unexpected query cardinality\\n\", stderr);\n return 1;\n }\n std::printf(\"Selected %s; two matches; missing and ambiguous are distinct.\\n\",\n std::string{editor->name()}.c_str());\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Selected editor; two matches; missing and ambiguous are distinct.\n"}]},"source":{"file":"include/libtmux/filter_expr.hpp","line":400,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-matching"},{"id":"libtmux::buffer::name","publicId":"libtmux::buffer::name","name":"name","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1279,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-name-n46r"},{"id":"libtmux::buffer::size","publicId":"libtmux::buffer::size","name":"size","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1281,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-size-1ih1"},{"id":"libtmux::buffer::sample","publicId":"libtmux::buffer::sample","name":"sample","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1283,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-sample-1ocw"},{"id":"libtmux::buffer::created","publicId":"libtmux::buffer::created","name":"created","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","doc":{"summary":"Epoch seconds, as tmux renders it and as `-f` would compare it; the accessor beside this one answers `sys_seconds` because that is what a caller holds."},"source":{"file":"include/libtmux/entities.hpp","line":1287,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-created-h7cl"},{"id":"libtmux::client::name","publicId":"libtmux::client::name","name":"name","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1225,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-name-et7n"},{"id":"libtmux::client::session_name","publicId":"libtmux::client::session_name","name":"session_name","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1227,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-session_name-1yzv"},{"id":"libtmux::client::read_only","publicId":"libtmux::client::read_only","name":"read_only","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1229,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-read_only-uoyl"},{"id":"libtmux::client::tty","publicId":"libtmux::client::tty","name":"tty","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1231,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-tty-65zh"},{"id":"libtmux::client::terminal","publicId":"libtmux::client::terminal","name":"terminal","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1233,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-terminal-197l"},{"id":"libtmux::client::control_mode","publicId":"libtmux::client::control_mode","name":"control_mode","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1235,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-control_mode-vqad"},{"id":"libtmux::client::width","publicId":"libtmux::client::width","name":"width","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1237,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-width-l6pa"},{"id":"libtmux::client::height","publicId":"libtmux::client::height","name":"height","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1239,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-height-19tm"},{"id":"libtmux::client::created","publicId":"libtmux::client::created","name":"created","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1241,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-created-1dtc"},{"id":"libtmux::client::last_activity","publicId":"libtmux::client::last_activity","name":"last_activity","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1245,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-last_activity-krbn"},{"id":"libtmux::client::pid","publicId":"libtmux::client::pid","name":"pid","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1249,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-pid-1lir"},{"id":"libtmux::client::active_pane_id","publicId":"libtmux::client::active_pane_id","name":"active_pane_id","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1251,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-active_pane_id-85wc"},{"id":"libtmux::client::flags","publicId":"libtmux::client::flags","name":"flags","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1254,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-flags-n3dj"},{"id":"libtmux::client::window_id","publicId":"libtmux::client::window_id","name":"window_id","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1256,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-window_id-1wkk"},{"id":"libtmux::command::name","publicId":"libtmux::command::name","name":"name","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1268,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command-name-193l"},{"id":"libtmux::command::alias","publicId":"libtmux::command::alias","name":"alias","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1270,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command-alias-1fzs"},{"id":"libtmux::command::usage","publicId":"libtmux::command::usage","name":"usage","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1272,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command-usage-d8og"},{"id":"libtmux::detail::is_word_byte","publicId":"libtmux::detail::is_word_byte","name":"is_word_byte","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"byte","type":"unsigned char"}],"raw":"[[nodiscard]] constexpr bool is_word_byte(unsigned char byte) noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/capture.hpp","line":69,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-is_word_byte"},{"id":"libtmux::detail::mask_whole_occurrences","publicId":"libtmux::detail::mask_whole_occurrences","name":"mask_whole_occurrences","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"text","type":"std::string_view"},{"name":"echo","type":"std::string_view"}],"raw":"[[nodiscard]] std::string mask_whole_occurrences(std::string_view text,\n std::string_view echo);","returns":"std::string"}],"source":{"file":"include/libtmux/capture.hpp","line":75,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-mask_whole_occurrences"},{"id":"libtmux::detail::to_number","publicId":"libtmux::detail::to_number","name":"to_number","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] long long to_number(std::string_view text) noexcept;","returns":"long long"}],"doc":{"summary":"tmux renders every value as text.","body":"These read the three shapes it uses, and answer zero, false or the epoch for a value it did not render — which within the supported version range means tmux had nothing to say, not that the token was unknown."},"source":{"file":"include/libtmux/entities.hpp","line":239,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-to_number"},{"id":"libtmux::detail::to_flag","publicId":"libtmux::detail::to_flag","name":"to_flag","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] bool to_flag(std::string_view text) noexcept;","returns":"bool"}],"doc":{"summary":"tmux renders flag formats as \"1\" or \"0\"; anything else is not the flag."},"source":{"file":"include/libtmux/entities.hpp","line":247,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-to_flag"},{"id":"libtmux::detail::to_time","publicId":"libtmux::detail::to_time","name":"to_time","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] std::chrono::sys_seconds to_time(std::string_view text) noexcept;","returns":"std::chrono::sys_seconds"}],"source":{"file":"include/libtmux/entities.hpp","line":251,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-to_time"},{"id":"libtmux::detail::same_entity_id","publicId":"libtmux::detail::same_entity_id","name":"same_entity_id","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"scoped_by_session","type":"bool"},{"name":"left_id","type":"std::string_view"},{"name":"left_session_id","type":"std::string_view"},{"name":"right_id","type":"std::string_view"},{"name":"right_session_id","type":"std::string_view"}],"raw":"[[nodiscard]] bool same_entity_id(bool scoped_by_session, std::string_view left_id,\n std::string_view left_session_id,\n std::string_view right_id,\n std::string_view right_session_id) noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":265,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-same_entity_id"},{"id":"libtmux::detail::server_over","publicId":"libtmux::detail::server_over","name":"server_over","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"backend","type":"std::shared_ptr"}],"raw":"[[nodiscard]] Server server_over(std::shared_ptr backend);","returns":"Server"}],"doc":{"summary":"Declared so the private constructor has exactly one way in.","body":"Defined in a header this package does not install."},"source":{"file":"include/libtmux/server.hpp","line":48,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-server_over"},{"id":"libtmux::pane::id","publicId":"libtmux::pane::id","name":"id","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1167,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-id-y6bn"},{"id":"libtmux::pane::command","publicId":"libtmux::pane::command","name":"command","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1169,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-command-1csk"},{"id":"libtmux::pane::active","publicId":"libtmux::pane::active","name":"active","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1171,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-active-1lsu"},{"id":"libtmux::pane::window_id","publicId":"libtmux::pane::window_id","name":"window_id","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1173,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-window_id-5m7o"},{"id":"libtmux::pane::session_id","publicId":"libtmux::pane::session_id","name":"session_id","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1175,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-session_id-12gx"},{"id":"libtmux::pane::session_name","publicId":"libtmux::pane::session_name","name":"session_name","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1177,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-session_name-mmse"},{"id":"libtmux::pane::title","publicId":"libtmux::pane::title","name":"title","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1179,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-title-17ke"},{"id":"libtmux::pane::tty","publicId":"libtmux::pane::tty","name":"tty","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1181,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-tty-1ovf"},{"id":"libtmux::pane::path","publicId":"libtmux::pane::path","name":"path","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-path-1usu"},{"id":"libtmux::pane::dead","publicId":"libtmux::pane::dead","name":"dead","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1185,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-dead-fppz"},{"id":"libtmux::pane::in_mode","publicId":"libtmux::pane::in_mode","name":"in_mode","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1187,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-in_mode-1flx"},{"id":"libtmux::pane::index","publicId":"libtmux::pane::index","name":"index","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1189,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-index-b9np"},{"id":"libtmux::pane::pid","publicId":"libtmux::pane::pid","name":"pid","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1191,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-pid-wx6g"},{"id":"libtmux::pane::width","publicId":"libtmux::pane::width","name":"width","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1193,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-width-um8i"},{"id":"libtmux::pane::height","publicId":"libtmux::pane::height","name":"height","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1195,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-height-13yh"},{"id":"libtmux::pane::at_top","publicId":"libtmux::pane::at_top","name":"at_top","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1197,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-at_top-cxhf"},{"id":"libtmux::pane::at_bottom","publicId":"libtmux::pane::at_bottom","name":"at_bottom","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1199,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-at_bottom-1fcx"},{"id":"libtmux::pane::at_left","publicId":"libtmux::pane::at_left","name":"at_left","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1201,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-at_left-nnhz"},{"id":"libtmux::pane::at_right","publicId":"libtmux::pane::at_right","name":"at_right","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1203,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-at_right-8bbz"},{"id":"libtmux::pane::piping","publicId":"libtmux::pane::piping","name":"piping","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1205,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-piping-1wse"},{"id":"libtmux::pane::left","publicId":"libtmux::pane::left","name":"left","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1207,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-left-t0o5"},{"id":"libtmux::pane::top","publicId":"libtmux::pane::top","name":"top","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1209,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-top-1mvh"},{"id":"libtmux::pane::exit_status","publicId":"libtmux::pane::exit_status","name":"exit_status","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","doc":{"summary":"A pane that has not exited reads -1, which tmux cannot report: the field is `WEXITSTATUS` and so is 0 through 255, or empty.","body":"That makes `pane::exit_status == 0` exactly the panes that exited cleanly and `pane::exit_status >= 0` exactly the ones that exited at all, rather than folding \"still running\" into status zero."},"source":{"file":"include/libtmux/entities.hpp","line":1216,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-exit_status-25ts"},{"id":"libtmux::session::id","publicId":"libtmux::session::id","name":"id","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1106,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-id-59rb"},{"id":"libtmux::session::name","publicId":"libtmux::session::name","name":"name","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1108,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-name-1eby"},{"id":"libtmux::session::attached","publicId":"libtmux::session::attached","name":"attached","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1110,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-attached-1hq4"},{"id":"libtmux::session::path","publicId":"libtmux::session::path","name":"path","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1112,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-path-4gm2"},{"id":"libtmux::session::group","publicId":"libtmux::session::group","name":"group","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1114,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-group-1vgj"},{"id":"libtmux::session::grouped","publicId":"libtmux::session::grouped","name":"grouped","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1116,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-grouped-1we8"},{"id":"libtmux::session::client_count","publicId":"libtmux::session::client_count","name":"client_count","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-client_count-1mj7"},{"id":"libtmux::session::window_count","publicId":"libtmux::session::window_count","name":"window_count","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1120,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-window_count-c4j5"},{"id":"libtmux::session::created","publicId":"libtmux::session::created","name":"created","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","doc":{"summary":"tmux renders a timestamp as epoch seconds, which is what a filter compares and what `-f` would compare on the server.","body":"The accessor beside this one answers `sys_seconds` because that is what a caller wants to hold."},"source":{"file":"include/libtmux/entities.hpp","line":1125,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-created-1ibc"},{"id":"libtmux::test::SocketMode","publicId":"libtmux::test::SocketMode","name":"SocketMode","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Whether the test server is addressed by `tmux -L name` or `tmux -S path`."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-socketmode"},{"id":"libtmux::test::SocketMode::Name","publicId":"libtmux::test::SocketMode::Name","name":"Name","kind":"constant","modifiers":[],"parent":"libtmux::test::SocketMode","signatures":[],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-socketmode-name"},{"id":"libtmux::test::SocketMode::Path","publicId":"libtmux::test::SocketMode::Path","name":"Path","kind":"constant","modifiers":[],"parent":"libtmux::test::SocketMode","signatures":[],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-socketmode-path"},{"id":"libtmux::test::current_environment","publicId":"libtmux::test::current_environment","name":"current_environment","kind":"function","modifiers":[],"signatures":[{"params":[],"raw":"[[nodiscard]] std::vector current_environment();","returns":"std::vector"}],"doc":{"summary":"Build and edit a `NAME=VALUE` block for a child process.","body":"`current_environment` copies this process's; `set_environment` replaces any existing entry rather than appending; `erase_environment` removes every entry for the name."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":76,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-current_environment"},{"id":"libtmux::test::set_environment","publicId":"libtmux::test::set_environment","name":"set_environment","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"environment","type":"std::vector &"},{"name":"name","type":"std::string_view"},{"name":"value","type":"std::string_view"}],"raw":"void set_environment(std::vector& environment, std::string_view name,\n std::string_view value);","returns":"void"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":77,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-set_environment"},{"id":"libtmux::test::erase_environment","publicId":"libtmux::test::erase_environment","name":"erase_environment","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"environment","type":"std::vector &"},{"name":"name","type":"std::string_view"}],"raw":"void erase_environment(std::vector& environment, std::string_view name);","returns":"void"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":79,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-erase_environment"},{"id":"libtmux::test::same_socket_inode","publicId":"libtmux::test::same_socket_inode","name":"same_socket_inode","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"left","type":"const std::filesystem::path &"},{"name":"right","type":"const std::filesystem::path &"}],"raw":"[[nodiscard]] libtmux::expected\nsame_socket_inode(const std::filesystem::path& left,\n const std::filesystem::path& right);","returns":"libtmux::expected"}],"doc":{"summary":"Whether two paths name the same socket.","body":"Not `std::filesystem::equivalent`: [fs.op.equivalent] makes it an error when both paths are \"other\" files, and a unix domain socket is one. That is not a corner a tmux suite can avoid — every socket comparison hits it — and the two standard libraries disagree about it. libstdc++ implements the rule and reports `ENOTSUP`; libc++ answers anyway, so the same test passes on one and fails on the other. This asks the kernel for the inode instead.\n\nThe error is for a path that could not be inspected at all; a readable pair that names two different sockets is a `false`, not a failure."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":93,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-same_socket_inode"},{"id":"libtmux::test::running_tmux","publicId":"libtmux::test::running_tmux","name":"running_tmux","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"tmux_binary","type":"const std::filesystem::path &","default":"\"tmux\""}],"raw":"[[nodiscard]] Version running_tmux(const std::filesystem::path& tmux_binary = \"tmux\");","returns":"Version"}],"doc":{"summary":"Resolved once per distinct binary and cached.","body":"A tmux that cannot be run or whose version cannot be parsed reports as the newest possible version, so version-gated tests run and fail rather than silently skipping."},"source":{"file":"include/libtmux/testing/tmux_version.hpp","line":23,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-running_tmux"},{"id":"libtmux::test::describe_running_tmux","publicId":"libtmux::test::describe_running_tmux","name":"describe_running_tmux","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"tmux_binary","type":"const std::filesystem::path &","default":"\"tmux\""}],"raw":"[[nodiscard]] std::string\ndescribe_running_tmux(const std::filesystem::path& tmux_binary = \"tmux\");","returns":"std::string"}],"doc":{"summary":"What `tmux -V` printed, verbatim, or \"unknown\"."},"source":{"file":"include/libtmux/testing/tmux_version.hpp","line":27,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-describe_running_tmux"},{"id":"libtmux::tmuxq::matching","publicId":"libtmux::tmuxq::matching","name":"matching","kind":"function","modifiers":["overload"],"signatures":[{"params":[{"name":"expr","type":"FilterExpr"}],"typeParams":["typename Entity"],"raw":"template [[nodiscard]] auto matching(FilterExpr expr);","returns":"auto"},{"params":[{"name":"field","type":"BoolFieldHandle"}],"typeParams":["typename Entity"],"raw":"template [[nodiscard]] auto matching(BoolFieldHandle field);","returns":"auto"}],"doc":{"summary":"`matching(expr)` is a range adaptor closure so it composes with std views."},"source":{"file":"include/libtmux/filter_expr.hpp","line":388,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-tmuxq-matching"},{"id":"libtmux::window::id","publicId":"libtmux::window::id","name":"id","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1134,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-id-1jff"},{"id":"libtmux::window::name","publicId":"libtmux::window::name","name":"name","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1136,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-name-1187"},{"id":"libtmux::window::active","publicId":"libtmux::window::active","name":"active","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1138,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-active-1nkh"},{"id":"libtmux::window::session_id","publicId":"libtmux::window::session_id","name":"session_id","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1140,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-session_id-rzt6"},{"id":"libtmux::window::session_name","publicId":"libtmux::window::session_name","name":"session_name","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1142,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-session_name-5i0n"},{"id":"libtmux::window::layout","publicId":"libtmux::window::layout","name":"layout","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1144,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-layout-1aks"},{"id":"libtmux::window::zoomed","publicId":"libtmux::window::zoomed","name":"zoomed","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1146,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-zoomed-rcw4"},{"id":"libtmux::window::bell","publicId":"libtmux::window::bell","name":"bell","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-bell-16ky"},{"id":"libtmux::window::activity","publicId":"libtmux::window::activity","name":"activity","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1150,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-activity-1gwj"},{"id":"libtmux::window::index","publicId":"libtmux::window::index","name":"index","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1152,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-index-isxp"},{"id":"libtmux::window::pane_count","publicId":"libtmux::window::pane_count","name":"pane_count","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1154,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-pane_count-1gmi"},{"id":"libtmux::window::width","publicId":"libtmux::window::width","name":"width","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1156,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-width-aksp"},{"id":"libtmux::window::height","publicId":"libtmux::window::height","name":"height","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1158,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-height-vlzt"},{"id":"libtmux::window::linked_sessions","publicId":"libtmux::window::linked_sessions","name":"linked_sessions","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1160,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-linked_sessions-g8ns"},{"id":"libtmux::BoolField","publicId":"libtmux::BoolField","name":"BoolField","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A flag on an entity, named for the expression and read through a function pointer rather than a member pointer so the same descriptor works for a field computed from several tmux tokens."},"source":{"file":"include/libtmux/filter_expr.hpp","line":62,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-boolfield"},{"id":"libtmux::BoolField::name","publicId":"libtmux::BoolField::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::BoolField","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/filter_expr.hpp","line":62,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-boolfield-name"},{"id":"libtmux::BoolField::read","publicId":"libtmux::BoolField::read","name":"read","kind":"attribute","modifiers":[],"parent":"libtmux::BoolField","signatures":[],"type":"bool(*)","source":{"file":"include/libtmux/filter_expr.hpp","line":63,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-boolfield-read"},{"id":"libtmux::BoolFieldHandle","publicId":"libtmux::BoolFieldHandle","name":"BoolFieldHandle","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"The value a flag's name resolves to in an expression.","body":"Converts to a filter on its own, so naming the field is the same as testing it for true."},"source":{"file":"include/libtmux/filter_expr.hpp","line":308,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-boolfieldhandle"},{"id":"libtmux::BoolFieldHandle::field","publicId":"libtmux::BoolFieldHandle::field","name":"field","kind":"attribute","modifiers":[],"parent":"libtmux::BoolFieldHandle","signatures":[],"type":"BoolField","source":{"file":"include/libtmux/filter_expr.hpp","line":308,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-boolfieldhandle-field"},{"id":"libtmux::CaptureOptions","publicId":"libtmux::CaptureOptions","name":"CaptureOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Which part of a pane's screen and scrollback a capture reads.","body":"A capture reads what the pane is showing, so a line the program redrew is the redrawn one and a line scrolled past the history limit is gone."},"source":{"file":"include/libtmux/entities.hpp","line":168,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-captureoptions"},{"id":"libtmux::CaptureOptions::start_line","publicId":"libtmux::CaptureOptions::start_line","name":"start_line","kind":"attribute","modifiers":[],"parent":"libtmux::CaptureOptions","signatures":[],"type":"std::optional","doc":{"summary":"Where to start, counting back into the scrollback.","body":"Absent starts at the top of the visible pane."},"source":{"file":"include/libtmux/entities.hpp","line":168,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-captureoptions-start_line"},{"id":"libtmux::CaptureOptions::end_line","publicId":"libtmux::CaptureOptions::end_line","name":"end_line","kind":"attribute","modifiers":[],"parent":"libtmux::CaptureOptions","signatures":[],"type":"std::optional","source":{"file":"include/libtmux/entities.hpp","line":169,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-captureoptions-end_line"},{"id":"libtmux::CaptureOptions::whole_history","publicId":"libtmux::CaptureOptions::whole_history","name":"whole_history","kind":"attribute","modifiers":[],"parent":"libtmux::CaptureOptions","signatures":[],"type":"bool","doc":{"summary":"Everything tmux still remembers, which is what a caller reading history usually means."},"source":{"file":"include/libtmux/entities.hpp","line":172,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-captureoptions-whole_history"},{"id":"libtmux::CaptureOptions::join_wrapped","publicId":"libtmux::CaptureOptions::join_wrapped","name":"join_wrapped","kind":"attribute","modifiers":[],"parent":"libtmux::CaptureOptions","signatures":[],"type":"bool","doc":{"summary":"Join a line tmux wrapped back into the one line it was."},"source":{"file":"include/libtmux/entities.hpp","line":174,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-captureoptions-join_wrapped"},{"id":"libtmux::CaptureOptions::with_escape_sequences","publicId":"libtmux::CaptureOptions::with_escape_sequences","name":"with_escape_sequences","kind":"attribute","modifiers":[],"parent":"libtmux::CaptureOptions","signatures":[],"type":"bool","doc":{"summary":"Keep the escape sequences rather than the text they produced."},"source":{"file":"include/libtmux/entities.hpp","line":176,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-captureoptions-with_escape_sequences"},{"id":"libtmux::CaptureOptions::keep_trailing_spaces","publicId":"libtmux::CaptureOptions::keep_trailing_spaces","name":"keep_trailing_spaces","kind":"attribute","modifiers":[],"parent":"libtmux::CaptureOptions","signatures":[],"type":"bool","doc":{"summary":"Keep the spaces at the end of a line, which tmux otherwise trims."},"source":{"file":"include/libtmux/entities.hpp","line":178,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-captureoptions-keep_trailing_spaces"},{"id":"libtmux::CaptureOptions::output_limit","publicId":"libtmux::CaptureOptions::output_limit","name":"output_limit","kind":"attribute","modifiers":[],"parent":"libtmux::CaptureOptions","signatures":[],"type":"std::optional","doc":{"summary":"How much of the answer this call is prepared to hold.","body":"A scrollback can be far larger than the default, and one that does not fit is reported."},"source":{"file":"include/libtmux/entities.hpp","line":181,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-captureoptions-output_limit"},{"id":"libtmux::CommandFailure","publicId":"libtmux::CommandFailure","name":"CommandFailure","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A command that did not produce an answer, and how far it got.","body":"`delivery` is the part that decides whether retrying is safe; `kind` and `diagnostic` say what to fix."},"source":{"file":"include/libtmux/command.hpp","line":89,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandfailure"},{"id":"libtmux::CommandFailure::kind","publicId":"libtmux::CommandFailure::kind","name":"kind","kind":"attribute","modifiers":[],"parent":"libtmux::CommandFailure","signatures":[],"type":"FailureKind","source":{"file":"include/libtmux/command.hpp","line":89,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandfailure-kind"},{"id":"libtmux::CommandFailure::delivery","publicId":"libtmux::CommandFailure::delivery","name":"delivery","kind":"attribute","modifiers":[],"parent":"libtmux::CommandFailure","signatures":[],"type":"DeliveryStatus","doc":{"summary":"How far the command is known to have progressed.","body":"Only `not_started` is safe to retry blindly."},"source":{"file":"include/libtmux/command.hpp","line":92,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandfailure-delivery"},{"id":"libtmux::CommandFailure::exit_code","publicId":"libtmux::CommandFailure::exit_code","name":"exit_code","kind":"attribute","modifiers":[],"parent":"libtmux::CommandFailure","signatures":[],"type":"int","source":{"file":"include/libtmux/command.hpp","line":93,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandfailure-exit_code"},{"id":"libtmux::CommandFailure::diagnostic","publicId":"libtmux::CommandFailure::diagnostic","name":"diagnostic","kind":"attribute","modifiers":[],"parent":"libtmux::CommandFailure","signatures":[],"type":"std::string","source":{"file":"include/libtmux/command.hpp","line":94,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandfailure-diagnostic"},{"id":"libtmux::CommandReport","publicId":"libtmux::CommandReport","name":"CommandReport","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Told about every command, as it finishes.","body":"There is otherwise no way to see what this library ran: a caller debugging a tmux interaction has only the failures, and nothing at all when things succeed. The command is rendered as tmux received it, with any argument marked sensitive replaced.\n\nSynchronous calls invoke it on their caller's thread. Asynchronous calls invoke it only on the thread calling `CommandRuntime::dispatch_ready`. No internal lock is held; a shared observer must synchronise itself."},"source":{"file":"include/libtmux/command.hpp","line":229,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandreport"},{"id":"libtmux::CommandReport::command","publicId":"libtmux::CommandReport::command","name":"command","kind":"attribute","modifiers":[],"parent":"libtmux::CommandReport","signatures":[],"type":"std::string_view","doc":{"summary":"As tmux received it, with any argument marked sensitive replaced.","body":"For a human reading a log."},"source":{"file":"include/libtmux/command.hpp","line":229,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandreport-command"},{"id":"libtmux::CommandReport::argv","publicId":"libtmux::CommandReport::argv","name":"argv","kind":"attribute","modifiers":[],"parent":"libtmux::CommandReport","signatures":[],"type":"std::span","doc":{"summary":"The same command unrendered, for a caller building structured telemetry rather than a line of text.","body":"Empty when the report has no argv to give."},"source":{"file":"include/libtmux/command.hpp","line":232,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandreport-argv"},{"id":"libtmux::CommandReport::failure","publicId":"libtmux::CommandReport::failure","name":"failure","kind":"attribute","modifiers":[],"parent":"libtmux::CommandReport","signatures":[],"type":"const CommandFailure *","doc":{"summary":"Nothing when the command succeeded."},"source":{"file":"include/libtmux/command.hpp","line":234,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandreport-failure"},{"id":"libtmux::CommandReport::elapsed","publicId":"libtmux::CommandReport::elapsed","name":"elapsed","kind":"attribute","modifiers":[],"parent":"libtmux::CommandReport","signatures":[],"type":"std::optional","doc":{"summary":"How long the command took, measured around its dispatch.","body":"Absent when nothing was dispatched — a request rejected before it ran took no time, and reporting zero would read as an immeasurably fast command."},"source":{"file":"include/libtmux/command.hpp","line":238,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandreport-elapsed"},{"id":"libtmux::CommandRuntimeConfig","publicId":"libtmux::CommandRuntimeConfig","name":"CommandRuntimeConfig","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"The maximum number of accepted commands retaining any lifecycle leg.","body":"`start` rejects zero with `DeliveryStatus::not_started`. How many commands the runtime will admit at once."},"source":{"file":"include/libtmux/async.hpp","line":34,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimeconfig"},{"id":"libtmux::CommandRuntimeConfig::capacity","publicId":"libtmux::CommandRuntimeConfig::capacity","name":"capacity","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeConfig","signatures":[],"type":"std::size_t","source":{"file":"include/libtmux/async.hpp","line":34,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimeconfig-capacity"},{"id":"libtmux::CommandRuntimeShutdown","publicId":"libtmux::CommandRuntimeShutdown","name":"CommandRuntimeShutdown","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"The first successful `close` report; every later call returns this value.","body":"Discharge result and observer work first when `safe_to_unload` must be true."},"source":{"file":"include/libtmux/async.hpp","line":65,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimeshutdown"},{"id":"libtmux::CommandRuntimeShutdown::pending_results","publicId":"libtmux::CommandRuntimeShutdown::pending_results","name":"pending_results","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeShutdown","signatures":[],"type":"std::size_t","doc":{"summary":"Result obligations outstanding when the first close succeeded."},"source":{"file":"include/libtmux/async.hpp","line":65,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimeshutdown-pending_results"},{"id":"libtmux::CommandRuntimeShutdown::pending_observers","publicId":"libtmux::CommandRuntimeShutdown::pending_observers","name":"pending_observers","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeShutdown","signatures":[],"type":"std::size_t","doc":{"summary":"Observer obligations outstanding when the first close succeeded."},"source":{"file":"include/libtmux/async.hpp","line":67,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimeshutdown-pending_observers"},{"id":"libtmux::CommandRuntimeShutdown::transports_stopped","publicId":"libtmux::CommandRuntimeShutdown::transports_stopped","name":"transports_stopped","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeShutdown","signatures":[],"type":"bool","doc":{"summary":"Whether every owned child and transport thread retired."},"source":{"file":"include/libtmux/async.hpp","line":69,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimeshutdown-transports_stopped"},{"id":"libtmux::CommandRuntimeShutdown::safe_to_unload","publicId":"libtmux::CommandRuntimeShutdown::safe_to_unload","name":"safe_to_unload","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeShutdown","signatures":[],"type":"bool","doc":{"summary":"True only when transports and pending work ended and no caller-side readiness wait, dispatch or discard, including callback-target teardown, remains active.","body":"Callers must prevent concurrent or later runtime entry before unloading."},"source":{"file":"include/libtmux/async.hpp","line":74,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimeshutdown-safe_to_unload"},{"id":"libtmux::CommandRuntimeShutdown::failure","publicId":"libtmux::CommandRuntimeShutdown::failure","name":"failure","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeShutdown","signatures":[],"type":"std::optional","doc":{"summary":"The first runtime lifecycle failure; an operation may also carry it."},"source":{"file":"include/libtmux/async.hpp","line":76,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimeshutdown-failure"},{"id":"libtmux::CommandRuntimeSnapshot","publicId":"libtmux::CommandRuntimeSnapshot","name":"CommandRuntimeSnapshot","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A lock-consistent instant; values may change immediately after it is read.","body":"Admission, refusal, and completion totals are monotonic. The runtime's counters at one instant, for diagnostics rather than control.\n\nRead under a lock and stale immediately after, so a caller must not branch on `in_flight` expecting it to still hold. The totals only ever increase."},"source":{"file":"include/libtmux/async.hpp","line":44,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimesnapshot"},{"id":"libtmux::CommandRuntimeSnapshot::capacity","publicId":"libtmux::CommandRuntimeSnapshot::capacity","name":"capacity","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeSnapshot","signatures":[],"type":"std::size_t","source":{"file":"include/libtmux/async.hpp","line":44,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimesnapshot-capacity"},{"id":"libtmux::CommandRuntimeSnapshot::in_flight","publicId":"libtmux::CommandRuntimeSnapshot::in_flight","name":"in_flight","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeSnapshot","signatures":[],"type":"std::size_t","doc":{"summary":"Accepted commands retaining transport, result, or observer work."},"source":{"file":"include/libtmux/async.hpp","line":46,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimesnapshot-in_flight"},{"id":"libtmux::CommandRuntimeSnapshot::pending_results","publicId":"libtmux::CommandRuntimeSnapshot::pending_results","name":"pending_results","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeSnapshot","signatures":[],"type":"std::size_t","doc":{"summary":"Result handles not yet waited, detached, or destroyed."},"source":{"file":"include/libtmux/async.hpp","line":48,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimesnapshot-pending_results"},{"id":"libtmux::CommandRuntimeSnapshot::pending_observers","publicId":"libtmux::CommandRuntimeSnapshot::pending_observers","name":"pending_observers","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeSnapshot","signatures":[],"type":"std::size_t","doc":{"summary":"Observer records not yet claimed for dispatch or discarded, ready or not."},"source":{"file":"include/libtmux/async.hpp","line":50,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimesnapshot-pending_observers"},{"id":"libtmux::CommandRuntimeSnapshot::accepted","publicId":"libtmux::CommandRuntimeSnapshot::accepted","name":"accepted","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeSnapshot","signatures":[],"type":"std::uint64_t","doc":{"summary":"Commands admitted since startup."},"source":{"file":"include/libtmux/async.hpp","line":52,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimesnapshot-accepted"},{"id":"libtmux::CommandRuntimeSnapshot::refused","publicId":"libtmux::CommandRuntimeSnapshot::refused","name":"refused","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeSnapshot","signatures":[],"type":"std::uint64_t","doc":{"summary":"Commands refused before admission since startup."},"source":{"file":"include/libtmux/async.hpp","line":54,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimesnapshot-refused"},{"id":"libtmux::CommandRuntimeSnapshot::completed","publicId":"libtmux::CommandRuntimeSnapshot::completed","name":"completed","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeSnapshot","signatures":[],"type":"std::uint64_t","doc":{"summary":"Accepted results whose observer record, when present, is also ready."},"source":{"file":"include/libtmux/async.hpp","line":56,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimesnapshot-completed"},{"id":"libtmux::CommandRuntimeSnapshot::accepting","publicId":"libtmux::CommandRuntimeSnapshot::accepting","name":"accepting","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeSnapshot","signatures":[],"type":"bool","doc":{"summary":"True while neither stop nor close has ended admission."},"source":{"file":"include/libtmux/async.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimesnapshot-accepting"},{"id":"libtmux::ConnectionOptions","publicId":"libtmux::ConnectionOptions","name":"ConnectionOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"How to start a control-mode connection, and what it is allowed to buffer.","body":"Two of these cannot be changed later because tmux cannot: whether pane output is delivered at all is fixed when the connection starts, and the decoder's bounds belong to the decoder rather than to whatever reads it."},"source":{"file":"include/libtmux/control.hpp","line":142,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions"},{"id":"libtmux::ConnectionOptions::tmux_binary","publicId":"libtmux::ConnectionOptions::tmux_binary","name":"tmux_binary","kind":"attribute","modifiers":[],"parent":"libtmux::ConnectionOptions","signatures":[],"type":"std::optional","doc":{"summary":"Which tmux to run.","body":"Absent means `tmux` from `PATH` — or, through `Server::control`, the tmux that Server's policy names. Absent rather than defaulting to `tmux`, so that a caller who writes `tmux` here gets it, instead of being indistinguishable from one who wrote nothing."},"source":{"file":"include/libtmux/control.hpp","line":142,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions-tmux_binary"},{"id":"libtmux::ConnectionOptions::socket_path","publicId":"libtmux::ConnectionOptions::socket_path","name":"socket_path","kind":"attribute","modifiers":[],"parent":"libtmux::ConnectionOptions","signatures":[],"type":"std::filesystem::path","source":{"file":"include/libtmux/control.hpp","line":143,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions-socket_path"},{"id":"libtmux::ConnectionOptions::session_name","publicId":"libtmux::ConnectionOptions::session_name","name":"session_name","kind":"attribute","modifiers":[],"parent":"libtmux::ConnectionOptions","signatures":[],"type":"std::string","source":{"file":"include/libtmux/control.hpp","line":144,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions-session_name"},{"id":"libtmux::ConnectionOptions::startup_timeout","publicId":"libtmux::ConnectionOptions::startup_timeout","name":"startup_timeout","kind":"attribute","modifiers":[],"parent":"libtmux::ConnectionOptions","signatures":[],"type":"std::chrono::milliseconds","source":{"file":"include/libtmux/control.hpp","line":145,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions-startup_timeout"},{"id":"libtmux::ConnectionOptions::shutdown_timeout","publicId":"libtmux::ConnectionOptions::shutdown_timeout","name":"shutdown_timeout","kind":"attribute","modifiers":[],"parent":"libtmux::ConnectionOptions","signatures":[],"type":"std::chrono::milliseconds","source":{"file":"include/libtmux/control.hpp","line":146,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions-shutdown_timeout"},{"id":"libtmux::ConnectionOptions::retained_reply_bytes","publicId":"libtmux::ConnectionOptions::retained_reply_bytes","name":"retained_reply_bytes","kind":"attribute","modifiers":[],"parent":"libtmux::ConnectionOptions","signatures":[],"type":"std::size_t","doc":{"summary":"Passed to the decoder.","body":"Raise the first to hold a bigger capture; the second bounds a line that never ends. A connection accepts zero (unbounded) or at least 128 bytes, which leaves room for its private request boundary."},"source":{"file":"include/libtmux/control.hpp","line":151,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions-retained_reply_bytes"},{"id":"libtmux::ConnectionOptions::line_bytes","publicId":"libtmux::ConnectionOptions::line_bytes","name":"line_bytes","kind":"attribute","modifiers":[],"parent":"libtmux::ConnectionOptions","signatures":[],"type":"std::size_t","source":{"file":"include/libtmux/control.hpp","line":152,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions-line_bytes"},{"id":"libtmux::ConnectionOptions::pane_output","publicId":"libtmux::ConnectionOptions::pane_output","name":"pane_output","kind":"attribute","modifiers":[],"parent":"libtmux::ConnectionOptions","signatures":[],"type":"bool","doc":{"summary":"Deliver `output` for every pane, as notifications.","body":"Off, so tmux is not asked to buffer pane output for a caller who never reads it. It is fixed at connect time because tmux fixes it: a connection started without output cannot be made to listen later, so this cannot be a subscription. See `docs/design/pane-output-streaming.md`."},"source":{"file":"include/libtmux/control.hpp","line":160,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions-pane_output"},{"id":"libtmux::ConnectionOptions::pause_after","publicId":"libtmux::ConnectionOptions::pause_after","name":"pause_after","kind":"attribute","modifiers":[],"parent":"libtmux::ConnectionOptions","signatures":[],"type":"std::optional","doc":{"summary":"Discard a pane's queued output once it is this far behind, and say so with `pause`.","body":"A data-loss policy rather than backpressure, and unset is a policy too: tmux then buffers until a queued block is five minutes old and closes the connection with `too far behind`. Set this and a slow reader survives having lost output; leave it and a slow enough reader loses the connection. Only meaningful with `pane_output`.\n\n`pause` is the sole report that anything was dropped, and it names the pane. A caller that sets this and ignores notifications has chosen to lose output silently."},"source":{"file":"include/libtmux/control.hpp","line":174,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions-pause_after"},{"id":"libtmux::ControlBlock","publicId":"libtmux::ControlBlock","name":"ControlBlock","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"One reply block, framed between tmux's `begin` and its terminator.","body":"Framing is all this is: whether the command succeeded is `terminal`, and what it said is `body`. A body that hit the decoder's retention bound is still framed and still attributable — see `body_truncated`."},"source":{"file":"include/libtmux/control.hpp","line":66,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlblock"},{"id":"libtmux::ControlBlock::sequence","publicId":"libtmux::ControlBlock::sequence","name":"sequence","kind":"attribute","modifiers":[],"parent":"libtmux::ControlBlock","signatures":[],"type":"std::uint64_t","source":{"file":"include/libtmux/control.hpp","line":66,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlblock-sequence"},{"id":"libtmux::ControlBlock::command_number","publicId":"libtmux::ControlBlock::command_number","name":"command_number","kind":"attribute","modifiers":[],"parent":"libtmux::ControlBlock","signatures":[],"type":"std::uint64_t","source":{"file":"include/libtmux/control.hpp","line":67,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlblock-command_number"},{"id":"libtmux::ControlBlock::terminal","publicId":"libtmux::ControlBlock::terminal","name":"terminal","kind":"attribute","modifiers":[],"parent":"libtmux::ControlBlock","signatures":[],"type":"ControlTerminal","source":{"file":"include/libtmux/control.hpp","line":68,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlblock-terminal"},{"id":"libtmux::ControlBlock::begin_metadata","publicId":"libtmux::ControlBlock::begin_metadata","name":"begin_metadata","kind":"attribute","modifiers":[],"parent":"libtmux::ControlBlock","signatures":[],"type":"std::vector","source":{"file":"include/libtmux/control.hpp","line":69,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlblock-begin_metadata"},{"id":"libtmux::ControlBlock::terminal_metadata","publicId":"libtmux::ControlBlock::terminal_metadata","name":"terminal_metadata","kind":"attribute","modifiers":[],"parent":"libtmux::ControlBlock","signatures":[],"type":"std::vector","source":{"file":"include/libtmux/control.hpp","line":70,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlblock-terminal_metadata"},{"id":"libtmux::ControlBlock::body","publicId":"libtmux::ControlBlock::body","name":"body","kind":"attribute","modifiers":[],"parent":"libtmux::ControlBlock","signatures":[],"type":"std::vector","source":{"file":"include/libtmux/control.hpp","line":71,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlblock-body"},{"id":"libtmux::ControlBlock::body_truncated","publicId":"libtmux::ControlBlock::body_truncated","name":"body_truncated","kind":"attribute","modifiers":[],"parent":"libtmux::ControlBlock","signatures":[],"type":"bool","doc":{"summary":"`body` holds the first `retained_reply_bytes` and stopped; `body_bytes` is how many there were.","body":"Set rather than reported as an error because framing is the parser's job and judging the answer is the caller's: the rest of the reply is still drained, so the next command's reply is still attributable."},"source":{"file":"include/libtmux/control.hpp","line":76,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlblock-body_truncated"},{"id":"libtmux::ControlBlock::body_bytes","publicId":"libtmux::ControlBlock::body_bytes","name":"body_bytes","kind":"attribute","modifiers":[],"parent":"libtmux::ControlBlock","signatures":[],"type":"std::size_t","source":{"file":"include/libtmux/control.hpp","line":77,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlblock-body_bytes"},{"id":"libtmux::ControlCommand","publicId":"libtmux::ControlCommand","name":"ControlCommand","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"One command as argv, before it is joined into a control-mode line."},"source":{"file":"include/libtmux/control.hpp","line":111,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlcommand"},{"id":"libtmux::ControlCommand::argv","publicId":"libtmux::ControlCommand::argv","name":"argv","kind":"attribute","modifiers":[],"parent":"libtmux::ControlCommand","signatures":[],"type":"std::vector","source":{"file":"include/libtmux/control.hpp","line":111,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlcommand-argv"},{"id":"libtmux::ControlRequest","publicId":"libtmux::ControlRequest","name":"ControlRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"The commands sent as one group, which tmux runs until one fails."},"source":{"file":"include/libtmux/control.hpp","line":116,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlrequest"},{"id":"libtmux::ControlRequest::group","publicId":"libtmux::ControlRequest::group","name":"group","kind":"attribute","modifiers":[],"parent":"libtmux::ControlRequest","signatures":[],"type":"std::vector","source":{"file":"include/libtmux/control.hpp","line":116,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlrequest-group"},{"id":"libtmux::ControlRequestResult","publicId":"libtmux::ControlRequestResult","name":"ControlRequestResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"What one request produced: its reply blocks, and the connection error that ended the exchange if one did.","body":"A connection error is separate from a failed block because they need different handling: a failed command leaves the connection usable."},"source":{"file":"include/libtmux/control.hpp","line":128,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlrequestresult"},{"id":"libtmux::ControlRequestResult::blocks","publicId":"libtmux::ControlRequestResult::blocks","name":"blocks","kind":"attribute","modifiers":[],"parent":"libtmux::ControlRequestResult","signatures":[],"type":"std::vector","doc":{"summary":"Every synchronous reply block tmux emitted for this request, in wire order.","body":"tmux does not put a request or operation ID on its guards, so a command alias or inserted command may make this differ from `group`."},"source":{"file":"include/libtmux/control.hpp","line":128,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlrequestresult-blocks"},{"id":"libtmux::ControlRequestResult::connection_error","publicId":"libtmux::ControlRequestResult::connection_error","name":"connection_error","kind":"attribute","modifiers":[],"parent":"libtmux::ControlRequestResult","signatures":[],"type":"std::optional","source":{"file":"include/libtmux/control.hpp","line":129,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlrequestresult-connection_error"},{"id":"libtmux::EnvironmentEntry","publicId":"libtmux::EnvironmentEntry","name":"EnvironmentEntry","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"One name in the environment tmux gives processes it starts.","body":"The value is optional because tmux distinguishes two things a listing shows side by side: a name bound to a value, printed `NAME=value`, and a name marked so that a child does not inherit it, printed `-NAME`. The second is an instruction rather than an empty value, and flattening it to `\"\"` would tell a caller the child sees an empty string when it sees nothing at all."},"source":{"file":"include/libtmux/options.hpp","line":27,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-environmententry"},{"id":"libtmux::EnvironmentEntry::name","publicId":"libtmux::EnvironmentEntry::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::EnvironmentEntry","signatures":[],"type":"std::string","source":{"file":"include/libtmux/options.hpp","line":27,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-environmententry-name"},{"id":"libtmux::EnvironmentEntry::value","publicId":"libtmux::EnvironmentEntry::value","name":"value","kind":"attribute","modifiers":[],"parent":"libtmux::EnvironmentEntry","signatures":[],"type":"std::optional","source":{"file":"include/libtmux/options.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-environmententry-value"},{"id":"libtmux::ExecutionPolicy","publicId":"libtmux::ExecutionPolicy","name":"ExecutionPolicy","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"What a call waits and holds when the caller did not say.","body":"A timeout on the call is still how a caller says \"this one in particular\": listing sessions does not share a deadline with attaching a client. What was missing was a floor. Typed methods passed no timeout at all, so `window.rename(...)` waited for as long as the process ran if tmux never answered — and \"tmux is normally fast\" is not a liveness guarantee when a hook blocks, a filesystem stops answering, or a connection breaks without closing the pipe.\n\nThirty seconds is far past every tmux command that works and far short of forever. `wait_for` opts out, because waiting is the whole request."},"source":{"file":"include/libtmux/command.hpp","line":258,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-executionpolicy"},{"id":"libtmux::ExecutionPolicy::timeout","publicId":"libtmux::ExecutionPolicy::timeout","name":"timeout","kind":"attribute","modifiers":[],"parent":"libtmux::ExecutionPolicy","signatures":[],"type":"std::optional","doc":{"summary":"Absent means wait. That is a thing to mean deliberately."},"source":{"file":"include/libtmux/command.hpp","line":258,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-executionpolicy-timeout"},{"id":"libtmux::ExecutionPolicy::output_limit","publicId":"libtmux::ExecutionPolicy::output_limit","name":"output_limit","kind":"attribute","modifiers":[],"parent":"libtmux::ExecutionPolicy","signatures":[],"type":"std::optional","doc":{"summary":"Absent leaves the transport's own bound, which is one megabyte."},"source":{"file":"include/libtmux/command.hpp","line":260,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-executionpolicy-output_limit"},{"id":"libtmux::ExecutionPolicy::tmux_binary","publicId":"libtmux::ExecutionPolicy::tmux_binary","name":"tmux_binary","kind":"attribute","modifiers":[],"parent":"libtmux::ExecutionPolicy","signatures":[],"type":"std::filesystem::path","doc":{"summary":"Which tmux to run.","body":"A bare name is resolved through `PATH`, as tmux's own documentation assumes; a path containing a separator is used as given.\n\nNaming it is how a caller stops `PATH` deciding: a hermetic build, a pinned version under test, or a wrapper that reaches tmux on another machine. It rides the policy rather than the call because a Server's connection is immutable, and because a handle that changed which tmux it meant between two calls would make its own entities disagree.\n\n`Server::control` passes this to the connection it opens, so both transports run the same executable unless the caller overrides it in `ConnectionOptions`."},"source":{"file":"include/libtmux/command.hpp","line":273,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-executionpolicy-tmux_binary"},{"id":"libtmux::ExecutorOptions","publicId":"libtmux::ExecutorOptions","name":"ExecutorOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"What a caller-supplied transport tells the library about itself.","body":"`implementation` answers what a caller may rely on, and only that. Leaving it `unknown` makes `capabilities().supports(...)` answer no for every feature — the library will not promise what it cannot recognise — but it does not stop a typed call: `refuses` asks a separate question from `supports` rather than its negation, so that a transport reaching a real tmux is not blocked for being unfamiliar. Name `tmux` when the executor really does reach a POSIX tmux server, so a caller asking what it may rely on gets a useful answer."},"source":{"file":"include/libtmux/server.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-executoroptions"},{"id":"libtmux::ExecutorOptions::implementation","publicId":"libtmux::ExecutorOptions::implementation","name":"implementation","kind":"attribute","modifiers":[],"parent":"libtmux::ExecutorOptions","signatures":[],"type":"ServerImplementation","source":{"file":"include/libtmux/server.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-executoroptions-implementation"},{"id":"libtmux::ExecutorOptions::socket_path","publicId":"libtmux::ExecutorOptions::socket_path","name":"socket_path","kind":"attribute","modifiers":[],"parent":"libtmux::ExecutorOptions","signatures":[],"type":"std::string","doc":{"summary":"What `Server::socket_path()` reports.","body":"Informational; the library never resolves it, because the executor has already decided where it is talking."},"source":{"file":"include/libtmux/server.hpp","line":64,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-executoroptions-socket_path"},{"id":"libtmux::ExecutorOptions::version","publicId":"libtmux::ExecutorOptions::version","name":"version","kind":"attribute","modifiers":[],"parent":"libtmux::ExecutorOptions","signatures":[],"type":"std::optional","doc":{"summary":"The tmux this transport speaks to.","body":"Absent asks the executor by running `-V`, which a transport that only speaks tmux subcommands cannot answer — such an executor names the version here instead."},"source":{"file":"include/libtmux/server.hpp","line":68,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-executoroptions-version"},{"id":"libtmux::FilterExpr::BoolTest","publicId":"libtmux::FilterExpr::BoolTest","name":"BoolTest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A flag compared against an expected value."},"source":{"file":"include/libtmux/filter_expr.hpp","line":90,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-booltest"},{"id":"libtmux::FilterExpr::BoolTest::field","publicId":"libtmux::FilterExpr::BoolTest::field","name":"field","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::BoolTest","signatures":[],"type":"BoolField","source":{"file":"include/libtmux/filter_expr.hpp","line":90,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-booltest-field"},{"id":"libtmux::FilterExpr::BoolTest::expected","publicId":"libtmux::FilterExpr::BoolTest::expected","name":"expected","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::BoolTest","signatures":[],"type":"bool","source":{"file":"include/libtmux/filter_expr.hpp","line":91,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-booltest-expected"},{"id":"libtmux::FilterExpr::Group","publicId":"libtmux::FilterExpr::Group","name":"Group","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Several expressions combined, all of them or any of them."},"source":{"file":"include/libtmux/filter_expr.hpp","line":103,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-group"},{"id":"libtmux::FilterExpr::Group::combine","publicId":"libtmux::FilterExpr::Group::combine","name":"combine","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::Group","signatures":[],"type":"Combine","source":{"file":"include/libtmux/filter_expr.hpp","line":103,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-group-combine"},{"id":"libtmux::FilterExpr::Group::operands","publicId":"libtmux::FilterExpr::Group::operands","name":"operands","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::Group","signatures":[],"type":"std::vector","source":{"file":"include/libtmux/filter_expr.hpp","line":104,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-group-operands"},{"id":"libtmux::FilterExpr::Negation","publicId":"libtmux::FilterExpr::Negation","name":"Negation","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"One expression inverted.","body":"Held indirectly because a node cannot contain itself by value."},"source":{"file":"include/libtmux/filter_expr.hpp","line":110,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-negation"},{"id":"libtmux::FilterExpr::Negation::operand","publicId":"libtmux::FilterExpr::Negation::operand","name":"operand","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::Negation","signatures":[],"type":"std::unique_ptr","source":{"file":"include/libtmux/filter_expr.hpp","line":110,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-negation-operand"},{"id":"libtmux::FilterExpr::NumberTest","publicId":"libtmux::FilterExpr::NumberTest","name":"NumberTest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A numeric field compared against a number."},"source":{"file":"include/libtmux/filter_expr.hpp","line":96,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-numbertest"},{"id":"libtmux::FilterExpr::NumberTest::field","publicId":"libtmux::FilterExpr::NumberTest::field","name":"field","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::NumberTest","signatures":[],"type":"NumberField","source":{"file":"include/libtmux/filter_expr.hpp","line":96,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-numbertest-field"},{"id":"libtmux::FilterExpr::NumberTest::op","publicId":"libtmux::FilterExpr::NumberTest::op","name":"op","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::NumberTest","signatures":[],"type":"NumberOp","source":{"file":"include/libtmux/filter_expr.hpp","line":97,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-numbertest-op"},{"id":"libtmux::FilterExpr::NumberTest::operand","publicId":"libtmux::FilterExpr::NumberTest::operand","name":"operand","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::NumberTest","signatures":[],"type":"long long","source":{"file":"include/libtmux/filter_expr.hpp","line":98,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-numbertest-operand"},{"id":"libtmux::FilterExpr::RelationTest","publicId":"libtmux::FilterExpr::RelationTest","name":"RelationTest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A relation crosses to another entity type, so its child expression cannot live in this variant.","body":"The node keeps the relation name and quantifier for inspection and owns the evaluation by value."},"source":{"file":"include/libtmux/filter_expr.hpp","line":117,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-relationtest"},{"id":"libtmux::FilterExpr::RelationTest::relation","publicId":"libtmux::FilterExpr::RelationTest::relation","name":"relation","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::RelationTest","signatures":[],"type":"std::string","source":{"file":"include/libtmux/filter_expr.hpp","line":117,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-relationtest-relation"},{"id":"libtmux::FilterExpr::RelationTest::quantifier","publicId":"libtmux::FilterExpr::RelationTest::quantifier","name":"quantifier","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::RelationTest","signatures":[],"type":"int","source":{"file":"include/libtmux/filter_expr.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-relationtest-quantifier"},{"id":"libtmux::FilterExpr::RelationTest::evaluate","publicId":"libtmux::FilterExpr::RelationTest::evaluate","name":"evaluate","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::RelationTest","signatures":[],"type":"std::function","source":{"file":"include/libtmux/filter_expr.hpp","line":119,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-relationtest-evaluate"},{"id":"libtmux::FilterExpr::RelationTest::child","publicId":"libtmux::FilterExpr::RelationTest::child","name":"child","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::RelationTest","signatures":[],"type":"LoweredExpression","doc":{"summary":"The child compares another entity, so it cannot live in this variant.","body":"Its lowered form can, which is what keeps a relation translatable."},"source":{"file":"include/libtmux/filter_expr.hpp","line":122,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-relationtest-child"},{"id":"libtmux::FilterExpr::StringTest","publicId":"libtmux::FilterExpr::StringTest","name":"StringTest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A text field compared against an operand this node owns."},"source":{"file":"include/libtmux/filter_expr.hpp","line":83,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-stringtest"},{"id":"libtmux::FilterExpr::StringTest::field","publicId":"libtmux::FilterExpr::StringTest::field","name":"field","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::StringTest","signatures":[],"type":"StringField","source":{"file":"include/libtmux/filter_expr.hpp","line":83,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-stringtest-field"},{"id":"libtmux::FilterExpr::StringTest::op","publicId":"libtmux::FilterExpr::StringTest::op","name":"op","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::StringTest","signatures":[],"type":"StringOp","source":{"file":"include/libtmux/filter_expr.hpp","line":84,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-stringtest-op"},{"id":"libtmux::FilterExpr::StringTest::operand","publicId":"libtmux::FilterExpr::StringTest::operand","name":"operand","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::StringTest","signatures":[],"type":"std::string","source":{"file":"include/libtmux/filter_expr.hpp","line":85,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-stringtest-operand"},{"id":"libtmux::LayoutFailure","publicId":"libtmux::LayoutFailure","name":"LayoutFailure","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/layout.hpp","line":19,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-layoutfailure"},{"id":"libtmux::LayoutFailure::index","publicId":"libtmux::LayoutFailure::index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux::LayoutFailure","signatures":[],"type":"std::size_t","doc":{"summary":"Index in the supplied batch, including failures while querying its daemon."},"source":{"file":"include/libtmux/layout.hpp","line":19,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-layoutfailure-index"},{"id":"libtmux::LayoutFailure::cause","publicId":"libtmux::LayoutFailure::cause","name":"cause","kind":"attribute","modifiers":[],"parent":"libtmux::LayoutFailure","signatures":[],"type":"CommandFailure","source":{"file":"include/libtmux/layout.hpp","line":20,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-layoutfailure-cause"},{"id":"libtmux::LayoutRequest","publicId":"libtmux::LayoutRequest","name":"LayoutRequest","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/layout.hpp","line":12,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-layoutrequest"},{"id":"libtmux::LayoutRequest::layout","publicId":"libtmux::LayoutRequest::layout","name":"layout","kind":"attribute","modifiers":[],"parent":"libtmux::LayoutRequest","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/layout.hpp","line":12,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-layoutrequest-layout"},{"id":"libtmux::LayoutRequest::minimum_panes","publicId":"libtmux::LayoutRequest::minimum_panes","name":"minimum_panes","kind":"attribute","modifiers":[],"parent":"libtmux::LayoutRequest","signatures":[],"type":"std::size_t","doc":{"summary":"Planned panes that need cells. Use one when current topology is unknown."},"source":{"file":"include/libtmux/layout.hpp","line":14,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-layoutrequest-minimum_panes"},{"id":"libtmux::LoweredNode","publicId":"libtmux::LoweredNode","name":"LoweredNode","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"One node of a filter after it has been reduced to what tmux's `-f` format language can express."},"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode"},{"id":"libtmux::LoweredNode::Kind","publicId":"libtmux::LoweredNode::Kind","name":"Kind","kind":"enum","modifiers":[],"parent":"libtmux::LoweredNode","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-15co"},{"id":"libtmux::LoweredNode::Kind::string_test","publicId":"libtmux::LoweredNode::Kind::string_test","name":"string_test","kind":"constant","modifiers":[],"parent":"libtmux::LoweredNode::Kind","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-string_test"},{"id":"libtmux::LoweredNode::Kind::bool_test","publicId":"libtmux::LoweredNode::Kind::bool_test","name":"bool_test","kind":"constant","modifiers":[],"parent":"libtmux::LoweredNode::Kind","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-bool_test"},{"id":"libtmux::LoweredNode::Kind::number_test","publicId":"libtmux::LoweredNode::Kind::number_test","name":"number_test","kind":"constant","modifiers":[],"parent":"libtmux::LoweredNode::Kind","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-number_test"},{"id":"libtmux::LoweredNode::Kind::begin_group","publicId":"libtmux::LoweredNode::Kind::begin_group","name":"begin_group","kind":"constant","modifiers":[],"parent":"libtmux::LoweredNode::Kind","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-begin_group"},{"id":"libtmux::LoweredNode::Kind::end_group","publicId":"libtmux::LoweredNode::Kind::end_group","name":"end_group","kind":"constant","modifiers":[],"parent":"libtmux::LoweredNode::Kind","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-end_group"},{"id":"libtmux::LoweredNode::Kind::begin_negation","publicId":"libtmux::LoweredNode::Kind::begin_negation","name":"begin_negation","kind":"constant","modifiers":[],"parent":"libtmux::LoweredNode::Kind","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-begin_negation"},{"id":"libtmux::LoweredNode::Kind::end_negation","publicId":"libtmux::LoweredNode::Kind::end_negation","name":"end_negation","kind":"constant","modifiers":[],"parent":"libtmux::LoweredNode::Kind","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-end_negation"},{"id":"libtmux::LoweredNode::Kind::begin_relation","publicId":"libtmux::LoweredNode::Kind::begin_relation","name":"begin_relation","kind":"constant","modifiers":[],"parent":"libtmux::LoweredNode::Kind","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-begin_relation"},{"id":"libtmux::LoweredNode::Kind::end_relation","publicId":"libtmux::LoweredNode::Kind::end_relation","name":"end_relation","kind":"constant","modifiers":[],"parent":"libtmux::LoweredNode::Kind","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-end_relation"},{"id":"libtmux::LoweredNode::kind","publicId":"libtmux::LoweredNode::kind","name":"kind","kind":"attribute","modifiers":[],"parent":"libtmux::LoweredNode","signatures":[],"type":"Kind","source":{"file":"include/libtmux/lowered_node.hpp","line":34,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-1yl0"},{"id":"libtmux::LoweredNode::name","publicId":"libtmux::LoweredNode::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::LoweredNode","signatures":[],"type":"std::string","doc":{"summary":"Field name for a test, relation name for a relation, empty otherwise."},"source":{"file":"include/libtmux/lowered_node.hpp","line":36,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-name"},{"id":"libtmux::LoweredNode::op","publicId":"libtmux::LoweredNode::op","name":"op","kind":"attribute","modifiers":[],"parent":"libtmux::LoweredNode","signatures":[],"type":"std::string","source":{"file":"include/libtmux/lowered_node.hpp","line":37,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-op"},{"id":"libtmux::LoweredNode::operand","publicId":"libtmux::LoweredNode::operand","name":"operand","kind":"attribute","modifiers":[],"parent":"libtmux::LoweredNode","signatures":[],"type":"std::string","source":{"file":"include/libtmux/lowered_node.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-operand"},{"id":"libtmux::LoweredNode::number","publicId":"libtmux::LoweredNode::number","name":"number","kind":"attribute","modifiers":[],"parent":"libtmux::LoweredNode","signatures":[],"type":"long long","doc":{"summary":"The value a number_test compares against, kept as a number so a future tmux `-f` compiler does not have to parse it back out of the operand."},"source":{"file":"include/libtmux/lowered_node.hpp","line":41,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-number"},{"id":"libtmux::LoweredNode::conjunction","publicId":"libtmux::LoweredNode::conjunction","name":"conjunction","kind":"attribute","modifiers":[],"parent":"libtmux::LoweredNode","signatures":[],"type":"bool","source":{"file":"include/libtmux/lowered_node.hpp","line":42,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-conjunction"},{"id":"libtmux::LoweredNode::expected","publicId":"libtmux::LoweredNode::expected","name":"expected","kind":"attribute","modifiers":[],"parent":"libtmux::LoweredNode","signatures":[],"type":"bool","source":{"file":"include/libtmux/lowered_node.hpp","line":43,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-expected"},{"id":"libtmux::LoweredNode::quantifier","publicId":"libtmux::LoweredNode::quantifier","name":"quantifier","kind":"attribute","modifiers":[],"parent":"libtmux::LoweredNode","signatures":[],"type":"int","source":{"file":"include/libtmux/lowered_node.hpp","line":44,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-quantifier"},{"id":"libtmux::NewSessionOptions","publicId":"libtmux::NewSessionOptions","name":"NewSessionOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"What a new session is created as, including its first window.","body":"tmux always creates a first window, so the fields naming one are not optional in effect — leaving them empty takes tmux's defaults rather than creating nothing.","examples":[{"lang":"console","intro":"Create a detached session. Create a detached session with a named first window, then read back its name and owner. The cat process keeps the first pane alive until fixture cleanup. A fresh listing sees both the fixture session and the new session. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/new-session.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto made = server->new_session(libtmux::NewSessionOptions{\n .name = \"work\",\n .first_window_name = \"main\",\n .shell_command = \"exec cat\",\n });\n if (!made.has_value()) {\n std::fprintf(stderr, \"%s\\n\", made.error().diagnostic.c_str());\n return 1;\n }\n const auto window = made->active_window();\n const auto sessions = server->sessions();\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (made->name() != \"work\" || sessions->size() != 2 || window->name() != \"main\" ||\n window->session_id() != made->id()) {\n std::fputs(\"created session or first window does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"Created work with the main window; two sessions are available.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Created work with the main window; two sessions are available.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":133,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newsessionoptions"},{"id":"libtmux::NewSessionOptions::name","publicId":"libtmux::NewSessionOptions::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::NewSessionOptions","signatures":[],"type":"std::string","source":{"file":"include/libtmux/entities.hpp","line":133,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newsessionoptions-name"},{"id":"libtmux::NewSessionOptions::start_directory","publicId":"libtmux::NewSessionOptions::start_directory","name":"start_directory","kind":"attribute","modifiers":[],"parent":"libtmux::NewSessionOptions","signatures":[],"type":"std::string","source":{"file":"include/libtmux/entities.hpp","line":134,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newsessionoptions-start_directory"},{"id":"libtmux::NewSessionOptions::first_window_name","publicId":"libtmux::NewSessionOptions::first_window_name","name":"first_window_name","kind":"attribute","modifiers":[],"parent":"libtmux::NewSessionOptions","signatures":[],"type":"std::string","doc":{"summary":"The name of the window the session starts with."},"source":{"file":"include/libtmux/entities.hpp","line":136,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newsessionoptions-first_window_name"},{"id":"libtmux::NewSessionOptions::shell_command","publicId":"libtmux::NewSessionOptions::shell_command","name":"shell_command","kind":"attribute","modifiers":[],"parent":"libtmux::NewSessionOptions","signatures":[],"type":"std::string","source":{"file":"include/libtmux/entities.hpp","line":137,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newsessionoptions-shell_command"},{"id":"libtmux::NewSessionOptions::width","publicId":"libtmux::NewSessionOptions::width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux::NewSessionOptions","signatures":[],"type":"std::optional","doc":{"summary":"The size tmux gives the session while no client is attached.","body":"Without it a detached session is 80x24, and a pane that reports its size to a program reports that."},"source":{"file":"include/libtmux/entities.hpp","line":141,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newsessionoptions-width"},{"id":"libtmux::NewSessionOptions::height","publicId":"libtmux::NewSessionOptions::height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux::NewSessionOptions","signatures":[],"type":"std::optional","source":{"file":"include/libtmux/entities.hpp","line":142,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newsessionoptions-height"},{"id":"libtmux::NewSessionOptions::environment","publicId":"libtmux::NewSessionOptions::environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux::NewSessionOptions","signatures":[],"type":"std::vector>","doc":{"summary":"Variables the new process starts with, on top of what tmux passes down.","body":"Pairs rather than `NAME=value` strings: tmux takes a `-e` without an `=` without complaint and creates nothing, so the pair is joined here and a name carrying an `=` is refused where the command is built.\n\nAn empty value sets the variable to empty. It does not remove it."},"source":{"file":"include/libtmux/entities.hpp","line":150,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newsessionoptions-environment"},{"id":"libtmux::NewWindowOptions","publicId":"libtmux::NewWindowOptions","name":"NewWindowOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"What a new window is created as, and where it lands.","body":"Placing a window after the current one shifts the windows above it up, so an index a caller is holding can change.","examples":[{"lang":"console","intro":"Create a window and split a pane. Create a detached window, split it side by side, and verify both panes belong to it. The cat processes keep each pane alive until fixture cleanup. Creation leaves the session selection unchanged because focus defaults to false. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/new-window-pane.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto before = session.active_window();\n if (!before.has_value()) {\n std::fprintf(stderr, \"%s\\n\", before.error().diagnostic.c_str());\n return 1;\n }\n const auto window = session.new_window(\n libtmux::NewWindowOptions{.name = \"editor\", .shell_command = \"exec cat\"});\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n const auto first = window->active_pane();\n if (!first.has_value()) {\n std::fprintf(stderr, \"%s\\n\", first.error().diagnostic.c_str());\n return 1;\n }\n const auto second = first->split(\n libtmux::SplitOptions{.horizontal = true, .shell_command = \"exec cat\"});\n if (!second.has_value()) {\n std::fprintf(stderr, \"%s\\n\", second.error().diagnostic.c_str());\n return 1;\n }\n const auto panes = window->panes();\n const auto after = session.active_window();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (!after.has_value()) {\n std::fprintf(stderr, \"%s\\n\", after.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 2 || *before != *after ||\n first->window_id() != second->window_id() || *first == *second) {\n std::fputs(\"created panes or selection do not match\\n\", stderr);\n return 1;\n }\n std::puts(\"Created editor with two panes; the active window is unchanged.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Created editor with two panes; the active window is unchanged.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":105,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newwindowoptions"},{"id":"libtmux::NewWindowOptions::name","publicId":"libtmux::NewWindowOptions::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::NewWindowOptions","signatures":[],"type":"std::string","source":{"file":"include/libtmux/entities.hpp","line":105,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newwindowoptions-name"},{"id":"libtmux::NewWindowOptions::start_directory","publicId":"libtmux::NewWindowOptions::start_directory","name":"start_directory","kind":"attribute","modifiers":[],"parent":"libtmux::NewWindowOptions","signatures":[],"type":"std::string","source":{"file":"include/libtmux/entities.hpp","line":106,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newwindowoptions-start_directory"},{"id":"libtmux::NewWindowOptions::shell_command","publicId":"libtmux::NewWindowOptions::shell_command","name":"shell_command","kind":"attribute","modifiers":[],"parent":"libtmux::NewWindowOptions","signatures":[],"type":"std::string","source":{"file":"include/libtmux/entities.hpp","line":107,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newwindowoptions-shell_command"},{"id":"libtmux::NewWindowOptions::after_current","publicId":"libtmux::NewWindowOptions::after_current","name":"after_current","kind":"attribute","modifiers":[],"parent":"libtmux::NewWindowOptions","signatures":[],"type":"bool","doc":{"summary":"Immediately after the current window rather than at the end."},"source":{"file":"include/libtmux/entities.hpp","line":109,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newwindowoptions-after_current"},{"id":"libtmux::NewWindowOptions::index","publicId":"libtmux::NewWindowOptions::index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux::NewWindowOptions","signatures":[],"type":"std::optional","doc":{"summary":"Put the window at this index rather than at the next free one.","body":"tmux refuses an index already in use rather than shifting anything, and that refusal is kept: a workspace rebuilt over a running one should say so rather than quietly land somewhere else."},"source":{"file":"include/libtmux/entities.hpp","line":115,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newwindowoptions-index"},{"id":"libtmux::NewWindowOptions::focus","publicId":"libtmux::NewWindowOptions::focus","name":"focus","kind":"attribute","modifiers":[],"parent":"libtmux::NewWindowOptions","signatures":[],"type":"bool","source":{"file":"include/libtmux/entities.hpp","line":116,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newwindowoptions-focus"},{"id":"libtmux::NewWindowOptions::environment","publicId":"libtmux::NewWindowOptions::environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux::NewWindowOptions","signatures":[],"type":"std::vector>","doc":{"summary":"Variables the new process starts with, on top of what tmux passes down.","body":"Pairs rather than `NAME=value` strings: tmux takes a `-e` without an `=` without complaint and creates nothing, so the pair is joined here and a name carrying an `=` is refused where the command is built.\n\nAn empty value sets the variable to empty. It does not remove it."},"source":{"file":"include/libtmux/entities.hpp","line":124,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newwindowoptions-environment"},{"id":"libtmux::Notification","publicId":"libtmux::Notification","name":"Notification","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"One control event tmux sent unprompted, still as bytes.","body":"Kept undecoded because deciding what it is costs a parse a caller may not need — `ParsedNotification` is that parse."},"source":{"file":"include/libtmux/notification.hpp","line":30,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notification"},{"id":"libtmux::Notification::body","publicId":"libtmux::Notification::body","name":"body","kind":"attribute","modifiers":[],"parent":"libtmux::Notification","signatures":[],"type":"std::vector","doc":{"summary":"Compatibility name for one outside-block control event.","body":"Unknown content is not proof that tmux emitted a notification rather than delayed output."},"source":{"file":"include/libtmux/notification.hpp","line":30,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notification-body"},{"id":"libtmux::NumberField","publicId":"libtmux::NumberField","name":"NumberField","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A numeric field on an entity, read as a number rather than as the text tmux sends, so `9` orders before `10`."},"source":{"file":"include/libtmux/filter_expr.hpp","line":69,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberfield"},{"id":"libtmux::NumberField::name","publicId":"libtmux::NumberField::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::NumberField","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/filter_expr.hpp","line":69,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberfield-name"},{"id":"libtmux::NumberField::read","publicId":"libtmux::NumberField::read","name":"read","kind":"attribute","modifiers":[],"parent":"libtmux::NumberField","signatures":[],"type":"long long(*)","source":{"file":"include/libtmux/filter_expr.hpp","line":70,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberfield-read"},{"id":"libtmux::NumberFieldHandle","publicId":"libtmux::NumberFieldHandle","name":"NumberFieldHandle","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"The value a numeric field name resolves to in an expression, whose comparison operators build the node rather than comparing anything."},"source":{"file":"include/libtmux/filter_expr.hpp","line":273,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberfieldhandle"},{"id":"libtmux::NumberFieldHandle::field","publicId":"libtmux::NumberFieldHandle::field","name":"field","kind":"attribute","modifiers":[],"parent":"libtmux::NumberFieldHandle","signatures":[],"type":"NumberField","source":{"file":"include/libtmux/filter_expr.hpp","line":273,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberfieldhandle-field"},{"id":"libtmux::OptionEntry","publicId":"libtmux::OptionEntry","name":"OptionEntry","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"One option as tmux reports it: its name, its value, and the array index it sits at when it is an array option."},"source":{"file":"include/libtmux/options.hpp","line":34,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-optionentry"},{"id":"libtmux::OptionEntry::name","publicId":"libtmux::OptionEntry::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::OptionEntry","signatures":[],"type":"std::string","source":{"file":"include/libtmux/options.hpp","line":34,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-optionentry-name"},{"id":"libtmux::OptionEntry::index","publicId":"libtmux::OptionEntry::index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux::OptionEntry","signatures":[],"type":"std::optional","doc":{"summary":"Present only for array options, which tmux indexes sparsely: absent indexes are genuinely unset rather than empty."},"source":{"file":"include/libtmux/options.hpp","line":37,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-optionentry-index"},{"id":"libtmux::OptionEntry::value","publicId":"libtmux::OptionEntry::value","name":"value","kind":"attribute","modifiers":[],"parent":"libtmux::OptionEntry","signatures":[],"type":"std::string","source":{"file":"include/libtmux/options.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-optionentry-value"},{"id":"libtmux::OptionEntry::inherited","publicId":"libtmux::OptionEntry::inherited","name":"inherited","kind":"attribute","modifiers":[],"parent":"libtmux::OptionEntry","signatures":[],"type":"bool","doc":{"summary":"True when the value comes from a wider scope rather than being set here.","body":"`show-options -A` marks these with a trailing asterisk on the name.\n\ntmux accepts a user option whose name itself ends in an asterisk, and prints `@star* value` for one set here — which is the same shape as `status-position* bottom` for an inherited option. In a listing the two cannot be told apart, and the marker reading wins. Asking for one option by name is exact, because the name asked for settles it."},"source":{"file":"include/libtmux/options.hpp","line":47,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-optionentry-inherited"},{"id":"libtmux::ParsedNotification","publicId":"libtmux::ParsedNotification","name":"ParsedNotification","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A notification's arguments, as views into the notification it was read from.","body":"tmux types its arguments by prefix — `$0` a session, `@1` a window, `%2` a pane — so each lands in the field it belongs to and the others stay empty. `payload` is the pane bytes of an output notification, already unescaped; it is empty for every other kind.\n\n`subscription_changed` is the one kind whose first argument is never an id: it is the subscription's own name (chosen by whoever called `refresh-client -B`), so `text` holds that name and the changed value together — `\" : \"` — once `session`/`window`/`pane` have taken the ids around them.\n\nEverything here borrows. The notification must outlive it, which is why there is no overload taking a temporary."},"source":{"file":"include/libtmux/notification.hpp","line":85,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parsednotification"},{"id":"libtmux::ParsedNotification::kind","publicId":"libtmux::ParsedNotification::kind","name":"kind","kind":"attribute","modifiers":[],"parent":"libtmux::ParsedNotification","signatures":[],"type":"NotificationKind","source":{"file":"include/libtmux/notification.hpp","line":85,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parsednotification-kind"},{"id":"libtmux::ParsedNotification::name","publicId":"libtmux::ParsedNotification::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::ParsedNotification","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/notification.hpp","line":86,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parsednotification-name"},{"id":"libtmux::ParsedNotification::session","publicId":"libtmux::ParsedNotification::session","name":"session","kind":"attribute","modifiers":[],"parent":"libtmux::ParsedNotification","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/notification.hpp","line":87,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parsednotification-session"},{"id":"libtmux::ParsedNotification::window","publicId":"libtmux::ParsedNotification::window","name":"window","kind":"attribute","modifiers":[],"parent":"libtmux::ParsedNotification","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/notification.hpp","line":88,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parsednotification-window"},{"id":"libtmux::ParsedNotification::pane","publicId":"libtmux::ParsedNotification::pane","name":"pane","kind":"attribute","modifiers":[],"parent":"libtmux::ParsedNotification","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/notification.hpp","line":89,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parsednotification-pane"},{"id":"libtmux::ParsedNotification::text","publicId":"libtmux::ParsedNotification::text","name":"text","kind":"attribute","modifiers":[],"parent":"libtmux::ParsedNotification","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/notification.hpp","line":90,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parsednotification-text"},{"id":"libtmux::ParsedNotification::payload","publicId":"libtmux::ParsedNotification::payload","name":"payload","kind":"attribute","modifiers":[],"parent":"libtmux::ParsedNotification","signatures":[],"type":"std::span","source":{"file":"include/libtmux/notification.hpp","line":91,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parsednotification-payload"},{"id":"libtmux::ParsedNotification::age","publicId":"libtmux::ParsedNotification::age","name":"age","kind":"attribute","modifiers":[],"parent":"libtmux::ParsedNotification","signatures":[],"type":"std::optional","doc":{"summary":"Milliseconds this output was behind when tmux wrote it.","body":"Only `extended_output` carries one."},"source":{"file":"include/libtmux/notification.hpp","line":94,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parsednotification-age"},{"id":"libtmux::ProtocolError","publicId":"libtmux::ProtocolError","name":"ProtocolError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Why a control operation stopped.","body":"The stream is terminal after a protocol failure: a caller cannot resynchronise it, only start a new one. `delivery` says whether the affected request was untouched, fully written, answered, or left indeterminate."},"source":{"file":"include/libtmux/control.hpp","line":40,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-protocolerror"},{"id":"libtmux::ProtocolError::message","publicId":"libtmux::ProtocolError::message","name":"message","kind":"attribute","modifiers":[],"parent":"libtmux::ProtocolError","signatures":[],"type":"std::string","source":{"file":"include/libtmux/control.hpp","line":40,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-protocolerror-message"},{"id":"libtmux::ProtocolError::delivery","publicId":"libtmux::ProtocolError::delivery","name":"delivery","kind":"attribute","modifiers":[],"parent":"libtmux::ProtocolError","signatures":[],"type":"DeliveryStatus","source":{"file":"include/libtmux/control.hpp","line":41,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-protocolerror-delivery"},{"id":"libtmux::RespawnOptions","publicId":"libtmux::RespawnOptions","name":"RespawnOptions","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/entities.hpp","line":154,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-respawnoptions"},{"id":"libtmux::RespawnOptions::replace_running","publicId":"libtmux::RespawnOptions::replace_running","name":"replace_running","kind":"attribute","modifiers":[],"parent":"libtmux::RespawnOptions","signatures":[],"type":"bool","source":{"file":"include/libtmux/entities.hpp","line":154,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-respawnoptions-replace_running"},{"id":"libtmux::RespawnOptions::start_directory","publicId":"libtmux::RespawnOptions::start_directory","name":"start_directory","kind":"attribute","modifiers":[],"parent":"libtmux::RespawnOptions","signatures":[],"type":"std::string","doc":{"summary":"Where the configured replacement process starts.","body":"Empty inherits the pane's current directory. The command builder escapes tmux format markers exactly once before this value reaches tmux."},"source":{"file":"include/libtmux/entities.hpp","line":158,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-respawnoptions-start_directory"},{"id":"libtmux::ServerCapabilities","publicId":"libtmux::ServerCapabilities","name":"ServerCapabilities","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"What this server is known to support, decided without asking it.","body":"Every query here is local: the implementation and backend were established once, and answering from them costs no process and cannot fail."},"source":{"file":"include/libtmux/capabilities.hpp","line":120,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-servercapabilities"},{"id":"libtmux::ServerCapabilities::implementation","publicId":"libtmux::ServerCapabilities::implementation","name":"implementation","kind":"attribute","modifiers":[],"parent":"libtmux::ServerCapabilities","signatures":[],"type":"ServerImplementation","source":{"file":"include/libtmux/capabilities.hpp","line":120,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-servercapabilities-implementation"},{"id":"libtmux::ServerCapabilities::backend","publicId":"libtmux::ServerCapabilities::backend","name":"backend","kind":"attribute","modifiers":[],"parent":"libtmux::ServerCapabilities","signatures":[],"type":"BackendKind","source":{"file":"include/libtmux/capabilities.hpp","line":121,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-servercapabilities-backend"},{"id":"libtmux::ServerCapabilities::supports","publicId":"libtmux::ServerCapabilities::supports","name":"supports","kind":"method","modifiers":["readonly"],"parent":"libtmux::ServerCapabilities","signatures":[{"params":[{"name":"feature","type":"ServerFeature"}],"raw":"[[nodiscard]] constexpr bool supports(ServerFeature feature) const noexcept;","returns":"bool"}],"doc":{"summary":"Purely local: this never launches tmux or touches a server."},"source":{"file":"include/libtmux/capabilities.hpp","line":124,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-servercapabilities-supports"},{"id":"libtmux::ServerCapabilities::refuses","publicId":"libtmux::ServerCapabilities::refuses","name":"refuses","kind":"method","modifiers":["readonly"],"parent":"libtmux::ServerCapabilities","signatures":[{"params":[{"name":"feature","type":"ServerFeature"}],"raw":"[[nodiscard]] constexpr bool refuses(ServerFeature feature) const noexcept;","returns":"bool"}],"doc":{"summary":"Whether this implementation is known to get the feature wrong, which is the opposite question from `supports` rather than its negation.","body":"Both answer no for a backend nobody recognises: a caller asking what it may rely on must not be promised anything, and a custom executor running real tmux must not be refused for being unfamiliar."},"source":{"file":"include/libtmux/capabilities.hpp","line":152,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-servercapabilities-refuses"},{"id":"libtmux::SplitOptions","publicId":"libtmux::SplitOptions","name":"SplitOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"What a creation command can be told.","body":"Every field maps to a flag tmux 3.2a already has, and every default is what tmux does when the flag is absent — except focus, which defaults to leaving it where the user put it. A library that moves someone's cursor because it created something is a library people stop calling.\n\nAggregates rather than parameters: a caller writes only the fields it cares about, and a field added later does not renumber anything.","examples":[{"lang":"console","intro":"Create a window and split a pane. Create a detached window, split it side by side, and verify both panes belong to it. The cat processes keep each pane alive until fixture cleanup. Creation leaves the session selection unchanged because focus defaults to false. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.2a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/new-window-pane.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto before = session.active_window();\n if (!before.has_value()) {\n std::fprintf(stderr, \"%s\\n\", before.error().diagnostic.c_str());\n return 1;\n }\n const auto window = session.new_window(\n libtmux::NewWindowOptions{.name = \"editor\", .shell_command = \"exec cat\"});\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n const auto first = window->active_pane();\n if (!first.has_value()) {\n std::fprintf(stderr, \"%s\\n\", first.error().diagnostic.c_str());\n return 1;\n }\n const auto second = first->split(\n libtmux::SplitOptions{.horizontal = true, .shell_command = \"exec cat\"});\n if (!second.has_value()) {\n std::fprintf(stderr, \"%s\\n\", second.error().diagnostic.c_str());\n return 1;\n }\n const auto panes = window->panes();\n const auto after = session.active_window();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (!after.has_value()) {\n std::fprintf(stderr, \"%s\\n\", after.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 2 || *before != *after ||\n first->window_id() != second->window_id() || *first == *second) {\n std::fputs(\"created panes or selection do not match\\n\", stderr);\n return 1;\n }\n std::puts(\"Created editor with two panes; the active window is unchanged.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Created editor with two panes; the active window is unchanged.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":77,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-splitoptions"},{"id":"libtmux::SplitOptions::horizontal","publicId":"libtmux::SplitOptions::horizontal","name":"horizontal","kind":"attribute","modifiers":[],"parent":"libtmux::SplitOptions","signatures":[],"type":"bool","doc":{"summary":"Side by side. tmux stacks by default."},"source":{"file":"include/libtmux/entities.hpp","line":77,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-splitoptions-horizontal"},{"id":"libtmux::SplitOptions::before","publicId":"libtmux::SplitOptions::before","name":"before","kind":"attribute","modifiers":[],"parent":"libtmux::SplitOptions","signatures":[],"type":"bool","doc":{"summary":"Before the target rather than after it."},"source":{"file":"include/libtmux/entities.hpp","line":79,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-splitoptions-before"},{"id":"libtmux::SplitOptions::full_size","publicId":"libtmux::SplitOptions::full_size","name":"full_size","kind":"attribute","modifiers":[],"parent":"libtmux::SplitOptions","signatures":[],"type":"bool","doc":{"summary":"Spanning the full width or height of the window rather than of the pane."},"source":{"file":"include/libtmux/entities.hpp","line":81,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-splitoptions-full_size"},{"id":"libtmux::SplitOptions::start_directory","publicId":"libtmux::SplitOptions::start_directory","name":"start_directory","kind":"attribute","modifiers":[],"parent":"libtmux::SplitOptions","signatures":[],"type":"std::string","doc":{"summary":"Where the new pane starts. Empty inherits from the window."},"source":{"file":"include/libtmux/entities.hpp","line":83,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-splitoptions-start_directory"},{"id":"libtmux::SplitOptions::shell_command","publicId":"libtmux::SplitOptions::shell_command","name":"shell_command","kind":"attribute","modifiers":[],"parent":"libtmux::SplitOptions","signatures":[],"type":"std::string","doc":{"summary":"Run this instead of the default shell."},"source":{"file":"include/libtmux/entities.hpp","line":85,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-splitoptions-shell_command"},{"id":"libtmux::SplitOptions::percentage","publicId":"libtmux::SplitOptions::percentage","name":"percentage","kind":"attribute","modifiers":[],"parent":"libtmux::SplitOptions","signatures":[],"type":"std::optional","doc":{"summary":"Size as a percentage of the space being divided."},"source":{"file":"include/libtmux/entities.hpp","line":87,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-splitoptions-percentage"},{"id":"libtmux::SplitOptions::focus","publicId":"libtmux::SplitOptions::focus","name":"focus","kind":"attribute","modifiers":[],"parent":"libtmux::SplitOptions","signatures":[],"type":"bool","doc":{"summary":"Make the new pane the active one."},"source":{"file":"include/libtmux/entities.hpp","line":89,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-splitoptions-focus"},{"id":"libtmux::SplitOptions::environment","publicId":"libtmux::SplitOptions::environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux::SplitOptions","signatures":[],"type":"std::vector>","doc":{"summary":"Variables the new process starts with, on top of what tmux passes down.","body":"Pairs rather than `NAME=value` strings: tmux takes a `-e` without an `=` without complaint and creates nothing, so the pair is joined here and a name carrying an `=` is refused where the command is built.\n\nAn empty value sets the variable to empty. It does not remove it."},"source":{"file":"include/libtmux/entities.hpp","line":97,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-splitoptions-environment"},{"id":"libtmux::StringField","publicId":"libtmux::StringField","name":"StringField","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A field is a named accessor: the name is what a future tmux-format lowering needs, the accessor is what in-memory evaluation needs.","body":"The two halves are only as consistent as whoever paired them, and nothing in the type system pairs them. A field naming `pane_title` while reading `pane_current_command` evaluates one way in memory and lowers to another, and the built-in handles avoid that only by taking their name from the entity's own `kFields` array rather than spelling it again.\n\nWhich is enough here and not enough everywhere. A caller may build a field however they like and get whatever they built — their process, their predicate. What must not follow is a forged pairing crossing a process boundary, so a document arriving from anywhere else is resolved by name against what this library actually queries, and a name it does not know is refused rather than evaluated to nothing. That check lives with the wire format, in the JSON integration, because it is the boundary that needs it."},"source":{"file":"include/libtmux/filter_expr.hpp","line":54,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringfield"},{"id":"libtmux::StringField::name","publicId":"libtmux::StringField::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::StringField","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/filter_expr.hpp","line":54,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringfield-name"},{"id":"libtmux::StringField::read","publicId":"libtmux::StringField::read","name":"read","kind":"attribute","modifiers":[],"parent":"libtmux::StringField","signatures":[],"type":"std::string_view(*)","source":{"file":"include/libtmux/filter_expr.hpp","line":55,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringfield-read"},{"id":"libtmux::StringFieldHandle","publicId":"libtmux::StringFieldHandle","name":"StringFieldHandle","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A typed field handle.","body":"Only the operations a field's type actually supports are declared, so `pane::active.starts_with(...)` is a compile error rather than a runtime surprise.\n\nA handle also reads a row, so the same name serves as a ranges projection — and a flag handle as a predicate — rather than a lambda that spells the accessor a second time. `sort(panes, {}, pane::index)` then orders by the number tmux rendered, where projecting the text puts `%10` before `%9`."},"source":{"file":"include/libtmux/filter_expr.hpp","line":241,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringfieldhandle"},{"id":"libtmux::StringFieldHandle::field","publicId":"libtmux::StringFieldHandle::field","name":"field","kind":"attribute","modifiers":[],"parent":"libtmux::StringFieldHandle","signatures":[],"type":"StringField","source":{"file":"include/libtmux/filter_expr.hpp","line":241,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringfieldhandle-field"},{"id":"libtmux::StringFieldHandle::iequals","publicId":"libtmux::StringFieldHandle::iequals","name":"iequals","kind":"method","modifiers":["readonly"],"parent":"libtmux::StringFieldHandle","signatures":[{"params":[{"name":"operand","type":"std::string_view"}],"raw":"[[nodiscard]] FilterExpr\nlibtmux::StringFieldHandle::iequals(std::string_view operand) const;","returns":"FilterExpr"}],"source":{"file":"include/libtmux/filter_expr.hpp","line":250,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringfieldhandle-iequals"},{"id":"libtmux::StringFieldHandle::contains","publicId":"libtmux::StringFieldHandle::contains","name":"contains","kind":"method","modifiers":["readonly"],"parent":"libtmux::StringFieldHandle","signatures":[{"params":[{"name":"operand","type":"std::string_view"}],"raw":"[[nodiscard]] FilterExpr\nlibtmux::StringFieldHandle::contains(std::string_view operand) const;","returns":"FilterExpr"}],"source":{"file":"include/libtmux/filter_expr.hpp","line":253,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringfieldhandle-contains"},{"id":"libtmux::StringFieldHandle::starts_with","publicId":"libtmux::StringFieldHandle::starts_with","name":"starts_with","kind":"method","modifiers":["readonly"],"parent":"libtmux::StringFieldHandle","signatures":[{"params":[{"name":"operand","type":"std::string_view"}],"raw":"[[nodiscard]] FilterExpr\nlibtmux::StringFieldHandle::starts_with(std::string_view operand) const;","returns":"FilterExpr"}],"source":{"file":"include/libtmux/filter_expr.hpp","line":256,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringfieldhandle-starts_with"},{"id":"libtmux::StringFieldHandle::ends_with","publicId":"libtmux::StringFieldHandle::ends_with","name":"ends_with","kind":"method","modifiers":["readonly"],"parent":"libtmux::StringFieldHandle","signatures":[{"params":[{"name":"operand","type":"std::string_view"}],"raw":"[[nodiscard]] FilterExpr\nlibtmux::StringFieldHandle::ends_with(std::string_view operand) const;","returns":"FilterExpr"}],"source":{"file":"include/libtmux/filter_expr.hpp","line":259,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringfieldhandle-ends_with"},{"id":"libtmux::Version","publicId":"libtmux::Version","name":"Version","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A tmux version, ordered so a feature gate can compare against a literal.","body":"tmux marks a development build with a suffix, which orders after the release it follows rather than before it."},"source":{"file":"include/libtmux/version.hpp","line":36,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-version"},{"id":"libtmux::Version::major","publicId":"libtmux::Version::major","name":"major","kind":"attribute","modifiers":[],"parent":"libtmux::Version","signatures":[],"type":"std::uint32_t","source":{"file":"include/libtmux/version.hpp","line":36,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-version-major"},{"id":"libtmux::Version::minor","publicId":"libtmux::Version::minor","name":"minor","kind":"attribute","modifiers":[],"parent":"libtmux::Version","signatures":[],"type":"std::uint32_t","source":{"file":"include/libtmux/version.hpp","line":37,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-version-minor"},{"id":"libtmux::Version::revision","publicId":"libtmux::Version::revision","name":"revision","kind":"attribute","modifiers":[],"parent":"libtmux::Version","signatures":[],"type":"std::uint32_t","doc":{"summary":"0 for a bare release, 1 for `a`, 2 for `b`, and so on.","body":"Psmux's numeric third component occupies this existing slot as the corresponding number."},"source":{"file":"include/libtmux/version.hpp","line":40,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-version-revision"},{"id":"libtmux::Version::prerelease","publicId":"libtmux::Version::prerelease","name":"prerelease","kind":"attribute","modifiers":[],"parent":"libtmux::Version","signatures":[],"type":"bool","doc":{"summary":"A `next-` build precedes the release it leads to; `master` follows every numbered release."},"source":{"file":"include/libtmux/version.hpp","line":43,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-version-prerelease"},{"id":"libtmux::Version::unbounded","publicId":"libtmux::Version::unbounded","name":"unbounded","kind":"attribute","modifiers":[],"parent":"libtmux::Version","signatures":[],"type":"bool","source":{"file":"include/libtmux/version.hpp","line":44,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-version-unbounded"},{"id":"libtmux::WaitOptions","publicId":"libtmux::WaitOptions","name":"WaitOptions","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/wait.hpp","line":65,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitoptions"},{"id":"libtmux::WaitOptions::timeout","publicId":"libtmux::WaitOptions::timeout","name":"timeout","kind":"attribute","modifiers":[],"parent":"libtmux::WaitOptions","signatures":[],"type":"std::chrono::milliseconds","source":{"file":"include/libtmux/wait.hpp","line":65,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitoptions-timeout"},{"id":"libtmux::WaitOptions::sent","publicId":"libtmux::WaitOptions::sent","name":"sent","kind":"attribute","modifiers":[],"parent":"libtmux::WaitOptions","signatures":[],"type":"std::function(std::string_view pane_id)>","doc":{"summary":"Whole input echoes to discount, queried before every match attempt.","body":"The caller retains submitted echoes for this wait's lifetime and drops pending text when an unmodelled edit invalidates it."},"source":{"file":"include/libtmux/wait.hpp","line":69,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitoptions-sent"},{"id":"libtmux::WaitOptions::input_pending","publicId":"libtmux::WaitOptions::input_pending","name":"input_pending","kind":"attribute","modifiers":[],"parent":"libtmux::WaitOptions","signatures":[],"type":"std::function","doc":{"summary":"Read after `sent`.","body":"A submitted line may still be discounted without excluding real output on the cursor row. Absent means `!sent.empty()`."},"source":{"file":"include/libtmux/wait.hpp","line":72,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitoptions-input_pending"},{"id":"libtmux::WaitOptions::match_budget","publicId":"libtmux::WaitOptions::match_budget","name":"match_budget","kind":"attribute","modifiers":[],"parent":"libtmux::WaitOptions","signatures":[],"type":"std::size_t","doc":{"summary":"How much text this wait will search before giving up.","body":"A pane that prints faster than the search can read it would otherwise spin until the deadline; this reports instead. Counted across every capture, not per capture."},"source":{"file":"include/libtmux/wait.hpp","line":77,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitoptions-match_budget"},{"id":"libtmux::WaitOptions::poll_interval","publicId":"libtmux::WaitOptions::poll_interval","name":"poll_interval","kind":"attribute","modifiers":[],"parent":"libtmux::WaitOptions","signatures":[],"type":"std::chrono::milliseconds","doc":{"summary":"How long the fallback waits between captures, and the longest the event path blocks before checking the deadline and cancellation."},"source":{"file":"include/libtmux/wait.hpp","line":80,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitoptions-poll_interval"},{"id":"libtmux::WaitOptions::cancelled","publicId":"libtmux::WaitOptions::cancelled","name":"cancelled","kind":"attribute","modifiers":[],"parent":"libtmux::WaitOptions","signatures":[],"type":"std::function","doc":{"summary":"Whether the caller has given up.","body":"Polled rather than a `std::stop_token` because the loop already wakes on `poll_interval` and most callers have a flag rather than a token; a token adapts in one line — `[stop] { return stop.stop_requested(); }` — while the reverse would cost the caller a thread. A cancelled wait answers `FailureKind::cancelled`."},"source":{"file":"include/libtmux/wait.hpp","line":86,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitoptions-cancelled"},{"id":"libtmux::WaitOptions::on_progress","publicId":"libtmux::WaitOptions::on_progress","name":"on_progress","kind":"attribute","modifiers":[],"parent":"libtmux::WaitOptions","signatures":[],"type":"std::function","doc":{"summary":"Called at most once per second while the wait runs, with how long it has been waiting and how it is currently waiting.","body":"For a caller forwarding progress to somebody else; the wait does not need it."},"source":{"file":"include/libtmux/wait.hpp","line":90,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitoptions-on_progress"},{"id":"libtmux::WaitOptions::observe_control_client","publicId":"libtmux::WaitOptions::observe_control_client","name":"observe_control_client","kind":"attribute","modifiers":[],"parent":"libtmux::WaitOptions","signatures":[],"type":"std::function(std::int64_t pid)>","doc":{"summary":"Called with the control client's process id when the wait opens one, and expected to answer a guard that the wait holds until it closes that connection.","body":"A caller that reports on attached clients needs this, or its own observation reads as somebody else being attached."},"source":{"file":"include/libtmux/wait.hpp","line":95,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitoptions-observe_control_client"},{"id":"libtmux::WaitResult","publicId":"libtmux::WaitResult","name":"WaitResult","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/wait.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitresult"},{"id":"libtmux::WaitResult::matched","publicId":"libtmux::WaitResult::matched","name":"matched","kind":"attribute","modifiers":[],"parent":"libtmux::WaitResult","signatures":[],"type":"bool","doc":{"summary":"`text` contains `wanted` as something the pane produced."},"source":{"file":"include/libtmux/wait.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitresult-matched"},{"id":"libtmux::WaitResult::matched_at_entry","publicId":"libtmux::WaitResult::matched_at_entry","name":"matched_at_entry","kind":"attribute","modifiers":[],"parent":"libtmux::WaitResult","signatures":[],"type":"bool","doc":{"summary":"`wanted` was already on screen before the wait began.","body":"True whether or not the wait went on to credit it to the pane, so a caller can tell a fresh line apart from one that was always there."},"source":{"file":"include/libtmux/wait.hpp","line":49,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitresult-matched_at_entry"},{"id":"libtmux::WaitResult::timed_out","publicId":"libtmux::WaitResult::timed_out","name":"timed_out","kind":"attribute","modifiers":[],"parent":"libtmux::WaitResult","signatures":[],"type":"bool","source":{"file":"include/libtmux/wait.hpp","line":50,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitresult-timed_out"},{"id":"libtmux::WaitResult::present_unconfirmed","publicId":"libtmux::WaitResult::present_unconfirmed","name":"present_unconfirmed","kind":"attribute","modifiers":[],"parent":"libtmux::WaitResult","signatures":[],"type":"bool","doc":{"summary":"`wanted` is on screen, but every occurrence of it is text the caller itself sent — so the pane has not produced it, and this is not a match.","body":"Distinct from a silent timeout, where `wanted` never appeared at all."},"source":{"file":"include/libtmux/wait.hpp","line":54,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitresult-present_unconfirmed"},{"id":"libtmux::WaitResult::elapsed","publicId":"libtmux::WaitResult::elapsed","name":"elapsed","kind":"attribute","modifiers":[],"parent":"libtmux::WaitResult","signatures":[],"type":"std::chrono::milliseconds","source":{"file":"include/libtmux/wait.hpp","line":55,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitresult-elapsed"},{"id":"libtmux::WaitResult::path","publicId":"libtmux::WaitResult::path","name":"path","kind":"attribute","modifiers":[],"parent":"libtmux::WaitResult","signatures":[],"type":"WaitPath","source":{"file":"include/libtmux/wait.hpp","line":56,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitresult-path"},{"id":"libtmux::WaitResult::pane_id","publicId":"libtmux::WaitResult::pane_id","name":"pane_id","kind":"attribute","modifiers":[],"parent":"libtmux::WaitResult","signatures":[],"type":"std::string","doc":{"summary":"The pane that was waited on.","body":"Empty only when the target never resolved, which the schema of a caller reporting this must allow for."},"source":{"file":"include/libtmux/wait.hpp","line":59,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitresult-pane_id"},{"id":"libtmux::WaitResult::text","publicId":"libtmux::WaitResult::text","name":"text","kind":"attribute","modifiers":[],"parent":"libtmux::WaitResult","signatures":[],"type":"std::string","doc":{"summary":"The last capture taken, matched or not."},"source":{"file":"include/libtmux/wait.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitresult-text"},{"id":"libtmux::test::ScopedTmuxServerOptions","publicId":"libtmux::test::ScopedTmuxServerOptions","name":"ScopedTmuxServerOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"How the test server is started and how long teardown may take.","body":"Every member carries an initializer on purpose; see the note on the last one."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":60,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserveroptions"},{"id":"libtmux::test::ScopedTmuxServerOptions::tmux_binary","publicId":"libtmux::test::ScopedTmuxServerOptions::tmux_binary","name":"tmux_binary","kind":"attribute","modifiers":[],"parent":"libtmux::test::ScopedTmuxServerOptions","signatures":[],"type":"std::filesystem::path","source":{"file":"include/libtmux/testing/scoped_server.hpp","line":60,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserveroptions-tmux_binary"},{"id":"libtmux::test::ScopedTmuxServerOptions::mode","publicId":"libtmux::test::ScopedTmuxServerOptions::mode","name":"mode","kind":"attribute","modifiers":[],"parent":"libtmux::test::ScopedTmuxServerOptions","signatures":[],"type":"SocketMode","source":{"file":"include/libtmux/testing/scoped_server.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserveroptions-mode"},{"id":"libtmux::test::ScopedTmuxServerOptions::startup_timeout","publicId":"libtmux::test::ScopedTmuxServerOptions::startup_timeout","name":"startup_timeout","kind":"attribute","modifiers":[],"parent":"libtmux::test::ScopedTmuxServerOptions","signatures":[],"type":"std::chrono::milliseconds","source":{"file":"include/libtmux/testing/scoped_server.hpp","line":62,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserveroptions-startup_timeout"},{"id":"libtmux::test::ScopedTmuxServerOptions::teardown_timeout","publicId":"libtmux::test::ScopedTmuxServerOptions::teardown_timeout","name":"teardown_timeout","kind":"attribute","modifiers":[],"parent":"libtmux::test::ScopedTmuxServerOptions","signatures":[],"type":"std::chrono::milliseconds","source":{"file":"include/libtmux/testing/scoped_server.hpp","line":63,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserveroptions-teardown_timeout"},{"id":"libtmux::test::ScopedTmuxServerOptions::session_name","publicId":"libtmux::test::ScopedTmuxServerOptions::session_name","name":"session_name","kind":"attribute","modifiers":[],"parent":"libtmux::test::ScopedTmuxServerOptions","signatures":[],"type":"std::string","source":{"file":"include/libtmux/testing/scoped_server.hpp","line":64,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserveroptions-session_name"},{"id":"libtmux::test::ScopedTmuxServerOptions::socket_namespace","publicId":"libtmux::test::ScopedTmuxServerOptions::socket_namespace","name":"socket_namespace","kind":"attribute","modifiers":[],"parent":"libtmux::test::ScopedTmuxServerOptions","signatures":[],"type":"SocketNamespace","source":{"file":"include/libtmux/testing/scoped_server.hpp","line":65,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserveroptions-socket_namespace"},{"id":"libtmux::test::ScopedTmuxServerOptions::teardown_report","publicId":"libtmux::test::ScopedTmuxServerOptions::teardown_report","name":"teardown_report","kind":"attribute","modifiers":[],"parent":"libtmux::test::ScopedTmuxServerOptions","signatures":[],"type":"std::shared_ptr","doc":{"summary":"Every member has an initializer: without one here, a designated initializer that stops short of it warns under `-Wmissing-field-initializers`."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":69,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserveroptions-teardown_report"},{"id":"libtmux::test::SocketNamespace","publicId":"libtmux::test::SocketNamespace","name":"SocketNamespace","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Names the private tree, the socket and the `tmux -L` name, so concurrent suites cannot collide and a leftover directory identifies its owner.","body":"`label` reaches the socket path, which must fit in `sockaddr_un::sun_path` — 108 bytes on Linux, 104 on macOS. Keep it under about twenty characters: macOS spends roughly sixty of those on `$TMPDIR` alone, once `/var/folders/...` has canonicalised to `/private/var/...`, and tmux spends more again on the directory it puts the socket in. A label that overruns is reported by tmux as \"File name too long\", naming the path.\n\n`start` refuses one containing anything outside `[A-Za-z0-9._-]`."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-socketnamespace"},{"id":"libtmux::test::SocketNamespace::label","publicId":"libtmux::test::SocketNamespace::label","name":"label","kind":"attribute","modifiers":[],"parent":"libtmux::test::SocketNamespace","signatures":[],"type":"std::string","source":{"file":"include/libtmux/testing/scoped_server.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-socketnamespace-label"},{"id":"libtmux::test::SocketNamespace::internal","publicId":"libtmux::test::SocketNamespace::internal","name":"internal","kind":"method","modifiers":["static"],"parent":"libtmux::test::SocketNamespace","signatures":[{"params":[],"raw":"[[nodiscard]] static SocketNamespace internal();","returns":"SocketNamespace"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":47,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-socketnamespace-internal"},{"id":"libtmux::test::SocketNamespace::consumer","publicId":"libtmux::test::SocketNamespace::consumer","name":"consumer","kind":"method","modifiers":["static"],"parent":"libtmux::test::SocketNamespace","signatures":[{"params":[{"name":"suite","type":"std::string_view"}],"raw":"[[nodiscard]] static SocketNamespace consumer(std::string_view suite);","returns":"SocketNamespace"}],"doc":{"summary":"Prefixed, so a consumer's servers are distinguishable from this library's."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":50,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-socketnamespace-consumer"},{"id":"libtmux::test::TeardownReport","publicId":"libtmux::test::TeardownReport","name":"TeardownReport","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"What teardown could not clean up, so a suite can fail loudly rather than leave a server behind quietly."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":30,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-teardownreport"},{"id":"libtmux::test::TeardownReport::messages","publicId":"libtmux::test::TeardownReport::messages","name":"messages","kind":"attribute","modifiers":[],"parent":"libtmux::test::TeardownReport","signatures":[],"type":"std::vector","source":{"file":"include/libtmux/testing/scoped_server.hpp","line":30,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-teardownreport-messages"},{"id":"std::formatter","publicId":"std::formatter","name":"formatter","kind":"struct","modifiers":[],"signatures":[],"extends":["std::formatter"],"source":{"file":"include/libtmux/entities.hpp","line":1341,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-client"},{"id":"std::formatter::format","publicId":"std::formatter::format","name":"format","kind":"method","modifiers":["readonly"],"parent":"std::formatter","signatures":[{"params":[{"name":"value","type":"const libtmux::Client &"},{"name":"context","type":"Context &"}],"typeParams":["typename Context"],"raw":"template \nauto format(const libtmux::Client& value, Context& context) const;","returns":"auto"}],"source":{"file":"include/libtmux/entities.hpp","line":1341,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-client-format"},{"id":"std::formatter","publicId":"std::formatter","name":"formatter","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Formatting a failure is how it reaches a log line, so the type every call can return knows how to write itself.","body":"Inheriting the string formatter keeps fill, alignment and width working, so `{:>40}` pads a failure exactly as it pads its text. `__cpp_lib_format` is deliberately not tested here: libc++ 18 leaves it undefined while `std::format` works, so guarding on it would drop this from the clang lane and keep it on the GCC one."},"extends":["std::formatter"],"source":{"file":"include/libtmux/command.hpp","line":333,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-commandfailure"},{"id":"std::formatter::format","publicId":"std::formatter::format","name":"format","kind":"method","modifiers":["readonly"],"parent":"std::formatter","signatures":[{"params":[{"name":"failure","type":"const libtmux::CommandFailure &"},{"name":"context","type":"Context &"}],"typeParams":["typename Context"],"raw":"template \nauto format(const libtmux::CommandFailure& failure, Context& context) const;","returns":"auto"}],"source":{"file":"include/libtmux/command.hpp","line":333,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-commandfailure-format"},{"id":"std::formatter","publicId":"std::formatter","name":"formatter","kind":"struct","modifiers":[],"signatures":[],"extends":["std::formatter"],"source":{"file":"include/libtmux/entities.hpp","line":1335,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-pane"},{"id":"std::formatter::format","publicId":"std::formatter::format","name":"format","kind":"method","modifiers":["readonly"],"parent":"std::formatter","signatures":[{"params":[{"name":"value","type":"const libtmux::Pane &"},{"name":"context","type":"Context &"}],"typeParams":["typename Context"],"raw":"template \nauto format(const libtmux::Pane& value, Context& context) const;","returns":"auto"}],"source":{"file":"include/libtmux/entities.hpp","line":1335,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-pane-format"},{"id":"std::formatter","publicId":"std::formatter","name":"formatter","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"An entity formats as it prints.","body":"Inheriting the string formatter keeps fill, alignment and width working, so `{:>24}` pads a pane exactly as it pads its text. `__cpp_lib_format` is deliberately not tested: libc++ 18 leaves it undefined while `std::format` works, so guarding on it would drop these from the clang lane and keep them on the GCC one."},"extends":["std::formatter"],"source":{"file":"include/libtmux/entities.hpp","line":1323,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-session"},{"id":"std::formatter::format","publicId":"std::formatter::format","name":"format","kind":"method","modifiers":["readonly"],"parent":"std::formatter","signatures":[{"params":[{"name":"value","type":"const libtmux::Session &"},{"name":"context","type":"Context &"}],"typeParams":["typename Context"],"raw":"template \nauto format(const libtmux::Session& value, Context& context) const;","returns":"auto"}],"source":{"file":"include/libtmux/entities.hpp","line":1323,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-session-format"},{"id":"std::formatter","publicId":"std::formatter","name":"formatter","kind":"struct","modifiers":[],"signatures":[],"extends":["std::formatter"],"source":{"file":"include/libtmux/entities.hpp","line":1329,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-window"},{"id":"std::formatter::format","publicId":"std::formatter::format","name":"format","kind":"method","modifiers":["readonly"],"parent":"std::formatter","signatures":[{"params":[{"name":"value","type":"const libtmux::Window &"},{"name":"context","type":"Context &"}],"typeParams":["typename Context"],"raw":"template \nauto format(const libtmux::Window& value, Context& context) const;","returns":"auto"}],"source":{"file":"include/libtmux/entities.hpp","line":1329,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-window-format"},{"id":"std::hash","publicId":"std::hash","name":"hash","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Hashing a client, on the same terms as its equality."},"source":{"file":"include/libtmux/entities.hpp","line":1311,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-hash-libtmux-client"},{"id":"std::hash","publicId":"std::hash","name":"hash","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Hashing a pane, on the same terms as its equality."},"source":{"file":"include/libtmux/entities.hpp","line":1307,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-hash-libtmux-pane"},{"id":"std::hash","publicId":"std::hash","name":"hash","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Hashing an entity uses exactly what its equality compares, so values from separate listings key an unordered container consistently."},"source":{"file":"include/libtmux/entities.hpp","line":1299,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-hash-libtmux-session"},{"id":"std::hash","publicId":"std::hash","name":"hash","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Hashing a window, on the same terms as its equality."},"source":{"file":"include/libtmux/entities.hpp","line":1303,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-hash-libtmux-window"},{"id":"capabilities.hpp::LIBTMUX_REQUIRES_TMUX","publicId":"capabilities.hpp::LIBTMUX_REQUIRES_TMUX","name":"LIBTMUX_REQUIRES_TMUX","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"Skip unless tmux is at least `major.minor`, naming what is missing below it."},"source":{"file":"include/libtmux/testing/capabilities.hpp","line":20,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"capabilities-hpp-libtmux_requires_tmux"},{"id":"capabilities.hpp::LIBTMUX_SKIP_TMUX_DEFECT","publicId":"capabilities.hpp::LIBTMUX_SKIP_TMUX_DEFECT","name":"LIBTMUX_SKIP_TMUX_DEFECT","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"Skip while tmux is inside a closed range of releases with a known defect.","body":"Both ends are inclusive, and `last` is the newest release still affected — so a fix in 3.6 is written as a window ending at 3.5."},"source":{"file":"include/libtmux/testing/capabilities.hpp","line":35,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"capabilities-hpp-libtmux_skip_tmux_defect"},{"id":"version.hpp::LIBTMUX_VERSION_MAJOR","publicId":"version.hpp::LIBTMUX_VERSION_MAJOR","name":"LIBTMUX_VERSION_MAJOR","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"The same version, available to the preprocessor.","body":"`library_version()` answers what was linked; these answer what was compiled against, which is the question a consumer has to ask before using something that may not exist yet:\n\n`#if LIBTMUX_VERSION_MAJOR > 0 || LIBTMUX_VERSION_MINOR >= 2`\n\nWritten here rather than generated into the build directory, so that `include/libtmux/` stays self-contained for anyone reading or vendoring it without CMake. A test compares `LIBTMUX_VERSION_STRING` against `library_version()`, which the build takes from the `VERSION` file, so the two cannot drift apart unnoticed."},"source":{"file":"include/libtmux/version.hpp","line":174,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"version-hpp-libtmux_version_major"},{"id":"version.hpp::LIBTMUX_VERSION_MINOR","publicId":"version.hpp::LIBTMUX_VERSION_MINOR","name":"LIBTMUX_VERSION_MINOR","kind":"constant","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/version.hpp","line":175,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"version-hpp-libtmux_version_minor"},{"id":"version.hpp::LIBTMUX_VERSION_PATCH","publicId":"version.hpp::LIBTMUX_VERSION_PATCH","name":"LIBTMUX_VERSION_PATCH","kind":"constant","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/version.hpp","line":176,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"version-hpp-libtmux_version_patch"},{"id":"version.hpp::LIBTMUX_VERSION_STRING","publicId":"version.hpp::LIBTMUX_VERSION_STRING","name":"LIBTMUX_VERSION_STRING","kind":"constant","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/version.hpp","line":177,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"version-hpp-libtmux_version_string"},{"id":"libtmux::mcp::ToolRegistry","publicId":"libtmux::mcp::ToolRegistry","name":"ToolRegistry","kind":"class","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":274,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolregistry"},{"id":"libtmux::mcp::ToolRegistry::create","publicId":"libtmux::mcp::ToolRegistry::create","name":"create","kind":"method","modifiers":["static"],"parent":"libtmux::mcp::ToolRegistry","signatures":[{"params":[{"name":"definitions","type":"std::vector"},{"name":"selection","type":"const ToolSelection &"}],"raw":"[[nodiscard]] static libtmux::expected\ncreate(std::vector definitions, const ToolSelection& selection);","returns":"libtmux::expected"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":251,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolregistry-create"},{"id":"libtmux::mcp::ToolRegistry::tools","publicId":"libtmux::mcp::ToolRegistry::tools","name":"tools","kind":"method","modifiers":["readonly"],"parent":"libtmux::mcp::ToolRegistry","signatures":[{"params":[],"raw":"[[nodiscard]] std::span tools() const noexcept;","returns":"std::span"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":253,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolregistry-tools"},{"id":"libtmux::mcp::ToolRegistry::selection","publicId":"libtmux::mcp::ToolRegistry::selection","name":"selection","kind":"method","modifiers":["readonly"],"parent":"libtmux::mcp::ToolRegistry","signatures":[{"params":[],"raw":"[[nodiscard]] const ToolSelection& selection() const noexcept;","returns":"const ToolSelection &"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":254,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolregistry-selection"},{"id":"libtmux::mcp::ToolRegistry::find","publicId":"libtmux::mcp::ToolRegistry::find","name":"find","kind":"method","modifiers":["readonly"],"parent":"libtmux::mcp::ToolRegistry","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] const ToolDefinition* find(std::string_view name) const noexcept;","returns":"const ToolDefinition *"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":255,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolregistry-find"},{"id":"libtmux::mcp::ToolRegistry::find_nested","publicId":"libtmux::mcp::ToolRegistry::find_nested","name":"find_nested","kind":"method","modifiers":["readonly"],"parent":"libtmux::mcp::ToolRegistry","signatures":[{"params":[{"name":"caller","type":"const ToolDefinition &"},{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] const ToolDefinition* find_nested(const ToolDefinition& caller,\n std::string_view name) const noexcept;","returns":"const ToolDefinition *"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":256,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolregistry-find_nested"},{"id":"libtmux::mcp::ToolRegistry::call","publicId":"libtmux::mcp::ToolRegistry::call","name":"call","kind":"method","modifiers":["readonly"],"parent":"libtmux::mcp::ToolRegistry","signatures":[{"params":[{"name":"server","type":"const Server &"},{"name":"name","type":"std::string_view"},{"name":"arguments","type":"const Arguments &"},{"name":"context","type":"const CallContext &","default":"{}"}],"raw":"[[nodiscard]] ToolResult call(const Server& server, std::string_view name,\n const Arguments& arguments,\n const CallContext& context = {}) const;","returns":"ToolResult"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":258,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolregistry-call"},{"id":"libtmux::json_wire::kSchemaVersion","publicId":"libtmux::json_wire::kSchemaVersion","name":"kSchemaVersion","kind":"attribute","modifiers":[],"signatures":[],"type":"int","source":{"file":"apps/mcp/include/libtmux_consumers/filter_json.hpp","line":27,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-json_wire-kschemaversion"},{"id":"libtmux::json_wire::is_known_field","publicId":"libtmux::json_wire::is_known_field","name":"is_known_field","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] bool is_known_field(std::string_view name) noexcept;","returns":"bool"}],"source":{"file":"apps/mcp/include/libtmux_consumers/filter_json.hpp","line":41,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-json_wire-is_known_field"},{"id":"libtmux::json_wire::name_of","publicId":"libtmux::json_wire::name_of","name":"name_of","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"kind","type":"LoweredNode::Kind"}],"raw":"[[nodiscard]] std::string_view name_of(LoweredNode::Kind kind) noexcept;","returns":"std::string_view"}],"source":{"file":"apps/mcp/include/libtmux_consumers/filter_json.hpp","line":56,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-json_wire-name_of"},{"id":"libtmux::json_wire::kind_from","publicId":"libtmux::json_wire::kind_from","name":"kind_from","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] libtmux::expected\nkind_from(std::string_view name);","returns":"libtmux::expected"}],"source":{"file":"apps/mcp/include/libtmux_consumers/filter_json.hpp","line":81,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-json_wire-kind_from"},{"id":"libtmux::json_wire::to_json","publicId":"libtmux::json_wire::to_json","name":"to_json","kind":"function","modifiers":["overload"],"signatures":[{"params":[{"name":"node","type":"const LoweredNode &"}],"raw":"[[nodiscard]] nlohmann::json to_json(const LoweredNode& node);","returns":"nlohmann::json"},{"params":[{"name":"nodes","type":"const LoweredExpression &"}],"raw":"[[nodiscard]] nlohmann::json to_json(const LoweredExpression& nodes);","returns":"nlohmann::json"}],"source":{"file":"apps/mcp/include/libtmux_consumers/filter_json.hpp","line":100,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-json_wire-to_json"},{"id":"libtmux::json_wire::from_json","publicId":"libtmux::json_wire::from_json","name":"from_json","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"document","type":"const nlohmann::json &"}],"raw":"[[nodiscard]] libtmux::expected\nfrom_json(const nlohmann::json& document);","returns":"libtmux::expected"}],"source":{"file":"apps/mcp/include/libtmux_consumers/filter_json.hpp","line":146,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-json_wire-from_json"},{"id":"libtmux::mcp::ArgumentType","publicId":"libtmux::mcp::ArgumentType","name":"ArgumentType","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-argumenttype"},{"id":"libtmux::mcp::ArgumentType::string","publicId":"libtmux::mcp::ArgumentType::string","name":"string","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ArgumentType","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-argumenttype-string"},{"id":"libtmux::mcp::ArgumentType::integer","publicId":"libtmux::mcp::ArgumentType::integer","name":"integer","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ArgumentType","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-argumenttype-integer"},{"id":"libtmux::mcp::ArgumentType::boolean","publicId":"libtmux::mcp::ArgumentType::boolean","name":"boolean","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ArgumentType","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-argumenttype-boolean"},{"id":"libtmux::mcp::ArgumentType::string_array","publicId":"libtmux::mcp::ArgumentType::string_array","name":"string_array","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ArgumentType","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-argumenttype-string_array"},{"id":"libtmux::mcp::ArgumentType::read_calls","publicId":"libtmux::mcp::ArgumentType::read_calls","name":"read_calls","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ArgumentType","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-argumenttype-read_calls"},{"id":"libtmux::mcp::ArgumentType::send_key_operations","publicId":"libtmux::mcp::ArgumentType::send_key_operations","name":"send_key_operations","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ArgumentType","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-argumenttype-send_key_operations"},{"id":"libtmux::mcp::OutputShape","publicId":"libtmux::mcp::OutputShape","name":"OutputShape","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape"},{"id":"libtmux::mcp::OutputShape::overview","publicId":"libtmux::mcp::OutputShape::overview","name":"overview","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-overview"},{"id":"libtmux::mcp::OutputShape::sessions","publicId":"libtmux::mcp::OutputShape::sessions","name":"sessions","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-sessions"},{"id":"libtmux::mcp::OutputShape::windows","publicId":"libtmux::mcp::OutputShape::windows","name":"windows","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-windows"},{"id":"libtmux::mcp::OutputShape::panes","publicId":"libtmux::mcp::OutputShape::panes","name":"panes","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-panes"},{"id":"libtmux::mcp::OutputShape::pane_text","publicId":"libtmux::mcp::OutputShape::pane_text","name":"pane_text","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-pane_text"},{"id":"libtmux::mcp::OutputShape::pane_id","publicId":"libtmux::mcp::OutputShape::pane_id","name":"pane_id","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-pane_id"},{"id":"libtmux::mcp::OutputShape::pane_targets","publicId":"libtmux::mcp::OutputShape::pane_targets","name":"pane_targets","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-pane_targets"},{"id":"libtmux::mcp::OutputShape::session_id","publicId":"libtmux::mcp::OutputShape::session_id","name":"session_id","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-session_id"},{"id":"libtmux::mcp::OutputShape::window_id","publicId":"libtmux::mcp::OutputShape::window_id","name":"window_id","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-window_id"},{"id":"libtmux::mcp::OutputShape::wait","publicId":"libtmux::mcp::OutputShape::wait","name":"wait","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-wait"},{"id":"libtmux::mcp::OutputShape::matches","publicId":"libtmux::mcp::OutputShape::matches","name":"matches","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-matches"},{"id":"libtmux::mcp::OutputShape::object","publicId":"libtmux::mcp::OutputShape::object","name":"object","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-object"},{"id":"libtmux::mcp::Toolset","publicId":"libtmux::mcp::Toolset","name":"Toolset","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":165,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolset"},{"id":"libtmux::mcp::Toolset::inspect","publicId":"libtmux::mcp::Toolset::inspect","name":"inspect","kind":"constant","modifiers":[],"parent":"libtmux::mcp::Toolset","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":165,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolset-inspect"},{"id":"libtmux::mcp::Toolset::manage","publicId":"libtmux::mcp::Toolset::manage","name":"manage","kind":"constant","modifiers":[],"parent":"libtmux::mcp::Toolset","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":165,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolset-manage"},{"id":"libtmux::mcp::Toolset::execute","publicId":"libtmux::mcp::Toolset::execute","name":"execute","kind":"constant","modifiers":[],"parent":"libtmux::mcp::Toolset","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":165,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolset-execute"},{"id":"libtmux::mcp::Toolset::teardown","publicId":"libtmux::mcp::Toolset::teardown","name":"teardown","kind":"constant","modifiers":[],"parent":"libtmux::mcp::Toolset","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":165,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolset-teardown"},{"id":"libtmux::mcp::ProcessReach","publicId":"libtmux::mcp::ProcessReach","name":"ProcessReach","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":167,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-processreach"},{"id":"libtmux::mcp::ProcessReach::none","publicId":"libtmux::mcp::ProcessReach::none","name":"none","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ProcessReach","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":167,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-processreach-none"},{"id":"libtmux::mcp::ProcessReach::configured_process","publicId":"libtmux::mcp::ProcessReach::configured_process","name":"configured_process","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ProcessReach","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":167,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-processreach-configured_process"},{"id":"libtmux::mcp::ProcessReach::pane_input","publicId":"libtmux::mcp::ProcessReach::pane_input","name":"pane_input","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ProcessReach","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":167,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-processreach-pane_input"},{"id":"libtmux::mcp::ProcessReach::pane_command","publicId":"libtmux::mcp::ProcessReach::pane_command","name":"pane_command","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ProcessReach","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":167,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-processreach-pane_command"},{"id":"libtmux::mcp::Effect","publicId":"libtmux::mcp::Effect","name":"Effect","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":174,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-effect"},{"id":"libtmux::mcp::Effect::observe","publicId":"libtmux::mcp::Effect::observe","name":"observe","kind":"constant","modifiers":[],"parent":"libtmux::mcp::Effect","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":174,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-effect-observe"},{"id":"libtmux::mcp::Effect::change","publicId":"libtmux::mcp::Effect::change","name":"change","kind":"constant","modifiers":[],"parent":"libtmux::mcp::Effect","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":174,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-effect-change"},{"id":"libtmux::mcp::Effect::delete_","publicId":"libtmux::mcp::Effect::delete_","name":"delete_","kind":"constant","modifiers":[],"parent":"libtmux::mcp::Effect","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":174,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-effect-delete_"},{"id":"libtmux::mcp::OutputClass","publicId":"libtmux::mcp::OutputClass","name":"OutputClass","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":176,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputclass"},{"id":"libtmux::mcp::OutputClass::tmux_metadata","publicId":"libtmux::mcp::OutputClass::tmux_metadata","name":"tmux_metadata","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputClass","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":176,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputclass-tmux_metadata"},{"id":"libtmux::mcp::OutputClass::terminal_content","publicId":"libtmux::mcp::OutputClass::terminal_content","name":"terminal_content","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputClass","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":176,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputclass-terminal_content"},{"id":"libtmux::mcp::OutputClass::process_environment","publicId":"libtmux::mcp::OutputClass::process_environment","name":"process_environment","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputClass","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":176,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputclass-process_environment"},{"id":"libtmux::mcp::OutputClass::configured_command","publicId":"libtmux::mcp::OutputClass::configured_command","name":"configured_command","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputClass","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":176,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputclass-configured_command"},{"id":"libtmux::mcp::InputSink","publicId":"libtmux::mcp::InputSink","name":"InputSink","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink"},{"id":"libtmux::mcp::InputSink::none","publicId":"libtmux::mcp::InputSink::none","name":"none","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputSink","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink-none"},{"id":"libtmux::mcp::InputSink::tmux_lookup","publicId":"libtmux::mcp::InputSink::tmux_lookup","name":"tmux_lookup","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputSink","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink-tmux_lookup"},{"id":"libtmux::mcp::InputSink::tmux_state","publicId":"libtmux::mcp::InputSink::tmux_state","name":"tmux_state","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputSink","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink-tmux_state"},{"id":"libtmux::mcp::InputSink::pane_input","publicId":"libtmux::mcp::InputSink::pane_input","name":"pane_input","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputSink","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink-pane_input"},{"id":"libtmux::mcp::InputSink::shell_command","publicId":"libtmux::mcp::InputSink::shell_command","name":"shell_command","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputSink","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink-shell_command"},{"id":"libtmux::mcp::InputSink::process_argv","publicId":"libtmux::mcp::InputSink::process_argv","name":"process_argv","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputSink","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink-process_argv"},{"id":"libtmux::mcp::InputSink::regex","publicId":"libtmux::mcp::InputSink::regex","name":"regex","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputSink","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink-regex"},{"id":"libtmux::mcp::InputSink::tmux_format","publicId":"libtmux::mcp::InputSink::tmux_format","name":"tmux_format","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputSink","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink-tmux_format"},{"id":"libtmux::mcp::InputSink::nested_tool","publicId":"libtmux::mcp::InputSink::nested_tool","name":"nested_tool","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputSink","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink-nested_tool"},{"id":"libtmux::mcp::NestedAuthority","publicId":"libtmux::mcp::NestedAuthority","name":"NestedAuthority","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":195,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-nestedauthority"},{"id":"libtmux::mcp::NestedAuthority::none","publicId":"libtmux::mcp::NestedAuthority::none","name":"none","kind":"constant","modifiers":[],"parent":"libtmux::mcp::NestedAuthority","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":195,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-nestedauthority-none"},{"id":"libtmux::mcp::NestedAuthority::controlled","publicId":"libtmux::mcp::NestedAuthority::controlled","name":"controlled","kind":"constant","modifiers":[],"parent":"libtmux::mcp::NestedAuthority","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":195,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-nestedauthority-controlled"},{"id":"libtmux::mcp::NestedAuthority::unrestricted","publicId":"libtmux::mcp::NestedAuthority::unrestricted","name":"unrestricted","kind":"constant","modifiers":[],"parent":"libtmux::mcp::NestedAuthority","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":195,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-nestedauthority-unrestricted"},{"id":"libtmux::mcp::InputControl","publicId":"libtmux::mcp::InputControl","name":"InputControl","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":197,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputcontrol"},{"id":"libtmux::mcp::InputControl::none","publicId":"libtmux::mcp::InputControl::none","name":"none","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputControl","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":197,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputcontrol-none"},{"id":"libtmux::mcp::InputControl::double_hash_once","publicId":"libtmux::mcp::InputControl::double_hash_once","name":"double_hash_once","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputControl","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":197,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputcontrol-double_hash_once"},{"id":"libtmux::mcp::InputControl::validated_variable_name","publicId":"libtmux::mcp::InputControl::validated_variable_name","name":"validated_variable_name","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputControl","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":197,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputcontrol-validated_variable_name"},{"id":"libtmux::mcp::ArgumentMap","publicId":"libtmux::mcp::ArgumentMap","name":"ArgumentMap","kind":"typealias","modifiers":[],"signatures":[],"type":"std::map>","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-argumentmap"},{"id":"libtmux::mcp::ToolResult","publicId":"libtmux::mcp::ToolResult","name":"ToolResult","kind":"typealias","modifiers":[],"signatures":[],"type":"libtmux::expected","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":95,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolresult"},{"id":"libtmux::mcp::Handler","publicId":"libtmux::mcp::Handler","name":"Handler","kind":"typealias","modifiers":[],"signatures":[],"type":"std::function","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":115,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-handler"},{"id":"libtmux::mcp::kConservativeAnnotations","publicId":"libtmux::mcp::kConservativeAnnotations","name":"kConservativeAnnotations","kind":"attribute","modifiers":[],"signatures":[],"type":"ToolAnnotations","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":163,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-kconservativeannotations"},{"id":"libtmux::mcp::parse_tool_selection","publicId":"libtmux::mcp::parse_tool_selection","name":"parse_tool_selection","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"toolsets","type":"std::optional"},{"name":"include","type":"std::optional"},{"name":"exclude","type":"std::optional"},{"name":"teardown_enabled_by_default","type":"bool","default":"true"}],"raw":"[[nodiscard]] libtmux::expected parse_tool_selection(\n std::optional toolsets, std::optional include,\n std::optional exclude, bool teardown_enabled_by_default = true);","returns":"libtmux::expected"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":279,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parse_tool_selection"},{"id":"libtmux::mcp::default_tools","publicId":"libtmux::mcp::default_tools","name":"default_tools","kind":"function","modifiers":["overload"],"signatures":[{"params":[],"raw":"[[nodiscard]] libtmux::expected default_tools();","returns":"libtmux::expected"},{"params":[{"name":"selection","type":"const ToolSelection &"}],"raw":"[[nodiscard]] libtmux::expected\ndefault_tools(const ToolSelection& selection);","returns":"libtmux::expected"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":282,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-default_tools"},{"id":"libtmux::mcp::configured_tools","publicId":"libtmux::mcp::configured_tools","name":"configured_tools","kind":"function","modifiers":["overload"],"signatures":[{"params":[],"raw":"[[nodiscard]] libtmux::expected configured_tools();","returns":"libtmux::expected"},{"params":[{"name":"teardown_enabled_by_default","type":"bool"}],"raw":"[[nodiscard]] libtmux::expected\nconfigured_tools(bool teardown_enabled_by_default);","returns":"libtmux::expected"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":285,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-configured_tools"},{"id":"libtmux::workspace::BuildPhase","publicId":"libtmux::workspace::BuildPhase","name":"BuildPhase","kind":"enum","modifiers":[],"signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildphase"},{"id":"libtmux::workspace::BuildPhase::session_started","publicId":"libtmux::workspace::BuildPhase::session_started","name":"session_started","kind":"constant","modifiers":[],"parent":"libtmux::workspace::BuildPhase","signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildphase-session_started"},{"id":"libtmux::workspace::BuildPhase::window_started","publicId":"libtmux::workspace::BuildPhase::window_started","name":"window_started","kind":"constant","modifiers":[],"parent":"libtmux::workspace::BuildPhase","signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildphase-window_started"},{"id":"libtmux::workspace::BuildPhase::pane_started","publicId":"libtmux::workspace::BuildPhase::pane_started","name":"pane_started","kind":"constant","modifiers":[],"parent":"libtmux::workspace::BuildPhase","signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildphase-pane_started"},{"id":"libtmux::workspace::BuildPhase::pane_completed","publicId":"libtmux::workspace::BuildPhase::pane_completed","name":"pane_completed","kind":"constant","modifiers":[],"parent":"libtmux::workspace::BuildPhase","signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildphase-pane_completed"},{"id":"libtmux::workspace::BuildPhase::window_completed","publicId":"libtmux::workspace::BuildPhase::window_completed","name":"window_completed","kind":"constant","modifiers":[],"parent":"libtmux::workspace::BuildPhase","signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildphase-window_completed"},{"id":"libtmux::workspace::BuildPhase::waiting","publicId":"libtmux::workspace::BuildPhase::waiting","name":"waiting","kind":"constant","modifiers":[],"parent":"libtmux::workspace::BuildPhase","signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildphase-waiting"},{"id":"libtmux::workspace::BeforeBuild","publicId":"libtmux::workspace::BeforeBuild","name":"BeforeBuild","kind":"typealias","modifiers":[],"signatures":[],"type":"std::function(const libtmux::Session &)>","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":146,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-beforebuild"},{"id":"libtmux::workspace::BuildObserver","publicId":"libtmux::workspace::BuildObserver","name":"BuildObserver","kind":"typealias","modifiers":[],"signatures":[],"type":"std::function(const BuildEvent &)>","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":166,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildobserver"},{"id":"libtmux::workspace::parse_tmuxp","publicId":"libtmux::workspace::parse_tmuxp","name":"parse_tmuxp","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"document","type":"std::string_view"}],"raw":"[[nodiscard]] libtmux::expected\nparse_tmuxp(std::string_view document);","returns":"libtmux::expected"}],"source":{"file":"examples/workspace/include/libtmux_consumers/tmuxp.hpp","line":39,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-parse_tmuxp"},{"id":"libtmux::workspace::validate_layouts","publicId":"libtmux::workspace::validate_layouts","name":"validate_layouts","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"server","type":"const Server &"},{"name":"description","type":"const Workspace &"}],"raw":"std::optional validate_layouts(const Server& server,\n const Workspace& description);","returns":"std::optional"}],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":169,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-validate_layouts"},{"id":"libtmux::workspace::build","publicId":"libtmux::workspace::build","name":"build","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"server","type":"const Server &"},{"name":"description","type":"const Workspace &"},{"name":"before","type":"const BeforeBuild &","default":"{}"},{"name":"observer","type":"const BuildObserver &","default":"{}"},{"name":"width","type":"std::optional","default":"std::nullopt"},{"name":"height","type":"std::optional","default":"std::nullopt"}],"raw":"[[nodiscard]] libtmux::expected\nbuild(const Server& server, const Workspace& description,\n const BeforeBuild& before = {}, const BuildObserver& observer = {},\n std::optional width = std::nullopt,\n std::optional height = std::nullopt);","returns":"libtmux::expected"}],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":644,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-build"},{"id":"libtmux::workspace::append","publicId":"libtmux::workspace::append","name":"append","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"session","type":"const libtmux::Session &"},{"name":"description","type":"const Workspace &"},{"name":"before","type":"const BeforeBuild &","default":"{}"},{"name":"observer","type":"const BuildObserver &","default":"{}"}],"raw":"[[nodiscard]] libtmux::expected\nappend(const libtmux::Session& session, const Workspace& description,\n const BeforeBuild& before = {}, const BuildObserver& observer = {});","returns":"libtmux::expected"}],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":655,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-append"},{"id":"libtmux::mcp::Arguments","publicId":"libtmux::mcp::Arguments","name":"Arguments","kind":"struct","modifiers":[],"signatures":[],"extends":["libtmux::mcp::FlatArguments"],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-arguments"},{"id":"libtmux::mcp::Arguments::read_calls","publicId":"libtmux::mcp::Arguments::read_calls","name":"read_calls","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Arguments","signatures":[],"type":"std::vector","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-arguments-read_calls"},{"id":"libtmux::mcp::Arguments::send_key_operations","publicId":"libtmux::mcp::Arguments::send_key_operations","name":"send_key_operations","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Arguments","signatures":[],"type":"std::vector","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":62,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-arguments-send_key_operations"},{"id":"libtmux::mcp::Arguments::Arguments","publicId":"libtmux::mcp::Arguments::Arguments","name":"Arguments","kind":"method","modifiers":["overload"],"parent":"libtmux::mcp::Arguments","signatures":[{"params":[],"raw":"Arguments() = default;"},{"params":[{"name":"values","type":"std::initializer_list>"}],"raw":"Arguments(\n std::initializer_list> values);"},{"params":[{"name":"values","type":"FlatArguments"}],"raw":"explicit Arguments(FlatArguments values);"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":52,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-arguments-arguments"},{"id":"libtmux::mcp::CallContext","publicId":"libtmux::mcp::CallContext","name":"CallContext","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":98,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-callcontext"},{"id":"libtmux::mcp::CallContext::is_cancelled","publicId":"libtmux::mcp::CallContext::is_cancelled","name":"is_cancelled","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::CallContext","signatures":[],"type":"std::function","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":98,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-callcontext-is_cancelled"},{"id":"libtmux::mcp::CallContext::progress","publicId":"libtmux::mcp::CallContext::progress","name":"progress","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::CallContext","signatures":[],"type":"std::function, std::string)>","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":99,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-callcontext-progress"},{"id":"libtmux::mcp::CallContext::call_tool","publicId":"libtmux::mcp::CallContext::call_tool","name":"call_tool","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::CallContext","signatures":[],"type":"std::function","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":100,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-callcontext-call_tool"},{"id":"libtmux::mcp::CallContext::can_call_read_tool","publicId":"libtmux::mcp::CallContext::can_call_read_tool","name":"can_call_read_tool","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::CallContext","signatures":[],"type":"std::function","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":101,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-callcontext-can_call_read_tool"},{"id":"libtmux::mcp::CallContext::cancelled","publicId":"libtmux::mcp::CallContext::cancelled","name":"cancelled","kind":"method","modifiers":["readonly"],"parent":"libtmux::mcp::CallContext","signatures":[{"params":[],"raw":"[[nodiscard]] bool cancelled() const noexcept;","returns":"bool"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":103,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-callcontext-cancelled"},{"id":"libtmux::mcp::CallContext::report","publicId":"libtmux::mcp::CallContext::report","name":"report","kind":"method","modifiers":["readonly"],"parent":"libtmux::mcp::CallContext","signatures":[{"params":[{"name":"completed","type":"double"},{"name":"total","type":"std::optional"},{"name":"message","type":"std::string"}],"raw":"void report(double completed, std::optional total, std::string message) const;","returns":"void"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":107,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-callcontext-report"},{"id":"libtmux::mcp::FlatArguments","publicId":"libtmux::mcp::FlatArguments","name":"FlatArguments","kind":"struct","modifiers":[],"signatures":[],"extends":["std::map>"],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":43,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-flatarguments"},{"id":"libtmux::mcp::FlatArguments::string_arrays","publicId":"libtmux::mcp::FlatArguments::string_arrays","name":"string_arrays","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::FlatArguments","signatures":[],"type":"std::map, std::less<>>","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":43,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-flatarguments-string_arrays"},{"id":"libtmux::mcp::FlatArguments::FlatArguments","publicId":"libtmux::mcp::FlatArguments::FlatArguments","name":"FlatArguments","kind":"method","modifiers":["overload"],"parent":"libtmux::mcp::FlatArguments","signatures":[{"params":[],"raw":"FlatArguments() = default;"},{"params":[{"name":"values","type":"std::initializer_list>"}],"raw":"FlatArguments(\n std::initializer_list> values);"},{"params":[{"name":"values","type":"ArgumentMap"}],"raw":"explicit FlatArguments(ArgumentMap values);"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":34,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-flatarguments-flatarguments"},{"id":"libtmux::mcp::Parameter","publicId":"libtmux::mcp::Parameter","name":"Parameter","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":128,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter"},{"id":"libtmux::mcp::Parameter::name","publicId":"libtmux::mcp::Parameter::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Parameter","signatures":[],"type":"std::string","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":128,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter-name"},{"id":"libtmux::mcp::Parameter::description","publicId":"libtmux::mcp::Parameter::description","name":"description","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Parameter","signatures":[],"type":"std::string","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":129,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter-description"},{"id":"libtmux::mcp::Parameter::type","publicId":"libtmux::mcp::Parameter::type","name":"type","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Parameter","signatures":[],"type":"ArgumentType","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":130,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter-type"},{"id":"libtmux::mcp::Parameter::required","publicId":"libtmux::mcp::Parameter::required","name":"required","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Parameter","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":131,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter-required"},{"id":"libtmux::mcp::Parameter::minimum","publicId":"libtmux::mcp::Parameter::minimum","name":"minimum","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Parameter","signatures":[],"type":"std::optional","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":132,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter-minimum"},{"id":"libtmux::mcp::Parameter::maximum","publicId":"libtmux::mcp::Parameter::maximum","name":"maximum","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Parameter","signatures":[],"type":"std::optional","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":133,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter-maximum"},{"id":"libtmux::mcp::Parameter::maximum_length","publicId":"libtmux::mcp::Parameter::maximum_length","name":"maximum_length","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Parameter","signatures":[],"type":"std::optional","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":134,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter-maximum_length"},{"id":"libtmux::mcp::Parameter::allowed_values","publicId":"libtmux::mcp::Parameter::allowed_values","name":"allowed_values","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Parameter","signatures":[],"type":"std::vector","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":135,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter-allowed_values"},{"id":"libtmux::mcp::Parameter::allow_empty","publicId":"libtmux::mcp::Parameter::allow_empty","name":"allow_empty","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Parameter","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":136,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter-allow_empty"},{"id":"libtmux::mcp::ReadToolCall","publicId":"libtmux::mcp::ReadToolCall","name":"ReadToolCall","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":47,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-readtoolcall"},{"id":"libtmux::mcp::ReadToolCall::tool","publicId":"libtmux::mcp::ReadToolCall::tool","name":"tool","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ReadToolCall","signatures":[],"type":"std::string","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":47,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-readtoolcall-tool"},{"id":"libtmux::mcp::ReadToolCall::arguments","publicId":"libtmux::mcp::ReadToolCall::arguments","name":"arguments","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ReadToolCall","signatures":[],"type":"FlatArguments","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":48,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-readtoolcall-arguments"},{"id":"libtmux::mcp::Sink","publicId":"libtmux::mcp::Sink","name":"Sink","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":204,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sink"},{"id":"libtmux::mcp::Sink::type","publicId":"libtmux::mcp::Sink::type","name":"type","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Sink","signatures":[],"type":"InputSink","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":204,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sink-type"},{"id":"libtmux::mcp::Sink::nested_authority","publicId":"libtmux::mcp::Sink::nested_authority","name":"nested_authority","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Sink","signatures":[],"type":"NestedAuthority","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":205,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sink-nested_authority"},{"id":"libtmux::mcp::Sink::control","publicId":"libtmux::mcp::Sink::control","name":"control","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Sink","signatures":[],"type":"InputControl","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":206,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sink-control"},{"id":"libtmux::mcp::StructuredValue","publicId":"libtmux::mcp::StructuredValue","name":"StructuredValue","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":71,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-structuredvalue"},{"id":"libtmux::mcp::StructuredValue::Array","publicId":"libtmux::mcp::StructuredValue::Array","name":"Array","kind":"typealias","modifiers":[],"parent":"libtmux::mcp::StructuredValue","signatures":[],"type":"std::vector","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":71,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-structuredvalue-array"},{"id":"libtmux::mcp::StructuredValue::Object","publicId":"libtmux::mcp::StructuredValue::Object","name":"Object","kind":"typealias","modifiers":[],"parent":"libtmux::mcp::StructuredValue","signatures":[],"type":"std::map>","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":72,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-structuredvalue-object"},{"id":"libtmux::mcp::StructuredValue::Storage","publicId":"libtmux::mcp::StructuredValue::Storage","name":"Storage","kind":"typealias","modifiers":[],"parent":"libtmux::mcp::StructuredValue","signatures":[],"type":"std::variant","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":73,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-structuredvalue-storage"},{"id":"libtmux::mcp::StructuredValue::value","publicId":"libtmux::mcp::StructuredValue::value","name":"value","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::StructuredValue","signatures":[],"type":"Storage","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":87,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-structuredvalue-value"},{"id":"libtmux::mcp::StructuredValue::StructuredValue","publicId":"libtmux::mcp::StructuredValue::StructuredValue","name":"StructuredValue","kind":"method","modifiers":["overload"],"parent":"libtmux::mcp::StructuredValue","signatures":[{"params":[],"raw":"StructuredValue();"},{"params":[{"name":"item","type":"bool"}],"raw":"StructuredValue(bool item);"},{"params":[{"name":"item","type":"Integer"}],"typeParams":["std::integral Integer"],"raw":"template \n requires(!std::same_as, bool>)\nStructuredValue(Integer item);"},{"params":[{"name":"item","type":"std::string"}],"raw":"StructuredValue(std::string item);"},{"params":[{"name":"item","type":"std::string_view"}],"raw":"StructuredValue(std::string_view item);"},{"params":[{"name":"item","type":"const char *"}],"raw":"StructuredValue(const char* item);"},{"params":[{"name":"item","type":"Array"}],"raw":"StructuredValue(Array item);"},{"params":[{"name":"item","type":"Object"}],"raw":"StructuredValue(Object item);"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":76,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-structuredvalue-structuredvalue"},{"id":"libtmux::mcp::ToolAnnotations","publicId":"libtmux::mcp::ToolAnnotations","name":"ToolAnnotations","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":155,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolannotations"},{"id":"libtmux::mcp::ToolAnnotations::read_only","publicId":"libtmux::mcp::ToolAnnotations::read_only","name":"read_only","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAnnotations","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":155,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolannotations-read_only"},{"id":"libtmux::mcp::ToolAnnotations::destructive","publicId":"libtmux::mcp::ToolAnnotations::destructive","name":"destructive","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAnnotations","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":156,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolannotations-destructive"},{"id":"libtmux::mcp::ToolAnnotations::idempotent","publicId":"libtmux::mcp::ToolAnnotations::idempotent","name":"idempotent","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAnnotations","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":157,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolannotations-idempotent"},{"id":"libtmux::mcp::ToolAnnotations::open_world","publicId":"libtmux::mcp::ToolAnnotations::open_world","name":"open_world","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAnnotations","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":158,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolannotations-open_world"},{"id":"libtmux::mcp::ToolAuthority","publicId":"libtmux::mcp::ToolAuthority","name":"ToolAuthority","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":212,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolauthority"},{"id":"libtmux::mcp::ToolAuthority::process_reach","publicId":"libtmux::mcp::ToolAuthority::process_reach","name":"process_reach","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAuthority","signatures":[],"type":"ProcessReach","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":212,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolauthority-process_reach"},{"id":"libtmux::mcp::ToolAuthority::effects","publicId":"libtmux::mcp::ToolAuthority::effects","name":"effects","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAuthority","signatures":[],"type":"std::set","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":213,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolauthority-effects"},{"id":"libtmux::mcp::ToolAuthority::output_classes","publicId":"libtmux::mcp::ToolAuthority::output_classes","name":"output_classes","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAuthority","signatures":[],"type":"std::set","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":214,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolauthority-output_classes"},{"id":"libtmux::mcp::ToolAuthority::may_expose_secrets","publicId":"libtmux::mcp::ToolAuthority::may_expose_secrets","name":"may_expose_secrets","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAuthority","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":215,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolauthority-may_expose_secrets"},{"id":"libtmux::mcp::ToolAuthority::may_return_untrusted_content","publicId":"libtmux::mcp::ToolAuthority::may_return_untrusted_content","name":"may_return_untrusted_content","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAuthority","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":216,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolauthority-may_return_untrusted_content"},{"id":"libtmux::mcp::ToolAuthority::amplifies_future_input","publicId":"libtmux::mcp::ToolAuthority::amplifies_future_input","name":"amplifies_future_input","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAuthority","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":217,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolauthority-amplifies_future_input"},{"id":"libtmux::mcp::ToolAuthority::input_sinks","publicId":"libtmux::mcp::ToolAuthority::input_sinks","name":"input_sinks","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAuthority","signatures":[],"type":"std::map, std::less<>>","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":218,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolauthority-input_sinks"},{"id":"libtmux::mcp::ToolAuthority::nested_tools","publicId":"libtmux::mcp::ToolAuthority::nested_tools","name":"nested_tools","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAuthority","signatures":[],"type":"std::set>","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":219,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolauthority-nested_tools"},{"id":"libtmux::mcp::ToolDefinition","publicId":"libtmux::mcp::ToolDefinition","name":"ToolDefinition","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":228,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition"},{"id":"libtmux::mcp::ToolDefinition::name","publicId":"libtmux::mcp::ToolDefinition::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolDefinition","signatures":[],"type":"std::string","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":228,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition-name"},{"id":"libtmux::mcp::ToolDefinition::title","publicId":"libtmux::mcp::ToolDefinition::title","name":"title","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolDefinition","signatures":[],"type":"std::string","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":229,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition-title"},{"id":"libtmux::mcp::ToolDefinition::description","publicId":"libtmux::mcp::ToolDefinition::description","name":"description","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolDefinition","signatures":[],"type":"std::string","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":230,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition-description"},{"id":"libtmux::mcp::ToolDefinition::toolset","publicId":"libtmux::mcp::ToolDefinition::toolset","name":"toolset","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolDefinition","signatures":[],"type":"Toolset","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":231,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition-toolset"},{"id":"libtmux::mcp::ToolDefinition::authority","publicId":"libtmux::mcp::ToolDefinition::authority","name":"authority","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolDefinition","signatures":[],"type":"ToolAuthority","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":232,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition-authority"},{"id":"libtmux::mcp::ToolDefinition::annotations","publicId":"libtmux::mcp::ToolDefinition::annotations","name":"annotations","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolDefinition","signatures":[],"type":"ToolAnnotations","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":233,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition-annotations"},{"id":"libtmux::mcp::ToolDefinition::schema","publicId":"libtmux::mcp::ToolDefinition::schema","name":"schema","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolDefinition","signatures":[],"type":"ToolSchema","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":234,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition-schema"},{"id":"libtmux::mcp::ToolDefinition::handler","publicId":"libtmux::mcp::ToolDefinition::handler","name":"handler","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolDefinition","signatures":[],"type":"Handler","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":235,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition-handler"},{"id":"libtmux::mcp::ToolDefinition::required_names","publicId":"libtmux::mcp::ToolDefinition::required_names","name":"required_names","kind":"method","modifiers":["readonly"],"parent":"libtmux::mcp::ToolDefinition","signatures":[{"params":[],"raw":"[[nodiscard]] std::vector required_names() const;","returns":"std::vector"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":237,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition-required_names"},{"id":"libtmux::mcp::ToolError","publicId":"libtmux::mcp::ToolError","name":"ToolError","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":66,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolerror"},{"id":"libtmux::mcp::ToolError::caller_error","publicId":"libtmux::mcp::ToolError::caller_error","name":"caller_error","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolError","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":66,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolerror-caller_error"},{"id":"libtmux::mcp::ToolError::message","publicId":"libtmux::mcp::ToolError::message","name":"message","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolError","signatures":[],"type":"std::string","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":67,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolerror-message"},{"id":"libtmux::mcp::ToolOutput","publicId":"libtmux::mcp::ToolOutput","name":"ToolOutput","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":91,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooloutput"},{"id":"libtmux::mcp::ToolOutput::structured","publicId":"libtmux::mcp::ToolOutput::structured","name":"structured","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolOutput","signatures":[],"type":"StructuredValue::Object","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":91,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooloutput-structured"},{"id":"libtmux::mcp::ToolOutput::maximum_response_bytes","publicId":"libtmux::mcp::ToolOutput::maximum_response_bytes","name":"maximum_response_bytes","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolOutput","signatures":[],"type":"std::optional","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":92,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooloutput-maximum_response_bytes"},{"id":"libtmux::mcp::ToolSchema","publicId":"libtmux::mcp::ToolSchema","name":"ToolSchema","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":223,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolschema"},{"id":"libtmux::mcp::ToolSchema::input","publicId":"libtmux::mcp::ToolSchema::input","name":"input","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolSchema","signatures":[],"type":"std::vector","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":223,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolschema-input"},{"id":"libtmux::mcp::ToolSchema::output","publicId":"libtmux::mcp::ToolSchema::output","name":"output","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolSchema","signatures":[],"type":"OutputShape","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":224,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolschema-output"},{"id":"libtmux::mcp::ToolSelection","publicId":"libtmux::mcp::ToolSelection","name":"ToolSelection","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":241,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolselection"},{"id":"libtmux::mcp::ToolSelection::toolsets","publicId":"libtmux::mcp::ToolSelection::toolsets","name":"toolsets","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolSelection","signatures":[],"type":"std::set","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":241,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolselection-toolsets"},{"id":"libtmux::mcp::ToolSelection::include","publicId":"libtmux::mcp::ToolSelection::include","name":"include","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolSelection","signatures":[],"type":"std::set>","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":242,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolselection-include"},{"id":"libtmux::mcp::ToolSelection::exclude","publicId":"libtmux::mcp::ToolSelection::exclude","name":"exclude","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolSelection","signatures":[],"type":"std::set>","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":243,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolselection-exclude"},{"id":"libtmux::mcp::ToolSelection::all","publicId":"libtmux::mcp::ToolSelection::all","name":"all","kind":"method","modifiers":["static"],"parent":"libtmux::mcp::ToolSelection","signatures":[{"params":[],"raw":"[[nodiscard]] static ToolSelection all();","returns":"ToolSelection"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":245,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolselection-all"},{"id":"libtmux::workspace::BuildError","publicId":"libtmux::workspace::BuildError","name":"BuildError","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":126,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-builderror"},{"id":"libtmux::workspace::BuildError::window_index","publicId":"libtmux::workspace::BuildError::window_index","name":"window_index","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildError","signatures":[],"type":"std::size_t","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":126,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-builderror-window_index"},{"id":"libtmux::workspace::BuildError::reason","publicId":"libtmux::workspace::BuildError::reason","name":"reason","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildError","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":127,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-builderror-reason"},{"id":"libtmux::workspace::BuildError::retained_windows","publicId":"libtmux::workspace::BuildError::retained_windows","name":"retained_windows","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildError","signatures":[],"type":"std::vector","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":128,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-builderror-retained_windows"},{"id":"libtmux::workspace::BuildEvent","publicId":"libtmux::workspace::BuildEvent","name":"BuildEvent","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":157,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildevent"},{"id":"libtmux::workspace::BuildEvent::phase","publicId":"libtmux::workspace::BuildEvent::phase","name":"phase","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildEvent","signatures":[],"type":"BuildPhase","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":157,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildevent-phase"},{"id":"libtmux::workspace::BuildEvent::window_index","publicId":"libtmux::workspace::BuildEvent::window_index","name":"window_index","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildEvent","signatures":[],"type":"std::size_t","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":158,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildevent-window_index"},{"id":"libtmux::workspace::BuildEvent::pane_index","publicId":"libtmux::workspace::BuildEvent::pane_index","name":"pane_index","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildEvent","signatures":[],"type":"std::size_t","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":159,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildevent-pane_index"},{"id":"libtmux::workspace::BuildEvent::session_id","publicId":"libtmux::workspace::BuildEvent::session_id","name":"session_id","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildEvent","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":161,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildevent-session_id"},{"id":"libtmux::workspace::BuildEvent::window_id","publicId":"libtmux::workspace::BuildEvent::window_id","name":"window_id","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildEvent","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":162,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildevent-window_id"},{"id":"libtmux::workspace::BuildEvent::pane_id","publicId":"libtmux::workspace::BuildEvent::pane_id","name":"pane_id","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildEvent","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":163,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildevent-pane_id"},{"id":"libtmux::workspace::BuildStop","publicId":"libtmux::workspace::BuildStop","name":"BuildStop","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":137,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildstop"},{"id":"libtmux::workspace::BuildStop::reason","publicId":"libtmux::workspace::BuildStop::reason","name":"reason","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildStop","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":137,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildstop-reason"},{"id":"libtmux::workspace::BuildStop::retain","publicId":"libtmux::workspace::BuildStop::retain","name":"retain","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildStop","signatures":[],"type":"bool","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":138,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildstop-retain"},{"id":"libtmux::workspace::BuildStop::BuildStop","publicId":"libtmux::workspace::BuildStop::BuildStop","name":"BuildStop","kind":"method","modifiers":["overload"],"parent":"libtmux::workspace::BuildStop","signatures":[{"params":[{"name":"text","type":"const char *"}],"raw":"BuildStop(const char* text);"},{"params":[{"name":"text","type":"std::string"},{"name":"keep","type":"bool","default":"false"}],"raw":"BuildStop(std::string text, bool keep = false);"}],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildstop-buildstop"},{"id":"libtmux::workspace::Command","publicId":"libtmux::workspace::Command","name":"Command","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-command"},{"id":"libtmux::workspace::Command::text","publicId":"libtmux::workspace::Command::text","name":"text","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Command","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-command-text"},{"id":"libtmux::workspace::Command::enter","publicId":"libtmux::workspace::Command::enter","name":"enter","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Command","signatures":[],"type":"bool","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":47,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-command-enter"},{"id":"libtmux::workspace::Command::pause_before","publicId":"libtmux::workspace::Command::pause_before","name":"pause_before","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Command","signatures":[],"type":"std::chrono::milliseconds","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":51,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-command-pause_before"},{"id":"libtmux::workspace::Command::pause_after","publicId":"libtmux::workspace::Command::pause_after","name":"pause_after","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Command","signatures":[],"type":"std::chrono::milliseconds","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":52,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-command-pause_after"},{"id":"libtmux::workspace::Command::suppress_history","publicId":"libtmux::workspace::Command::suppress_history","name":"suppress_history","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Command","signatures":[],"type":"bool","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":56,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-command-suppress_history"},{"id":"libtmux::workspace::Pane","publicId":"libtmux::workspace::Pane","name":"Pane","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":63,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-pane"},{"id":"libtmux::workspace::Pane::shell_commands","publicId":"libtmux::workspace::Pane::shell_commands","name":"shell_commands","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Pane","signatures":[],"type":"std::vector","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":63,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-pane-shell_commands"},{"id":"libtmux::workspace::Pane::shell","publicId":"libtmux::workspace::Pane::shell","name":"shell","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Pane","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":67,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-pane-shell"},{"id":"libtmux::workspace::Pane::start_directory","publicId":"libtmux::workspace::Pane::start_directory","name":"start_directory","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Pane","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":69,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-pane-start_directory"},{"id":"libtmux::workspace::Pane::focus","publicId":"libtmux::workspace::Pane::focus","name":"focus","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Pane","signatures":[],"type":"bool","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":72,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-pane-focus"},{"id":"libtmux::workspace::Pane::environment","publicId":"libtmux::workspace::Pane::environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Pane","signatures":[],"type":"std::vector>","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":75,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-pane-environment"},{"id":"libtmux::workspace::Pane::environment_overrides","publicId":"libtmux::workspace::Pane::environment_overrides","name":"environment_overrides","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Pane","signatures":[],"type":"bool","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":77,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-pane-environment_overrides"},{"id":"libtmux::workspace::ParseError","publicId":"libtmux::workspace::ParseError","name":"ParseError","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/tmuxp.hpp","line":30,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-parseerror"},{"id":"libtmux::workspace::ParseError::where","publicId":"libtmux::workspace::ParseError::where","name":"where","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::ParseError","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/tmuxp.hpp","line":30,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-parseerror-where"},{"id":"libtmux::workspace::ParseError::reason","publicId":"libtmux::workspace::ParseError::reason","name":"reason","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::ParseError","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/tmuxp.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-parseerror-reason"},{"id":"libtmux::workspace::ParseError::unsupported_key","publicId":"libtmux::workspace::ParseError::unsupported_key","name":"unsupported_key","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::ParseError","signatures":[],"type":"bool","source":{"file":"examples/workspace/include/libtmux_consumers/tmuxp.hpp","line":35,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-parseerror-unsupported_key"},{"id":"libtmux::workspace::Window","publicId":"libtmux::workspace::Window","name":"Window","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":81,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window"},{"id":"libtmux::workspace::Window::name","publicId":"libtmux::workspace::Window::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":81,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-name"},{"id":"libtmux::workspace::Window::layout","publicId":"libtmux::workspace::Window::layout","name":"layout","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":84,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-layout"},{"id":"libtmux::workspace::Window::start_directory","publicId":"libtmux::workspace::Window::start_directory","name":"start_directory","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":85,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-start_directory"},{"id":"libtmux::workspace::Window::options","publicId":"libtmux::workspace::Window::options","name":"options","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"std::vector>","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":90,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-options"},{"id":"libtmux::workspace::Window::options_after","publicId":"libtmux::workspace::Window::options_after","name":"options_after","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"std::vector>","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":94,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-options_after"},{"id":"libtmux::workspace::Window::shell","publicId":"libtmux::workspace::Window::shell","name":"shell","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":96,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-shell"},{"id":"libtmux::workspace::Window::focus","publicId":"libtmux::workspace::Window::focus","name":"focus","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"bool","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":97,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-focus"},{"id":"libtmux::workspace::Window::environment","publicId":"libtmux::workspace::Window::environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"std::vector>","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":100,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-environment"},{"id":"libtmux::workspace::Window::index","publicId":"libtmux::workspace::Window::index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"std::optional","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":102,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-index"},{"id":"libtmux::workspace::Window::panes","publicId":"libtmux::workspace::Window::panes","name":"panes","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"std::vector","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":104,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-panes"},{"id":"libtmux::workspace::Workspace","publicId":"libtmux::workspace::Workspace","name":"Workspace","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":108,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspace"},{"id":"libtmux::workspace::Workspace::session_name","publicId":"libtmux::workspace::Workspace::session_name","name":"session_name","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Workspace","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":108,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspace-session_name"},{"id":"libtmux::workspace::Workspace::start_directory","publicId":"libtmux::workspace::Workspace::start_directory","name":"start_directory","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Workspace","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":109,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspace-start_directory"},{"id":"libtmux::workspace::Workspace::global_options","publicId":"libtmux::workspace::Workspace::global_options","name":"global_options","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Workspace","signatures":[],"type":"std::vector>","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":111,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspace-global_options"},{"id":"libtmux::workspace::Workspace::options","publicId":"libtmux::workspace::Workspace::options","name":"options","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Workspace","signatures":[],"type":"std::vector>","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":112,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspace-options"},{"id":"libtmux::workspace::Workspace::environment","publicId":"libtmux::workspace::Workspace::environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Workspace","signatures":[],"type":"std::vector>","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":115,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspace-environment"},{"id":"libtmux::workspace::Workspace::windows","publicId":"libtmux::workspace::Workspace::windows","name":"windows","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Workspace","signatures":[],"type":"std::vector","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":116,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspace-windows"},{"id":"libtmux::workspace::Workspace::warnings","publicId":"libtmux::workspace::Workspace::warnings","name":"warnings","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Workspace","signatures":[],"type":"std::vector","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":120,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspace-warnings"}],"sources":[{"product":"core","package":"libtmux-cxx","repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","version":"0.1.0-alpha.11"},{"product":"mcp","package":"mcp_tools consumer","repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","version":"0.1.0-alpha.11"},{"product":"workspace","package":"workspace consumer","repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","version":"0.1.0-alpha.11"}],"repo":"libtmux/libtmux-cxx"} +{"port":"cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractor":"@libtmux/api-model@0.0.1 (doxygen)","symbols":[{"id":"abi.hpp::LIBTMUX_ABI_NAMESPACE","publicId":"abi.hpp::LIBTMUX_ABI_NAMESPACE","name":"LIBTMUX_ABI_NAMESPACE","kind":"constant","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/abi.hpp","line":19,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"abi-hpp-libtmux_abi_namespace"},{"id":"abi.hpp::LIBTMUX_NAMESPACE_BEGIN","publicId":"abi.hpp::LIBTMUX_NAMESPACE_BEGIN","name":"LIBTMUX_NAMESPACE_BEGIN","kind":"constant","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/abi.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"abi-hpp-libtmux_namespace_begin"},{"id":"abi.hpp::LIBTMUX_NAMESPACE_END","publicId":"abi.hpp::LIBTMUX_NAMESPACE_END","name":"LIBTMUX_NAMESPACE_END","kind":"constant","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/abi.hpp","line":26,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"abi-hpp-libtmux_namespace_end"},{"id":"libtmux::AttachCommand","publicId":"libtmux::AttachCommand","name":"AttachCommand","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"An attach argv and the private route selecting this server incarnation.","body":"Keep it alive until the client exits; same-process `exec` leaves the route on disk."},"source":{"file":"include/libtmux/entities.hpp","line":370,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-attachcommand"},{"id":"libtmux::AttachCommand::AttachCommand","publicId":"libtmux::AttachCommand::AttachCommand","name":"AttachCommand","kind":"method","modifiers":["overload"],"parent":"libtmux::AttachCommand","signatures":[{"params":[{"name":"const AttachCommand &"}],"raw":"AttachCommand(const AttachCommand&) noexcept;"},{"params":[{"name":"AttachCommand &&"}],"raw":"AttachCommand(AttachCommand&&) noexcept;"}],"source":{"file":"include/libtmux/entities.hpp","line":357,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-attachcommand-attachcommand-epcm"},{"id":"libtmux::AttachCommand::~AttachCommand","publicId":"libtmux::AttachCommand::~AttachCommand","name":"~AttachCommand","kind":"method","modifiers":[],"parent":"libtmux::AttachCommand","signatures":[{"params":[],"raw":"~AttachCommand();"}],"source":{"file":"include/libtmux/entities.hpp","line":361,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-attachcommand-attachcommand-1sg4"},{"id":"libtmux::AttachCommand::argv","publicId":"libtmux::AttachCommand::argv","name":"argv","kind":"method","modifiers":["readonly"],"parent":"libtmux::AttachCommand","signatures":[{"params":[],"raw":"[[nodiscard]] const std::vector& argv() const noexcept;","returns":"const std::vector &"}],"doc":{"summary":"Exec-order arguments; empty after this value is moved from."},"source":{"file":"include/libtmux/entities.hpp","line":364,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-attachcommand-argv"},{"id":"libtmux::Buffer","publicId":"libtmux::Buffer","name":"Buffer","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A named piece of text the server holds, outliving the pane it came from.","body":"tmux's cut buffers are the clipboard between panes: a pane's selection lands in one, and pasting reads one back. They belong to the server, not to any pane, which is why they are listed from it."},"source":{"file":"include/libtmux/entities.hpp","line":985,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer"},{"id":"libtmux::Buffer::kNoun","publicId":"libtmux::Buffer::kNoun","name":"kNoun","kind":"attribute","modifiers":["static"],"parent":"libtmux::Buffer","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/entities.hpp","line":985,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-knoun"},{"id":"libtmux::Buffer::kFields","publicId":"libtmux::Buffer::kFields","name":"kFields","kind":"attribute","modifiers":["static"],"parent":"libtmux::Buffer","signatures":[],"type":"std::array","source":{"file":"include/libtmux/entities.hpp","line":986,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-kfields"},{"id":"libtmux::Buffer::Buffer","publicId":"libtmux::Buffer::Buffer","name":"Buffer","kind":"method","modifiers":[],"parent":"libtmux::Buffer","signatures":[{"params":[{"name":"snapshot","type":"std::shared_ptr"},{"name":"row","type":"std::size_t"}],"raw":"Buffer(std::shared_ptr snapshot, std::size_t row) noexcept;"}],"source":{"file":"include/libtmux/entities.hpp","line":990,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-buffer"},{"id":"libtmux::Buffer::name","publicId":"libtmux::Buffer::name","name":"name","kind":"method","modifiers":["readonly"],"parent":"libtmux::Buffer","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view name() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"Named by the caller, or by tmux as `buffer0` and upward when it is not."},"source":{"file":"include/libtmux/entities.hpp","line":997,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-name-1523"},{"id":"libtmux::Buffer::size","publicId":"libtmux::Buffer::size","name":"size","kind":"method","modifiers":["readonly"],"parent":"libtmux::Buffer","signatures":[{"params":[],"raw":"[[nodiscard]] long long size() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":998,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-size-1dtq"},{"id":"libtmux::Buffer::sample","publicId":"libtmux::Buffer::sample","name":"sample","kind":"method","modifiers":["readonly"],"parent":"libtmux::Buffer","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view sample() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"The opening of the contents, as tmux prints it in a listing.","body":"Truncated, and with control characters rendered — `contents()` reads the bytes."},"source":{"file":"include/libtmux/entities.hpp","line":1001,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-sample-uygj"},{"id":"libtmux::Buffer::created","publicId":"libtmux::Buffer::created","name":"created","kind":"method","modifiers":["readonly"],"parent":"libtmux::Buffer","signatures":[{"params":[],"raw":"[[nodiscard]] std::chrono::sys_seconds created() const noexcept;","returns":"std::chrono::sys_seconds"}],"source":{"file":"include/libtmux/entities.hpp","line":1002,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-created-19rh"},{"id":"libtmux::Buffer::contents","publicId":"libtmux::Buffer::contents","name":"contents","kind":"method","modifiers":["readonly"],"parent":"libtmux::Buffer","signatures":[{"params":[],"raw":"[[nodiscard]] expected contents() const;","returns":"expected"}],"doc":{"summary":"The whole contents.","body":"tmux prints them with no trailing newline, so what comes back is exactly what was put in."},"source":{"file":"include/libtmux/entities.hpp","line":1012,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-contents"},{"id":"libtmux::Buffer::remove","publicId":"libtmux::Buffer::remove","name":"remove","kind":"method","modifiers":["readonly"],"parent":"libtmux::Buffer","signatures":[{"params":[],"raw":"[[nodiscard]] expected remove() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":1013,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-remove"},{"id":"libtmux::Chain","publicId":"libtmux::Chain","name":"Chain","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Several commands built up and sent as one tmux invocation.","body":"tmux runs a chain until a command fails and discards the rest, so the chain is the unit of atomicity a caller gets — and the reply count alone cannot say which command failed."},"source":{"file":"include/libtmux/chain.hpp","line":103,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain"},{"id":"libtmux::Chain::new_session","publicId":"libtmux::Chain::new_session","name":"new_session","kind":"method","modifiers":[],"parent":"libtmux::Chain","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"detached","type":"bool","default":"true"}],"raw":"Chain& new_session(std::string_view name, bool detached = true);","returns":"Chain &"}],"source":{"file":"include/libtmux/chain.hpp","line":32,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain-new_session"},{"id":"libtmux::Chain::new_window","publicId":"libtmux::Chain::new_window","name":"new_window","kind":"method","modifiers":[],"parent":"libtmux::Chain","signatures":[{"params":[{"name":"session","type":"std::string_view"},{"name":"name","type":"std::string_view"}],"raw":"Chain& new_window(std::string_view session, std::string_view name);","returns":"Chain &"}],"source":{"file":"include/libtmux/chain.hpp","line":44,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain-new_window"},{"id":"libtmux::Chain::split_window","publicId":"libtmux::Chain::split_window","name":"split_window","kind":"method","modifiers":[],"parent":"libtmux::Chain","signatures":[{"params":[{"name":"session","type":"std::string_view"},{"name":"window","type":"std::string_view"}],"raw":"Chain& split_window(std::string_view session, std::string_view window);","returns":"Chain &"}],"source":{"file":"include/libtmux/chain.hpp","line":55,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain-split_window"},{"id":"libtmux::Chain::send_text","publicId":"libtmux::Chain::send_text","name":"send_text","kind":"method","modifiers":[],"parent":"libtmux::Chain","signatures":[{"params":[{"name":"target","type":"std::string_view"},{"name":"text","type":"std::string_view"}],"raw":"Chain& send_text(std::string_view target, std::string_view text);","returns":"Chain &"}],"doc":{"summary":"Literal text, never interpreted as key names or formats."},"source":{"file":"include/libtmux/chain.hpp","line":64,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain-send_text"},{"id":"libtmux::Chain::send_key","publicId":"libtmux::Chain::send_key","name":"send_key","kind":"method","modifiers":[],"parent":"libtmux::Chain","signatures":[{"params":[{"name":"target","type":"std::string_view"},{"name":"key","type":"std::string_view"}],"raw":"Chain& send_key(std::string_view target, std::string_view key);","returns":"Chain &"}],"source":{"file":"include/libtmux/chain.hpp","line":74,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain-send_key"},{"id":"libtmux::Chain::command","publicId":"libtmux::Chain::command","name":"command","kind":"method","modifiers":[],"parent":"libtmux::Chain","signatures":[{"params":[{"name":"argv","type":"std::vector"}],"raw":"Chain& command(std::vector argv);","returns":"Chain &"}],"doc":{"summary":"Escape hatch for a command the typed steps do not cover."},"source":{"file":"include/libtmux/chain.hpp","line":82,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain-command"},{"id":"libtmux::Chain::valid","publicId":"libtmux::Chain::valid","name":"valid","kind":"method","modifiers":["readonly"],"parent":"libtmux::Chain","signatures":[{"params":[],"raw":"[[nodiscard]] bool valid() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/chain.hpp","line":84,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain-valid"},{"id":"libtmux::Chain::error","publicId":"libtmux::Chain::error","name":"error","kind":"method","modifiers":["readonly"],"parent":"libtmux::Chain","signatures":[{"params":[],"raw":"[[nodiscard]] const std::string& error() const noexcept;","returns":"const std::string &"}],"source":{"file":"include/libtmux/chain.hpp","line":85,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain-error"},{"id":"libtmux::Chain::batch","publicId":"libtmux::Chain::batch","name":"batch","kind":"method","modifiers":["readonly"],"parent":"libtmux::Chain","signatures":[{"params":[],"raw":"[[nodiscard]] const CommandBatch& batch() const noexcept;","returns":"const CommandBatch &"}],"source":{"file":"include/libtmux/chain.hpp","line":86,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-chain-batch"},{"id":"libtmux::Client","publicId":"libtmux::Client","name":"Client","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One attached client, as one listing saw it.","body":"The shortest-lived of these: a client goes away with its terminal, so a handle outlives what it names more often than the others do. It is named by its tty rather than by an id tmux issues."},"source":{"file":"include/libtmux/entities.hpp","line":1026,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client"},{"id":"libtmux::Client::kNoun","publicId":"libtmux::Client::kNoun","name":"kNoun","kind":"attribute","modifiers":["static"],"parent":"libtmux::Client","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/entities.hpp","line":1026,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-knoun"},{"id":"libtmux::Client::kFields","publicId":"libtmux::Client::kFields","name":"kFields","kind":"attribute","modifiers":["static"],"parent":"libtmux::Client","signatures":[],"type":"std::array","source":{"file":"include/libtmux/entities.hpp","line":1027,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-kfields"},{"id":"libtmux::Client::Client","publicId":"libtmux::Client::Client","name":"Client","kind":"method","modifiers":[],"parent":"libtmux::Client","signatures":[{"params":[{"name":"snapshot","type":"std::shared_ptr"},{"name":"row","type":"std::size_t"}],"raw":"Client(std::shared_ptr snapshot, std::size_t row) noexcept;"}],"source":{"file":"include/libtmux/entities.hpp","line":1036,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-client"},{"id":"libtmux::Client::name","publicId":"libtmux::Client::name","name":"name","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view name() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"A client is named by its terminal path, which is the only stable handle tmux gives; there is no client id format."},"source":{"file":"include/libtmux/entities.hpp","line":1044,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-name-1qid"},{"id":"libtmux::Client::session_name","publicId":"libtmux::Client::session_name","name":"session_name","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view session_name() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":1045,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-session_name-eye9"},{"id":"libtmux::Client::read_only","publicId":"libtmux::Client::read_only","name":"read_only","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] bool read_only() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":1046,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-read_only-15kr"},{"id":"libtmux::Client::tty","publicId":"libtmux::Client::tty","name":"tty","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view tty() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":1047,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-tty-nr7p"},{"id":"libtmux::Client::width","publicId":"libtmux::Client::width","name":"width","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] long long width() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":1048,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-width-s1md"},{"id":"libtmux::Client::height","publicId":"libtmux::Client::height","name":"height","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] long long height() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":1049,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-height-uv1e"},{"id":"libtmux::Client::created","publicId":"libtmux::Client::created","name":"created","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] std::chrono::sys_seconds created() const noexcept;","returns":"std::chrono::sys_seconds"}],"source":{"file":"include/libtmux/entities.hpp","line":1052,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-created-1o78"},{"id":"libtmux::Client::last_activity","publicId":"libtmux::Client::last_activity","name":"last_activity","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] std::chrono::sys_seconds last_activity() const noexcept;","returns":"std::chrono::sys_seconds"}],"source":{"file":"include/libtmux/entities.hpp","line":1055,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-last_activity-1dcv"},{"id":"libtmux::Client::terminal","publicId":"libtmux::Client::terminal","name":"terminal","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view terminal() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":1058,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-terminal-74vc"},{"id":"libtmux::Client::control_mode","publicId":"libtmux::Client::control_mode","name":"control_mode","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] bool control_mode() const noexcept;","returns":"bool"}],"doc":{"summary":"A control-mode client is a program driving tmux, not a terminal."},"source":{"file":"include/libtmux/entities.hpp","line":1060,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-control_mode-1lis"},{"id":"libtmux::Client::pid","publicId":"libtmux::Client::pid","name":"pid","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] long long pid() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":1061,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-pid-4rma"},{"id":"libtmux::Client::active_pane_id","publicId":"libtmux::Client::active_pane_id","name":"active_pane_id","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] PaneId active_pane_id() const noexcept;","returns":"PaneId"}],"doc":{"summary":"The session window's active pane, not independent client-local focus."},"source":{"file":"include/libtmux/entities.hpp","line":1063,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-active_pane_id-p6pw"},{"id":"libtmux::Client::flags","publicId":"libtmux::Client::flags","name":"flags","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view flags() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":1064,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-flags-tyan"},{"id":"libtmux::Client::window_id","publicId":"libtmux::Client::window_id","name":"window_id","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] WindowId window_id() const noexcept;","returns":"WindowId"}],"source":{"file":"include/libtmux/entities.hpp","line":1065,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-window_id-12ou"},{"id":"libtmux::Client::session","publicId":"libtmux::Client::session","name":"session","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] expected session() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":1073,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-session"},{"id":"libtmux::Client::switch_to","publicId":"libtmux::Client::switch_to","name":"switch_to","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[{"name":"session","type":"const Session &"}],"raw":"[[nodiscard]] expected switch_to(const Session& session) const;","returns":"expected"}],"doc":{"summary":"Point this client at another session, leaving it attached."},"source":{"file":"include/libtmux/entities.hpp","line":1076,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-switch_to"},{"id":"libtmux::Client::detach","publicId":"libtmux::Client::detach","name":"detach","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] expected detach() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":1077,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-detach"},{"id":"libtmux::Client::refresh","publicId":"libtmux::Client::refresh","name":"refresh","kind":"method","modifiers":["readonly"],"parent":"libtmux::Client","signatures":[{"params":[],"raw":"[[nodiscard]] expected refresh() const;","returns":"expected"}],"doc":{"summary":"Redraw, and tell tmux the size this client is now, which matters for a control-mode client whose size tmux cannot otherwise observe."},"source":{"file":"include/libtmux/entities.hpp","line":1080,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-refresh"},{"id":"libtmux::Command","publicId":"libtmux::Command","name":"Command","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One command this tmux understands.","body":"The list is how a caller asks what the server can do rather than deducing it from a version string. A build with commands compiled out, or a version between releases, answers for itself."},"source":{"file":"include/libtmux/entities.hpp","line":955,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command"},{"id":"libtmux::Command::kNoun","publicId":"libtmux::Command::kNoun","name":"kNoun","kind":"attribute","modifiers":["static"],"parent":"libtmux::Command","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/entities.hpp","line":955,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command-knoun"},{"id":"libtmux::Command::kFields","publicId":"libtmux::Command::kFields","name":"kFields","kind":"attribute","modifiers":["static"],"parent":"libtmux::Command","signatures":[],"type":"std::array","source":{"file":"include/libtmux/entities.hpp","line":956,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command-kfields"},{"id":"libtmux::Command::Command","publicId":"libtmux::Command::Command","name":"Command","kind":"method","modifiers":[],"parent":"libtmux::Command","signatures":[{"params":[{"name":"snapshot","type":"std::shared_ptr"},{"name":"row","type":"std::size_t"}],"raw":"Command(std::shared_ptr snapshot, std::size_t row) noexcept;"}],"source":{"file":"include/libtmux/entities.hpp","line":960,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command-command"},{"id":"libtmux::Command::name","publicId":"libtmux::Command::name","name":"name","kind":"method","modifiers":["readonly"],"parent":"libtmux::Command","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view name() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":966,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command-name-8ewu"},{"id":"libtmux::Command::alias","publicId":"libtmux::Command::alias","name":"alias","kind":"method","modifiers":["readonly"],"parent":"libtmux::Command","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view alias() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"tmux's short form, such as `lscm` for `list-commands`.","body":"Empty when the command has none."},"source":{"file":"include/libtmux/entities.hpp","line":969,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command-alias-1wor"},{"id":"libtmux::Command::usage","publicId":"libtmux::Command::usage","name":"usage","kind":"method","modifiers":["readonly"],"parent":"libtmux::Command","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view usage() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"The flags and arguments, as tmux prints them in its own help."},"source":{"file":"include/libtmux/entities.hpp","line":971,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command-usage-167k"},{"id":"libtmux::CommandArgument","publicId":"libtmux::CommandArgument","name":"CommandArgument","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One argument, carrying whether any part of it is a secret.","body":"Implicitly constructible from the string types so building a command reads as a list of words; marking a part secret is the deliberate act."},"source":{"file":"include/libtmux/command.hpp","line":169,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandargument"},{"id":"libtmux::CommandArgument::CommandArgument","publicId":"libtmux::CommandArgument::CommandArgument","name":"CommandArgument","kind":"method","modifiers":["overload"],"parent":"libtmux::CommandArgument","signatures":[{"params":[{"name":"value","type":"const char *"}],"raw":"CommandArgument(const char* value);"},{"params":[{"name":"value","type":"std::string"}],"raw":"CommandArgument(std::string value);"},{"params":[{"name":"value","type":"std::string_view"}],"raw":"CommandArgument(std::string_view value);"}],"source":{"file":"include/libtmux/command.hpp","line":131,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandargument-commandargument"},{"id":"libtmux::CommandArgument::value","publicId":"libtmux::CommandArgument::value","name":"value","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandArgument","signatures":[{"params":[],"raw":"[[nodiscard]] const std::string& value() const noexcept;","returns":"const std::string &"}],"source":{"file":"include/libtmux/command.hpp","line":159,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandargument-value"},{"id":"libtmux::CommandArgument::sensitivity","publicId":"libtmux::CommandArgument::sensitivity","name":"sensitivity","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandArgument","signatures":[{"params":[],"raw":"[[nodiscard]] ArgumentSensitivity sensitivity() const noexcept;","returns":"ArgumentSensitivity"}],"source":{"file":"include/libtmux/command.hpp","line":160,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandargument-sensitivity"},{"id":"libtmux::CommandArgument::sensitive_parts","publicId":"libtmux::CommandArgument::sensitive_parts","name":"sensitive_parts","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandArgument","signatures":[{"params":[],"raw":"[[nodiscard]] const std::vector& sensitive_parts() const noexcept;","returns":"const std::vector &"}],"source":{"file":"include/libtmux/command.hpp","line":164,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandargument-sensitive_parts"},{"id":"libtmux::CommandArgument::sensitive","publicId":"libtmux::CommandArgument::sensitive","name":"sensitive","kind":"method","modifiers":["static"],"parent":"libtmux::CommandArgument","signatures":[{"params":[{"name":"value","type":"std::string"}],"raw":"[[nodiscard]] static CommandArgument sensitive(std::string value);","returns":"CommandArgument"}],"source":{"file":"include/libtmux/command.hpp","line":135,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandargument-sensitive"},{"id":"libtmux::CommandArgument::sensitive_range","publicId":"libtmux::CommandArgument::sensitive_range","name":"sensitive_range","kind":"method","modifiers":["static"],"parent":"libtmux::CommandArgument","signatures":[{"params":[{"name":"value","type":"std::string"},{"name":"offset","type":"std::size_t"},{"name":"size","type":"std::size_t"}],"raw":"[[nodiscard]] static CommandArgument\nsensitive_range(std::string value, std::size_t offset, std::size_t size);","returns":"CommandArgument"}],"doc":{"summary":"Keep a composite argument intact on the wire while treating one byte range inside it as sensitive.","body":"An invalid range hides the whole argument."},"source":{"file":"include/libtmux/command.hpp","line":146,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandargument-sensitive_range"},{"id":"libtmux::CommandBatch","publicId":"libtmux::CommandBatch","name":"CommandBatch","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"The argv a chain becomes: commands joined by tmux's separator.","body":"An empty command is rejected rather than emitted, because tmux reads two adjacent separators as the next command's first argument."},"source":{"file":"include/libtmux/batch.hpp","line":67,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandbatch"},{"id":"libtmux::CommandBatch::add","publicId":"libtmux::CommandBatch::add","name":"add","kind":"method","modifiers":[],"parent":"libtmux::CommandBatch","signatures":[{"params":[{"name":"command","type":"CommandRequest"}],"raw":"bool add(CommandRequest command);","returns":"bool"}],"doc":{"summary":"Append one command.","body":"An empty command is rejected rather than emitted, because an empty argv between separators makes tmux read the next command's name as an argument."},"source":{"file":"include/libtmux/batch.hpp","line":34,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandbatch-add"},{"id":"libtmux::CommandBatch::size","publicId":"libtmux::CommandBatch::size","name":"size","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandBatch","signatures":[{"params":[],"raw":"[[nodiscard]] std::size_t size() const noexcept;","returns":"std::size_t"}],"source":{"file":"include/libtmux/batch.hpp","line":42,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandbatch-size"},{"id":"libtmux::CommandBatch::empty","publicId":"libtmux::CommandBatch::empty","name":"empty","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandBatch","signatures":[{"params":[],"raw":"[[nodiscard]] bool empty() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/batch.hpp","line":43,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandbatch-empty"},{"id":"libtmux::CommandBatch::request","publicId":"libtmux::CommandBatch::request","name":"request","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandBatch","signatures":[{"params":[],"raw":"[[nodiscard]] CommandRequest request() const;","returns":"CommandRequest"}],"doc":{"summary":"Render the whole batch as one argv.","body":"A single command renders with no separator, so a batch of one is byte-identical to running it alone."},"source":{"file":"include/libtmux/batch.hpp","line":47,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandbatch-request"},{"id":"libtmux::CommandBatch::argv","publicId":"libtmux::CommandBatch::argv","name":"argv","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandBatch","signatures":[{"params":[],"raw":"[[nodiscard]] std::vector argv() const;","returns":"std::vector"}],"source":{"file":"include/libtmux/batch.hpp","line":60,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandbatch-argv"},{"id":"libtmux::CommandBatch::commands","publicId":"libtmux::CommandBatch::commands","name":"commands","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandBatch","signatures":[{"params":[],"raw":"[[nodiscard]] const std::vector& commands() const noexcept;","returns":"const std::vector &"}],"source":{"file":"include/libtmux/batch.hpp","line":62,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandbatch-commands"},{"id":"libtmux::CommandExecutor","publicId":"libtmux::CommandExecutor","name":"CommandExecutor","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A transport a caller supplies.","body":"`BackendKind::custom` named this possibility from the first release, but nothing implemented it: the interface a backend had to satisfy lived in the library's private headers, so the only reachable transport was the one that launches a subprocess per command. This is the seam that makes the name true.\n\nOne method, deliberately. Everything else a backend does — routing an entity command through its owning psmux session, proving a session belongs, preparing an attach argv — is either psmux's problem or the library's, and freezing it here would make a private arrangement permanent. What a transport owes is an answer to one command; the library supplies the rest and asks this for the tmux version too, by running `-V` through it.\n\n`run` is const and may be called from any thread, because a `Server` is copyable across threads and shares one executor. An implementation that keeps a connection or a buffer synchronises itself.\n\nReturning the command's standard output is the whole contract: a listing answers its rows, a mutation answers whatever tmux printed, and a failure answers `CommandFailure` rather than throwing.\n\nA batch arrives here too, as one request whose argv carries `;` between the grouped commands — there is no second method to implement, but the separators must reach tmux as they are. A transport that interprets or drops them turns one fail-fast group into something else without saying so."},"source":{"file":"include/libtmux/command.hpp","line":305,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandexecutor"},{"id":"libtmux::CommandExecutor::CommandExecutor","publicId":"libtmux::CommandExecutor::CommandExecutor","name":"CommandExecutor","kind":"method","modifiers":["overload"],"parent":"libtmux::CommandExecutor","signatures":[{"params":[],"raw":"CommandExecutor() = default;"},{"params":[{"name":"const CommandExecutor &"}],"raw":"CommandExecutor(const CommandExecutor&) = delete;"},{"params":[{"name":"CommandExecutor &&"}],"raw":"CommandExecutor(CommandExecutor&&) = delete;"}],"source":{"file":"include/libtmux/command.hpp","line":305,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandexecutor-commandexecutor-1clk"},{"id":"libtmux::CommandExecutor::~CommandExecutor","publicId":"libtmux::CommandExecutor::~CommandExecutor","name":"~CommandExecutor","kind":"method","modifiers":[],"parent":"libtmux::CommandExecutor","signatures":[{"params":[],"raw":"virtual ~CommandExecutor() = default;"}],"source":{"file":"include/libtmux/command.hpp","line":310,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandexecutor-commandexecutor-1h4s"},{"id":"libtmux::CommandExecutor::run","publicId":"libtmux::CommandExecutor::run","name":"run","kind":"method","modifiers":["abstract","readonly"],"parent":"libtmux::CommandExecutor","signatures":[{"params":[{"name":"command","type":"const CommandRequest &"},{"name":"timeout","type":"std::optional"},{"name":"output_limit","type":"std::optional"}],"raw":"[[nodiscard]] virtual expected\nrun(const CommandRequest& command, std::optional timeout,\n std::optional output_limit) const = 0;","returns":"expected"}],"doc":{"summary":"Absent timeout means the caller named none; absent limit means the same.","body":"An implementation that cannot bound itself should refuse rather than wait forever, the way every transport here already does."},"source":{"file":"include/libtmux/command.hpp","line":316,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandexecutor-run"},{"id":"libtmux::CommandOperation","publicId":"libtmux::CommandOperation","name":"CommandOperation","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Move-only result handle for one admitted command; its methods are not concurrent.","body":"Destruction releases its result without cancelling the command. It may outlive the runtime without retaining runtime threads."},"source":{"file":"include/libtmux/async.hpp","line":205,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandoperation"},{"id":"libtmux::CommandOperation::CommandOperation","publicId":"libtmux::CommandOperation::CommandOperation","name":"CommandOperation","kind":"method","modifiers":["overload"],"parent":"libtmux::CommandOperation","signatures":[{"params":[{"name":"other","type":"CommandOperation &&"}],"raw":"CommandOperation(CommandOperation&& other) noexcept;"},{"params":[{"name":"const CommandOperation &"}],"raw":"CommandOperation(const CommandOperation&) = delete;"}],"source":{"file":"include/libtmux/async.hpp","line":146,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandoperation-commandoperation-1203"},{"id":"libtmux::CommandOperation::~CommandOperation","publicId":"libtmux::CommandOperation::~CommandOperation","name":"~CommandOperation","kind":"method","modifiers":[],"parent":"libtmux::CommandOperation","signatures":[{"params":[],"raw":"~CommandOperation();"}],"source":{"file":"include/libtmux/async.hpp","line":150,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandoperation-commandoperation-1z0o"},{"id":"libtmux::CommandOperation::wait","publicId":"libtmux::CommandOperation::wait","name":"wait","kind":"method","modifiers":[],"parent":"libtmux::CommandOperation","signatures":[{"params":[],"raw":"[[nodiscard]] expected wait() &&;","returns":"expected"}],"doc":{"summary":"Consumes the same bounded answer `Server::run` gives.","body":"Waiting never dispatches the Server's global observer."},"source":{"file":"include/libtmux/async.hpp","line":154,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandoperation-wait"},{"id":"libtmux::CommandOperation::wait_until","publicId":"libtmux::CommandOperation::wait_until","name":"wait_until","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandOperation","signatures":[{"params":[{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"[[nodiscard]] expected\nwait_until(std::chrono::steady_clock::time_point deadline) const;","returns":"expected"}],"doc":{"summary":"True means the result can be taken; false means only this wait expired.","body":"Neither outcome consumes the handle or changes the command's deadline. A consumed or moved-from handle reports FailureKind::validation."},"source":{"file":"include/libtmux/async.hpp","line":160,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandoperation-wait_until"},{"id":"libtmux::CommandOperation::wait_for","publicId":"libtmux::CommandOperation::wait_for","name":"wait_for","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandOperation","signatures":[{"params":[{"name":"timeout","type":"std::chrono::milliseconds"}],"raw":"[[nodiscard]] expected\nwait_for(std::chrono::milliseconds timeout) const;","returns":"expected"}],"source":{"file":"include/libtmux/async.hpp","line":162,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandoperation-wait_for"},{"id":"libtmux::CommandOperation::detach","publicId":"libtmux::CommandOperation::detach","name":"detach","kind":"method","modifiers":[],"parent":"libtmux::CommandOperation","signatures":[{"params":[],"raw":"void detach() && noexcept;","returns":"void"}],"doc":{"summary":"Releases the result obligation without cancelling the command.","body":"The Server's global observer remains a runtime obligation."},"source":{"file":"include/libtmux/async.hpp","line":195,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandoperation-detach"},{"id":"libtmux::CommandOperation::request_cancel","publicId":"libtmux::CommandOperation::request_cancel","name":"request_cancel","kind":"method","modifiers":[],"parent":"libtmux::CommandOperation","signatures":[{"params":[],"raw":"[[nodiscard]] bool request_cancel();","returns":"bool"}],"doc":{"summary":"Requests withdrawal; false means no live transport cancellation remains.","body":"The eventual result's delivery says whether tmux may have acted."},"source":{"file":"include/libtmux/async.hpp","line":199,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandoperation-request_cancel"},{"id":"libtmux::CommandRequest","publicId":"libtmux::CommandRequest","name":"CommandRequest","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One tmux command as argv, with no shell between it and tmux.","body":"Arguments are passed as separate words, so a value holding a space, a quote or a `;` arrives whole and nothing here needs escaping."},"source":{"file":"include/libtmux/command.hpp","line":213,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandrequest"},{"id":"libtmux::CommandRequest::CommandRequest","publicId":"libtmux::CommandRequest::CommandRequest","name":"CommandRequest","kind":"method","modifiers":["overload"],"parent":"libtmux::CommandRequest","signatures":[{"params":[],"raw":"CommandRequest() = default;"},{"params":[{"name":"arguments","type":"std::initializer_list"}],"raw":"CommandRequest(std::initializer_list arguments);"},{"params":[{"name":"arguments","type":"std::vector"}],"raw":"CommandRequest(std::vector arguments);"}],"source":{"file":"include/libtmux/command.hpp","line":179,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandrequest-commandrequest"},{"id":"libtmux::CommandRequest::empty","publicId":"libtmux::CommandRequest::empty","name":"empty","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandRequest","signatures":[{"params":[],"raw":"[[nodiscard]] bool empty() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/command.hpp","line":189,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandrequest-empty"},{"id":"libtmux::CommandRequest::size","publicId":"libtmux::CommandRequest::size","name":"size","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandRequest","signatures":[{"params":[],"raw":"[[nodiscard]] std::size_t size() const noexcept;","returns":"std::size_t"}],"source":{"file":"include/libtmux/command.hpp","line":190,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandrequest-size"},{"id":"libtmux::CommandRequest::reserve","publicId":"libtmux::CommandRequest::reserve","name":"reserve","kind":"method","modifiers":[],"parent":"libtmux::CommandRequest","signatures":[{"params":[{"name":"size","type":"std::size_t"}],"raw":"void reserve(std::size_t size);","returns":"void"}],"source":{"file":"include/libtmux/command.hpp","line":191,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandrequest-reserve"},{"id":"libtmux::CommandRequest::emplace_back","publicId":"libtmux::CommandRequest::emplace_back","name":"emplace_back","kind":"method","modifiers":["overload"],"parent":"libtmux::CommandRequest","signatures":[{"params":[{"name":"value","type":"const char *"}],"raw":"void emplace_back(const char* value);","returns":"void"},{"params":[{"name":"value","type":"std::string"}],"raw":"void emplace_back(std::string value);","returns":"void"},{"params":[{"name":"value","type":"std::string_view"}],"raw":"void emplace_back(std::string_view value);","returns":"void"}],"source":{"file":"include/libtmux/command.hpp","line":193,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandrequest-emplace_back"},{"id":"libtmux::CommandRequest::push_back","publicId":"libtmux::CommandRequest::push_back","name":"push_back","kind":"method","modifiers":[],"parent":"libtmux::CommandRequest","signatures":[{"params":[{"name":"argument","type":"CommandArgument"}],"raw":"void push_back(CommandArgument argument);","returns":"void"}],"source":{"file":"include/libtmux/command.hpp","line":196,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandrequest-push_back"},{"id":"libtmux::CommandRequest::arguments","publicId":"libtmux::CommandRequest::arguments","name":"arguments","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandRequest","signatures":[{"params":[],"raw":"[[nodiscard]] const std::vector& arguments() const noexcept;","returns":"const std::vector &"}],"source":{"file":"include/libtmux/command.hpp","line":200,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandrequest-arguments"},{"id":"libtmux::CommandRequest::argv","publicId":"libtmux::CommandRequest::argv","name":"argv","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandRequest","signatures":[{"params":[],"raw":"[[nodiscard]] std::vector argv() const;","returns":"std::vector"}],"source":{"file":"include/libtmux/command.hpp","line":203,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandrequest-argv"},{"id":"libtmux::CommandRuntime","publicId":"libtmux::CommandRuntime","name":"CommandRuntime","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Move-only owner of the transport threads, admission bound, and observations.","body":"Runtime operations, including `try_submit`, may race; move and destruction may not."},"source":{"file":"include/libtmux/async.hpp","line":136,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime"},{"id":"libtmux::CommandRuntime::start","publicId":"libtmux::CommandRuntime::start","name":"start","kind":"method","modifiers":["static"],"parent":"libtmux::CommandRuntime","signatures":[{"params":[{"name":"config","type":"CommandRuntimeConfig","default":"{}"}],"raw":"static expected\nstart(CommandRuntimeConfig config = {});","returns":"expected"}],"doc":{"summary":"Starts the bounded transport; startup failures are not-started values."},"source":{"file":"include/libtmux/async.hpp","line":86,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-start"},{"id":"libtmux::CommandRuntime::CommandRuntime","publicId":"libtmux::CommandRuntime::CommandRuntime","name":"CommandRuntime","kind":"method","modifiers":["overload"],"parent":"libtmux::CommandRuntime","signatures":[{"params":[{"name":"CommandRuntime &&"}],"raw":"CommandRuntime(CommandRuntime&&) noexcept;"},{"params":[{"name":"const CommandRuntime &"}],"raw":"CommandRuntime(const CommandRuntime&) = delete;"}],"source":{"file":"include/libtmux/async.hpp","line":87,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-commandruntime-1hs6"},{"id":"libtmux::CommandRuntime::~CommandRuntime","publicId":"libtmux::CommandRuntime::~CommandRuntime","name":"~CommandRuntime","kind":"method","modifiers":[],"parent":"libtmux::CommandRuntime","signatures":[{"params":[],"raw":"~CommandRuntime();"}],"doc":{"summary":"Stops and joins owned threads; pending observers are discarded, not invoked.","body":"Call `close` first when its terminal report matters."},"source":{"file":"include/libtmux/async.hpp","line":94,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-commandruntime-1nwg"},{"id":"libtmux::CommandRuntime::request_stop","publicId":"libtmux::CommandRuntime::request_stop","name":"request_stop","kind":"method","modifiers":[],"parent":"libtmux::CommandRuntime","signatures":[{"params":[],"raw":"void request_stop() noexcept;","returns":"void"}],"doc":{"summary":"Stops admission and requests cancellation without waiting."},"source":{"file":"include/libtmux/async.hpp","line":97,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-request_stop"},{"id":"libtmux::CommandRuntime::close","publicId":"libtmux::CommandRuntime::close","name":"close","kind":"method","modifiers":[],"parent":"libtmux::CommandRuntime","signatures":[{"params":[],"raw":"[[nodiscard]] CommandRuntimeShutdown close();","returns":"CommandRuntimeShutdown"}],"doc":{"summary":"Joins every owned thread without invoking or discarding observers, and does not return or throw until every blocked `wait_ready` caller has left.","body":"The first successful report is cached; a throwing shutdown can be retried."},"source":{"file":"include/libtmux/async.hpp","line":101,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-close"},{"id":"libtmux::CommandRuntime::snapshot","publicId":"libtmux::CommandRuntime::snapshot","name":"snapshot","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandRuntime","signatures":[{"params":[],"raw":"[[nodiscard]] CommandRuntimeSnapshot snapshot() const noexcept;","returns":"CommandRuntimeSnapshot"}],"doc":{"summary":"Reads one lock-consistent instant without waiting for work."},"source":{"file":"include/libtmux/async.hpp","line":103,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-snapshot"},{"id":"libtmux::CommandRuntime::wait_ready","publicId":"libtmux::CommandRuntime::wait_ready","name":"wait_ready","kind":"method","modifiers":[],"parent":"libtmux::CommandRuntime","signatures":[{"params":[{"name":"deadline","type":"std::chrono::steady_clock::time_point","default":"std::chrono::steady_clock::time_point::max()"}],"raw":"[[nodiscard]] ReadyStatus\nwait_ready(std::chrono::steady_clock::time_point deadline =\n std::chrono::steady_clock::time_point::max());","returns":"ReadyStatus"}],"doc":{"summary":"Waits for a ready observer without invoking it.","body":"`closed` means close has joined the transports and no ready observers remain, or this owner was moved. Ready records take precedence over closure and deadline expiry."},"source":{"file":"include/libtmux/async.hpp","line":108,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-wait_ready"},{"id":"libtmux::CommandRuntime::wait_ready_for","publicId":"libtmux::CommandRuntime::wait_ready_for","name":"wait_ready_for","kind":"method","modifiers":[],"parent":"libtmux::CommandRuntime","signatures":[{"params":[{"name":"timeout","type":"std::chrono::milliseconds"}],"raw":"[[nodiscard]] ReadyStatus wait_ready_for(std::chrono::milliseconds timeout);","returns":"ReadyStatus"}],"source":{"file":"include/libtmux/async.hpp","line":110,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-wait_ready_for"},{"id":"libtmux::CommandRuntime::dispatch_ready","publicId":"libtmux::CommandRuntime::dispatch_ready","name":"dispatch_ready","kind":"method","modifiers":[],"parent":"libtmux::CommandRuntime","signatures":[{"params":[],"raw":"[[nodiscard]] std::size_t dispatch_ready();","returns":"std::size_t"}],"doc":{"summary":"Runs one snapshot of ready observers on this thread and returns its count.","body":"A callback exception releases that record, propagates, and leaves later records."},"source":{"file":"include/libtmux/async.hpp","line":114,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-dispatch_ready"},{"id":"libtmux::CommandRuntime::discard_ready","publicId":"libtmux::CommandRuntime::discard_ready","name":"discard_ready","kind":"method","modifiers":[],"parent":"libtmux::CommandRuntime","signatures":[{"params":[],"raw":"[[nodiscard]] std::size_t discard_ready();","returns":"std::size_t"}],"doc":{"summary":"Releases ready observer obligations without invoking callbacks.","body":"Only one dispatch or discard call runs at once; competitors return zero."},"source":{"file":"include/libtmux/async.hpp","line":117,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-discard_ready"},{"id":"libtmux::CommandRuntime::ready_fd","publicId":"libtmux::CommandRuntime::ready_fd","name":"ready_fd","kind":"method","modifiers":["readonly"],"parent":"libtmux::CommandRuntime","signatures":[{"params":[],"raw":"[[nodiscard]] int ready_fd() const noexcept;","returns":"int"}],"doc":{"summary":"Readable exactly when `wait_ready` would return without blocking, for a caller that owns an event loop and cannot park a thread in `wait_ready`.","body":"The same contract as `Connection::notification_fd`:\n\nReadability is the signal. Do not read from it: the byte carries nothing and is this runtime's to consume. Drain by taking the work — `dispatch_ready` or `discard_ready` — which clears it.\n\nA closed runtime makes it readable, so a poller learns that no answer is coming rather than waiting for one.\n\nValid until this runtime is destroyed or moved from. `-1` when the pipe could not be created, and on Windows, where the runtime has no descriptor to offer; a caller that gets `-1` uses `wait_ready`."},"source":{"file":"include/libtmux/async.hpp","line":131,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntime-ready_fd"},{"id":"libtmux::Connection","publicId":"libtmux::Connection","name":"Connection","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One held-open control client.","body":"Shared freely between threads. `execute`, `take_notifications`, `wait_for_notifications`, `watch_notifications`, `set_pane_output` and the muting pair may all be called at once: writes are serialized, and each reply is matched to its own request through a private boundary, which is what lets concurrent callers tell their blocks apart even though tmux puts no request id on a guard.\n\nMoving from a connection, or destroying one, may not race with any of those — the same rule `CommandRuntime` states for itself.\n\nIt remains one FIFO client, so a command that waits on the server also delays whatever another thread asked for next. That is why `Server::run` stays the surface for a command whose final result matters."},"source":{"file":"include/libtmux/control.hpp","line":368,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection"},{"id":"libtmux::Connection::connect","publicId":"libtmux::Connection::connect","name":"connect","kind":"method","modifiers":["static"],"parent":"libtmux::Connection","signatures":[{"params":[{"name":"options","type":"ConnectionOptions"}],"raw":"static expected connect(ConnectionOptions options);","returns":"expected"}],"source":{"file":"include/libtmux/control.hpp","line":257,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-connect"},{"id":"libtmux::Connection::~Connection","publicId":"libtmux::Connection::~Connection","name":"~Connection","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[],"raw":"~Connection() noexcept;"}],"source":{"file":"include/libtmux/control.hpp","line":259,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-connection-1tno"},{"id":"libtmux::Connection::Connection","publicId":"libtmux::Connection::Connection","name":"Connection","kind":"method","modifiers":["overload"],"parent":"libtmux::Connection","signatures":[{"params":[{"name":"Connection &&"}],"raw":"Connection(Connection&&) noexcept;"},{"params":[{"name":"const Connection &"}],"raw":"Connection(const Connection&) = delete;"}],"source":{"file":"include/libtmux/control.hpp","line":260,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-connection-1eqf"},{"id":"libtmux::Connection::execute","publicId":"libtmux::Connection::execute","name":"execute","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[{"name":"request","type":"ControlRequest"},{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"ControlRequestResult execute(ControlRequest request,\n std::chrono::steady_clock::time_point deadline);","returns":"ControlRequestResult"}],"doc":{"summary":"Completes at this request's private protocol boundary and preserves every guarded block before it.","body":"This is wire evidence, not a final command result: tmux may end a block before a waiting job or file operation later reports unguarded output or failure. Use `Server::run` when final success or failure is required."},"source":{"file":"include/libtmux/control.hpp","line":270,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-execute"},{"id":"libtmux::Connection::take_notifications","publicId":"libtmux::Connection::take_notifications","name":"take_notifications","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[],"raw":"[[nodiscard]] std::vector take_notifications();","returns":"std::vector"}],"doc":{"summary":"Every outside-block event tmux has written since the last call.","body":"Taking drains: what comes back will not come back again. It says nothing about what happens next, so an empty result does not mean the stream has gone quiet, and a later one is new traffic rather than a repeat. Wait for the next event with `wait_for_notifications` rather than polling for one."},"source":{"file":"include/libtmux/control.hpp","line":278,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-take_notifications"},{"id":"libtmux::Connection::watch_notifications","publicId":"libtmux::Connection::watch_notifications","name":"watch_notifications","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[],"raw":"[[nodiscard]] NotificationWatch watch_notifications();","returns":"NotificationWatch"}],"doc":{"summary":"Open an independent cursor at the next outside-block event.","body":"Unlike the legacy taking methods above, watches do not steal events from each other."},"source":{"file":"include/libtmux/control.hpp","line":282,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-watch_notifications"},{"id":"libtmux::Connection::wait_for_notifications","publicId":"libtmux::Connection::wait_for_notifications","name":"wait_for_notifications","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"[[nodiscard]] std::vector\nwait_for_notifications(std::chrono::steady_clock::time_point deadline);","returns":"std::vector"}],"doc":{"summary":"The same, but waits for something to arrive.","body":"`take_notifications` returns immediately, so a caller reacting to tmux had to call it in a loop and sleep between — which either wakes too often or reacts too late, and picks that trade with no idea how long the next event will take. This blocks until at least one event is available, the connection fails, or the deadline passes, and returns whatever it has.\n\nAn empty result means the deadline passed or the stream ended; the two are told apart by asking `execute` or `shutdown`, which report the failure. Events already buffered are returned without waiting at all."},"source":{"file":"include/libtmux/control.hpp","line":296,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-wait_for_notifications"},{"id":"libtmux::Connection::notification_fd","publicId":"libtmux::Connection::notification_fd","name":"notification_fd","kind":"method","modifiers":["readonly"],"parent":"libtmux::Connection","signatures":[{"params":[],"raw":"[[nodiscard]] int notification_fd() const noexcept;","returns":"int"}],"doc":{"summary":"A descriptor that is readable exactly when a take would return something.","body":"For a caller who owns their own event loop. Without it, integrating means a thread blocked in `wait_for_notifications`, a queue of their own, and a self-pipe to wake the loop — which is this descriptor, rebuilt by hand on top of the thread and queue this connection already has.\n\nDo not read from it: readability is the signal and the byte is this connection's to consume. Drain with `take_notifications`, which clears it. A broken stream makes it readable too, so a poller learns of the failure rather than waiting for an answer that cannot come.\n\nValid until the connection is destroyed or moved from; `-1` if the pipe could not be created."},"source":{"file":"include/libtmux/control.hpp","line":311,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-notification_fd"},{"id":"libtmux::Connection::set_pane_output","publicId":"libtmux::Connection::set_pane_output","name":"set_pane_output","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[{"name":"pane","type":"std::string_view"},{"name":"deliver","type":"bool"},{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"expected\nset_pane_output(std::string_view pane, bool deliver,\n std::chrono::steady_clock::time_point deadline);","returns":"expected"}],"doc":{"summary":"Stop or resume `output` for one pane, on a connection that asked for it.","body":"The direction is not symmetrical, because tmux is not: a connection that started without `pane_output` cannot be made to listen to anything, and muting is the only per-pane control it offers. So this narrows what a listening connection receives; it cannot widen a silent one.\n\nResuming clears both mute and pause, starting at tmux's current output offset. What a caller sees for output produced while muted differs by tmux version, and is not this library's choice either way:\n\nBefore tmux 3.7, muting stops delivery to this connection only. What the pane printed while muted is lost — resuming never replays it.\n\nOn tmux 3.7+, muting stops tmux from reading the pane's pty at all. The pane freezes for every attached client and tool, not only this connection, and what it printed while muted arrives as a backlog on resume (measured against raw tmux, both directions)."},"source":{"file":"include/libtmux/control.hpp","line":332,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-set_pane_output"},{"id":"libtmux::Connection::mute_pane_output","publicId":"libtmux::Connection::mute_pane_output","name":"mute_pane_output","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[{"name":"pane","type":"std::string_view"},{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"[[nodiscard]] expected\nmute_pane_output(std::string_view pane,\n std::chrono::steady_clock::time_point deadline);","returns":"expected"}],"doc":{"summary":"Named forms of set_pane_output; the same connection policy applies.","body":"Muting is not this connection's private business on tmux 3.7+: tmux stops reading the pane's pty, so the pane freezes for every attached client and tool until it is resumed. `set_pane_output` has the version-by-version detail; this is the part worth knowing before reaching for the name."},"source":{"file":"include/libtmux/control.hpp","line":342,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-mute_pane_output"},{"id":"libtmux::Connection::resume_pane_output","publicId":"libtmux::Connection::resume_pane_output","name":"resume_pane_output","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[{"name":"pane","type":"std::string_view"},{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"[[nodiscard]] expected\nresume_pane_output(std::string_view pane,\n std::chrono::steady_clock::time_point deadline);","returns":"expected"}],"source":{"file":"include/libtmux/control.hpp","line":347,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-resume_pane_output"},{"id":"libtmux::Connection::events","publicId":"libtmux::Connection::events","name":"events","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"[[nodiscard]] NotificationRange\nevents(std::chrono::steady_clock::time_point deadline);","returns":"NotificationRange"}],"doc":{"summary":"Everything tmux says until the deadline, as one loop rather than two.","body":"Borrows this connection, which must outlive it."},"source":{"file":"include/libtmux/control.hpp","line":356,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-events"},{"id":"libtmux::Connection::dropped_notifications","publicId":"libtmux::Connection::dropped_notifications","name":"dropped_notifications","kind":"method","modifiers":["readonly"],"parent":"libtmux::Connection","signatures":[{"params":[],"raw":"[[nodiscard]] std::size_t dropped_notifications() const noexcept;","returns":"std::size_t"}],"doc":{"summary":"How many outside-block events this Connection's legacy taking cursor missed to keep the shared log bounded.","body":"Each watch has its own count."},"source":{"file":"include/libtmux/control.hpp","line":360,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-dropped_notifications"},{"id":"libtmux::Connection::native_child_pid","publicId":"libtmux::Connection::native_child_pid","name":"native_child_pid","kind":"method","modifiers":["readonly"],"parent":"libtmux::Connection","signatures":[{"params":[],"raw":"[[nodiscard]] std::int64_t native_child_pid() const noexcept;","returns":"std::int64_t"}],"source":{"file":"include/libtmux/control.hpp","line":361,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-native_child_pid"},{"id":"libtmux::Connection::shutdown","publicId":"libtmux::Connection::shutdown","name":"shutdown","kind":"method","modifiers":[],"parent":"libtmux::Connection","signatures":[{"params":[{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"expected\nshutdown(std::chrono::steady_clock::time_point deadline);","returns":"expected"}],"source":{"file":"include/libtmux/control.hpp","line":363,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connection-shutdown"},{"id":"libtmux::EntityId","publicId":"libtmux::EntityId","name":"EntityId","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A tmux object id, typed by what it names.","body":"tmux spells these `$0`, `@1` and `%2`. The prefix says which kind it is, and nothing in the type did: six accessors returned `std::string_view`, so a window id compiled wherever a pane id belonged, and `pane.id() == window.id()` was a comparison that can never be true but always built.\n\nThe string is reached through `value()` rather than through a conversion. A conversion is what let the mix-up through in the first place: with one, every `std::string_view` parameter accepts any id again, and this would read as type safety while providing none.\n\nComparing an id to plain text still works, because that cannot confuse two kinds — `pane.id() == \"%0\"` asks something answerable. Comparing two ids of different kinds does not compile."},"source":{"file":"include/libtmux/entities.hpp","line":222,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-entityid","typeParams":["typename Kind"],"typeParameters":[{"name":"Kind"}]},{"id":"libtmux::EntityId::EntityId","publicId":"libtmux::EntityId::EntityId","name":"EntityId","kind":"method","modifiers":["overload"],"parent":"libtmux::EntityId","signatures":[{"params":[],"raw":"libtmux::EntityId::EntityId() = default;"},{"params":[{"name":"value","type":"std::string_view"}],"raw":"constexpr explicit libtmux::EntityId::EntityId(std::string_view value) noexcept;","returns":"constexpr"}],"source":{"file":"include/libtmux/entities.hpp","line":202,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-entityid-entityid"},{"id":"libtmux::EntityId::value","publicId":"libtmux::EntityId::value","name":"value","kind":"method","modifiers":["readonly"],"parent":"libtmux::EntityId","signatures":[{"params":[],"raw":"[[nodiscard]] constexpr std::string_view\nlibtmux::EntityId::value() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":205,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-entityid-value"},{"id":"libtmux::EntityId::empty","publicId":"libtmux::EntityId::empty","name":"empty","kind":"method","modifiers":["readonly"],"parent":"libtmux::EntityId","signatures":[{"params":[],"raw":"[[nodiscard]] constexpr bool libtmux::EntityId::empty() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":206,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-entityid-empty"},{"id":"libtmux::FilterExpr","publicId":"libtmux::FilterExpr","name":"FilterExpr","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A filter over one entity type, as a value.","body":"Owns every operand it compares against, so it outlives the call that built it and can be stored and copied. The node set is a closed variant rather than an expression template, which is what lets the same value both filter a range already in memory and be translated to a tmux `-f` format later."},"source":{"file":"include/libtmux/filter_expr.hpp","line":125,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr","typeParams":["typename Entity"],"typeParameters":[{"name":"Entity"}]},{"id":"libtmux::FilterExpr::Node","publicId":"libtmux::FilterExpr::Node","name":"Node","kind":"typealias","modifiers":[],"parent":"libtmux::FilterExpr","signatures":[],"type":"std::variant","source":{"file":"include/libtmux/filter_expr.hpp","line":125,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-node-qrpx"},{"id":"libtmux::FilterExpr::FilterExpr","publicId":"libtmux::FilterExpr::FilterExpr","name":"FilterExpr","kind":"method","modifiers":["overload"],"parent":"libtmux::FilterExpr","signatures":[{"params":[{"name":"node","type":"Node"}],"raw":"explicit libtmux::FilterExpr::FilterExpr(Node node);"},{"params":[{"name":"other","type":"const FilterExpr &"}],"raw":"libtmux::FilterExpr::FilterExpr(const FilterExpr& other);"},{"params":[{"name":"FilterExpr &&"}],"raw":"libtmux::FilterExpr::FilterExpr(FilterExpr&&) noexcept = default;"}],"source":{"file":"include/libtmux/filter_expr.hpp","line":128,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-filterexpr-m43k"},{"id":"libtmux::FilterExpr::~FilterExpr","publicId":"libtmux::FilterExpr::~FilterExpr","name":"~FilterExpr","kind":"method","modifiers":[],"parent":"libtmux::FilterExpr","signatures":[{"params":[],"raw":"libtmux::FilterExpr::~FilterExpr() = default;"}],"source":{"file":"include/libtmux/filter_expr.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-filterexpr-23mp"},{"id":"libtmux::FilterExpr::node","publicId":"libtmux::FilterExpr::node","name":"node","kind":"method","modifiers":["readonly"],"parent":"libtmux::FilterExpr","signatures":[{"params":[],"raw":"[[nodiscard]] const Node& libtmux::FilterExpr::node() const noexcept;","returns":"const Node &"}],"source":{"file":"include/libtmux/filter_expr.hpp","line":146,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-node-1r0r"},{"id":"libtmux::FormatBuilder","publicId":"libtmux::FormatBuilder","name":"FormatBuilder","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Build a format from alternating literal and variable pieces so a caller never hand-concatenates and forgets to escape one of them."},"source":{"file":"include/libtmux/format.hpp","line":53,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-formatbuilder"},{"id":"libtmux::FormatBuilder::literal","publicId":"libtmux::FormatBuilder::literal","name":"literal","kind":"method","modifiers":[],"parent":"libtmux::FormatBuilder","signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"FormatBuilder& literal(std::string_view text);","returns":"FormatBuilder &"}],"source":{"file":"include/libtmux/format.hpp","line":40,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-formatbuilder-literal"},{"id":"libtmux::FormatBuilder::field","publicId":"libtmux::FormatBuilder::field","name":"field","kind":"method","modifiers":[],"parent":"libtmux::FormatBuilder","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"FormatBuilder& field(std::string_view name);","returns":"FormatBuilder &"}],"source":{"file":"include/libtmux/format.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-formatbuilder-field"},{"id":"libtmux::FormatBuilder::str","publicId":"libtmux::FormatBuilder::str","name":"str","kind":"method","modifiers":["readonly"],"parent":"libtmux::FormatBuilder","signatures":[{"params":[],"raw":"[[nodiscard]] const std::string& str() const noexcept;","returns":"const std::string &"}],"source":{"file":"include/libtmux/format.hpp","line":50,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-formatbuilder-str"},{"id":"libtmux::NodeCollector","publicId":"libtmux::NodeCollector","name":"NodeCollector","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Collects a lowered expression.","body":"This is the sink the relation builders use to capture their child, and it is a plain value so the result is copyable. Builds the flat node list a lowered expression is, keeping the indices stable so a parent can reference a child it has not finished emitting."},"source":{"file":"include/libtmux/lowered_node.hpp","line":109,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector"},{"id":"libtmux::NodeCollector::string_test","publicId":"libtmux::NodeCollector::string_test","name":"string_test","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[{"name":"field","type":"std::string_view"},{"name":"op","type":"std::string_view"},{"name":"operand","type":"std::string_view"}],"raw":"void string_test(std::string_view field, std::string_view op,\n std::string_view operand);","returns":"void"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":57,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-string_test"},{"id":"libtmux::NodeCollector::bool_test","publicId":"libtmux::NodeCollector::bool_test","name":"bool_test","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[{"name":"field","type":"std::string_view"},{"name":"expected","type":"bool"}],"raw":"void bool_test(std::string_view field, bool expected);","returns":"void"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":66,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-bool_test"},{"id":"libtmux::NodeCollector::number_test","publicId":"libtmux::NodeCollector::number_test","name":"number_test","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[{"name":"field","type":"std::string_view"},{"name":"op","type":"std::string_view"},{"name":"operand","type":"long long"}],"raw":"void number_test(std::string_view field, std::string_view op, long long operand);","returns":"void"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":73,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-number_test"},{"id":"libtmux::NodeCollector::begin_group","publicId":"libtmux::NodeCollector::begin_group","name":"begin_group","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[{"name":"conjunction","type":"bool"}],"raw":"void begin_group(bool conjunction);","returns":"void"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":81,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-begin_group"},{"id":"libtmux::NodeCollector::end_group","publicId":"libtmux::NodeCollector::end_group","name":"end_group","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[],"raw":"void end_group();","returns":"void"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":87,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-end_group"},{"id":"libtmux::NodeCollector::begin_negation","publicId":"libtmux::NodeCollector::begin_negation","name":"begin_negation","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[],"raw":"void begin_negation();","returns":"void"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":88,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-begin_negation"},{"id":"libtmux::NodeCollector::end_negation","publicId":"libtmux::NodeCollector::end_negation","name":"end_negation","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[],"raw":"void end_negation();","returns":"void"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":89,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-end_negation"},{"id":"libtmux::NodeCollector::begin_relation","publicId":"libtmux::NodeCollector::begin_relation","name":"begin_relation","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"quantifier","type":"int"}],"raw":"void begin_relation(std::string_view name, int quantifier);","returns":"void"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":90,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-begin_relation"},{"id":"libtmux::NodeCollector::end_relation","publicId":"libtmux::NodeCollector::end_relation","name":"end_relation","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[],"raw":"void end_relation();","returns":"void"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":97,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-end_relation"},{"id":"libtmux::NodeCollector::nodes","publicId":"libtmux::NodeCollector::nodes","name":"nodes","kind":"method","modifiers":["readonly"],"parent":"libtmux::NodeCollector","signatures":[{"params":[],"raw":"[[nodiscard]] const LoweredExpression& nodes() const noexcept;","returns":"const LoweredExpression &"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":99,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-nodes"},{"id":"libtmux::NodeCollector::take","publicId":"libtmux::NodeCollector::take","name":"take","kind":"method","modifiers":[],"parent":"libtmux::NodeCollector","signatures":[{"params":[],"raw":"[[nodiscard]] LoweredExpression take() noexcept;","returns":"LoweredExpression"}],"source":{"file":"include/libtmux/lowered_node.hpp","line":100,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-nodecollector-take"},{"id":"libtmux::NotificationRange","publicId":"libtmux::NotificationRange","name":"NotificationRange","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Everything tmux says, until the deadline, as one loop.","body":"Draining by hand is two nested loops and a break: ask for a batch, stop if it is empty, walk it, ask again. That shape was written six times across this repository's own tests and examples before this existed, which is the argument for it.\n\nAn input range, single pass. A `ParsedNotification` views the notification it was read from, and this owns that notification only until the iterator advances — so copy what you need out of one before asking for the next."},"source":{"file":"include/libtmux/control.hpp","line":230,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationrange"},{"id":"libtmux::NotificationRange::NotificationRange","publicId":"libtmux::NotificationRange::NotificationRange","name":"NotificationRange","kind":"method","modifiers":[],"parent":"libtmux::NotificationRange","signatures":[{"params":[{"name":"connection","type":"Connection &"},{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"NotificationRange(Connection& connection,\n std::chrono::steady_clock::time_point deadline) noexcept;"}],"source":{"file":"include/libtmux/control.hpp","line":222,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationrange-notificationrange"},{"id":"libtmux::NotificationRange::begin","publicId":"libtmux::NotificationRange::begin","name":"begin","kind":"method","modifiers":[],"parent":"libtmux::NotificationRange","signatures":[{"params":[],"raw":"[[nodiscard]] iterator begin();","returns":"iterator"}],"source":{"file":"include/libtmux/control.hpp","line":226,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationrange-begin"},{"id":"libtmux::NotificationRange::end","publicId":"libtmux::NotificationRange::end","name":"end","kind":"method","modifiers":["readonly"],"parent":"libtmux::NotificationRange","signatures":[{"params":[],"raw":"[[nodiscard]] std::default_sentinel_t end() const noexcept;","returns":"std::default_sentinel_t"}],"source":{"file":"include/libtmux/control.hpp","line":227,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationrange-end"},{"id":"libtmux::NotificationRange::iterator","publicId":"libtmux::NotificationRange::iterator","name":"iterator","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Single-pass, and the value it yields is borrowed: advancing invalidates the notification the previous dereference viewed."},"source":{"file":"include/libtmux/control.hpp","line":195,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationrange-iterator"},{"id":"libtmux::NotificationRange::iterator::difference_type","publicId":"libtmux::NotificationRange::iterator::difference_type","name":"difference_type","kind":"typealias","modifiers":[],"parent":"libtmux::NotificationRange::iterator","signatures":[],"type":"std::ptrdiff_t","source":{"file":"include/libtmux/control.hpp","line":195,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationrange-iterator-difference_type"},{"id":"libtmux::NotificationRange::iterator::value_type","publicId":"libtmux::NotificationRange::iterator::value_type","name":"value_type","kind":"typealias","modifiers":[],"parent":"libtmux::NotificationRange::iterator","signatures":[],"type":"ParsedNotification","source":{"file":"include/libtmux/control.hpp","line":196,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationrange-iterator-value_type"},{"id":"libtmux::NotificationRange::iterator::iterator_concept","publicId":"libtmux::NotificationRange::iterator::iterator_concept","name":"iterator_concept","kind":"typealias","modifiers":[],"parent":"libtmux::NotificationRange::iterator","signatures":[],"type":"std::input_iterator_tag","source":{"file":"include/libtmux/control.hpp","line":197,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationrange-iterator-iterator_concept"},{"id":"libtmux::NotificationRange::iterator::iterator","publicId":"libtmux::NotificationRange::iterator::iterator","name":"iterator","kind":"method","modifiers":["overload"],"parent":"libtmux::NotificationRange::iterator","signatures":[{"params":[],"raw":"iterator() = default;"},{"params":[{"name":"range","type":"NotificationRange *"}],"raw":"explicit iterator(NotificationRange* range);"}],"source":{"file":"include/libtmux/control.hpp","line":199,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationrange-iterator-iterator"},{"id":"libtmux::NotificationWatch","publicId":"libtmux::NotificationWatch","name":"NotificationWatch","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One independent view of outside-block events emitted after opening.","body":"Taking from one watch never drains another watch or the Connection's legacy event queue. The retained log is shared and bounded; this watch's dropped count reports only events this watch actually missed.\n\nA watch retains the stream state. It can drain already-buffered events after its Connection is moved or destroyed; waits then wake as a closed stream."},"source":{"file":"include/libtmux/notification.hpp","line":154,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationwatch"},{"id":"libtmux::NotificationWatch::NotificationWatch","publicId":"libtmux::NotificationWatch::NotificationWatch","name":"NotificationWatch","kind":"method","modifiers":["overload"],"parent":"libtmux::NotificationWatch","signatures":[{"params":[],"raw":"NotificationWatch() noexcept;"},{"params":[{"name":"NotificationWatch &&"}],"raw":"NotificationWatch(NotificationWatch&&) noexcept;"},{"params":[{"name":"const NotificationWatch &"}],"raw":"NotificationWatch(const NotificationWatch&) = delete;"}],"source":{"file":"include/libtmux/notification.hpp","line":131,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationwatch-notificationwatch-dfl5"},{"id":"libtmux::NotificationWatch::~NotificationWatch","publicId":"libtmux::NotificationWatch::~NotificationWatch","name":"~NotificationWatch","kind":"method","modifiers":[],"parent":"libtmux::NotificationWatch","signatures":[{"params":[],"raw":"~NotificationWatch() noexcept;"}],"source":{"file":"include/libtmux/notification.hpp","line":132,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationwatch-notificationwatch-1v3s"},{"id":"libtmux::NotificationWatch::take_notifications","publicId":"libtmux::NotificationWatch::take_notifications","name":"take_notifications","kind":"method","modifiers":[],"parent":"libtmux::NotificationWatch","signatures":[{"params":[],"raw":"[[nodiscard]] std::vector take_notifications();","returns":"std::vector"}],"doc":{"summary":"Everything this watch has not taken yet, returned without waiting."},"source":{"file":"include/libtmux/notification.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationwatch-take_notifications"},{"id":"libtmux::NotificationWatch::wait_for_notifications","publicId":"libtmux::NotificationWatch::wait_for_notifications","name":"wait_for_notifications","kind":"method","modifiers":[],"parent":"libtmux::NotificationWatch","signatures":[{"params":[{"name":"deadline","type":"std::chrono::steady_clock::time_point"}],"raw":"[[nodiscard]] std::vector\nwait_for_notifications(std::chrono::steady_clock::time_point deadline);","returns":"std::vector"}],"doc":{"summary":"Wait for this watch to have an event, for the stream to close, or for the deadline.","body":"An empty result means one of the latter two happened."},"source":{"file":"include/libtmux/notification.hpp","line":143,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationwatch-wait_for_notifications"},{"id":"libtmux::NotificationWatch::notification_fd","publicId":"libtmux::NotificationWatch::notification_fd","name":"notification_fd","kind":"method","modifiers":["readonly"],"parent":"libtmux::NotificationWatch","signatures":[{"params":[],"raw":"[[nodiscard]] int notification_fd() const noexcept;","returns":"int"}],"doc":{"summary":"Readable when this watch has something to take or its stream has closed.","body":"Do not read it; taking all available events clears this watch's byte while the stream is open, and closure remains readable. `-1` means the pipe could not be created or the watch is empty/moved from."},"source":{"file":"include/libtmux/notification.hpp","line":148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationwatch-notification_fd"},{"id":"libtmux::NotificationWatch::dropped_notifications","publicId":"libtmux::NotificationWatch::dropped_notifications","name":"dropped_notifications","kind":"method","modifiers":["readonly"],"parent":"libtmux::NotificationWatch","signatures":[{"params":[],"raw":"[[nodiscard]] std::size_t dropped_notifications() const noexcept;","returns":"std::size_t"}],"doc":{"summary":"Events evicted before this watch took them, excluding events consumed by other cursors and events emitted before this watch opened."},"source":{"file":"include/libtmux/notification.hpp","line":151,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationwatch-dropped_notifications"},{"id":"libtmux::Pane","publicId":"libtmux::Pane","name":"Pane","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One pane, as one listing saw it.","body":"The narrowest thing tmux addresses, and the only one that owns a process: `pid` is the command tmux started, not the shell's children, so a pane running a program under a shell reports the shell.\n\nReads its own fields without touching tmux, on the same terms as `Session`.","examples":[{"lang":"console","intro":"Traverse a session and its children. List windows and panes within one session, then follow a pane back to its owning window and session. Each relation method performs a new read; the original entity still holds its earlier snapshot. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/relations.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto windows = session.windows();\n const auto session_panes = session.panes();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!session_panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", session_panes.error().diagnostic.c_str());\n return 1;\n }\n if (windows->size() != 1 || session_panes->size() != 1) {\n std::fputs(\"expected one window and pane\\n\", stderr);\n return 1;\n }\n const auto& window = windows->front();\n const auto panes = window.panes();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 1) {\n std::fputs(\"expected one window pane\\n\", stderr);\n return 1;\n }\n const auto owner_window = panes->front().window();\n const auto owner_session = panes->front().session();\n if (!owner_window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_window.error().diagnostic.c_str());\n return 1;\n }\n if (!owner_session.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_session.error().diagnostic.c_str());\n return 1;\n }\n if (*owner_window != window || *owner_session != session ||\n panes->front() != session_panes->front()) {\n std::fputs(\"entity ownership does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"api session -> one window -> one pane; owners match.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"api session -> one window -> one pane; owners match.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":705,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane"},{"id":"libtmux::Pane::kNoun","publicId":"libtmux::Pane::kNoun","name":"kNoun","kind":"attribute","modifiers":["static"],"parent":"libtmux::Pane","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/entities.hpp","line":705,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-knoun"},{"id":"libtmux::Pane::kSessionNameField","publicId":"libtmux::Pane::kSessionNameField","name":"kSessionNameField","kind":"attribute","modifiers":["static"],"parent":"libtmux::Pane","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/entities.hpp","line":706,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-ksessionnamefield"},{"id":"libtmux::Pane::kFields","publicId":"libtmux::Pane::kFields","name":"kFields","kind":"attribute","modifiers":["static"],"parent":"libtmux::Pane","signatures":[],"type":"std::array","source":{"file":"include/libtmux/entities.hpp","line":707,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-kfields"},{"id":"libtmux::Pane::Pane","publicId":"libtmux::Pane::Pane","name":"Pane","kind":"method","modifiers":[],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"snapshot","type":"std::shared_ptr"},{"name":"row","type":"std::size_t"}],"raw":"Pane(std::shared_ptr snapshot, std::size_t row) noexcept;"}],"source":{"file":"include/libtmux/entities.hpp","line":720,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-pane"},{"id":"libtmux::Pane::id","publicId":"libtmux::Pane::id","name":"id","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] PaneId id() const noexcept;","returns":"PaneId"}],"source":{"file":"include/libtmux/entities.hpp","line":726,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-id-wgkk"},{"id":"libtmux::Pane::command","publicId":"libtmux::Pane::command","name":"command","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view command() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"What is running in the pane now, which is not what started it."},"source":{"file":"include/libtmux/entities.hpp","line":728,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-command-6i9x"},{"id":"libtmux::Pane::active","publicId":"libtmux::Pane::active","name":"active","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] bool active() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":729,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-active-12uw"},{"id":"libtmux::Pane::window_id","publicId":"libtmux::Pane::window_id","name":"window_id","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] WindowId window_id() const noexcept;","returns":"WindowId"}],"source":{"file":"include/libtmux/entities.hpp","line":730,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-window_id-1v4v"},{"id":"libtmux::Pane::session_id","publicId":"libtmux::Pane::session_id","name":"session_id","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] SessionId session_id() const noexcept;","returns":"SessionId"}],"source":{"file":"include/libtmux/entities.hpp","line":731,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-session_id-d112"},{"id":"libtmux::Pane::index","publicId":"libtmux::Pane::index","name":"index","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] long long index() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":732,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-index-56y3"},{"id":"libtmux::Pane::title","publicId":"libtmux::Pane::title","name":"title","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view title() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":733,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-title-18ie"},{"id":"libtmux::Pane::pid","publicId":"libtmux::Pane::pid","name":"pid","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] long long pid() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":734,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-pid-172a"},{"id":"libtmux::Pane::tty","publicId":"libtmux::Pane::tty","name":"tty","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view tty() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":735,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-tty-1z0j"},{"id":"libtmux::Pane::path","publicId":"libtmux::Pane::path","name":"path","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view path() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":736,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-path-1piq"},{"id":"libtmux::Pane::width","publicId":"libtmux::Pane::width","name":"width","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] long long width() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":737,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-width-ojiw"},{"id":"libtmux::Pane::height","publicId":"libtmux::Pane::height","name":"height","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] long long height() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":740,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-height-l0kt"},{"id":"libtmux::Pane::dead","publicId":"libtmux::Pane::dead","name":"dead","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] bool dead() const noexcept;","returns":"bool"}],"doc":{"summary":"A pane whose program exited while `remain-on-exit` kept it on screen."},"source":{"file":"include/libtmux/entities.hpp","line":744,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-dead-9qv2"},{"id":"libtmux::Pane::in_mode","publicId":"libtmux::Pane::in_mode","name":"in_mode","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] bool in_mode() const noexcept;","returns":"bool"}],"doc":{"summary":"Copy mode and its relatives, in which sent keys move the cursor rather than reaching the program."},"source":{"file":"include/libtmux/entities.hpp","line":747,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-in_mode-blbb"},{"id":"libtmux::Pane::at_top","publicId":"libtmux::Pane::at_top","name":"at_top","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] bool at_top() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":748,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-at_top-110l"},{"id":"libtmux::Pane::at_bottom","publicId":"libtmux::Pane::at_bottom","name":"at_bottom","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] bool at_bottom() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":749,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-at_bottom-uzyl"},{"id":"libtmux::Pane::at_left","publicId":"libtmux::Pane::at_left","name":"at_left","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] bool at_left() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":750,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-at_left-1pop"},{"id":"libtmux::Pane::at_right","publicId":"libtmux::Pane::at_right","name":"at_right","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] bool at_right() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":751,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-at_right-e9fi"},{"id":"libtmux::Pane::piping","publicId":"libtmux::Pane::piping","name":"piping","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] bool piping() const noexcept;","returns":"bool"}],"doc":{"summary":"Whether this pane's output is currently being copied to a command."},"source":{"file":"include/libtmux/entities.hpp","line":753,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-piping-1eja"},{"id":"libtmux::Pane::left","publicId":"libtmux::Pane::left","name":"left","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] long long left() const noexcept;","returns":"long long"}],"doc":{"summary":"Position within the window, in cells from its top-left corner — the geometry `select_layout`'s saved arrangement places panes at."},"source":{"file":"include/libtmux/entities.hpp","line":756,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-left-n1t8"},{"id":"libtmux::Pane::top","publicId":"libtmux::Pane::top","name":"top","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] long long top() const noexcept;","returns":"long long"}],"doc":{"summary":"Its counterpart along the other axis."},"source":{"file":"include/libtmux/entities.hpp","line":758,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-top-1x0l"},{"id":"libtmux::Pane::exit_status","publicId":"libtmux::Pane::exit_status","name":"exit_status","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] std::optional exit_status() const noexcept;","returns":"std::optional"}],"doc":{"summary":"What the pane's process exited with, once it has.","body":"Optional rather than a number because zero is a real exit status and \"still running\" is not a status at all — tmux renders the field empty until the process is gone. Only a pane held on screen by `remain-on-exit` can report one: without it tmux destroys the pane, and there is nothing left to ask."},"source":{"file":"include/libtmux/entities.hpp","line":766,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-exit_status-zax2"},{"id":"libtmux::Pane::session_name","publicId":"libtmux::Pane::session_name","name":"session_name","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view session_name() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"The owning psmux route carried by Windows live snapshots.","body":"Empty on POSIX and in recordings made from the backward-compatible `kFields` schema."},"source":{"file":"include/libtmux/entities.hpp","line":781,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-session_name-swm7"},{"id":"libtmux::Pane::window","publicId":"libtmux::Pane::window","name":"window","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected window() const;","returns":"expected"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Traverse a session and its children. List windows and panes within one session, then follow a pane back to its owning window and session. Each relation method performs a new read; the original entity still holds its earlier snapshot. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/relations.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto windows = session.windows();\n const auto session_panes = session.panes();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!session_panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", session_panes.error().diagnostic.c_str());\n return 1;\n }\n if (windows->size() != 1 || session_panes->size() != 1) {\n std::fputs(\"expected one window and pane\\n\", stderr);\n return 1;\n }\n const auto& window = windows->front();\n const auto panes = window.panes();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 1) {\n std::fputs(\"expected one window pane\\n\", stderr);\n return 1;\n }\n const auto owner_window = panes->front().window();\n const auto owner_session = panes->front().session();\n if (!owner_window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_window.error().diagnostic.c_str());\n return 1;\n }\n if (!owner_session.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_session.error().diagnostic.c_str());\n return 1;\n }\n if (*owner_window != window || *owner_session != session ||\n panes->front() != session_panes->front()) {\n std::fputs(\"entity ownership does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"api session -> one window -> one pane; owners match.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"api session -> one window -> one pane; owners match.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":795,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-window"},{"id":"libtmux::Pane::session","publicId":"libtmux::Pane::session","name":"session","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected session() const;","returns":"expected"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Traverse a session and its children. List windows and panes within one session, then follow a pane back to its owning window and session. Each relation method performs a new read; the original entity still holds its earlier snapshot. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/relations.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto windows = session.windows();\n const auto session_panes = session.panes();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!session_panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", session_panes.error().diagnostic.c_str());\n return 1;\n }\n if (windows->size() != 1 || session_panes->size() != 1) {\n std::fputs(\"expected one window and pane\\n\", stderr);\n return 1;\n }\n const auto& window = windows->front();\n const auto panes = window.panes();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 1) {\n std::fputs(\"expected one window pane\\n\", stderr);\n return 1;\n }\n const auto owner_window = panes->front().window();\n const auto owner_session = panes->front().session();\n if (!owner_window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_window.error().diagnostic.c_str());\n return 1;\n }\n if (!owner_session.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_session.error().diagnostic.c_str());\n return 1;\n }\n if (*owner_window != window || *owner_session != session ||\n panes->front() != session_panes->front()) {\n std::fputs(\"entity ownership does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"api session -> one window -> one pane; owners match.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"api session -> one window -> one pane; owners match.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":796,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-session"},{"id":"libtmux::Pane::send_text","publicId":"libtmux::Pane::send_text","name":"send_text","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] expected send_text(std::string_view text) const;","returns":"expected"}],"doc":{"summary":"Literal text, never interpreted as key names or formats, and never followed by a newline the caller did not ask for.","examples":[{"lang":"console","intro":"Send input and capture confirmed output. Start a small shell reader with terminal echo disabled, wait for readiness, send one line, and capture its response. The two bounded waits prevent startup races and confirm output from the program. The final cat keeps the pane available for capture until cleanup. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/input-capture.cpp","code":"#include \n#include \n#include \n#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto window = sessions->front().new_window(libtmux::NewWindowOptions{\n .name = \"reader\",\n .shell_command = R\"(exec sh -c '\n stty -echo\n printf \"ready\\n\"\n IFS= read -r line\n printf \"got:%s\\n\" \"$line\"\n exec cat >/dev/null\n ')\",\n });\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n const auto pane = window->active_pane();\n if (!pane.has_value()) {\n std::fprintf(stderr, \"%s\\n\", pane.error().diagnostic.c_str());\n return 1;\n }\n const auto ready = pane->wait_for_text(\"ready\", {.timeout = std::chrono::seconds{5}});\n if (!ready.has_value()) {\n std::fprintf(stderr, \"%s\\n\", ready.error().diagnostic.c_str());\n return 1;\n }\n if (!ready->matched) {\n std::fputs(\"reader did not become ready\\n\", stderr);\n return 1;\n }\n const auto text = pane->send_text(\"hello \");\n if (!text.has_value()) {\n std::fprintf(stderr, \"%s\\n\", text.error().diagnostic.c_str());\n return 1;\n }\n const auto line = pane->send_line(\"C++\");\n if (!line.has_value()) {\n std::fprintf(stderr, \"%s\\n\", line.error().diagnostic.c_str());\n return 1;\n }\n const auto answered =\n pane->wait_for_text(\"got:hello C++\", {.timeout = std::chrono::seconds{5}});\n if (!answered.has_value()) {\n std::fprintf(stderr, \"%s\\n\", answered.error().diagnostic.c_str());\n return 1;\n }\n if (!answered->matched) {\n std::fputs(\"reader did not confirm the input\\n\", stderr);\n return 1;\n }\n const auto captured = pane->capture();\n if (!captured.has_value()) {\n std::fprintf(stderr, \"%s\\n\", captured.error().diagnostic.c_str());\n return 1;\n }\n // The captured string outlives the line views returned by capture_lines.\n const auto lines = libtmux::capture_lines(*captured);\n if (std::ranges::find(lines, \"got:hello C++\") == std::ranges::end(lines)) {\n std::fputs(\"captured output does not contain the response\\n\", stderr);\n return 1;\n }\n std::puts(\"got:hello C++\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"got:hello C++\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":800,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-send_text"},{"id":"libtmux::Pane::send_key","publicId":"libtmux::Pane::send_key","name":"send_key","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"key","type":"std::string_view"}],"raw":"[[nodiscard]] expected send_key(std::string_view key) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":801,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-send_key"},{"id":"libtmux::Pane::send_line","publicId":"libtmux::Pane::send_line","name":"send_line","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] expected send_line(std::string_view text) const;","returns":"expected"}],"doc":{"summary":"The text and then Enter, as one tmux invocation.","body":"Running a command in a pane is two commands to tmux, and sending them separately costs two round trips and leaves a window where the line is typed and not submitted. This sends both in one batch, which tmux runs fail-fast, so a refused line is not followed by an Enter.\n\nEmpty text sends Enter alone, which is what submitting a blank line means. `send_text` refuses it instead: there, nothing would be sent.","examples":[{"lang":"console","intro":"Send input and capture confirmed output. Start a small shell reader with terminal echo disabled, wait for readiness, send one line, and capture its response. The two bounded waits prevent startup races and confirm output from the program. The final cat keeps the pane available for capture until cleanup. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/input-capture.cpp","code":"#include \n#include \n#include \n#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto window = sessions->front().new_window(libtmux::NewWindowOptions{\n .name = \"reader\",\n .shell_command = R\"(exec sh -c '\n stty -echo\n printf \"ready\\n\"\n IFS= read -r line\n printf \"got:%s\\n\" \"$line\"\n exec cat >/dev/null\n ')\",\n });\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n const auto pane = window->active_pane();\n if (!pane.has_value()) {\n std::fprintf(stderr, \"%s\\n\", pane.error().diagnostic.c_str());\n return 1;\n }\n const auto ready = pane->wait_for_text(\"ready\", {.timeout = std::chrono::seconds{5}});\n if (!ready.has_value()) {\n std::fprintf(stderr, \"%s\\n\", ready.error().diagnostic.c_str());\n return 1;\n }\n if (!ready->matched) {\n std::fputs(\"reader did not become ready\\n\", stderr);\n return 1;\n }\n const auto text = pane->send_text(\"hello \");\n if (!text.has_value()) {\n std::fprintf(stderr, \"%s\\n\", text.error().diagnostic.c_str());\n return 1;\n }\n const auto line = pane->send_line(\"C++\");\n if (!line.has_value()) {\n std::fprintf(stderr, \"%s\\n\", line.error().diagnostic.c_str());\n return 1;\n }\n const auto answered =\n pane->wait_for_text(\"got:hello C++\", {.timeout = std::chrono::seconds{5}});\n if (!answered.has_value()) {\n std::fprintf(stderr, \"%s\\n\", answered.error().diagnostic.c_str());\n return 1;\n }\n if (!answered->matched) {\n std::fputs(\"reader did not confirm the input\\n\", stderr);\n return 1;\n }\n const auto captured = pane->capture();\n if (!captured.has_value()) {\n std::fprintf(stderr, \"%s\\n\", captured.error().diagnostic.c_str());\n return 1;\n }\n // The captured string outlives the line views returned by capture_lines.\n const auto lines = libtmux::capture_lines(*captured);\n if (std::ranges::find(lines, \"got:hello C++\") == std::ranges::end(lines)) {\n std::fputs(\"captured output does not contain the response\\n\", stderr);\n return 1;\n }\n std::puts(\"got:hello C++\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"got:hello C++\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":812,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-send_line"},{"id":"libtmux::Pane::split","publicId":"libtmux::Pane::split","name":"split","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"options","type":"SplitOptions","default":"{}"}],"raw":"[[nodiscard]] expected split(SplitOptions options = {}) const;","returns":"expected"}],"doc":{"summary":"Split this exact pane rather than whichever pane in its window happens to be active.","examples":[{"lang":"console","intro":"Create a window and split a pane. Create a detached window, split it side by side, and verify both panes belong to it. The cat processes keep each pane alive until fixture cleanup. Creation leaves the session selection unchanged because focus defaults to false. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/new-window-pane.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto before = session.active_window();\n if (!before.has_value()) {\n std::fprintf(stderr, \"%s\\n\", before.error().diagnostic.c_str());\n return 1;\n }\n const auto window = session.new_window(\n libtmux::NewWindowOptions{.name = \"editor\", .shell_command = \"exec cat\"});\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n const auto first = window->active_pane();\n if (!first.has_value()) {\n std::fprintf(stderr, \"%s\\n\", first.error().diagnostic.c_str());\n return 1;\n }\n const auto second = first->split(\n libtmux::SplitOptions{.horizontal = true, .shell_command = \"exec cat\"});\n if (!second.has_value()) {\n std::fprintf(stderr, \"%s\\n\", second.error().diagnostic.c_str());\n return 1;\n }\n const auto panes = window->panes();\n const auto after = session.active_window();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (!after.has_value()) {\n std::fprintf(stderr, \"%s\\n\", after.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 2 || *before != *after ||\n first->window_id() != second->window_id() || *first == *second) {\n std::fputs(\"created panes or selection do not match\\n\", stderr);\n return 1;\n }\n std::puts(\"Created editor with two panes; the active window is unchanged.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Created editor with two panes; the active window is unchanged.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":816,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-split"},{"id":"libtmux::Pane::capture","publicId":"libtmux::Pane::capture","name":"capture","kind":"method","modifiers":["readonly","overload"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected capture() const;","returns":"expected"},{"params":[{"name":"options","type":"CaptureOptions"}],"raw":"[[nodiscard]] expected\ncapture(CaptureOptions options) const;","returns":"expected"}],"doc":{"summary":"The visible contents, as tmux printed them.","body":"`capture_lines` frames it into lines, and takes a named string: the lines are views into it, so framing this return value directly is a compile error rather than a dangling read.\n\nA pane's scrollback can be far larger than the default bound, and a capture that does not fit is reported rather than cut, so a caller reading history passes the size it is prepared to hold.","examples":[{"lang":"console","intro":"Send input and capture confirmed output. Start a small shell reader with terminal echo disabled, wait for readiness, send one line, and capture its response. The two bounded waits prevent startup races and confirm output from the program. The final cat keeps the pane available for capture until cleanup. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/input-capture.cpp","code":"#include \n#include \n#include \n#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto window = sessions->front().new_window(libtmux::NewWindowOptions{\n .name = \"reader\",\n .shell_command = R\"(exec sh -c '\n stty -echo\n printf \"ready\\n\"\n IFS= read -r line\n printf \"got:%s\\n\" \"$line\"\n exec cat >/dev/null\n ')\",\n });\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n const auto pane = window->active_pane();\n if (!pane.has_value()) {\n std::fprintf(stderr, \"%s\\n\", pane.error().diagnostic.c_str());\n return 1;\n }\n const auto ready = pane->wait_for_text(\"ready\", {.timeout = std::chrono::seconds{5}});\n if (!ready.has_value()) {\n std::fprintf(stderr, \"%s\\n\", ready.error().diagnostic.c_str());\n return 1;\n }\n if (!ready->matched) {\n std::fputs(\"reader did not become ready\\n\", stderr);\n return 1;\n }\n const auto text = pane->send_text(\"hello \");\n if (!text.has_value()) {\n std::fprintf(stderr, \"%s\\n\", text.error().diagnostic.c_str());\n return 1;\n }\n const auto line = pane->send_line(\"C++\");\n if (!line.has_value()) {\n std::fprintf(stderr, \"%s\\n\", line.error().diagnostic.c_str());\n return 1;\n }\n const auto answered =\n pane->wait_for_text(\"got:hello C++\", {.timeout = std::chrono::seconds{5}});\n if (!answered.has_value()) {\n std::fprintf(stderr, \"%s\\n\", answered.error().diagnostic.c_str());\n return 1;\n }\n if (!answered->matched) {\n std::fputs(\"reader did not confirm the input\\n\", stderr);\n return 1;\n }\n const auto captured = pane->capture();\n if (!captured.has_value()) {\n std::fprintf(stderr, \"%s\\n\", captured.error().diagnostic.c_str());\n return 1;\n }\n // The captured string outlives the line views returned by capture_lines.\n const auto lines = libtmux::capture_lines(*captured);\n if (std::ranges::find(lines, \"got:hello C++\") == std::ranges::end(lines)) {\n std::fputs(\"captured output does not contain the response\\n\", stderr);\n return 1;\n }\n std::puts(\"got:hello C++\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"got:hello C++\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":825,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-capture"},{"id":"libtmux::Pane::wait_for_text","publicId":"libtmux::Pane::wait_for_text","name":"wait_for_text","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"wanted","type":"std::string_view"},{"name":"options","type":"const WaitOptions &","default":"{}"}],"raw":"[[nodiscard]] expected\nwait_for_text(std::string_view wanted, const WaitOptions& options = {}) const;","returns":"expected"}],"doc":{"summary":"Wait until this pane produces `wanted`, rather than until it merely appears on screen.","body":"Prefers the control stream's `%output` and falls back to re-reading the screen when no connection can be opened; `WaitOptions` says which, and `WaitResult::path` says which answered. A caller that typed the text it is waiting for names it in `WaitOptions::sent`, or the shell's echo of its own command is credited to the pane as output.","examples":[{"lang":"console","intro":"Send input and capture confirmed output. Start a small shell reader with terminal echo disabled, wait for readiness, send one line, and capture its response. The two bounded waits prevent startup races and confirm output from the program. The final cat keeps the pane available for capture until cleanup. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/input-capture.cpp","code":"#include \n#include \n#include \n#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto window = sessions->front().new_window(libtmux::NewWindowOptions{\n .name = \"reader\",\n .shell_command = R\"(exec sh -c '\n stty -echo\n printf \"ready\\n\"\n IFS= read -r line\n printf \"got:%s\\n\" \"$line\"\n exec cat >/dev/null\n ')\",\n });\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n const auto pane = window->active_pane();\n if (!pane.has_value()) {\n std::fprintf(stderr, \"%s\\n\", pane.error().diagnostic.c_str());\n return 1;\n }\n const auto ready = pane->wait_for_text(\"ready\", {.timeout = std::chrono::seconds{5}});\n if (!ready.has_value()) {\n std::fprintf(stderr, \"%s\\n\", ready.error().diagnostic.c_str());\n return 1;\n }\n if (!ready->matched) {\n std::fputs(\"reader did not become ready\\n\", stderr);\n return 1;\n }\n const auto text = pane->send_text(\"hello \");\n if (!text.has_value()) {\n std::fprintf(stderr, \"%s\\n\", text.error().diagnostic.c_str());\n return 1;\n }\n const auto line = pane->send_line(\"C++\");\n if (!line.has_value()) {\n std::fprintf(stderr, \"%s\\n\", line.error().diagnostic.c_str());\n return 1;\n }\n const auto answered =\n pane->wait_for_text(\"got:hello C++\", {.timeout = std::chrono::seconds{5}});\n if (!answered.has_value()) {\n std::fprintf(stderr, \"%s\\n\", answered.error().diagnostic.c_str());\n return 1;\n }\n if (!answered->matched) {\n std::fputs(\"reader did not confirm the input\\n\", stderr);\n return 1;\n }\n const auto captured = pane->capture();\n if (!captured.has_value()) {\n std::fprintf(stderr, \"%s\\n\", captured.error().diagnostic.c_str());\n return 1;\n }\n // The captured string outlives the line views returned by capture_lines.\n const auto lines = libtmux::capture_lines(*captured);\n if (std::ranges::find(lines, \"got:hello C++\") == std::ranges::end(lines)) {\n std::fputs(\"captured output does not contain the response\\n\", stderr);\n return 1;\n }\n std::puts(\"got:hello C++\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"got:hello C++\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":836,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-wait_for_text"},{"id":"libtmux::Pane::set_width","publicId":"libtmux::Pane::set_width","name":"set_width","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"width","type":"long long"}],"raw":"[[nodiscard]] expected set_width(long long width) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":838,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-set_width"},{"id":"libtmux::Pane::set_height","publicId":"libtmux::Pane::set_height","name":"set_height","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"height","type":"long long"}],"raw":"[[nodiscard]] expected set_height(long long height) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":839,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-set_height"},{"id":"libtmux::Pane::swap_with","publicId":"libtmux::Pane::swap_with","name":"swap_with","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"other","type":"const Pane &"}],"raw":"[[nodiscard]] expected swap_with(const Pane& other) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":840,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-swap_with"},{"id":"libtmux::Pane::toggle_zoom","publicId":"libtmux::Pane::toggle_zoom","name":"toggle_zoom","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected toggle_zoom() const;","returns":"expected"}],"doc":{"summary":"Toggle whether this pane's window is zoomed onto it — the whole window given over to one pane, full size.","body":"Zoom is window state, which `Window::zoomed()` reads; naming a pane here is how tmux picks which one to give the window to.\n\nOnly the zoom-in direction reads this pane: a window already zoomed unzooms on any target, this pane included, and stays on whichever pane it was zoomed onto (measured against raw tmux)."},"source":{"file":"include/libtmux/entities.hpp","line":850,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-toggle_zoom"},{"id":"libtmux::Pane::break_out","publicId":"libtmux::Pane::break_out","name":"break_out","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"name","type":"std::string_view","default":"{}"}],"raw":"[[nodiscard]] expected\nbreak_out(std::string_view name = {}) const;","returns":"expected"}],"doc":{"summary":"Take this pane out into a window of its own, which is returned.","body":"If it is already the window's only pane, return that window without moving it. An empty name leaves tmux to name the window after what is running."},"source":{"file":"include/libtmux/entities.hpp","line":856,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-break_out"},{"id":"libtmux::Pane::join","publicId":"libtmux::Pane::join","name":"join","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"target","type":"const Window &"}],"raw":"[[nodiscard]] expected join(const Window& target) const;","returns":"expected"}],"doc":{"summary":"Move this pane into another window, splitting it.","body":"The other half of `break_out`: that takes the tree apart, this puts it back.\n\nThe pane keeps its id, so a value held across the move still names it. The window it came from disappears if it held nothing else, which is why the target is named rather than inferred from where this pane is."},"source":{"file":"include/libtmux/entities.hpp","line":864,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-join"},{"id":"libtmux::Pane::enter_copy_mode","publicId":"libtmux::Pane::enter_copy_mode","name":"enter_copy_mode","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected enter_copy_mode() const;","returns":"expected"}],"doc":{"summary":"Put this pane into copy mode, where its contents can be scrolled and selected rather than typed into.","body":"Needs no attached client: the mode is pane state, which `in_mode` reports. Entering twice is harmless."},"source":{"file":"include/libtmux/entities.hpp","line":871,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-enter_copy_mode"},{"id":"libtmux::Pane::leave_mode","publicId":"libtmux::Pane::leave_mode","name":"leave_mode","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected leave_mode() const;","returns":"expected"}],"doc":{"summary":"Leave whatever mode the pane is in.","body":"A pane in no mode is refused, with tmux's \"not in a mode\". That is kept rather than smoothed into success: checking first would cost a round trip and still race, and a caller who cares can read `in_mode` or ignore the failure."},"source":{"file":"include/libtmux/entities.hpp","line":879,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-leave_mode"},{"id":"libtmux::Pane::pipe_to","publicId":"libtmux::Pane::pipe_to","name":"pipe_to","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"command","type":"std::string_view"}],"raw":"[[nodiscard]] expected pipe_to(std::string_view command) const;","returns":"expected"}],"doc":{"summary":"Copy everything this pane prints to a shell command, until told to stop.","body":"The command runs on the tmux server's machine with the pane's output on its standard input.\n\nStarting a second pipe replaces the first: tmux keeps one per pane, so there is nothing to close and nothing to leak."},"source":{"file":"include/libtmux/entities.hpp","line":887,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-pipe_to"},{"id":"libtmux::Pane::stop_piping","publicId":"libtmux::Pane::stop_piping","name":"stop_piping","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected stop_piping() const;","returns":"expected"}],"doc":{"summary":"Stop copying. Harmless on a pane that was not piping."},"source":{"file":"include/libtmux/entities.hpp","line":890,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-stop_piping"},{"id":"libtmux::Pane::set_title","publicId":"libtmux::Pane::set_title","name":"set_title","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"title","type":"std::string_view"}],"raw":"[[nodiscard]] expected set_title(std::string_view title) const;","returns":"expected"}],"doc":{"summary":"Name this pane.","body":"The title is what `#{pane_title}` reports and what a status line can show; it survives the process being replaced."},"source":{"file":"include/libtmux/entities.hpp","line":894,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-set_title"},{"id":"libtmux::Pane::respawn","publicId":"libtmux::Pane::respawn","name":"respawn","kind":"method","modifiers":["readonly","overload"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"replace_running","type":"bool","default":"false"}],"raw":"[[nodiscard]] expected\nrespawn(bool replace_running = false) const;","returns":"expected"},{"params":[{"name":"options","type":"RespawnOptions"}],"raw":"[[nodiscard]] expected respawn(RespawnOptions options) const;","returns":"expected"}],"doc":{"summary":"Start the pane's command again.","body":"tmux refuses a pane whose process is still running unless told to kill it, and that refusal is kept rather than smoothed over: replacing a live process is a decision, so `replace_running` has to be asked for."},"source":{"file":"include/libtmux/entities.hpp","line":902,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-respawn"},{"id":"libtmux::Pane::clear_history","publicId":"libtmux::Pane::clear_history","name":"clear_history","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected clear_history() const;","returns":"expected"}],"doc":{"summary":"Forget the scrollback, which is the only way to bound a pane's memory without restarting what is running in it."},"source":{"file":"include/libtmux/entities.hpp","line":907,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-clear_history"},{"id":"libtmux::Pane::expand","publicId":"libtmux::Pane::expand","name":"expand","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"format","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nexpand(std::string_view format) const;","returns":"expected"}],"doc":{"summary":"Ask tmux to expand a format against this pane.","body":"`#{pane_current_command}` and `#{pane_current_path}` are the two most callers reach for, and neither is a field this class carries: both change under a value that stays still.\n\nGuarded like the session and window forms, because tmux answers a pane that has gone with a blank and a zero exit status."},"source":{"file":"include/libtmux/entities.hpp","line":917,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-expand"},{"id":"libtmux::Pane::show_message","publicId":"libtmux::Pane::show_message","name":"show_message","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nshow_message(std::string_view text) const;","returns":"expected"}],"doc":{"summary":"Show a message to the clients watching this pane's session, expanded against this pane."},"source":{"file":"include/libtmux/entities.hpp","line":922,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-show_message"},{"id":"libtmux::Pane::paste","publicId":"libtmux::Pane::paste","name":"paste","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"buffer","type":"const Buffer &"},{"name":"consume","type":"bool","default":"false"}],"raw":"[[nodiscard]] expected paste(const Buffer& buffer,\n bool consume = false) const;","returns":"expected"}],"doc":{"summary":"Deliver a buffer's text to this pane, as if it had been typed.","body":"The text arrives on the command line and is not run: a caller wanting it executed sends Enter afterwards, which is the same distinction `send_text` draws.\n\n`consume` is tmux's `-d`, deleting the buffer once it has been pasted, which is what a caller treating it as a one-shot transfer wants."},"source":{"file":"include/libtmux/entities.hpp","line":930,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-paste"},{"id":"libtmux::Pane::select","publicId":"libtmux::Pane::select","name":"select","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected select() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":933,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-select"},{"id":"libtmux::Pane::kill","publicId":"libtmux::Pane::kill","name":"kill","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected kill() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":934,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-kill"},{"id":"libtmux::Pane::refresh","publicId":"libtmux::Pane::refresh","name":"refresh","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected refresh() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":935,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-refresh"},{"id":"libtmux::Pane::options","publicId":"libtmux::Pane::options","name":"options","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> options() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"Pane options, the narrowest scope tmux has, and the end of an inheritance chain that runs pane, window, session, global."},"source":{"file":"include/libtmux/entities.hpp","line":939,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-options"},{"id":"libtmux::Pane::option","publicId":"libtmux::Pane::option","name":"option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\noption(std::string_view name) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":941,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-option"},{"id":"libtmux::Pane::set_option","publicId":"libtmux::Pane::set_option","name":"set_option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] expected set_option(std::string_view name,\n std::string_view value) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":942,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-set_option"},{"id":"libtmux::Pane::unset_option","publicId":"libtmux::Pane::unset_option","name":"unset_option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Pane","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nunset_option(std::string_view name) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":945,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-unset_option"},{"id":"libtmux::Parser","publicId":"libtmux::Parser","name":"Parser","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"The control-mode wire format, decoded into whole events.","body":"Owns the partial state between reads, so a caller feeds whatever bytes arrived and gets back only complete events. It bounds what it retains because a connection, unlike a subprocess, never gives its memory back."},"source":{"file":"include/libtmux/control.hpp","line":101,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parser"},{"id":"libtmux::Parser::Parser","publicId":"libtmux::Parser::Parser","name":"Parser","kind":"method","modifiers":["overload"],"parent":"libtmux::Parser","signatures":[{"params":[],"raw":"Parser() = default;"},{"params":[{"name":"retained_reply_bytes","type":"std::size_t"},{"name":"line_bytes","type":"std::size_t"}],"raw":"Parser(std::size_t retained_reply_bytes, std::size_t line_bytes) noexcept;"}],"source":{"file":"include/libtmux/control.hpp","line":91,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parser-parser"},{"id":"libtmux::Parser::feed","publicId":"libtmux::Parser::feed","name":"feed","kind":"method","modifiers":[],"parent":"libtmux::Parser","signatures":[{"params":[{"name":"bytes","type":"std::span"}],"raw":"expected, ProtocolError> feed(std::span bytes);","returns":"expected, ProtocolError>"}],"source":{"file":"include/libtmux/control.hpp","line":97,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parser-feed"},{"id":"libtmux::Parser::finish","publicId":"libtmux::Parser::finish","name":"finish","kind":"method","modifiers":[],"parent":"libtmux::Parser","signatures":[{"params":[],"raw":"expected finish();","returns":"expected"}],"source":{"file":"include/libtmux/control.hpp","line":98,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parser-finish"},{"id":"libtmux::Server","publicId":"libtmux::Server","name":"Server","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One tmux server, addressed by the socket it listens on.","body":"The entry point: sessions, windows and panes are read from here and carry the server with them. Constructing a handle sends no command. Only a startable handle may create an absent daemon; ordinary handles never do.","examples":[{"lang":"console","intro":"Connect to an owned server. Construct a Server handle for an explicit socket. Construction sends no command; sessions() reads the running server. The fixture controls daemon lifetime, while copies of Server share the connection. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/server.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n // Copying the handle keeps the same connection; it does not start another server.\n const libtmux::Server copy = *server;\n const auto sessions = copy.sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (copy.socket_path() != fixture->socket_path().string() || sessions->size() != 1 ||\n sessions->front().name() != \"api\") {\n std::fputs(\"unexpected server or session\\n\", stderr);\n return 1;\n }\n std::puts(\"Connected to the private api session.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Connected to the private api session.\n"}]},"source":{"file":"include/libtmux/server.hpp","line":505,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server"},{"id":"libtmux::Server::at_socket_path","publicId":"libtmux::Server::at_socket_path","name":"at_socket_path","kind":"method","modifiers":["static","overload"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"path","type":"std::string_view"},{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"raw":"[[nodiscard]] static expected\nat_socket_path(std::string_view path, CommandObserver observer = {},\n ExecutionPolicy policy = {});","returns":"expected"},{"params":[{"name":"path","type":"Path &&"},{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"typeParams":["typename Path"],"raw":"template \n requires std::same_as, std::filesystem::path>\n[[nodiscard]] static expected\nat_socket_path(Path&& path, CommandObserver observer = {},\n ExecutionPolicy policy = {});","returns":"expected","typeParameters":[{"name":"Path"}]}],"doc":{"summary":"`-S path`: the socket file, used verbatim.","body":"These report `CommandFailure`, the same type every other call reports, rather than the `SocketError` the argument builders use: a factory that failed differently is a factory nothing can be chained onto. The reason a selector was rejected is in the diagnostic, and `socket_path_arguments` still returns the enum for a caller that wants to branch on it.\n\nAn observer, if given, is told about every command this server runs. It is fixed at construction because the connection is immutable afterwards, and that is what makes a Server safe to copy between threads. The policy is fixed for the same reason, and says what a call gets when it names no timeout or limit of its own.","examples":[{"lang":"console","intro":"Connect to an owned server. Construct a Server handle for an explicit socket. Construction sends no command; sessions() reads the running server. The fixture controls daemon lifetime, while copies of Server share the connection. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/server.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n // Copying the handle keeps the same connection; it does not start another server.\n const libtmux::Server copy = *server;\n const auto sessions = copy.sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (copy.socket_path() != fixture->socket_path().string() || sessions->size() != 1 ||\n sessions->front().name() != \"api\") {\n std::fputs(\"unexpected server or session\\n\", stderr);\n return 1;\n }\n std::puts(\"Connected to the private api session.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Connected to the private api session.\n"}]},"source":{"file":"include/libtmux/server.hpp","line":92,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-at_socket_path"},{"id":"libtmux::Server::at_socket_name","publicId":"libtmux::Server::at_socket_name","name":"at_socket_name","kind":"method","modifiers":["static"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"raw":"[[nodiscard]] static expected\nat_socket_name(std::string_view name, CommandObserver observer = {},\n ExecutionPolicy policy = {});","returns":"expected"}],"doc":{"summary":"`-L name`: resolved under tmux's socket directory, as the tmux flag does."},"source":{"file":"include/libtmux/server.hpp","line":108,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-at_socket_name"},{"id":"libtmux::Server::startable_at_socket_path","publicId":"libtmux::Server::startable_at_socket_path","name":"startable_at_socket_path","kind":"method","modifiers":["static","overload"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"path","type":"std::string_view"},{"name":"configuration","type":"std::optional"},{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"raw":"[[nodiscard]] static expected\nstartable_at_socket_path(std::string_view path,\n std::optional configuration,\n CommandObserver observer = {}, ExecutionPolicy policy = {});","returns":"expected"},{"params":[{"name":"path","type":"Path &&"},{"name":"configuration","type":"std::optional"},{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"typeParams":["typename Path"],"raw":"template \n requires std::same_as, std::filesystem::path>\n[[nodiscard]] static expected\nstartable_at_socket_path(Path&& path,\n std::optional configuration,\n CommandObserver observer = {}, ExecutionPolicy policy = {});","returns":"expected","typeParameters":[{"name":"Path"}]}],"doc":{"summary":"A socket handle that may create an absent server on its first `new_session` call or an explicit `run({\"start-server\"})`.","body":"`configuration` is passed to tmux as `-f`; absent preserves tmux's user configuration. Every other call remains no-start while the socket is absent. The selector and configuration are frozen in the handle, and concurrent first-session calls are serialized."},"source":{"file":"include/libtmux/server.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-startable_at_socket_path"},{"id":"libtmux::Server::startable_at_socket_name","publicId":"libtmux::Server::startable_at_socket_name","name":"startable_at_socket_name","kind":"method","modifiers":["static"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"configuration","type":"std::optional"},{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"raw":"[[nodiscard]] static expected\nstartable_at_socket_name(std::string_view name,\n std::optional configuration,\n CommandObserver observer = {}, ExecutionPolicy policy = {});","returns":"expected"}],"source":{"file":"include/libtmux/server.hpp","line":133,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-startable_at_socket_name"},{"id":"libtmux::Server::startable_at_default","publicId":"libtmux::Server::startable_at_default","name":"startable_at_default","kind":"method","modifiers":["static"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"configuration","type":"std::optional"},{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"raw":"[[nodiscard]] static expected\nstartable_at_default(std::optional configuration,\n CommandObserver observer = {}, ExecutionPolicy policy = {});","returns":"expected"}],"source":{"file":"include/libtmux/server.hpp","line":137,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-startable_at_default"},{"id":"libtmux::Server::from_env","publicId":"libtmux::Server::from_env","name":"from_env","kind":"method","modifiers":["static"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"raw":"[[nodiscard]] static expected\nfrom_env(CommandObserver observer = {}, ExecutionPolicy policy = {});","returns":"expected"}],"doc":{"summary":"The server this process is running inside.","body":"tmux exports `TMUX` to everything it starts, as `,,`. Only the socket path is read: the session id is stale the moment a pane moves, and a `#()` job carries no session at all — so a caller who wants the session asks tmux, rather than trusting what it inherited."},"source":{"file":"include/libtmux/server.hpp","line":148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-from_env"},{"id":"libtmux::Server::at_default","publicId":"libtmux::Server::at_default","name":"at_default","kind":"method","modifiers":["static"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"raw":"[[nodiscard]] static expected\nat_default(CommandObserver observer = {}, ExecutionPolicy policy = {});","returns":"expected"}],"doc":{"summary":"The server tmux would talk to with no `-L` or `-S` at all, which is the one a person means when they say \"my tmux\"."},"source":{"file":"include/libtmux/server.hpp","line":153,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-at_default"},{"id":"libtmux::Server::over","publicId":"libtmux::Server::over","name":"over","kind":"method","modifiers":["static"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"executor","type":"std::shared_ptr"},{"name":"options","type":"ExecutorOptions","default":"{}"},{"name":"observer","type":"CommandObserver","default":"{}"},{"name":"policy","type":"ExecutionPolicy","default":"{}"}],"raw":"[[nodiscard]] static expected\nover(std::shared_ptr executor, ExecutorOptions options = {},\n CommandObserver observer = {}, ExecutionPolicy policy = {});","returns":"expected"}],"doc":{"summary":"A Server over a transport the caller supplies.","body":"`BackendKind::custom` named this possibility from the first release and nothing could reach it: the interface a backend had to satisfy lived in a header this package does not install, so the only transport a consumer could get was the one that launches a subprocess per command. An executor answers one command; the library keeps session routing, batching, attach preparation and the rest on its own side rather than making them a promise."},"source":{"file":"include/libtmux/server.hpp","line":165,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-over"},{"id":"libtmux::Server::capabilities","publicId":"libtmux::Server::capabilities","name":"capabilities","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] ServerCapabilities capabilities() const noexcept;","returns":"ServerCapabilities"}],"doc":{"summary":"The local backend contract; no command runs.","body":"`tmux_version()` separately queries the executable or the connected control server."},"source":{"file":"include/libtmux/server.hpp","line":170,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-capabilities"},{"id":"libtmux::Server::socket_path","publicId":"libtmux::Server::socket_path","name":"socket_path","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view socket_path() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"The resolved path pinned by this handle, including a startable path whose server has not been created yet.","body":"Empty only when the backend has no socket path representation."},"source":{"file":"include/libtmux/server.hpp","line":175,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-socket_path"},{"id":"libtmux::Server::run","publicId":"libtmux::Server::run","name":"run","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"command","type":"const CommandRequest &"},{"name":"timeout","type":"std::optional","default":"{}"},{"name":"output_limit","type":"std::optional","default":"{}"}],"raw":"[[nodiscard]] expected\nrun(const CommandRequest& command,\n std::optional timeout = {},\n std::optional output_limit = {}) const;","returns":"expected"}],"doc":{"summary":"Run one command and return its standard output.","body":"The timeout still rides on the call: how long a caller will wait is a property of what they asked for, and listing sessions does not share a deadline with attaching a client. Unset takes the server's `ExecutionPolicy`, which is thirty seconds rather than forever — a floor, not a guess at what this particular command needs. `output_limit` bounds how much of tmux's answer this call will hold. Past it the command reports `truncated` rather than returning a prefix that reads like a complete answer. Unset uses the package default, which is ample for every listing and can be too small for a long scrollback."},"source":{"file":"include/libtmux/server.hpp","line":189,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-run"},{"id":"libtmux::Server::try_submit","publicId":"libtmux::Server::try_submit","name":"try_submit","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"runtime","type":"CommandRuntime &"},{"name":"command","type":"CommandRequest"},{"name":"timeout","type":"std::optional","default":"{}"},{"name":"output_limit","type":"std::optional","default":"{}"}],"raw":"[[nodiscard]] expected\ntry_submit(CommandRuntime& runtime, CommandRequest command,\n std::optional timeout = {},\n std::optional output_limit = {}) const;","returns":"expected"}],"doc":{"summary":"Admit one command to an explicit bounded runtime without waiting for it.","body":"A refusal before admission is returned here; an admitted command carries every later transport or tmux failure in its operation."},"source":{"file":"include/libtmux/server.hpp","line":197,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-try_submit"},{"id":"libtmux::Server::run_batch","publicId":"libtmux::Server::run_batch","name":"run_batch","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"batch","type":"const CommandBatch &"}],"raw":"[[nodiscard]] expected\nrun_batch(const CommandBatch& batch) const;","returns":"expected"}],"doc":{"summary":"Run several commands in one invocation.","body":"tmux runs a batch fail-fast, so a failed batch is partially applied rather than rolled back, and one exit status covers the group, so tmux does not identify which member failed."},"source":{"file":"include/libtmux/server.hpp","line":205,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-run_batch"},{"id":"libtmux::Server::run_chain","publicId":"libtmux::Server::run_chain","name":"run_chain","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"chain","type":"const Chain &"}],"raw":"[[nodiscard]] expected\nrun_chain(const Chain& chain) const;","returns":"expected"}],"doc":{"summary":"Run a chain.","body":"A chain that failed validation never reaches tmux, and says which step was wrong rather than surfacing a tmux message about it."},"source":{"file":"include/libtmux/server.hpp","line":210,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-run_chain"},{"id":"libtmux::Server::control","publicId":"libtmux::Server::control","name":"control","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"session","type":"std::string_view"}],"raw":"[[nodiscard]] expected\ncontrol(std::string_view session) const;","returns":"expected"}],"doc":{"summary":"Open a control-mode connection to one session.","body":"This is the streaming half of the transport: a control connection stays open, exposes guarded reply blocks in wire order, and delivers events outside those blocks. The synchronous surface above is unaffected — a caller who never opens one never pays for it. A guarded block is not a final result for commands whose work tmux completes asynchronously.\n\nFails with `ProtocolError`, not `CommandFailure`, because that is what the `Connection` it returns speaks: an error type here that the value's own surface does not use would make the doorway disagree with the room."},"source":{"file":"include/libtmux/server.hpp","line":224,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-control"},{"id":"libtmux::Server::control_with_options","publicId":"libtmux::Server::control_with_options","name":"control_with_options","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"session","type":"std::string_view"},{"name":"options","type":"ConnectionOptions"}],"raw":"[[nodiscard]] expected\ncontrol_with_options(std::string_view session, ConnectionOptions options) const;","returns":"expected"}],"doc":{"summary":"The Server supplies the socket and `session` supplies the session name; every other connection option is kept, including pane output policy.","body":"`session` matches its exact tmux session name even when it holds a \".\" or \":\", which would otherwise be split as a window or pane target."},"source":{"file":"include/libtmux/server.hpp","line":230,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-control_with_options"},{"id":"libtmux::Server::over_control","publicId":"libtmux::Server::over_control","name":"over_control","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"session","type":"std::string_view"},{"name":"connections","type":"std::size_t","default":"1"}],"raw":"[[nodiscard]] expected\nover_control(std::string_view session, std::size_t connections = 1) const;","returns":"expected"}],"doc":{"summary":"A Server whose commands travel over held-open control clients attached to `session`, rather than one launched process each.","body":"Only where that gives the same answer. tmux can end a command's guarded block before the command has finished, so a command goes over the wire only if the typed surface issues it and tmux cannot defer it as sent — `split-window` without `-I` or `-W`, `display-message` without `-I`, the listings, and the other commands in the list in `server.cpp`, each checked against tmux's `CMD_RETURN_WAIT`. Anything else launches, as it would from this Server: a deferring command, one that acts on the client itself, an alias or an abbreviation this cannot see through. A failure reads as the same `CommandFailure` a launch would give.\n\n`connections` spreads commands over that many clients. One is enough for most callers — a connection already carries concurrent requests — and each extra client is attached to `session` and shows in `clients()`.\n\nA command with no target resolves against the control client's session rather than the most recently used one. The typed surface always names a target; a caller passing raw commands through `run` should too."},"source":{"file":"include/libtmux/server.hpp","line":253,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-over_control"},{"id":"libtmux::Server::tmux_version","publicId":"libtmux::Server::tmux_version","name":"tmux_version","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected tmux_version() const;","returns":"expected"}],"doc":{"summary":"Ask the selected subprocess executable with `tmux -V` without touching a server.","body":"The call uses this Server's execution policy."},"source":{"file":"include/libtmux/server.hpp","line":257,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-tmux_version"},{"id":"libtmux::Server::validate_layouts","publicId":"libtmux::Server::validate_layouts","name":"validate_layouts","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"layouts","type":"std::span"}],"raw":"[[nodiscard]] expected\nvalidate_layouts(std::span layouts) const;","returns":"expected"}],"doc":{"summary":"Validate the complete batch's syntax before any I/O, then query its daemon once for version-dependent names or v2 JSON layouts.","body":"No layout is applied. Only an unbound native subprocess handle may use the client version for an absent socket; failures from previously bound endpoints remain failures."},"source":{"file":"include/libtmux/server.hpp","line":264,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-validate_layouts"},{"id":"libtmux::Server::is_alive","publicId":"libtmux::Server::is_alive","name":"is_alive","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"timeout","type":"std::chrono::milliseconds","default":"std::chrono::seconds{ 5}"}],"raw":"[[nodiscard]] bool is_alive(std::chrono::milliseconds timeout = std::chrono::seconds{\n 5}) const;","returns":"bool"}],"doc":{"summary":"Whether a server is answering on this socket.","body":"False covers every reason — no server, no socket, a tmux that would not run — because a caller who only wants to know whether to start one does not need to tell them apart.\n\nBounded by default: the one call whose whole job is answering \"can I reach\nthis\" must not be the call that hangs. A stalled socket or a stopped server answers no, in time, rather than never."},"source":{"file":"include/libtmux/server.hpp","line":273,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-is_alive"},{"id":"libtmux::Server::check_alive","publicId":"libtmux::Server::check_alive","name":"check_alive","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"timeout","type":"std::chrono::milliseconds","default":"std::chrono::seconds{5}"}],"raw":"[[nodiscard]] expected\ncheck_alive(std::chrono::milliseconds timeout = std::chrono::seconds{5}) const;","returns":"expected"}],"doc":{"summary":"The same question, keeping why the answer was no."},"source":{"file":"include/libtmux/server.hpp","line":277,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-check_alive"},{"id":"libtmux::Server::kill","publicId":"libtmux::Server::kill","name":"kill","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected kill() const;","returns":"expected"}],"doc":{"summary":"End the server and everything in it."},"source":{"file":"include/libtmux/server.hpp","line":280,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-kill"},{"id":"libtmux::Server::sessions","publicId":"libtmux::Server::sessions","name":"sessions","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> sessions() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"One snapshot each.","body":"Iterating or filtering the result never reaches tmux again; taking a current view means calling these again.","examples":[{"lang":"console","intro":"List server objects. Read independent snapshots of every session, window, pane, and client. Iterating these vectors makes no further tmux calls. The detached fixture has one session, one window, one pane, and no attached clients. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/listings.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n const auto windows = server->windows();\n const auto panes = server->panes();\n const auto clients = server->clients();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (!clients.has_value()) {\n std::fprintf(stderr, \"%s\\n\", clients.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1 || windows->size() != 1 || panes->size() != 1 ||\n !clients->empty()) {\n std::fputs(\"unexpected detached server contents\\n\", stderr);\n return 1;\n }\n std::printf(\"sessions=%zu windows=%zu panes=%zu clients=%zu\\n\", sessions->size(),\n windows->size(), panes->size(), clients->size());\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"sessions=1 windows=1 panes=1 clients=0\n"}]},"source":{"file":"include/libtmux/server.hpp","line":284,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-sessions"},{"id":"libtmux::Server::windows","publicId":"libtmux::Server::windows","name":"windows","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> windows() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"tmux scopes window and pane listings to the current session unless asked for every one, so `-a` is part of the request rather than a caller's responsibility to remember.","examples":[{"lang":"console","intro":"List server objects. Read independent snapshots of every session, window, pane, and client. Iterating these vectors makes no further tmux calls. The detached fixture has one session, one window, one pane, and no attached clients. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/listings.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n const auto windows = server->windows();\n const auto panes = server->panes();\n const auto clients = server->clients();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (!clients.has_value()) {\n std::fprintf(stderr, \"%s\\n\", clients.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1 || windows->size() != 1 || panes->size() != 1 ||\n !clients->empty()) {\n std::fputs(\"unexpected detached server contents\\n\", stderr);\n return 1;\n }\n std::printf(\"sessions=%zu windows=%zu panes=%zu clients=%zu\\n\", sessions->size(),\n windows->size(), panes->size(), clients->size());\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"sessions=1 windows=1 panes=1 clients=0\n"}]},"source":{"file":"include/libtmux/server.hpp","line":288,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-windows"},{"id":"libtmux::Server::panes","publicId":"libtmux::Server::panes","name":"panes","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> panes() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"List server objects. Read independent snapshots of every session, window, pane, and client. Iterating these vectors makes no further tmux calls. The detached fixture has one session, one window, one pane, and no attached clients. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/listings.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n const auto windows = server->windows();\n const auto panes = server->panes();\n const auto clients = server->clients();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (!clients.has_value()) {\n std::fprintf(stderr, \"%s\\n\", clients.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1 || windows->size() != 1 || panes->size() != 1 ||\n !clients->empty()) {\n std::fputs(\"unexpected detached server contents\\n\", stderr);\n return 1;\n }\n std::printf(\"sessions=%zu windows=%zu panes=%zu clients=%zu\\n\", sessions->size(),\n windows->size(), panes->size(), clients->size());\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"sessions=1 windows=1 panes=1 clients=0\n"}]},"source":{"file":"include/libtmux/server.hpp","line":289,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-panes"},{"id":"libtmux::Server::clients","publicId":"libtmux::Server::clients","name":"clients","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> clients() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"List server objects. Read independent snapshots of every session, window, pane, and client. Iterating these vectors makes no further tmux calls. The detached fixture has one session, one window, one pane, and no attached clients. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/listings.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n const auto windows = server->windows();\n const auto panes = server->panes();\n const auto clients = server->clients();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (!clients.has_value()) {\n std::fprintf(stderr, \"%s\\n\", clients.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1 || windows->size() != 1 || panes->size() != 1 ||\n !clients->empty()) {\n std::fputs(\"unexpected detached server contents\\n\", stderr);\n return 1;\n }\n std::printf(\"sessions=%zu windows=%zu panes=%zu clients=%zu\\n\", sessions->size(),\n windows->size(), panes->size(), clients->size());\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"sessions=1 windows=1 panes=1 clients=0\n"}]},"source":{"file":"include/libtmux/server.hpp","line":290,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-clients"},{"id":"libtmux::Server::wait_for","publicId":"libtmux::Server::wait_for","name":"wait_for","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"channel","type":"std::string_view"},{"name":"timeout","type":"std::optional","default":"{}"}],"raw":"[[nodiscard]] expected\nwait_for(std::string_view channel,\n std::optional timeout = {}) const;","returns":"expected"}],"doc":{"summary":"Block until someone signals this channel, or the deadline passes.","body":"tmux latches a signal: one sent while nobody is waiting satisfies the next wait rather than being lost. That makes signal-before-wait safe, and it also means a stale signal can release a later waiter, so a channel is worth naming for one exchange rather than reusing.\n\nA server that dies under a waiter makes tmux exit zero, which is indistinguishable from being signalled — a caller would carry on as though the other side had spoken. This reports that as a failure instead, which is the reason to prefer it over running the command.\n\nOmitting `timeout` waits with no deadline: if the channel is never signalled, this call never returns. Waiting is the whole point of the request, so that is deliberate rather than a gap — pass a timeout to bound it."},"source":{"file":"include/libtmux/server.hpp","line":309,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-wait_for"},{"id":"libtmux::Server::signal","publicId":"libtmux::Server::signal","name":"signal","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"channel","type":"std::string_view"}],"raw":"[[nodiscard]] expected signal(std::string_view channel) const;","returns":"expected"}],"doc":{"summary":"Release whoever is waiting on the channel, or latch it for whoever waits next."},"source":{"file":"include/libtmux/server.hpp","line":314,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-signal"},{"id":"libtmux::Server::commands","publicId":"libtmux::Server::commands","name":"commands","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> commands() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"Every command this tmux understands, with its alias and usage.","body":"Asking beats inferring: the supported-version range is a floor, not a description, and a distribution can ship a build with commands left out. A caller deciding whether a capability exists can look."},"source":{"file":"include/libtmux/server.hpp","line":321,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-commands"},{"id":"libtmux::Server::buffers","publicId":"libtmux::Server::buffers","name":"buffers","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> buffers() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"The server's cut buffers, newest first as tmux orders them.","body":"A server holding none answers with an empty list rather than a failure, like every other listing here."},"source":{"file":"include/libtmux/server.hpp","line":326,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-buffers"},{"id":"libtmux::Server::load_buffer","publicId":"libtmux::Server::load_buffer","name":"load_buffer","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"from","type":"const std::filesystem::path &"}],"raw":"[[nodiscard]] expected\nload_buffer(std::string_view name, const std::filesystem::path& from) const;","returns":"expected"}],"doc":{"summary":"Read a file into a named buffer, and write one back out.","body":"The file is read and written by the tmux server, so the path is the server's to resolve — which matters when it is not on this machine. The bytes are not interpreted: a buffer round-tripped through a file comes back identical."},"source":{"file":"include/libtmux/server.hpp","line":335,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-load_buffer"},{"id":"libtmux::Server::save_buffer","publicId":"libtmux::Server::save_buffer","name":"save_buffer","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"to","type":"const std::filesystem::path &"}],"raw":"[[nodiscard]] expected\nsave_buffer(std::string_view name, const std::filesystem::path& to) const;","returns":"expected"}],"source":{"file":"include/libtmux/server.hpp","line":337,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-save_buffer"},{"id":"libtmux::Server::bind_key","publicId":"libtmux::Server::bind_key","name":"bind_key","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"table","type":"std::string_view"},{"name":"key","type":"std::string_view"},{"name":"command","type":"const std::vector &"},{"name":"repeatable","type":"bool","default":"false"}],"raw":"[[nodiscard]] expected\nbind_key(std::string_view table, std::string_view key,\n const std::vector& command, bool repeatable = false) const;","returns":"expected"}],"doc":{"summary":"Bind a key in a key table, and take a binding away again.","body":"The command is argv, not a string, so nothing here has to be quoted for tmux to take it apart again correctly.\n\nA table name containing whitespace is refused. tmux accepts one and then prints it unquoted in `list-keys`, where `-T my table X command` cannot be told apart from the table `my` bound to the key `table` — so a name that survives being listed is required, the same way a target refuses a name that cannot survive being parsed.\n\nKey names are tmux's to check: unlike `send-keys`, `bind-key` reports an unknown one — including an empty one — so there is nothing for this to add, and nothing here repeats it.\n\n`repeatable` is tmux's `-r`, letting the key repeat without the prefix being pressed again."},"source":{"file":"include/libtmux/server.hpp","line":357,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-bind_key"},{"id":"libtmux::Server::unbind_key","publicId":"libtmux::Server::unbind_key","name":"unbind_key","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"table","type":"std::string_view"},{"name":"key","type":"std::string_view"}],"raw":"[[nodiscard]] expected unbind_key(std::string_view table,\n std::string_view key) const;","returns":"expected"}],"doc":{"summary":"Unbinding a key that was not bound succeeds; unbinding in a table that does not exist is refused.","body":"A table exists only while something is bound in it, so taking away the last binding takes the table with it."},"source":{"file":"include/libtmux/server.hpp","line":363,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-unbind_key"},{"id":"libtmux::Server::run_shell","publicId":"libtmux::Server::run_shell","name":"run_shell","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"command","type":"std::string_view"},{"name":"background","type":"bool","default":"false"}],"raw":"[[nodiscard]] expected run_shell(std::string_view command,\n bool background = false) const;","returns":"expected"}],"doc":{"summary":"Run a shell command on the machine the server is on.","body":"Reports whether it ran, not what it printed. tmux hands back the output on most versions and discards it on 3.3a and 3.4, and an answer that is empty on two versions in the middle of the range is worse than no answer at all. A caller that needs the output redirects it to a file.\n\nWhat is uniform is the exit status: a command that fails is a failure here, carrying its code in `exit_code`.\n\n`background` is tmux's `-b`, which returns as soon as the command is started. Nothing can then be said about how it ended, so a backgrounded command that fails still reports success."},"source":{"file":"include/libtmux/server.hpp","line":379,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-run_shell"},{"id":"libtmux::Server::source_file","publicId":"libtmux::Server::source_file","name":"source_file","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"file","type":"const std::filesystem::path &"}],"raw":"[[nodiscard]] expected\nsource_file(const std::filesystem::path& file) const;","returns":"expected"}],"doc":{"summary":"Run the commands in a file, the way tmux runs a configuration file.","body":"The server reads the file, so the path is the server's to resolve. A file it cannot read is reported rather than passed over. A control-backed Server rejects execution because the file can add an unknowable number of reply blocks; `check_file` remains available there."},"source":{"file":"include/libtmux/server.hpp","line":389,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-source_file"},{"id":"libtmux::Server::check_file","publicId":"libtmux::Server::check_file","name":"check_file","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"file","type":"const std::filesystem::path &"}],"raw":"[[nodiscard]] expected\ncheck_file(const std::filesystem::path& file) const;","returns":"expected"}],"doc":{"summary":"Parse the same file and report what tmux would refuse in it, running none of it.","body":"This is how a program checks a configuration it is about to apply without applying half of it first."},"source":{"file":"include/libtmux/server.hpp","line":395,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-check_file"},{"id":"libtmux::Server::expand","publicId":"libtmux::Server::expand","name":"expand","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"format","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nexpand(std::string_view format) const;","returns":"expected"}],"doc":{"summary":"Ask tmux to expand a format, against no target but the server itself.","body":"Unguarded, unlike the entity forms: there is no target here that could have gone away. A server kept alive with no sessions still answers its own fields, and answers the session-scoped ones with nothing — which is the truth about that server, not a failure to report."},"source":{"file":"include/libtmux/server.hpp","line":404,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-expand"},{"id":"libtmux::Server::show_message","publicId":"libtmux::Server::show_message","name":"show_message","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nshow_message(std::string_view text) const;","returns":"expected"}],"doc":{"summary":"Put a message on the status line of every attached client, and send it to each control client as `message`.","body":"tmux expands the text as a format, so a `#{...}` in it is substituted rather than shown. Text built from data belongs in `escape_literal` first."},"source":{"file":"include/libtmux/server.hpp","line":413,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-show_message"},{"id":"libtmux::Server::set_buffer","publicId":"libtmux::Server::set_buffer","name":"set_buffer","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"data","type":"std::string_view"}],"raw":"[[nodiscard]] expected set_buffer(std::string_view name,\n std::string_view data) const;","returns":"expected"}],"doc":{"summary":"Put text in a named buffer, replacing what was there.","body":"An empty name lets tmux choose one, which is what a caller copying without caring about the name wants."},"source":{"file":"include/libtmux/server.hpp","line":418,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-set_buffer"},{"id":"libtmux::Server::session","publicId":"libtmux::Server::session","name":"session","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"target","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nsession(std::string_view target) const;","returns":"expected"}],"doc":{"summary":"One object by target, for a caller holding an id or a `session:window` path that came from somewhere else.","body":"The target is resolved the way tmux resolves it, so a session target names that session's active pane and the window that pane is in. A target tmux cannot resolve is reported missing."},"source":{"file":"include/libtmux/server.hpp","line":426,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-session"},{"id":"libtmux::Server::window","publicId":"libtmux::Server::window","name":"window","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"target","type":"std::string_view"}],"raw":"[[nodiscard]] expected window(std::string_view target) const;","returns":"expected"}],"source":{"file":"include/libtmux/server.hpp","line":427,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-window"},{"id":"libtmux::Server::pane","publicId":"libtmux::Server::pane","name":"pane","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"target","type":"std::string_view"}],"raw":"[[nodiscard]] expected pane(std::string_view target) const;","returns":"expected"}],"source":{"file":"include/libtmux/server.hpp","line":428,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-pane"},{"id":"libtmux::Server::wait_for_text","publicId":"libtmux::Server::wait_for_text","name":"wait_for_text","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"target","type":"std::string_view"},{"name":"wanted","type":"std::string_view"},{"name":"options","type":"const WaitOptions &","default":"{}"}],"raw":"[[nodiscard]] expected\nwait_for_text(std::string_view target, std::string_view wanted,\n const WaitOptions& options = {}) const;","returns":"expected"}],"doc":{"summary":"Wait until the pane `target` names produces `wanted`.","body":"For a caller holding a target rather than a `Pane` — `Pane::wait_for_text` is the same wait without the lookup. One deadline covers both: a target that will not resolve cannot spend the whole budget and leave nothing for waiting, and `WaitPath::pane_lookup` says that is what happened."},"source":{"file":"include/libtmux/server.hpp","line":436,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-wait_for_text"},{"id":"libtmux::Server::new_session","publicId":"libtmux::Server::new_session","name":"new_session","kind":"method","modifiers":["readonly","overload"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nnew_session(std::string_view name) const;","returns":"expected"},{"params":[{"name":"options","type":"NewSessionOptions"}],"raw":"[[nodiscard]] expected\nnew_session(NewSessionOptions options) const;","returns":"expected"}],"doc":{"summary":"Created detached, and returned, because tmux prints what it made.","body":"Windows psmux rejects typed creation: concurrent creators cannot prove ownership.","examples":[{"lang":"console","intro":"Create a detached session. Create a detached session with a named first window, then read back its name and owner. The cat process keeps the first pane alive until fixture cleanup. A fresh listing sees both the fixture session and the new session. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/new-session.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto made = server->new_session(libtmux::NewSessionOptions{\n .name = \"work\",\n .first_window_name = \"main\",\n .shell_command = \"exec cat\",\n });\n if (!made.has_value()) {\n std::fprintf(stderr, \"%s\\n\", made.error().diagnostic.c_str());\n return 1;\n }\n const auto window = made->active_window();\n const auto sessions = server->sessions();\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (made->name() != \"work\" || sessions->size() != 2 || window->name() != \"main\" ||\n window->session_id() != made->id()) {\n std::fputs(\"created session or first window does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"Created work with the main window; two sessions are available.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Created work with the main window; two sessions are available.\n"}]},"source":{"file":"include/libtmux/server.hpp","line":442,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-new_session"},{"id":"libtmux::Server::options","publicId":"libtmux::Server::options","name":"options","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"target","type":"std::string_view","default":"{}"}],"raw":"[[nodiscard]] expected, CommandFailure>\noptions(std::string_view target = {}) const;","returns":"expected, CommandFailure>"}],"source":{"file":"include/libtmux/server.hpp","line":447,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-options"},{"id":"libtmux::Server::server_options","publicId":"libtmux::Server::server_options","name":"server_options","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure>\nserver_options() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"The server's own options, which are neither session nor window options and are the only ones a server without a session still has."},"source":{"file":"include/libtmux/server.hpp","line":451,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-server_options"},{"id":"libtmux::Server::set_server_option","publicId":"libtmux::Server::set_server_option","name":"set_server_option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nset_server_option(std::string_view name, std::string_view value) const;","returns":"expected"}],"source":{"file":"include/libtmux/server.hpp","line":453,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-set_server_option"},{"id":"libtmux::Server::global_options","publicId":"libtmux::Server::global_options","name":"global_options","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure>\nglobal_options() const;","returns":"expected, CommandFailure>"}],"source":{"file":"include/libtmux/server.hpp","line":455,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-global_options"},{"id":"libtmux::Server::set_global_option","publicId":"libtmux::Server::set_global_option","name":"set_global_option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nset_global_option(std::string_view name, std::string_view value) const;","returns":"expected"}],"doc":{"summary":"Sets the value every session inherits, rather than one session's own."},"source":{"file":"include/libtmux/server.hpp","line":458,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-set_global_option"},{"id":"libtmux::Server::hooks","publicId":"libtmux::Server::hooks","name":"hooks","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"target","type":"std::string_view","default":"{}"}],"raw":"[[nodiscard]] expected, CommandFailure>\nhooks(std::string_view target = {}) const;","returns":"expected, CommandFailure>"}],"source":{"file":"include/libtmux/server.hpp","line":460,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-hooks"},{"id":"libtmux::Server::environment","publicId":"libtmux::Server::environment","name":"environment","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure>\nenvironment() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"The environment every new process on this server starts with.","body":"Server-global here; a session has its own. tmux keeps hidden entries apart from these, and this asks for neither `-h` nor the shell form, so what comes back is the plain listing a caller means."},"source":{"file":"include/libtmux/server.hpp","line":468,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-environment"},{"id":"libtmux::Server::set_environment","publicId":"libtmux::Server::set_environment","name":"set_environment","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nset_environment(std::string_view name, std::string_view value) const;","returns":"expected"}],"doc":{"summary":"Bind a name.","body":"An empty value binds it to empty, which is not the same as not binding it at all."},"source":{"file":"include/libtmux/server.hpp","line":473,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-set_environment"},{"id":"libtmux::Server::unset_environment","publicId":"libtmux::Server::unset_environment","name":"unset_environment","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nunset_environment(std::string_view name) const;","returns":"expected"}],"doc":{"summary":"Forget the name, so a new process inherits whatever the tmux server itself has.","body":"This is tmux's `-u`."},"source":{"file":"include/libtmux/server.hpp","line":478,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-unset_environment"},{"id":"libtmux::Server::remove_environment","publicId":"libtmux::Server::remove_environment","name":"remove_environment","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nremove_environment(std::string_view name) const;","returns":"expected"}],"doc":{"summary":"Keep the name and take it out of what a new process inherits — tmux's `-r`, which a listing then prints as `-NAME`.","body":"Different from forgetting it: this one is remembered, as an instruction to remove."},"source":{"file":"include/libtmux/server.hpp","line":484,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-remove_environment"},{"id":"libtmux::Server::global_hooks","publicId":"libtmux::Server::global_hooks","name":"global_hooks","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> global_hooks() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"A hook set globally is not reported by the unscoped listing, so reading it back needs the scope it was set with."},"source":{"file":"include/libtmux/server.hpp","line":487,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-global_hooks"},{"id":"libtmux::Server::set_global_hook","publicId":"libtmux::Server::set_global_hook","name":"set_global_hook","kind":"method","modifiers":["readonly"],"parent":"libtmux::Server","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"command","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nset_global_hook(std::string_view name, std::string_view command) const;","returns":"expected"}],"source":{"file":"include/libtmux/server.hpp","line":489,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-server-set_global_hook"},{"id":"libtmux::Session","publicId":"libtmux::Session","name":"Session","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One session, as one listing saw it.","body":"Reads its own fields without touching tmux: the listing ran once, and every value here is that moment's. A window created since is not in `window_count`, and a session killed since still answers.\n\nEquality is the server incarnation and the session id together, so two handles from separate listings of one live server agree, and a handle kept across a restart does not become a handle to whatever reused `$0`.","examples":[{"lang":"console","intro":"Traverse a session and its children. List windows and panes within one session, then follow a pane back to its owning window and session. Each relation method performs a new read; the original entity still holds its earlier snapshot. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/relations.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto windows = session.windows();\n const auto session_panes = session.panes();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!session_panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", session_panes.error().diagnostic.c_str());\n return 1;\n }\n if (windows->size() != 1 || session_panes->size() != 1) {\n std::fputs(\"expected one window and pane\\n\", stderr);\n return 1;\n }\n const auto& window = windows->front();\n const auto panes = window.panes();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 1) {\n std::fputs(\"expected one window pane\\n\", stderr);\n return 1;\n }\n const auto owner_window = panes->front().window();\n const auto owner_session = panes->front().session();\n if (!owner_window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_window.error().diagnostic.c_str());\n return 1;\n }\n if (!owner_session.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_session.error().diagnostic.c_str());\n return 1;\n }\n if (*owner_window != window || *owner_session != session ||\n panes->front() != session_panes->front()) {\n std::fputs(\"entity ownership does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"api session -> one window -> one pane; owners match.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"api session -> one window -> one pane; owners match.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":385,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session"},{"id":"libtmux::Session::kNoun","publicId":"libtmux::Session::kNoun","name":"kNoun","kind":"attribute","modifiers":["static"],"parent":"libtmux::Session","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/entities.hpp","line":385,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-knoun"},{"id":"libtmux::Session::kFields","publicId":"libtmux::Session::kFields","name":"kFields","kind":"attribute","modifiers":["static"],"parent":"libtmux::Session","signatures":[],"type":"std::array","source":{"file":"include/libtmux/entities.hpp","line":386,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-kfields"},{"id":"libtmux::Session::Session","publicId":"libtmux::Session::Session","name":"Session","kind":"method","modifiers":[],"parent":"libtmux::Session","signatures":[{"params":[{"name":"snapshot","type":"std::shared_ptr"},{"name":"row","type":"std::size_t"}],"raw":"Session(std::shared_ptr snapshot, std::size_t row) noexcept;"}],"source":{"file":"include/libtmux/entities.hpp","line":392,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-session"},{"id":"libtmux::Session::id","publicId":"libtmux::Session::id","name":"id","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] SessionId id() const noexcept;","returns":"SessionId"}],"source":{"file":"include/libtmux/entities.hpp","line":398,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-id-yxxu"},{"id":"libtmux::Session::name","publicId":"libtmux::Session::name","name":"name","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view name() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":399,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-name-1gd8"},{"id":"libtmux::Session::attached","publicId":"libtmux::Session::attached","name":"attached","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] bool attached() const noexcept;","returns":"bool"}],"doc":{"summary":"`session_attached` counts clients rather than rendering a flag, so any count other than zero means attached."},"source":{"file":"include/libtmux/entities.hpp","line":402,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-attached-a5b8"},{"id":"libtmux::Session::client_count","publicId":"libtmux::Session::client_count","name":"client_count","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] long long client_count() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":403,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-client_count-1omo"},{"id":"libtmux::Session::window_count","publicId":"libtmux::Session::window_count","name":"window_count","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] long long window_count() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":406,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-window_count-nx2y"},{"id":"libtmux::Session::path","publicId":"libtmux::Session::path","name":"path","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view path() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"The directory a new window starts in, not the shell's current directory."},"source":{"file":"include/libtmux/entities.hpp","line":410,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-path-dilj"},{"id":"libtmux::Session::created","publicId":"libtmux::Session::created","name":"created","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] std::chrono::sys_seconds created() const noexcept;","returns":"std::chrono::sys_seconds"}],"source":{"file":"include/libtmux/entities.hpp","line":411,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-created-1c37"},{"id":"libtmux::Session::group","publicId":"libtmux::Session::group","name":"group","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view group() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"Empty unless the session belongs to a group sharing its windows."},"source":{"file":"include/libtmux/entities.hpp","line":415,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-group-7v42"},{"id":"libtmux::Session::grouped","publicId":"libtmux::Session::grouped","name":"grouped","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] bool grouped() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":416,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-grouped-1dtv"},{"id":"libtmux::Session::windows","publicId":"libtmux::Session::windows","name":"windows","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> windows() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Traverse a session and its children. List windows and panes within one session, then follow a pane back to its owning window and session. Each relation method performs a new read; the original entity still holds its earlier snapshot. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/relations.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto windows = session.windows();\n const auto session_panes = session.panes();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!session_panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", session_panes.error().diagnostic.c_str());\n return 1;\n }\n if (windows->size() != 1 || session_panes->size() != 1) {\n std::fputs(\"expected one window and pane\\n\", stderr);\n return 1;\n }\n const auto& window = windows->front();\n const auto panes = window.panes();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 1) {\n std::fputs(\"expected one window pane\\n\", stderr);\n return 1;\n }\n const auto owner_window = panes->front().window();\n const auto owner_session = panes->front().session();\n if (!owner_window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_window.error().diagnostic.c_str());\n return 1;\n }\n if (!owner_session.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_session.error().diagnostic.c_str());\n return 1;\n }\n if (*owner_window != window || *owner_session != session ||\n panes->front() != session_panes->front()) {\n std::fputs(\"entity ownership does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"api session -> one window -> one pane; owners match.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"api session -> one window -> one pane; owners match.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":425,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-windows"},{"id":"libtmux::Session::panes","publicId":"libtmux::Session::panes","name":"panes","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> panes() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Traverse a session and its children. List windows and panes within one session, then follow a pane back to its owning window and session. Each relation method performs a new read; the original entity still holds its earlier snapshot. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/relations.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto windows = session.windows();\n const auto session_panes = session.panes();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!session_panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", session_panes.error().diagnostic.c_str());\n return 1;\n }\n if (windows->size() != 1 || session_panes->size() != 1) {\n std::fputs(\"expected one window and pane\\n\", stderr);\n return 1;\n }\n const auto& window = windows->front();\n const auto panes = window.panes();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 1) {\n std::fputs(\"expected one window pane\\n\", stderr);\n return 1;\n }\n const auto owner_window = panes->front().window();\n const auto owner_session = panes->front().session();\n if (!owner_window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_window.error().diagnostic.c_str());\n return 1;\n }\n if (!owner_session.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_session.error().diagnostic.c_str());\n return 1;\n }\n if (*owner_window != window || *owner_session != session ||\n panes->front() != session_panes->front()) {\n std::fputs(\"entity ownership does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"api session -> one window -> one pane; owners match.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"api session -> one window -> one pane; owners match.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":426,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-panes"},{"id":"libtmux::Session::active_window","publicId":"libtmux::Session::active_window","name":"active_window","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected active_window() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":427,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-active_window"},{"id":"libtmux::Session::active_pane","publicId":"libtmux::Session::active_pane","name":"active_pane","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected active_pane() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":428,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-active_pane"},{"id":"libtmux::Session::select_next_window","publicId":"libtmux::Session::select_next_window","name":"select_next_window","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected select_next_window() const;","returns":"expected"}],"doc":{"summary":"Move the selection, and answer with the window it landed on.","body":"Named for what they do rather than for what they return: `next_window()` would read as a question, and these change which window is active.\n\nRelative navigation is tmux's to perform, not a caller's to compute. Next and previous wrap around the window list, and \"last\" means the previously selected window — state only the server holds, which a caller listing windows has no way to reconstruct.\n\nEach fails when there is nowhere to go, as tmux does: a session with one window refuses all three rather than selecting the window already active."},"source":{"file":"include/libtmux/entities.hpp","line":442,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-select_next_window"},{"id":"libtmux::Session::select_previous_window","publicId":"libtmux::Session::select_previous_window","name":"select_previous_window","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected select_previous_window() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":443,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-select_previous_window"},{"id":"libtmux::Session::select_last_window","publicId":"libtmux::Session::select_last_window","name":"select_last_window","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected select_last_window() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":444,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-select_last_window"},{"id":"libtmux::Session::new_window","publicId":"libtmux::Session::new_window","name":"new_window","kind":"method","modifiers":["readonly","overload"],"parent":"libtmux::Session","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nnew_window(std::string_view name) const;","returns":"expected"},{"params":[{"name":"options","type":"NewWindowOptions"}],"raw":"[[nodiscard]] expected\nnew_window(NewWindowOptions options) const;","returns":"expected"}],"doc":{"summary":"Created detached: a library call that stole the terminal would be a surprise, and attaching is a separate decision.","examples":[{"lang":"console","intro":"Create a window and split a pane. Create a detached window, split it side by side, and verify both panes belong to it. The cat processes keep each pane alive until fixture cleanup. Creation leaves the session selection unchanged because focus defaults to false. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/new-window-pane.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto before = session.active_window();\n if (!before.has_value()) {\n std::fprintf(stderr, \"%s\\n\", before.error().diagnostic.c_str());\n return 1;\n }\n const auto window = session.new_window(\n libtmux::NewWindowOptions{.name = \"editor\", .shell_command = \"exec cat\"});\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n const auto first = window->active_pane();\n if (!first.has_value()) {\n std::fprintf(stderr, \"%s\\n\", first.error().diagnostic.c_str());\n return 1;\n }\n const auto second = first->split(\n libtmux::SplitOptions{.horizontal = true, .shell_command = \"exec cat\"});\n if (!second.has_value()) {\n std::fprintf(stderr, \"%s\\n\", second.error().diagnostic.c_str());\n return 1;\n }\n const auto panes = window->panes();\n const auto after = session.active_window();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (!after.has_value()) {\n std::fprintf(stderr, \"%s\\n\", after.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 2 || *before != *after ||\n first->window_id() != second->window_id() || *first == *second) {\n std::fputs(\"created panes or selection do not match\\n\", stderr);\n return 1;\n }\n std::puts(\"Created editor with two panes; the active window is unchanged.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Created editor with two panes; the active window is unchanged.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":449,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-new_window"},{"id":"libtmux::Session::rename","publicId":"libtmux::Session::rename","name":"rename","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected rename(std::string_view name) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":453,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-rename"},{"id":"libtmux::Session::kill","publicId":"libtmux::Session::kill","name":"kill","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected kill() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":454,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-kill"},{"id":"libtmux::Session::refresh","publicId":"libtmux::Session::refresh","name":"refresh","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected refresh() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":455,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-refresh"},{"id":"libtmux::Session::options","publicId":"libtmux::Session::options","name":"options","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> options() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"Session options.","body":"Reading reports the value tmux would use, marking one that comes from a wider scope as inherited rather than hiding it."},"source":{"file":"include/libtmux/entities.hpp","line":459,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-options"},{"id":"libtmux::Session::option","publicId":"libtmux::Session::option","name":"option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\noption(std::string_view name) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":461,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-option"},{"id":"libtmux::Session::set_option","publicId":"libtmux::Session::set_option","name":"set_option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] expected set_option(std::string_view name,\n std::string_view value) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":462,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-set_option"},{"id":"libtmux::Session::unset_option","publicId":"libtmux::Session::unset_option","name":"unset_option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nunset_option(std::string_view name) const;","returns":"expected"}],"doc":{"summary":"Remove the value set here, so the wider scope shows through again."},"source":{"file":"include/libtmux/entities.hpp","line":466,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-unset_option"},{"id":"libtmux::Session::attach_command","publicId":"libtmux::Session::attach_command","name":"attach_command","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected attach_command() const;","returns":"expected"}],"doc":{"summary":"A command line that attaches a terminal to this session.","body":"Not a method that attaches: a tmux client needs a terminal, and every command this library runs talks to it through pipes, so an attach it performed itself could only ever fail. Spawn the returned argv and retain the value until that client exits."},"source":{"file":"include/libtmux/entities.hpp","line":474,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-attach_command"},{"id":"libtmux::Session::detach_clients","publicId":"libtmux::Session::detach_clients","name":"detach_clients","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected detach_clients() const;","returns":"expected"}],"doc":{"summary":"Send every client here away, leaving the session running."},"source":{"file":"include/libtmux/entities.hpp","line":477,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-detach_clients"},{"id":"libtmux::Session::expand","publicId":"libtmux::Session::expand","name":"expand","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[{"name":"format","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nexpand(std::string_view format) const;","returns":"expected"}],"doc":{"summary":"Ask tmux to expand a format against this session.","body":"The fields above are what a session is; this reaches the rest of tmux's vocabulary without a method per variable.\n\nA target tmux cannot find is not an error to tmux. It expands the fields it cannot resolve to nothing, prints the literals around them, and exits zero — so a session that has been killed answers with a blank that reads like a value. This asks for the session's own id alongside the caller's format and reports `missing` when the answer is not this session."},"source":{"file":"include/libtmux/entities.hpp","line":489,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-expand"},{"id":"libtmux::Session::show_message","publicId":"libtmux::Session::show_message","name":"show_message","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nshow_message(std::string_view text) const;","returns":"expected"}],"doc":{"summary":"Put a message on the status line of every client attached here, and send it to a control client as `message`.","body":"tmux expands the text as a format, so a `#{...}` in it is substituted rather than shown. Text built from data belongs in `escape_literal` first."},"source":{"file":"include/libtmux/entities.hpp","line":497,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-show_message"},{"id":"libtmux::Session::hooks","publicId":"libtmux::Session::hooks","name":"hooks","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> hooks() const;","returns":"expected, CommandFailure>"}],"source":{"file":"include/libtmux/entities.hpp","line":499,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-hooks"},{"id":"libtmux::Session::set_hook","publicId":"libtmux::Session::set_hook","name":"set_hook","kind":"method","modifiers":["readonly"],"parent":"libtmux::Session","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"command","type":"std::string_view"}],"raw":"[[nodiscard]] expected set_hook(std::string_view name,\n std::string_view command) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":500,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-set_hook"},{"id":"libtmux::Snapshot","publicId":"libtmux::Snapshot","name":"Snapshot","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Owning row storage, shared by every entity taken from it."},"source":{"file":"include/libtmux/snapshot.hpp","line":208,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-snapshot"},{"id":"libtmux::Snapshot::take","publicId":"libtmux::Snapshot::take","name":"take","kind":"method","modifiers":["static"],"parent":"libtmux::Snapshot","signatures":[{"params":[{"name":"backend","type":"std::shared_ptr"},{"name":"fields","type":"std::span"},{"name":"request","type":"CommandRequest"},{"name":"placement","type":"FormatArgument","default":"FormatArgument::flag"}],"raw":"[[nodiscard]] static expected, CommandFailure>\ntake(std::shared_ptr backend,\n std::span fields, CommandRequest request,\n FormatArgument placement = FormatArgument::flag);","returns":"expected, CommandFailure>"}],"doc":{"summary":"Run `request` with this entity's fields appended and parse what came back.","body":"Rows are parsed once, here: entities hold views into them, so a second parse would invalidate every entity already handed out."},"source":{"file":"include/libtmux/snapshot.hpp","line":164,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-snapshot-take"},{"id":"libtmux::Snapshot::take_in_session","publicId":"libtmux::Snapshot::take_in_session","name":"take_in_session","kind":"method","modifiers":["static","overload"],"parent":"libtmux::Snapshot","signatures":[{"params":[{"name":"backend","type":"std::shared_ptr"},{"name":"fields","type":"std::span"},{"name":"request","type":"CommandRequest"},{"name":"placement","type":"FormatArgument"},{"name":"session_id","type":"std::string_view"},{"name":"session_name","type":"std::string_view"}],"raw":"[[nodiscard]] static expected, CommandFailure>\ntake_in_session(std::shared_ptr backend,\n std::span fields, CommandRequest request,\n FormatArgument placement, std::string_view session_id,\n std::string_view session_name);","returns":"expected, CommandFailure>"},{"params":[{"name":"backend","type":"std::shared_ptr"},{"name":"fields","type":"std::span"},{"name":"request","type":"CommandRequest"},{"name":"placement","type":"FormatArgument"},{"name":"session_id","type":"std::string_view"},{"name":"session_name","type":"std::string_view"},{"name":"timeout","type":"std::optional"},{"name":"output_limit","type":"std::optional"}],"raw":"[[nodiscard]] static expected, CommandFailure>\ntake_in_session(std::shared_ptr backend,\n std::span fields, CommandRequest request,\n FormatArgument placement, std::string_view session_id,\n std::string_view session_name,\n std::optional timeout,\n std::optional output_limit);","returns":"expected, CommandFailure>"}],"source":{"file":"include/libtmux/snapshot.hpp","line":169,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-snapshot-take_in_session"},{"id":"libtmux::Snapshot::from_recording","publicId":"libtmux::Snapshot::from_recording","name":"from_recording","kind":"method","modifiers":["static"],"parent":"libtmux::Snapshot","signatures":[{"params":[{"name":"fields","type":"std::span"},{"name":"output","type":"std::string"}],"raw":"[[nodiscard]] static std::shared_ptr\nfrom_recording(std::span fields, std::string output);","returns":"std::shared_ptr"}],"doc":{"summary":"Output that did not come from a live server: a recording, a fixture, a test.","body":"Entities read and filter exactly as they would from a listing, and anything that would run a command reports that there is no connection. Returns null if a row does not match the fields it claims to have."},"source":{"file":"include/libtmux/snapshot.hpp","line":187,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-snapshot-from_recording"},{"id":"libtmux::Snapshot::Snapshot","publicId":"libtmux::Snapshot::Snapshot","name":"Snapshot","kind":"method","modifiers":["overload"],"parent":"libtmux::Snapshot","signatures":[{"params":[{"name":"const Snapshot &"}],"raw":"Snapshot(const Snapshot&) = delete;"},{"params":[{"name":"Snapshot &&"}],"raw":"Snapshot(Snapshot&&) = delete;"}],"source":{"file":"include/libtmux/snapshot.hpp","line":189,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-snapshot-snapshot-wiw0"},{"id":"libtmux::Snapshot::~Snapshot","publicId":"libtmux::Snapshot::~Snapshot","name":"~Snapshot","kind":"method","modifiers":[],"parent":"libtmux::Snapshot","signatures":[{"params":[],"raw":"~Snapshot();"}],"source":{"file":"include/libtmux/snapshot.hpp","line":193,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-snapshot-snapshot-134m"},{"id":"libtmux::Snapshot::index_of","publicId":"libtmux::Snapshot::index_of","name":"index_of","kind":"method","modifiers":["readonly"],"parent":"libtmux::Snapshot","signatures":[{"params":[{"name":"field","type":"std::string_view"}],"raw":"[[nodiscard]] std::size_t index_of(std::string_view field) const noexcept;","returns":"std::size_t"}],"source":{"file":"include/libtmux/snapshot.hpp","line":195,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-snapshot-index_of"},{"id":"libtmux::Snapshot::rows","publicId":"libtmux::Snapshot::rows","name":"rows","kind":"method","modifiers":["readonly"],"parent":"libtmux::Snapshot","signatures":[{"params":[],"raw":"[[nodiscard]] const std::vector>& rows() const noexcept;","returns":"const std::vector> &"}],"source":{"file":"include/libtmux/snapshot.hpp","line":198,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-snapshot-rows"},{"id":"libtmux::Snapshot::backend","publicId":"libtmux::Snapshot::backend","name":"backend","kind":"method","modifiers":["readonly"],"parent":"libtmux::Snapshot","signatures":[{"params":[],"raw":"[[nodiscard]] const std::shared_ptr& backend() const noexcept;","returns":"const std::shared_ptr &"}],"doc":{"summary":"The connection this came from, so an entity can act on what it describes."},"source":{"file":"include/libtmux/snapshot.hpp","line":203,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-snapshot-backend"},{"id":"libtmux::Window","publicId":"libtmux::Window","name":"Window","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"One window, as one listing saw it.","body":"A window can be linked into more than one session; this handle carries the session it was reached through, which is the one its qualified target addresses.\n\nReads its own fields without touching tmux, on the same terms as `Session`.","examples":[{"lang":"console","intro":"Traverse a session and its children. List windows and panes within one session, then follow a pane back to its owning window and session. Each relation method performs a new read; the original entity still holds its earlier snapshot. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/relations.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto windows = session.windows();\n const auto session_panes = session.panes();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!session_panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", session_panes.error().diagnostic.c_str());\n return 1;\n }\n if (windows->size() != 1 || session_panes->size() != 1) {\n std::fputs(\"expected one window and pane\\n\", stderr);\n return 1;\n }\n const auto& window = windows->front();\n const auto panes = window.panes();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 1) {\n std::fputs(\"expected one window pane\\n\", stderr);\n return 1;\n }\n const auto owner_window = panes->front().window();\n const auto owner_session = panes->front().session();\n if (!owner_window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_window.error().diagnostic.c_str());\n return 1;\n }\n if (!owner_session.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_session.error().diagnostic.c_str());\n return 1;\n }\n if (*owner_window != window || *owner_session != session ||\n panes->front() != session_panes->front()) {\n std::fputs(\"entity ownership does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"api session -> one window -> one pane; owners match.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"api session -> one window -> one pane; owners match.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":514,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window"},{"id":"libtmux::Window::kNoun","publicId":"libtmux::Window::kNoun","name":"kNoun","kind":"attribute","modifiers":["static"],"parent":"libtmux::Window","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/entities.hpp","line":514,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-knoun"},{"id":"libtmux::Window::kSessionNameField","publicId":"libtmux::Window::kSessionNameField","name":"kSessionNameField","kind":"attribute","modifiers":["static"],"parent":"libtmux::Window","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/entities.hpp","line":515,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-ksessionnamefield"},{"id":"libtmux::Window::kFields","publicId":"libtmux::Window::kFields","name":"kFields","kind":"attribute","modifiers":["static"],"parent":"libtmux::Window","signatures":[],"type":"std::array","source":{"file":"include/libtmux/entities.hpp","line":516,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-kfields"},{"id":"libtmux::Window::Window","publicId":"libtmux::Window::Window","name":"Window","kind":"method","modifiers":[],"parent":"libtmux::Window","signatures":[{"params":[{"name":"snapshot","type":"std::shared_ptr"},{"name":"row","type":"std::size_t"}],"raw":"Window(std::shared_ptr snapshot, std::size_t row) noexcept;"}],"source":{"file":"include/libtmux/entities.hpp","line":530,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-window"},{"id":"libtmux::Window::id","publicId":"libtmux::Window::id","name":"id","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] WindowId id() const noexcept;","returns":"WindowId"}],"source":{"file":"include/libtmux/entities.hpp","line":536,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-id-roem"},{"id":"libtmux::Window::name","publicId":"libtmux::Window::name","name":"name","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view name() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/entities.hpp","line":537,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-name-145z"},{"id":"libtmux::Window::active","publicId":"libtmux::Window::active","name":"active","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] bool active() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":538,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-active-ggh4"},{"id":"libtmux::Window::session_id","publicId":"libtmux::Window::session_id","name":"session_id","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] SessionId session_id() const noexcept;","returns":"SessionId"}],"doc":{"summary":"The link to the parent, carried in the row so traversal upward costs nothing until the parent itself is wanted."},"source":{"file":"include/libtmux/entities.hpp","line":541,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-session_id-2uq6"},{"id":"libtmux::Window::index","publicId":"libtmux::Window::index","name":"index","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] long long index() const noexcept;","returns":"long long"}],"doc":{"summary":"Position within its session, which `base-index` is free to start anywhere."},"source":{"file":"include/libtmux/entities.hpp","line":543,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-index-1i4m"},{"id":"libtmux::Window::pane_count","publicId":"libtmux::Window::pane_count","name":"pane_count","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] long long pane_count() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":544,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-pane_count-m51h"},{"id":"libtmux::Window::width","publicId":"libtmux::Window::width","name":"width","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] long long width() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":547,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-width-ncb8"},{"id":"libtmux::Window::height","publicId":"libtmux::Window::height","name":"height","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] long long height() const noexcept;","returns":"long long"}],"source":{"file":"include/libtmux/entities.hpp","line":548,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-height-d46i"},{"id":"libtmux::Window::layout","publicId":"libtmux::Window::layout","name":"layout","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view layout() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"An opaque token: hand it back to `select_layout` exactly as received, and do not parse its shape.","body":"tmux 3.8+ reports JSON here for a plain client, and keeps the classic layout string for a control client unless that client has asked tmux for JSON with `refresh-client -f new-layouts` — which `Connection::connect` sends on every connection, so control mode through this library gets JSON on 3.8+ too.\n\nA version's own `layout()` output round-trips through its own `select_layout` on that version; see that method's comment for what \"round-trips\" promises and what it does not."},"source":{"file":"include/libtmux/entities.hpp","line":561,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-layout-srt0"},{"id":"libtmux::Window::zoomed","publicId":"libtmux::Window::zoomed","name":"zoomed","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] bool zoomed() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":562,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-zoomed-8v2t"},{"id":"libtmux::Window::bell","publicId":"libtmux::Window::bell","name":"bell","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] bool bell() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":563,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-bell-e6d4"},{"id":"libtmux::Window::activity","publicId":"libtmux::Window::activity","name":"activity","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] bool activity() const noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":564,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-activity-yjhl"},{"id":"libtmux::Window::linked_sessions","publicId":"libtmux::Window::linked_sessions","name":"linked_sessions","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] long long linked_sessions() const noexcept;","returns":"long long"}],"doc":{"summary":"How many sessions hold this window.","body":"More than one means the same window is shown in several places, and a command aimed at a bare id could land on any of them — which is why targets here are qualified."},"source":{"file":"include/libtmux/entities.hpp","line":568,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-linked_sessions-w58l"},{"id":"libtmux::Window::session_name","publicId":"libtmux::Window::session_name","name":"session_name","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view session_name() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"The owning psmux route carried by Windows live snapshots.","body":"Empty on POSIX and in recordings made from the backward-compatible `kFields` schema."},"source":{"file":"include/libtmux/entities.hpp","line":573,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-session_name-1x3f"},{"id":"libtmux::Window::target","publicId":"libtmux::Window::target","name":"target","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] std::string target() const;","returns":"std::string"}],"doc":{"summary":"How to address this window, and the reason a window id alone will not do.","body":"The same window can be linked into several sessions, and a bare `@id` leaves tmux to pick one of those homes: the index it reports, the session it names, and the link a move or a kill lands on then depend on a choice the caller did not make. Qualifying by the session this window was listed from names one link.\n\nPrefer `checked_target()`; this source-compatible form returns an empty string when psmux cannot bind a reusable target without a stale race."},"source":{"file":"include/libtmux/entities.hpp","line":597,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-target"},{"id":"libtmux::Window::checked_target","publicId":"libtmux::Window::checked_target","name":"checked_target","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected checked_target() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":598,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-checked_target"},{"id":"libtmux::Window::session","publicId":"libtmux::Window::session","name":"session","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected session() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":600,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-session"},{"id":"libtmux::Window::panes","publicId":"libtmux::Window::panes","name":"panes","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> panes() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Traverse a session and its children. List windows and panes within one session, then follow a pane back to its owning window and session. Each relation method performs a new read; the original entity still holds its earlier snapshot. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/relations.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto windows = session.windows();\n const auto session_panes = session.panes();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n if (!session_panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", session_panes.error().diagnostic.c_str());\n return 1;\n }\n if (windows->size() != 1 || session_panes->size() != 1) {\n std::fputs(\"expected one window and pane\\n\", stderr);\n return 1;\n }\n const auto& window = windows->front();\n const auto panes = window.panes();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 1) {\n std::fputs(\"expected one window pane\\n\", stderr);\n return 1;\n }\n const auto owner_window = panes->front().window();\n const auto owner_session = panes->front().session();\n if (!owner_window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_window.error().diagnostic.c_str());\n return 1;\n }\n if (!owner_session.has_value()) {\n std::fprintf(stderr, \"%s\\n\", owner_session.error().diagnostic.c_str());\n return 1;\n }\n if (*owner_window != window || *owner_session != session ||\n panes->front() != session_panes->front()) {\n std::fputs(\"entity ownership does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"api session -> one window -> one pane; owners match.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"api session -> one window -> one pane; owners match.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":601,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-panes"},{"id":"libtmux::Window::active_pane","publicId":"libtmux::Window::active_pane","name":"active_pane","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected active_pane() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":602,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-active_pane"},{"id":"libtmux::Window::split","publicId":"libtmux::Window::split","name":"split","kind":"method","modifiers":["readonly","overload"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected split() const;","returns":"expected"},{"params":[{"name":"options","type":"SplitOptions"}],"raw":"[[nodiscard]] expected split(SplitOptions options) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":604,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-split"},{"id":"libtmux::Window::rename","publicId":"libtmux::Window::rename","name":"rename","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected rename(std::string_view name) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":606,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-rename"},{"id":"libtmux::Window::select_layout","publicId":"libtmux::Window::select_layout","name":"select_layout","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"layout","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nselect_layout(std::string_view layout) const;","returns":"expected"}],"doc":{"summary":"Rearrange the panes.","body":"tmux names five layouts, plus two mirrored ones on tmux 3.5+, and also accepts the layout description `layout()` returns.\n\nRestoring one exactly — the same pane back at the same position, not only the same shape — holds on tmux 3.8+, where the saved string is JSON and carries each pane's id. On tmux 3.7 and earlier the classic layout string restores the shape but can rotate which pane lands in which cell (measured against raw tmux; not a choice this library makes). A JSON layout is refused before 3.8, and a mirrored preset before 3.5.\n\nAnything not shaped like one of those — a leading `-`, a name tmux does not know, or an incomplete layout string — is refused before reaching tmux rather than passed through: on tmux 3.3 and 3.3a, that shape crashes the server outright rather than being refused."},"source":{"file":"include/libtmux/entities.hpp","line":624,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-select_layout"},{"id":"libtmux::Window::resize","publicId":"libtmux::Window::resize","name":"resize","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"width","type":"long long"},{"name":"height","type":"long long"}],"raw":"[[nodiscard]] expected resize(long long width,\n long long height) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":625,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-resize"},{"id":"libtmux::Window::next_layout","publicId":"libtmux::Window::next_layout","name":"next_layout","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected next_layout() const;","returns":"expected"}],"doc":{"summary":"Step through tmux's preset arrangements, and turn the panes within the one in use.","body":"The layouts are tmux's list, not a caller's: asking for \"the next one\" is the only way to reach them without naming each. Rotating is a different act — it moves which pane occupies which cell and leaves the cells where they are.\n\nNone of the three refuses a window holding a single pane. tmux accepts all of them there and changes nothing, which is worth knowing before treating success as evidence that something moved."},"source":{"file":"include/libtmux/entities.hpp","line":638,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-next_layout"},{"id":"libtmux::Window::previous_layout","publicId":"libtmux::Window::previous_layout","name":"previous_layout","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected previous_layout() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":639,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-previous_layout"},{"id":"libtmux::Window::rotate","publicId":"libtmux::Window::rotate","name":"rotate","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected rotate() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":640,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-rotate"},{"id":"libtmux::Window::select_last_pane","publicId":"libtmux::Window::select_last_pane","name":"select_last_pane","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected select_last_pane() const;","returns":"expected"}],"doc":{"summary":"Go back to the pane that was selected before the current one, and answer with it.","body":"Server state, like the window equivalent: nothing in a listing says which pane that was. A window holding one pane is refused rather than reselecting it, which is what tmux does."},"source":{"file":"include/libtmux/entities.hpp","line":647,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-select_last_pane"},{"id":"libtmux::Window::link_to","publicId":"libtmux::Window::link_to","name":"link_to","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"target","type":"const Session &"}],"raw":"[[nodiscard]] expected link_to(const Session& target) const;","returns":"expected"}],"doc":{"summary":"Show this window in another session as well.","body":"The same window, not a copy: what runs in it is running in one place and shown in two."},"source":{"file":"include/libtmux/entities.hpp","line":651,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-link_to"},{"id":"libtmux::Window::unlink","publicId":"libtmux::Window::unlink","name":"unlink","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected unlink() const;","returns":"expected"}],"doc":{"summary":"Stop showing it in the session this value came from.","body":"tmux refuses to remove the last link rather than leaving a window no session holds, and that refusal is kept: a caller who meant to be rid of the window wants `kill`, which says so."},"source":{"file":"include/libtmux/entities.hpp","line":658,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-unlink"},{"id":"libtmux::Window::swap_with","publicId":"libtmux::Window::swap_with","name":"swap_with","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"other","type":"const Window &"}],"raw":"[[nodiscard]] expected swap_with(const Window& other) const;","returns":"expected"}],"doc":{"summary":"Exchange positions with another window, keeping both ids."},"source":{"file":"include/libtmux/entities.hpp","line":661,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-swap_with"},{"id":"libtmux::Window::move_to","publicId":"libtmux::Window::move_to","name":"move_to","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"index","type":"long long"}],"raw":"[[nodiscard]] expected move_to(long long index) const;","returns":"expected"}],"doc":{"summary":"Move to another index within the same session."},"source":{"file":"include/libtmux/entities.hpp","line":663,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-move_to"},{"id":"libtmux::Window::expand","publicId":"libtmux::Window::expand","name":"expand","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"format","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nexpand(std::string_view format) const;","returns":"expected"}],"doc":{"summary":"Ask tmux to expand a format against this window: the same reach the session form gives, guarded the same way.","body":"A window that has gone reports `missing` rather than answering with a blank."},"source":{"file":"include/libtmux/entities.hpp","line":669,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-expand"},{"id":"libtmux::Window::show_message","publicId":"libtmux::Window::show_message","name":"show_message","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nshow_message(std::string_view text) const;","returns":"expected"}],"doc":{"summary":"Show a message to the clients watching this window's session.","body":"The window is the context the text expands in, not just who sees it: `#{window_name}` in a message sent from here names this window even while another is the active one."},"source":{"file":"include/libtmux/entities.hpp","line":677,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-show_message"},{"id":"libtmux::Window::select","publicId":"libtmux::Window::select","name":"select","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected select() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":679,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-select"},{"id":"libtmux::Window::kill","publicId":"libtmux::Window::kill","name":"kill","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected kill() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":680,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-kill"},{"id":"libtmux::Window::refresh","publicId":"libtmux::Window::refresh","name":"refresh","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected refresh() const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":681,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-refresh"},{"id":"libtmux::Window::options","publicId":"libtmux::Window::options","name":"options","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[],"raw":"[[nodiscard]] expected, CommandFailure> options() const;","returns":"expected, CommandFailure>"}],"doc":{"summary":"Window options.","body":"tmux looks a named option up in the table it belongs to, so the scope here selects which window provides the context and the inheritance chain, not which names are legal."},"source":{"file":"include/libtmux/entities.hpp","line":686,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-options"},{"id":"libtmux::Window::option","publicId":"libtmux::Window::option","name":"option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\noption(std::string_view name) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":688,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-option"},{"id":"libtmux::Window::set_option","publicId":"libtmux::Window::set_option","name":"set_option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"name","type":"std::string_view"},{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] expected set_option(std::string_view name,\n std::string_view value) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":689,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-set_option"},{"id":"libtmux::Window::unset_option","publicId":"libtmux::Window::unset_option","name":"unset_option","kind":"method","modifiers":["readonly"],"parent":"libtmux::Window","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nunset_option(std::string_view name) const;","returns":"expected"}],"source":{"file":"include/libtmux/entities.hpp","line":692,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-unset_option"},{"id":"libtmux::detail::Row","publicId":"libtmux::detail::Row","name":"Row","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"The storage every entity has, in one place: the snapshot that owns the bytes and which of its rows this entity is.","body":"Inherited privately — an entity is implemented in terms of a row, it is not a kind of row."},"source":{"file":"include/libtmux/entities.hpp","line":347,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-row"},{"id":"libtmux::detail::Row::Row","publicId":"libtmux::detail::Row::Row","name":"Row","kind":"method","modifiers":[],"parent":"libtmux::detail::Row","signatures":[{"params":[{"name":"snapshot","type":"std::shared_ptr"},{"name":"row","type":"std::size_t"}],"raw":"Row(std::shared_ptr snapshot, std::size_t row) noexcept;"}],"source":{"file":"include/libtmux/entities.hpp","line":281,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-row-row"},{"id":"libtmux::detail::Row::server","publicId":"libtmux::detail::Row::server","name":"server","kind":"method","modifiers":["readonly"],"parent":"libtmux::detail::Row","signatures":[{"params":[],"raw":"[[nodiscard]] expected server() const;","returns":"expected"}],"doc":{"summary":"The server this entity came from, for a command the typed surface does not cover.","body":"This rather than a public `run`: a command built there would lose the qualified target the entity knows to use, and a caller reaching for the escape hatch should be able to see that they are back to raw argv."},"source":{"file":"include/libtmux/entities.hpp","line":326,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-row-server"},{"id":"libtmux::detail::Row::connection_identity","publicId":"libtmux::detail::Row::connection_identity","name":"connection_identity","kind":"method","modifiers":["readonly"],"parent":"libtmux::detail::Row","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view connection_identity() const noexcept;","returns":"std::string_view"}],"doc":{"summary":"Which tmux server incarnation this came from.","body":"Equality and hashing are defined in terms of it, so two handles opened on one live socket agree but a handle kept across a restart does not become a handle to the replacement.\n\nEmpty for a value read out of a recording, which is on no server at all."},"source":{"file":"include/libtmux/entities.hpp","line":333,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-row-connection_identity"},{"id":"libtmux::test::EnvironmentGuard","publicId":"libtmux::test::EnvironmentGuard","name":"EnvironmentGuard","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Environment variables set for the lifetime of this value and restored on destruction, including the ones that were previously unset."},"source":{"file":"include/libtmux/testing/environment_guard.hpp","line":47,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-environmentguard"},{"id":"libtmux::test::EnvironmentGuard::EnvironmentGuard","publicId":"libtmux::test::EnvironmentGuard::EnvironmentGuard","name":"EnvironmentGuard","kind":"method","modifiers":["overload"],"parent":"libtmux::test::EnvironmentGuard","signatures":[{"params":[{"name":"name","type":"std::string"},{"name":"value","type":"std::string_view"}],"raw":"EnvironmentGuard(std::string name, std::string_view value);"},{"params":[{"name":"const EnvironmentGuard &"}],"raw":"EnvironmentGuard(const EnvironmentGuard&) = delete;"},{"params":[{"name":"EnvironmentGuard &&"}],"raw":"EnvironmentGuard(EnvironmentGuard&&) = delete;"}],"source":{"file":"include/libtmux/testing/environment_guard.hpp","line":26,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-environmentguard-environmentguard-f89v"},{"id":"libtmux::test::EnvironmentGuard::~EnvironmentGuard","publicId":"libtmux::test::EnvironmentGuard::~EnvironmentGuard","name":"~EnvironmentGuard","kind":"method","modifiers":[],"parent":"libtmux::test::EnvironmentGuard","signatures":[{"params":[],"raw":"~EnvironmentGuard();"}],"source":{"file":"include/libtmux/testing/environment_guard.hpp","line":33,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-environmentguard-environmentguard-mcrv"},{"id":"libtmux::test::ScopedTmuxServer","publicId":"libtmux::test::ScopedTmuxServer","name":"ScopedTmuxServer","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"A tmux server that exists for the lifetime of this value.","body":"Owns a private socket and directory and kills the server on destruction, so suites running at once cannot see each other's sessions. Teardown reports rather than throws — a destructor that throws during a failing test hides the failure."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":130,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver"},{"id":"libtmux::test::ScopedTmuxServer::start","publicId":"libtmux::test::ScopedTmuxServer::start","name":"start","kind":"method","modifiers":["static"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[{"name":"options","type":"ScopedTmuxServerOptions","default":"{}"}],"raw":"static libtmux::expected\nstart(ScopedTmuxServerOptions options = {});","returns":"libtmux::expected"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":105,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-start"},{"id":"libtmux::test::ScopedTmuxServer::~ScopedTmuxServer","publicId":"libtmux::test::ScopedTmuxServer::~ScopedTmuxServer","name":"~ScopedTmuxServer","kind":"method","modifiers":[],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"~ScopedTmuxServer() noexcept;"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":106,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-scopedtmuxserver-xky0"},{"id":"libtmux::test::ScopedTmuxServer::ScopedTmuxServer","publicId":"libtmux::test::ScopedTmuxServer::ScopedTmuxServer","name":"ScopedTmuxServer","kind":"method","modifiers":["overload"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[{"name":"ScopedTmuxServer &&"}],"raw":"ScopedTmuxServer(ScopedTmuxServer&&) noexcept;"},{"params":[{"name":"const ScopedTmuxServer &"}],"raw":"ScopedTmuxServer(const ScopedTmuxServer&) = delete;"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":107,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-scopedtmuxserver-6op7"},{"id":"libtmux::test::ScopedTmuxServer::socket_mode","publicId":"libtmux::test::ScopedTmuxServer::socket_mode","name":"socket_mode","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] SocketMode socket_mode() const noexcept;","returns":"SocketMode"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":112,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-socket_mode"},{"id":"libtmux::test::ScopedTmuxServer::socket_name","publicId":"libtmux::test::ScopedTmuxServer::socket_name","name":"socket_name","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] std::optional socket_name() const noexcept;","returns":"std::optional"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":113,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-socket_name"},{"id":"libtmux::test::ScopedTmuxServer::socket_path","publicId":"libtmux::test::ScopedTmuxServer::socket_path","name":"socket_path","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] const std::filesystem::path& socket_path() const noexcept;","returns":"const std::filesystem::path &"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":114,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-socket_path"},{"id":"libtmux::test::ScopedTmuxServer::tmux_tmpdir","publicId":"libtmux::test::ScopedTmuxServer::tmux_tmpdir","name":"tmux_tmpdir","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] const std::filesystem::path& tmux_tmpdir() const noexcept;","returns":"const std::filesystem::path &"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":115,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-tmux_tmpdir"},{"id":"libtmux::test::ScopedTmuxServer::session_name","publicId":"libtmux::test::ScopedTmuxServer::session_name","name":"session_name","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view session_name() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":116,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-session_name"},{"id":"libtmux::test::ScopedTmuxServer::socket_namespace","publicId":"libtmux::test::ScopedTmuxServer::socket_namespace","name":"socket_namespace","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view socket_namespace() const noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":117,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-socket_namespace"},{"id":"libtmux::test::ScopedTmuxServer::server_pid","publicId":"libtmux::test::ScopedTmuxServer::server_pid","name":"server_pid","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] int server_pid() const noexcept;","returns":"int"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-server_pid"},{"id":"libtmux::test::ScopedTmuxServer::command_prefix","publicId":"libtmux::test::ScopedTmuxServer::command_prefix","name":"command_prefix","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] std::vector command_prefix() const;","returns":"std::vector"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":119,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-command_prefix"},{"id":"libtmux::test::ScopedTmuxServer::is_alive","publicId":"libtmux::test::ScopedTmuxServer::is_alive","name":"is_alive","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] bool is_alive() const;","returns":"bool"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":120,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-is_alive"},{"id":"libtmux::test::ScopedTmuxServer::child_environment","publicId":"libtmux::test::ScopedTmuxServer::child_environment","name":"child_environment","kind":"method","modifiers":["readonly"],"parent":"libtmux::test::ScopedTmuxServer","signatures":[{"params":[],"raw":"[[nodiscard]] std::vector child_environment() const;","returns":"std::vector"}],"doc":{"summary":"`NAME=VALUE` entries for a child that should reach this server and not the surrounding one: `TMUX_TMPDIR` inside the private tree, `TMUX` and `TMUX_PANE` absent."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":125,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserver-child_environment"},{"id":"libtmux::ReadyStatus","publicId":"libtmux::ReadyStatus","name":"ReadyStatus","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"include/libtmux/async.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-readystatus"},{"id":"libtmux::ReadyStatus::ready","publicId":"libtmux::ReadyStatus::ready","name":"ready","kind":"constant","modifiers":[],"parent":"libtmux::ReadyStatus","signatures":[],"source":{"file":"include/libtmux/async.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-readystatus-ready"},{"id":"libtmux::ReadyStatus::timeout","publicId":"libtmux::ReadyStatus::timeout","name":"timeout","kind":"constant","modifiers":[],"parent":"libtmux::ReadyStatus","signatures":[],"source":{"file":"include/libtmux/async.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-readystatus-timeout"},{"id":"libtmux::ReadyStatus::closed","publicId":"libtmux::ReadyStatus::closed","name":"closed","kind":"constant","modifiers":[],"parent":"libtmux::ReadyStatus","signatures":[],"source":{"file":"include/libtmux/async.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-readystatus-closed"},{"id":"libtmux::ServerImplementation","publicId":"libtmux::ServerImplementation","name":"ServerImplementation","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Which server answered: tmux, a compatible reimplementation, or not yet determined."},"source":{"file":"include/libtmux/capabilities.hpp","line":15,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverimplementation"},{"id":"libtmux::ServerImplementation::unknown","publicId":"libtmux::ServerImplementation::unknown","name":"unknown","kind":"constant","modifiers":[],"parent":"libtmux::ServerImplementation","signatures":[],"source":{"file":"include/libtmux/capabilities.hpp","line":15,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverimplementation-unknown"},{"id":"libtmux::ServerImplementation::tmux","publicId":"libtmux::ServerImplementation::tmux","name":"tmux","kind":"constant","modifiers":[],"parent":"libtmux::ServerImplementation","signatures":[],"source":{"file":"include/libtmux/capabilities.hpp","line":15,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverimplementation-tmux"},{"id":"libtmux::ServerImplementation::psmux","publicId":"libtmux::ServerImplementation::psmux","name":"psmux","kind":"constant","modifiers":[],"parent":"libtmux::ServerImplementation","signatures":[],"source":{"file":"include/libtmux/capabilities.hpp","line":15,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverimplementation-psmux"},{"id":"libtmux::BackendKind","publicId":"libtmux::BackendKind","name":"BackendKind","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"How commands reach the server: by spawning a process, or through a backend the caller supplied."},"source":{"file":"include/libtmux/capabilities.hpp","line":36,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-backendkind"},{"id":"libtmux::BackendKind::custom","publicId":"libtmux::BackendKind::custom","name":"custom","kind":"constant","modifiers":[],"parent":"libtmux::BackendKind","signatures":[],"source":{"file":"include/libtmux/capabilities.hpp","line":36,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-backendkind-custom"},{"id":"libtmux::BackendKind::subprocess","publicId":"libtmux::BackendKind::subprocess","name":"subprocess","kind":"constant","modifiers":[],"parent":"libtmux::BackendKind","signatures":[],"source":{"file":"include/libtmux/capabilities.hpp","line":36,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-backendkind-subprocess"},{"id":"libtmux::BackendKind::control","publicId":"libtmux::BackendKind::control","name":"control","kind":"constant","modifiers":[],"parent":"libtmux::BackendKind","signatures":[],"doc":{"summary":"Held-open control clients, with a launch for what they cannot answer completely.","body":"Appended: the values before it are an installed ABI."},"source":{"file":"include/libtmux/capabilities.hpp","line":36,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-backendkind-control"},{"id":"libtmux::ServerFeature","publicId":"libtmux::ServerFeature","name":"ServerFeature","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Coarse-grained promises callers choose around.","body":"Raw commands remain unchecked; the psmux preview promises only exact inspection and namespace cleanup."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature"},{"id":"libtmux::ServerFeature::exact_inspection","publicId":"libtmux::ServerFeature::exact_inspection","name":"exact_inspection","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"Exact session/window/pane listings, traversal, refresh, and format reads."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-exact_inspection"},{"id":"libtmux::ServerFeature::server_cleanup","publicId":"libtmux::ServerFeature::server_cleanup","name":"server_cleanup","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"Cleanup of the selected namespace under the Server's execution policy."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-server_cleanup"},{"id":"libtmux::ServerFeature::server_entity_lookup","publicId":"libtmux::ServerFeature::server_entity_lookup","name":"server_entity_lookup","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"`Server::window` and `Server::pane` without an owning session handle."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-server_entity_lookup"},{"id":"libtmux::ServerFeature::session_creation","publicId":"libtmux::ServerFeature::session_creation","name":"session_creation","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"Typed session creation with an attributable result."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-session_creation"},{"id":"libtmux::ServerFeature::window_creation","publicId":"libtmux::ServerFeature::window_creation","name":"window_creation","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"Typed window creation with an attributable result."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-window_creation"},{"id":"libtmux::ServerFeature::captured_mutation","publicId":"libtmux::ServerFeature::captured_mutation","name":"captured_mutation","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"Mutating an object captured in an earlier snapshot."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-captured_mutation"},{"id":"libtmux::ServerFeature::pane_io","publicId":"libtmux::ServerFeature::pane_io","name":"pane_io","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"Pane input, capture, copy mode, history, and piping."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-pane_io"},{"id":"libtmux::ServerFeature::terminal_attach","publicId":"libtmux::ServerFeature::terminal_attach","name":"terminal_attach","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"Producing argv that attaches a caller-owned terminal to a session."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-terminal_attach"},{"id":"libtmux::ServerFeature::reusable_window_target","publicId":"libtmux::ServerFeature::reusable_window_target","name":"reusable_window_target","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"A reusable public target that identifies one captured window link."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-reusable_window_target"},{"id":"libtmux::ServerFeature::server_state","publicId":"libtmux::ServerFeature::server_state","name":"server_state","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"Clients, buffers, commands, configuration, options, and hooks."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-server_state"},{"id":"libtmux::ServerFeature::wait_channels","publicId":"libtmux::ServerFeature::wait_channels","name":"wait_channels","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"Latched `wait-for` channels."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-wait_channels"},{"id":"libtmux::ServerFeature::control_mode","publicId":"libtmux::ServerFeature::control_mode","name":"control_mode","kind":"constant","modifiers":[],"parent":"libtmux::ServerFeature","signatures":[],"doc":{"summary":"This Server can open a persistent control connection."},"source":{"file":"include/libtmux/capabilities.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-serverfeature-control_mode"},{"id":"libtmux::CardinalityError","publicId":"libtmux::CardinalityError","name":"CardinalityError","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Why a lookup that required exactly one match did not get one.","body":"The two want opposite fixes, which is why they are distinct: one needs wider criteria and the other needs narrower.","examples":[{"lang":"console","intro":"Filter snapshots and require one match. Filter a window snapshot with typed fields and standard ranges. exactly_one_owned copies a unique match, so the temporary view is safe. Missing and ambiguous matches have different CardinalityError values; these lookups make no tmux calls. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/query.cpp","code":"#include \n#include \n#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n for (const char* name : {\"editor\", \"logs\"}) {\n const auto made = sessions->front().new_window(\n libtmux::NewWindowOptions{.name = name, .shell_command = \"exec cat\"});\n if (!made.has_value()) {\n std::fprintf(stderr, \"%s\\n\", made.error().diagnostic.c_str());\n return 1;\n }\n }\n const auto windows = server->windows();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n const auto wanted =\n libtmux::window::name.starts_with(\"edit\") || libtmux::window::name == \"logs\";\n auto matches = *windows | libtmux::matching(wanted);\n const auto editor = libtmux::exactly_one_owned(\n *windows | libtmux::matching(libtmux::window::name == \"editor\"));\n auto absent = *windows | libtmux::matching(libtmux::window::name == \"absent\");\n const auto missing = libtmux::exactly_one(absent);\n const auto ambiguous = libtmux::exactly_one(matches);\n if (!editor.has_value() || std::ranges::distance(matches) != 2 ||\n missing.has_value() ||\n missing.error() != libtmux::CardinalityError::none_matched ||\n ambiguous.has_value() ||\n ambiguous.error() != libtmux::CardinalityError::several_matched) {\n std::fputs(\"unexpected query cardinality\\n\", stderr);\n return 1;\n }\n std::printf(\"Selected %s; two matches; missing and ambiguous are distinct.\\n\",\n std::string{editor->name()}.c_str());\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Selected editor; two matches; missing and ambiguous are distinct.\n"}]},"source":{"file":"include/libtmux/cardinality.hpp","line":26,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-cardinalityerror"},{"id":"libtmux::CardinalityError::none_matched","publicId":"libtmux::CardinalityError::none_matched","name":"none_matched","kind":"constant","modifiers":[],"parent":"libtmux::CardinalityError","signatures":[],"source":{"file":"include/libtmux/cardinality.hpp","line":26,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-cardinalityerror-none_matched"},{"id":"libtmux::CardinalityError::several_matched","publicId":"libtmux::CardinalityError::several_matched","name":"several_matched","kind":"constant","modifiers":[],"parent":"libtmux::CardinalityError","signatures":[],"source":{"file":"include/libtmux/cardinality.hpp","line":26,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-cardinalityerror-several_matched"},{"id":"libtmux::FailureKind","publicId":"libtmux::FailureKind","name":"FailureKind","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Why a command did not produce an answer, in the order a caller would diagnose them: bad before it left, then how it left, then what came back."},"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind"},{"id":"libtmux::FailureKind::validation","publicId":"libtmux::FailureKind::validation","name":"validation","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-validation"},{"id":"libtmux::FailureKind::spawn","publicId":"libtmux::FailureKind::spawn","name":"spawn","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-spawn"},{"id":"libtmux::FailureKind::pre_exec","publicId":"libtmux::FailureKind::pre_exec","name":"pre_exec","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-pre_exec"},{"id":"libtmux::FailureKind::pipe","publicId":"libtmux::FailureKind::pipe","name":"pipe","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-pipe"},{"id":"libtmux::FailureKind::timeout","publicId":"libtmux::FailureKind::timeout","name":"timeout","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-timeout"},{"id":"libtmux::FailureKind::refused","publicId":"libtmux::FailureKind::refused","name":"refused","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-refused"},{"id":"libtmux::FailureKind::missing","publicId":"libtmux::FailureKind::missing","name":"missing","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-missing"},{"id":"libtmux::FailureKind::truncated","publicId":"libtmux::FailureKind::truncated","name":"truncated","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"doc":{"summary":"tmux ran and answered, and the answer did not fit.","body":"Reported rather than returned, because a truncated answer is indistinguishable from a complete one: the last line is simply cut, mid-word."},"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-truncated"},{"id":"libtmux::FailureKind::unsupported","publicId":"libtmux::FailureKind::unsupported","name":"unsupported","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"doc":{"summary":"The backend cannot provide this operation without weakening its contract; nothing was dispatched."},"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-unsupported"},{"id":"libtmux::FailureKind::overloaded","publicId":"libtmux::FailureKind::overloaded","name":"overloaded","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"doc":{"summary":"More work is in flight than the engine accepts.","body":"Nothing was dispatched, so this is the one refusal a caller may simply try again later — appended rather than grouped, because the values before it are an installed ABI."},"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-overloaded"},{"id":"libtmux::FailureKind::cancelled","publicId":"libtmux::FailureKind::cancelled","name":"cancelled","kind":"constant","modifiers":[],"parent":"libtmux::FailureKind","signatures":[],"doc":{"summary":"The caller withdrew the call.","body":"Whether tmux acted is a separate question, and `delivery` is what answers it: a cancellation accepted before dispatch is not_started, and one accepted after the command was written is not."},"source":{"file":"include/libtmux/command.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-failurekind-cancelled"},{"id":"libtmux::ArgumentSensitivity","publicId":"libtmux::ArgumentSensitivity","name":"ArgumentSensitivity","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","doc":{"summary":"Whether an argument may appear in a diagnostic, a log, or an error message."},"source":{"file":"include/libtmux/command.hpp","line":123,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-argumentsensitivity"},{"id":"libtmux::ArgumentSensitivity::public_value","publicId":"libtmux::ArgumentSensitivity::public_value","name":"public_value","kind":"constant","modifiers":[],"parent":"libtmux::ArgumentSensitivity","signatures":[],"source":{"file":"include/libtmux/command.hpp","line":123,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-argumentsensitivity-public_value"},{"id":"libtmux::ArgumentSensitivity::secret","publicId":"libtmux::ArgumentSensitivity::secret","name":"secret","kind":"constant","modifiers":[],"parent":"libtmux::ArgumentSensitivity","signatures":[],"source":{"file":"include/libtmux/command.hpp","line":123,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-argumentsensitivity-secret"},{"id":"libtmux::ControlTerminal","publicId":"libtmux::ControlTerminal","name":"ControlTerminal","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","doc":{"summary":"How tmux closed a reply block: normally, or reporting a failure."},"source":{"file":"include/libtmux/control.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlterminal"},{"id":"libtmux::ControlTerminal::end","publicId":"libtmux::ControlTerminal::end","name":"end","kind":"constant","modifiers":[],"parent":"libtmux::ControlTerminal","signatures":[],"source":{"file":"include/libtmux/control.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlterminal-end"},{"id":"libtmux::ControlTerminal::error","publicId":"libtmux::ControlTerminal::error","name":"error","kind":"constant","modifiers":[],"parent":"libtmux::ControlTerminal","signatures":[],"source":{"file":"include/libtmux/control.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlterminal-error"},{"id":"libtmux::DeliveryStatus","publicId":"libtmux::DeliveryStatus","name":"DeliveryStatus","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","doc":{"summary":"How far a command is known to have got before something stopped it.","body":"This is the value that decides whether retrying is safe: only `not_started` is safe blindly, and `indeterminate` is an answer rather than a missing one."},"source":{"file":"include/libtmux/delivery.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-deliverystatus"},{"id":"libtmux::DeliveryStatus::not_started","publicId":"libtmux::DeliveryStatus::not_started","name":"not_started","kind":"constant","modifiers":[],"parent":"libtmux::DeliveryStatus","signatures":[],"source":{"file":"include/libtmux/delivery.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-deliverystatus-not_started"},{"id":"libtmux::DeliveryStatus::written","publicId":"libtmux::DeliveryStatus::written","name":"written","kind":"constant","modifiers":[],"parent":"libtmux::DeliveryStatus","signatures":[],"source":{"file":"include/libtmux/delivery.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-deliverystatus-written"},{"id":"libtmux::DeliveryStatus::replied","publicId":"libtmux::DeliveryStatus::replied","name":"replied","kind":"constant","modifiers":[],"parent":"libtmux::DeliveryStatus","signatures":[],"source":{"file":"include/libtmux/delivery.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-deliverystatus-replied"},{"id":"libtmux::DeliveryStatus::indeterminate","publicId":"libtmux::DeliveryStatus::indeterminate","name":"indeterminate","kind":"constant","modifiers":[],"parent":"libtmux::DeliveryStatus","signatures":[],"source":{"file":"include/libtmux/delivery.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-deliverystatus-indeterminate"},{"id":"libtmux::StringOp","publicId":"libtmux::StringOp","name":"StringOp","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"How a text field is compared. `iequals` folds case; the rest do not."},"source":{"file":"include/libtmux/filter_expr.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringop"},{"id":"libtmux::StringOp::equals","publicId":"libtmux::StringOp::equals","name":"equals","kind":"constant","modifiers":[],"parent":"libtmux::StringOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringop-equals"},{"id":"libtmux::StringOp::iequals","publicId":"libtmux::StringOp::iequals","name":"iequals","kind":"constant","modifiers":[],"parent":"libtmux::StringOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringop-iequals"},{"id":"libtmux::StringOp::contains","publicId":"libtmux::StringOp::contains","name":"contains","kind":"constant","modifiers":[],"parent":"libtmux::StringOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringop-contains"},{"id":"libtmux::StringOp::starts_with","publicId":"libtmux::StringOp::starts_with","name":"starts_with","kind":"constant","modifiers":[],"parent":"libtmux::StringOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringop-starts_with"},{"id":"libtmux::StringOp::ends_with","publicId":"libtmux::StringOp::ends_with","name":"ends_with","kind":"constant","modifiers":[],"parent":"libtmux::StringOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringop-ends_with"},{"id":"libtmux::NumberOp","publicId":"libtmux::NumberOp","name":"NumberOp","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"tmux renders a count, a size and an index as text.","body":"Comparing them as text puts \"9\" after \"10\", so a numeric field is its own kind with its own operations rather than a string field a caller must remember to convert. How a numeric field is compared, on the value rather than on its text."},"source":{"file":"include/libtmux/filter_expr.hpp","line":33,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberop"},{"id":"libtmux::NumberOp::equals","publicId":"libtmux::NumberOp::equals","name":"equals","kind":"constant","modifiers":[],"parent":"libtmux::NumberOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":33,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberop-equals"},{"id":"libtmux::NumberOp::not_equals","publicId":"libtmux::NumberOp::not_equals","name":"not_equals","kind":"constant","modifiers":[],"parent":"libtmux::NumberOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":33,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberop-not_equals"},{"id":"libtmux::NumberOp::less","publicId":"libtmux::NumberOp::less","name":"less","kind":"constant","modifiers":[],"parent":"libtmux::NumberOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":33,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberop-less"},{"id":"libtmux::NumberOp::less_equal","publicId":"libtmux::NumberOp::less_equal","name":"less_equal","kind":"constant","modifiers":[],"parent":"libtmux::NumberOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":33,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberop-less_equal"},{"id":"libtmux::NumberOp::greater","publicId":"libtmux::NumberOp::greater","name":"greater","kind":"constant","modifiers":[],"parent":"libtmux::NumberOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":33,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberop-greater"},{"id":"libtmux::NumberOp::greater_equal","publicId":"libtmux::NumberOp::greater_equal","name":"greater_equal","kind":"constant","modifiers":[],"parent":"libtmux::NumberOp","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":33,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberop-greater_equal"},{"id":"libtmux::Combine","publicId":"libtmux::Combine","name":"Combine","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Whether a group's operands must all hold or any one of them."},"source":{"file":"include/libtmux/filter_expr.hpp","line":35,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-combine"},{"id":"libtmux::Combine::conjunction","publicId":"libtmux::Combine::conjunction","name":"conjunction","kind":"constant","modifiers":[],"parent":"libtmux::Combine","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":35,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-combine-conjunction"},{"id":"libtmux::Combine::disjunction","publicId":"libtmux::Combine::disjunction","name":"disjunction","kind":"constant","modifiers":[],"parent":"libtmux::Combine","signatures":[],"source":{"file":"include/libtmux/filter_expr.hpp","line":35,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-combine-disjunction"},{"id":"libtmux::KeyError","publicId":"libtmux::KeyError","name":"KeyError","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Why a key name could not be resolved to something tmux accepts."},"source":{"file":"include/libtmux/keys.hpp","line":24,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-keyerror"},{"id":"libtmux::KeyError::empty","publicId":"libtmux::KeyError::empty","name":"empty","kind":"constant","modifiers":[],"parent":"libtmux::KeyError","signatures":[],"source":{"file":"include/libtmux/keys.hpp","line":24,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-keyerror-empty"},{"id":"libtmux::KeyError::unknown_name","publicId":"libtmux::KeyError::unknown_name","name":"unknown_name","kind":"constant","modifiers":[],"parent":"libtmux::KeyError","signatures":[],"source":{"file":"include/libtmux/keys.hpp","line":24,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-keyerror-unknown_name"},{"id":"libtmux::LookupParseError","publicId":"libtmux::LookupParseError","name":"LookupParseError","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Why a legacy lookup string could not be read."},"source":{"file":"include/libtmux/legacy_lookup.hpp","line":21,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lookupparseerror"},{"id":"libtmux::LookupParseError::missing_value","publicId":"libtmux::LookupParseError::missing_value","name":"missing_value","kind":"constant","modifiers":[],"parent":"libtmux::LookupParseError","signatures":[],"source":{"file":"include/libtmux/legacy_lookup.hpp","line":21,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lookupparseerror-missing_value"},{"id":"libtmux::LookupParseError::unknown_field","publicId":"libtmux::LookupParseError::unknown_field","name":"unknown_field","kind":"constant","modifiers":[],"parent":"libtmux::LookupParseError","signatures":[],"source":{"file":"include/libtmux/legacy_lookup.hpp","line":21,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lookupparseerror-unknown_field"},{"id":"libtmux::LookupParseError::unknown_lookup","publicId":"libtmux::LookupParseError::unknown_lookup","name":"unknown_lookup","kind":"constant","modifiers":[],"parent":"libtmux::LookupParseError","signatures":[],"source":{"file":"include/libtmux/legacy_lookup.hpp","line":21,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lookupparseerror-unknown_lookup"},{"id":"libtmux::NotificationKind","publicId":"libtmux::NotificationKind","name":"NotificationKind","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","doc":{"summary":"What a notification is, once its name and arguments have been read.","body":"`unknown` is not a failure. The body may be a notification added by a newer tmux or unguarded delayed command output. A kind and fields keep additions from breaking an exhaustive `std::visit` in caller code."},"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind"},{"id":"libtmux::NotificationKind::unknown","publicId":"libtmux::NotificationKind::unknown","name":"unknown","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-unknown"},{"id":"libtmux::NotificationKind::output","publicId":"libtmux::NotificationKind::output","name":"output","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-output"},{"id":"libtmux::NotificationKind::extended_output","publicId":"libtmux::NotificationKind::extended_output","name":"extended_output","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-extended_output"},{"id":"libtmux::NotificationKind::paused","publicId":"libtmux::NotificationKind::paused","name":"paused","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-paused"},{"id":"libtmux::NotificationKind::resumed","publicId":"libtmux::NotificationKind::resumed","name":"resumed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-resumed"},{"id":"libtmux::NotificationKind::sessions_changed","publicId":"libtmux::NotificationKind::sessions_changed","name":"sessions_changed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-sessions_changed"},{"id":"libtmux::NotificationKind::session_changed","publicId":"libtmux::NotificationKind::session_changed","name":"session_changed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-session_changed"},{"id":"libtmux::NotificationKind::session_renamed","publicId":"libtmux::NotificationKind::session_renamed","name":"session_renamed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-session_renamed"},{"id":"libtmux::NotificationKind::session_window_changed","publicId":"libtmux::NotificationKind::session_window_changed","name":"session_window_changed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-session_window_changed"},{"id":"libtmux::NotificationKind::client_detached","publicId":"libtmux::NotificationKind::client_detached","name":"client_detached","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-client_detached"},{"id":"libtmux::NotificationKind::client_session_changed","publicId":"libtmux::NotificationKind::client_session_changed","name":"client_session_changed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-client_session_changed"},{"id":"libtmux::NotificationKind::window_add","publicId":"libtmux::NotificationKind::window_add","name":"window_add","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-window_add"},{"id":"libtmux::NotificationKind::window_close","publicId":"libtmux::NotificationKind::window_close","name":"window_close","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-window_close"},{"id":"libtmux::NotificationKind::window_renamed","publicId":"libtmux::NotificationKind::window_renamed","name":"window_renamed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-window_renamed"},{"id":"libtmux::NotificationKind::window_pane_changed","publicId":"libtmux::NotificationKind::window_pane_changed","name":"window_pane_changed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-window_pane_changed"},{"id":"libtmux::NotificationKind::unlinked_window_add","publicId":"libtmux::NotificationKind::unlinked_window_add","name":"unlinked_window_add","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-unlinked_window_add"},{"id":"libtmux::NotificationKind::unlinked_window_close","publicId":"libtmux::NotificationKind::unlinked_window_close","name":"unlinked_window_close","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-unlinked_window_close"},{"id":"libtmux::NotificationKind::unlinked_window_renamed","publicId":"libtmux::NotificationKind::unlinked_window_renamed","name":"unlinked_window_renamed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-unlinked_window_renamed"},{"id":"libtmux::NotificationKind::pane_mode_changed","publicId":"libtmux::NotificationKind::pane_mode_changed","name":"pane_mode_changed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-pane_mode_changed"},{"id":"libtmux::NotificationKind::paste_buffer_changed","publicId":"libtmux::NotificationKind::paste_buffer_changed","name":"paste_buffer_changed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-paste_buffer_changed"},{"id":"libtmux::NotificationKind::paste_buffer_deleted","publicId":"libtmux::NotificationKind::paste_buffer_deleted","name":"paste_buffer_deleted","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-paste_buffer_deleted"},{"id":"libtmux::NotificationKind::subscription_changed","publicId":"libtmux::NotificationKind::subscription_changed","name":"subscription_changed","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-subscription_changed"},{"id":"libtmux::NotificationKind::config_error","publicId":"libtmux::NotificationKind::config_error","name":"config_error","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-config_error"},{"id":"libtmux::NotificationKind::exit","publicId":"libtmux::NotificationKind::exit","name":"exit","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-exit"},{"id":"libtmux::NotificationKind::layout_change","publicId":"libtmux::NotificationKind::layout_change","name":"layout_change","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-layout_change"},{"id":"libtmux::NotificationKind::message","publicId":"libtmux::NotificationKind::message","name":"message","kind":"constant","modifiers":[],"parent":"libtmux::NotificationKind","signatures":[],"source":{"file":"include/libtmux/notification.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notificationkind-message"},{"id":"libtmux::Quantifier","publicId":"libtmux::Quantifier","name":"Quantifier","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"How a filter applies across a relation.","body":"`all_of` and `none_of` hold for an empty relation, which is set theory rather than an oversight; `any_of` is usually what a caller means."},"source":{"file":"include/libtmux/relations.hpp","line":27,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-quantifier"},{"id":"libtmux::Quantifier::any_of","publicId":"libtmux::Quantifier::any_of","name":"any_of","kind":"constant","modifiers":[],"parent":"libtmux::Quantifier","signatures":[],"source":{"file":"include/libtmux/relations.hpp","line":27,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-quantifier-any_of"},{"id":"libtmux::Quantifier::all_of","publicId":"libtmux::Quantifier::all_of","name":"all_of","kind":"constant","modifiers":[],"parent":"libtmux::Quantifier","signatures":[],"source":{"file":"include/libtmux/relations.hpp","line":27,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-quantifier-all_of"},{"id":"libtmux::Quantifier::none_of","publicId":"libtmux::Quantifier::none_of","name":"none_of","kind":"constant","modifiers":[],"parent":"libtmux::Quantifier","signatures":[],"source":{"file":"include/libtmux/relations.hpp","line":27,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-quantifier-none_of"},{"id":"libtmux::Quantifier::is","publicId":"libtmux::Quantifier::is","name":"is","kind":"constant","modifiers":[],"parent":"libtmux::Quantifier","signatures":[],"source":{"file":"include/libtmux/relations.hpp","line":27,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-quantifier-is"},{"id":"libtmux::FormatArgument","publicId":"libtmux::FormatArgument","name":"FormatArgument","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Where a tmux subcommand wants its format string.","body":"Most take `-F`; `display-message` takes the format as its message argument instead, and passing `-F` to it addresses a different thing entirely."},"source":{"file":"include/libtmux/snapshot.hpp","line":155,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-formatargument"},{"id":"libtmux::FormatArgument::flag","publicId":"libtmux::FormatArgument::flag","name":"flag","kind":"constant","modifiers":[],"parent":"libtmux::FormatArgument","signatures":[],"source":{"file":"include/libtmux/snapshot.hpp","line":155,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-formatargument-flag"},{"id":"libtmux::FormatArgument::message","publicId":"libtmux::FormatArgument::message","name":"message","kind":"constant","modifiers":[],"parent":"libtmux::FormatArgument","signatures":[],"source":{"file":"include/libtmux/snapshot.hpp","line":155,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-formatargument-message"},{"id":"libtmux::SocketError","publicId":"libtmux::SocketError","name":"SocketError","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Why a socket name or path was rejected before any server was contacted.","body":"Length is the one that surprises: a unix socket path is bounded by the platform, not by tmux."},"source":{"file":"include/libtmux/socket.hpp","line":42,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-socketerror"},{"id":"libtmux::SocketError::empty","publicId":"libtmux::SocketError::empty","name":"empty","kind":"constant","modifiers":[],"parent":"libtmux::SocketError","signatures":[],"source":{"file":"include/libtmux/socket.hpp","line":42,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-socketerror-empty"},{"id":"libtmux::SocketError::name_has_separator","publicId":"libtmux::SocketError::name_has_separator","name":"name_has_separator","kind":"constant","modifiers":[],"parent":"libtmux::SocketError","signatures":[],"source":{"file":"include/libtmux/socket.hpp","line":42,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-socketerror-name_has_separator"},{"id":"libtmux::SocketError::path_too_long","publicId":"libtmux::SocketError::path_too_long","name":"path_too_long","kind":"constant","modifiers":[],"parent":"libtmux::SocketError","signatures":[],"source":{"file":"include/libtmux/socket.hpp","line":42,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-socketerror-path_too_long"},{"id":"libtmux::SocketError::path_unsupported","publicId":"libtmux::SocketError::path_unsupported","name":"path_unsupported","kind":"constant","modifiers":[],"parent":"libtmux::SocketError","signatures":[],"source":{"file":"include/libtmux/socket.hpp","line":42,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-socketerror-path_unsupported"},{"id":"libtmux::TargetError","publicId":"libtmux::TargetError","name":"TargetError","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Why a target could not be built from a name."},"source":{"file":"include/libtmux/target.hpp","line":19,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-targeterror"},{"id":"libtmux::TargetError::empty_name","publicId":"libtmux::TargetError::empty_name","name":"empty_name","kind":"constant","modifiers":[],"parent":"libtmux::TargetError","signatures":[],"source":{"file":"include/libtmux/target.hpp","line":19,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-targeterror-empty_name"},{"id":"libtmux::TargetError::separator_in_name","publicId":"libtmux::TargetError::separator_in_name","name":"separator_in_name","kind":"constant","modifiers":[],"parent":"libtmux::TargetError","signatures":[],"doc":{"summary":"A name holding a separator would re-parse as a different target."},"source":{"file":"include/libtmux/target.hpp","line":19,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-targeterror-separator_in_name"},{"id":"libtmux::VersionError","publicId":"libtmux::VersionError","name":"VersionError","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Why a tmux version string could not be read."},"source":{"file":"include/libtmux/version.hpp","line":19,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-versionerror"},{"id":"libtmux::VersionError::missing_prefix","publicId":"libtmux::VersionError::missing_prefix","name":"missing_prefix","kind":"constant","modifiers":[],"parent":"libtmux::VersionError","signatures":[],"source":{"file":"include/libtmux/version.hpp","line":19,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-versionerror-missing_prefix"},{"id":"libtmux::VersionError::malformed","publicId":"libtmux::VersionError::malformed","name":"malformed","kind":"constant","modifiers":[],"parent":"libtmux::VersionError","signatures":[],"source":{"file":"include/libtmux/version.hpp","line":19,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-versionerror-malformed"},{"id":"libtmux::WaitPath","publicId":"libtmux::WaitPath","name":"WaitPath","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","doc":{"summary":"Which path answered the wait.","body":"A caller that reports on how it learned something needs this; a caller that does not can ignore it."},"source":{"file":"include/libtmux/wait.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitpath"},{"id":"libtmux::WaitPath::pane_lookup","publicId":"libtmux::WaitPath::pane_lookup","name":"pane_lookup","kind":"constant","modifiers":[],"parent":"libtmux::WaitPath","signatures":[],"doc":{"summary":"The target never resolved to a pane, so nothing was ever waited on.","body":"Only the `Server` overload can answer this: a `Pane` is already resolved."},"source":{"file":"include/libtmux/wait.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitpath-pane_lookup"},{"id":"libtmux::WaitPath::capture_at_entry","publicId":"libtmux::WaitPath::capture_at_entry","name":"capture_at_entry","kind":"constant","modifiers":[],"parent":"libtmux::WaitPath","signatures":[],"doc":{"summary":"Already on screen when the wait began, and credited to the pane."},"source":{"file":"include/libtmux/wait.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitpath-capture_at_entry"},{"id":"libtmux::WaitPath::capture_after_control_connect","publicId":"libtmux::WaitPath::capture_after_control_connect","name":"capture_after_control_connect","kind":"constant","modifiers":[],"parent":"libtmux::WaitPath","signatures":[],"doc":{"summary":"Found by the capture taken right after the control connection opened, which closes the window between the entry capture and the first notification."},"source":{"file":"include/libtmux/wait.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitpath-capture_after_control_connect"},{"id":"libtmux::WaitPath::capture_before_control","publicId":"libtmux::WaitPath::capture_before_control","name":"capture_before_control","kind":"constant","modifiers":[],"parent":"libtmux::WaitPath","signatures":[],"doc":{"summary":"The budget expired before a connection could be opened."},"source":{"file":"include/libtmux/wait.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitpath-capture_before_control"},{"id":"libtmux::WaitPath::control_output","publicId":"libtmux::WaitPath::control_output","name":"control_output","kind":"constant","modifiers":[],"parent":"libtmux::WaitPath","signatures":[],"doc":{"summary":"A `output` notification for this pane prompted the capture that matched."},"source":{"file":"include/libtmux/wait.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitpath-control_output"},{"id":"libtmux::WaitPath::capture_polling","publicId":"libtmux::WaitPath::capture_polling","name":"capture_polling","kind":"constant","modifiers":[],"parent":"libtmux::WaitPath","signatures":[],"doc":{"summary":"No connection could be opened, so the screen was re-read on a timer."},"source":{"file":"include/libtmux/wait.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitpath-capture_polling"},{"id":"libtmux::Referenced","publicId":"libtmux::Referenced","name":"Referenced","kind":"typealias","modifiers":[],"signatures":[],"type":"std::reference_wrapper>","doc":{"summary":"A borrowed element of a range, rather than a copy of it.","body":"These lookups reference an element of the range they were given, so the range has to outlive the result. That is why they take an lvalue."},"source":{"file":"include/libtmux/cardinality.hpp","line":43,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-referenced"},{"id":"libtmux::CommandObserver","publicId":"libtmux::CommandObserver","name":"CommandObserver","kind":"typealias","modifiers":[],"signatures":[],"type":"std::function","doc":{"summary":"Every member expires on return; a caller keeping any of it copies it."},"source":{"file":"include/libtmux/command.hpp","line":242,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandobserver"},{"id":"libtmux::Event","publicId":"libtmux::Event","name":"Event","kind":"typealias","modifiers":[],"signatures":[],"type":"std::variant","doc":{"summary":"Anything the parser produces: a reply to something asked, or something tmux said on its own.","body":"The two arrive interleaved on one stream."},"source":{"file":"include/libtmux/control.hpp","line":82,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-event"},{"id":"libtmux::SessionId","publicId":"libtmux::SessionId","name":"SessionId","kind":"typealias","modifiers":[],"signatures":[],"type":"EntityId","doc":{"summary":"Distinct types, not aliases of one: `Kind` is only ever named here."},"source":{"file":"include/libtmux/entities.hpp","line":226,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-sessionid"},{"id":"libtmux::WindowId","publicId":"libtmux::WindowId","name":"WindowId","kind":"typealias","modifiers":[],"signatures":[],"type":"EntityId","source":{"file":"include/libtmux/entities.hpp","line":227,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-windowid"},{"id":"libtmux::PaneId","publicId":"libtmux::PaneId","name":"PaneId","kind":"typealias","modifiers":[],"signatures":[],"type":"EntityId","source":{"file":"include/libtmux/entities.hpp","line":228,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-paneid"},{"id":"libtmux::expected","publicId":"libtmux::expected","name":"expected","kind":"typealias","modifiers":[],"signatures":[],"type":"std::expected","doc":{"summary":"A value or the reason there is not one.","body":"`std::expected` where the standard library has it, and a drop-in otherwise, so a caller writes the same code either way. Nothing in this library throws to report a tmux failure."},"source":{"file":"include/libtmux/expected.hpp","line":49,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-expected"},{"id":"libtmux::unexpected_t","publicId":"libtmux::unexpected_t","name":"unexpected_t","kind":"typealias","modifiers":[],"signatures":[],"type":"std::unexpected","doc":{"summary":"The error side of `expected`, named for the rare declaration that has to spell it.","body":"Returning one is how a function reports a failure."},"source":{"file":"include/libtmux/expected.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-unexpected_t"},{"id":"libtmux::bad_expected_access","publicId":"libtmux::bad_expected_access","name":"bad_expected_access","kind":"typealias","modifiers":[],"signatures":[],"type":"std::bad_expected_access","doc":{"summary":"What `value()` throws when there is none.","body":"Named here so a caller who wants an exception at a boundary can catch it in either standard's build."},"source":{"file":"include/libtmux/expected.hpp","line":69,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-bad_expected_access"},{"id":"libtmux::LoweredExpression","publicId":"libtmux::LoweredExpression","name":"LoweredExpression","kind":"typealias","modifiers":[],"signatures":[],"type":"std::vector","doc":{"summary":"A whole lowered filter, flat: children are referenced by index rather than owned, so the vector can be walked without recursion."},"source":{"file":"include/libtmux/lowered_node.hpp","line":49,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-loweredexpression"},{"id":"libtmux::RelatedMany","publicId":"libtmux::RelatedMany","name":"RelatedMany","kind":"typealias","modifiers":[],"signatures":[],"type":"std::ranges::range_value_t>>","doc":{"summary":"The related entity is whatever the accessor yields, so a bare flag field can stand in for a predicate here exactly as it does in `matching`."},"source":{"file":"include/libtmux/relations.hpp","line":72,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-relatedmany"},{"id":"libtmux::RelatedOne","publicId":"libtmux::RelatedOne","name":"RelatedOne","kind":"typealias","modifiers":[],"signatures":[],"type":"std::remove_cvref_t>>","doc":{"summary":"The entity on the far side of a to-one link, with the accessor's indirection and qualifiers stripped away."},"source":{"file":"include/libtmux/relations.hpp","line":78,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-relatedone"},{"id":"libtmux::kCommandSeparator","publicId":"libtmux::kCommandSeparator","name":"kCommandSeparator","kind":"attribute","modifiers":[],"signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/batch.hpp","line":23,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-kcommandseparator"},{"id":"libtmux::kDefaultRetainedReplyBytes","publicId":"libtmux::kDefaultRetainedReplyBytes","name":"kDefaultRetainedReplyBytes","kind":"attribute","modifiers":[],"signatures":[],"type":"std::size_t","doc":{"summary":"How much of one reply a decoder holds, and how long a single line may grow before the stream is called broken.","body":"A subprocess ends and gives its memory back; a connection does not, so the bound has to be in the decoder rather than in whatever reads it afterwards. The reply bound is the subprocess transport's capture limit, so the same call costs the same memory over either transport. The line bound has no subprocess equivalent: it is the point past which an unterminated line is evidence of a broken stream rather than a large answer."},"source":{"file":"include/libtmux/control.hpp","line":56,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-kdefaultretainedreplybytes"},{"id":"libtmux::kDefaultLineBytes","publicId":"libtmux::kDefaultLineBytes","name":"kDefaultLineBytes","kind":"attribute","modifiers":[],"signatures":[],"type":"std::size_t","source":{"file":"include/libtmux/control.hpp","line":57,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-kdefaultlinebytes"},{"id":"libtmux::is_validation_reason","publicId":"libtmux::is_validation_reason","name":"is_validation_reason","kind":"attribute","modifiers":[],"signatures":[],"type":"bool","doc":{"summary":"Which error types name a validation reason rather than a runtime failure.","body":"Opted in one by one rather than matched on being an enum: `FailureKind` and `DeliveryStatus` are enums too, and neither is a reason a call was refused."},"source":{"file":"include/libtmux/error.hpp","line":59,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_validation_reason"},{"id":"libtmux::is_validation_reason","publicId":"libtmux::is_validation_reason","name":"is_validation_reason","kind":"attribute","modifiers":[],"signatures":[],"type":"bool","source":{"file":"include/libtmux/error.hpp","line":60,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_validation_reason-targeterror"},{"id":"libtmux::is_validation_reason","publicId":"libtmux::is_validation_reason","name":"is_validation_reason","kind":"attribute","modifiers":[],"signatures":[],"type":"bool","source":{"file":"include/libtmux/error.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_validation_reason-socketerror"},{"id":"libtmux::is_validation_reason","publicId":"libtmux::is_validation_reason","name":"is_validation_reason","kind":"attribute","modifiers":[],"signatures":[],"type":"bool","source":{"file":"include/libtmux/error.hpp","line":62,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_validation_reason-cardinalityerror"},{"id":"libtmux::is_validation_reason","publicId":"libtmux::is_validation_reason","name":"is_validation_reason","kind":"attribute","modifiers":[],"signatures":[],"type":"bool","source":{"file":"include/libtmux/error.hpp","line":63,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_validation_reason-lookupparseerror"},{"id":"libtmux::is_validation_reason","publicId":"libtmux::is_validation_reason","name":"is_validation_reason","kind":"attribute","modifiers":[],"signatures":[],"type":"bool","source":{"file":"include/libtmux/error.hpp","line":64,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_validation_reason-versionerror"},{"id":"libtmux::is_validation_reason","publicId":"libtmux::is_validation_reason","name":"is_validation_reason","kind":"attribute","modifiers":[],"signatures":[],"type":"bool","source":{"file":"include/libtmux/error.hpp","line":65,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_validation_reason-keyerror"},{"id":"libtmux::kNamedKeys","publicId":"libtmux::kNamedKeys","name":"kNamedKeys","kind":"attribute","modifiers":[],"signatures":[],"type":"std::array","doc":{"summary":"Named keys tmux accepts, taken from the table in its own key-string.c at the oldest supported release.","body":"Function keys are generated rather than listed, and a single character is handled separately."},"source":{"file":"include/libtmux/keys.hpp","line":39,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-knamedkeys"},{"id":"libtmux::kFormatSeparator","publicId":"libtmux::kFormatSeparator","name":"kFormatSeparator","kind":"attribute","modifiers":[],"signatures":[],"type":"std::string_view","doc":{"summary":"tmux joins requested formats with a separator that cannot appear in a format name.","body":"U+241E matches the Python implementation's default so both can read the same recorded output.\n\nIt is multi-byte, so every tmux this library starts is passed `-u`: a tmux that believes the terminal is not UTF-8 substitutes an underscore and no row splits at all."},"source":{"file":"include/libtmux/snapshot.hpp","line":43,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-kformatseparator"},{"id":"libtmux::kFormatEscape","publicId":"libtmux::kFormatEscape","name":"kFormatEscape","kind":"attribute","modifiers":[],"signatures":[],"type":"std::string_view","doc":{"summary":"A separator absent from every format name is not absent from every format value, which is the whole difficulty.","body":"`tmux rename-window 'a␞b'` is accepted, and one such name used to make every window and pane listing on that server fail to split — data the caller never chose breaking reads of everything else.\n\nSo tmux escapes the separator before it can be mistaken for one. U+241B pairs with it and is escaped in turn, which is what makes the transform reversible: `␛S` is a separator that was in the value and `␛E` is an escape marker that was, and neither has a second reading."},"source":{"file":"include/libtmux/snapshot.hpp","line":55,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-kformatescape"},{"id":"libtmux::kSocketPathLimit","publicId":"libtmux::kSocketPathLimit","name":"kSocketPathLimit","kind":"attribute","modifiers":[],"signatures":[],"type":"std::size_t","source":{"file":"include/libtmux/socket.hpp","line":35,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-ksocketpathlimit"},{"id":"libtmux::kMinimumSupported","publicId":"libtmux::kMinimumSupported","name":"kMinimumSupported","kind":"attribute","modifiers":[],"signatures":[],"type":"Version","doc":{"summary":"The oldest release this library supports, matching the Python package."},"source":{"file":"include/libtmux/version.hpp","line":150,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-kminimumsupported"},{"id":"libtmux::to_string","publicId":"libtmux::to_string","name":"to_string","kind":"function","modifiers":["overload"],"signatures":[{"params":[{"name":"implementation","type":"ServerImplementation"}],"raw":"[[nodiscard]] constexpr std::string_view\nto_string(ServerImplementation implementation) noexcept;","returns":"std::string_view"},{"params":[{"name":"backend","type":"BackendKind"}],"raw":"[[nodiscard]] constexpr std::string_view to_string(BackendKind backend) noexcept;","returns":"std::string_view"},{"params":[{"name":"feature","type":"ServerFeature"}],"raw":"[[nodiscard]] constexpr std::string_view to_string(ServerFeature feature) noexcept;","returns":"std::string_view"},{"params":[{"name":"error","type":"CardinalityError"}],"raw":"[[nodiscard]] constexpr std::string_view to_string(CardinalityError error) noexcept;","returns":"std::string_view"},{"params":[{"name":"kind","type":"FailureKind"}],"raw":"[[nodiscard]] constexpr std::string_view to_string(FailureKind kind) noexcept;","returns":"std::string_view"},{"params":[{"name":"failure","type":"const CommandFailure &"}],"raw":"[[nodiscard]] std::string to_string(const CommandFailure& failure);","returns":"std::string"},{"params":[{"name":"status","type":"DeliveryStatus"}],"raw":"[[nodiscard]] constexpr std::string_view to_string(DeliveryStatus status) noexcept;","returns":"std::string_view"},{"params":[{"name":"session","type":"const Session &"}],"raw":"[[nodiscard]] std::string to_string(const Session& session);","returns":"std::string"},{"params":[{"name":"window","type":"const Window &"}],"raw":"[[nodiscard]] std::string to_string(const Window& window);","returns":"std::string"},{"params":[{"name":"pane","type":"const Pane &"}],"raw":"[[nodiscard]] std::string to_string(const Pane& pane);","returns":"std::string"},{"params":[{"name":"client","type":"const Client &"}],"raw":"[[nodiscard]] std::string to_string(const Client& client);","returns":"std::string"},{"params":[{"name":"error","type":"KeyError"}],"raw":"[[nodiscard]] constexpr std::string_view to_string(KeyError error) noexcept;","returns":"std::string_view"},{"params":[{"name":"kind","type":"NotificationKind"}],"raw":"[[nodiscard]] std::string_view to_string(NotificationKind kind) noexcept;","returns":"std::string_view"},{"params":[{"name":"error","type":"SocketError"}],"raw":"[[nodiscard]] constexpr std::string_view to_string(SocketError error) noexcept;","returns":"std::string_view"},{"params":[{"name":"error","type":"TargetError"}],"raw":"[[nodiscard]] constexpr std::string_view to_string(TargetError error) noexcept;","returns":"std::string_view"},{"params":[{"name":"error","type":"VersionError"}],"raw":"[[nodiscard]] constexpr std::string_view to_string(VersionError error) noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/capabilities.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-to_string"},{"id":"libtmux::capture_lines","publicId":"libtmux::capture_lines","name":"capture_lines","kind":"function","modifiers":["overload"],"signatures":[{"params":[{"name":"Text &&"}],"typeParams":["typename Text"],"raw":"template \n requires std::same_as, std::string> &&\n (!std::is_lvalue_reference_v)\nstd::vector capture_lines(Text&&) = delete;","returns":"std::vector","typeParameters":[{"name":"Text"}]},{"params":[{"name":"output","type":"std::string_view"}],"raw":"[[nodiscard]] std::vector capture_lines(std::string_view output);","returns":"std::vector"}],"doc":{"summary":"The lines are views into the text, so text that dies at the semicolon takes them with it — and `pane.capture()` returns its output by value, which makes `capture_lines(*pane.capture())` the natural thing to write and a use-after-free to run.","body":"Deleted for an rvalue string only: an lvalue string converts as before, and so does a literal.","examples":[{"lang":"console","intro":"Send input and capture confirmed output. Start a small shell reader with terminal echo disabled, wait for readiness, send one line, and capture its response. The two bounded waits prevent startup races and confirm output from the program. The final cat keeps the pane available for capture until cleanup. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/input-capture.cpp","code":"#include \n#include \n#include \n#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto window = sessions->front().new_window(libtmux::NewWindowOptions{\n .name = \"reader\",\n .shell_command = R\"(exec sh -c '\n stty -echo\n printf \"ready\\n\"\n IFS= read -r line\n printf \"got:%s\\n\" \"$line\"\n exec cat >/dev/null\n ')\",\n });\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n const auto pane = window->active_pane();\n if (!pane.has_value()) {\n std::fprintf(stderr, \"%s\\n\", pane.error().diagnostic.c_str());\n return 1;\n }\n const auto ready = pane->wait_for_text(\"ready\", {.timeout = std::chrono::seconds{5}});\n if (!ready.has_value()) {\n std::fprintf(stderr, \"%s\\n\", ready.error().diagnostic.c_str());\n return 1;\n }\n if (!ready->matched) {\n std::fputs(\"reader did not become ready\\n\", stderr);\n return 1;\n }\n const auto text = pane->send_text(\"hello \");\n if (!text.has_value()) {\n std::fprintf(stderr, \"%s\\n\", text.error().diagnostic.c_str());\n return 1;\n }\n const auto line = pane->send_line(\"C++\");\n if (!line.has_value()) {\n std::fprintf(stderr, \"%s\\n\", line.error().diagnostic.c_str());\n return 1;\n }\n const auto answered =\n pane->wait_for_text(\"got:hello C++\", {.timeout = std::chrono::seconds{5}});\n if (!answered.has_value()) {\n std::fprintf(stderr, \"%s\\n\", answered.error().diagnostic.c_str());\n return 1;\n }\n if (!answered->matched) {\n std::fputs(\"reader did not confirm the input\\n\", stderr);\n return 1;\n }\n const auto captured = pane->capture();\n if (!captured.has_value()) {\n std::fprintf(stderr, \"%s\\n\", captured.error().diagnostic.c_str());\n return 1;\n }\n // The captured string outlives the line views returned by capture_lines.\n const auto lines = libtmux::capture_lines(*captured);\n if (std::ranges::find(lines, \"got:hello C++\") == std::ranges::end(lines)) {\n std::fputs(\"captured output does not contain the response\\n\", stderr);\n return 1;\n }\n std::puts(\"got:hello C++\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"got:hello C++\n"}]},"source":{"file":"include/libtmux/capture.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-capture_lines"},{"id":"libtmux::without_trailing_blanks","publicId":"libtmux::without_trailing_blanks","name":"without_trailing_blanks","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"lines","type":"std::vector"}],"raw":"[[nodiscard]] std::vector\nwithout_trailing_blanks(std::vector lines);","returns":"std::vector"}],"doc":{"summary":"Drop the blank rows a pane pads its height with, keeping blank lines that have content below them."},"source":{"file":"include/libtmux/capture.hpp","line":60,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-without_trailing_blanks"},{"id":"libtmux::output_confirms","publicId":"libtmux::output_confirms","name":"output_confirms","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"captured","type":"std::string_view"},{"name":"wanted","type":"std::string_view"},{"name":"sent","type":"const std::vector &","default":"{}"}],"raw":"[[nodiscard]] bool output_confirms(std::string_view captured, std::string_view wanted,\n const std::vector& sent = {});","returns":"bool"}],"doc":{"summary":"Whether `wanted` appears in captured text as something the pane produced, rather than as text that is merely on screen.","body":"Waiting for a pane to say something is the first thing a supervising program needs and the easiest to get wrong, because a capture shows two things that are not output. The first is a command still sitting on the prompt: it has been typed, nothing has run it, and searching for it succeeds immediately. The second is its echo. A shell echoes typed input at least once — the kernel's own cooked-mode echo — and often twice more before anything runs, from the line editor's redisplay and from any unrelated repaint. None of those are output, however many rows they end up spread across.\n\n`sent` is what the calling program itself typed into this pane and has not had confirmed. Every whole occurrence of every entry is masked before `wanted` is looked for, so an echo cannot be credited to the pane no matter where a redraw moved it, and a short entry cannot corrupt a longer real word that merely contains it. That is the check row position alone misses: the same unsubmitted line, unchanged, after something else pushed it off the last row without the pane having produced anything."},"source":{"file":"include/libtmux/capture.hpp","line":129,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-output_confirms"},{"id":"libtmux::first","publicId":"libtmux::first","name":"first","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"range","type":"Range &"}],"typeParams":["ReferenceRange Range"],"raw":"template \n[[nodiscard]] std::optional> first(Range& range);","returns":"std::optional>","typeParameters":[{"name":"Range","bound":"ReferenceRange"}]}],"doc":{"summary":"`first` states that a caller tolerates extras; it never reports several."},"source":{"file":"include/libtmux/cardinality.hpp","line":60,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-first"},{"id":"libtmux::exactly_one","publicId":"libtmux::exactly_one","name":"exactly_one","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"range","type":"Range &"}],"typeParams":["ReferenceRange Range"],"raw":"template \n[[nodiscard]] expected, CardinalityError> exactly_one(Range& range);","returns":"expected, CardinalityError>","typeParameters":[{"name":"Range","bound":"ReferenceRange"}]}],"doc":{"summary":"`exactly_one` states that several is a caller error, and says which one.","examples":[{"lang":"console","intro":"Filter snapshots and require one match. Filter a window snapshot with typed fields and standard ranges. exactly_one_owned copies a unique match, so the temporary view is safe. Missing and ambiguous matches have different CardinalityError values; these lookups make no tmux calls. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/query.cpp","code":"#include \n#include \n#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n for (const char* name : {\"editor\", \"logs\"}) {\n const auto made = sessions->front().new_window(\n libtmux::NewWindowOptions{.name = name, .shell_command = \"exec cat\"});\n if (!made.has_value()) {\n std::fprintf(stderr, \"%s\\n\", made.error().diagnostic.c_str());\n return 1;\n }\n }\n const auto windows = server->windows();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n const auto wanted =\n libtmux::window::name.starts_with(\"edit\") || libtmux::window::name == \"logs\";\n auto matches = *windows | libtmux::matching(wanted);\n const auto editor = libtmux::exactly_one_owned(\n *windows | libtmux::matching(libtmux::window::name == \"editor\"));\n auto absent = *windows | libtmux::matching(libtmux::window::name == \"absent\");\n const auto missing = libtmux::exactly_one(absent);\n const auto ambiguous = libtmux::exactly_one(matches);\n if (!editor.has_value() || std::ranges::distance(matches) != 2 ||\n missing.has_value() ||\n missing.error() != libtmux::CardinalityError::none_matched ||\n ambiguous.has_value() ||\n ambiguous.error() != libtmux::CardinalityError::several_matched) {\n std::fputs(\"unexpected query cardinality\\n\", stderr);\n return 1;\n }\n std::printf(\"Selected %s; two matches; missing and ambiguous are distinct.\\n\",\n std::string{editor->name()}.c_str());\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Selected editor; two matches; missing and ambiguous are distinct.\n"}]},"source":{"file":"include/libtmux/cardinality.hpp","line":70,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-exactly_one"},{"id":"libtmux::first_owned","publicId":"libtmux::first_owned","name":"first_owned","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"range","type":"Range &&"}],"typeParams":["std::ranges::input_range Range"],"raw":"template \n requires std::constructible_from,\n std::ranges::range_reference_t>\n[[nodiscard]] std::optional>\nfirst_owned(Range&& range);","returns":"std::optional>","typeParameters":[{"name":"Range","bound":"std::ranges::input_range"}]}],"doc":{"summary":"Copies referenced elements; moves when an iterator yields an rvalue.","body":"A temporary view over an lvalue container therefore leaves that container intact. Owning the element does not extend storage borrowed by its own members."},"source":{"file":"include/libtmux/cardinality.hpp","line":94,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-first_owned"},{"id":"libtmux::exactly_one_owned","publicId":"libtmux::exactly_one_owned","name":"exactly_one_owned","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"range","type":"Range &&"}],"typeParams":["std::ranges::input_range Range"],"raw":"template \n requires std::constructible_from,\n std::ranges::range_reference_t> &&\n std::move_constructible>\n[[nodiscard]] expected, CardinalityError>\nexactly_one_owned(Range&& range);","returns":"expected, CardinalityError>","typeParameters":[{"name":"Range","bound":"std::ranges::input_range"}]}],"doc":{"summary":"A forward range's iterator can be copied and advanced independently of the original, so a second element rules the range out before the first is materialized.","body":"A single-pass range (a stream, a generator) shares mutable state between copies instead, so it has no way to look ahead: the first element must be materialized before the range can be advanced to check for a second, and an error there still consumes it.","examples":[{"lang":"console","intro":"Filter snapshots and require one match. Filter a window snapshot with typed fields and standard ranges. exactly_one_owned copies a unique match, so the temporary view is safe. Missing and ambiguous matches have different CardinalityError values; these lookups make no tmux calls. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/query.cpp","code":"#include \n#include \n#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n for (const char* name : {\"editor\", \"logs\"}) {\n const auto made = sessions->front().new_window(\n libtmux::NewWindowOptions{.name = name, .shell_command = \"exec cat\"});\n if (!made.has_value()) {\n std::fprintf(stderr, \"%s\\n\", made.error().diagnostic.c_str());\n return 1;\n }\n }\n const auto windows = server->windows();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n const auto wanted =\n libtmux::window::name.starts_with(\"edit\") || libtmux::window::name == \"logs\";\n auto matches = *windows | libtmux::matching(wanted);\n const auto editor = libtmux::exactly_one_owned(\n *windows | libtmux::matching(libtmux::window::name == \"editor\"));\n auto absent = *windows | libtmux::matching(libtmux::window::name == \"absent\");\n const auto missing = libtmux::exactly_one(absent);\n const auto ambiguous = libtmux::exactly_one(matches);\n if (!editor.has_value() || std::ranges::distance(matches) != 2 ||\n missing.has_value() ||\n missing.error() != libtmux::CardinalityError::none_matched ||\n ambiguous.has_value() ||\n ambiguous.error() != libtmux::CardinalityError::several_matched) {\n std::fputs(\"unexpected query cardinality\\n\", stderr);\n return 1;\n }\n std::printf(\"Selected %s; two matches; missing and ambiguous are distinct.\\n\",\n std::string{editor->name()}.c_str());\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Selected editor; two matches; missing and ambiguous are distinct.\n"}]},"source":{"file":"include/libtmux/cardinality.hpp","line":113,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-exactly_one_owned"},{"id":"libtmux::as_command_failure","publicId":"libtmux::as_command_failure","name":"as_command_failure","kind":"function","modifiers":["overload"],"signatures":[{"params":[{"name":"error","type":"ProtocolError"}],"raw":"[[nodiscard]] CommandFailure as_command_failure(ProtocolError error);","returns":"CommandFailure"},{"params":[{"name":"reason","type":"Reason"}],"typeParams":["typename Reason"],"raw":"template \n requires is_validation_reason\n[[nodiscard]] CommandFailure as_command_failure(Reason reason);","returns":"CommandFailure","typeParameters":[{"name":"Reason"}]}],"doc":{"summary":"A control-wire failure as a command failure, keeping what it says about delivery — the one thing a caller cannot reconstruct.","body":"A protocol error that never started is a validation refusal; past that point the wire is what broke, which is `pipe`."},"source":{"file":"include/libtmux/error.hpp","line":39,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-as_command_failure"},{"id":"libtmux::as_protocol_error","publicId":"libtmux::as_protocol_error","name":"as_protocol_error","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"failure","type":"CommandFailure"}],"raw":"[[nodiscard]] ProtocolError as_protocol_error(CommandFailure failure);","returns":"ProtocolError"}],"doc":{"summary":"The other direction, for a caller handing a command failure to a surface that speaks the wire's type.","body":"The kind is dropped because the wire has no word for it; the diagnostic carries what it said."},"source":{"file":"include/libtmux/error.hpp","line":51,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-as_protocol_error"},{"id":"libtmux::unexpected","publicId":"libtmux::unexpected","name":"unexpected","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"error","type":"Error &&"}],"typeParams":["typename Error"],"raw":"template [[nodiscard]] constexpr auto unexpected(Error&& error);","returns":"auto","typeParameters":[{"name":"Error"}]}],"doc":{"summary":"A factory rather than an alias: an alias template cannot deduce its argument, so `unexpected(error)` would stop compiling at every call site."},"source":{"file":"include/libtmux/expected.hpp","line":74,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-unexpected"},{"id":"libtmux::escape_literal","publicId":"libtmux::escape_literal","name":"escape_literal","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] std::string escape_literal(std::string_view text);","returns":"std::string"}],"doc":{"summary":"Escape literal text for inclusion in a format string."},"source":{"file":"include/libtmux/format.hpp","line":18,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-escape_literal"},{"id":"libtmux::variable","publicId":"libtmux::variable","name":"variable","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] std::string variable(std::string_view name);","returns":"std::string"}],"doc":{"summary":"Wrap a variable name as a substitution.","body":"The name is not escaped: a name is chosen by the caller from tmux's format vocabulary, not built from data."},"source":{"file":"include/libtmux/format.hpp","line":32,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-variable"},{"id":"libtmux::is_function_key","publicId":"libtmux::is_function_key","name":"is_function_key","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] bool is_function_key(std::string_view name) noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/keys.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_function_key"},{"id":"libtmux::is_key_name","publicId":"libtmux::is_key_name","name":"is_key_name","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"key","type":"std::string_view"}],"raw":"[[nodiscard]] bool is_key_name(std::string_view key) noexcept;","returns":"bool"}],"doc":{"summary":"Accept a key with any number of C-, M-, or S- modifiers."},"source":{"file":"include/libtmux/keys.hpp","line":83,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_key_name"},{"id":"libtmux::literal_arguments","publicId":"libtmux::literal_arguments","name":"literal_arguments","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] expected, KeyError>\nliteral_arguments(std::string_view text);","returns":"expected, KeyError>"}],"doc":{"summary":"Send text exactly as written: the flag, the end of flags, and the text.","body":"`--` is part of the fragment rather than something a caller appends, because text beginning with a dash is read as another `send-keys` option without it and that is not a mistake worth making twice. It was made twice: this returned the flag and the text alone, `Pane::send_text` inserted the separator afterwards, and `Chain::send_text` did not — so the same text through the two spellings reached tmux as two different commands."},"source":{"file":"include/libtmux/keys.hpp","line":116,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-literal_arguments"},{"id":"libtmux::validate_layout","publicId":"libtmux::validate_layout","name":"validate_layout","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"layout","type":"std::string_view"},{"name":"minimum_panes","type":"std::size_t","default":"1"}],"raw":"[[nodiscard]] expected\nvalidate_layout(std::string_view layout, std::size_t minimum_panes = 1);","returns":"expected"}],"doc":{"summary":"Check names, v1 saved-layout checksum, v1/v2 tree grammar and minimum cell count without I/O.","body":"Names must be valid on at least one supported tmux version; Server::validate_layouts resolves version-dependent names and requires tmux 3.8 (including 3.8-rc) or newer for v2 JSON layouts. Saved input, including floating-pane metadata, is retained unchanged. The v2 reader follows tmux's restricted JSON syntax. Geometry and resizing remain tmux's responsibility. Empty layouts are invalid."},"source":{"file":"include/libtmux/layout.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-validate_layout"},{"id":"libtmux::lookup_of","publicId":"libtmux::lookup_of","name":"lookup_of","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected lookup_of(std::string_view name);","returns":"expected"}],"doc":{"summary":"`eq` is the implicit lookup, matching Python's bare `field=value`.","body":"An empty name reaches here only from a key that carried no separator at all; a key ending in one is refused before this is asked."},"source":{"file":"include/libtmux/legacy_lookup.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lookup_of"},{"id":"libtmux::parse_lookup","publicId":"libtmux::parse_lookup","name":"parse_lookup","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"term","type":"std::string_view"},{"name":"fields","type":"std::span>"}],"typeParams":["typename Entity"],"raw":"template \n[[nodiscard]] expected, LookupParseError>\nparse_lookup(std::string_view term,\n std::span> fields);","returns":"expected, LookupParseError>","typeParameters":[{"name":"Entity"}]}],"doc":{"summary":"Parse one `field[__lookup]=value` term against a caller-supplied field table.","body":"The value is taken verbatim after the first `=`, so a value containing `=` or `__` survives unchanged; only the key is split."},"source":{"file":"include/libtmux/legacy_lookup.hpp","line":56,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parse_lookup"},{"id":"libtmux::name_of","publicId":"libtmux::name_of","name":"name_of","kind":"function","modifiers":["overload"],"signatures":[{"params":[{"name":"op","type":"StringOp"}],"raw":"[[nodiscard]] constexpr std::string_view name_of(StringOp op) noexcept;","returns":"std::string_view"},{"params":[{"name":"op","type":"NumberOp"}],"raw":"[[nodiscard]] constexpr std::string_view name_of(NumberOp op) noexcept;","returns":"std::string_view"}],"source":{"file":"include/libtmux/lowering.hpp","line":20,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-name_of"},{"id":"libtmux::replay","publicId":"libtmux::replay","name":"replay","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"nodes","type":"const LoweredExpression &"},{"name":"sink","type":"Sink &"}],"typeParams":["typename Sink"],"raw":"template void replay(const LoweredExpression& nodes, Sink& sink);","returns":"void","typeParameters":[{"name":"Sink"}]}],"doc":{"summary":"Replay an already-lowered child into a sink."},"source":{"file":"include/libtmux/lowering.hpp","line":55,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-replay"},{"id":"libtmux::lower","publicId":"libtmux::lower","name":"lower","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"expr","type":"const FilterExpr &"},{"name":"sink","type":"Sink &"}],"typeParams":["typename Entity","typename Sink"],"raw":"template \nvoid lower(const FilterExpr& expr, Sink& sink);","returns":"void","typeParameters":[{"name":"Entity"},{"name":"Sink"}]}],"doc":{"summary":"A sink receives one call per node in prefix order.","body":"Groups and negations are bracketed by begin/end so a sink never has to count operands itself."},"source":{"file":"include/libtmux/lowering.hpp","line":92,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lower"},{"id":"libtmux::parse","publicId":"libtmux::parse","name":"parse","kind":"function","modifiers":["overload"],"signatures":[{"params":[{"name":"notification","type":"const Notification &"}],"raw":"[[nodiscard]] ParsedNotification parse(const Notification& notification);","returns":"ParsedNotification"},{"params":[{"name":"Notification &&"}],"raw":"ParsedNotification parse(Notification&&) = delete;","returns":"ParsedNotification"}],"source":{"file":"include/libtmux/notification.hpp","line":97,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parse"},{"id":"libtmux::layout_contains_pane","publicId":"libtmux::layout_contains_pane","name":"layout_contains_pane","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"layout_change_text","type":"std::string_view"},{"name":"pane_id","type":"std::string_view"}],"raw":"[[nodiscard]] std::optional\nlayout_contains_pane(std::string_view layout_change_text, std::string_view pane_id);","returns":"std::optional"}],"doc":{"summary":"Whether `pane_id` (`%N`) is still part of a window's arrangement, reading a `layout_change` notification's own `text` — `window_layout` followed by `window_visible_layout` and the window's flags (control-notify.c) — for its first, whitespace-delimited token.","body":"tmux gives no notification dedicated to a pane leaving its window; a `%layout-change` naming the pane gone is the only signal there is. This answers only from the JSON layout (3.8+, and only for a connection that requested it — see `Window::layout()`), which carries each pane's stable id. The classic layout string encodes each pane's position by index instead, which the removal of any other pane in the window renumbers, so this returns `std::nullopt` there rather than guessing: killing the observed pane is the one case a caller most wants an honest answer for, and a stale index is exactly where a guess would be wrong."},"source":{"file":"include/libtmux/notification.hpp","line":115,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-layout_contains_pane"},{"id":"libtmux::unquote","publicId":"libtmux::unquote","name":"unquote","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] std::string unquote(std::string_view value);","returns":"std::string"}],"doc":{"summary":"Undo the quoting tmux applies when it prints a value.","body":"tmux picks one of four forms, and a reader that knows only one corrupts the rest: `''` for an empty value; double quotes when the value contains any of ` #';${}`; single quotes when it contains a double quote; and otherwise no quotes at all. Inside any of them the body is escaped the way `vis` does it — `\\t`, `\\n`, `\\\\`, `\\ooo` for a byte with no printable form — and a leading tilde is escaped whether or not anything else is.\n\nThis is the inverse of tmux's own `args_escape`, so a value read here and written back is the value that was there."},"source":{"file":"include/libtmux/options.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-unquote"},{"id":"libtmux::parse_option","publicId":"libtmux::parse_option","name":"parse_option","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"line","type":"std::string_view"}],"raw":"[[nodiscard]] std::optional parse_option(std::string_view line);","returns":"std::optional"}],"doc":{"summary":"Parse one line.","body":"Returns nullopt for a blank line so callers can feed raw output straight in."},"source":{"file":"include/libtmux/options.hpp","line":134,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parse_option"},{"id":"libtmux::parse_options","publicId":"libtmux::parse_options","name":"parse_options","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"output","type":"std::string_view"}],"raw":"[[nodiscard]] std::vector parse_options(std::string_view output);","returns":"std::vector"}],"source":{"file":"include/libtmux/options.hpp","line":174,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parse_options"},{"id":"libtmux::children_of","publicId":"libtmux::children_of","name":"children_of","kind":"function","modifiers":["overload"],"signatures":[{"params":[{"name":"rows","type":"const std::vector &"},{"name":"foreign_key","type":"StringFieldHandle"},{"name":"key","type":"StringFieldHandle"}],"typeParams":["typename Parent","typename Child"],"raw":"template \n[[nodiscard]] auto children_of(const std::vector& rows,\n StringFieldHandle foreign_key,\n StringFieldHandle key);","returns":"auto","typeParameters":[{"name":"Parent"},{"name":"Child"}]},{"params":[{"name":"const std::vector< Child > &&"},{"name":"StringFieldHandle< Child >"},{"name":"StringFieldHandle< Parent >"}],"typeParams":["typename Parent","typename Child"],"raw":"template \nauto children_of(const std::vector&&, StringFieldHandle,\n StringFieldHandle) = delete;","returns":"auto","typeParameters":[{"name":"Parent"},{"name":"Child"}]}],"doc":{"summary":"Join two listings on the id one of them carries.","body":"A relation predicate has to reach the related rows without running tmux, so the caller lists both kinds once and links them here. The result borrows the rows it was given, exactly as a filtered view does, so it must not outlive the listing it reads."},"source":{"file":"include/libtmux/relations.hpp","line":36,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-children_of"},{"id":"libtmux::parent_of","publicId":"libtmux::parent_of","name":"parent_of","kind":"function","modifiers":["overload"],"signatures":[{"params":[{"name":"rows","type":"const std::vector &"},{"name":"foreign_key","type":"StringFieldHandle"},{"name":"key","type":"StringFieldHandle"}],"typeParams":["typename Child","typename Parent"],"raw":"template \n[[nodiscard]] auto parent_of(const std::vector& rows,\n StringFieldHandle foreign_key,\n StringFieldHandle key);","returns":"auto","typeParameters":[{"name":"Child"},{"name":"Parent"}]},{"params":[{"name":"const std::vector< Parent > &&"},{"name":"StringFieldHandle< Child >"},{"name":"StringFieldHandle< Parent >"}],"typeParams":["typename Child","typename Parent"],"raw":"template \nauto parent_of(const std::vector&&, StringFieldHandle,\n StringFieldHandle) = delete;","returns":"auto","typeParameters":[{"name":"Child"},{"name":"Parent"}]}],"doc":{"summary":"The same join read the other way: the one row a child points at, or none."},"source":{"file":"include/libtmux/relations.hpp","line":55,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parent_of"},{"id":"libtmux::quantified","publicId":"libtmux::quantified","name":"quantified","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string"},{"name":"quantifier","type":"Quantifier"},{"name":"read","type":"auto"},{"name":"predicate","type":"auto"}],"typeParams":["typename Entity"],"raw":"template \n[[nodiscard]] FilterExpr quantified(std::string name, Quantifier quantifier,\n auto read, auto predicate);","returns":"FilterExpr","typeParameters":[{"name":"Entity"}]}],"doc":{"summary":"To-many and to-one links take different accessors, so they get different builders rather than one that has to compile both shapes."},"source":{"file":"include/libtmux/relations.hpp","line":84,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-quantified"},{"id":"libtmux::any_of","publicId":"libtmux::any_of","name":"any_of","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string"},{"name":"read","type":"auto"},{"name":"predicate","type":"auto"}],"typeParams":["typename Entity"],"raw":"template \n[[nodiscard]] FilterExpr any_of(std::string name, auto read, auto predicate);","returns":"FilterExpr","typeParameters":[{"name":"Entity"}]}],"source":{"file":"include/libtmux/relations.hpp","line":110,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-any_of"},{"id":"libtmux::all_of","publicId":"libtmux::all_of","name":"all_of","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string"},{"name":"read","type":"auto"},{"name":"predicate","type":"auto"}],"typeParams":["typename Entity"],"raw":"template \n[[nodiscard]] FilterExpr all_of(std::string name, auto read, auto predicate);","returns":"FilterExpr","typeParameters":[{"name":"Entity"}]}],"source":{"file":"include/libtmux/relations.hpp","line":115,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-all_of"},{"id":"libtmux::none_of","publicId":"libtmux::none_of","name":"none_of","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string"},{"name":"read","type":"auto"},{"name":"predicate","type":"auto"}],"typeParams":["typename Entity"],"raw":"template \n[[nodiscard]] FilterExpr none_of(std::string name, auto read, auto predicate);","returns":"FilterExpr","typeParameters":[{"name":"Entity"}]}],"source":{"file":"include/libtmux/relations.hpp","line":120,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-none_of"},{"id":"libtmux::is","publicId":"libtmux::is","name":"is","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string"},{"name":"read","type":"auto"},{"name":"predicate","type":"auto"}],"typeParams":["typename Entity"],"raw":"template \n[[nodiscard]] FilterExpr is(std::string name, auto read, auto predicate);","returns":"FilterExpr","typeParameters":[{"name":"Entity"}]}],"doc":{"summary":"An absent to-one link never satisfies `is`: a window with no active pane is not a window whose active pane runs an editor."},"source":{"file":"include/libtmux/relations.hpp","line":127,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is"},{"id":"libtmux::format_request","publicId":"libtmux::format_request","name":"format_request","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"fields","type":"std::span"}],"raw":"[[nodiscard]] std::string format_request(std::span fields);","returns":"std::string"}],"doc":{"summary":"Build the format argument for one entity's fields, terminating every field so a trailing empty value is still a value rather than a missing column.","body":"The two substitutions nest rather than run in sequence, because tmux applies the inner one to the raw value and the outer one to its result. In that order a value already holding the escape marker is neutralised before the separator pass can produce one; reversed, the two become indistinguishable.\n\n`#{s/…/…/:…}` predates every tmux this library supports, and neither character is a regular-expression metacharacter.\n\nUnconditional, rather than applied only to the fields that could carry a separator. Expanding the substitutions costs about 0.32us per row — a 61-row listing pays 19us, against a process launch of some milliseconds — and a per-field exemption list is a thing to get wrong later, once, silently."},"source":{"file":"include/libtmux/snapshot.hpp","line":73,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-format_request"},{"id":"libtmux::decode_value","publicId":"libtmux::decode_value","name":"decode_value","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"begin","type":"char *"},{"name":"size","type":"std::size_t"}],"raw":"[[nodiscard]] std::size_t decode_value(char* begin, std::size_t size) noexcept;","returns":"std::size_t"}],"doc":{"summary":"Undo that escaping, in place.","body":"Escaping only ever lengthens, so the decoded bytes fit where the encoded ones were: the write cursor never overtakes the read cursor, nothing moves, and nothing is allocated. Answers the decoded length.\n\nAn escape marker followed by anything else is left as written. Output this library asked for contains no such sequence, and failing on one would mean a recording could not carry a literal `␛`."},"source":{"file":"include/libtmux/snapshot.hpp","line":109,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-decode_value"},{"id":"libtmux::split_row","publicId":"libtmux::split_row","name":"split_row","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"line","type":"std::string_view"},{"name":"fields","type":"std::size_t"},{"name":"values","type":"std::vector &"}],"raw":"[[nodiscard]] bool split_row(std::string_view line, std::size_t fields,\n std::vector& values);","returns":"bool"}],"doc":{"summary":"Split one tmux output line into its field values.","body":"The trailing separator emitted by `format_request` produces one empty tail element, which is dropped; a short or long row is reported rather than padded so a format-name typo cannot masquerade as an empty field."},"source":{"file":"include/libtmux/snapshot.hpp","line":137,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-split_row"},{"id":"libtmux::socket_name_arguments","publicId":"libtmux::socket_name_arguments","name":"socket_name_arguments","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected, SocketError>\nsocket_name_arguments(std::string_view name);","returns":"expected, SocketError>"}],"doc":{"summary":"`-L name`: a single component resolved under the socket directory."},"source":{"file":"include/libtmux/socket.hpp","line":65,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-socket_name_arguments"},{"id":"libtmux::socket_path_arguments","publicId":"libtmux::socket_path_arguments","name":"socket_path_arguments","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"path","type":"std::string_view"}],"raw":"[[nodiscard]] expected, SocketError>\nsocket_path_arguments(std::string_view path);","returns":"expected, SocketError>"}],"doc":{"summary":"`-S path`: used verbatim, so the address limit applies to it directly."},"source":{"file":"include/libtmux/socket.hpp","line":81,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-socket_path_arguments"},{"id":"libtmux::is_pane_id","publicId":"libtmux::is_pane_id","name":"is_pane_id","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] constexpr bool is_pane_id(std::string_view value) noexcept;","returns":"bool"}],"doc":{"summary":"Whether a value is written as an id, which is what decides that it needs no separator validation below — not whether tmux would resolve it.","body":"`x` is an id by this test and no pane by tmux's, and both are right: it carries no separator, so composing it can only produce the caller's own mistake back."},"source":{"file":"include/libtmux/target.hpp","line":39,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_pane_id"},{"id":"libtmux::is_window_id","publicId":"libtmux::is_window_id","name":"is_window_id","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] constexpr bool is_window_id(std::string_view value) noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/target.hpp","line":42,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_window_id"},{"id":"libtmux::is_session_id","publicId":"libtmux::is_session_id","name":"is_session_id","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"value","type":"std::string_view"}],"raw":"[[nodiscard]] constexpr bool is_session_id(std::string_view value) noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/target.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_session_id"},{"id":"libtmux::path_component","publicId":"libtmux::path_component","name":"path_component","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] expected\npath_component(std::string_view name);","returns":"expected"}],"doc":{"summary":"Validate one path component.","body":"Ids skip validation because they contain no separator by construction."},"source":{"file":"include/libtmux/target.hpp","line":52,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-path_component"},{"id":"libtmux::session_target","publicId":"libtmux::session_target","name":"session_target","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"session","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nsession_target(std::string_view session);","returns":"expected"}],"doc":{"summary":"A session target is its id, or its validated name."},"source":{"file":"include/libtmux/target.hpp","line":64,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session_target"},{"id":"libtmux::window_target","publicId":"libtmux::window_target","name":"window_target","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"session","type":"std::string_view"},{"name":"window","type":"std::string_view"}],"raw":"[[nodiscard]] expected\nwindow_target(std::string_view session, std::string_view window);","returns":"expected"}],"doc":{"summary":"A window target is its id, which needs no session, or `session:window`."},"source":{"file":"include/libtmux/target.hpp","line":73,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window_target"},{"id":"libtmux::pane_target","publicId":"libtmux::pane_target","name":"pane_target","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"session","type":"std::string_view"},{"name":"window","type":"std::string_view"},{"name":"pane","type":"std::string_view"}],"raw":"[[nodiscard]] expected\npane_target(std::string_view session, std::string_view window, std::string_view pane);","returns":"expected"}],"doc":{"summary":"A pane target is its id, or `session:window.pane`."},"source":{"file":"include/libtmux/target.hpp","line":90,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane_target"},{"id":"libtmux::parse_version","publicId":"libtmux::parse_version","name":"parse_version","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"output","type":"std::string_view"}],"raw":"[[nodiscard]] expected parse_version(std::string_view output);","returns":"expected"}],"doc":{"summary":"Parse the first line of `tmux -V`, with or without its trailing newline."},"source":{"file":"include/libtmux/version.hpp","line":70,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parse_version"},{"id":"libtmux::is_supported","publicId":"libtmux::is_supported","name":"is_supported","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"version","type":"const Version &"}],"raw":"[[nodiscard]] constexpr bool is_supported(const Version& version) noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/version.hpp","line":152,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-is_supported"},{"id":"libtmux::library_version","publicId":"libtmux::library_version","name":"library_version","kind":"function","modifiers":[],"signatures":[{"params":[],"raw":"[[nodiscard]] std::string_view library_version() noexcept;","returns":"std::string_view"}],"doc":{"summary":"This package's own version, not tmux's."},"source":{"file":"include/libtmux/version.hpp","line":157,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-library_version"},{"id":"libtmux::matching","publicId":"libtmux::matching","name":"matching","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"expr","type":"FilterExpr"}],"typeParams":["typename Entity"],"raw":"template \n[[nodiscard]] auto libtmux::tmuxq::matching(FilterExpr expr);","returns":"auto","typeParameters":[{"name":"Entity"}]}],"doc":{"summary":"`matching(expr)` is a range adaptor closure so it composes with std views.","examples":[{"lang":"console","intro":"Filter snapshots and require one match. Filter a window snapshot with typed fields and standard ranges. exactly_one_owned copies a unique match, so the temporary view is safe. Missing and ambiguous matches have different CardinalityError values; these lookups make no tmux calls. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/query.cpp","code":"#include \n#include \n#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n for (const char* name : {\"editor\", \"logs\"}) {\n const auto made = sessions->front().new_window(\n libtmux::NewWindowOptions{.name = name, .shell_command = \"exec cat\"});\n if (!made.has_value()) {\n std::fprintf(stderr, \"%s\\n\", made.error().diagnostic.c_str());\n return 1;\n }\n }\n const auto windows = server->windows();\n if (!windows.has_value()) {\n std::fprintf(stderr, \"%s\\n\", windows.error().diagnostic.c_str());\n return 1;\n }\n const auto wanted =\n libtmux::window::name.starts_with(\"edit\") || libtmux::window::name == \"logs\";\n auto matches = *windows | libtmux::matching(wanted);\n const auto editor = libtmux::exactly_one_owned(\n *windows | libtmux::matching(libtmux::window::name == \"editor\"));\n auto absent = *windows | libtmux::matching(libtmux::window::name == \"absent\");\n const auto missing = libtmux::exactly_one(absent);\n const auto ambiguous = libtmux::exactly_one(matches);\n if (!editor.has_value() || std::ranges::distance(matches) != 2 ||\n missing.has_value() ||\n missing.error() != libtmux::CardinalityError::none_matched ||\n ambiguous.has_value() ||\n ambiguous.error() != libtmux::CardinalityError::several_matched) {\n std::fputs(\"unexpected query cardinality\\n\", stderr);\n return 1;\n }\n std::printf(\"Selected %s; two matches; missing and ambiguous are distinct.\\n\",\n std::string{editor->name()}.c_str());\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Selected editor; two matches; missing and ambiguous are distinct.\n"}]},"source":{"file":"include/libtmux/filter_expr.hpp","line":400,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-matching"},{"id":"libtmux::buffer::name","publicId":"libtmux::buffer::name","name":"name","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1279,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-name-n46r"},{"id":"libtmux::buffer::size","publicId":"libtmux::buffer::size","name":"size","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1281,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-size-1ih1"},{"id":"libtmux::buffer::sample","publicId":"libtmux::buffer::sample","name":"sample","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1283,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-sample-1ocw"},{"id":"libtmux::buffer::created","publicId":"libtmux::buffer::created","name":"created","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","doc":{"summary":"Epoch seconds, as tmux renders it and as `-f` would compare it; the accessor beside this one answers `sys_seconds` because that is what a caller holds."},"source":{"file":"include/libtmux/entities.hpp","line":1287,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-buffer-created-h7cl"},{"id":"libtmux::client::name","publicId":"libtmux::client::name","name":"name","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1225,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-name-et7n"},{"id":"libtmux::client::session_name","publicId":"libtmux::client::session_name","name":"session_name","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1227,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-session_name-1yzv"},{"id":"libtmux::client::read_only","publicId":"libtmux::client::read_only","name":"read_only","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1229,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-read_only-uoyl"},{"id":"libtmux::client::tty","publicId":"libtmux::client::tty","name":"tty","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1231,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-tty-65zh"},{"id":"libtmux::client::terminal","publicId":"libtmux::client::terminal","name":"terminal","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1233,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-terminal-197l"},{"id":"libtmux::client::control_mode","publicId":"libtmux::client::control_mode","name":"control_mode","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1235,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-control_mode-vqad"},{"id":"libtmux::client::width","publicId":"libtmux::client::width","name":"width","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1237,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-width-l6pa"},{"id":"libtmux::client::height","publicId":"libtmux::client::height","name":"height","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1239,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-height-19tm"},{"id":"libtmux::client::created","publicId":"libtmux::client::created","name":"created","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1241,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-created-1dtc"},{"id":"libtmux::client::last_activity","publicId":"libtmux::client::last_activity","name":"last_activity","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1245,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-last_activity-krbn"},{"id":"libtmux::client::pid","publicId":"libtmux::client::pid","name":"pid","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1249,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-pid-1lir"},{"id":"libtmux::client::active_pane_id","publicId":"libtmux::client::active_pane_id","name":"active_pane_id","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1251,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-active_pane_id-85wc"},{"id":"libtmux::client::flags","publicId":"libtmux::client::flags","name":"flags","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1254,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-flags-n3dj"},{"id":"libtmux::client::window_id","publicId":"libtmux::client::window_id","name":"window_id","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1256,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-client-window_id-1wkk"},{"id":"libtmux::command::name","publicId":"libtmux::command::name","name":"name","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1268,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command-name-193l"},{"id":"libtmux::command::alias","publicId":"libtmux::command::alias","name":"alias","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1270,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command-alias-1fzs"},{"id":"libtmux::command::usage","publicId":"libtmux::command::usage","name":"usage","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1272,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-command-usage-d8og"},{"id":"libtmux::detail::is_word_byte","publicId":"libtmux::detail::is_word_byte","name":"is_word_byte","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"byte","type":"unsigned char"}],"raw":"[[nodiscard]] constexpr bool is_word_byte(unsigned char byte) noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/capture.hpp","line":69,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-is_word_byte"},{"id":"libtmux::detail::mask_whole_occurrences","publicId":"libtmux::detail::mask_whole_occurrences","name":"mask_whole_occurrences","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"text","type":"std::string_view"},{"name":"echo","type":"std::string_view"}],"raw":"[[nodiscard]] std::string mask_whole_occurrences(std::string_view text,\n std::string_view echo);","returns":"std::string"}],"source":{"file":"include/libtmux/capture.hpp","line":75,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-mask_whole_occurrences"},{"id":"libtmux::detail::to_number","publicId":"libtmux::detail::to_number","name":"to_number","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] long long to_number(std::string_view text) noexcept;","returns":"long long"}],"doc":{"summary":"tmux renders every value as text.","body":"These read the three shapes it uses, and answer zero, false or the epoch for a value it did not render — which within the supported version range means tmux had nothing to say, not that the token was unknown."},"source":{"file":"include/libtmux/entities.hpp","line":239,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-to_number"},{"id":"libtmux::detail::to_flag","publicId":"libtmux::detail::to_flag","name":"to_flag","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] bool to_flag(std::string_view text) noexcept;","returns":"bool"}],"doc":{"summary":"tmux renders flag formats as \"1\" or \"0\"; anything else is not the flag."},"source":{"file":"include/libtmux/entities.hpp","line":247,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-to_flag"},{"id":"libtmux::detail::to_time","publicId":"libtmux::detail::to_time","name":"to_time","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"text","type":"std::string_view"}],"raw":"[[nodiscard]] std::chrono::sys_seconds to_time(std::string_view text) noexcept;","returns":"std::chrono::sys_seconds"}],"source":{"file":"include/libtmux/entities.hpp","line":251,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-to_time"},{"id":"libtmux::detail::same_entity_id","publicId":"libtmux::detail::same_entity_id","name":"same_entity_id","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"scoped_by_session","type":"bool"},{"name":"left_id","type":"std::string_view"},{"name":"left_session_id","type":"std::string_view"},{"name":"right_id","type":"std::string_view"},{"name":"right_session_id","type":"std::string_view"}],"raw":"[[nodiscard]] bool same_entity_id(bool scoped_by_session, std::string_view left_id,\n std::string_view left_session_id,\n std::string_view right_id,\n std::string_view right_session_id) noexcept;","returns":"bool"}],"source":{"file":"include/libtmux/entities.hpp","line":265,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-same_entity_id"},{"id":"libtmux::detail::server_over","publicId":"libtmux::detail::server_over","name":"server_over","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"backend","type":"std::shared_ptr"}],"raw":"[[nodiscard]] Server server_over(std::shared_ptr backend);","returns":"Server"}],"doc":{"summary":"Declared so the private constructor has exactly one way in.","body":"Defined in a header this package does not install."},"source":{"file":"include/libtmux/server.hpp","line":48,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-detail-server_over"},{"id":"libtmux::pane::id","publicId":"libtmux::pane::id","name":"id","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1167,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-id-y6bn"},{"id":"libtmux::pane::command","publicId":"libtmux::pane::command","name":"command","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1169,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-command-1csk"},{"id":"libtmux::pane::active","publicId":"libtmux::pane::active","name":"active","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1171,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-active-1lsu"},{"id":"libtmux::pane::window_id","publicId":"libtmux::pane::window_id","name":"window_id","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1173,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-window_id-5m7o"},{"id":"libtmux::pane::session_id","publicId":"libtmux::pane::session_id","name":"session_id","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1175,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-session_id-12gx"},{"id":"libtmux::pane::session_name","publicId":"libtmux::pane::session_name","name":"session_name","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1177,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-session_name-mmse"},{"id":"libtmux::pane::title","publicId":"libtmux::pane::title","name":"title","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1179,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-title-17ke"},{"id":"libtmux::pane::tty","publicId":"libtmux::pane::tty","name":"tty","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1181,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-tty-1ovf"},{"id":"libtmux::pane::path","publicId":"libtmux::pane::path","name":"path","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-path-1usu"},{"id":"libtmux::pane::dead","publicId":"libtmux::pane::dead","name":"dead","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1185,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-dead-fppz"},{"id":"libtmux::pane::in_mode","publicId":"libtmux::pane::in_mode","name":"in_mode","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1187,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-in_mode-1flx"},{"id":"libtmux::pane::index","publicId":"libtmux::pane::index","name":"index","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1189,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-index-b9np"},{"id":"libtmux::pane::pid","publicId":"libtmux::pane::pid","name":"pid","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1191,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-pid-wx6g"},{"id":"libtmux::pane::width","publicId":"libtmux::pane::width","name":"width","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1193,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-width-um8i"},{"id":"libtmux::pane::height","publicId":"libtmux::pane::height","name":"height","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1195,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-height-13yh"},{"id":"libtmux::pane::at_top","publicId":"libtmux::pane::at_top","name":"at_top","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1197,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-at_top-cxhf"},{"id":"libtmux::pane::at_bottom","publicId":"libtmux::pane::at_bottom","name":"at_bottom","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1199,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-at_bottom-1fcx"},{"id":"libtmux::pane::at_left","publicId":"libtmux::pane::at_left","name":"at_left","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1201,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-at_left-nnhz"},{"id":"libtmux::pane::at_right","publicId":"libtmux::pane::at_right","name":"at_right","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1203,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-at_right-8bbz"},{"id":"libtmux::pane::piping","publicId":"libtmux::pane::piping","name":"piping","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1205,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-piping-1wse"},{"id":"libtmux::pane::left","publicId":"libtmux::pane::left","name":"left","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1207,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-left-t0o5"},{"id":"libtmux::pane::top","publicId":"libtmux::pane::top","name":"top","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1209,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-top-1mvh"},{"id":"libtmux::pane::exit_status","publicId":"libtmux::pane::exit_status","name":"exit_status","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","doc":{"summary":"A pane that has not exited reads -1, which tmux cannot report: the field is `WEXITSTATUS` and so is 0 through 255, or empty.","body":"That makes `pane::exit_status == 0` exactly the panes that exited cleanly and `pane::exit_status >= 0` exactly the ones that exited at all, rather than folding \"still running\" into status zero."},"source":{"file":"include/libtmux/entities.hpp","line":1216,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-pane-exit_status-25ts"},{"id":"libtmux::session::id","publicId":"libtmux::session::id","name":"id","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1106,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-id-59rb"},{"id":"libtmux::session::name","publicId":"libtmux::session::name","name":"name","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1108,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-name-1eby"},{"id":"libtmux::session::attached","publicId":"libtmux::session::attached","name":"attached","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1110,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-attached-1hq4"},{"id":"libtmux::session::path","publicId":"libtmux::session::path","name":"path","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1112,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-path-4gm2"},{"id":"libtmux::session::group","publicId":"libtmux::session::group","name":"group","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1114,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-group-1vgj"},{"id":"libtmux::session::grouped","publicId":"libtmux::session::grouped","name":"grouped","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1116,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-grouped-1we8"},{"id":"libtmux::session::client_count","publicId":"libtmux::session::client_count","name":"client_count","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-client_count-1mj7"},{"id":"libtmux::session::window_count","publicId":"libtmux::session::window_count","name":"window_count","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1120,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-window_count-c4j5"},{"id":"libtmux::session::created","publicId":"libtmux::session::created","name":"created","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","doc":{"summary":"tmux renders a timestamp as epoch seconds, which is what a filter compares and what `-f` would compare on the server.","body":"The accessor beside this one answers `sys_seconds` because that is what a caller wants to hold."},"source":{"file":"include/libtmux/entities.hpp","line":1125,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-session-created-1ibc"},{"id":"libtmux::test::SocketMode","publicId":"libtmux::test::SocketMode","name":"SocketMode","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Whether the test server is addressed by `tmux -L name` or `tmux -S path`."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-socketmode"},{"id":"libtmux::test::SocketMode::Name","publicId":"libtmux::test::SocketMode::Name","name":"Name","kind":"constant","modifiers":[],"parent":"libtmux::test::SocketMode","signatures":[],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-socketmode-name"},{"id":"libtmux::test::SocketMode::Path","publicId":"libtmux::test::SocketMode::Path","name":"Path","kind":"constant","modifiers":[],"parent":"libtmux::test::SocketMode","signatures":[],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":25,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-socketmode-path"},{"id":"libtmux::test::current_environment","publicId":"libtmux::test::current_environment","name":"current_environment","kind":"function","modifiers":[],"signatures":[{"params":[],"raw":"[[nodiscard]] std::vector current_environment();","returns":"std::vector"}],"doc":{"summary":"Build and edit a `NAME=VALUE` block for a child process.","body":"`current_environment` copies this process's; `set_environment` replaces any existing entry rather than appending; `erase_environment` removes every entry for the name."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":76,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-current_environment"},{"id":"libtmux::test::set_environment","publicId":"libtmux::test::set_environment","name":"set_environment","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"environment","type":"std::vector &"},{"name":"name","type":"std::string_view"},{"name":"value","type":"std::string_view"}],"raw":"void set_environment(std::vector& environment, std::string_view name,\n std::string_view value);","returns":"void"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":77,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-set_environment"},{"id":"libtmux::test::erase_environment","publicId":"libtmux::test::erase_environment","name":"erase_environment","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"environment","type":"std::vector &"},{"name":"name","type":"std::string_view"}],"raw":"void erase_environment(std::vector& environment, std::string_view name);","returns":"void"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":79,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-erase_environment"},{"id":"libtmux::test::same_socket_inode","publicId":"libtmux::test::same_socket_inode","name":"same_socket_inode","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"left","type":"const std::filesystem::path &"},{"name":"right","type":"const std::filesystem::path &"}],"raw":"[[nodiscard]] libtmux::expected\nsame_socket_inode(const std::filesystem::path& left,\n const std::filesystem::path& right);","returns":"libtmux::expected"}],"doc":{"summary":"Whether two paths name the same socket.","body":"Not `std::filesystem::equivalent`: [fs.op.equivalent] makes it an error when both paths are \"other\" files, and a unix domain socket is one. That is not a corner a tmux suite can avoid — every socket comparison hits it — and the two standard libraries disagree about it. libstdc++ implements the rule and reports `ENOTSUP`; libc++ answers anyway, so the same test passes on one and fails on the other. This asks the kernel for the inode instead.\n\nThe error is for a path that could not be inspected at all; a readable pair that names two different sockets is a `false`, not a failure."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":93,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-same_socket_inode"},{"id":"libtmux::test::running_tmux","publicId":"libtmux::test::running_tmux","name":"running_tmux","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"tmux_binary","type":"const std::filesystem::path &","default":"\"tmux\""}],"raw":"[[nodiscard]] Version running_tmux(const std::filesystem::path& tmux_binary = \"tmux\");","returns":"Version"}],"doc":{"summary":"Resolved once per distinct binary and cached.","body":"A tmux that cannot be run or whose version cannot be parsed reports as the newest possible version, so version-gated tests run and fail rather than silently skipping."},"source":{"file":"include/libtmux/testing/tmux_version.hpp","line":23,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-running_tmux"},{"id":"libtmux::test::describe_running_tmux","publicId":"libtmux::test::describe_running_tmux","name":"describe_running_tmux","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"tmux_binary","type":"const std::filesystem::path &","default":"\"tmux\""}],"raw":"[[nodiscard]] std::string\ndescribe_running_tmux(const std::filesystem::path& tmux_binary = \"tmux\");","returns":"std::string"}],"doc":{"summary":"What `tmux -V` printed, verbatim, or \"unknown\"."},"source":{"file":"include/libtmux/testing/tmux_version.hpp","line":27,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-describe_running_tmux"},{"id":"libtmux::tmuxq::matching","publicId":"libtmux::tmuxq::matching","name":"matching","kind":"function","modifiers":["overload"],"signatures":[{"params":[{"name":"expr","type":"FilterExpr"}],"typeParams":["typename Entity"],"raw":"template [[nodiscard]] auto matching(FilterExpr expr);","returns":"auto","typeParameters":[{"name":"Entity"}]},{"params":[{"name":"field","type":"BoolFieldHandle"}],"typeParams":["typename Entity"],"raw":"template [[nodiscard]] auto matching(BoolFieldHandle field);","returns":"auto","typeParameters":[{"name":"Entity"}]}],"doc":{"summary":"`matching(expr)` is a range adaptor closure so it composes with std views."},"source":{"file":"include/libtmux/filter_expr.hpp","line":388,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-tmuxq-matching"},{"id":"libtmux::window::id","publicId":"libtmux::window::id","name":"id","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1134,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-id-1jff"},{"id":"libtmux::window::name","publicId":"libtmux::window::name","name":"name","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1136,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-name-1187"},{"id":"libtmux::window::active","publicId":"libtmux::window::active","name":"active","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1138,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-active-1nkh"},{"id":"libtmux::window::session_id","publicId":"libtmux::window::session_id","name":"session_id","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1140,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-session_id-rzt6"},{"id":"libtmux::window::session_name","publicId":"libtmux::window::session_name","name":"session_name","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1142,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-session_name-5i0n"},{"id":"libtmux::window::layout","publicId":"libtmux::window::layout","name":"layout","kind":"attribute","modifiers":[],"signatures":[],"type":"StringFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1144,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-layout-1aks"},{"id":"libtmux::window::zoomed","publicId":"libtmux::window::zoomed","name":"zoomed","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1146,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-zoomed-rcw4"},{"id":"libtmux::window::bell","publicId":"libtmux::window::bell","name":"bell","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-bell-16ky"},{"id":"libtmux::window::activity","publicId":"libtmux::window::activity","name":"activity","kind":"attribute","modifiers":[],"signatures":[],"type":"BoolFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1150,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-activity-1gwj"},{"id":"libtmux::window::index","publicId":"libtmux::window::index","name":"index","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1152,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-index-isxp"},{"id":"libtmux::window::pane_count","publicId":"libtmux::window::pane_count","name":"pane_count","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1154,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-pane_count-1gmi"},{"id":"libtmux::window::width","publicId":"libtmux::window::width","name":"width","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1156,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-width-aksp"},{"id":"libtmux::window::height","publicId":"libtmux::window::height","name":"height","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1158,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-height-vlzt"},{"id":"libtmux::window::linked_sessions","publicId":"libtmux::window::linked_sessions","name":"linked_sessions","kind":"attribute","modifiers":[],"signatures":[],"type":"NumberFieldHandle","source":{"file":"include/libtmux/entities.hpp","line":1160,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-window-linked_sessions-g8ns"},{"id":"libtmux::BoolField","publicId":"libtmux::BoolField","name":"BoolField","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A flag on an entity, named for the expression and read through a function pointer rather than a member pointer so the same descriptor works for a field computed from several tmux tokens."},"source":{"file":"include/libtmux/filter_expr.hpp","line":62,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-boolfield","typeParams":["typename Entity"],"typeParameters":[{"name":"Entity"}]},{"id":"libtmux::BoolField::name","publicId":"libtmux::BoolField::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::BoolField","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/filter_expr.hpp","line":62,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-boolfield-name"},{"id":"libtmux::BoolField::read","publicId":"libtmux::BoolField::read","name":"read","kind":"attribute","modifiers":[],"parent":"libtmux::BoolField","signatures":[],"type":"bool(*)","source":{"file":"include/libtmux/filter_expr.hpp","line":63,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-boolfield-read"},{"id":"libtmux::BoolFieldHandle","publicId":"libtmux::BoolFieldHandle","name":"BoolFieldHandle","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"The value a flag's name resolves to in an expression.","body":"Converts to a filter on its own, so naming the field is the same as testing it for true."},"source":{"file":"include/libtmux/filter_expr.hpp","line":308,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-boolfieldhandle","typeParams":["typename Entity"],"typeParameters":[{"name":"Entity"}]},{"id":"libtmux::BoolFieldHandle::field","publicId":"libtmux::BoolFieldHandle::field","name":"field","kind":"attribute","modifiers":[],"parent":"libtmux::BoolFieldHandle","signatures":[],"type":"BoolField","source":{"file":"include/libtmux/filter_expr.hpp","line":308,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-boolfieldhandle-field"},{"id":"libtmux::CaptureOptions","publicId":"libtmux::CaptureOptions","name":"CaptureOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Which part of a pane's screen and scrollback a capture reads.","body":"A capture reads what the pane is showing, so a line the program redrew is the redrawn one and a line scrolled past the history limit is gone."},"source":{"file":"include/libtmux/entities.hpp","line":168,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-captureoptions"},{"id":"libtmux::CaptureOptions::start_line","publicId":"libtmux::CaptureOptions::start_line","name":"start_line","kind":"attribute","modifiers":[],"parent":"libtmux::CaptureOptions","signatures":[],"type":"std::optional","doc":{"summary":"Where to start, counting back into the scrollback.","body":"Absent starts at the top of the visible pane."},"source":{"file":"include/libtmux/entities.hpp","line":168,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-captureoptions-start_line"},{"id":"libtmux::CaptureOptions::end_line","publicId":"libtmux::CaptureOptions::end_line","name":"end_line","kind":"attribute","modifiers":[],"parent":"libtmux::CaptureOptions","signatures":[],"type":"std::optional","source":{"file":"include/libtmux/entities.hpp","line":169,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-captureoptions-end_line"},{"id":"libtmux::CaptureOptions::whole_history","publicId":"libtmux::CaptureOptions::whole_history","name":"whole_history","kind":"attribute","modifiers":[],"parent":"libtmux::CaptureOptions","signatures":[],"type":"bool","doc":{"summary":"Everything tmux still remembers, which is what a caller reading history usually means."},"source":{"file":"include/libtmux/entities.hpp","line":172,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-captureoptions-whole_history"},{"id":"libtmux::CaptureOptions::join_wrapped","publicId":"libtmux::CaptureOptions::join_wrapped","name":"join_wrapped","kind":"attribute","modifiers":[],"parent":"libtmux::CaptureOptions","signatures":[],"type":"bool","doc":{"summary":"Join a line tmux wrapped back into the one line it was."},"source":{"file":"include/libtmux/entities.hpp","line":174,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-captureoptions-join_wrapped"},{"id":"libtmux::CaptureOptions::with_escape_sequences","publicId":"libtmux::CaptureOptions::with_escape_sequences","name":"with_escape_sequences","kind":"attribute","modifiers":[],"parent":"libtmux::CaptureOptions","signatures":[],"type":"bool","doc":{"summary":"Keep the escape sequences rather than the text they produced."},"source":{"file":"include/libtmux/entities.hpp","line":176,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-captureoptions-with_escape_sequences"},{"id":"libtmux::CaptureOptions::keep_trailing_spaces","publicId":"libtmux::CaptureOptions::keep_trailing_spaces","name":"keep_trailing_spaces","kind":"attribute","modifiers":[],"parent":"libtmux::CaptureOptions","signatures":[],"type":"bool","doc":{"summary":"Keep the spaces at the end of a line, which tmux otherwise trims."},"source":{"file":"include/libtmux/entities.hpp","line":178,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-captureoptions-keep_trailing_spaces"},{"id":"libtmux::CaptureOptions::output_limit","publicId":"libtmux::CaptureOptions::output_limit","name":"output_limit","kind":"attribute","modifiers":[],"parent":"libtmux::CaptureOptions","signatures":[],"type":"std::optional","doc":{"summary":"How much of the answer this call is prepared to hold.","body":"A scrollback can be far larger than the default, and one that does not fit is reported."},"source":{"file":"include/libtmux/entities.hpp","line":181,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-captureoptions-output_limit"},{"id":"libtmux::CommandFailure","publicId":"libtmux::CommandFailure","name":"CommandFailure","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A command that did not produce an answer, and how far it got.","body":"`delivery` is the part that decides whether retrying is safe; `kind` and `diagnostic` say what to fix."},"source":{"file":"include/libtmux/command.hpp","line":89,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandfailure"},{"id":"libtmux::CommandFailure::kind","publicId":"libtmux::CommandFailure::kind","name":"kind","kind":"attribute","modifiers":[],"parent":"libtmux::CommandFailure","signatures":[],"type":"FailureKind","source":{"file":"include/libtmux/command.hpp","line":89,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandfailure-kind"},{"id":"libtmux::CommandFailure::delivery","publicId":"libtmux::CommandFailure::delivery","name":"delivery","kind":"attribute","modifiers":[],"parent":"libtmux::CommandFailure","signatures":[],"type":"DeliveryStatus","doc":{"summary":"How far the command is known to have progressed.","body":"Only `not_started` is safe to retry blindly."},"source":{"file":"include/libtmux/command.hpp","line":92,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandfailure-delivery"},{"id":"libtmux::CommandFailure::exit_code","publicId":"libtmux::CommandFailure::exit_code","name":"exit_code","kind":"attribute","modifiers":[],"parent":"libtmux::CommandFailure","signatures":[],"type":"int","source":{"file":"include/libtmux/command.hpp","line":93,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandfailure-exit_code"},{"id":"libtmux::CommandFailure::diagnostic","publicId":"libtmux::CommandFailure::diagnostic","name":"diagnostic","kind":"attribute","modifiers":[],"parent":"libtmux::CommandFailure","signatures":[],"type":"std::string","source":{"file":"include/libtmux/command.hpp","line":94,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandfailure-diagnostic"},{"id":"libtmux::CommandReport","publicId":"libtmux::CommandReport","name":"CommandReport","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Told about every command, as it finishes.","body":"There is otherwise no way to see what this library ran: a caller debugging a tmux interaction has only the failures, and nothing at all when things succeed. The command is rendered as tmux received it, with any argument marked sensitive replaced.\n\nSynchronous calls invoke it on their caller's thread. Asynchronous calls invoke it only on the thread calling `CommandRuntime::dispatch_ready`. No internal lock is held; a shared observer must synchronise itself."},"source":{"file":"include/libtmux/command.hpp","line":229,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandreport"},{"id":"libtmux::CommandReport::command","publicId":"libtmux::CommandReport::command","name":"command","kind":"attribute","modifiers":[],"parent":"libtmux::CommandReport","signatures":[],"type":"std::string_view","doc":{"summary":"As tmux received it, with any argument marked sensitive replaced.","body":"For a human reading a log."},"source":{"file":"include/libtmux/command.hpp","line":229,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandreport-command"},{"id":"libtmux::CommandReport::argv","publicId":"libtmux::CommandReport::argv","name":"argv","kind":"attribute","modifiers":[],"parent":"libtmux::CommandReport","signatures":[],"type":"std::span","doc":{"summary":"The same command unrendered, for a caller building structured telemetry rather than a line of text.","body":"Empty when the report has no argv to give."},"source":{"file":"include/libtmux/command.hpp","line":232,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandreport-argv"},{"id":"libtmux::CommandReport::failure","publicId":"libtmux::CommandReport::failure","name":"failure","kind":"attribute","modifiers":[],"parent":"libtmux::CommandReport","signatures":[],"type":"const CommandFailure *","doc":{"summary":"Nothing when the command succeeded."},"source":{"file":"include/libtmux/command.hpp","line":234,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandreport-failure"},{"id":"libtmux::CommandReport::elapsed","publicId":"libtmux::CommandReport::elapsed","name":"elapsed","kind":"attribute","modifiers":[],"parent":"libtmux::CommandReport","signatures":[],"type":"std::optional","doc":{"summary":"How long the command took, measured around its dispatch.","body":"Absent when nothing was dispatched — a request rejected before it ran took no time, and reporting zero would read as an immeasurably fast command."},"source":{"file":"include/libtmux/command.hpp","line":238,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandreport-elapsed"},{"id":"libtmux::CommandRuntimeConfig","publicId":"libtmux::CommandRuntimeConfig","name":"CommandRuntimeConfig","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"The maximum number of accepted commands retaining any lifecycle leg.","body":"`start` rejects zero with `DeliveryStatus::not_started`. How many commands the runtime will admit at once."},"source":{"file":"include/libtmux/async.hpp","line":34,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimeconfig"},{"id":"libtmux::CommandRuntimeConfig::capacity","publicId":"libtmux::CommandRuntimeConfig::capacity","name":"capacity","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeConfig","signatures":[],"type":"std::size_t","source":{"file":"include/libtmux/async.hpp","line":34,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimeconfig-capacity"},{"id":"libtmux::CommandRuntimeShutdown","publicId":"libtmux::CommandRuntimeShutdown","name":"CommandRuntimeShutdown","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"The first successful `close` report; every later call returns this value.","body":"Discharge result and observer work first when `safe_to_unload` must be true."},"source":{"file":"include/libtmux/async.hpp","line":65,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimeshutdown"},{"id":"libtmux::CommandRuntimeShutdown::pending_results","publicId":"libtmux::CommandRuntimeShutdown::pending_results","name":"pending_results","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeShutdown","signatures":[],"type":"std::size_t","doc":{"summary":"Result obligations outstanding when the first close succeeded."},"source":{"file":"include/libtmux/async.hpp","line":65,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimeshutdown-pending_results"},{"id":"libtmux::CommandRuntimeShutdown::pending_observers","publicId":"libtmux::CommandRuntimeShutdown::pending_observers","name":"pending_observers","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeShutdown","signatures":[],"type":"std::size_t","doc":{"summary":"Observer obligations outstanding when the first close succeeded."},"source":{"file":"include/libtmux/async.hpp","line":67,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimeshutdown-pending_observers"},{"id":"libtmux::CommandRuntimeShutdown::transports_stopped","publicId":"libtmux::CommandRuntimeShutdown::transports_stopped","name":"transports_stopped","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeShutdown","signatures":[],"type":"bool","doc":{"summary":"Whether every owned child and transport thread retired."},"source":{"file":"include/libtmux/async.hpp","line":69,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimeshutdown-transports_stopped"},{"id":"libtmux::CommandRuntimeShutdown::safe_to_unload","publicId":"libtmux::CommandRuntimeShutdown::safe_to_unload","name":"safe_to_unload","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeShutdown","signatures":[],"type":"bool","doc":{"summary":"True only when transports and pending work ended and no caller-side readiness wait, dispatch or discard, including callback-target teardown, remains active.","body":"Callers must prevent concurrent or later runtime entry before unloading."},"source":{"file":"include/libtmux/async.hpp","line":74,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimeshutdown-safe_to_unload"},{"id":"libtmux::CommandRuntimeShutdown::failure","publicId":"libtmux::CommandRuntimeShutdown::failure","name":"failure","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeShutdown","signatures":[],"type":"std::optional","doc":{"summary":"The first runtime lifecycle failure; an operation may also carry it."},"source":{"file":"include/libtmux/async.hpp","line":76,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimeshutdown-failure"},{"id":"libtmux::CommandRuntimeSnapshot","publicId":"libtmux::CommandRuntimeSnapshot","name":"CommandRuntimeSnapshot","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A lock-consistent instant; values may change immediately after it is read.","body":"Admission, refusal, and completion totals are monotonic. The runtime's counters at one instant, for diagnostics rather than control.\n\nRead under a lock and stale immediately after, so a caller must not branch on `in_flight` expecting it to still hold. The totals only ever increase."},"source":{"file":"include/libtmux/async.hpp","line":44,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimesnapshot"},{"id":"libtmux::CommandRuntimeSnapshot::capacity","publicId":"libtmux::CommandRuntimeSnapshot::capacity","name":"capacity","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeSnapshot","signatures":[],"type":"std::size_t","source":{"file":"include/libtmux/async.hpp","line":44,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimesnapshot-capacity"},{"id":"libtmux::CommandRuntimeSnapshot::in_flight","publicId":"libtmux::CommandRuntimeSnapshot::in_flight","name":"in_flight","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeSnapshot","signatures":[],"type":"std::size_t","doc":{"summary":"Accepted commands retaining transport, result, or observer work."},"source":{"file":"include/libtmux/async.hpp","line":46,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimesnapshot-in_flight"},{"id":"libtmux::CommandRuntimeSnapshot::pending_results","publicId":"libtmux::CommandRuntimeSnapshot::pending_results","name":"pending_results","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeSnapshot","signatures":[],"type":"std::size_t","doc":{"summary":"Result handles not yet waited, detached, or destroyed."},"source":{"file":"include/libtmux/async.hpp","line":48,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimesnapshot-pending_results"},{"id":"libtmux::CommandRuntimeSnapshot::pending_observers","publicId":"libtmux::CommandRuntimeSnapshot::pending_observers","name":"pending_observers","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeSnapshot","signatures":[],"type":"std::size_t","doc":{"summary":"Observer records not yet claimed for dispatch or discarded, ready or not."},"source":{"file":"include/libtmux/async.hpp","line":50,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimesnapshot-pending_observers"},{"id":"libtmux::CommandRuntimeSnapshot::accepted","publicId":"libtmux::CommandRuntimeSnapshot::accepted","name":"accepted","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeSnapshot","signatures":[],"type":"std::uint64_t","doc":{"summary":"Commands admitted since startup."},"source":{"file":"include/libtmux/async.hpp","line":52,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimesnapshot-accepted"},{"id":"libtmux::CommandRuntimeSnapshot::refused","publicId":"libtmux::CommandRuntimeSnapshot::refused","name":"refused","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeSnapshot","signatures":[],"type":"std::uint64_t","doc":{"summary":"Commands refused before admission since startup."},"source":{"file":"include/libtmux/async.hpp","line":54,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimesnapshot-refused"},{"id":"libtmux::CommandRuntimeSnapshot::completed","publicId":"libtmux::CommandRuntimeSnapshot::completed","name":"completed","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeSnapshot","signatures":[],"type":"std::uint64_t","doc":{"summary":"Accepted results whose observer record, when present, is also ready."},"source":{"file":"include/libtmux/async.hpp","line":56,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimesnapshot-completed"},{"id":"libtmux::CommandRuntimeSnapshot::accepting","publicId":"libtmux::CommandRuntimeSnapshot::accepting","name":"accepting","kind":"attribute","modifiers":[],"parent":"libtmux::CommandRuntimeSnapshot","signatures":[],"type":"bool","doc":{"summary":"True while neither stop nor close has ended admission."},"source":{"file":"include/libtmux/async.hpp","line":58,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-commandruntimesnapshot-accepting"},{"id":"libtmux::ConnectionOptions","publicId":"libtmux::ConnectionOptions","name":"ConnectionOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"How to start a control-mode connection, and what it is allowed to buffer.","body":"Two of these cannot be changed later because tmux cannot: whether pane output is delivered at all is fixed when the connection starts, and the decoder's bounds belong to the decoder rather than to whatever reads it."},"source":{"file":"include/libtmux/control.hpp","line":142,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions"},{"id":"libtmux::ConnectionOptions::tmux_binary","publicId":"libtmux::ConnectionOptions::tmux_binary","name":"tmux_binary","kind":"attribute","modifiers":[],"parent":"libtmux::ConnectionOptions","signatures":[],"type":"std::optional","doc":{"summary":"Which tmux to run.","body":"Absent means `tmux` from `PATH` — or, through `Server::control`, the tmux that Server's policy names. Absent rather than defaulting to `tmux`, so that a caller who writes `tmux` here gets it, instead of being indistinguishable from one who wrote nothing."},"source":{"file":"include/libtmux/control.hpp","line":142,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions-tmux_binary"},{"id":"libtmux::ConnectionOptions::socket_path","publicId":"libtmux::ConnectionOptions::socket_path","name":"socket_path","kind":"attribute","modifiers":[],"parent":"libtmux::ConnectionOptions","signatures":[],"type":"std::filesystem::path","source":{"file":"include/libtmux/control.hpp","line":143,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions-socket_path"},{"id":"libtmux::ConnectionOptions::session_name","publicId":"libtmux::ConnectionOptions::session_name","name":"session_name","kind":"attribute","modifiers":[],"parent":"libtmux::ConnectionOptions","signatures":[],"type":"std::string","source":{"file":"include/libtmux/control.hpp","line":144,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions-session_name"},{"id":"libtmux::ConnectionOptions::startup_timeout","publicId":"libtmux::ConnectionOptions::startup_timeout","name":"startup_timeout","kind":"attribute","modifiers":[],"parent":"libtmux::ConnectionOptions","signatures":[],"type":"std::chrono::milliseconds","source":{"file":"include/libtmux/control.hpp","line":145,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions-startup_timeout"},{"id":"libtmux::ConnectionOptions::shutdown_timeout","publicId":"libtmux::ConnectionOptions::shutdown_timeout","name":"shutdown_timeout","kind":"attribute","modifiers":[],"parent":"libtmux::ConnectionOptions","signatures":[],"type":"std::chrono::milliseconds","source":{"file":"include/libtmux/control.hpp","line":146,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions-shutdown_timeout"},{"id":"libtmux::ConnectionOptions::retained_reply_bytes","publicId":"libtmux::ConnectionOptions::retained_reply_bytes","name":"retained_reply_bytes","kind":"attribute","modifiers":[],"parent":"libtmux::ConnectionOptions","signatures":[],"type":"std::size_t","doc":{"summary":"Passed to the decoder.","body":"Raise the first to hold a bigger capture; the second bounds a line that never ends. A connection accepts zero (unbounded) or at least 128 bytes, which leaves room for its private request boundary."},"source":{"file":"include/libtmux/control.hpp","line":151,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions-retained_reply_bytes"},{"id":"libtmux::ConnectionOptions::line_bytes","publicId":"libtmux::ConnectionOptions::line_bytes","name":"line_bytes","kind":"attribute","modifiers":[],"parent":"libtmux::ConnectionOptions","signatures":[],"type":"std::size_t","source":{"file":"include/libtmux/control.hpp","line":152,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions-line_bytes"},{"id":"libtmux::ConnectionOptions::pane_output","publicId":"libtmux::ConnectionOptions::pane_output","name":"pane_output","kind":"attribute","modifiers":[],"parent":"libtmux::ConnectionOptions","signatures":[],"type":"bool","doc":{"summary":"Deliver `output` for every pane, as notifications.","body":"Off, so tmux is not asked to buffer pane output for a caller who never reads it. It is fixed at connect time because tmux fixes it: a connection started without output cannot be made to listen later, so this cannot be a subscription. See `docs/design/pane-output-streaming.md`."},"source":{"file":"include/libtmux/control.hpp","line":160,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions-pane_output"},{"id":"libtmux::ConnectionOptions::pause_after","publicId":"libtmux::ConnectionOptions::pause_after","name":"pause_after","kind":"attribute","modifiers":[],"parent":"libtmux::ConnectionOptions","signatures":[],"type":"std::optional","doc":{"summary":"Discard a pane's queued output once it is this far behind, and say so with `pause`.","body":"A data-loss policy rather than backpressure, and unset is a policy too: tmux then buffers until a queued block is five minutes old and closes the connection with `too far behind`. Set this and a slow reader survives having lost output; leave it and a slow enough reader loses the connection. Only meaningful with `pane_output`.\n\n`pause` is the sole report that anything was dropped, and it names the pane. A caller that sets this and ignores notifications has chosen to lose output silently."},"source":{"file":"include/libtmux/control.hpp","line":174,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-connectionoptions-pause_after"},{"id":"libtmux::ControlBlock","publicId":"libtmux::ControlBlock","name":"ControlBlock","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"One reply block, framed between tmux's `begin` and its terminator.","body":"Framing is all this is: whether the command succeeded is `terminal`, and what it said is `body`. A body that hit the decoder's retention bound is still framed and still attributable — see `body_truncated`."},"source":{"file":"include/libtmux/control.hpp","line":66,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlblock"},{"id":"libtmux::ControlBlock::sequence","publicId":"libtmux::ControlBlock::sequence","name":"sequence","kind":"attribute","modifiers":[],"parent":"libtmux::ControlBlock","signatures":[],"type":"std::uint64_t","source":{"file":"include/libtmux/control.hpp","line":66,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlblock-sequence"},{"id":"libtmux::ControlBlock::command_number","publicId":"libtmux::ControlBlock::command_number","name":"command_number","kind":"attribute","modifiers":[],"parent":"libtmux::ControlBlock","signatures":[],"type":"std::uint64_t","source":{"file":"include/libtmux/control.hpp","line":67,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlblock-command_number"},{"id":"libtmux::ControlBlock::terminal","publicId":"libtmux::ControlBlock::terminal","name":"terminal","kind":"attribute","modifiers":[],"parent":"libtmux::ControlBlock","signatures":[],"type":"ControlTerminal","source":{"file":"include/libtmux/control.hpp","line":68,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlblock-terminal"},{"id":"libtmux::ControlBlock::begin_metadata","publicId":"libtmux::ControlBlock::begin_metadata","name":"begin_metadata","kind":"attribute","modifiers":[],"parent":"libtmux::ControlBlock","signatures":[],"type":"std::vector","source":{"file":"include/libtmux/control.hpp","line":69,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlblock-begin_metadata"},{"id":"libtmux::ControlBlock::terminal_metadata","publicId":"libtmux::ControlBlock::terminal_metadata","name":"terminal_metadata","kind":"attribute","modifiers":[],"parent":"libtmux::ControlBlock","signatures":[],"type":"std::vector","source":{"file":"include/libtmux/control.hpp","line":70,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlblock-terminal_metadata"},{"id":"libtmux::ControlBlock::body","publicId":"libtmux::ControlBlock::body","name":"body","kind":"attribute","modifiers":[],"parent":"libtmux::ControlBlock","signatures":[],"type":"std::vector","source":{"file":"include/libtmux/control.hpp","line":71,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlblock-body"},{"id":"libtmux::ControlBlock::body_truncated","publicId":"libtmux::ControlBlock::body_truncated","name":"body_truncated","kind":"attribute","modifiers":[],"parent":"libtmux::ControlBlock","signatures":[],"type":"bool","doc":{"summary":"`body` holds the first `retained_reply_bytes` and stopped; `body_bytes` is how many there were.","body":"Set rather than reported as an error because framing is the parser's job and judging the answer is the caller's: the rest of the reply is still drained, so the next command's reply is still attributable."},"source":{"file":"include/libtmux/control.hpp","line":76,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlblock-body_truncated"},{"id":"libtmux::ControlBlock::body_bytes","publicId":"libtmux::ControlBlock::body_bytes","name":"body_bytes","kind":"attribute","modifiers":[],"parent":"libtmux::ControlBlock","signatures":[],"type":"std::size_t","source":{"file":"include/libtmux/control.hpp","line":77,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlblock-body_bytes"},{"id":"libtmux::ControlCommand","publicId":"libtmux::ControlCommand","name":"ControlCommand","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"One command as argv, before it is joined into a control-mode line."},"source":{"file":"include/libtmux/control.hpp","line":111,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlcommand"},{"id":"libtmux::ControlCommand::argv","publicId":"libtmux::ControlCommand::argv","name":"argv","kind":"attribute","modifiers":[],"parent":"libtmux::ControlCommand","signatures":[],"type":"std::vector","source":{"file":"include/libtmux/control.hpp","line":111,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlcommand-argv"},{"id":"libtmux::ControlRequest","publicId":"libtmux::ControlRequest","name":"ControlRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"The commands sent as one group, which tmux runs until one fails."},"source":{"file":"include/libtmux/control.hpp","line":116,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlrequest"},{"id":"libtmux::ControlRequest::group","publicId":"libtmux::ControlRequest::group","name":"group","kind":"attribute","modifiers":[],"parent":"libtmux::ControlRequest","signatures":[],"type":"std::vector","source":{"file":"include/libtmux/control.hpp","line":116,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlrequest-group"},{"id":"libtmux::ControlRequestResult","publicId":"libtmux::ControlRequestResult","name":"ControlRequestResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"What one request produced: its reply blocks, and the connection error that ended the exchange if one did.","body":"A connection error is separate from a failed block because they need different handling: a failed command leaves the connection usable."},"source":{"file":"include/libtmux/control.hpp","line":128,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlrequestresult"},{"id":"libtmux::ControlRequestResult::blocks","publicId":"libtmux::ControlRequestResult::blocks","name":"blocks","kind":"attribute","modifiers":[],"parent":"libtmux::ControlRequestResult","signatures":[],"type":"std::vector","doc":{"summary":"Every synchronous reply block tmux emitted for this request, in wire order.","body":"tmux does not put a request or operation ID on its guards, so a command alias or inserted command may make this differ from `group`."},"source":{"file":"include/libtmux/control.hpp","line":128,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlrequestresult-blocks"},{"id":"libtmux::ControlRequestResult::connection_error","publicId":"libtmux::ControlRequestResult::connection_error","name":"connection_error","kind":"attribute","modifiers":[],"parent":"libtmux::ControlRequestResult","signatures":[],"type":"std::optional","source":{"file":"include/libtmux/control.hpp","line":129,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-controlrequestresult-connection_error"},{"id":"libtmux::EnvironmentEntry","publicId":"libtmux::EnvironmentEntry","name":"EnvironmentEntry","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"One name in the environment tmux gives processes it starts.","body":"The value is optional because tmux distinguishes two things a listing shows side by side: a name bound to a value, printed `NAME=value`, and a name marked so that a child does not inherit it, printed `-NAME`. The second is an instruction rather than an empty value, and flattening it to `\"\"` would tell a caller the child sees an empty string when it sees nothing at all."},"source":{"file":"include/libtmux/options.hpp","line":27,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-environmententry"},{"id":"libtmux::EnvironmentEntry::name","publicId":"libtmux::EnvironmentEntry::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::EnvironmentEntry","signatures":[],"type":"std::string","source":{"file":"include/libtmux/options.hpp","line":27,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-environmententry-name"},{"id":"libtmux::EnvironmentEntry::value","publicId":"libtmux::EnvironmentEntry::value","name":"value","kind":"attribute","modifiers":[],"parent":"libtmux::EnvironmentEntry","signatures":[],"type":"std::optional","source":{"file":"include/libtmux/options.hpp","line":28,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-environmententry-value"},{"id":"libtmux::ExecutionPolicy","publicId":"libtmux::ExecutionPolicy","name":"ExecutionPolicy","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"What a call waits and holds when the caller did not say.","body":"A timeout on the call is still how a caller says \"this one in particular\": listing sessions does not share a deadline with attaching a client. What was missing was a floor. Typed methods passed no timeout at all, so `window.rename(...)` waited for as long as the process ran if tmux never answered — and \"tmux is normally fast\" is not a liveness guarantee when a hook blocks, a filesystem stops answering, or a connection breaks without closing the pipe.\n\nThirty seconds is far past every tmux command that works and far short of forever. `wait_for` opts out, because waiting is the whole request."},"source":{"file":"include/libtmux/command.hpp","line":258,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-executionpolicy"},{"id":"libtmux::ExecutionPolicy::timeout","publicId":"libtmux::ExecutionPolicy::timeout","name":"timeout","kind":"attribute","modifiers":[],"parent":"libtmux::ExecutionPolicy","signatures":[],"type":"std::optional","doc":{"summary":"Absent means wait. That is a thing to mean deliberately."},"source":{"file":"include/libtmux/command.hpp","line":258,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-executionpolicy-timeout"},{"id":"libtmux::ExecutionPolicy::output_limit","publicId":"libtmux::ExecutionPolicy::output_limit","name":"output_limit","kind":"attribute","modifiers":[],"parent":"libtmux::ExecutionPolicy","signatures":[],"type":"std::optional","doc":{"summary":"Absent leaves the transport's own bound, which is one megabyte."},"source":{"file":"include/libtmux/command.hpp","line":260,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-executionpolicy-output_limit"},{"id":"libtmux::ExecutionPolicy::tmux_binary","publicId":"libtmux::ExecutionPolicy::tmux_binary","name":"tmux_binary","kind":"attribute","modifiers":[],"parent":"libtmux::ExecutionPolicy","signatures":[],"type":"std::filesystem::path","doc":{"summary":"Which tmux to run.","body":"A bare name is resolved through `PATH`, as tmux's own documentation assumes; a path containing a separator is used as given.\n\nNaming it is how a caller stops `PATH` deciding: a hermetic build, a pinned version under test, or a wrapper that reaches tmux on another machine. It rides the policy rather than the call because a Server's connection is immutable, and because a handle that changed which tmux it meant between two calls would make its own entities disagree.\n\n`Server::control` passes this to the connection it opens, so both transports run the same executable unless the caller overrides it in `ConnectionOptions`."},"source":{"file":"include/libtmux/command.hpp","line":273,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-executionpolicy-tmux_binary"},{"id":"libtmux::ExecutorOptions","publicId":"libtmux::ExecutorOptions","name":"ExecutorOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"What a caller-supplied transport tells the library about itself.","body":"`implementation` answers what a caller may rely on, and only that. Leaving it `unknown` makes `capabilities().supports(...)` answer no for every feature — the library will not promise what it cannot recognise — but it does not stop a typed call: `refuses` asks a separate question from `supports` rather than its negation, so that a transport reaching a real tmux is not blocked for being unfamiliar. Name `tmux` when the executor really does reach a POSIX tmux server, so a caller asking what it may rely on gets a useful answer."},"source":{"file":"include/libtmux/server.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-executoroptions"},{"id":"libtmux::ExecutorOptions::implementation","publicId":"libtmux::ExecutorOptions::implementation","name":"implementation","kind":"attribute","modifiers":[],"parent":"libtmux::ExecutorOptions","signatures":[],"type":"ServerImplementation","source":{"file":"include/libtmux/server.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-executoroptions-implementation"},{"id":"libtmux::ExecutorOptions::socket_path","publicId":"libtmux::ExecutorOptions::socket_path","name":"socket_path","kind":"attribute","modifiers":[],"parent":"libtmux::ExecutorOptions","signatures":[],"type":"std::string","doc":{"summary":"What `Server::socket_path()` reports.","body":"Informational; the library never resolves it, because the executor has already decided where it is talking."},"source":{"file":"include/libtmux/server.hpp","line":64,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-executoroptions-socket_path"},{"id":"libtmux::ExecutorOptions::version","publicId":"libtmux::ExecutorOptions::version","name":"version","kind":"attribute","modifiers":[],"parent":"libtmux::ExecutorOptions","signatures":[],"type":"std::optional","doc":{"summary":"The tmux this transport speaks to.","body":"Absent asks the executor by running `-V`, which a transport that only speaks tmux subcommands cannot answer — such an executor names the version here instead."},"source":{"file":"include/libtmux/server.hpp","line":68,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-executoroptions-version"},{"id":"libtmux::FilterExpr::BoolTest","publicId":"libtmux::FilterExpr::BoolTest","name":"BoolTest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A flag compared against an expected value."},"source":{"file":"include/libtmux/filter_expr.hpp","line":90,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-booltest"},{"id":"libtmux::FilterExpr::BoolTest::field","publicId":"libtmux::FilterExpr::BoolTest::field","name":"field","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::BoolTest","signatures":[],"type":"BoolField","source":{"file":"include/libtmux/filter_expr.hpp","line":90,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-booltest-field"},{"id":"libtmux::FilterExpr::BoolTest::expected","publicId":"libtmux::FilterExpr::BoolTest::expected","name":"expected","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::BoolTest","signatures":[],"type":"bool","source":{"file":"include/libtmux/filter_expr.hpp","line":91,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-booltest-expected"},{"id":"libtmux::FilterExpr::Group","publicId":"libtmux::FilterExpr::Group","name":"Group","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Several expressions combined, all of them or any of them."},"source":{"file":"include/libtmux/filter_expr.hpp","line":103,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-group"},{"id":"libtmux::FilterExpr::Group::combine","publicId":"libtmux::FilterExpr::Group::combine","name":"combine","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::Group","signatures":[],"type":"Combine","source":{"file":"include/libtmux/filter_expr.hpp","line":103,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-group-combine"},{"id":"libtmux::FilterExpr::Group::operands","publicId":"libtmux::FilterExpr::Group::operands","name":"operands","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::Group","signatures":[],"type":"std::vector","source":{"file":"include/libtmux/filter_expr.hpp","line":104,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-group-operands"},{"id":"libtmux::FilterExpr::Negation","publicId":"libtmux::FilterExpr::Negation","name":"Negation","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"One expression inverted.","body":"Held indirectly because a node cannot contain itself by value."},"source":{"file":"include/libtmux/filter_expr.hpp","line":110,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-negation"},{"id":"libtmux::FilterExpr::Negation::operand","publicId":"libtmux::FilterExpr::Negation::operand","name":"operand","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::Negation","signatures":[],"type":"std::unique_ptr","source":{"file":"include/libtmux/filter_expr.hpp","line":110,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-negation-operand"},{"id":"libtmux::FilterExpr::NumberTest","publicId":"libtmux::FilterExpr::NumberTest","name":"NumberTest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A numeric field compared against a number."},"source":{"file":"include/libtmux/filter_expr.hpp","line":96,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-numbertest"},{"id":"libtmux::FilterExpr::NumberTest::field","publicId":"libtmux::FilterExpr::NumberTest::field","name":"field","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::NumberTest","signatures":[],"type":"NumberField","source":{"file":"include/libtmux/filter_expr.hpp","line":96,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-numbertest-field"},{"id":"libtmux::FilterExpr::NumberTest::op","publicId":"libtmux::FilterExpr::NumberTest::op","name":"op","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::NumberTest","signatures":[],"type":"NumberOp","source":{"file":"include/libtmux/filter_expr.hpp","line":97,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-numbertest-op"},{"id":"libtmux::FilterExpr::NumberTest::operand","publicId":"libtmux::FilterExpr::NumberTest::operand","name":"operand","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::NumberTest","signatures":[],"type":"long long","source":{"file":"include/libtmux/filter_expr.hpp","line":98,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-numbertest-operand"},{"id":"libtmux::FilterExpr::RelationTest","publicId":"libtmux::FilterExpr::RelationTest","name":"RelationTest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A relation crosses to another entity type, so its child expression cannot live in this variant.","body":"The node keeps the relation name and quantifier for inspection and owns the evaluation by value."},"source":{"file":"include/libtmux/filter_expr.hpp","line":117,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-relationtest"},{"id":"libtmux::FilterExpr::RelationTest::relation","publicId":"libtmux::FilterExpr::RelationTest::relation","name":"relation","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::RelationTest","signatures":[],"type":"std::string","source":{"file":"include/libtmux/filter_expr.hpp","line":117,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-relationtest-relation"},{"id":"libtmux::FilterExpr::RelationTest::quantifier","publicId":"libtmux::FilterExpr::RelationTest::quantifier","name":"quantifier","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::RelationTest","signatures":[],"type":"int","source":{"file":"include/libtmux/filter_expr.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-relationtest-quantifier"},{"id":"libtmux::FilterExpr::RelationTest::evaluate","publicId":"libtmux::FilterExpr::RelationTest::evaluate","name":"evaluate","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::RelationTest","signatures":[],"type":"std::function","source":{"file":"include/libtmux/filter_expr.hpp","line":119,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-relationtest-evaluate"},{"id":"libtmux::FilterExpr::RelationTest::child","publicId":"libtmux::FilterExpr::RelationTest::child","name":"child","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::RelationTest","signatures":[],"type":"LoweredExpression","doc":{"summary":"The child compares another entity, so it cannot live in this variant.","body":"Its lowered form can, which is what keeps a relation translatable."},"source":{"file":"include/libtmux/filter_expr.hpp","line":122,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-relationtest-child"},{"id":"libtmux::FilterExpr::StringTest","publicId":"libtmux::FilterExpr::StringTest","name":"StringTest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A text field compared against an operand this node owns."},"source":{"file":"include/libtmux/filter_expr.hpp","line":83,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-stringtest"},{"id":"libtmux::FilterExpr::StringTest::field","publicId":"libtmux::FilterExpr::StringTest::field","name":"field","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::StringTest","signatures":[],"type":"StringField","source":{"file":"include/libtmux/filter_expr.hpp","line":83,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-stringtest-field"},{"id":"libtmux::FilterExpr::StringTest::op","publicId":"libtmux::FilterExpr::StringTest::op","name":"op","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::StringTest","signatures":[],"type":"StringOp","source":{"file":"include/libtmux/filter_expr.hpp","line":84,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-stringtest-op"},{"id":"libtmux::FilterExpr::StringTest::operand","publicId":"libtmux::FilterExpr::StringTest::operand","name":"operand","kind":"attribute","modifiers":[],"parent":"libtmux::FilterExpr::StringTest","signatures":[],"type":"std::string","source":{"file":"include/libtmux/filter_expr.hpp","line":85,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-filterexpr-stringtest-operand"},{"id":"libtmux::LayoutFailure","publicId":"libtmux::LayoutFailure","name":"LayoutFailure","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/layout.hpp","line":19,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-layoutfailure"},{"id":"libtmux::LayoutFailure::index","publicId":"libtmux::LayoutFailure::index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux::LayoutFailure","signatures":[],"type":"std::size_t","doc":{"summary":"Index in the supplied batch, including failures while querying its daemon."},"source":{"file":"include/libtmux/layout.hpp","line":19,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-layoutfailure-index"},{"id":"libtmux::LayoutFailure::cause","publicId":"libtmux::LayoutFailure::cause","name":"cause","kind":"attribute","modifiers":[],"parent":"libtmux::LayoutFailure","signatures":[],"type":"CommandFailure","source":{"file":"include/libtmux/layout.hpp","line":20,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-layoutfailure-cause"},{"id":"libtmux::LayoutRequest","publicId":"libtmux::LayoutRequest","name":"LayoutRequest","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/layout.hpp","line":12,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-layoutrequest"},{"id":"libtmux::LayoutRequest::layout","publicId":"libtmux::LayoutRequest::layout","name":"layout","kind":"attribute","modifiers":[],"parent":"libtmux::LayoutRequest","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/layout.hpp","line":12,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-layoutrequest-layout"},{"id":"libtmux::LayoutRequest::minimum_panes","publicId":"libtmux::LayoutRequest::minimum_panes","name":"minimum_panes","kind":"attribute","modifiers":[],"parent":"libtmux::LayoutRequest","signatures":[],"type":"std::size_t","doc":{"summary":"Planned panes that need cells. Use one when current topology is unknown."},"source":{"file":"include/libtmux/layout.hpp","line":14,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-layoutrequest-minimum_panes"},{"id":"libtmux::LoweredNode","publicId":"libtmux::LoweredNode","name":"LoweredNode","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"One node of a filter after it has been reduced to what tmux's `-f` format language can express."},"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode"},{"id":"libtmux::LoweredNode::Kind","publicId":"libtmux::LoweredNode::Kind","name":"Kind","kind":"enum","modifiers":[],"parent":"libtmux::LoweredNode","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-15co"},{"id":"libtmux::LoweredNode::Kind::string_test","publicId":"libtmux::LoweredNode::Kind::string_test","name":"string_test","kind":"constant","modifiers":[],"parent":"libtmux::LoweredNode::Kind","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-string_test"},{"id":"libtmux::LoweredNode::Kind::bool_test","publicId":"libtmux::LoweredNode::Kind::bool_test","name":"bool_test","kind":"constant","modifiers":[],"parent":"libtmux::LoweredNode::Kind","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-bool_test"},{"id":"libtmux::LoweredNode::Kind::number_test","publicId":"libtmux::LoweredNode::Kind::number_test","name":"number_test","kind":"constant","modifiers":[],"parent":"libtmux::LoweredNode::Kind","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-number_test"},{"id":"libtmux::LoweredNode::Kind::begin_group","publicId":"libtmux::LoweredNode::Kind::begin_group","name":"begin_group","kind":"constant","modifiers":[],"parent":"libtmux::LoweredNode::Kind","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-begin_group"},{"id":"libtmux::LoweredNode::Kind::end_group","publicId":"libtmux::LoweredNode::Kind::end_group","name":"end_group","kind":"constant","modifiers":[],"parent":"libtmux::LoweredNode::Kind","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-end_group"},{"id":"libtmux::LoweredNode::Kind::begin_negation","publicId":"libtmux::LoweredNode::Kind::begin_negation","name":"begin_negation","kind":"constant","modifiers":[],"parent":"libtmux::LoweredNode::Kind","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-begin_negation"},{"id":"libtmux::LoweredNode::Kind::end_negation","publicId":"libtmux::LoweredNode::Kind::end_negation","name":"end_negation","kind":"constant","modifiers":[],"parent":"libtmux::LoweredNode::Kind","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-end_negation"},{"id":"libtmux::LoweredNode::Kind::begin_relation","publicId":"libtmux::LoweredNode::Kind::begin_relation","name":"begin_relation","kind":"constant","modifiers":[],"parent":"libtmux::LoweredNode::Kind","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-begin_relation"},{"id":"libtmux::LoweredNode::Kind::end_relation","publicId":"libtmux::LoweredNode::Kind::end_relation","name":"end_relation","kind":"constant","modifiers":[],"parent":"libtmux::LoweredNode::Kind","signatures":[],"source":{"file":"include/libtmux/lowered_node.hpp","line":22,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-end_relation"},{"id":"libtmux::LoweredNode::kind","publicId":"libtmux::LoweredNode::kind","name":"kind","kind":"attribute","modifiers":[],"parent":"libtmux::LoweredNode","signatures":[],"type":"Kind","source":{"file":"include/libtmux/lowered_node.hpp","line":34,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-kind-1yl0"},{"id":"libtmux::LoweredNode::name","publicId":"libtmux::LoweredNode::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::LoweredNode","signatures":[],"type":"std::string","doc":{"summary":"Field name for a test, relation name for a relation, empty otherwise."},"source":{"file":"include/libtmux/lowered_node.hpp","line":36,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-name"},{"id":"libtmux::LoweredNode::op","publicId":"libtmux::LoweredNode::op","name":"op","kind":"attribute","modifiers":[],"parent":"libtmux::LoweredNode","signatures":[],"type":"std::string","source":{"file":"include/libtmux/lowered_node.hpp","line":37,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-op"},{"id":"libtmux::LoweredNode::operand","publicId":"libtmux::LoweredNode::operand","name":"operand","kind":"attribute","modifiers":[],"parent":"libtmux::LoweredNode","signatures":[],"type":"std::string","source":{"file":"include/libtmux/lowered_node.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-operand"},{"id":"libtmux::LoweredNode::number","publicId":"libtmux::LoweredNode::number","name":"number","kind":"attribute","modifiers":[],"parent":"libtmux::LoweredNode","signatures":[],"type":"long long","doc":{"summary":"The value a number_test compares against, kept as a number so a future tmux `-f` compiler does not have to parse it back out of the operand."},"source":{"file":"include/libtmux/lowered_node.hpp","line":41,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-number"},{"id":"libtmux::LoweredNode::conjunction","publicId":"libtmux::LoweredNode::conjunction","name":"conjunction","kind":"attribute","modifiers":[],"parent":"libtmux::LoweredNode","signatures":[],"type":"bool","source":{"file":"include/libtmux/lowered_node.hpp","line":42,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-conjunction"},{"id":"libtmux::LoweredNode::expected","publicId":"libtmux::LoweredNode::expected","name":"expected","kind":"attribute","modifiers":[],"parent":"libtmux::LoweredNode","signatures":[],"type":"bool","source":{"file":"include/libtmux/lowered_node.hpp","line":43,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-expected"},{"id":"libtmux::LoweredNode::quantifier","publicId":"libtmux::LoweredNode::quantifier","name":"quantifier","kind":"attribute","modifiers":[],"parent":"libtmux::LoweredNode","signatures":[],"type":"int","source":{"file":"include/libtmux/lowered_node.hpp","line":44,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-lowerednode-quantifier"},{"id":"libtmux::NewSessionOptions","publicId":"libtmux::NewSessionOptions","name":"NewSessionOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"What a new session is created as, including its first window.","body":"tmux always creates a first window, so the fields naming one are not optional in effect — leaving them empty takes tmux's defaults rather than creating nothing.","examples":[{"lang":"console","intro":"Create a detached session. Create a detached session with a named first window, then read back its name and owner. The cat process keeps the first pane alive until fixture cleanup. A fresh listing sees both the fixture session and the new session. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/new-session.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto made = server->new_session(libtmux::NewSessionOptions{\n .name = \"work\",\n .first_window_name = \"main\",\n .shell_command = \"exec cat\",\n });\n if (!made.has_value()) {\n std::fprintf(stderr, \"%s\\n\", made.error().diagnostic.c_str());\n return 1;\n }\n const auto window = made->active_window();\n const auto sessions = server->sessions();\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (made->name() != \"work\" || sessions->size() != 2 || window->name() != \"main\" ||\n window->session_id() != made->id()) {\n std::fputs(\"created session or first window does not match\\n\", stderr);\n return 1;\n }\n std::puts(\"Created work with the main window; two sessions are available.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Created work with the main window; two sessions are available.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":133,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newsessionoptions"},{"id":"libtmux::NewSessionOptions::name","publicId":"libtmux::NewSessionOptions::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::NewSessionOptions","signatures":[],"type":"std::string","source":{"file":"include/libtmux/entities.hpp","line":133,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newsessionoptions-name"},{"id":"libtmux::NewSessionOptions::start_directory","publicId":"libtmux::NewSessionOptions::start_directory","name":"start_directory","kind":"attribute","modifiers":[],"parent":"libtmux::NewSessionOptions","signatures":[],"type":"std::string","source":{"file":"include/libtmux/entities.hpp","line":134,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newsessionoptions-start_directory"},{"id":"libtmux::NewSessionOptions::first_window_name","publicId":"libtmux::NewSessionOptions::first_window_name","name":"first_window_name","kind":"attribute","modifiers":[],"parent":"libtmux::NewSessionOptions","signatures":[],"type":"std::string","doc":{"summary":"The name of the window the session starts with."},"source":{"file":"include/libtmux/entities.hpp","line":136,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newsessionoptions-first_window_name"},{"id":"libtmux::NewSessionOptions::shell_command","publicId":"libtmux::NewSessionOptions::shell_command","name":"shell_command","kind":"attribute","modifiers":[],"parent":"libtmux::NewSessionOptions","signatures":[],"type":"std::string","source":{"file":"include/libtmux/entities.hpp","line":137,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newsessionoptions-shell_command"},{"id":"libtmux::NewSessionOptions::width","publicId":"libtmux::NewSessionOptions::width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux::NewSessionOptions","signatures":[],"type":"std::optional","doc":{"summary":"The size tmux gives the session while no client is attached.","body":"Without it a detached session is 80x24, and a pane that reports its size to a program reports that."},"source":{"file":"include/libtmux/entities.hpp","line":141,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newsessionoptions-width"},{"id":"libtmux::NewSessionOptions::height","publicId":"libtmux::NewSessionOptions::height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux::NewSessionOptions","signatures":[],"type":"std::optional","source":{"file":"include/libtmux/entities.hpp","line":142,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newsessionoptions-height"},{"id":"libtmux::NewSessionOptions::environment","publicId":"libtmux::NewSessionOptions::environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux::NewSessionOptions","signatures":[],"type":"std::vector>","doc":{"summary":"Variables the new process starts with, on top of what tmux passes down.","body":"Pairs rather than `NAME=value` strings: tmux takes a `-e` without an `=` without complaint and creates nothing, so the pair is joined here and a name carrying an `=` is refused where the command is built.\n\nAn empty value sets the variable to empty. It does not remove it."},"source":{"file":"include/libtmux/entities.hpp","line":150,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newsessionoptions-environment"},{"id":"libtmux::NewWindowOptions","publicId":"libtmux::NewWindowOptions","name":"NewWindowOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"What a new window is created as, and where it lands.","body":"Placing a window after the current one shifts the windows above it up, so an index a caller is holding can change.","examples":[{"lang":"console","intro":"Create a window and split a pane. Create a detached window, split it side by side, and verify both panes belong to it. The cat processes keep each pane alive until fixture cleanup. Creation leaves the session selection unchanged because focus defaults to false. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/new-window-pane.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto before = session.active_window();\n if (!before.has_value()) {\n std::fprintf(stderr, \"%s\\n\", before.error().diagnostic.c_str());\n return 1;\n }\n const auto window = session.new_window(\n libtmux::NewWindowOptions{.name = \"editor\", .shell_command = \"exec cat\"});\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n const auto first = window->active_pane();\n if (!first.has_value()) {\n std::fprintf(stderr, \"%s\\n\", first.error().diagnostic.c_str());\n return 1;\n }\n const auto second = first->split(\n libtmux::SplitOptions{.horizontal = true, .shell_command = \"exec cat\"});\n if (!second.has_value()) {\n std::fprintf(stderr, \"%s\\n\", second.error().diagnostic.c_str());\n return 1;\n }\n const auto panes = window->panes();\n const auto after = session.active_window();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (!after.has_value()) {\n std::fprintf(stderr, \"%s\\n\", after.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 2 || *before != *after ||\n first->window_id() != second->window_id() || *first == *second) {\n std::fputs(\"created panes or selection do not match\\n\", stderr);\n return 1;\n }\n std::puts(\"Created editor with two panes; the active window is unchanged.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Created editor with two panes; the active window is unchanged.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":105,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newwindowoptions"},{"id":"libtmux::NewWindowOptions::name","publicId":"libtmux::NewWindowOptions::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::NewWindowOptions","signatures":[],"type":"std::string","source":{"file":"include/libtmux/entities.hpp","line":105,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newwindowoptions-name"},{"id":"libtmux::NewWindowOptions::start_directory","publicId":"libtmux::NewWindowOptions::start_directory","name":"start_directory","kind":"attribute","modifiers":[],"parent":"libtmux::NewWindowOptions","signatures":[],"type":"std::string","source":{"file":"include/libtmux/entities.hpp","line":106,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newwindowoptions-start_directory"},{"id":"libtmux::NewWindowOptions::shell_command","publicId":"libtmux::NewWindowOptions::shell_command","name":"shell_command","kind":"attribute","modifiers":[],"parent":"libtmux::NewWindowOptions","signatures":[],"type":"std::string","source":{"file":"include/libtmux/entities.hpp","line":107,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newwindowoptions-shell_command"},{"id":"libtmux::NewWindowOptions::after_current","publicId":"libtmux::NewWindowOptions::after_current","name":"after_current","kind":"attribute","modifiers":[],"parent":"libtmux::NewWindowOptions","signatures":[],"type":"bool","doc":{"summary":"Immediately after the current window rather than at the end."},"source":{"file":"include/libtmux/entities.hpp","line":109,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newwindowoptions-after_current"},{"id":"libtmux::NewWindowOptions::index","publicId":"libtmux::NewWindowOptions::index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux::NewWindowOptions","signatures":[],"type":"std::optional","doc":{"summary":"Put the window at this index rather than at the next free one.","body":"tmux refuses an index already in use rather than shifting anything, and that refusal is kept: a workspace rebuilt over a running one should say so rather than quietly land somewhere else."},"source":{"file":"include/libtmux/entities.hpp","line":115,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newwindowoptions-index"},{"id":"libtmux::NewWindowOptions::focus","publicId":"libtmux::NewWindowOptions::focus","name":"focus","kind":"attribute","modifiers":[],"parent":"libtmux::NewWindowOptions","signatures":[],"type":"bool","source":{"file":"include/libtmux/entities.hpp","line":116,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newwindowoptions-focus"},{"id":"libtmux::NewWindowOptions::environment","publicId":"libtmux::NewWindowOptions::environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux::NewWindowOptions","signatures":[],"type":"std::vector>","doc":{"summary":"Variables the new process starts with, on top of what tmux passes down.","body":"Pairs rather than `NAME=value` strings: tmux takes a `-e` without an `=` without complaint and creates nothing, so the pair is joined here and a name carrying an `=` is refused where the command is built.\n\nAn empty value sets the variable to empty. It does not remove it."},"source":{"file":"include/libtmux/entities.hpp","line":124,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-newwindowoptions-environment"},{"id":"libtmux::Notification","publicId":"libtmux::Notification","name":"Notification","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"One control event tmux sent unprompted, still as bytes.","body":"Kept undecoded because deciding what it is costs a parse a caller may not need — `ParsedNotification` is that parse."},"source":{"file":"include/libtmux/notification.hpp","line":30,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notification"},{"id":"libtmux::Notification::body","publicId":"libtmux::Notification::body","name":"body","kind":"attribute","modifiers":[],"parent":"libtmux::Notification","signatures":[],"type":"std::vector","doc":{"summary":"Compatibility name for one outside-block control event.","body":"Unknown content is not proof that tmux emitted a notification rather than delayed output."},"source":{"file":"include/libtmux/notification.hpp","line":30,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-notification-body"},{"id":"libtmux::NumberField","publicId":"libtmux::NumberField","name":"NumberField","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A numeric field on an entity, read as a number rather than as the text tmux sends, so `9` orders before `10`."},"source":{"file":"include/libtmux/filter_expr.hpp","line":69,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberfield","typeParams":["typename Entity"],"typeParameters":[{"name":"Entity"}]},{"id":"libtmux::NumberField::name","publicId":"libtmux::NumberField::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::NumberField","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/filter_expr.hpp","line":69,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberfield-name"},{"id":"libtmux::NumberField::read","publicId":"libtmux::NumberField::read","name":"read","kind":"attribute","modifiers":[],"parent":"libtmux::NumberField","signatures":[],"type":"long long(*)","source":{"file":"include/libtmux/filter_expr.hpp","line":70,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberfield-read"},{"id":"libtmux::NumberFieldHandle","publicId":"libtmux::NumberFieldHandle","name":"NumberFieldHandle","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"The value a numeric field name resolves to in an expression, whose comparison operators build the node rather than comparing anything."},"source":{"file":"include/libtmux/filter_expr.hpp","line":273,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberfieldhandle","typeParams":["typename Entity"],"typeParameters":[{"name":"Entity"}]},{"id":"libtmux::NumberFieldHandle::field","publicId":"libtmux::NumberFieldHandle::field","name":"field","kind":"attribute","modifiers":[],"parent":"libtmux::NumberFieldHandle","signatures":[],"type":"NumberField","source":{"file":"include/libtmux/filter_expr.hpp","line":273,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-numberfieldhandle-field"},{"id":"libtmux::OptionEntry","publicId":"libtmux::OptionEntry","name":"OptionEntry","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"One option as tmux reports it: its name, its value, and the array index it sits at when it is an array option."},"source":{"file":"include/libtmux/options.hpp","line":34,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-optionentry"},{"id":"libtmux::OptionEntry::name","publicId":"libtmux::OptionEntry::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::OptionEntry","signatures":[],"type":"std::string","source":{"file":"include/libtmux/options.hpp","line":34,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-optionentry-name"},{"id":"libtmux::OptionEntry::index","publicId":"libtmux::OptionEntry::index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux::OptionEntry","signatures":[],"type":"std::optional","doc":{"summary":"Present only for array options, which tmux indexes sparsely: absent indexes are genuinely unset rather than empty."},"source":{"file":"include/libtmux/options.hpp","line":37,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-optionentry-index"},{"id":"libtmux::OptionEntry::value","publicId":"libtmux::OptionEntry::value","name":"value","kind":"attribute","modifiers":[],"parent":"libtmux::OptionEntry","signatures":[],"type":"std::string","source":{"file":"include/libtmux/options.hpp","line":38,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-optionentry-value"},{"id":"libtmux::OptionEntry::inherited","publicId":"libtmux::OptionEntry::inherited","name":"inherited","kind":"attribute","modifiers":[],"parent":"libtmux::OptionEntry","signatures":[],"type":"bool","doc":{"summary":"True when the value comes from a wider scope rather than being set here.","body":"`show-options -A` marks these with a trailing asterisk on the name.\n\ntmux accepts a user option whose name itself ends in an asterisk, and prints `@star* value` for one set here — which is the same shape as `status-position* bottom` for an inherited option. In a listing the two cannot be told apart, and the marker reading wins. Asking for one option by name is exact, because the name asked for settles it."},"source":{"file":"include/libtmux/options.hpp","line":47,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-optionentry-inherited"},{"id":"libtmux::ParsedNotification","publicId":"libtmux::ParsedNotification","name":"ParsedNotification","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A notification's arguments, as views into the notification it was read from.","body":"tmux types its arguments by prefix — `$0` a session, `@1` a window, `%2` a pane — so each lands in the field it belongs to and the others stay empty. `payload` is the pane bytes of an output notification, already unescaped; it is empty for every other kind.\n\n`subscription_changed` is the one kind whose first argument is never an id: it is the subscription's own name (chosen by whoever called `refresh-client -B`), so `text` holds that name and the changed value together — `\" : \"` — once `session`/`window`/`pane` have taken the ids around them.\n\nEverything here borrows. The notification must outlive it, which is why there is no overload taking a temporary."},"source":{"file":"include/libtmux/notification.hpp","line":85,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parsednotification"},{"id":"libtmux::ParsedNotification::kind","publicId":"libtmux::ParsedNotification::kind","name":"kind","kind":"attribute","modifiers":[],"parent":"libtmux::ParsedNotification","signatures":[],"type":"NotificationKind","source":{"file":"include/libtmux/notification.hpp","line":85,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parsednotification-kind"},{"id":"libtmux::ParsedNotification::name","publicId":"libtmux::ParsedNotification::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::ParsedNotification","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/notification.hpp","line":86,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parsednotification-name"},{"id":"libtmux::ParsedNotification::session","publicId":"libtmux::ParsedNotification::session","name":"session","kind":"attribute","modifiers":[],"parent":"libtmux::ParsedNotification","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/notification.hpp","line":87,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parsednotification-session"},{"id":"libtmux::ParsedNotification::window","publicId":"libtmux::ParsedNotification::window","name":"window","kind":"attribute","modifiers":[],"parent":"libtmux::ParsedNotification","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/notification.hpp","line":88,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parsednotification-window"},{"id":"libtmux::ParsedNotification::pane","publicId":"libtmux::ParsedNotification::pane","name":"pane","kind":"attribute","modifiers":[],"parent":"libtmux::ParsedNotification","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/notification.hpp","line":89,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parsednotification-pane"},{"id":"libtmux::ParsedNotification::text","publicId":"libtmux::ParsedNotification::text","name":"text","kind":"attribute","modifiers":[],"parent":"libtmux::ParsedNotification","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/notification.hpp","line":90,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parsednotification-text"},{"id":"libtmux::ParsedNotification::payload","publicId":"libtmux::ParsedNotification::payload","name":"payload","kind":"attribute","modifiers":[],"parent":"libtmux::ParsedNotification","signatures":[],"type":"std::span","source":{"file":"include/libtmux/notification.hpp","line":91,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parsednotification-payload"},{"id":"libtmux::ParsedNotification::age","publicId":"libtmux::ParsedNotification::age","name":"age","kind":"attribute","modifiers":[],"parent":"libtmux::ParsedNotification","signatures":[],"type":"std::optional","doc":{"summary":"Milliseconds this output was behind when tmux wrote it.","body":"Only `extended_output` carries one."},"source":{"file":"include/libtmux/notification.hpp","line":94,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-parsednotification-age"},{"id":"libtmux::ProtocolError","publicId":"libtmux::ProtocolError","name":"ProtocolError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Why a control operation stopped.","body":"The stream is terminal after a protocol failure: a caller cannot resynchronise it, only start a new one. `delivery` says whether the affected request was untouched, fully written, answered, or left indeterminate."},"source":{"file":"include/libtmux/control.hpp","line":40,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-protocolerror"},{"id":"libtmux::ProtocolError::message","publicId":"libtmux::ProtocolError::message","name":"message","kind":"attribute","modifiers":[],"parent":"libtmux::ProtocolError","signatures":[],"type":"std::string","source":{"file":"include/libtmux/control.hpp","line":40,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-protocolerror-message"},{"id":"libtmux::ProtocolError::delivery","publicId":"libtmux::ProtocolError::delivery","name":"delivery","kind":"attribute","modifiers":[],"parent":"libtmux::ProtocolError","signatures":[],"type":"DeliveryStatus","source":{"file":"include/libtmux/control.hpp","line":41,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-protocolerror-delivery"},{"id":"libtmux::RespawnOptions","publicId":"libtmux::RespawnOptions","name":"RespawnOptions","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/entities.hpp","line":154,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-respawnoptions"},{"id":"libtmux::RespawnOptions::replace_running","publicId":"libtmux::RespawnOptions::replace_running","name":"replace_running","kind":"attribute","modifiers":[],"parent":"libtmux::RespawnOptions","signatures":[],"type":"bool","source":{"file":"include/libtmux/entities.hpp","line":154,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-respawnoptions-replace_running"},{"id":"libtmux::RespawnOptions::start_directory","publicId":"libtmux::RespawnOptions::start_directory","name":"start_directory","kind":"attribute","modifiers":[],"parent":"libtmux::RespawnOptions","signatures":[],"type":"std::string","doc":{"summary":"Where the configured replacement process starts.","body":"Empty inherits the pane's current directory. The command builder escapes tmux format markers exactly once before this value reaches tmux."},"source":{"file":"include/libtmux/entities.hpp","line":158,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-respawnoptions-start_directory"},{"id":"libtmux::ServerCapabilities","publicId":"libtmux::ServerCapabilities","name":"ServerCapabilities","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"What this server is known to support, decided without asking it.","body":"Every query here is local: the implementation and backend were established once, and answering from them costs no process and cannot fail."},"source":{"file":"include/libtmux/capabilities.hpp","line":120,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-servercapabilities"},{"id":"libtmux::ServerCapabilities::implementation","publicId":"libtmux::ServerCapabilities::implementation","name":"implementation","kind":"attribute","modifiers":[],"parent":"libtmux::ServerCapabilities","signatures":[],"type":"ServerImplementation","source":{"file":"include/libtmux/capabilities.hpp","line":120,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-servercapabilities-implementation"},{"id":"libtmux::ServerCapabilities::backend","publicId":"libtmux::ServerCapabilities::backend","name":"backend","kind":"attribute","modifiers":[],"parent":"libtmux::ServerCapabilities","signatures":[],"type":"BackendKind","source":{"file":"include/libtmux/capabilities.hpp","line":121,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-servercapabilities-backend"},{"id":"libtmux::ServerCapabilities::supports","publicId":"libtmux::ServerCapabilities::supports","name":"supports","kind":"method","modifiers":["readonly"],"parent":"libtmux::ServerCapabilities","signatures":[{"params":[{"name":"feature","type":"ServerFeature"}],"raw":"[[nodiscard]] constexpr bool supports(ServerFeature feature) const noexcept;","returns":"bool"}],"doc":{"summary":"Purely local: this never launches tmux or touches a server."},"source":{"file":"include/libtmux/capabilities.hpp","line":124,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-servercapabilities-supports"},{"id":"libtmux::ServerCapabilities::refuses","publicId":"libtmux::ServerCapabilities::refuses","name":"refuses","kind":"method","modifiers":["readonly"],"parent":"libtmux::ServerCapabilities","signatures":[{"params":[{"name":"feature","type":"ServerFeature"}],"raw":"[[nodiscard]] constexpr bool refuses(ServerFeature feature) const noexcept;","returns":"bool"}],"doc":{"summary":"Whether this implementation is known to get the feature wrong, which is the opposite question from `supports` rather than its negation.","body":"Both answer no for a backend nobody recognises: a caller asking what it may rely on must not be promised anything, and a custom executor running real tmux must not be refused for being unfamiliar."},"source":{"file":"include/libtmux/capabilities.hpp","line":152,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-servercapabilities-refuses"},{"id":"libtmux::SplitOptions","publicId":"libtmux::SplitOptions","name":"SplitOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"What a creation command can be told.","body":"Every field maps to a flag tmux 3.2a already has, and every default is what tmux does when the flag is absent — except focus, which defaults to leaving it where the user put it. A library that moves someone's cursor because it created something is a library people stop calling.\n\nAggregates rather than parameters: a caller writes only the fields it cares about, and a field added later does not renumber anything.","examples":[{"lang":"console","intro":"Create a window and split a pane. Create a detached window, split it side by side, and verify both panes belong to it. The cat processes keep each pane alive until fixture cleanup. Creation leaves the session selection unchanged because focus defaults to false. Use Clang 18 with libc++ 18, CMake 3.25 or newer, Ninja, Git, and tmux 3.3a or newer on Linux. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-cxx.git libtmux-source && \\\n git -C libtmux-source checkout 3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f\n"},{"lang":"console","intro":"Build and install the C++23 library and its public testing component into this directory:","code":"$ cmake -S libtmux-source -B libtmux-build -G Ninja \\\n -DCMAKE_TOOLCHAIN_FILE=\"$PWD/libtmux-source/cmake/toolchains/clang-libcxx.cmake\" \\\n -DCMAKE_C_COMPILER=clang \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLIBTMUX_BUILD_TESTS=OFF \\\n -DLIBTMUX_BUILD_EXAMPLES=OFF \\\n -DLIBTMUX_BUILD_TESTING_LIBRARY=ON && \\\n cmake --build libtmux-build --parallel 2 && \\\n cmake --install libtmux-build --prefix \"$PWD/libtmux-prefix\"\n"},{"lang":"cmake","intro":"Save this complete consumer project as CMakeLists.txt:","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/project/CMakeLists.txt","code":"cmake_minimum_required(VERSION 3.25)\nproject(libtmux_api_example LANGUAGES CXX)\n\nfind_package(libtmux REQUIRED COMPONENTS testing)\n\nadd_executable(api_example main.cpp)\ntarget_link_libraries(api_example PRIVATE libtmux::libtmux libtmux::testing)\n"},{"lang":"cpp","intro":"Save this complete program as main.cpp. `ScopedTmuxServer` owns a private daemon and stops it when the program exits. Ordinary applications use `Server` for their own socket; these examples use the fixture until setup moves to ordinary server objects.","sourceUrl":"https://github.com/libtmux/libtmux-cxx/blob/3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f/examples/api/new-window-pane.cpp","code":"#include \n\n#include \n#include \n\nint main() {\n // The fixture owns this private server and cleans it up on every return path.\n auto fixture = libtmux::test::ScopedTmuxServer::start({\n .session_name = \"api\",\n .socket_namespace = libtmux::test::SocketNamespace::consumer(\"api\"),\n });\n if (!fixture.has_value()) {\n std::fprintf(stderr, \"%s\\n\", fixture.error().c_str());\n return 1;\n }\n auto server = libtmux::Server::at_socket_path(fixture->socket_path());\n if (!server.has_value()) {\n std::fprintf(stderr, \"%s\\n\", server.error().diagnostic.c_str());\n return 1;\n }\n\n const auto sessions = server->sessions();\n if (!sessions.has_value()) {\n std::fprintf(stderr, \"%s\\n\", sessions.error().diagnostic.c_str());\n return 1;\n }\n if (sessions->size() != 1) {\n std::fputs(\"expected one session\\n\", stderr);\n return 1;\n }\n const auto& session = sessions->front();\n const auto before = session.active_window();\n if (!before.has_value()) {\n std::fprintf(stderr, \"%s\\n\", before.error().diagnostic.c_str());\n return 1;\n }\n const auto window = session.new_window(\n libtmux::NewWindowOptions{.name = \"editor\", .shell_command = \"exec cat\"});\n if (!window.has_value()) {\n std::fprintf(stderr, \"%s\\n\", window.error().diagnostic.c_str());\n return 1;\n }\n const auto first = window->active_pane();\n if (!first.has_value()) {\n std::fprintf(stderr, \"%s\\n\", first.error().diagnostic.c_str());\n return 1;\n }\n const auto second = first->split(\n libtmux::SplitOptions{.horizontal = true, .shell_command = \"exec cat\"});\n if (!second.has_value()) {\n std::fprintf(stderr, \"%s\\n\", second.error().diagnostic.c_str());\n return 1;\n }\n const auto panes = window->panes();\n const auto after = session.active_window();\n if (!panes.has_value()) {\n std::fprintf(stderr, \"%s\\n\", panes.error().diagnostic.c_str());\n return 1;\n }\n if (!after.has_value()) {\n std::fprintf(stderr, \"%s\\n\", after.error().diagnostic.c_str());\n return 1;\n }\n if (panes->size() != 2 || *before != *after ||\n first->window_id() != second->window_id() || *first == *second) {\n std::fputs(\"created panes or selection do not match\\n\", stderr);\n return 1;\n }\n std::puts(\"Created editor with two panes; the active window is unchanged.\");\n return 0;\n}\n"},{"lang":"console","intro":"Build against the installed library and run the saved program. An operation error produces a failing exit status:","code":"$ cmake -S . -B build -G Ninja \\\n -DCMAKE_PREFIX_PATH=\"$PWD/libtmux-prefix\" \\\n -DCMAKE_CXX_COMPILER=clang++ \\\n -DCMAKE_CXX_FLAGS=-stdlib=libc++ && \\\n cmake --build build --parallel 2 && \\\n ./build/api_example\n"},{"lang":"text","intro":"Expected output:","code":"Created editor with two panes; the active window is unchanged.\n"}]},"source":{"file":"include/libtmux/entities.hpp","line":77,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-splitoptions"},{"id":"libtmux::SplitOptions::horizontal","publicId":"libtmux::SplitOptions::horizontal","name":"horizontal","kind":"attribute","modifiers":[],"parent":"libtmux::SplitOptions","signatures":[],"type":"bool","doc":{"summary":"Side by side. tmux stacks by default."},"source":{"file":"include/libtmux/entities.hpp","line":77,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-splitoptions-horizontal"},{"id":"libtmux::SplitOptions::before","publicId":"libtmux::SplitOptions::before","name":"before","kind":"attribute","modifiers":[],"parent":"libtmux::SplitOptions","signatures":[],"type":"bool","doc":{"summary":"Before the target rather than after it."},"source":{"file":"include/libtmux/entities.hpp","line":79,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-splitoptions-before"},{"id":"libtmux::SplitOptions::full_size","publicId":"libtmux::SplitOptions::full_size","name":"full_size","kind":"attribute","modifiers":[],"parent":"libtmux::SplitOptions","signatures":[],"type":"bool","doc":{"summary":"Spanning the full width or height of the window rather than of the pane."},"source":{"file":"include/libtmux/entities.hpp","line":81,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-splitoptions-full_size"},{"id":"libtmux::SplitOptions::start_directory","publicId":"libtmux::SplitOptions::start_directory","name":"start_directory","kind":"attribute","modifiers":[],"parent":"libtmux::SplitOptions","signatures":[],"type":"std::string","doc":{"summary":"Where the new pane starts. Empty inherits from the window."},"source":{"file":"include/libtmux/entities.hpp","line":83,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-splitoptions-start_directory"},{"id":"libtmux::SplitOptions::shell_command","publicId":"libtmux::SplitOptions::shell_command","name":"shell_command","kind":"attribute","modifiers":[],"parent":"libtmux::SplitOptions","signatures":[],"type":"std::string","doc":{"summary":"Run this instead of the default shell."},"source":{"file":"include/libtmux/entities.hpp","line":85,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-splitoptions-shell_command"},{"id":"libtmux::SplitOptions::percentage","publicId":"libtmux::SplitOptions::percentage","name":"percentage","kind":"attribute","modifiers":[],"parent":"libtmux::SplitOptions","signatures":[],"type":"std::optional","doc":{"summary":"Size as a percentage of the space being divided."},"source":{"file":"include/libtmux/entities.hpp","line":87,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-splitoptions-percentage"},{"id":"libtmux::SplitOptions::focus","publicId":"libtmux::SplitOptions::focus","name":"focus","kind":"attribute","modifiers":[],"parent":"libtmux::SplitOptions","signatures":[],"type":"bool","doc":{"summary":"Make the new pane the active one."},"source":{"file":"include/libtmux/entities.hpp","line":89,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-splitoptions-focus"},{"id":"libtmux::SplitOptions::environment","publicId":"libtmux::SplitOptions::environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux::SplitOptions","signatures":[],"type":"std::vector>","doc":{"summary":"Variables the new process starts with, on top of what tmux passes down.","body":"Pairs rather than `NAME=value` strings: tmux takes a `-e` without an `=` without complaint and creates nothing, so the pair is joined here and a name carrying an `=` is refused where the command is built.\n\nAn empty value sets the variable to empty. It does not remove it."},"source":{"file":"include/libtmux/entities.hpp","line":97,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-splitoptions-environment"},{"id":"libtmux::StringField","publicId":"libtmux::StringField","name":"StringField","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A field is a named accessor: the name is what a future tmux-format lowering needs, the accessor is what in-memory evaluation needs.","body":"The two halves are only as consistent as whoever paired them, and nothing in the type system pairs them. A field naming `pane_title` while reading `pane_current_command` evaluates one way in memory and lowers to another, and the built-in handles avoid that only by taking their name from the entity's own `kFields` array rather than spelling it again.\n\nWhich is enough here and not enough everywhere. A caller may build a field however they like and get whatever they built — their process, their predicate. What must not follow is a forged pairing crossing a process boundary, so a document arriving from anywhere else is resolved by name against what this library actually queries, and a name it does not know is refused rather than evaluated to nothing. That check lives with the wire format, in the JSON integration, because it is the boundary that needs it."},"source":{"file":"include/libtmux/filter_expr.hpp","line":54,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringfield","typeParams":["typename Entity"],"typeParameters":[{"name":"Entity"}]},{"id":"libtmux::StringField::name","publicId":"libtmux::StringField::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::StringField","signatures":[],"type":"std::string_view","source":{"file":"include/libtmux/filter_expr.hpp","line":54,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringfield-name"},{"id":"libtmux::StringField::read","publicId":"libtmux::StringField::read","name":"read","kind":"attribute","modifiers":[],"parent":"libtmux::StringField","signatures":[],"type":"std::string_view(*)","source":{"file":"include/libtmux/filter_expr.hpp","line":55,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringfield-read"},{"id":"libtmux::StringFieldHandle","publicId":"libtmux::StringFieldHandle","name":"StringFieldHandle","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A typed field handle.","body":"Only the operations a field's type actually supports are declared, so `pane::active.starts_with(...)` is a compile error rather than a runtime surprise.\n\nA handle also reads a row, so the same name serves as a ranges projection — and a flag handle as a predicate — rather than a lambda that spells the accessor a second time. `sort(panes, {}, pane::index)` then orders by the number tmux rendered, where projecting the text puts `%10` before `%9`."},"source":{"file":"include/libtmux/filter_expr.hpp","line":241,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringfieldhandle","typeParams":["typename Entity"],"typeParameters":[{"name":"Entity"}]},{"id":"libtmux::StringFieldHandle::field","publicId":"libtmux::StringFieldHandle::field","name":"field","kind":"attribute","modifiers":[],"parent":"libtmux::StringFieldHandle","signatures":[],"type":"StringField","source":{"file":"include/libtmux/filter_expr.hpp","line":241,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringfieldhandle-field"},{"id":"libtmux::StringFieldHandle::iequals","publicId":"libtmux::StringFieldHandle::iequals","name":"iequals","kind":"method","modifiers":["readonly"],"parent":"libtmux::StringFieldHandle","signatures":[{"params":[{"name":"operand","type":"std::string_view"}],"raw":"[[nodiscard]] FilterExpr\nlibtmux::StringFieldHandle::iequals(std::string_view operand) const;","returns":"FilterExpr"}],"source":{"file":"include/libtmux/filter_expr.hpp","line":250,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringfieldhandle-iequals"},{"id":"libtmux::StringFieldHandle::contains","publicId":"libtmux::StringFieldHandle::contains","name":"contains","kind":"method","modifiers":["readonly"],"parent":"libtmux::StringFieldHandle","signatures":[{"params":[{"name":"operand","type":"std::string_view"}],"raw":"[[nodiscard]] FilterExpr\nlibtmux::StringFieldHandle::contains(std::string_view operand) const;","returns":"FilterExpr"}],"source":{"file":"include/libtmux/filter_expr.hpp","line":253,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringfieldhandle-contains"},{"id":"libtmux::StringFieldHandle::starts_with","publicId":"libtmux::StringFieldHandle::starts_with","name":"starts_with","kind":"method","modifiers":["readonly"],"parent":"libtmux::StringFieldHandle","signatures":[{"params":[{"name":"operand","type":"std::string_view"}],"raw":"[[nodiscard]] FilterExpr\nlibtmux::StringFieldHandle::starts_with(std::string_view operand) const;","returns":"FilterExpr"}],"source":{"file":"include/libtmux/filter_expr.hpp","line":256,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringfieldhandle-starts_with"},{"id":"libtmux::StringFieldHandle::ends_with","publicId":"libtmux::StringFieldHandle::ends_with","name":"ends_with","kind":"method","modifiers":["readonly"],"parent":"libtmux::StringFieldHandle","signatures":[{"params":[{"name":"operand","type":"std::string_view"}],"raw":"[[nodiscard]] FilterExpr\nlibtmux::StringFieldHandle::ends_with(std::string_view operand) const;","returns":"FilterExpr"}],"source":{"file":"include/libtmux/filter_expr.hpp","line":259,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-stringfieldhandle-ends_with"},{"id":"libtmux::Version","publicId":"libtmux::Version","name":"Version","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"A tmux version, ordered so a feature gate can compare against a literal.","body":"tmux marks a development build with a suffix, which orders after the release it follows rather than before it."},"source":{"file":"include/libtmux/version.hpp","line":36,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-version"},{"id":"libtmux::Version::major","publicId":"libtmux::Version::major","name":"major","kind":"attribute","modifiers":[],"parent":"libtmux::Version","signatures":[],"type":"std::uint32_t","source":{"file":"include/libtmux/version.hpp","line":36,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-version-major"},{"id":"libtmux::Version::minor","publicId":"libtmux::Version::minor","name":"minor","kind":"attribute","modifiers":[],"parent":"libtmux::Version","signatures":[],"type":"std::uint32_t","source":{"file":"include/libtmux/version.hpp","line":37,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-version-minor"},{"id":"libtmux::Version::revision","publicId":"libtmux::Version::revision","name":"revision","kind":"attribute","modifiers":[],"parent":"libtmux::Version","signatures":[],"type":"std::uint32_t","doc":{"summary":"0 for a bare release, 1 for `a`, 2 for `b`, and so on.","body":"Psmux's numeric third component occupies this existing slot as the corresponding number."},"source":{"file":"include/libtmux/version.hpp","line":40,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-version-revision"},{"id":"libtmux::Version::prerelease","publicId":"libtmux::Version::prerelease","name":"prerelease","kind":"attribute","modifiers":[],"parent":"libtmux::Version","signatures":[],"type":"bool","doc":{"summary":"A `next-` build precedes the release it leads to; `master` follows every numbered release."},"source":{"file":"include/libtmux/version.hpp","line":43,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-version-prerelease"},{"id":"libtmux::Version::unbounded","publicId":"libtmux::Version::unbounded","name":"unbounded","kind":"attribute","modifiers":[],"parent":"libtmux::Version","signatures":[],"type":"bool","source":{"file":"include/libtmux/version.hpp","line":44,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-version-unbounded"},{"id":"libtmux::WaitOptions","publicId":"libtmux::WaitOptions","name":"WaitOptions","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/wait.hpp","line":65,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitoptions"},{"id":"libtmux::WaitOptions::timeout","publicId":"libtmux::WaitOptions::timeout","name":"timeout","kind":"attribute","modifiers":[],"parent":"libtmux::WaitOptions","signatures":[],"type":"std::chrono::milliseconds","source":{"file":"include/libtmux/wait.hpp","line":65,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitoptions-timeout"},{"id":"libtmux::WaitOptions::sent","publicId":"libtmux::WaitOptions::sent","name":"sent","kind":"attribute","modifiers":[],"parent":"libtmux::WaitOptions","signatures":[],"type":"std::function(std::string_view pane_id)>","doc":{"summary":"Whole input echoes to discount, queried before every match attempt.","body":"The caller retains submitted echoes for this wait's lifetime and drops pending text when an unmodelled edit invalidates it."},"source":{"file":"include/libtmux/wait.hpp","line":69,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitoptions-sent"},{"id":"libtmux::WaitOptions::input_pending","publicId":"libtmux::WaitOptions::input_pending","name":"input_pending","kind":"attribute","modifiers":[],"parent":"libtmux::WaitOptions","signatures":[],"type":"std::function","doc":{"summary":"Read after `sent`.","body":"A submitted line may still be discounted without excluding real output on the cursor row. Absent means `!sent.empty()`."},"source":{"file":"include/libtmux/wait.hpp","line":72,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitoptions-input_pending"},{"id":"libtmux::WaitOptions::match_budget","publicId":"libtmux::WaitOptions::match_budget","name":"match_budget","kind":"attribute","modifiers":[],"parent":"libtmux::WaitOptions","signatures":[],"type":"std::size_t","doc":{"summary":"How much text this wait will search before giving up.","body":"A pane that prints faster than the search can read it would otherwise spin until the deadline; this reports instead. Counted across every capture, not per capture."},"source":{"file":"include/libtmux/wait.hpp","line":77,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitoptions-match_budget"},{"id":"libtmux::WaitOptions::poll_interval","publicId":"libtmux::WaitOptions::poll_interval","name":"poll_interval","kind":"attribute","modifiers":[],"parent":"libtmux::WaitOptions","signatures":[],"type":"std::chrono::milliseconds","doc":{"summary":"How long the fallback waits between captures, and the longest the event path blocks before checking the deadline and cancellation."},"source":{"file":"include/libtmux/wait.hpp","line":80,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitoptions-poll_interval"},{"id":"libtmux::WaitOptions::cancelled","publicId":"libtmux::WaitOptions::cancelled","name":"cancelled","kind":"attribute","modifiers":[],"parent":"libtmux::WaitOptions","signatures":[],"type":"std::function","doc":{"summary":"Whether the caller has given up.","body":"Polled rather than a `std::stop_token` because the loop already wakes on `poll_interval` and most callers have a flag rather than a token; a token adapts in one line — `[stop] { return stop.stop_requested(); }` — while the reverse would cost the caller a thread. A cancelled wait answers `FailureKind::cancelled`."},"source":{"file":"include/libtmux/wait.hpp","line":86,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitoptions-cancelled"},{"id":"libtmux::WaitOptions::on_progress","publicId":"libtmux::WaitOptions::on_progress","name":"on_progress","kind":"attribute","modifiers":[],"parent":"libtmux::WaitOptions","signatures":[],"type":"std::function","doc":{"summary":"Called at most once per second while the wait runs, with how long it has been waiting and how it is currently waiting.","body":"For a caller forwarding progress to somebody else; the wait does not need it."},"source":{"file":"include/libtmux/wait.hpp","line":90,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitoptions-on_progress"},{"id":"libtmux::WaitOptions::observe_control_client","publicId":"libtmux::WaitOptions::observe_control_client","name":"observe_control_client","kind":"attribute","modifiers":[],"parent":"libtmux::WaitOptions","signatures":[],"type":"std::function(std::int64_t pid)>","doc":{"summary":"Called with the control client's process id when the wait opens one, and expected to answer a guard that the wait holds until it closes that connection.","body":"A caller that reports on attached clients needs this, or its own observation reads as somebody else being attached."},"source":{"file":"include/libtmux/wait.hpp","line":95,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitoptions-observe_control_client"},{"id":"libtmux::WaitResult","publicId":"libtmux::WaitResult","name":"WaitResult","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/wait.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitresult"},{"id":"libtmux::WaitResult::matched","publicId":"libtmux::WaitResult::matched","name":"matched","kind":"attribute","modifiers":[],"parent":"libtmux::WaitResult","signatures":[],"type":"bool","doc":{"summary":"`text` contains `wanted` as something the pane produced."},"source":{"file":"include/libtmux/wait.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitresult-matched"},{"id":"libtmux::WaitResult::matched_at_entry","publicId":"libtmux::WaitResult::matched_at_entry","name":"matched_at_entry","kind":"attribute","modifiers":[],"parent":"libtmux::WaitResult","signatures":[],"type":"bool","doc":{"summary":"`wanted` was already on screen before the wait began.","body":"True whether or not the wait went on to credit it to the pane, so a caller can tell a fresh line apart from one that was always there."},"source":{"file":"include/libtmux/wait.hpp","line":49,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitresult-matched_at_entry"},{"id":"libtmux::WaitResult::timed_out","publicId":"libtmux::WaitResult::timed_out","name":"timed_out","kind":"attribute","modifiers":[],"parent":"libtmux::WaitResult","signatures":[],"type":"bool","source":{"file":"include/libtmux/wait.hpp","line":50,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitresult-timed_out"},{"id":"libtmux::WaitResult::present_unconfirmed","publicId":"libtmux::WaitResult::present_unconfirmed","name":"present_unconfirmed","kind":"attribute","modifiers":[],"parent":"libtmux::WaitResult","signatures":[],"type":"bool","doc":{"summary":"`wanted` is on screen, but every occurrence of it is text the caller itself sent — so the pane has not produced it, and this is not a match.","body":"Distinct from a silent timeout, where `wanted` never appeared at all."},"source":{"file":"include/libtmux/wait.hpp","line":54,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitresult-present_unconfirmed"},{"id":"libtmux::WaitResult::elapsed","publicId":"libtmux::WaitResult::elapsed","name":"elapsed","kind":"attribute","modifiers":[],"parent":"libtmux::WaitResult","signatures":[],"type":"std::chrono::milliseconds","source":{"file":"include/libtmux/wait.hpp","line":55,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitresult-elapsed"},{"id":"libtmux::WaitResult::path","publicId":"libtmux::WaitResult::path","name":"path","kind":"attribute","modifiers":[],"parent":"libtmux::WaitResult","signatures":[],"type":"WaitPath","source":{"file":"include/libtmux/wait.hpp","line":56,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitresult-path"},{"id":"libtmux::WaitResult::pane_id","publicId":"libtmux::WaitResult::pane_id","name":"pane_id","kind":"attribute","modifiers":[],"parent":"libtmux::WaitResult","signatures":[],"type":"std::string","doc":{"summary":"The pane that was waited on.","body":"Empty only when the target never resolved, which the schema of a caller reporting this must allow for."},"source":{"file":"include/libtmux/wait.hpp","line":59,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitresult-pane_id"},{"id":"libtmux::WaitResult::text","publicId":"libtmux::WaitResult::text","name":"text","kind":"attribute","modifiers":[],"parent":"libtmux::WaitResult","signatures":[],"type":"std::string","doc":{"summary":"The last capture taken, matched or not."},"source":{"file":"include/libtmux/wait.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-waitresult-text"},{"id":"libtmux::test::ScopedTmuxServerOptions","publicId":"libtmux::test::ScopedTmuxServerOptions","name":"ScopedTmuxServerOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"How the test server is started and how long teardown may take.","body":"Every member carries an initializer on purpose; see the note on the last one."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":60,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserveroptions"},{"id":"libtmux::test::ScopedTmuxServerOptions::tmux_binary","publicId":"libtmux::test::ScopedTmuxServerOptions::tmux_binary","name":"tmux_binary","kind":"attribute","modifiers":[],"parent":"libtmux::test::ScopedTmuxServerOptions","signatures":[],"type":"std::filesystem::path","source":{"file":"include/libtmux/testing/scoped_server.hpp","line":60,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserveroptions-tmux_binary"},{"id":"libtmux::test::ScopedTmuxServerOptions::mode","publicId":"libtmux::test::ScopedTmuxServerOptions::mode","name":"mode","kind":"attribute","modifiers":[],"parent":"libtmux::test::ScopedTmuxServerOptions","signatures":[],"type":"SocketMode","source":{"file":"include/libtmux/testing/scoped_server.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserveroptions-mode"},{"id":"libtmux::test::ScopedTmuxServerOptions::startup_timeout","publicId":"libtmux::test::ScopedTmuxServerOptions::startup_timeout","name":"startup_timeout","kind":"attribute","modifiers":[],"parent":"libtmux::test::ScopedTmuxServerOptions","signatures":[],"type":"std::chrono::milliseconds","source":{"file":"include/libtmux/testing/scoped_server.hpp","line":62,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserveroptions-startup_timeout"},{"id":"libtmux::test::ScopedTmuxServerOptions::teardown_timeout","publicId":"libtmux::test::ScopedTmuxServerOptions::teardown_timeout","name":"teardown_timeout","kind":"attribute","modifiers":[],"parent":"libtmux::test::ScopedTmuxServerOptions","signatures":[],"type":"std::chrono::milliseconds","source":{"file":"include/libtmux/testing/scoped_server.hpp","line":63,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserveroptions-teardown_timeout"},{"id":"libtmux::test::ScopedTmuxServerOptions::session_name","publicId":"libtmux::test::ScopedTmuxServerOptions::session_name","name":"session_name","kind":"attribute","modifiers":[],"parent":"libtmux::test::ScopedTmuxServerOptions","signatures":[],"type":"std::string","source":{"file":"include/libtmux/testing/scoped_server.hpp","line":64,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserveroptions-session_name"},{"id":"libtmux::test::ScopedTmuxServerOptions::socket_namespace","publicId":"libtmux::test::ScopedTmuxServerOptions::socket_namespace","name":"socket_namespace","kind":"attribute","modifiers":[],"parent":"libtmux::test::ScopedTmuxServerOptions","signatures":[],"type":"SocketNamespace","source":{"file":"include/libtmux/testing/scoped_server.hpp","line":65,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserveroptions-socket_namespace"},{"id":"libtmux::test::ScopedTmuxServerOptions::teardown_report","publicId":"libtmux::test::ScopedTmuxServerOptions::teardown_report","name":"teardown_report","kind":"attribute","modifiers":[],"parent":"libtmux::test::ScopedTmuxServerOptions","signatures":[],"type":"std::shared_ptr","doc":{"summary":"Every member has an initializer: without one here, a designated initializer that stops short of it warns under `-Wmissing-field-initializers`."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":69,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-scopedtmuxserveroptions-teardown_report"},{"id":"libtmux::test::SocketNamespace","publicId":"libtmux::test::SocketNamespace","name":"SocketNamespace","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Names the private tree, the socket and the `tmux -L` name, so concurrent suites cannot collide and a leftover directory identifies its owner.","body":"`label` reaches the socket path, which must fit in `sockaddr_un::sun_path` — 108 bytes on Linux, 104 on macOS. Keep it under about twenty characters: macOS spends roughly sixty of those on `$TMPDIR` alone, once `/var/folders/...` has canonicalised to `/private/var/...`, and tmux spends more again on the directory it puts the socket in. A label that overruns is reported by tmux as \"File name too long\", naming the path.\n\n`start` refuses one containing anything outside `[A-Za-z0-9._-]`."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-socketnamespace"},{"id":"libtmux::test::SocketNamespace::label","publicId":"libtmux::test::SocketNamespace::label","name":"label","kind":"attribute","modifiers":[],"parent":"libtmux::test::SocketNamespace","signatures":[],"type":"std::string","source":{"file":"include/libtmux/testing/scoped_server.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-socketnamespace-label"},{"id":"libtmux::test::SocketNamespace::internal","publicId":"libtmux::test::SocketNamespace::internal","name":"internal","kind":"method","modifiers":["static"],"parent":"libtmux::test::SocketNamespace","signatures":[{"params":[],"raw":"[[nodiscard]] static SocketNamespace internal();","returns":"SocketNamespace"}],"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":47,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-socketnamespace-internal"},{"id":"libtmux::test::SocketNamespace::consumer","publicId":"libtmux::test::SocketNamespace::consumer","name":"consumer","kind":"method","modifiers":["static"],"parent":"libtmux::test::SocketNamespace","signatures":[{"params":[{"name":"suite","type":"std::string_view"}],"raw":"[[nodiscard]] static SocketNamespace consumer(std::string_view suite);","returns":"SocketNamespace"}],"doc":{"summary":"Prefixed, so a consumer's servers are distinguishable from this library's."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":50,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-socketnamespace-consumer"},{"id":"libtmux::test::TeardownReport","publicId":"libtmux::test::TeardownReport","name":"TeardownReport","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"What teardown could not clean up, so a suite can fail loudly rather than leave a server behind quietly."},"source":{"file":"include/libtmux/testing/scoped_server.hpp","line":30,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-teardownreport"},{"id":"libtmux::test::TeardownReport::messages","publicId":"libtmux::test::TeardownReport::messages","name":"messages","kind":"attribute","modifiers":[],"parent":"libtmux::test::TeardownReport","signatures":[],"type":"std::vector","source":{"file":"include/libtmux/testing/scoped_server.hpp","line":30,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"libtmux-test-teardownreport-messages"},{"id":"std::formatter","publicId":"std::formatter","name":"formatter","kind":"struct","modifiers":[],"signatures":[],"extends":["std::formatter"],"source":{"file":"include/libtmux/entities.hpp","line":1341,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-client"},{"id":"std::formatter::format","publicId":"std::formatter::format","name":"format","kind":"method","modifiers":["readonly"],"parent":"std::formatter","signatures":[{"params":[{"name":"value","type":"const libtmux::Client &"},{"name":"context","type":"Context &"}],"typeParams":["typename Context"],"raw":"template \nauto format(const libtmux::Client& value, Context& context) const;","returns":"auto","typeParameters":[{"name":"Context"}]}],"source":{"file":"include/libtmux/entities.hpp","line":1341,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-client-format"},{"id":"std::formatter","publicId":"std::formatter","name":"formatter","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Formatting a failure is how it reaches a log line, so the type every call can return knows how to write itself.","body":"Inheriting the string formatter keeps fill, alignment and width working, so `{:>40}` pads a failure exactly as it pads its text. `__cpp_lib_format` is deliberately not tested here: libc++ 18 leaves it undefined while `std::format` works, so guarding on it would drop this from the clang lane and keep it on the GCC one."},"extends":["std::formatter"],"source":{"file":"include/libtmux/command.hpp","line":333,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-commandfailure"},{"id":"std::formatter::format","publicId":"std::formatter::format","name":"format","kind":"method","modifiers":["readonly"],"parent":"std::formatter","signatures":[{"params":[{"name":"failure","type":"const libtmux::CommandFailure &"},{"name":"context","type":"Context &"}],"typeParams":["typename Context"],"raw":"template \nauto format(const libtmux::CommandFailure& failure, Context& context) const;","returns":"auto","typeParameters":[{"name":"Context"}]}],"source":{"file":"include/libtmux/command.hpp","line":333,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-commandfailure-format"},{"id":"std::formatter","publicId":"std::formatter","name":"formatter","kind":"struct","modifiers":[],"signatures":[],"extends":["std::formatter"],"source":{"file":"include/libtmux/entities.hpp","line":1335,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-pane"},{"id":"std::formatter::format","publicId":"std::formatter::format","name":"format","kind":"method","modifiers":["readonly"],"parent":"std::formatter","signatures":[{"params":[{"name":"value","type":"const libtmux::Pane &"},{"name":"context","type":"Context &"}],"typeParams":["typename Context"],"raw":"template \nauto format(const libtmux::Pane& value, Context& context) const;","returns":"auto","typeParameters":[{"name":"Context"}]}],"source":{"file":"include/libtmux/entities.hpp","line":1335,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-pane-format"},{"id":"std::formatter","publicId":"std::formatter","name":"formatter","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"An entity formats as it prints.","body":"Inheriting the string formatter keeps fill, alignment and width working, so `{:>24}` pads a pane exactly as it pads its text. `__cpp_lib_format` is deliberately not tested: libc++ 18 leaves it undefined while `std::format` works, so guarding on it would drop these from the clang lane and keep them on the GCC one."},"extends":["std::formatter"],"source":{"file":"include/libtmux/entities.hpp","line":1323,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-session"},{"id":"std::formatter::format","publicId":"std::formatter::format","name":"format","kind":"method","modifiers":["readonly"],"parent":"std::formatter","signatures":[{"params":[{"name":"value","type":"const libtmux::Session &"},{"name":"context","type":"Context &"}],"typeParams":["typename Context"],"raw":"template \nauto format(const libtmux::Session& value, Context& context) const;","returns":"auto","typeParameters":[{"name":"Context"}]}],"source":{"file":"include/libtmux/entities.hpp","line":1323,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-session-format"},{"id":"std::formatter","publicId":"std::formatter","name":"formatter","kind":"struct","modifiers":[],"signatures":[],"extends":["std::formatter"],"source":{"file":"include/libtmux/entities.hpp","line":1329,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-window"},{"id":"std::formatter::format","publicId":"std::formatter::format","name":"format","kind":"method","modifiers":["readonly"],"parent":"std::formatter","signatures":[{"params":[{"name":"value","type":"const libtmux::Window &"},{"name":"context","type":"Context &"}],"typeParams":["typename Context"],"raw":"template \nauto format(const libtmux::Window& value, Context& context) const;","returns":"auto","typeParameters":[{"name":"Context"}]}],"source":{"file":"include/libtmux/entities.hpp","line":1329,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-formatter-libtmux-window-format"},{"id":"std::hash","publicId":"std::hash","name":"hash","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Hashing a client, on the same terms as its equality."},"source":{"file":"include/libtmux/entities.hpp","line":1311,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-hash-libtmux-client"},{"id":"std::hash","publicId":"std::hash","name":"hash","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Hashing a pane, on the same terms as its equality."},"source":{"file":"include/libtmux/entities.hpp","line":1307,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-hash-libtmux-pane"},{"id":"std::hash","publicId":"std::hash","name":"hash","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Hashing an entity uses exactly what its equality compares, so values from separate listings key an unordered container consistently."},"source":{"file":"include/libtmux/entities.hpp","line":1299,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-hash-libtmux-session"},{"id":"std::hash","publicId":"std::hash","name":"hash","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Hashing a window, on the same terms as its equality."},"source":{"file":"include/libtmux/entities.hpp","line":1303,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"std-hash-libtmux-window"},{"id":"capabilities.hpp::LIBTMUX_REQUIRES_TMUX","publicId":"capabilities.hpp::LIBTMUX_REQUIRES_TMUX","name":"LIBTMUX_REQUIRES_TMUX","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"Skip unless tmux is at least `major.minor`, naming what is missing below it."},"source":{"file":"include/libtmux/testing/capabilities.hpp","line":20,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"capabilities-hpp-libtmux_requires_tmux"},{"id":"capabilities.hpp::LIBTMUX_SKIP_TMUX_DEFECT","publicId":"capabilities.hpp::LIBTMUX_SKIP_TMUX_DEFECT","name":"LIBTMUX_SKIP_TMUX_DEFECT","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"Skip while tmux is inside a closed range of releases with a known defect.","body":"Both ends are inclusive, and `last` is the newest release still affected — so a fix in 3.6 is written as a window ending at 3.5."},"source":{"file":"include/libtmux/testing/capabilities.hpp","line":35,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"capabilities-hpp-libtmux_skip_tmux_defect"},{"id":"version.hpp::LIBTMUX_VERSION_MAJOR","publicId":"version.hpp::LIBTMUX_VERSION_MAJOR","name":"LIBTMUX_VERSION_MAJOR","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"The same version, available to the preprocessor.","body":"`library_version()` answers what was linked; these answer what was compiled against, which is the question a consumer has to ask before using something that may not exist yet:\n\n`#if LIBTMUX_VERSION_MAJOR > 0 || LIBTMUX_VERSION_MINOR >= 2`\n\nWritten here rather than generated into the build directory, so that `include/libtmux/` stays self-contained for anyone reading or vendoring it without CMake. A test compares `LIBTMUX_VERSION_STRING` against `library_version()`, which the build takes from the `VERSION` file, so the two cannot drift apart unnoticed."},"source":{"file":"include/libtmux/version.hpp","line":174,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"version-hpp-libtmux_version_major"},{"id":"version.hpp::LIBTMUX_VERSION_MINOR","publicId":"version.hpp::LIBTMUX_VERSION_MINOR","name":"LIBTMUX_VERSION_MINOR","kind":"constant","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/version.hpp","line":175,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"version-hpp-libtmux_version_minor"},{"id":"version.hpp::LIBTMUX_VERSION_PATCH","publicId":"version.hpp::LIBTMUX_VERSION_PATCH","name":"LIBTMUX_VERSION_PATCH","kind":"constant","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/version.hpp","line":176,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"version-hpp-libtmux_version_patch"},{"id":"version.hpp::LIBTMUX_VERSION_STRING","publicId":"version.hpp::LIBTMUX_VERSION_STRING","name":"LIBTMUX_VERSION_STRING","kind":"constant","modifiers":[],"signatures":[],"source":{"file":"include/libtmux/version.hpp","line":177,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"core","slug":"version-hpp-libtmux_version_string"},{"id":"libtmux::mcp::ToolRegistry","publicId":"libtmux::mcp::ToolRegistry","name":"ToolRegistry","kind":"class","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":274,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolregistry"},{"id":"libtmux::mcp::ToolRegistry::create","publicId":"libtmux::mcp::ToolRegistry::create","name":"create","kind":"method","modifiers":["static"],"parent":"libtmux::mcp::ToolRegistry","signatures":[{"params":[{"name":"definitions","type":"std::vector"},{"name":"selection","type":"const ToolSelection &"}],"raw":"[[nodiscard]] static libtmux::expected\ncreate(std::vector definitions, const ToolSelection& selection);","returns":"libtmux::expected"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":251,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolregistry-create"},{"id":"libtmux::mcp::ToolRegistry::tools","publicId":"libtmux::mcp::ToolRegistry::tools","name":"tools","kind":"method","modifiers":["readonly"],"parent":"libtmux::mcp::ToolRegistry","signatures":[{"params":[],"raw":"[[nodiscard]] std::span tools() const noexcept;","returns":"std::span"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":253,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolregistry-tools"},{"id":"libtmux::mcp::ToolRegistry::selection","publicId":"libtmux::mcp::ToolRegistry::selection","name":"selection","kind":"method","modifiers":["readonly"],"parent":"libtmux::mcp::ToolRegistry","signatures":[{"params":[],"raw":"[[nodiscard]] const ToolSelection& selection() const noexcept;","returns":"const ToolSelection &"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":254,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolregistry-selection"},{"id":"libtmux::mcp::ToolRegistry::find","publicId":"libtmux::mcp::ToolRegistry::find","name":"find","kind":"method","modifiers":["readonly"],"parent":"libtmux::mcp::ToolRegistry","signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] const ToolDefinition* find(std::string_view name) const noexcept;","returns":"const ToolDefinition *"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":255,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolregistry-find"},{"id":"libtmux::mcp::ToolRegistry::find_nested","publicId":"libtmux::mcp::ToolRegistry::find_nested","name":"find_nested","kind":"method","modifiers":["readonly"],"parent":"libtmux::mcp::ToolRegistry","signatures":[{"params":[{"name":"caller","type":"const ToolDefinition &"},{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] const ToolDefinition* find_nested(const ToolDefinition& caller,\n std::string_view name) const noexcept;","returns":"const ToolDefinition *"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":256,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolregistry-find_nested"},{"id":"libtmux::mcp::ToolRegistry::call","publicId":"libtmux::mcp::ToolRegistry::call","name":"call","kind":"method","modifiers":["readonly"],"parent":"libtmux::mcp::ToolRegistry","signatures":[{"params":[{"name":"server","type":"const Server &"},{"name":"name","type":"std::string_view"},{"name":"arguments","type":"const Arguments &"},{"name":"context","type":"const CallContext &","default":"{}"}],"raw":"[[nodiscard]] ToolResult call(const Server& server, std::string_view name,\n const Arguments& arguments,\n const CallContext& context = {}) const;","returns":"ToolResult"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":258,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolregistry-call"},{"id":"libtmux::json_wire::kSchemaVersion","publicId":"libtmux::json_wire::kSchemaVersion","name":"kSchemaVersion","kind":"attribute","modifiers":[],"signatures":[],"type":"int","source":{"file":"apps/mcp/include/libtmux_consumers/filter_json.hpp","line":27,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-json_wire-kschemaversion"},{"id":"libtmux::json_wire::is_known_field","publicId":"libtmux::json_wire::is_known_field","name":"is_known_field","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] bool is_known_field(std::string_view name) noexcept;","returns":"bool"}],"source":{"file":"apps/mcp/include/libtmux_consumers/filter_json.hpp","line":41,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-json_wire-is_known_field"},{"id":"libtmux::json_wire::name_of","publicId":"libtmux::json_wire::name_of","name":"name_of","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"kind","type":"LoweredNode::Kind"}],"raw":"[[nodiscard]] std::string_view name_of(LoweredNode::Kind kind) noexcept;","returns":"std::string_view"}],"source":{"file":"apps/mcp/include/libtmux_consumers/filter_json.hpp","line":56,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-json_wire-name_of"},{"id":"libtmux::json_wire::kind_from","publicId":"libtmux::json_wire::kind_from","name":"kind_from","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"name","type":"std::string_view"}],"raw":"[[nodiscard]] libtmux::expected\nkind_from(std::string_view name);","returns":"libtmux::expected"}],"source":{"file":"apps/mcp/include/libtmux_consumers/filter_json.hpp","line":81,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-json_wire-kind_from"},{"id":"libtmux::json_wire::to_json","publicId":"libtmux::json_wire::to_json","name":"to_json","kind":"function","modifiers":["overload"],"signatures":[{"params":[{"name":"node","type":"const LoweredNode &"}],"raw":"[[nodiscard]] nlohmann::json to_json(const LoweredNode& node);","returns":"nlohmann::json"},{"params":[{"name":"nodes","type":"const LoweredExpression &"}],"raw":"[[nodiscard]] nlohmann::json to_json(const LoweredExpression& nodes);","returns":"nlohmann::json"}],"source":{"file":"apps/mcp/include/libtmux_consumers/filter_json.hpp","line":100,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-json_wire-to_json"},{"id":"libtmux::json_wire::from_json","publicId":"libtmux::json_wire::from_json","name":"from_json","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"document","type":"const nlohmann::json &"}],"raw":"[[nodiscard]] libtmux::expected\nfrom_json(const nlohmann::json& document);","returns":"libtmux::expected"}],"source":{"file":"apps/mcp/include/libtmux_consumers/filter_json.hpp","line":146,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-json_wire-from_json"},{"id":"libtmux::mcp::ArgumentType","publicId":"libtmux::mcp::ArgumentType","name":"ArgumentType","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-argumenttype"},{"id":"libtmux::mcp::ArgumentType::string","publicId":"libtmux::mcp::ArgumentType::string","name":"string","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ArgumentType","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-argumenttype-string"},{"id":"libtmux::mcp::ArgumentType::integer","publicId":"libtmux::mcp::ArgumentType::integer","name":"integer","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ArgumentType","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-argumenttype-integer"},{"id":"libtmux::mcp::ArgumentType::boolean","publicId":"libtmux::mcp::ArgumentType::boolean","name":"boolean","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ArgumentType","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-argumenttype-boolean"},{"id":"libtmux::mcp::ArgumentType::string_array","publicId":"libtmux::mcp::ArgumentType::string_array","name":"string_array","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ArgumentType","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-argumenttype-string_array"},{"id":"libtmux::mcp::ArgumentType::read_calls","publicId":"libtmux::mcp::ArgumentType::read_calls","name":"read_calls","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ArgumentType","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-argumenttype-read_calls"},{"id":"libtmux::mcp::ArgumentType::send_key_operations","publicId":"libtmux::mcp::ArgumentType::send_key_operations","name":"send_key_operations","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ArgumentType","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":118,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-argumenttype-send_key_operations"},{"id":"libtmux::mcp::OutputShape","publicId":"libtmux::mcp::OutputShape","name":"OutputShape","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape"},{"id":"libtmux::mcp::OutputShape::overview","publicId":"libtmux::mcp::OutputShape::overview","name":"overview","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-overview"},{"id":"libtmux::mcp::OutputShape::sessions","publicId":"libtmux::mcp::OutputShape::sessions","name":"sessions","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-sessions"},{"id":"libtmux::mcp::OutputShape::windows","publicId":"libtmux::mcp::OutputShape::windows","name":"windows","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-windows"},{"id":"libtmux::mcp::OutputShape::panes","publicId":"libtmux::mcp::OutputShape::panes","name":"panes","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-panes"},{"id":"libtmux::mcp::OutputShape::pane_text","publicId":"libtmux::mcp::OutputShape::pane_text","name":"pane_text","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-pane_text"},{"id":"libtmux::mcp::OutputShape::pane_id","publicId":"libtmux::mcp::OutputShape::pane_id","name":"pane_id","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-pane_id"},{"id":"libtmux::mcp::OutputShape::pane_targets","publicId":"libtmux::mcp::OutputShape::pane_targets","name":"pane_targets","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-pane_targets"},{"id":"libtmux::mcp::OutputShape::session_id","publicId":"libtmux::mcp::OutputShape::session_id","name":"session_id","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-session_id"},{"id":"libtmux::mcp::OutputShape::window_id","publicId":"libtmux::mcp::OutputShape::window_id","name":"window_id","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-window_id"},{"id":"libtmux::mcp::OutputShape::wait","publicId":"libtmux::mcp::OutputShape::wait","name":"wait","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-wait"},{"id":"libtmux::mcp::OutputShape::matches","publicId":"libtmux::mcp::OutputShape::matches","name":"matches","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-matches"},{"id":"libtmux::mcp::OutputShape::object","publicId":"libtmux::mcp::OutputShape::object","name":"object","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputShape","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputshape-object"},{"id":"libtmux::mcp::Toolset","publicId":"libtmux::mcp::Toolset","name":"Toolset","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":165,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolset"},{"id":"libtmux::mcp::Toolset::inspect","publicId":"libtmux::mcp::Toolset::inspect","name":"inspect","kind":"constant","modifiers":[],"parent":"libtmux::mcp::Toolset","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":165,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolset-inspect"},{"id":"libtmux::mcp::Toolset::manage","publicId":"libtmux::mcp::Toolset::manage","name":"manage","kind":"constant","modifiers":[],"parent":"libtmux::mcp::Toolset","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":165,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolset-manage"},{"id":"libtmux::mcp::Toolset::execute","publicId":"libtmux::mcp::Toolset::execute","name":"execute","kind":"constant","modifiers":[],"parent":"libtmux::mcp::Toolset","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":165,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolset-execute"},{"id":"libtmux::mcp::Toolset::teardown","publicId":"libtmux::mcp::Toolset::teardown","name":"teardown","kind":"constant","modifiers":[],"parent":"libtmux::mcp::Toolset","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":165,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolset-teardown"},{"id":"libtmux::mcp::ProcessReach","publicId":"libtmux::mcp::ProcessReach","name":"ProcessReach","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":167,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-processreach"},{"id":"libtmux::mcp::ProcessReach::none","publicId":"libtmux::mcp::ProcessReach::none","name":"none","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ProcessReach","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":167,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-processreach-none"},{"id":"libtmux::mcp::ProcessReach::configured_process","publicId":"libtmux::mcp::ProcessReach::configured_process","name":"configured_process","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ProcessReach","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":167,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-processreach-configured_process"},{"id":"libtmux::mcp::ProcessReach::pane_input","publicId":"libtmux::mcp::ProcessReach::pane_input","name":"pane_input","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ProcessReach","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":167,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-processreach-pane_input"},{"id":"libtmux::mcp::ProcessReach::pane_command","publicId":"libtmux::mcp::ProcessReach::pane_command","name":"pane_command","kind":"constant","modifiers":[],"parent":"libtmux::mcp::ProcessReach","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":167,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-processreach-pane_command"},{"id":"libtmux::mcp::Effect","publicId":"libtmux::mcp::Effect","name":"Effect","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":174,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-effect"},{"id":"libtmux::mcp::Effect::observe","publicId":"libtmux::mcp::Effect::observe","name":"observe","kind":"constant","modifiers":[],"parent":"libtmux::mcp::Effect","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":174,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-effect-observe"},{"id":"libtmux::mcp::Effect::change","publicId":"libtmux::mcp::Effect::change","name":"change","kind":"constant","modifiers":[],"parent":"libtmux::mcp::Effect","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":174,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-effect-change"},{"id":"libtmux::mcp::Effect::delete_","publicId":"libtmux::mcp::Effect::delete_","name":"delete_","kind":"constant","modifiers":[],"parent":"libtmux::mcp::Effect","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":174,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-effect-delete_"},{"id":"libtmux::mcp::OutputClass","publicId":"libtmux::mcp::OutputClass","name":"OutputClass","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":176,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputclass"},{"id":"libtmux::mcp::OutputClass::tmux_metadata","publicId":"libtmux::mcp::OutputClass::tmux_metadata","name":"tmux_metadata","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputClass","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":176,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputclass-tmux_metadata"},{"id":"libtmux::mcp::OutputClass::terminal_content","publicId":"libtmux::mcp::OutputClass::terminal_content","name":"terminal_content","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputClass","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":176,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputclass-terminal_content"},{"id":"libtmux::mcp::OutputClass::process_environment","publicId":"libtmux::mcp::OutputClass::process_environment","name":"process_environment","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputClass","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":176,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputclass-process_environment"},{"id":"libtmux::mcp::OutputClass::configured_command","publicId":"libtmux::mcp::OutputClass::configured_command","name":"configured_command","kind":"constant","modifiers":[],"parent":"libtmux::mcp::OutputClass","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":176,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-outputclass-configured_command"},{"id":"libtmux::mcp::InputSink","publicId":"libtmux::mcp::InputSink","name":"InputSink","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink"},{"id":"libtmux::mcp::InputSink::none","publicId":"libtmux::mcp::InputSink::none","name":"none","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputSink","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink-none"},{"id":"libtmux::mcp::InputSink::tmux_lookup","publicId":"libtmux::mcp::InputSink::tmux_lookup","name":"tmux_lookup","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputSink","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink-tmux_lookup"},{"id":"libtmux::mcp::InputSink::tmux_state","publicId":"libtmux::mcp::InputSink::tmux_state","name":"tmux_state","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputSink","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink-tmux_state"},{"id":"libtmux::mcp::InputSink::pane_input","publicId":"libtmux::mcp::InputSink::pane_input","name":"pane_input","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputSink","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink-pane_input"},{"id":"libtmux::mcp::InputSink::shell_command","publicId":"libtmux::mcp::InputSink::shell_command","name":"shell_command","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputSink","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink-shell_command"},{"id":"libtmux::mcp::InputSink::process_argv","publicId":"libtmux::mcp::InputSink::process_argv","name":"process_argv","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputSink","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink-process_argv"},{"id":"libtmux::mcp::InputSink::regex","publicId":"libtmux::mcp::InputSink::regex","name":"regex","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputSink","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink-regex"},{"id":"libtmux::mcp::InputSink::tmux_format","publicId":"libtmux::mcp::InputSink::tmux_format","name":"tmux_format","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputSink","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink-tmux_format"},{"id":"libtmux::mcp::InputSink::nested_tool","publicId":"libtmux::mcp::InputSink::nested_tool","name":"nested_tool","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputSink","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":183,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputsink-nested_tool"},{"id":"libtmux::mcp::NestedAuthority","publicId":"libtmux::mcp::NestedAuthority","name":"NestedAuthority","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":195,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-nestedauthority"},{"id":"libtmux::mcp::NestedAuthority::none","publicId":"libtmux::mcp::NestedAuthority::none","name":"none","kind":"constant","modifiers":[],"parent":"libtmux::mcp::NestedAuthority","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":195,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-nestedauthority-none"},{"id":"libtmux::mcp::NestedAuthority::controlled","publicId":"libtmux::mcp::NestedAuthority::controlled","name":"controlled","kind":"constant","modifiers":[],"parent":"libtmux::mcp::NestedAuthority","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":195,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-nestedauthority-controlled"},{"id":"libtmux::mcp::NestedAuthority::unrestricted","publicId":"libtmux::mcp::NestedAuthority::unrestricted","name":"unrestricted","kind":"constant","modifiers":[],"parent":"libtmux::mcp::NestedAuthority","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":195,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-nestedauthority-unrestricted"},{"id":"libtmux::mcp::InputControl","publicId":"libtmux::mcp::InputControl","name":"InputControl","kind":"enum","modifiers":[],"signatures":[],"type":"std::uint8_t","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":197,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputcontrol"},{"id":"libtmux::mcp::InputControl::none","publicId":"libtmux::mcp::InputControl::none","name":"none","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputControl","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":197,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputcontrol-none"},{"id":"libtmux::mcp::InputControl::double_hash_once","publicId":"libtmux::mcp::InputControl::double_hash_once","name":"double_hash_once","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputControl","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":197,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputcontrol-double_hash_once"},{"id":"libtmux::mcp::InputControl::validated_variable_name","publicId":"libtmux::mcp::InputControl::validated_variable_name","name":"validated_variable_name","kind":"constant","modifiers":[],"parent":"libtmux::mcp::InputControl","signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":197,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-inputcontrol-validated_variable_name"},{"id":"libtmux::mcp::ArgumentMap","publicId":"libtmux::mcp::ArgumentMap","name":"ArgumentMap","kind":"typealias","modifiers":[],"signatures":[],"type":"std::map>","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-argumentmap"},{"id":"libtmux::mcp::ToolResult","publicId":"libtmux::mcp::ToolResult","name":"ToolResult","kind":"typealias","modifiers":[],"signatures":[],"type":"libtmux::expected","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":95,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolresult"},{"id":"libtmux::mcp::Handler","publicId":"libtmux::mcp::Handler","name":"Handler","kind":"typealias","modifiers":[],"signatures":[],"type":"std::function","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":115,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-handler"},{"id":"libtmux::mcp::kConservativeAnnotations","publicId":"libtmux::mcp::kConservativeAnnotations","name":"kConservativeAnnotations","kind":"attribute","modifiers":[],"signatures":[],"type":"ToolAnnotations","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":163,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-kconservativeannotations"},{"id":"libtmux::mcp::parse_tool_selection","publicId":"libtmux::mcp::parse_tool_selection","name":"parse_tool_selection","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"toolsets","type":"std::optional"},{"name":"include","type":"std::optional"},{"name":"exclude","type":"std::optional"},{"name":"teardown_enabled_by_default","type":"bool","default":"true"}],"raw":"[[nodiscard]] libtmux::expected parse_tool_selection(\n std::optional toolsets, std::optional include,\n std::optional exclude, bool teardown_enabled_by_default = true);","returns":"libtmux::expected"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":279,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parse_tool_selection"},{"id":"libtmux::mcp::default_tools","publicId":"libtmux::mcp::default_tools","name":"default_tools","kind":"function","modifiers":["overload"],"signatures":[{"params":[],"raw":"[[nodiscard]] libtmux::expected default_tools();","returns":"libtmux::expected"},{"params":[{"name":"selection","type":"const ToolSelection &"}],"raw":"[[nodiscard]] libtmux::expected\ndefault_tools(const ToolSelection& selection);","returns":"libtmux::expected"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":282,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-default_tools"},{"id":"libtmux::mcp::configured_tools","publicId":"libtmux::mcp::configured_tools","name":"configured_tools","kind":"function","modifiers":["overload"],"signatures":[{"params":[],"raw":"[[nodiscard]] libtmux::expected configured_tools();","returns":"libtmux::expected"},{"params":[{"name":"teardown_enabled_by_default","type":"bool"}],"raw":"[[nodiscard]] libtmux::expected\nconfigured_tools(bool teardown_enabled_by_default);","returns":"libtmux::expected"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":285,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-configured_tools"},{"id":"libtmux::workspace::BuildPhase","publicId":"libtmux::workspace::BuildPhase","name":"BuildPhase","kind":"enum","modifiers":[],"signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildphase"},{"id":"libtmux::workspace::BuildPhase::session_started","publicId":"libtmux::workspace::BuildPhase::session_started","name":"session_started","kind":"constant","modifiers":[],"parent":"libtmux::workspace::BuildPhase","signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildphase-session_started"},{"id":"libtmux::workspace::BuildPhase::window_started","publicId":"libtmux::workspace::BuildPhase::window_started","name":"window_started","kind":"constant","modifiers":[],"parent":"libtmux::workspace::BuildPhase","signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildphase-window_started"},{"id":"libtmux::workspace::BuildPhase::pane_started","publicId":"libtmux::workspace::BuildPhase::pane_started","name":"pane_started","kind":"constant","modifiers":[],"parent":"libtmux::workspace::BuildPhase","signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildphase-pane_started"},{"id":"libtmux::workspace::BuildPhase::pane_completed","publicId":"libtmux::workspace::BuildPhase::pane_completed","name":"pane_completed","kind":"constant","modifiers":[],"parent":"libtmux::workspace::BuildPhase","signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildphase-pane_completed"},{"id":"libtmux::workspace::BuildPhase::window_completed","publicId":"libtmux::workspace::BuildPhase::window_completed","name":"window_completed","kind":"constant","modifiers":[],"parent":"libtmux::workspace::BuildPhase","signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildphase-window_completed"},{"id":"libtmux::workspace::BuildPhase::waiting","publicId":"libtmux::workspace::BuildPhase::waiting","name":"waiting","kind":"constant","modifiers":[],"parent":"libtmux::workspace::BuildPhase","signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":148,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildphase-waiting"},{"id":"libtmux::workspace::BeforeBuild","publicId":"libtmux::workspace::BeforeBuild","name":"BeforeBuild","kind":"typealias","modifiers":[],"signatures":[],"type":"std::function(const libtmux::Session &)>","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":146,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-beforebuild"},{"id":"libtmux::workspace::BuildObserver","publicId":"libtmux::workspace::BuildObserver","name":"BuildObserver","kind":"typealias","modifiers":[],"signatures":[],"type":"std::function(const BuildEvent &)>","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":166,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildobserver"},{"id":"libtmux::workspace::parse_tmuxp","publicId":"libtmux::workspace::parse_tmuxp","name":"parse_tmuxp","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"document","type":"std::string_view"}],"raw":"[[nodiscard]] libtmux::expected\nparse_tmuxp(std::string_view document);","returns":"libtmux::expected"}],"source":{"file":"examples/workspace/include/libtmux_consumers/tmuxp.hpp","line":39,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-parse_tmuxp"},{"id":"libtmux::workspace::validate_layouts","publicId":"libtmux::workspace::validate_layouts","name":"validate_layouts","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"server","type":"const Server &"},{"name":"description","type":"const Workspace &"}],"raw":"std::optional validate_layouts(const Server& server,\n const Workspace& description);","returns":"std::optional"}],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":169,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-validate_layouts"},{"id":"libtmux::workspace::build","publicId":"libtmux::workspace::build","name":"build","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"server","type":"const Server &"},{"name":"description","type":"const Workspace &"},{"name":"before","type":"const BeforeBuild &","default":"{}"},{"name":"observer","type":"const BuildObserver &","default":"{}"},{"name":"width","type":"std::optional","default":"std::nullopt"},{"name":"height","type":"std::optional","default":"std::nullopt"}],"raw":"[[nodiscard]] libtmux::expected\nbuild(const Server& server, const Workspace& description,\n const BeforeBuild& before = {}, const BuildObserver& observer = {},\n std::optional width = std::nullopt,\n std::optional height = std::nullopt);","returns":"libtmux::expected"}],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":644,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-build"},{"id":"libtmux::workspace::append","publicId":"libtmux::workspace::append","name":"append","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"session","type":"const libtmux::Session &"},{"name":"description","type":"const Workspace &"},{"name":"before","type":"const BeforeBuild &","default":"{}"},{"name":"observer","type":"const BuildObserver &","default":"{}"}],"raw":"[[nodiscard]] libtmux::expected\nappend(const libtmux::Session& session, const Workspace& description,\n const BeforeBuild& before = {}, const BuildObserver& observer = {});","returns":"libtmux::expected"}],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":655,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-append"},{"id":"libtmux::mcp::Arguments","publicId":"libtmux::mcp::Arguments","name":"Arguments","kind":"struct","modifiers":[],"signatures":[],"extends":["libtmux::mcp::FlatArguments"],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-arguments"},{"id":"libtmux::mcp::Arguments::read_calls","publicId":"libtmux::mcp::Arguments::read_calls","name":"read_calls","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Arguments","signatures":[],"type":"std::vector","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":61,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-arguments-read_calls"},{"id":"libtmux::mcp::Arguments::send_key_operations","publicId":"libtmux::mcp::Arguments::send_key_operations","name":"send_key_operations","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Arguments","signatures":[],"type":"std::vector","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":62,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-arguments-send_key_operations"},{"id":"libtmux::mcp::Arguments::Arguments","publicId":"libtmux::mcp::Arguments::Arguments","name":"Arguments","kind":"method","modifiers":["overload"],"parent":"libtmux::mcp::Arguments","signatures":[{"params":[],"raw":"Arguments() = default;"},{"params":[{"name":"values","type":"std::initializer_list>"}],"raw":"Arguments(\n std::initializer_list> values);"},{"params":[{"name":"values","type":"FlatArguments"}],"raw":"explicit Arguments(FlatArguments values);"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":52,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-arguments-arguments"},{"id":"libtmux::mcp::CallContext","publicId":"libtmux::mcp::CallContext","name":"CallContext","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":98,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-callcontext"},{"id":"libtmux::mcp::CallContext::is_cancelled","publicId":"libtmux::mcp::CallContext::is_cancelled","name":"is_cancelled","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::CallContext","signatures":[],"type":"std::function","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":98,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-callcontext-is_cancelled"},{"id":"libtmux::mcp::CallContext::progress","publicId":"libtmux::mcp::CallContext::progress","name":"progress","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::CallContext","signatures":[],"type":"std::function, std::string)>","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":99,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-callcontext-progress"},{"id":"libtmux::mcp::CallContext::call_tool","publicId":"libtmux::mcp::CallContext::call_tool","name":"call_tool","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::CallContext","signatures":[],"type":"std::function","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":100,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-callcontext-call_tool"},{"id":"libtmux::mcp::CallContext::can_call_read_tool","publicId":"libtmux::mcp::CallContext::can_call_read_tool","name":"can_call_read_tool","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::CallContext","signatures":[],"type":"std::function","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":101,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-callcontext-can_call_read_tool"},{"id":"libtmux::mcp::CallContext::cancelled","publicId":"libtmux::mcp::CallContext::cancelled","name":"cancelled","kind":"method","modifiers":["readonly"],"parent":"libtmux::mcp::CallContext","signatures":[{"params":[],"raw":"[[nodiscard]] bool cancelled() const noexcept;","returns":"bool"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":103,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-callcontext-cancelled"},{"id":"libtmux::mcp::CallContext::report","publicId":"libtmux::mcp::CallContext::report","name":"report","kind":"method","modifiers":["readonly"],"parent":"libtmux::mcp::CallContext","signatures":[{"params":[{"name":"completed","type":"double"},{"name":"total","type":"std::optional"},{"name":"message","type":"std::string"}],"raw":"void report(double completed, std::optional total, std::string message) const;","returns":"void"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":107,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-callcontext-report"},{"id":"libtmux::mcp::FlatArguments","publicId":"libtmux::mcp::FlatArguments","name":"FlatArguments","kind":"struct","modifiers":[],"signatures":[],"extends":["std::map>"],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":43,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-flatarguments"},{"id":"libtmux::mcp::FlatArguments::string_arrays","publicId":"libtmux::mcp::FlatArguments::string_arrays","name":"string_arrays","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::FlatArguments","signatures":[],"type":"std::map, std::less<>>","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":43,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-flatarguments-string_arrays"},{"id":"libtmux::mcp::FlatArguments::FlatArguments","publicId":"libtmux::mcp::FlatArguments::FlatArguments","name":"FlatArguments","kind":"method","modifiers":["overload"],"parent":"libtmux::mcp::FlatArguments","signatures":[{"params":[],"raw":"FlatArguments() = default;"},{"params":[{"name":"values","type":"std::initializer_list>"}],"raw":"FlatArguments(\n std::initializer_list> values);"},{"params":[{"name":"values","type":"ArgumentMap"}],"raw":"explicit FlatArguments(ArgumentMap values);"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":34,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-flatarguments-flatarguments"},{"id":"libtmux::mcp::Parameter","publicId":"libtmux::mcp::Parameter","name":"Parameter","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":128,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter"},{"id":"libtmux::mcp::Parameter::name","publicId":"libtmux::mcp::Parameter::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Parameter","signatures":[],"type":"std::string","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":128,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter-name"},{"id":"libtmux::mcp::Parameter::description","publicId":"libtmux::mcp::Parameter::description","name":"description","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Parameter","signatures":[],"type":"std::string","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":129,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter-description"},{"id":"libtmux::mcp::Parameter::type","publicId":"libtmux::mcp::Parameter::type","name":"type","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Parameter","signatures":[],"type":"ArgumentType","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":130,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter-type"},{"id":"libtmux::mcp::Parameter::required","publicId":"libtmux::mcp::Parameter::required","name":"required","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Parameter","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":131,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter-required"},{"id":"libtmux::mcp::Parameter::minimum","publicId":"libtmux::mcp::Parameter::minimum","name":"minimum","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Parameter","signatures":[],"type":"std::optional","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":132,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter-minimum"},{"id":"libtmux::mcp::Parameter::maximum","publicId":"libtmux::mcp::Parameter::maximum","name":"maximum","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Parameter","signatures":[],"type":"std::optional","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":133,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter-maximum"},{"id":"libtmux::mcp::Parameter::maximum_length","publicId":"libtmux::mcp::Parameter::maximum_length","name":"maximum_length","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Parameter","signatures":[],"type":"std::optional","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":134,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter-maximum_length"},{"id":"libtmux::mcp::Parameter::allowed_values","publicId":"libtmux::mcp::Parameter::allowed_values","name":"allowed_values","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Parameter","signatures":[],"type":"std::vector","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":135,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter-allowed_values"},{"id":"libtmux::mcp::Parameter::allow_empty","publicId":"libtmux::mcp::Parameter::allow_empty","name":"allow_empty","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Parameter","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":136,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-parameter-allow_empty"},{"id":"libtmux::mcp::ReadToolCall","publicId":"libtmux::mcp::ReadToolCall","name":"ReadToolCall","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":47,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-readtoolcall"},{"id":"libtmux::mcp::ReadToolCall::tool","publicId":"libtmux::mcp::ReadToolCall::tool","name":"tool","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ReadToolCall","signatures":[],"type":"std::string","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":47,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-readtoolcall-tool"},{"id":"libtmux::mcp::ReadToolCall::arguments","publicId":"libtmux::mcp::ReadToolCall::arguments","name":"arguments","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ReadToolCall","signatures":[],"type":"FlatArguments","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":48,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-readtoolcall-arguments"},{"id":"libtmux::mcp::Sink","publicId":"libtmux::mcp::Sink","name":"Sink","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":204,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sink"},{"id":"libtmux::mcp::Sink::type","publicId":"libtmux::mcp::Sink::type","name":"type","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Sink","signatures":[],"type":"InputSink","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":204,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sink-type"},{"id":"libtmux::mcp::Sink::nested_authority","publicId":"libtmux::mcp::Sink::nested_authority","name":"nested_authority","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Sink","signatures":[],"type":"NestedAuthority","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":205,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sink-nested_authority"},{"id":"libtmux::mcp::Sink::control","publicId":"libtmux::mcp::Sink::control","name":"control","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::Sink","signatures":[],"type":"InputControl","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":206,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-sink-control"},{"id":"libtmux::mcp::StructuredValue","publicId":"libtmux::mcp::StructuredValue","name":"StructuredValue","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":71,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-structuredvalue"},{"id":"libtmux::mcp::StructuredValue::Array","publicId":"libtmux::mcp::StructuredValue::Array","name":"Array","kind":"typealias","modifiers":[],"parent":"libtmux::mcp::StructuredValue","signatures":[],"type":"std::vector","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":71,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-structuredvalue-array"},{"id":"libtmux::mcp::StructuredValue::Object","publicId":"libtmux::mcp::StructuredValue::Object","name":"Object","kind":"typealias","modifiers":[],"parent":"libtmux::mcp::StructuredValue","signatures":[],"type":"std::map>","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":72,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-structuredvalue-object"},{"id":"libtmux::mcp::StructuredValue::Storage","publicId":"libtmux::mcp::StructuredValue::Storage","name":"Storage","kind":"typealias","modifiers":[],"parent":"libtmux::mcp::StructuredValue","signatures":[],"type":"std::variant","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":73,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-structuredvalue-storage"},{"id":"libtmux::mcp::StructuredValue::value","publicId":"libtmux::mcp::StructuredValue::value","name":"value","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::StructuredValue","signatures":[],"type":"Storage","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":87,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-structuredvalue-value"},{"id":"libtmux::mcp::StructuredValue::StructuredValue","publicId":"libtmux::mcp::StructuredValue::StructuredValue","name":"StructuredValue","kind":"method","modifiers":["overload"],"parent":"libtmux::mcp::StructuredValue","signatures":[{"params":[],"raw":"StructuredValue();"},{"params":[{"name":"item","type":"bool"}],"raw":"StructuredValue(bool item);"},{"params":[{"name":"item","type":"Integer"}],"typeParams":["std::integral Integer"],"raw":"template \n requires(!std::same_as, bool>)\nStructuredValue(Integer item);","typeParameters":[{"name":"Integer","bound":"std::integral"}]},{"params":[{"name":"item","type":"std::string"}],"raw":"StructuredValue(std::string item);"},{"params":[{"name":"item","type":"std::string_view"}],"raw":"StructuredValue(std::string_view item);"},{"params":[{"name":"item","type":"const char *"}],"raw":"StructuredValue(const char* item);"},{"params":[{"name":"item","type":"Array"}],"raw":"StructuredValue(Array item);"},{"params":[{"name":"item","type":"Object"}],"raw":"StructuredValue(Object item);"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":76,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-structuredvalue-structuredvalue"},{"id":"libtmux::mcp::ToolAnnotations","publicId":"libtmux::mcp::ToolAnnotations","name":"ToolAnnotations","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":155,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolannotations"},{"id":"libtmux::mcp::ToolAnnotations::read_only","publicId":"libtmux::mcp::ToolAnnotations::read_only","name":"read_only","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAnnotations","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":155,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolannotations-read_only"},{"id":"libtmux::mcp::ToolAnnotations::destructive","publicId":"libtmux::mcp::ToolAnnotations::destructive","name":"destructive","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAnnotations","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":156,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolannotations-destructive"},{"id":"libtmux::mcp::ToolAnnotations::idempotent","publicId":"libtmux::mcp::ToolAnnotations::idempotent","name":"idempotent","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAnnotations","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":157,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolannotations-idempotent"},{"id":"libtmux::mcp::ToolAnnotations::open_world","publicId":"libtmux::mcp::ToolAnnotations::open_world","name":"open_world","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAnnotations","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":158,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolannotations-open_world"},{"id":"libtmux::mcp::ToolAuthority","publicId":"libtmux::mcp::ToolAuthority","name":"ToolAuthority","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":212,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolauthority"},{"id":"libtmux::mcp::ToolAuthority::process_reach","publicId":"libtmux::mcp::ToolAuthority::process_reach","name":"process_reach","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAuthority","signatures":[],"type":"ProcessReach","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":212,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolauthority-process_reach"},{"id":"libtmux::mcp::ToolAuthority::effects","publicId":"libtmux::mcp::ToolAuthority::effects","name":"effects","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAuthority","signatures":[],"type":"std::set","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":213,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolauthority-effects"},{"id":"libtmux::mcp::ToolAuthority::output_classes","publicId":"libtmux::mcp::ToolAuthority::output_classes","name":"output_classes","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAuthority","signatures":[],"type":"std::set","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":214,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolauthority-output_classes"},{"id":"libtmux::mcp::ToolAuthority::may_expose_secrets","publicId":"libtmux::mcp::ToolAuthority::may_expose_secrets","name":"may_expose_secrets","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAuthority","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":215,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolauthority-may_expose_secrets"},{"id":"libtmux::mcp::ToolAuthority::may_return_untrusted_content","publicId":"libtmux::mcp::ToolAuthority::may_return_untrusted_content","name":"may_return_untrusted_content","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAuthority","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":216,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolauthority-may_return_untrusted_content"},{"id":"libtmux::mcp::ToolAuthority::amplifies_future_input","publicId":"libtmux::mcp::ToolAuthority::amplifies_future_input","name":"amplifies_future_input","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAuthority","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":217,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolauthority-amplifies_future_input"},{"id":"libtmux::mcp::ToolAuthority::input_sinks","publicId":"libtmux::mcp::ToolAuthority::input_sinks","name":"input_sinks","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAuthority","signatures":[],"type":"std::map, std::less<>>","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":218,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolauthority-input_sinks"},{"id":"libtmux::mcp::ToolAuthority::nested_tools","publicId":"libtmux::mcp::ToolAuthority::nested_tools","name":"nested_tools","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolAuthority","signatures":[],"type":"std::set>","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":219,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolauthority-nested_tools"},{"id":"libtmux::mcp::ToolDefinition","publicId":"libtmux::mcp::ToolDefinition","name":"ToolDefinition","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":228,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition"},{"id":"libtmux::mcp::ToolDefinition::name","publicId":"libtmux::mcp::ToolDefinition::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolDefinition","signatures":[],"type":"std::string","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":228,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition-name"},{"id":"libtmux::mcp::ToolDefinition::title","publicId":"libtmux::mcp::ToolDefinition::title","name":"title","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolDefinition","signatures":[],"type":"std::string","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":229,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition-title"},{"id":"libtmux::mcp::ToolDefinition::description","publicId":"libtmux::mcp::ToolDefinition::description","name":"description","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolDefinition","signatures":[],"type":"std::string","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":230,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition-description"},{"id":"libtmux::mcp::ToolDefinition::toolset","publicId":"libtmux::mcp::ToolDefinition::toolset","name":"toolset","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolDefinition","signatures":[],"type":"Toolset","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":231,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition-toolset"},{"id":"libtmux::mcp::ToolDefinition::authority","publicId":"libtmux::mcp::ToolDefinition::authority","name":"authority","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolDefinition","signatures":[],"type":"ToolAuthority","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":232,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition-authority"},{"id":"libtmux::mcp::ToolDefinition::annotations","publicId":"libtmux::mcp::ToolDefinition::annotations","name":"annotations","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolDefinition","signatures":[],"type":"ToolAnnotations","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":233,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition-annotations"},{"id":"libtmux::mcp::ToolDefinition::schema","publicId":"libtmux::mcp::ToolDefinition::schema","name":"schema","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolDefinition","signatures":[],"type":"ToolSchema","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":234,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition-schema"},{"id":"libtmux::mcp::ToolDefinition::handler","publicId":"libtmux::mcp::ToolDefinition::handler","name":"handler","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolDefinition","signatures":[],"type":"Handler","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":235,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition-handler"},{"id":"libtmux::mcp::ToolDefinition::required_names","publicId":"libtmux::mcp::ToolDefinition::required_names","name":"required_names","kind":"method","modifiers":["readonly"],"parent":"libtmux::mcp::ToolDefinition","signatures":[{"params":[],"raw":"[[nodiscard]] std::vector required_names() const;","returns":"std::vector"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":237,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooldefinition-required_names"},{"id":"libtmux::mcp::ToolError","publicId":"libtmux::mcp::ToolError","name":"ToolError","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":66,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolerror"},{"id":"libtmux::mcp::ToolError::caller_error","publicId":"libtmux::mcp::ToolError::caller_error","name":"caller_error","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolError","signatures":[],"type":"bool","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":66,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolerror-caller_error"},{"id":"libtmux::mcp::ToolError::message","publicId":"libtmux::mcp::ToolError::message","name":"message","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolError","signatures":[],"type":"std::string","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":67,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolerror-message"},{"id":"libtmux::mcp::ToolOutput","publicId":"libtmux::mcp::ToolOutput","name":"ToolOutput","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":91,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooloutput"},{"id":"libtmux::mcp::ToolOutput::structured","publicId":"libtmux::mcp::ToolOutput::structured","name":"structured","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolOutput","signatures":[],"type":"StructuredValue::Object","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":91,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooloutput-structured"},{"id":"libtmux::mcp::ToolOutput::maximum_response_bytes","publicId":"libtmux::mcp::ToolOutput::maximum_response_bytes","name":"maximum_response_bytes","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolOutput","signatures":[],"type":"std::optional","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":92,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-tooloutput-maximum_response_bytes"},{"id":"libtmux::mcp::ToolSchema","publicId":"libtmux::mcp::ToolSchema","name":"ToolSchema","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":223,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolschema"},{"id":"libtmux::mcp::ToolSchema::input","publicId":"libtmux::mcp::ToolSchema::input","name":"input","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolSchema","signatures":[],"type":"std::vector","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":223,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolschema-input"},{"id":"libtmux::mcp::ToolSchema::output","publicId":"libtmux::mcp::ToolSchema::output","name":"output","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolSchema","signatures":[],"type":"OutputShape","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":224,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolschema-output"},{"id":"libtmux::mcp::ToolSelection","publicId":"libtmux::mcp::ToolSelection","name":"ToolSelection","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":241,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolselection"},{"id":"libtmux::mcp::ToolSelection::toolsets","publicId":"libtmux::mcp::ToolSelection::toolsets","name":"toolsets","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolSelection","signatures":[],"type":"std::set","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":241,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolselection-toolsets"},{"id":"libtmux::mcp::ToolSelection::include","publicId":"libtmux::mcp::ToolSelection::include","name":"include","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolSelection","signatures":[],"type":"std::set>","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":242,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolselection-include"},{"id":"libtmux::mcp::ToolSelection::exclude","publicId":"libtmux::mcp::ToolSelection::exclude","name":"exclude","kind":"attribute","modifiers":[],"parent":"libtmux::mcp::ToolSelection","signatures":[],"type":"std::set>","source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":243,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolselection-exclude"},{"id":"libtmux::mcp::ToolSelection::all","publicId":"libtmux::mcp::ToolSelection::all","name":"all","kind":"method","modifiers":["static"],"parent":"libtmux::mcp::ToolSelection","signatures":[{"params":[],"raw":"[[nodiscard]] static ToolSelection all();","returns":"ToolSelection"}],"source":{"file":"apps/mcp/include/libtmux_consumers/mcp.hpp","line":245,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"mcp","apiScope":"exported","slug":"libtmux-mcp-toolselection-all"},{"id":"libtmux::workspace::BuildError","publicId":"libtmux::workspace::BuildError","name":"BuildError","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":126,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-builderror"},{"id":"libtmux::workspace::BuildError::window_index","publicId":"libtmux::workspace::BuildError::window_index","name":"window_index","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildError","signatures":[],"type":"std::size_t","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":126,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-builderror-window_index"},{"id":"libtmux::workspace::BuildError::reason","publicId":"libtmux::workspace::BuildError::reason","name":"reason","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildError","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":127,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-builderror-reason"},{"id":"libtmux::workspace::BuildError::retained_windows","publicId":"libtmux::workspace::BuildError::retained_windows","name":"retained_windows","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildError","signatures":[],"type":"std::vector","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":128,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-builderror-retained_windows"},{"id":"libtmux::workspace::BuildEvent","publicId":"libtmux::workspace::BuildEvent","name":"BuildEvent","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":157,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildevent"},{"id":"libtmux::workspace::BuildEvent::phase","publicId":"libtmux::workspace::BuildEvent::phase","name":"phase","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildEvent","signatures":[],"type":"BuildPhase","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":157,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildevent-phase"},{"id":"libtmux::workspace::BuildEvent::window_index","publicId":"libtmux::workspace::BuildEvent::window_index","name":"window_index","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildEvent","signatures":[],"type":"std::size_t","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":158,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildevent-window_index"},{"id":"libtmux::workspace::BuildEvent::pane_index","publicId":"libtmux::workspace::BuildEvent::pane_index","name":"pane_index","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildEvent","signatures":[],"type":"std::size_t","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":159,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildevent-pane_index"},{"id":"libtmux::workspace::BuildEvent::session_id","publicId":"libtmux::workspace::BuildEvent::session_id","name":"session_id","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildEvent","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":161,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildevent-session_id"},{"id":"libtmux::workspace::BuildEvent::window_id","publicId":"libtmux::workspace::BuildEvent::window_id","name":"window_id","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildEvent","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":162,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildevent-window_id"},{"id":"libtmux::workspace::BuildEvent::pane_id","publicId":"libtmux::workspace::BuildEvent::pane_id","name":"pane_id","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildEvent","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":163,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildevent-pane_id"},{"id":"libtmux::workspace::BuildStop","publicId":"libtmux::workspace::BuildStop","name":"BuildStop","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":137,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildstop"},{"id":"libtmux::workspace::BuildStop::reason","publicId":"libtmux::workspace::BuildStop::reason","name":"reason","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildStop","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":137,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildstop-reason"},{"id":"libtmux::workspace::BuildStop::retain","publicId":"libtmux::workspace::BuildStop::retain","name":"retain","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::BuildStop","signatures":[],"type":"bool","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":138,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildstop-retain"},{"id":"libtmux::workspace::BuildStop::BuildStop","publicId":"libtmux::workspace::BuildStop::BuildStop","name":"BuildStop","kind":"method","modifiers":["overload"],"parent":"libtmux::workspace::BuildStop","signatures":[{"params":[{"name":"text","type":"const char *"}],"raw":"BuildStop(const char* text);"},{"params":[{"name":"text","type":"std::string"},{"name":"keep","type":"bool","default":"false"}],"raw":"BuildStop(std::string text, bool keep = false);"}],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":139,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-buildstop-buildstop"},{"id":"libtmux::workspace::Command","publicId":"libtmux::workspace::Command","name":"Command","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-command"},{"id":"libtmux::workspace::Command::text","publicId":"libtmux::workspace::Command::text","name":"text","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Command","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":45,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-command-text"},{"id":"libtmux::workspace::Command::enter","publicId":"libtmux::workspace::Command::enter","name":"enter","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Command","signatures":[],"type":"bool","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":47,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-command-enter"},{"id":"libtmux::workspace::Command::pause_before","publicId":"libtmux::workspace::Command::pause_before","name":"pause_before","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Command","signatures":[],"type":"std::chrono::milliseconds","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":51,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-command-pause_before"},{"id":"libtmux::workspace::Command::pause_after","publicId":"libtmux::workspace::Command::pause_after","name":"pause_after","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Command","signatures":[],"type":"std::chrono::milliseconds","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":52,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-command-pause_after"},{"id":"libtmux::workspace::Command::suppress_history","publicId":"libtmux::workspace::Command::suppress_history","name":"suppress_history","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Command","signatures":[],"type":"bool","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":56,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-command-suppress_history"},{"id":"libtmux::workspace::Pane","publicId":"libtmux::workspace::Pane","name":"Pane","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":63,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-pane"},{"id":"libtmux::workspace::Pane::shell_commands","publicId":"libtmux::workspace::Pane::shell_commands","name":"shell_commands","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Pane","signatures":[],"type":"std::vector","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":63,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-pane-shell_commands"},{"id":"libtmux::workspace::Pane::shell","publicId":"libtmux::workspace::Pane::shell","name":"shell","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Pane","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":67,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-pane-shell"},{"id":"libtmux::workspace::Pane::start_directory","publicId":"libtmux::workspace::Pane::start_directory","name":"start_directory","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Pane","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":69,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-pane-start_directory"},{"id":"libtmux::workspace::Pane::focus","publicId":"libtmux::workspace::Pane::focus","name":"focus","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Pane","signatures":[],"type":"bool","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":72,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-pane-focus"},{"id":"libtmux::workspace::Pane::environment","publicId":"libtmux::workspace::Pane::environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Pane","signatures":[],"type":"std::vector>","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":75,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-pane-environment"},{"id":"libtmux::workspace::Pane::environment_overrides","publicId":"libtmux::workspace::Pane::environment_overrides","name":"environment_overrides","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Pane","signatures":[],"type":"bool","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":77,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-pane-environment_overrides"},{"id":"libtmux::workspace::ParseError","publicId":"libtmux::workspace::ParseError","name":"ParseError","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/tmuxp.hpp","line":30,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-parseerror"},{"id":"libtmux::workspace::ParseError::where","publicId":"libtmux::workspace::ParseError::where","name":"where","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::ParseError","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/tmuxp.hpp","line":30,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-parseerror-where"},{"id":"libtmux::workspace::ParseError::reason","publicId":"libtmux::workspace::ParseError::reason","name":"reason","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::ParseError","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/tmuxp.hpp","line":31,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-parseerror-reason"},{"id":"libtmux::workspace::ParseError::unsupported_key","publicId":"libtmux::workspace::ParseError::unsupported_key","name":"unsupported_key","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::ParseError","signatures":[],"type":"bool","source":{"file":"examples/workspace/include/libtmux_consumers/tmuxp.hpp","line":35,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-parseerror-unsupported_key"},{"id":"libtmux::workspace::Window","publicId":"libtmux::workspace::Window","name":"Window","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":81,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window"},{"id":"libtmux::workspace::Window::name","publicId":"libtmux::workspace::Window::name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":81,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-name"},{"id":"libtmux::workspace::Window::layout","publicId":"libtmux::workspace::Window::layout","name":"layout","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":84,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-layout"},{"id":"libtmux::workspace::Window::start_directory","publicId":"libtmux::workspace::Window::start_directory","name":"start_directory","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":85,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-start_directory"},{"id":"libtmux::workspace::Window::options","publicId":"libtmux::workspace::Window::options","name":"options","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"std::vector>","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":90,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-options"},{"id":"libtmux::workspace::Window::options_after","publicId":"libtmux::workspace::Window::options_after","name":"options_after","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"std::vector>","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":94,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-options_after"},{"id":"libtmux::workspace::Window::shell","publicId":"libtmux::workspace::Window::shell","name":"shell","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":96,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-shell"},{"id":"libtmux::workspace::Window::focus","publicId":"libtmux::workspace::Window::focus","name":"focus","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"bool","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":97,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-focus"},{"id":"libtmux::workspace::Window::environment","publicId":"libtmux::workspace::Window::environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"std::vector>","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":100,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-environment"},{"id":"libtmux::workspace::Window::index","publicId":"libtmux::workspace::Window::index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"std::optional","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":102,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-index"},{"id":"libtmux::workspace::Window::panes","publicId":"libtmux::workspace::Window::panes","name":"panes","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Window","signatures":[],"type":"std::vector","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":104,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-window-panes"},{"id":"libtmux::workspace::Workspace","publicId":"libtmux::workspace::Workspace","name":"Workspace","kind":"struct","modifiers":[],"signatures":[],"source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":108,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspace"},{"id":"libtmux::workspace::Workspace::session_name","publicId":"libtmux::workspace::Workspace::session_name","name":"session_name","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Workspace","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":108,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspace-session_name"},{"id":"libtmux::workspace::Workspace::start_directory","publicId":"libtmux::workspace::Workspace::start_directory","name":"start_directory","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Workspace","signatures":[],"type":"std::string","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":109,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspace-start_directory"},{"id":"libtmux::workspace::Workspace::global_options","publicId":"libtmux::workspace::Workspace::global_options","name":"global_options","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Workspace","signatures":[],"type":"std::vector>","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":111,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspace-global_options"},{"id":"libtmux::workspace::Workspace::options","publicId":"libtmux::workspace::Workspace::options","name":"options","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Workspace","signatures":[],"type":"std::vector>","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":112,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspace-options"},{"id":"libtmux::workspace::Workspace::environment","publicId":"libtmux::workspace::Workspace::environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Workspace","signatures":[],"type":"std::vector>","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":115,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspace-environment"},{"id":"libtmux::workspace::Workspace::windows","publicId":"libtmux::workspace::Workspace::windows","name":"windows","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Workspace","signatures":[],"type":"std::vector","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":116,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspace-windows"},{"id":"libtmux::workspace::Workspace::warnings","publicId":"libtmux::workspace::Workspace::warnings","name":"warnings","kind":"attribute","modifiers":[],"parent":"libtmux::workspace::Workspace","signatures":[],"type":"std::vector","source":{"file":"examples/workspace/include/libtmux_consumers/workspace.hpp","line":120,"repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f"},"product":"workspace","apiScope":"exported","slug":"libtmux-workspace-workspace-warnings"}],"sources":[{"product":"core","package":"libtmux-cxx","repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","version":"0.1.0-alpha.11"},{"product":"mcp","package":"mcp_tools consumer","repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","version":"0.1.0-alpha.11"},{"product":"workspace","package":"workspace consumer","repo":"libtmux/libtmux-cxx","revision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","extractedRevision":"3f93b021cb51e8349bfb9cecc6fd4091f6e79a0f","version":"0.1.0-alpha.11"}],"repo":"libtmux/libtmux-cxx"} diff --git a/site/src/data/api/fsharp.json b/site/src/data/api/fsharp.json index d35bdfbe4..05918ece9 100644 --- a/site/src/data/api/fsharp.json +++ b/site/src/data/api/fsharp.json @@ -1 +1 @@ -{"port":"fsharp","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractor":"FSharp.Compiler.Service 43.11.302.0 (public .fsi syntax)","symbols":[{"id":"LibTmux.FSharp.CardinalityError","name":"CardinalityError","kind":"enum","modifiers":[],"signatures":[{"raw":"type CardinalityError","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Describes a selection that does not contain exactly one match.","examples":[{"lang":"console","intro":"Select one session without using exceptions for ordinary cardinality outcomes. Match Ok, Error NoMatches and Error MultipleMatches explicitly. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SelectionResults.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-selection-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! _demo =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"worker\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n\n match\n sessions\n |> Seq.filter (fun session -> session.Name = \"demo\")\n |> Selection.exactlyOne\n with\n | Ok session -> printfn \"One match: %s\" session.Name\n | Error error -> failwithf \"Expected one demo session, received %A.\" error\n\n match\n sessions\n |> Seq.filter (fun session -> session.Name = \"missing\")\n |> Selection.exactlyOne\n with\n | Error NoMatches -> printfn \"No match: NoMatches\"\n | result -> failwithf \"Expected NoMatches, received %A.\" result\n\n match sessions |> Selection.exactlyOne with\n | Error MultipleMatches -> printfn \"Two matches: MultipleMatches\"\n | result -> failwithf \"Expected MultipleMatches, received %A.\" result\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"One match: demo\nNo match: NoMatches\nTwo matches: MultipleMatches\n"}]},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":9,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-cardinalityerror"},{"id":"LibTmux.FSharp.CardinalityError.NoMatches","name":"NoMatches","kind":"constant","parent":"LibTmux.FSharp.CardinalityError","modifiers":[],"signatures":[{"raw":"NoMatches","params":[],"returns":"LibTmux.FSharp.CardinalityError"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"No element matched."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":11,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-cardinalityerror-nomatches"},{"id":"LibTmux.FSharp.CardinalityError.MultipleMatches","name":"MultipleMatches","kind":"constant","parent":"LibTmux.FSharp.CardinalityError","modifiers":[],"signatures":[{"raw":"MultipleMatches","params":[],"returns":"LibTmux.FSharp.CardinalityError"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"At least two elements matched."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":13,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-cardinalityerror-multiplematches"},{"id":"LibTmux.FSharp.CaptureState","name":"CaptureState","kind":"enum","modifiers":[],"signatures":[{"raw":"type CaptureState<'T>","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Distinguishes captured state from a relation the snapshot did not read.","examples":[{"lang":"console","intro":"Pattern match CaptureState before reading relations or active entities, and option before using nullable pane fields. Capturing returns a fresh handle; a captured empty relation is different from an uncaptured one. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SnapshotAccess.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-snapshot-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! server =\n task {\n use! session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"Sessions have not been captured.\"\n | Captured _ -> failwith \"Connecting must not capture the hierarchy.\"\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let capturedSession =\n match captured.Sessions |> Snapshot.relation with\n | Captured sessions -> sessions |> Seq.exactlyOne\n | Uncaptured _ -> failwith \"The requested sessions were not captured.\"\n\n let pane =\n match capturedSession.ActivePane |> Snapshot.value with\n | Captured pane -> pane\n | Uncaptured _ -> failwith \"The active pane was not captured.\"\n\n match pane |> Pane.currentPath, pane |> Pane.currentCommand with\n | Some _, Some _ -> printfn \"The captured active pane has a path and command.\"\n | _ -> failwith \"The running pane should report its path and command.\"\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"The original handle is still uncaptured.\"\n | Captured _ -> failwith \"Capturing must return a new immutable handle.\"\n\n // Keep this private daemon alive after its only owned session is disposed.\n let! result =\n server.ExecuteCommandAsync([| \"set-option\"; \"-s\"; \"exit-empty\"; \"off\" |], token)\n\n if result.ExitCode <> 0 then\n failwithf \"Could not keep the empty server alive: %A\" result.StandardErrorLines\n\n return server\n }\n\n let! empty = server |> Server.capture token SnapshotDepth.Sessions\n\n match empty.Sessions |> Snapshot.relation with\n | Captured sessions when sessions.Count = 0 -> printfn \"Captured sessions can be empty.\"\n | _ -> failwith \"An empty captured relation must be distinct from an uncaptured relation.\"\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":16,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-capturestate"},{"id":"LibTmux.FSharp.CaptureState.Captured","name":"Captured","kind":"constant","parent":"LibTmux.FSharp.CaptureState","modifiers":[],"signatures":[{"raw":"Captured of value: 'T","params":[{"name":"value","type":"'T"}],"returns":"LibTmux.FSharp.CaptureState"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Contains the captured value, including an observed empty collection."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":18,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-capturestate-captured"},{"id":"LibTmux.FSharp.CaptureState.Uncaptured","name":"Uncaptured","kind":"constant","parent":"LibTmux.FSharp.CaptureState","modifiers":[],"signatures":[{"raw":"Uncaptured of relation: string * depth: SnapshotDepth","params":[{"name":"relation","type":"string"},{"name":"depth","type":"SnapshotDepth"}],"returns":"LibTmux.FSharp.CaptureState"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Names the unread relation and the depth the snapshot reached."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":20,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-capturestate-uncaptured"},{"id":"LibTmux.FSharp.WindowPlacementKey","name":"WindowPlacementKey","kind":"struct","modifiers":[],"signatures":[{"raw":"type WindowPlacementKey","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Identifies one indexed placement of a window within a server generation."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":24,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowplacementkey"},{"id":"LibTmux.FSharp.Snapshot","name":"Snapshot","kind":"module","modifiers":[],"signatures":[{"raw":"module Snapshot","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Reads captured values without contacting tmux."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":36,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-snapshot"},{"id":"LibTmux.FSharp.Snapshot.relation","name":"relation","kind":"function","parent":"LibTmux.FSharp.Snapshot","modifiers":[],"signatures":[{"raw":"val relation: relation: CapturedRelation<'T> -> CaptureState>","params":[{"name":"relation","type":"CapturedRelation<'T>"}],"returns":"CaptureState>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Distinguishes captured children from an unread relation.","examples":[{"lang":"console","intro":"Pattern match CaptureState before reading relations or active entities, and option before using nullable pane fields. Capturing returns a fresh handle; a captured empty relation is different from an uncaptured one. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SnapshotAccess.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-snapshot-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! server =\n task {\n use! session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"Sessions have not been captured.\"\n | Captured _ -> failwith \"Connecting must not capture the hierarchy.\"\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let capturedSession =\n match captured.Sessions |> Snapshot.relation with\n | Captured sessions -> sessions |> Seq.exactlyOne\n | Uncaptured _ -> failwith \"The requested sessions were not captured.\"\n\n let pane =\n match capturedSession.ActivePane |> Snapshot.value with\n | Captured pane -> pane\n | Uncaptured _ -> failwith \"The active pane was not captured.\"\n\n match pane |> Pane.currentPath, pane |> Pane.currentCommand with\n | Some _, Some _ -> printfn \"The captured active pane has a path and command.\"\n | _ -> failwith \"The running pane should report its path and command.\"\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"The original handle is still uncaptured.\"\n | Captured _ -> failwith \"Capturing must return a new immutable handle.\"\n\n // Keep this private daemon alive after its only owned session is disposed.\n let! result =\n server.ExecuteCommandAsync([| \"set-option\"; \"-s\"; \"exit-empty\"; \"off\" |], token)\n\n if result.ExitCode <> 0 then\n failwithf \"Could not keep the empty server alive: %A\" result.StandardErrorLines\n\n return server\n }\n\n let! empty = server |> Server.capture token SnapshotDepth.Sessions\n\n match empty.Sessions |> Snapshot.relation with\n | Captured sessions when sessions.Count = 0 -> printfn \"Captured sessions can be empty.\"\n | _ -> failwith \"An empty captured relation must be distinct from an uncaptured relation.\"\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":38,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-snapshot-relation"},{"id":"LibTmux.FSharp.Snapshot.value","name":"value","kind":"function","parent":"LibTmux.FSharp.Snapshot","modifiers":[],"signatures":[{"raw":"val value: value: CapturedValue<'T> -> CaptureState<'T> when 'T: not struct","params":[{"name":"value","type":"CapturedValue<'T>"}],"returns":"CaptureState<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Distinguishes a captured child from an unread value.","examples":[{"lang":"console","intro":"Pattern match CaptureState before reading relations or active entities, and option before using nullable pane fields. Capturing returns a fresh handle; a captured empty relation is different from an uncaptured one. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SnapshotAccess.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-snapshot-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! server =\n task {\n use! session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"Sessions have not been captured.\"\n | Captured _ -> failwith \"Connecting must not capture the hierarchy.\"\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let capturedSession =\n match captured.Sessions |> Snapshot.relation with\n | Captured sessions -> sessions |> Seq.exactlyOne\n | Uncaptured _ -> failwith \"The requested sessions were not captured.\"\n\n let pane =\n match capturedSession.ActivePane |> Snapshot.value with\n | Captured pane -> pane\n | Uncaptured _ -> failwith \"The active pane was not captured.\"\n\n match pane |> Pane.currentPath, pane |> Pane.currentCommand with\n | Some _, Some _ -> printfn \"The captured active pane has a path and command.\"\n | _ -> failwith \"The running pane should report its path and command.\"\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"The original handle is still uncaptured.\"\n | Captured _ -> failwith \"Capturing must return a new immutable handle.\"\n\n // Keep this private daemon alive after its only owned session is disposed.\n let! result =\n server.ExecuteCommandAsync([| \"set-option\"; \"-s\"; \"exit-empty\"; \"off\" |], token)\n\n if result.ExitCode <> 0 then\n failwithf \"Could not keep the empty server alive: %A\" result.StandardErrorLines\n\n return server\n }\n\n let! empty = server |> Server.capture token SnapshotDepth.Sessions\n\n match empty.Sessions |> Snapshot.relation with\n | Captured sessions when sessions.Count = 0 -> printfn \"Captured sessions can be empty.\"\n | _ -> failwith \"An empty captured relation must be distinct from an uncaptured relation.\"\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":41,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-snapshot-value"},{"id":"LibTmux.FSharp.Selection","name":"Selection","kind":"module","modifiers":[],"signatures":[{"raw":"module Selection","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Selects values from ordinary F# sequences."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":45,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-selection"},{"id":"LibTmux.FSharp.Selection.exactlyOne","name":"exactlyOne","kind":"function","parent":"LibTmux.FSharp.Selection","modifiers":[],"signatures":[{"raw":"val exactlyOne: source: seq<'T> -> Result<'T, CardinalityError>","params":[{"name":"source","type":"seq<'T>"}],"returns":"Result<'T, CardinalityError>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns the sole match, examining at most two elements.","body":"Disposes the enumerator on success, multiple matches or failure.","examples":[{"lang":"console","intro":"Select one session without using exceptions for ordinary cardinality outcomes. Match Ok, Error NoMatches and Error MultipleMatches explicitly. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SelectionResults.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-selection-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! _demo =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"worker\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n\n match\n sessions\n |> Seq.filter (fun session -> session.Name = \"demo\")\n |> Selection.exactlyOne\n with\n | Ok session -> printfn \"One match: %s\" session.Name\n | Error error -> failwithf \"Expected one demo session, received %A.\" error\n\n match\n sessions\n |> Seq.filter (fun session -> session.Name = \"missing\")\n |> Selection.exactlyOne\n with\n | Error NoMatches -> printfn \"No match: NoMatches\"\n | result -> failwithf \"Expected NoMatches, received %A.\" result\n\n match sessions |> Selection.exactlyOne with\n | Error MultipleMatches -> printfn \"Two matches: MultipleMatches\"\n | result -> failwithf \"Expected MultipleMatches, received %A.\" result\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"One match: demo\nNo match: NoMatches\nTwo matches: MultipleMatches\n"}]},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":48,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-selection-exactlyone"},{"id":"LibTmux.FSharp.TmuxFailure","name":"TmuxFailure","kind":"module","modifiers":[],"signatures":[{"raw":"module TmuxFailure","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Recognises tmux failures by whether running the operation again could repeat what it did.","body":"Every LibTmuxException says whether its command reached tmux, so match\non that rather than on the exception type. NotSent is the only failure\nafter which running the same command again is always safe. It says nothing\nabout commands sent before it: an operation that ran one command and then\nfailed to send another has already acted."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":59,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-tmuxfailure"},{"id":"LibTmux.FSharp.TmuxFailure.|NotSent|_|","name":"|NotSent|_|","kind":"function","parent":"LibTmux.FSharp.TmuxFailure","modifiers":[],"signatures":[{"raw":"val |NotSent|_|): error: exn -> LibTmuxException option","params":[{"name":"error","type":"exn"}],"returns":"LibTmuxException option"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Matches a failure whose command never reached tmux; running it again repeats nothing."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":61,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-tmuxfailure-notsent-_"},{"id":"LibTmux.FSharp.TmuxFailure.|Ran|_|","name":"|Ran|_|","kind":"function","parent":"LibTmux.FSharp.TmuxFailure","modifiers":[],"signatures":[{"raw":"val |Ran|_|): error: exn -> LibTmuxException option","params":[{"name":"error","type":"exn"}],"returns":"LibTmuxException option"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Matches a failure after tmux ran the command: tmux reported an error, or its answer could not be used.","body":"Running the command again repeats whatever it did; a read can simply be read again."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":65,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-tmuxfailure-ran-_"},{"id":"LibTmux.FSharp.TmuxFailure.|MayHaveRun|_|","name":"|MayHaveRun|_|","kind":"function","parent":"LibTmux.FSharp.TmuxFailure","modifiers":[],"signatures":[{"raw":"val |MayHaveRun|_|): error: exn -> exn option","params":[{"name":"error","type":"exn"}],"returns":"exn option"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Matches a failure, or a cancellation, after which tmux may already have acted."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":68,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-tmuxfailure-mayhaverun-_"},{"id":"LibTmux.FSharp.Retry","name":"Retry","kind":"module","modifiers":[],"signatures":[{"raw":"module Retry","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Runs an operation again only when tmux never saw it."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":72,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-retry"},{"id":"LibTmux.FSharp.Retry.ifNotSent","name":"ifNotSent","kind":"function","parent":"LibTmux.FSharp.Retry","modifiers":[],"signatures":[{"raw":"val ifNotSent:\n cancellationToken: CancellationToken -> retries: int -> operation: (CancellationToken -> Task<'T>) -> Task<'T>","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"retries","type":"int"},{"name":"operation","type":"(CancellationToken -> Task<'T>)"}],"returns":"Task<'T>","raises":[{"type":"System.ArgumentOutOfRangeException","doc":"The retry count is negative."}]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Runs an operation, and again up to retries times while nothing it sent reached tmux.","body":"An attempt is repeated only when it fails with NotSent and no\ncommand it sent before that failure reached tmux, counting every command\nthe operation awaits, including through nested retries. An operation of\nseveral steps whose first step ran is therefore not repeated because a\nlater step was refused before dispatch. Any other failure, and\ncancellation, propagates at once. A read that is safe to repeat whatever\nhappened belongs in the caller's own retry policy."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":84,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-retry-ifnotsent"},{"id":"LibTmux.FSharp.StreamStep","name":"StreamStep","kind":"enum","modifiers":[],"signatures":[{"raw":"type StreamStep<'State>","params":[]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Represents a decision to continue or stop an event fold."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":11,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-streamstep"},{"id":"LibTmux.FSharp.StreamStep.Continue","name":"Continue","kind":"constant","parent":"LibTmux.FSharp.StreamStep","modifiers":[],"signatures":[{"raw":"Continue of state: 'State","params":[{"name":"state","type":"'State"}],"returns":"LibTmux.FSharp.StreamStep"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Retains state and reads the next event."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":13,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-streamstep-continue"},{"id":"LibTmux.FSharp.StreamStep.Stop","name":"Stop","kind":"constant","parent":"LibTmux.FSharp.StreamStep","modifiers":[],"signatures":[{"raw":"Stop of state: 'State","params":[{"name":"state","type":"'State"}],"returns":"LibTmux.FSharp.StreamStep"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Retains state and stops before reading another event."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":15,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-streamstep-stop"},{"id":"LibTmux.FSharp.Control","name":"Control","kind":"module","modifiers":[],"signatures":[{"raw":"module Control","params":[]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Opens control clients and reads their event streams.","body":"Streams are cold: nothing is read until a consumer enumerates one, and the\nconsumer supplies the cancellation token. Any IAsyncEnumerable\nlibrary composes them, including FSharp.Control.TaskSeq."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":24,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control"},{"id":"LibTmux.FSharp.Control.enter","name":"enter","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val enter: cancellationToken: CancellationToken -> server: LibTmux.Server -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"server","type":"LibTmux.Server"}],"returns":"Task"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Opens a control client attached to the most recently used session.","body":"The caller owns and asynchronously disposes the returned client. On a\nserver with several sessions, enterSession attaches to a chosen one."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":30,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-enter"},{"id":"LibTmux.FSharp.Control.enterSession","name":"enterSession","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val enterSession: cancellationToken: CancellationToken -> session: LibTmux.Session -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"session","type":"LibTmux.Session"}],"returns":"Task","raises":[{"type":"LibTmux.IncompleteSnapshotException","doc":"The session was not read through a server."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Opens a control client attached to a session.","body":"The caller owns and asynchronously disposes the returned client.","examples":[{"lang":"console","intro":"Attach one control client, then follow two panes' output as each event names its pane. Each pane's end arrives as TmuxPaneGoneEvent in the order the panes were given. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/WatchPanes.fs","code":"// fsharp-snippet: WatchPanes\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-watch-panes-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! session =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"work\", Command = \"exec sleep 60\"), token)\n\n // The client buffers everything from the moment it attaches, so the\n // panes it should see can start afterwards.\n use! client = session |> Control.enterSession token\n let! first = session |> Session.panes |> Query.list token\n\n let start command =\n first[0] |> Pane.split token (SplitPaneRequest(Command = command))\n\n let! build = start \"printf 'build: ok\\\\n'; exec sleep 60\"\n let! test = start \"printf 'test: ok\\\\n'; exec sleep 60\"\n\n // One client, both panes: each output event names its pane.\n let! printed =\n client\n |> Control.watchPanes [ build; test ]\n |> Control.foldWhile\n token\n (fun (printed: Map) event ->\n task {\n match event with\n | :? TmuxOutputEvent as output ->\n let pane = output.PaneId.ToString()\n let sofar = printed |> Map.tryFind pane |> Option.defaultValue \"\"\n let printed = printed |> Map.add pane (sofar + output.Data)\n\n if printed.Count = 2 && printed |> Map.forall (fun _ text -> text.Contains '\\n') then\n return StreamStep.Stop printed\n else\n return StreamStep.Continue printed\n | _ -> return StreamStep.Continue printed\n })\n Map.empty\n\n // Each pane's end arrives as TmuxPaneGoneEvent, and the stream ends\n // once both are gone.\n do! build.KillAsync(cancellationToken = token)\n do! test.KillAsync(cancellationToken = token)\n\n let! ended =\n client\n |> Control.watchPanes [ build; test ]\n |> Control.foldWhile\n token\n (fun ended event ->\n task {\n match event with\n | :? TmuxPaneGoneEvent as gone -> return StreamStep.Continue(ended @ [ gone.PaneId ])\n | _ -> return StreamStep.Continue ended\n })\n []\n\n for pane in [ build; test ] do\n printfn \"%s\" (printed[pane.Id.ToString()].Trim())\n\n printfn \"ended in order given: %b\" (ended = [ build.Id; test.Id ])\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"build: ok\ntest: ok\nended in order given: true\n"}]},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":35,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-entersession"},{"id":"LibTmux.FSharp.Control.useSession","name":"useSession","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val useSession: work: (IControlModeSession -> Task<'State>) -> session: IControlModeSession -> Task<'State>","params":[{"name":"work","type":"(IControlModeSession -> Task<'State>)"},{"name":"session","type":"IControlModeSession"}],"returns":"Task<'State>"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Runs work with an owned control client and disposes it after the returned task completes.","body":"The work function receives the client and must forward its own cancellation token."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":39,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-usesession"},{"id":"LibTmux.FSharp.Control.withSession","name":"withSession","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val withSession:\n cancellationToken: CancellationToken ->\n work: (IControlModeSession -> Task<'State>) ->\n server: LibTmux.Server ->\n Task<'State>","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"work","type":"(IControlModeSession -> Task<'State>)"},{"name":"server","type":"LibTmux.Server"}],"returns":"Task<'State>"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Opens a control client, runs work, and disposes the client after the returned task completes.","body":"The cancellation token starts the client; the work function forwards its\nown token. Like enter, the client attaches to the most recently\nused session; for a chosen one, pass enterSession's client to\nuseSession."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":48,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-withsession"},{"id":"LibTmux.FSharp.Control.events","name":"events","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val events: session: IControlModeSession -> IAsyncEnumerable","params":[{"name":"session","type":"IControlModeSession"}],"returns":"IAsyncEnumerable"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Streams every event a control client reports.","body":"A client has one event stream; two consumers each see only part of it."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":56,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-events"},{"id":"LibTmux.FSharp.Control.watchPane","name":"watchPane","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val watchPane: pane: LibTmux.Pane -> session: IControlModeSession -> IAsyncEnumerable","params":[{"name":"pane","type":"LibTmux.Pane"},{"name":"session","type":"IControlModeSession"}],"returns":"IAsyncEnumerable"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Streams one pane's output from a borrowed control client.","body":"The stream ends with TmuxPaneGoneEvent once the pane is confirmed\ngone, or with TmuxExitEvent when the client ends.\nTmuxPanePausedEvent and TmuxPaneContinuedEvent bracket output\na slow reader missed. It reads the client's single event stream, so other\nevents are consumed and dropped; follow several panes through one client\nwith watchPanes.\n\ntmux discards output it has not yet sent once a pane's program exits,\nso the last lines of a program that exits at once may never arrive.\nRead final output with Pane.run, or capture a pane kept with\nremain-on-exit."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":75,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-watchpane"},{"id":"LibTmux.FSharp.Control.watchPanes","name":"watchPanes","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val watchPanes: panes: LibTmux.Pane list -> session: IControlModeSession -> IAsyncEnumerable","params":[{"name":"panes","type":"LibTmux.Pane list"},{"name":"session","type":"IControlModeSession"}],"returns":"IAsyncEnumerable","raises":[{"type":"System.ArgumentException","doc":"The list is empty."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Streams several panes' output from one borrowed control client.","body":"Each output event names its pane. Each pane confirmed gone is reported by\na TmuxPaneGoneEvent after the output buffered before it went,\nunless the client ends first, and the stream ends once every pane is gone,\nor with TmuxExitEvent when the client ends. Events after that stay\nunread for the client's next reader.","examples":[{"lang":"console","intro":"Attach one control client, then follow two panes' output as each event names its pane. Each pane's end arrives as TmuxPaneGoneEvent in the order the panes were given. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/WatchPanes.fs","code":"// fsharp-snippet: WatchPanes\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-watch-panes-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! session =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"work\", Command = \"exec sleep 60\"), token)\n\n // The client buffers everything from the moment it attaches, so the\n // panes it should see can start afterwards.\n use! client = session |> Control.enterSession token\n let! first = session |> Session.panes |> Query.list token\n\n let start command =\n first[0] |> Pane.split token (SplitPaneRequest(Command = command))\n\n let! build = start \"printf 'build: ok\\\\n'; exec sleep 60\"\n let! test = start \"printf 'test: ok\\\\n'; exec sleep 60\"\n\n // One client, both panes: each output event names its pane.\n let! printed =\n client\n |> Control.watchPanes [ build; test ]\n |> Control.foldWhile\n token\n (fun (printed: Map) event ->\n task {\n match event with\n | :? TmuxOutputEvent as output ->\n let pane = output.PaneId.ToString()\n let sofar = printed |> Map.tryFind pane |> Option.defaultValue \"\"\n let printed = printed |> Map.add pane (sofar + output.Data)\n\n if printed.Count = 2 && printed |> Map.forall (fun _ text -> text.Contains '\\n') then\n return StreamStep.Stop printed\n else\n return StreamStep.Continue printed\n | _ -> return StreamStep.Continue printed\n })\n Map.empty\n\n // Each pane's end arrives as TmuxPaneGoneEvent, and the stream ends\n // once both are gone.\n do! build.KillAsync(cancellationToken = token)\n do! test.KillAsync(cancellationToken = token)\n\n let! ended =\n client\n |> Control.watchPanes [ build; test ]\n |> Control.foldWhile\n token\n (fun ended event ->\n task {\n match event with\n | :? TmuxPaneGoneEvent as gone -> return StreamStep.Continue(ended @ [ gone.PaneId ])\n | _ -> return StreamStep.Continue ended\n })\n []\n\n for pane in [ build; test ] do\n printfn \"%s\" (printed[pane.Id.ToString()].Trim())\n\n printfn \"ended in order given: %b\" (ended = [ build.Id; test.Id ])\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"build: ok\ntest: ok\nended in order given: true\n"}]},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":86,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-watchpanes"},{"id":"LibTmux.FSharp.Control.iter","name":"iter","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val iter:\n cancellationToken: CancellationToken -> handler: ('T -> Task) -> source: IAsyncEnumerable<'T> -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"handler","type":"('T -> Task)"},{"name":"source","type":"IAsyncEnumerable<'T>"}],"returns":"Task"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Awaits one handler at a time for each item until the stream ends.","body":"The helper disposes its enumerator but leaves the control client open."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":90,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-iter"},{"id":"LibTmux.FSharp.Control.foldWhile","name":"foldWhile","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val foldWhile:\n cancellationToken: CancellationToken ->\n folder: ('State -> 'T -> Task>) ->\n initial: 'State ->\n source: IAsyncEnumerable<'T> ->\n Task<'State>","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"folder","type":"('State -> 'T -> Task>)"},{"name":"initial","type":"'State"},{"name":"source","type":"IAsyncEnumerable<'T>"}],"returns":"Task<'State>"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Folds items until the stream ends or the folder returns Stop.","body":"The helper disposes its enumerator but leaves the control client open.","examples":[{"lang":"console","intro":"Attach one control client, then follow two panes' output as each event names its pane. Each pane's end arrives as TmuxPaneGoneEvent in the order the panes were given. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/WatchPanes.fs","code":"// fsharp-snippet: WatchPanes\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-watch-panes-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! session =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"work\", Command = \"exec sleep 60\"), token)\n\n // The client buffers everything from the moment it attaches, so the\n // panes it should see can start afterwards.\n use! client = session |> Control.enterSession token\n let! first = session |> Session.panes |> Query.list token\n\n let start command =\n first[0] |> Pane.split token (SplitPaneRequest(Command = command))\n\n let! build = start \"printf 'build: ok\\\\n'; exec sleep 60\"\n let! test = start \"printf 'test: ok\\\\n'; exec sleep 60\"\n\n // One client, both panes: each output event names its pane.\n let! printed =\n client\n |> Control.watchPanes [ build; test ]\n |> Control.foldWhile\n token\n (fun (printed: Map) event ->\n task {\n match event with\n | :? TmuxOutputEvent as output ->\n let pane = output.PaneId.ToString()\n let sofar = printed |> Map.tryFind pane |> Option.defaultValue \"\"\n let printed = printed |> Map.add pane (sofar + output.Data)\n\n if printed.Count = 2 && printed |> Map.forall (fun _ text -> text.Contains '\\n') then\n return StreamStep.Stop printed\n else\n return StreamStep.Continue printed\n | _ -> return StreamStep.Continue printed\n })\n Map.empty\n\n // Each pane's end arrives as TmuxPaneGoneEvent, and the stream ends\n // once both are gone.\n do! build.KillAsync(cancellationToken = token)\n do! test.KillAsync(cancellationToken = token)\n\n let! ended =\n client\n |> Control.watchPanes [ build; test ]\n |> Control.foldWhile\n token\n (fun ended event ->\n task {\n match event with\n | :? TmuxPaneGoneEvent as gone -> return StreamStep.Continue(ended @ [ gone.PaneId ])\n | _ -> return StreamStep.Continue ended\n })\n []\n\n for pane in [ build; test ] do\n printfn \"%s\" (printed[pane.Id.ToString()].Trim())\n\n printfn \"ended in order given: %b\" (ended = [ build.Id; test.Id ])\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"build: ok\ntest: ok\nended in order given: true\n"}]},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":95,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-foldwhile"},{"id":"LibTmux.FSharp.Control.cleanupFailure","name":"cleanupFailure","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val cleanupFailure: error: exn -> exn option","params":[{"name":"error","type":"exn"}],"returns":"exn option"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns the cleanup failure attached to the exception a helper rethrew.","body":"When work and cleanup both fail, the helpers rethrow the work's exception\nunchanged and attach the cleanup's; this reads it back. The work's\nexception keeps its type so that a handler written for it, such as\n:? TmuxPaneException or a when filter, still matches;\nan AggregateException of both would slip past those handlers."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":110,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-cleanupfailure"},{"id":"LibTmux.FSharp.Mirror","name":"Mirror","kind":"module","modifiers":[],"signatures":[{"raw":"module Mirror","params":[]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Follows a server's sessions, windows, panes and clients as tmux announces changes.","body":"Each announcement starts a fresh capture; a capture that finds nothing\ndifferent publishes nothing. tmux does not announce a pane's running command\nor working directory, nor layout changes in other sessions; use\nstartRefreshing to see those within an interval."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":120,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-mirror"},{"id":"LibTmux.FSharp.Mirror.start","name":"start","kind":"function","parent":"LibTmux.FSharp.Mirror","modifiers":[],"signatures":[{"raw":"val start: cancellationToken: CancellationToken -> anchor: LibTmux.Session -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"anchor","type":"LibTmux.Session"}],"returns":"Task","raises":[{"type":"LibTmux.IncompleteSnapshotException","doc":"The session was not read through a server."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Mirrors the server an anchor session belongs to, capturing on each announcement.","body":"The caller owns and asynchronously disposes the returned mirror."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":124,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-mirror-start"},{"id":"LibTmux.FSharp.Mirror.startRefreshing","name":"startRefreshing","kind":"function","parent":"LibTmux.FSharp.Mirror","modifiers":[],"signatures":[{"raw":"val startRefreshing:\n cancellationToken: CancellationToken -> every: TimeSpan -> anchor: LibTmux.Session -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"every","type":"TimeSpan"},{"name":"anchor","type":"LibTmux.Session"}],"returns":"Task","raises":[{"type":"System.ArgumentOutOfRangeException","doc":"The interval is negative."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Mirrors a server, also capturing whenever it has been quiet for an interval.","body":"The caller owns and asynchronously disposes the returned mirror.","examples":[{"lang":"console","intro":"Keep a current copy of a server's sessions, windows and panes as tmux announces changes, and wait until it shows a state instead of polling. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/LiveState.fs","code":"// fsharp-snippet: LiveState\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-live-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! session =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"work\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n // Captures again on each change tmux announces, and every 200 ms for\n // changes it does not, such as the command a pane runs.\n use! mirror =\n session |> Mirror.startRefreshing token (TimeSpan.FromMilliseconds 200.)\n\n let! _ =\n session.CreateWindowAsync(NewWindowRequest(Name = \"logs\", Command = \"/bin/sh\"), token)\n\n let! withLogs =\n mirror\n |> Mirror.waitUntil token (TimeSpan.FromSeconds 5.) (fun view ->\n view.Server.Windows |> Seq.exists (fun window -> window.Name = \"logs\"))\n\n let! panes = session |> Session.panes |> Query.list token\n\n do!\n panes[0]\n |> Pane.sendKeys token (SendKeysRequest(Text = \"exec sleep 30\", Literal = true))\n\n let! sleeping =\n mirror\n |> Mirror.waitUntil token (TimeSpan.FromSeconds 5.) (fun view ->\n view.Server.Panes |> Seq.exists (fun pane -> pane.CurrentCommand = \"sleep\"))\n\n printfn \"windows: %s\" (String.Join(\", \", [ for window in withLogs.Server.Windows -> window.Name ]))\n\n printfn\n \"sleeping panes: %d\"\n (sleeping.Server.Panes\n |> Seq.filter (fun pane -> pane.CurrentCommand = \"sleep\")\n |> Seq.length)\n\n printfn \"newer view: %b\" (sleeping.Epoch > withLogs.Epoch)\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"windows: shell, logs\nsleeping panes: 1\nnewer view: true\n"}]},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":129,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-mirror-startrefreshing"},{"id":"LibTmux.FSharp.Mirror.current","name":"current","kind":"function","parent":"LibTmux.FSharp.Mirror","modifiers":[],"signatures":[{"raw":"val current: mirror: ServerMirror -> ServerMirrorView","params":[{"name":"mirror","type":"ServerMirror"}],"returns":"ServerMirrorView"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns the latest published view."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":133,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-mirror-current"},{"id":"LibTmux.FSharp.Mirror.views","name":"views","kind":"function","parent":"LibTmux.FSharp.Mirror","modifiers":[],"signatures":[{"raw":"val views: mirror: ServerMirror -> IAsyncEnumerable","params":[{"name":"mirror","type":"ServerMirror"}],"returns":"IAsyncEnumerable"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Streams the current view and each newer one, skipping views published while the reader was busy.","body":"The stream is cold, ends when the mirror ends, and raises the failure that ended it."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":137,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-mirror-views"},{"id":"LibTmux.FSharp.Mirror.waitUntil","name":"waitUntil","kind":"function","parent":"LibTmux.FSharp.Mirror","modifiers":[],"signatures":[{"raw":"val waitUntil:\n cancellationToken: CancellationToken ->\n timeout: TimeSpan ->\n condition: (ServerMirrorView -> bool) ->\n mirror: ServerMirror ->\n Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"timeout","type":"TimeSpan"},{"name":"condition","type":"(ServerMirrorView -> bool)"},{"name":"mirror","type":"ServerMirror"}],"returns":"Task","raises":[{"type":"LibTmux.TmuxWaitTimeoutException","doc":"No view satisfied the condition in time."},{"type":"System.InvalidOperationException","doc":"The mirror ended first."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Waits until a view satisfies a condition, testing the current view first.","examples":[{"lang":"console","intro":"Keep a current copy of a server's sessions, windows and panes as tmux announces changes, and wait until it shows a state instead of polling. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/LiveState.fs","code":"// fsharp-snippet: LiveState\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-live-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! session =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"work\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n // Captures again on each change tmux announces, and every 200 ms for\n // changes it does not, such as the command a pane runs.\n use! mirror =\n session |> Mirror.startRefreshing token (TimeSpan.FromMilliseconds 200.)\n\n let! _ =\n session.CreateWindowAsync(NewWindowRequest(Name = \"logs\", Command = \"/bin/sh\"), token)\n\n let! withLogs =\n mirror\n |> Mirror.waitUntil token (TimeSpan.FromSeconds 5.) (fun view ->\n view.Server.Windows |> Seq.exists (fun window -> window.Name = \"logs\"))\n\n let! panes = session |> Session.panes |> Query.list token\n\n do!\n panes[0]\n |> Pane.sendKeys token (SendKeysRequest(Text = \"exec sleep 30\", Literal = true))\n\n let! sleeping =\n mirror\n |> Mirror.waitUntil token (TimeSpan.FromSeconds 5.) (fun view ->\n view.Server.Panes |> Seq.exists (fun pane -> pane.CurrentCommand = \"sleep\"))\n\n printfn \"windows: %s\" (String.Join(\", \", [ for window in withLogs.Server.Windows -> window.Name ]))\n\n printfn\n \"sleeping panes: %d\"\n (sleeping.Server.Panes\n |> Seq.filter (fun pane -> pane.CurrentCommand = \"sleep\")\n |> Seq.length)\n\n printfn \"newer view: %b\" (sleeping.Epoch > withLogs.Epoch)\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"windows: shell, logs\nsleeping panes: 1\nnewer view: true\n"}]},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":142,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-mirror-waituntil"},{"id":"LibTmux.FSharp.Filter","name":"Filter","kind":"class","modifiers":[],"signatures":[{"raw":"type Filter","params":[]},{"raw":"module Filter","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Describes a validated portable predicate over one entity type."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":11,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter"},{"id":"LibTmux.FSharp.Field","name":"Field","kind":"class","modifiers":[],"signatures":[{"raw":"type Field","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies a supported scalar field and its query constant type."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":15,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-field"},{"id":"LibTmux.FSharp.Relation","name":"Relation","kind":"class","modifiers":[],"signatures":[{"raw":"type Relation","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies a supported captured relation between two entity types."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":19,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-relation"},{"id":"LibTmux.FSharp.Filter.eq","name":"eq","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val eq: value: 'Value -> field: Field<'T, 'Value> -> Filter<'T>","params":[{"name":"value","type":"'Value"},{"name":"field","type":"Field<'T, 'Value>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a field equal to a constant.","examples":[{"lang":"console","intro":"Compare native sequence filtering with portable F# filters. Capture the hierarchy before following pane and window relations; listing alone does not capture children. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerFilters.fs","code":"// fsharp-snippet: ServerFilters\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-filters-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n\n let nativeMatches =\n sessions\n |> Seq.filter (fun session -> session.Name.StartsWith(\"de\", StringComparison.Ordinal))\n |> Seq.toList\n\n let portableMatches =\n sessions |> Query.matching (Filter.startsWith \"de\" SessionFields.name)\n\n let! windows = server |> Server.windows |> Query.list token\n\n let matchingWindows =\n windows |> Query.matching (Filter.eq \"shell\" WindowFields.name)\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let demoSession =\n captured.Sessions |> Seq.find (fun session -> session.Id = demo.Value.Id)\n\n let demoPane =\n demoSession.Windows\n |> Seq.collect (fun window -> window.Panes)\n |> Seq.exactlyOne\n\n let paneFilter = Filter.eq demoPane.Id PaneFields.id\n let matchingPanes = captured.Panes |> Query.matching paneFilter\n\n let hasDemoPane =\n paneFilter |> Filter.any WindowFields.panes |> Filter.any SessionFields.windows\n\n let matchingParents = captured.Sessions |> Query.matching hasDemoPane\n\n use! _control = server |> Control.enter token\n let! clients = server |> Server.clients |> Query.list token\n\n let controlClients =\n clients |> Query.matching (Filter.eq true ClientFields.controlMode)\n\n let names (sessions: seq) =\n [ for session in sessions -> session.Name ]\n\n printfn \"native: %A\" (names nativeMatches)\n printfn \"portable: %A\" (names portableMatches)\n printfn \"windows: %A\" [ for window in matchingWindows -> window.Name ]\n printfn \"panes: %d\" matchingPanes.Count\n printfn \"parents: %A\" (names matchingParents)\n printfn \"control clients: %d\" controlClients.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"native: [\"demo\"]\nportable: [\"demo\"]\nwindows: [\"shell\"]\npanes: 1\nparents: [\"demo\"]\ncontrol clients: 1\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":33,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-eq"},{"id":"LibTmux.FSharp.Filter.ne","name":"ne","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val ne: value: 'Value -> field: Field<'T, 'Value> -> Filter<'T>","params":[{"name":"value","type":"'Value"},{"name":"field","type":"Field<'T, 'Value>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a field not equal to a constant."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":36,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-ne"},{"id":"LibTmux.FSharp.Filter.eqIgnoreCase","name":"eqIgnoreCase","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val eqIgnoreCase: value: string -> field: Field<'T, string> -> Filter<'T>","params":[{"name":"value","type":"string"},{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a string equal to a constant ignoring case."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":39,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-eqignorecase"},{"id":"LibTmux.FSharp.Filter.isNull","name":"isNull","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val isNull: field: Field<'T, string> -> Filter<'T>","params":[{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a captured null string without treating an uncaptured field as absent."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":42,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-isnull"},{"id":"LibTmux.FSharp.Filter.startsWith","name":"startsWith","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val startsWith: prefix: string -> field: Field<'T, string> -> Filter<'T>","params":[{"name":"prefix","type":"string"},{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a string prefix.","examples":[{"lang":"console","intro":"Compare native sequence filtering with portable F# filters. Capture the hierarchy before following pane and window relations; listing alone does not capture children. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerFilters.fs","code":"// fsharp-snippet: ServerFilters\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-filters-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n\n let nativeMatches =\n sessions\n |> Seq.filter (fun session -> session.Name.StartsWith(\"de\", StringComparison.Ordinal))\n |> Seq.toList\n\n let portableMatches =\n sessions |> Query.matching (Filter.startsWith \"de\" SessionFields.name)\n\n let! windows = server |> Server.windows |> Query.list token\n\n let matchingWindows =\n windows |> Query.matching (Filter.eq \"shell\" WindowFields.name)\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let demoSession =\n captured.Sessions |> Seq.find (fun session -> session.Id = demo.Value.Id)\n\n let demoPane =\n demoSession.Windows\n |> Seq.collect (fun window -> window.Panes)\n |> Seq.exactlyOne\n\n let paneFilter = Filter.eq demoPane.Id PaneFields.id\n let matchingPanes = captured.Panes |> Query.matching paneFilter\n\n let hasDemoPane =\n paneFilter |> Filter.any WindowFields.panes |> Filter.any SessionFields.windows\n\n let matchingParents = captured.Sessions |> Query.matching hasDemoPane\n\n use! _control = server |> Control.enter token\n let! clients = server |> Server.clients |> Query.list token\n\n let controlClients =\n clients |> Query.matching (Filter.eq true ClientFields.controlMode)\n\n let names (sessions: seq) =\n [ for session in sessions -> session.Name ]\n\n printfn \"native: %A\" (names nativeMatches)\n printfn \"portable: %A\" (names portableMatches)\n printfn \"windows: %A\" [ for window in matchingWindows -> window.Name ]\n printfn \"panes: %d\" matchingPanes.Count\n printfn \"parents: %A\" (names matchingParents)\n printfn \"control clients: %d\" controlClients.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"native: [\"demo\"]\nportable: [\"demo\"]\nwindows: [\"shell\"]\npanes: 1\nparents: [\"demo\"]\ncontrol clients: 1\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":45,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-startswith"},{"id":"LibTmux.FSharp.Filter.startsWithIgnoreCase","name":"startsWithIgnoreCase","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val startsWithIgnoreCase: prefix: string -> field: Field<'T, string> -> Filter<'T>","params":[{"name":"prefix","type":"string"},{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a string prefix ignoring case."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":48,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-startswithignorecase"},{"id":"LibTmux.FSharp.Filter.endsWith","name":"endsWith","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val endsWith: suffix: string -> field: Field<'T, string> -> Filter<'T>","params":[{"name":"suffix","type":"string"},{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a string suffix."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":51,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-endswith"},{"id":"LibTmux.FSharp.Filter.endsWithIgnoreCase","name":"endsWithIgnoreCase","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val endsWithIgnoreCase: suffix: string -> field: Field<'T, string> -> Filter<'T>","params":[{"name":"suffix","type":"string"},{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a string suffix ignoring case."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":54,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-endswithignorecase"},{"id":"LibTmux.FSharp.Filter.contains","name":"contains","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val contains: text: string -> field: Field<'T, string> -> Filter<'T>","params":[{"name":"text","type":"string"},{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a string containing a substring."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":57,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-contains"},{"id":"LibTmux.FSharp.Filter.containsIgnoreCase","name":"containsIgnoreCase","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val containsIgnoreCase: text: string -> field: Field<'T, string> -> Filter<'T>","params":[{"name":"text","type":"string"},{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a string containing a substring ignoring case."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":60,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-containsignorecase"},{"id":"LibTmux.FSharp.Filter.matches","name":"matches","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val matches: pattern: string -> field: Field<'T, string> -> Filter<'T>","params":[{"name":"pattern","type":"string"},{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>","raises":[{"type":"LibTmux.UnsupportedQueryExpressionException","doc":"The pattern is invalid or longer than 1024 characters."}]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a string against a culture-invariant .NET regular expression.","body":"The pattern is unanchored, as Regex.IsMatch is; one match may run for one second."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":65,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-matches"},{"id":"LibTmux.FSharp.Filter.matchesIgnoreCase","name":"matchesIgnoreCase","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val matchesIgnoreCase: pattern: string -> field: Field<'T, string> -> Filter<'T>","params":[{"name":"pattern","type":"string"},{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>","raises":[{"type":"LibTmux.UnsupportedQueryExpressionException","doc":"The pattern is invalid or longer than 1024 characters."}]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a string against a culture-invariant .NET regular expression ignoring case."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":69,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-matchesignorecase"},{"id":"LibTmux.FSharp.Filter.lt","name":"lt","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val lt: value: int -> field: Field<'T, int> -> Filter<'T>","params":[{"name":"value","type":"int"},{"name":"field","type":"Field<'T, int>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a count below a constant."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":72,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-lt"},{"id":"LibTmux.FSharp.Filter.le","name":"le","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val le: value: int -> field: Field<'T, int> -> Filter<'T>","params":[{"name":"value","type":"int"},{"name":"field","type":"Field<'T, int>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a count at most a constant."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":75,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-le"},{"id":"LibTmux.FSharp.Filter.gt","name":"gt","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val gt: value: int -> field: Field<'T, int> -> Filter<'T>","params":[{"name":"value","type":"int"},{"name":"field","type":"Field<'T, int>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a count above a constant."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":78,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-gt"},{"id":"LibTmux.FSharp.Filter.ge","name":"ge","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val ge: value: int -> field: Field<'T, int> -> Filter<'T>","params":[{"name":"value","type":"int"},{"name":"field","type":"Field<'T, int>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a count at least a constant."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":81,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-ge"},{"id":"LibTmux.FSharp.Filter.oneOf","name":"oneOf","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val oneOf: values: 'Value list -> field: Field<'T, 'Value> -> Filter<'T>","params":[{"name":"values","type":"'Value list"},{"name":"field","type":"Field<'T, 'Value>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches any constant in a list; an empty list matches nothing."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":84,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-oneof"},{"id":"LibTmux.FSharp.Filter.notOneOf","name":"notOneOf","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val notOneOf: values: 'Value list -> field: Field<'T, 'Value> -> Filter<'T>","params":[{"name":"values","type":"'Value list"},{"name":"field","type":"Field<'T, 'Value>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches no constant in a list; an empty list matches everything."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":87,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-notoneof"},{"id":"LibTmux.FSharp.Filter.allOf","name":"allOf","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val allOf: filters: Filter<'T> list -> Filter<'T>","params":[{"name":"filters","type":"Filter<'T> list"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Requires every predicate in order; an empty list matches everything."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":90,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-allof"},{"id":"LibTmux.FSharp.Filter.anyOf","name":"anyOf","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val anyOf: filters: Filter<'T> list -> Filter<'T>","params":[{"name":"filters","type":"Filter<'T> list"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Requires at least one predicate in order; an empty list matches nothing."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":93,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-anyof"},{"id":"LibTmux.FSharp.Filter.negate","name":"negate","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val negate: filter: Filter<'T> -> Filter<'T>","params":[{"name":"filter","type":"Filter<'T>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Negates a portable predicate."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":96,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-negate"},{"id":"LibTmux.FSharp.Filter.any","name":"any","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val any: relation: Relation<'Parent, 'Child> -> predicate: Filter<'Child> -> Filter<'Parent>","params":[{"name":"relation","type":"Relation<'Parent, 'Child>"},{"name":"predicate","type":"Filter<'Child>"}],"returns":"Filter<'Parent>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Requires a matching child, returning false for an empty captured relation.","examples":[{"lang":"console","intro":"Compare native sequence filtering with portable F# filters. Capture the hierarchy before following pane and window relations; listing alone does not capture children. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerFilters.fs","code":"// fsharp-snippet: ServerFilters\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-filters-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n\n let nativeMatches =\n sessions\n |> Seq.filter (fun session -> session.Name.StartsWith(\"de\", StringComparison.Ordinal))\n |> Seq.toList\n\n let portableMatches =\n sessions |> Query.matching (Filter.startsWith \"de\" SessionFields.name)\n\n let! windows = server |> Server.windows |> Query.list token\n\n let matchingWindows =\n windows |> Query.matching (Filter.eq \"shell\" WindowFields.name)\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let demoSession =\n captured.Sessions |> Seq.find (fun session -> session.Id = demo.Value.Id)\n\n let demoPane =\n demoSession.Windows\n |> Seq.collect (fun window -> window.Panes)\n |> Seq.exactlyOne\n\n let paneFilter = Filter.eq demoPane.Id PaneFields.id\n let matchingPanes = captured.Panes |> Query.matching paneFilter\n\n let hasDemoPane =\n paneFilter |> Filter.any WindowFields.panes |> Filter.any SessionFields.windows\n\n let matchingParents = captured.Sessions |> Query.matching hasDemoPane\n\n use! _control = server |> Control.enter token\n let! clients = server |> Server.clients |> Query.list token\n\n let controlClients =\n clients |> Query.matching (Filter.eq true ClientFields.controlMode)\n\n let names (sessions: seq) =\n [ for session in sessions -> session.Name ]\n\n printfn \"native: %A\" (names nativeMatches)\n printfn \"portable: %A\" (names portableMatches)\n printfn \"windows: %A\" [ for window in matchingWindows -> window.Name ]\n printfn \"panes: %d\" matchingPanes.Count\n printfn \"parents: %A\" (names matchingParents)\n printfn \"control clients: %d\" controlClients.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"native: [\"demo\"]\nportable: [\"demo\"]\nwindows: [\"shell\"]\npanes: 1\nparents: [\"demo\"]\ncontrol clients: 1\n"},{"lang":"console","intro":"Read sessions, windows and panes through one query vocabulary. tmux drops rows a filter cannot keep, every returned row is rechecked, and a screen search finds the pane showing a line. atMostOne finds an object or reports it absent, and refuses several. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/Queries.fs","code":"// fsharp-snippet: Queries\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-queries-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! build =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"build\", WindowName = \"make\", Command = \"/bin/sh\"),\n token\n )\n\n let! _ =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(\n Name = \"logs\",\n WindowName = \"tail\",\n Command = \"printf 'ERROR: disk full\\\\n'; exec sleep 60\"\n ),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n let! logs =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"logs\")\n |> Query.list token\n\n let! logPane = logs[0] |> Session.panes |> Query.list token\n\n let! logged = logPane[0] |> Pane.waitForText token (TimeSpan.FromSeconds 5.) \"ERROR:\"\n\n\n // tmux narrows each listing itself; every row is then rechecked.\n let! named =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.startsWith \"bu\")\n |> Query.exactlyOne token\n\n // A relation filter reads only the sessions whose windows can match.\n let! tailing =\n server\n |> Server.sessions\n |> Query.where (WindowFields.name |> Filter.eq \"tail\" |> Filter.any SessionFields.windows)\n |> Query.list token\n\n // Session and window scopes use the same functions.\n let! make =\n build\n |> Session.windows\n |> Query.where (WindowFields.name |> Filter.eq \"make\")\n |> Query.tryExactlyOne token\n\n // tryExactlyOne is None when no window, or several, matched.\n let! makePanes =\n task {\n match make with\n | Some window ->\n let! panes = window |> Window.panes |> Query.list token\n return Some panes.Count\n | None -> return None\n }\n\n // tmux searches each pane's visible rows, as find-window does.\n let! showingErrors =\n server\n |> Server.panes\n |> Query.showing (ScreenSearch.Text \"ERROR:\")\n |> Query.list token\n\n let! errorRow =\n showingErrors[0] |> Pane.findOnScreen token (ScreenSearch.Text \"disk full\")\n\n // A raw tmux filter is the escape hatch; nothing rechecks it.\n let! active =\n server\n |> Server.panes\n |> Query.whereUnsafe (UnsafeTmuxFilter \"#{pane_active}\")\n |> Query.list token\n\n // Find a session or create it: atMostOne is None only when nothing\n // matched, and raises when several do.\n let deploy =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"deploy\")\n\n let! existing = deploy |> Query.atMostOne token\n\n if existing.IsNone then\n let! _ =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"deploy\", Command = \"exec sleep 60\"), token)\n\n ()\n\n let! found = deploy |> Query.atMostOne token\n\n let! several =\n task {\n try\n let! _ = server |> Server.sessions |> Query.atMostOne token\n return \"one or none\"\n with :? InvalidOperationException ->\n return \"refused\"\n }\n\n printfn \"logged: %b\" logged.Found\n printfn \"named: %A\" (named |> Result.map (fun session -> session.Name))\n printfn \"tailing: %A\" [ for session in tailing -> session.Name ]\n printfn \"make panes: %A\" makePanes\n printfn \"error row: %A\" errorRow\n printfn \"active panes: %d\" active.Count\n printfn \"deploy: absent %b, then found %b\" existing.IsNone found.IsSome\n printfn \"at most one of every session: %s\" several\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"logged: true\nnamed: Ok \"build\"\ntailing: [\"logs\"]\nmake panes: Some 1\nerror row: Some 1\nactive panes: 2\ndeploy: absent true, then found true\nat most one of every session: refused\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":99,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-any"},{"id":"LibTmux.FSharp.Filter.all","name":"all","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val all: relation: Relation<'Parent, 'Child> -> predicate: Filter<'Child> -> Filter<'Parent>","params":[{"name":"relation","type":"Relation<'Parent, 'Child>"},{"name":"predicate","type":"Filter<'Child>"}],"returns":"Filter<'Parent>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Requires every child to match, returning true for an empty captured relation."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":102,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-all"},{"id":"LibTmux.FSharp.Filter.none","name":"none","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val none: relation: Relation<'Parent, 'Child> -> predicate: Filter<'Child> -> Filter<'Parent>","params":[{"name":"relation","type":"Relation<'Parent, 'Child>"},{"name":"predicate","type":"Filter<'Child>"}],"returns":"Filter<'Parent>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Requires no matching child, returning true for an empty captured relation."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":105,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-none"},{"id":"LibTmux.FSharp.Filter.toDocument","name":"toDocument","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val toDocument: filter: Filter<'T> -> QueryDocument","params":[{"name":"filter","type":"Filter<'T>"}],"returns":"QueryDocument"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Returns the core document validated when the filter was constructed."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":108,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-todocument"},{"id":"LibTmux.FSharp.Filter.toPredicate","name":"toPredicate","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val toPredicate: filter: Filter<'T> -> ('T -> bool)","params":[{"name":"filter","type":"Filter<'T>"}],"returns":"('T -> bool)"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Returns a predicate compiled once for native lazy filtering."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":111,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-topredicate"},{"id":"LibTmux.FSharp.ScreenSearch","name":"ScreenSearch","kind":"enum","modifiers":[],"signatures":[{"raw":"type ScreenSearch","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Describes text tmux searches for on a pane's visible rows.","body":"tmux evaluates the search itself, as find-window -C does: it reads\nonly the rows on screen, with trailing spaces removed. To search history,\ncapture the pane and filter its lines."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":120,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-screensearch"},{"id":"LibTmux.FSharp.ScreenSearch.Text","name":"Text","kind":"constant","parent":"LibTmux.FSharp.ScreenSearch","modifiers":[],"signatures":[{"raw":"Text of text: string","params":[{"name":"text","type":"string"}],"returns":"LibTmux.FSharp.ScreenSearch"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches literal text."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":122,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-screensearch-text"},{"id":"LibTmux.FSharp.ScreenSearch.TextIgnoringCase","name":"TextIgnoringCase","kind":"constant","parent":"LibTmux.FSharp.ScreenSearch","modifiers":[],"signatures":[{"raw":"TextIgnoringCase of text: string","params":[{"name":"text","type":"string"}],"returns":"LibTmux.FSharp.ScreenSearch"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches literal text ignoring case."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":124,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-screensearch-textignoringcase"},{"id":"LibTmux.FSharp.ScreenSearch.PosixRegex","name":"PosixRegex","kind":"constant","parent":"LibTmux.FSharp.ScreenSearch","modifiers":[],"signatures":[{"raw":"PosixRegex of pattern: string","params":[{"name":"pattern","type":"string"}],"returns":"LibTmux.FSharp.ScreenSearch"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a POSIX extended regular expression, which tmux evaluates."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":126,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-screensearch-posixregex"},{"id":"LibTmux.FSharp.ScreenSearch.PosixRegexIgnoringCase","name":"PosixRegexIgnoringCase","kind":"constant","parent":"LibTmux.FSharp.ScreenSearch","modifiers":[],"signatures":[{"raw":"PosixRegexIgnoringCase of pattern: string","params":[{"name":"pattern","type":"string"}],"returns":"LibTmux.FSharp.ScreenSearch"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a POSIX extended regular expression ignoring case."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":128,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-screensearch-posixregexignoringcase"},{"id":"LibTmux.FSharp.Query","name":"Query","kind":"class","modifiers":[],"signatures":[{"raw":"type Query<'T>","params":[]},{"raw":"module Query","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Describes a tmux listing: a scope, filters and text panes must show.","body":"Building a query reads nothing; each run reads tmux again. tmux narrows the\nlisting with its own filter where it can evaluate one exactly, and every\nrow is then checked against the portable filters."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":140,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-query"},{"id":"LibTmux.FSharp.Query.where","name":"where","kind":"function","parent":"LibTmux.FSharp.Query","modifiers":[],"signatures":[{"raw":"val where: filter: Filter<'T> -> query: Query<'T> -> Query<'T>","params":[{"name":"filter","type":"Filter<'T>"},{"name":"query","type":"Query<'T>"}],"returns":"Query<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Adds a portable filter every result satisfies.","examples":[{"lang":"console","intro":"Read sessions, windows and panes through one query vocabulary. tmux drops rows a filter cannot keep, every returned row is rechecked, and a screen search finds the pane showing a line. atMostOne finds an object or reports it absent, and refuses several. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/Queries.fs","code":"// fsharp-snippet: Queries\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-queries-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! build =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"build\", WindowName = \"make\", Command = \"/bin/sh\"),\n token\n )\n\n let! _ =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(\n Name = \"logs\",\n WindowName = \"tail\",\n Command = \"printf 'ERROR: disk full\\\\n'; exec sleep 60\"\n ),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n let! logs =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"logs\")\n |> Query.list token\n\n let! logPane = logs[0] |> Session.panes |> Query.list token\n\n let! logged = logPane[0] |> Pane.waitForText token (TimeSpan.FromSeconds 5.) \"ERROR:\"\n\n\n // tmux narrows each listing itself; every row is then rechecked.\n let! named =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.startsWith \"bu\")\n |> Query.exactlyOne token\n\n // A relation filter reads only the sessions whose windows can match.\n let! tailing =\n server\n |> Server.sessions\n |> Query.where (WindowFields.name |> Filter.eq \"tail\" |> Filter.any SessionFields.windows)\n |> Query.list token\n\n // Session and window scopes use the same functions.\n let! make =\n build\n |> Session.windows\n |> Query.where (WindowFields.name |> Filter.eq \"make\")\n |> Query.tryExactlyOne token\n\n // tryExactlyOne is None when no window, or several, matched.\n let! makePanes =\n task {\n match make with\n | Some window ->\n let! panes = window |> Window.panes |> Query.list token\n return Some panes.Count\n | None -> return None\n }\n\n // tmux searches each pane's visible rows, as find-window does.\n let! showingErrors =\n server\n |> Server.panes\n |> Query.showing (ScreenSearch.Text \"ERROR:\")\n |> Query.list token\n\n let! errorRow =\n showingErrors[0] |> Pane.findOnScreen token (ScreenSearch.Text \"disk full\")\n\n // A raw tmux filter is the escape hatch; nothing rechecks it.\n let! active =\n server\n |> Server.panes\n |> Query.whereUnsafe (UnsafeTmuxFilter \"#{pane_active}\")\n |> Query.list token\n\n // Find a session or create it: atMostOne is None only when nothing\n // matched, and raises when several do.\n let deploy =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"deploy\")\n\n let! existing = deploy |> Query.atMostOne token\n\n if existing.IsNone then\n let! _ =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"deploy\", Command = \"exec sleep 60\"), token)\n\n ()\n\n let! found = deploy |> Query.atMostOne token\n\n let! several =\n task {\n try\n let! _ = server |> Server.sessions |> Query.atMostOne token\n return \"one or none\"\n with :? InvalidOperationException ->\n return \"refused\"\n }\n\n printfn \"logged: %b\" logged.Found\n printfn \"named: %A\" (named |> Result.map (fun session -> session.Name))\n printfn \"tailing: %A\" [ for session in tailing -> session.Name ]\n printfn \"make panes: %A\" makePanes\n printfn \"error row: %A\" errorRow\n printfn \"active panes: %d\" active.Count\n printfn \"deploy: absent %b, then found %b\" existing.IsNone found.IsSome\n printfn \"at most one of every session: %s\" several\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"logged: true\nnamed: Ok \"build\"\ntailing: [\"logs\"]\nmake panes: Some 1\nerror row: Some 1\nactive panes: 2\ndeploy: absent true, then found true\nat most one of every session: refused\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":148,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-query-where"},{"id":"LibTmux.FSharp.Query.whereUnsafe","name":"whereUnsafe","kind":"function","parent":"LibTmux.FSharp.Query","modifiers":[],"signatures":[{"raw":"val whereUnsafe: filter: UnsafeTmuxFilter -> query: Query<'T> -> Query<'T>","params":[{"name":"filter","type":"UnsafeTmuxFilter"},{"name":"query","type":"Query<'T>"}],"returns":"Query<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Adds a raw tmux filter, which tmux evaluates and nothing rechecks.","body":"A malformed or unknown token makes tmux keep no rows rather than report an error."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":152,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-query-whereunsafe"},{"id":"LibTmux.FSharp.Query.showing","name":"showing","kind":"function","parent":"LibTmux.FSharp.Query","modifiers":[],"signatures":[{"raw":"val showing: search: ScreenSearch -> query: Query -> Query","params":[{"name":"search","type":"ScreenSearch"},{"name":"query","type":"Query"}],"returns":"Query"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Keeps panes whose visible rows show the searched text.","examples":[{"lang":"console","intro":"Read sessions, windows and panes through one query vocabulary. tmux drops rows a filter cannot keep, every returned row is rechecked, and a screen search finds the pane showing a line. atMostOne finds an object or reports it absent, and refuses several. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/Queries.fs","code":"// fsharp-snippet: Queries\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-queries-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! build =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"build\", WindowName = \"make\", Command = \"/bin/sh\"),\n token\n )\n\n let! _ =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(\n Name = \"logs\",\n WindowName = \"tail\",\n Command = \"printf 'ERROR: disk full\\\\n'; exec sleep 60\"\n ),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n let! logs =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"logs\")\n |> Query.list token\n\n let! logPane = logs[0] |> Session.panes |> Query.list token\n\n let! logged = logPane[0] |> Pane.waitForText token (TimeSpan.FromSeconds 5.) \"ERROR:\"\n\n\n // tmux narrows each listing itself; every row is then rechecked.\n let! named =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.startsWith \"bu\")\n |> Query.exactlyOne token\n\n // A relation filter reads only the sessions whose windows can match.\n let! tailing =\n server\n |> Server.sessions\n |> Query.where (WindowFields.name |> Filter.eq \"tail\" |> Filter.any SessionFields.windows)\n |> Query.list token\n\n // Session and window scopes use the same functions.\n let! make =\n build\n |> Session.windows\n |> Query.where (WindowFields.name |> Filter.eq \"make\")\n |> Query.tryExactlyOne token\n\n // tryExactlyOne is None when no window, or several, matched.\n let! makePanes =\n task {\n match make with\n | Some window ->\n let! panes = window |> Window.panes |> Query.list token\n return Some panes.Count\n | None -> return None\n }\n\n // tmux searches each pane's visible rows, as find-window does.\n let! showingErrors =\n server\n |> Server.panes\n |> Query.showing (ScreenSearch.Text \"ERROR:\")\n |> Query.list token\n\n let! errorRow =\n showingErrors[0] |> Pane.findOnScreen token (ScreenSearch.Text \"disk full\")\n\n // A raw tmux filter is the escape hatch; nothing rechecks it.\n let! active =\n server\n |> Server.panes\n |> Query.whereUnsafe (UnsafeTmuxFilter \"#{pane_active}\")\n |> Query.list token\n\n // Find a session or create it: atMostOne is None only when nothing\n // matched, and raises when several do.\n let deploy =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"deploy\")\n\n let! existing = deploy |> Query.atMostOne token\n\n if existing.IsNone then\n let! _ =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"deploy\", Command = \"exec sleep 60\"), token)\n\n ()\n\n let! found = deploy |> Query.atMostOne token\n\n let! several =\n task {\n try\n let! _ = server |> Server.sessions |> Query.atMostOne token\n return \"one or none\"\n with :? InvalidOperationException ->\n return \"refused\"\n }\n\n printfn \"logged: %b\" logged.Found\n printfn \"named: %A\" (named |> Result.map (fun session -> session.Name))\n printfn \"tailing: %A\" [ for session in tailing -> session.Name ]\n printfn \"make panes: %A\" makePanes\n printfn \"error row: %A\" errorRow\n printfn \"active panes: %d\" active.Count\n printfn \"deploy: absent %b, then found %b\" existing.IsNone found.IsSome\n printfn \"at most one of every session: %s\" several\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"logged: true\nnamed: Ok \"build\"\ntailing: [\"logs\"]\nmake panes: Some 1\nerror row: Some 1\nactive panes: 2\ndeploy: absent true, then found true\nat most one of every session: refused\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":155,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-query-showing"},{"id":"LibTmux.FSharp.Query.list","name":"list","kind":"function","parent":"LibTmux.FSharp.Query","modifiers":[],"signatures":[{"raw":"val list: cancellationToken: CancellationToken -> query: Query<'T> -> Task>","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"query","type":"Query<'T>"}],"returns":"Task>","raises":[{"type":"LibTmux.TmuxVersionTooLowException","doc":"A raw client filter needs tmux 3.4."}]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Reads the matching objects in tmux's listing order.","body":"A filter over a relation reads a snapshot of only the sessions that can match.","examples":[{"lang":"console","intro":"Read current scalar listings from a private server. Each detached session has one window and pane; no clients are attached. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerListings.fs","code":"// fsharp-snippet: ServerListings\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-listings-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! _demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n let! windows = server |> Server.windows |> Query.list token\n let! panes = server |> Server.panes |> Query.list token\n let! clients = server |> Server.clients |> Query.list token\n\n for session in sessions do\n printfn \"Session: %s (%O)\" session.Name session.Id\n\n printfn \"Windows: %d; panes: %d; clients: %d\" windows.Count panes.Count clients.Count\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Session: demo ($0)\nSession: worker ($1)\nWindows: 2; panes: 2; clients: 0\n"},{"lang":"console","intro":"Read sessions, windows and panes through one query vocabulary. tmux drops rows a filter cannot keep, every returned row is rechecked, and a screen search finds the pane showing a line. atMostOne finds an object or reports it absent, and refuses several. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/Queries.fs","code":"// fsharp-snippet: Queries\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-queries-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! build =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"build\", WindowName = \"make\", Command = \"/bin/sh\"),\n token\n )\n\n let! _ =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(\n Name = \"logs\",\n WindowName = \"tail\",\n Command = \"printf 'ERROR: disk full\\\\n'; exec sleep 60\"\n ),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n let! logs =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"logs\")\n |> Query.list token\n\n let! logPane = logs[0] |> Session.panes |> Query.list token\n\n let! logged = logPane[0] |> Pane.waitForText token (TimeSpan.FromSeconds 5.) \"ERROR:\"\n\n\n // tmux narrows each listing itself; every row is then rechecked.\n let! named =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.startsWith \"bu\")\n |> Query.exactlyOne token\n\n // A relation filter reads only the sessions whose windows can match.\n let! tailing =\n server\n |> Server.sessions\n |> Query.where (WindowFields.name |> Filter.eq \"tail\" |> Filter.any SessionFields.windows)\n |> Query.list token\n\n // Session and window scopes use the same functions.\n let! make =\n build\n |> Session.windows\n |> Query.where (WindowFields.name |> Filter.eq \"make\")\n |> Query.tryExactlyOne token\n\n // tryExactlyOne is None when no window, or several, matched.\n let! makePanes =\n task {\n match make with\n | Some window ->\n let! panes = window |> Window.panes |> Query.list token\n return Some panes.Count\n | None -> return None\n }\n\n // tmux searches each pane's visible rows, as find-window does.\n let! showingErrors =\n server\n |> Server.panes\n |> Query.showing (ScreenSearch.Text \"ERROR:\")\n |> Query.list token\n\n let! errorRow =\n showingErrors[0] |> Pane.findOnScreen token (ScreenSearch.Text \"disk full\")\n\n // A raw tmux filter is the escape hatch; nothing rechecks it.\n let! active =\n server\n |> Server.panes\n |> Query.whereUnsafe (UnsafeTmuxFilter \"#{pane_active}\")\n |> Query.list token\n\n // Find a session or create it: atMostOne is None only when nothing\n // matched, and raises when several do.\n let deploy =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"deploy\")\n\n let! existing = deploy |> Query.atMostOne token\n\n if existing.IsNone then\n let! _ =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"deploy\", Command = \"exec sleep 60\"), token)\n\n ()\n\n let! found = deploy |> Query.atMostOne token\n\n let! several =\n task {\n try\n let! _ = server |> Server.sessions |> Query.atMostOne token\n return \"one or none\"\n with :? InvalidOperationException ->\n return \"refused\"\n }\n\n printfn \"logged: %b\" logged.Found\n printfn \"named: %A\" (named |> Result.map (fun session -> session.Name))\n printfn \"tailing: %A\" [ for session in tailing -> session.Name ]\n printfn \"make panes: %A\" makePanes\n printfn \"error row: %A\" errorRow\n printfn \"active panes: %d\" active.Count\n printfn \"deploy: absent %b, then found %b\" existing.IsNone found.IsSome\n printfn \"at most one of every session: %s\" several\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"logged: true\nnamed: Ok \"build\"\ntailing: [\"logs\"]\nmake panes: Some 1\nerror row: Some 1\nactive panes: 2\ndeploy: absent true, then found true\nat most one of every session: refused\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":160,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-query-list"},{"id":"LibTmux.FSharp.Query.exactlyOne","name":"exactlyOne","kind":"function","parent":"LibTmux.FSharp.Query","modifiers":[],"signatures":[{"raw":"val exactlyOne: cancellationToken: CancellationToken -> query: Query<'T> -> Task>","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"query","type":"Query<'T>"}],"returns":"Task>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Reads the sole match, or why there is not exactly one.","examples":[{"lang":"console","intro":"Read sessions, windows and panes through one query vocabulary. tmux drops rows a filter cannot keep, every returned row is rechecked, and a screen search finds the pane showing a line. atMostOne finds an object or reports it absent, and refuses several. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/Queries.fs","code":"// fsharp-snippet: Queries\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-queries-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! build =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"build\", WindowName = \"make\", Command = \"/bin/sh\"),\n token\n )\n\n let! _ =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(\n Name = \"logs\",\n WindowName = \"tail\",\n Command = \"printf 'ERROR: disk full\\\\n'; exec sleep 60\"\n ),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n let! logs =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"logs\")\n |> Query.list token\n\n let! logPane = logs[0] |> Session.panes |> Query.list token\n\n let! logged = logPane[0] |> Pane.waitForText token (TimeSpan.FromSeconds 5.) \"ERROR:\"\n\n\n // tmux narrows each listing itself; every row is then rechecked.\n let! named =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.startsWith \"bu\")\n |> Query.exactlyOne token\n\n // A relation filter reads only the sessions whose windows can match.\n let! tailing =\n server\n |> Server.sessions\n |> Query.where (WindowFields.name |> Filter.eq \"tail\" |> Filter.any SessionFields.windows)\n |> Query.list token\n\n // Session and window scopes use the same functions.\n let! make =\n build\n |> Session.windows\n |> Query.where (WindowFields.name |> Filter.eq \"make\")\n |> Query.tryExactlyOne token\n\n // tryExactlyOne is None when no window, or several, matched.\n let! makePanes =\n task {\n match make with\n | Some window ->\n let! panes = window |> Window.panes |> Query.list token\n return Some panes.Count\n | None -> return None\n }\n\n // tmux searches each pane's visible rows, as find-window does.\n let! showingErrors =\n server\n |> Server.panes\n |> Query.showing (ScreenSearch.Text \"ERROR:\")\n |> Query.list token\n\n let! errorRow =\n showingErrors[0] |> Pane.findOnScreen token (ScreenSearch.Text \"disk full\")\n\n // A raw tmux filter is the escape hatch; nothing rechecks it.\n let! active =\n server\n |> Server.panes\n |> Query.whereUnsafe (UnsafeTmuxFilter \"#{pane_active}\")\n |> Query.list token\n\n // Find a session or create it: atMostOne is None only when nothing\n // matched, and raises when several do.\n let deploy =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"deploy\")\n\n let! existing = deploy |> Query.atMostOne token\n\n if existing.IsNone then\n let! _ =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"deploy\", Command = \"exec sleep 60\"), token)\n\n ()\n\n let! found = deploy |> Query.atMostOne token\n\n let! several =\n task {\n try\n let! _ = server |> Server.sessions |> Query.atMostOne token\n return \"one or none\"\n with :? InvalidOperationException ->\n return \"refused\"\n }\n\n printfn \"logged: %b\" logged.Found\n printfn \"named: %A\" (named |> Result.map (fun session -> session.Name))\n printfn \"tailing: %A\" [ for session in tailing -> session.Name ]\n printfn \"make panes: %A\" makePanes\n printfn \"error row: %A\" errorRow\n printfn \"active panes: %d\" active.Count\n printfn \"deploy: absent %b, then found %b\" existing.IsNone found.IsSome\n printfn \"at most one of every session: %s\" several\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"logged: true\nnamed: Ok \"build\"\ntailing: [\"logs\"]\nmake panes: Some 1\nerror row: Some 1\nactive panes: 2\ndeploy: absent true, then found true\nat most one of every session: refused\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":163,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-query-exactlyone"},{"id":"LibTmux.FSharp.Query.tryExactlyOne","name":"tryExactlyOne","kind":"function","parent":"LibTmux.FSharp.Query","modifiers":[],"signatures":[{"raw":"val tryExactlyOne: cancellationToken: CancellationToken -> query: Query<'T> -> Task<'T option>","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"query","type":"Query<'T>"}],"returns":"Task<'T option>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Reads the sole match, or None when there are none or several.","body":"As FSharp.Core's Seq.tryExactlyOne, None does not say nothing\nmatched. To find an object or create it when absent, use atMostOne.","examples":[{"lang":"console","intro":"Read sessions, windows and panes through one query vocabulary. tmux drops rows a filter cannot keep, every returned row is rechecked, and a screen search finds the pane showing a line. atMostOne finds an object or reports it absent, and refuses several. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/Queries.fs","code":"// fsharp-snippet: Queries\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-queries-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! build =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"build\", WindowName = \"make\", Command = \"/bin/sh\"),\n token\n )\n\n let! _ =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(\n Name = \"logs\",\n WindowName = \"tail\",\n Command = \"printf 'ERROR: disk full\\\\n'; exec sleep 60\"\n ),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n let! logs =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"logs\")\n |> Query.list token\n\n let! logPane = logs[0] |> Session.panes |> Query.list token\n\n let! logged = logPane[0] |> Pane.waitForText token (TimeSpan.FromSeconds 5.) \"ERROR:\"\n\n\n // tmux narrows each listing itself; every row is then rechecked.\n let! named =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.startsWith \"bu\")\n |> Query.exactlyOne token\n\n // A relation filter reads only the sessions whose windows can match.\n let! tailing =\n server\n |> Server.sessions\n |> Query.where (WindowFields.name |> Filter.eq \"tail\" |> Filter.any SessionFields.windows)\n |> Query.list token\n\n // Session and window scopes use the same functions.\n let! make =\n build\n |> Session.windows\n |> Query.where (WindowFields.name |> Filter.eq \"make\")\n |> Query.tryExactlyOne token\n\n // tryExactlyOne is None when no window, or several, matched.\n let! makePanes =\n task {\n match make with\n | Some window ->\n let! panes = window |> Window.panes |> Query.list token\n return Some panes.Count\n | None -> return None\n }\n\n // tmux searches each pane's visible rows, as find-window does.\n let! showingErrors =\n server\n |> Server.panes\n |> Query.showing (ScreenSearch.Text \"ERROR:\")\n |> Query.list token\n\n let! errorRow =\n showingErrors[0] |> Pane.findOnScreen token (ScreenSearch.Text \"disk full\")\n\n // A raw tmux filter is the escape hatch; nothing rechecks it.\n let! active =\n server\n |> Server.panes\n |> Query.whereUnsafe (UnsafeTmuxFilter \"#{pane_active}\")\n |> Query.list token\n\n // Find a session or create it: atMostOne is None only when nothing\n // matched, and raises when several do.\n let deploy =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"deploy\")\n\n let! existing = deploy |> Query.atMostOne token\n\n if existing.IsNone then\n let! _ =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"deploy\", Command = \"exec sleep 60\"), token)\n\n ()\n\n let! found = deploy |> Query.atMostOne token\n\n let! several =\n task {\n try\n let! _ = server |> Server.sessions |> Query.atMostOne token\n return \"one or none\"\n with :? InvalidOperationException ->\n return \"refused\"\n }\n\n printfn \"logged: %b\" logged.Found\n printfn \"named: %A\" (named |> Result.map (fun session -> session.Name))\n printfn \"tailing: %A\" [ for session in tailing -> session.Name ]\n printfn \"make panes: %A\" makePanes\n printfn \"error row: %A\" errorRow\n printfn \"active panes: %d\" active.Count\n printfn \"deploy: absent %b, then found %b\" existing.IsNone found.IsSome\n printfn \"at most one of every session: %s\" several\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"logged: true\nnamed: Ok \"build\"\ntailing: [\"logs\"]\nmake panes: Some 1\nerror row: Some 1\nactive panes: 2\ndeploy: absent true, then found true\nat most one of every session: refused\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":170,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-query-tryexactlyone"},{"id":"LibTmux.FSharp.Query.atMostOne","name":"atMostOne","kind":"function","parent":"LibTmux.FSharp.Query","modifiers":[],"signatures":[{"raw":"val atMostOne: cancellationToken: CancellationToken -> query: Query<'T> -> Task<'T option>","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"query","type":"Query<'T>"}],"returns":"Task<'T option>","raises":[{"type":"System.InvalidOperationException","doc":"tmux reported more than one match."}]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Reads the sole match, or None when nothing matches; several matches raise.","body":"None means tmux reported no match, so it suits finding an object or\ncreating it when absent. It returns an option rather than a\nResult, so it publishes under NativeAOT.","examples":[{"lang":"console","intro":"Read sessions, windows and panes through one query vocabulary. tmux drops rows a filter cannot keep, every returned row is rechecked, and a screen search finds the pane showing a line. atMostOne finds an object or reports it absent, and refuses several. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/Queries.fs","code":"// fsharp-snippet: Queries\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-queries-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! build =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"build\", WindowName = \"make\", Command = \"/bin/sh\"),\n token\n )\n\n let! _ =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(\n Name = \"logs\",\n WindowName = \"tail\",\n Command = \"printf 'ERROR: disk full\\\\n'; exec sleep 60\"\n ),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n let! logs =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"logs\")\n |> Query.list token\n\n let! logPane = logs[0] |> Session.panes |> Query.list token\n\n let! logged = logPane[0] |> Pane.waitForText token (TimeSpan.FromSeconds 5.) \"ERROR:\"\n\n\n // tmux narrows each listing itself; every row is then rechecked.\n let! named =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.startsWith \"bu\")\n |> Query.exactlyOne token\n\n // A relation filter reads only the sessions whose windows can match.\n let! tailing =\n server\n |> Server.sessions\n |> Query.where (WindowFields.name |> Filter.eq \"tail\" |> Filter.any SessionFields.windows)\n |> Query.list token\n\n // Session and window scopes use the same functions.\n let! make =\n build\n |> Session.windows\n |> Query.where (WindowFields.name |> Filter.eq \"make\")\n |> Query.tryExactlyOne token\n\n // tryExactlyOne is None when no window, or several, matched.\n let! makePanes =\n task {\n match make with\n | Some window ->\n let! panes = window |> Window.panes |> Query.list token\n return Some panes.Count\n | None -> return None\n }\n\n // tmux searches each pane's visible rows, as find-window does.\n let! showingErrors =\n server\n |> Server.panes\n |> Query.showing (ScreenSearch.Text \"ERROR:\")\n |> Query.list token\n\n let! errorRow =\n showingErrors[0] |> Pane.findOnScreen token (ScreenSearch.Text \"disk full\")\n\n // A raw tmux filter is the escape hatch; nothing rechecks it.\n let! active =\n server\n |> Server.panes\n |> Query.whereUnsafe (UnsafeTmuxFilter \"#{pane_active}\")\n |> Query.list token\n\n // Find a session or create it: atMostOne is None only when nothing\n // matched, and raises when several do.\n let deploy =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"deploy\")\n\n let! existing = deploy |> Query.atMostOne token\n\n if existing.IsNone then\n let! _ =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"deploy\", Command = \"exec sleep 60\"), token)\n\n ()\n\n let! found = deploy |> Query.atMostOne token\n\n let! several =\n task {\n try\n let! _ = server |> Server.sessions |> Query.atMostOne token\n return \"one or none\"\n with :? InvalidOperationException ->\n return \"refused\"\n }\n\n printfn \"logged: %b\" logged.Found\n printfn \"named: %A\" (named |> Result.map (fun session -> session.Name))\n printfn \"tailing: %A\" [ for session in tailing -> session.Name ]\n printfn \"make panes: %A\" makePanes\n printfn \"error row: %A\" errorRow\n printfn \"active panes: %d\" active.Count\n printfn \"deploy: absent %b, then found %b\" existing.IsNone found.IsSome\n printfn \"at most one of every session: %s\" several\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"logged: true\nnamed: Ok \"build\"\ntailing: [\"logs\"]\nmake panes: Some 1\nerror row: Some 1\nactive panes: 2\ndeploy: absent true, then found true\nat most one of every session: refused\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":179,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-query-atmostone"},{"id":"LibTmux.FSharp.Query.matching","name":"matching","kind":"function","parent":"LibTmux.FSharp.Query","modifiers":[],"signatures":[{"raw":"val matching: filter: Filter<'T> -> source: seq<'T> -> IReadOnlyList<'T>","params":[{"name":"filter","type":"Filter<'T>"},{"name":"source","type":"seq<'T>"}],"returns":"IReadOnlyList<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Filters captured objects locally, preserving input order and multiplicity.","examples":[{"lang":"console","intro":"Compare native sequence filtering with portable F# filters. Capture the hierarchy before following pane and window relations; listing alone does not capture children. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerFilters.fs","code":"// fsharp-snippet: ServerFilters\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-filters-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n\n let nativeMatches =\n sessions\n |> Seq.filter (fun session -> session.Name.StartsWith(\"de\", StringComparison.Ordinal))\n |> Seq.toList\n\n let portableMatches =\n sessions |> Query.matching (Filter.startsWith \"de\" SessionFields.name)\n\n let! windows = server |> Server.windows |> Query.list token\n\n let matchingWindows =\n windows |> Query.matching (Filter.eq \"shell\" WindowFields.name)\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let demoSession =\n captured.Sessions |> Seq.find (fun session -> session.Id = demo.Value.Id)\n\n let demoPane =\n demoSession.Windows\n |> Seq.collect (fun window -> window.Panes)\n |> Seq.exactlyOne\n\n let paneFilter = Filter.eq demoPane.Id PaneFields.id\n let matchingPanes = captured.Panes |> Query.matching paneFilter\n\n let hasDemoPane =\n paneFilter |> Filter.any WindowFields.panes |> Filter.any SessionFields.windows\n\n let matchingParents = captured.Sessions |> Query.matching hasDemoPane\n\n use! _control = server |> Control.enter token\n let! clients = server |> Server.clients |> Query.list token\n\n let controlClients =\n clients |> Query.matching (Filter.eq true ClientFields.controlMode)\n\n let names (sessions: seq) =\n [ for session in sessions -> session.Name ]\n\n printfn \"native: %A\" (names nativeMatches)\n printfn \"portable: %A\" (names portableMatches)\n printfn \"windows: %A\" [ for window in matchingWindows -> window.Name ]\n printfn \"panes: %d\" matchingPanes.Count\n printfn \"parents: %A\" (names matchingParents)\n printfn \"control clients: %d\" controlClients.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"native: [\"demo\"]\nportable: [\"demo\"]\nwindows: [\"shell\"]\npanes: 1\nparents: [\"demo\"]\ncontrol clients: 1\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":182,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-query-matching"},{"id":"LibTmux.FSharp.SessionFields","name":"SessionFields","kind":"module","modifiers":[],"signatures":[{"raw":"module SessionFields","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Provides supported session fields and relations for portable filters."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":186,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionfields"},{"id":"LibTmux.FSharp.SessionFields.name","name":"name","kind":"constant","parent":"LibTmux.FSharp.SessionFields","modifiers":[],"signatures":[{"raw":"val name: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the session name."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":188,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionfields-name"},{"id":"LibTmux.FSharp.SessionFields.id","name":"id","kind":"constant","parent":"LibTmux.FSharp.SessionFields","modifiers":[],"signatures":[{"raw":"val id: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the typed session ID."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":190,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionfields-id"},{"id":"LibTmux.FSharp.SessionFields.attached","name":"attached","kind":"constant","parent":"LibTmux.FSharp.SessionFields","modifiers":[],"signatures":[{"raw":"val attached: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies whether the captured session has attached clients."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":192,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionfields-attached"},{"id":"LibTmux.FSharp.SessionFields.windowCount","name":"windowCount","kind":"constant","parent":"LibTmux.FSharp.SessionFields","modifiers":[],"signatures":[{"raw":"val windowCount: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the number of windows linked into the session."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":194,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionfields-windowcount"},{"id":"LibTmux.FSharp.SessionFields.windows","name":"windows","kind":"constant","parent":"LibTmux.FSharp.SessionFields","modifiers":[],"signatures":[{"raw":"val windows: Relation","params":[],"returns":"Relation"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies captured window placements within the session."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":196,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionfields-windows"},{"id":"LibTmux.FSharp.WindowFields","name":"WindowFields","kind":"module","modifiers":[],"signatures":[{"raw":"module WindowFields","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Provides supported window fields and relations for portable filters."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":200,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowfields"},{"id":"LibTmux.FSharp.WindowFields.name","name":"name","kind":"constant","parent":"LibTmux.FSharp.WindowFields","modifiers":[],"signatures":[{"raw":"val name: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the window name."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":202,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowfields-name"},{"id":"LibTmux.FSharp.WindowFields.id","name":"id","kind":"constant","parent":"LibTmux.FSharp.WindowFields","modifiers":[],"signatures":[{"raw":"val id: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the typed physical window ID."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":204,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowfields-id"},{"id":"LibTmux.FSharp.WindowFields.index","name":"index","kind":"constant","parent":"LibTmux.FSharp.WindowFields","modifiers":[],"signatures":[{"raw":"val index: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies where the window sits in its session."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":206,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowfields-index"},{"id":"LibTmux.FSharp.WindowFields.width","name":"width","kind":"constant","parent":"LibTmux.FSharp.WindowFields","modifiers":[],"signatures":[{"raw":"val width: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the window's width in cells."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":208,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowfields-width"},{"id":"LibTmux.FSharp.WindowFields.height","name":"height","kind":"constant","parent":"LibTmux.FSharp.WindowFields","modifiers":[],"signatures":[{"raw":"val height: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the window's height in cells."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":210,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowfields-height"},{"id":"LibTmux.FSharp.WindowFields.paneCount","name":"paneCount","kind":"constant","parent":"LibTmux.FSharp.WindowFields","modifiers":[],"signatures":[{"raw":"val paneCount: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the number of panes in the window."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":212,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowfields-panecount"},{"id":"LibTmux.FSharp.WindowFields.panes","name":"panes","kind":"constant","parent":"LibTmux.FSharp.WindowFields","modifiers":[],"signatures":[{"raw":"val panes: Relation","params":[],"returns":"Relation"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies panes captured through this window placement."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":214,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowfields-panes"},{"id":"LibTmux.FSharp.PaneFields","name":"PaneFields","kind":"module","modifiers":[],"signatures":[{"raw":"module PaneFields","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Provides supported pane fields for portable filters."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":218,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields"},{"id":"LibTmux.FSharp.PaneFields.currentCommand","name":"currentCommand","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val currentCommand: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the captured command, including a captured unavailable value."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":220,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-currentcommand"},{"id":"LibTmux.FSharp.PaneFields.id","name":"id","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val id: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the typed pane ID."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":222,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-id"},{"id":"LibTmux.FSharp.PaneFields.index","name":"index","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val index: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the pane's position in its window."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":224,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-index"},{"id":"LibTmux.FSharp.PaneFields.title","name":"title","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val title: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the pane's title, which a program running in it can set."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":226,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-title"},{"id":"LibTmux.FSharp.PaneFields.currentPath","name":"currentPath","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val currentPath: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the pane's working directory, as the text tmux reported."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":228,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-currentpath"},{"id":"LibTmux.FSharp.PaneFields.width","name":"width","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val width: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the pane's width in cells."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":230,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-width"},{"id":"LibTmux.FSharp.PaneFields.height","name":"height","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val height: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the pane's height in cells."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":232,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-height"},{"id":"LibTmux.FSharp.PaneFields.left","name":"left","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val left: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the column of the pane's left edge in its window."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":234,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-left"},{"id":"LibTmux.FSharp.PaneFields.top","name":"top","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val top: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the row of the pane's top edge in its window."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":236,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-top"},{"id":"LibTmux.FSharp.PaneFields.atTop","name":"atTop","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val atTop: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies whether the pane touches the top of its window."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":238,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-attop"},{"id":"LibTmux.FSharp.PaneFields.atBottom","name":"atBottom","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val atBottom: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies whether the pane touches the bottom of its window."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":240,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-atbottom"},{"id":"LibTmux.FSharp.PaneFields.atLeft","name":"atLeft","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val atLeft: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies whether the pane touches the left of its window."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":242,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-atleft"},{"id":"LibTmux.FSharp.PaneFields.atRight","name":"atRight","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val atRight: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies whether the pane touches the right of its window."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":244,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-atright"},{"id":"LibTmux.FSharp.ClientFields","name":"ClientFields","kind":"module","modifiers":[],"signatures":[{"raw":"module ClientFields","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Provides supported client fields for portable filters."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":248,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-clientfields"},{"id":"LibTmux.FSharp.ClientFields.name","name":"name","kind":"constant","parent":"LibTmux.FSharp.ClientFields","modifiers":[],"signatures":[{"raw":"val name: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the client name."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":250,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-clientfields-name"},{"id":"LibTmux.FSharp.ClientFields.controlMode","name":"controlMode","kind":"constant","parent":"LibTmux.FSharp.ClientFields","modifiers":[],"signatures":[{"raw":"val controlMode: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies whether the captured client uses control mode."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":252,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-clientfields-controlmode"},{"id":"LibTmux.FSharp.SplitSpec","name":"SplitSpec","kind":"struct","modifiers":[],"signatures":[{"raw":"type SplitSpec","params":[]},{"raw":"module SplitSpec","params":[]}],"namespaceImports":["LibTmux"],"doc":{"summary":"Describes a pane split off the pane created before it.","body":"Build one from SplitSpec.empty with a copy-and-update expression."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":7,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-splitspec"},{"id":"LibTmux.FSharp.SplitSpec.Direction","name":"Direction","kind":"property","parent":"LibTmux.FSharp.SplitSpec","modifiers":[],"signatures":[{"raw":"Direction: PaneDirection option","params":[],"returns":"PaneDirection option"}],"namespaceImports":["LibTmux"],"doc":{"summary":"Where the new pane goes, beside the pane before it; tmux puts it below when None."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":9,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-splitspec-direction"},{"id":"LibTmux.FSharp.SplitSpec.Command","name":"Command","kind":"property","parent":"LibTmux.FSharp.SplitSpec","modifiers":[],"signatures":[{"raw":"Command: string option","params":[],"returns":"string option"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The command the pane runs instead of the default shell."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":11,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-splitspec-command"},{"id":"LibTmux.FSharp.SplitSpec.Directory","name":"Directory","kind":"property","parent":"LibTmux.FSharp.SplitSpec","modifiers":[],"signatures":[{"raw":"Directory: string option","params":[],"returns":"string option"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The pane's working directory."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":13,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-splitspec-directory"},{"id":"LibTmux.FSharp.SplitSpec.Size","name":"Size","kind":"property","parent":"LibTmux.FSharp.SplitSpec","modifiers":[],"signatures":[{"raw":"Size: string option","params":[],"returns":"string option"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The pane's size, in cells, or with a percent sign as a share of the space split."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":15,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-splitspec-size"},{"id":"LibTmux.FSharp.SplitSpec.Environment","name":"Environment","kind":"property","parent":"LibTmux.FSharp.SplitSpec","modifiers":[],"signatures":[{"raw":"Environment: Map","params":[],"returns":"Map"}],"namespaceImports":["LibTmux"],"doc":{"summary":"Variables added to the pane's environment."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":17,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-splitspec-environment"},{"id":"LibTmux.FSharp.SplitSpec.ToString","name":"ToString","kind":"method","parent":"LibTmux.FSharp.SplitSpec","modifiers":[],"signatures":[{"raw":"member ToString: unit -> string","params":[{"name":"arg1","type":"unit"}],"returns":"string"}],"namespaceImports":["LibTmux"],"doc":{"summary":"Names the split by its command, without formatting through printf."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":22,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-splitspec-tostring"},{"id":"LibTmux.FSharp.WindowSpec","name":"WindowSpec","kind":"struct","modifiers":[],"signatures":[{"raw":"type WindowSpec","params":[]},{"raw":"module WindowSpec","params":[]}],"namespaceImports":["LibTmux"],"doc":{"summary":"Describes a window: its first pane, then each pane split off the one before.","body":"Build one from WindowSpec.named or WindowSpec.empty with a copy-and-update expression."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":26,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowspec"},{"id":"LibTmux.FSharp.WindowSpec.Name","name":"Name","kind":"property","parent":"LibTmux.FSharp.WindowSpec","modifiers":[],"signatures":[{"raw":"Name: string option","params":[],"returns":"string option"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The window's name; tmux names it after its command when None."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":28,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowspec-name"},{"id":"LibTmux.FSharp.WindowSpec.Command","name":"Command","kind":"property","parent":"LibTmux.FSharp.WindowSpec","modifiers":[],"signatures":[{"raw":"Command: string option","params":[],"returns":"string option"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The command the first pane runs instead of the default shell."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":30,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowspec-command"},{"id":"LibTmux.FSharp.WindowSpec.Directory","name":"Directory","kind":"property","parent":"LibTmux.FSharp.WindowSpec","modifiers":[],"signatures":[{"raw":"Directory: string option","params":[],"returns":"string option"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The first pane's working directory."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":32,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowspec-directory"},{"id":"LibTmux.FSharp.WindowSpec.Environment","name":"Environment","kind":"property","parent":"LibTmux.FSharp.WindowSpec","modifiers":[],"signatures":[{"raw":"Environment: Map","params":[],"returns":"Map"}],"namespaceImports":["LibTmux"],"doc":{"summary":"Variables added to the first pane's environment; a session's first window takes them from the session instead."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":34,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowspec-environment"},{"id":"LibTmux.FSharp.WindowSpec.Splits","name":"Splits","kind":"property","parent":"LibTmux.FSharp.WindowSpec","modifiers":[],"signatures":[{"raw":"Splits: SplitSpec list","params":[],"returns":"SplitSpec list"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The panes split off in order, each beside the pane before it."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":36,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowspec-splits"},{"id":"LibTmux.FSharp.WindowSpec.ToString","name":"ToString","kind":"method","parent":"LibTmux.FSharp.WindowSpec","modifiers":[],"signatures":[{"raw":"member ToString: unit -> string","params":[{"name":"arg1","type":"unit"}],"returns":"string"}],"namespaceImports":["LibTmux"],"doc":{"summary":"Names the window, without formatting through printf."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":41,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowspec-tostring"},{"id":"LibTmux.FSharp.SessionSpec","name":"SessionSpec","kind":"struct","modifiers":[],"signatures":[{"raw":"type SessionSpec","params":[]},{"raw":"module SessionSpec","params":[]}],"namespaceImports":["LibTmux"],"doc":{"summary":"Describes a session and its windows, for Server.newSession.","body":"tmux gives a new session one window, which the first WindowSpec\nbecomes; each later one is a window of its own. A session with no windows\nlisted gets tmux's single default window.","examples":[{"lang":"console","intro":"Create a session from F# records in one call: the first window is the one tmux makes with the session, and each split goes beside the pane before it. Add a window with a command chain, then read through a handle whose commands each get five seconds. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/BuildSession.fs","code":"// fsharp-snippet: BuildSession\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-build-session-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n // Describe the session, then create it in one call: the first window is\n // the one tmux makes with the session, and each split goes beside the\n // pane before it.\n let dev =\n { SessionSpec.named \"dev\" with\n Windows =\n [\n { WindowSpec.named \"editor\" with\n Command = Some \"exec sleep 60\"\n }\n { WindowSpec.named \"logs\" with\n Command = Some \"exec sleep 60\"\n Splits =\n [\n { SplitSpec.empty with\n Direction = Some PaneDirection.Right\n Command = Some \"exec sleep 60\"\n }\n { SplitSpec.empty with\n Command = Some \"exec sleep 60\"\n }\n ]\n }\n ]\n }\n\n let! session = owned.Value |> Server.newSession token dev\n\n // A chain runs in one tmux invocation; each step acts on what the one\n // before made.\n let! _ =\n owned.Value\n |> Chain.start\n |> Chain.newWindow session \"watch\"\n |> Chain.splitLeftRight\n |> Chain.sendLine \"exec sleep 60\"\n |> Chain.run token\n\n // Every command through this handle, and the handles taken from it,\n // gives tmux five seconds.\n let bounded = owned.Value |> Server.within (TimeSpan.FromSeconds 5.)\n let! windows = bounded |> Server.windows |> Query.list token\n\n for window in windows do\n let! panes = window |> Window.panes |> Query.list token\n printfn \"%s: %d panes\" window.Name panes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"editor: 1 panes\nlogs: 3 panes\nwatch: 2 panes\n"}]},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":49,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionspec"},{"id":"LibTmux.FSharp.SessionSpec.Name","name":"Name","kind":"property","parent":"LibTmux.FSharp.SessionSpec","modifiers":[],"signatures":[{"raw":"Name: string","params":[],"returns":"string"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The session's name."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":51,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionspec-name"},{"id":"LibTmux.FSharp.SessionSpec.Directory","name":"Directory","kind":"property","parent":"LibTmux.FSharp.SessionSpec","modifiers":[],"signatures":[{"raw":"Directory: string option","params":[],"returns":"string option"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The working directory of the session and its first window."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":53,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionspec-directory"},{"id":"LibTmux.FSharp.SessionSpec.Environment","name":"Environment","kind":"property","parent":"LibTmux.FSharp.SessionSpec","modifiers":[],"signatures":[{"raw":"Environment: Map","params":[],"returns":"Map"}],"namespaceImports":["LibTmux"],"doc":{"summary":"Variables added to the session's environment."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":55,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionspec-environment"},{"id":"LibTmux.FSharp.SessionSpec.Windows","name":"Windows","kind":"property","parent":"LibTmux.FSharp.SessionSpec","modifiers":[],"signatures":[{"raw":"Windows: WindowSpec list","params":[],"returns":"WindowSpec list"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The windows, in order; the first is the one tmux creates with the session."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":57,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionspec-windows"},{"id":"LibTmux.FSharp.SessionSpec.ToString","name":"ToString","kind":"method","parent":"LibTmux.FSharp.SessionSpec","modifiers":[],"signatures":[{"raw":"member ToString: unit -> string","params":[{"name":"arg1","type":"unit"}],"returns":"string"}],"namespaceImports":["LibTmux"],"doc":{"summary":"Names the session, without formatting through printf."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":62,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionspec-tostring"},{"id":"LibTmux.FSharp.SplitSpec.empty","name":"empty","kind":"constant","parent":"LibTmux.FSharp.SplitSpec","modifiers":[],"signatures":[{"raw":"val empty: SplitSpec","params":[],"returns":"SplitSpec"}],"namespaceImports":["LibTmux"],"doc":{"summary":"A split below the pane before it, running the default shell."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":68,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-splitspec-empty"},{"id":"LibTmux.FSharp.WindowSpec.empty","name":"empty","kind":"constant","parent":"LibTmux.FSharp.WindowSpec","modifiers":[],"signatures":[{"raw":"val empty: WindowSpec","params":[],"returns":"WindowSpec"}],"namespaceImports":["LibTmux"],"doc":{"summary":"A window tmux names after its command, running the default shell."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":74,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowspec-empty"},{"id":"LibTmux.FSharp.WindowSpec.named","name":"named","kind":"function","parent":"LibTmux.FSharp.WindowSpec","modifiers":[],"signatures":[{"raw":"val named: name: string -> WindowSpec","params":[{"name":"name","type":"string"}],"returns":"WindowSpec"}],"namespaceImports":["LibTmux"],"doc":{"summary":"A named window running the default shell."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":77,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowspec-named"},{"id":"LibTmux.FSharp.SessionSpec.named","name":"named","kind":"function","parent":"LibTmux.FSharp.SessionSpec","modifiers":[],"signatures":[{"raw":"val named: name: string -> SessionSpec","params":[{"name":"name","type":"string"}],"returns":"SessionSpec"}],"namespaceImports":["LibTmux"],"doc":{"summary":"A named session with tmux's single default window."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":83,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionspec-named"},{"id":"LibTmux.FSharp.Server","name":"Server","kind":"module","modifiers":[],"signatures":[{"raw":"module Server","params":[]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Starts server reads and queries with the caller's cancellation token.","examples":[{"lang":"console","intro":"Create owned session and window scopes with the core LibTmux API, then split a pane with the F# Pane.split helper. Disposing the owned window also stops its split panes. For F# session descriptions, use Server.newSession with SessionSpec. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/CreateWindowPane.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-create-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! session =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\"),\n token\n )\n\n use! window =\n session.Value.CreateOwnedWindowAsync(NewWindowRequest(Name = \"editor\", Command = \"/bin/cat\"), token)\n\n let! panes = window.Value.GetPanesAsync(token)\n let original = panes |> Seq.exactlyOne\n\n let! added =\n original\n |> Pane.split token (SplitPaneRequest(Direction = PaneDirection.Right, Command = \"/bin/cat\"))\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! windows = server |> Server.windows |> Query.list token\n let! allPanes = server |> Server.panes |> Query.list token\n\n if windows.Count <> 2 || allPanes.Count <> 3 || added.Id = original.Id then\n failwith \"Expected two windows and three distinct panes.\"\n\n printfn \"Created session demo and window editor.\"\n printfn \"Windows: %d; panes: %d\" windows.Count allPanes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Created session demo and window editor.\nWindows: 2; panes: 3\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":11,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server"},{"id":"LibTmux.FSharp.Server.sessions","name":"sessions","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val sessions: server: LibTmux.Server -> Query","params":[{"name":"server","type":"LibTmux.Server"}],"returns":"Query"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Queries every session.","body":"Child windows and panes require an explicit capture at the corresponding depth.","examples":[{"lang":"console","intro":"Read current scalar listings from a private server. Each detached session has one window and pane; no clients are attached. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerListings.fs","code":"// fsharp-snippet: ServerListings\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-listings-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! _demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n let! windows = server |> Server.windows |> Query.list token\n let! panes = server |> Server.panes |> Query.list token\n let! clients = server |> Server.clients |> Query.list token\n\n for session in sessions do\n printfn \"Session: %s (%O)\" session.Name session.Id\n\n printfn \"Windows: %d; panes: %d; clients: %d\" windows.Count panes.Count clients.Count\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Session: demo ($0)\nSession: worker ($1)\nWindows: 2; panes: 2; clients: 0\n"},{"lang":"console","intro":"Read sessions, windows and panes through one query vocabulary. tmux drops rows a filter cannot keep, every returned row is rechecked, and a screen search finds the pane showing a line. atMostOne finds an object or reports it absent, and refuses several. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/Queries.fs","code":"// fsharp-snippet: Queries\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-queries-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! build =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"build\", WindowName = \"make\", Command = \"/bin/sh\"),\n token\n )\n\n let! _ =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(\n Name = \"logs\",\n WindowName = \"tail\",\n Command = \"printf 'ERROR: disk full\\\\n'; exec sleep 60\"\n ),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n let! logs =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"logs\")\n |> Query.list token\n\n let! logPane = logs[0] |> Session.panes |> Query.list token\n\n let! logged = logPane[0] |> Pane.waitForText token (TimeSpan.FromSeconds 5.) \"ERROR:\"\n\n\n // tmux narrows each listing itself; every row is then rechecked.\n let! named =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.startsWith \"bu\")\n |> Query.exactlyOne token\n\n // A relation filter reads only the sessions whose windows can match.\n let! tailing =\n server\n |> Server.sessions\n |> Query.where (WindowFields.name |> Filter.eq \"tail\" |> Filter.any SessionFields.windows)\n |> Query.list token\n\n // Session and window scopes use the same functions.\n let! make =\n build\n |> Session.windows\n |> Query.where (WindowFields.name |> Filter.eq \"make\")\n |> Query.tryExactlyOne token\n\n // tryExactlyOne is None when no window, or several, matched.\n let! makePanes =\n task {\n match make with\n | Some window ->\n let! panes = window |> Window.panes |> Query.list token\n return Some panes.Count\n | None -> return None\n }\n\n // tmux searches each pane's visible rows, as find-window does.\n let! showingErrors =\n server\n |> Server.panes\n |> Query.showing (ScreenSearch.Text \"ERROR:\")\n |> Query.list token\n\n let! errorRow =\n showingErrors[0] |> Pane.findOnScreen token (ScreenSearch.Text \"disk full\")\n\n // A raw tmux filter is the escape hatch; nothing rechecks it.\n let! active =\n server\n |> Server.panes\n |> Query.whereUnsafe (UnsafeTmuxFilter \"#{pane_active}\")\n |> Query.list token\n\n // Find a session or create it: atMostOne is None only when nothing\n // matched, and raises when several do.\n let deploy =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"deploy\")\n\n let! existing = deploy |> Query.atMostOne token\n\n if existing.IsNone then\n let! _ =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"deploy\", Command = \"exec sleep 60\"), token)\n\n ()\n\n let! found = deploy |> Query.atMostOne token\n\n let! several =\n task {\n try\n let! _ = server |> Server.sessions |> Query.atMostOne token\n return \"one or none\"\n with :? InvalidOperationException ->\n return \"refused\"\n }\n\n printfn \"logged: %b\" logged.Found\n printfn \"named: %A\" (named |> Result.map (fun session -> session.Name))\n printfn \"tailing: %A\" [ for session in tailing -> session.Name ]\n printfn \"make panes: %A\" makePanes\n printfn \"error row: %A\" errorRow\n printfn \"active panes: %d\" active.Count\n printfn \"deploy: absent %b, then found %b\" existing.IsNone found.IsSome\n printfn \"at most one of every session: %s\" several\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"logged: true\nnamed: Ok \"build\"\ntailing: [\"logs\"]\nmake panes: Some 1\nerror row: Some 1\nactive panes: 2\ndeploy: absent true, then found true\nat most one of every session: refused\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":14,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-sessions"},{"id":"LibTmux.FSharp.Server.windows","name":"windows","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val windows: server: LibTmux.Server -> Query","params":[{"name":"server","type":"LibTmux.Server"}],"returns":"Query"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Queries window placements across all sessions.","body":"A linked window appears once for each session it is linked into.","examples":[{"lang":"console","intro":"Read current scalar listings from a private server. Each detached session has one window and pane; no clients are attached. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerListings.fs","code":"// fsharp-snippet: ServerListings\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-listings-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! _demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n let! windows = server |> Server.windows |> Query.list token\n let! panes = server |> Server.panes |> Query.list token\n let! clients = server |> Server.clients |> Query.list token\n\n for session in sessions do\n printfn \"Session: %s (%O)\" session.Name session.Id\n\n printfn \"Windows: %d; panes: %d; clients: %d\" windows.Count panes.Count clients.Count\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Session: demo ($0)\nSession: worker ($1)\nWindows: 2; panes: 2; clients: 0\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":18,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-windows"},{"id":"LibTmux.FSharp.Server.panes","name":"panes","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val panes: server: LibTmux.Server -> Query","params":[{"name":"server","type":"LibTmux.Server"}],"returns":"Query"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Queries every pane.","examples":[{"lang":"console","intro":"Read current scalar listings from a private server. Each detached session has one window and pane; no clients are attached. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerListings.fs","code":"// fsharp-snippet: ServerListings\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-listings-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! _demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n let! windows = server |> Server.windows |> Query.list token\n let! panes = server |> Server.panes |> Query.list token\n let! clients = server |> Server.clients |> Query.list token\n\n for session in sessions do\n printfn \"Session: %s (%O)\" session.Name session.Id\n\n printfn \"Windows: %d; panes: %d; clients: %d\" windows.Count panes.Count clients.Count\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Session: demo ($0)\nSession: worker ($1)\nWindows: 2; panes: 2; clients: 0\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":21,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-panes"},{"id":"LibTmux.FSharp.Server.clients","name":"clients","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val clients: server: LibTmux.Server -> Query","params":[{"name":"server","type":"LibTmux.Server"}],"returns":"Query"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Queries attached clients.","body":"tmux narrows a filtered client listing only from tmux 3.4; older tmux lists every client.","examples":[{"lang":"console","intro":"Read current scalar listings from a private server. Each detached session has one window and pane; no clients are attached. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerListings.fs","code":"// fsharp-snippet: ServerListings\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-listings-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! _demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n let! windows = server |> Server.windows |> Query.list token\n let! panes = server |> Server.panes |> Query.list token\n let! clients = server |> Server.clients |> Query.list token\n\n for session in sessions do\n printfn \"Session: %s (%O)\" session.Name session.Id\n\n printfn \"Windows: %d; panes: %d; clients: %d\" windows.Count panes.Count clients.Count\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Session: demo ($0)\nSession: worker ($1)\nWindows: 2; panes: 2; clients: 0\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":25,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-clients"},{"id":"LibTmux.FSharp.Server.within","name":"within","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val within: timeout: TimeSpan -> server: LibTmux.Server -> LibTmux.Server","params":[{"name":"timeout","type":"TimeSpan"},{"name":"server","type":"LibTmux.Server"}],"returns":"LibTmux.Server","raises":[{"type":"System.ArgumentOutOfRangeException","doc":"The timeout does not run forward."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns the server with every command bounded by a timeout, for it and every handle taken from it.","body":"The handle shares the connection, so nothing starts or is verified again.\nA command that outlasts the bound fails as MayHaveRun; a caller's\nown cancellation still reads as cancellation.","examples":[{"lang":"console","intro":"Create a session from F# records in one call: the first window is the one tmux makes with the session, and each split goes beside the pane before it. Add a window with a command chain, then read through a handle whose commands each get five seconds. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/BuildSession.fs","code":"// fsharp-snippet: BuildSession\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-build-session-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n // Describe the session, then create it in one call: the first window is\n // the one tmux makes with the session, and each split goes beside the\n // pane before it.\n let dev =\n { SessionSpec.named \"dev\" with\n Windows =\n [\n { WindowSpec.named \"editor\" with\n Command = Some \"exec sleep 60\"\n }\n { WindowSpec.named \"logs\" with\n Command = Some \"exec sleep 60\"\n Splits =\n [\n { SplitSpec.empty with\n Direction = Some PaneDirection.Right\n Command = Some \"exec sleep 60\"\n }\n { SplitSpec.empty with\n Command = Some \"exec sleep 60\"\n }\n ]\n }\n ]\n }\n\n let! session = owned.Value |> Server.newSession token dev\n\n // A chain runs in one tmux invocation; each step acts on what the one\n // before made.\n let! _ =\n owned.Value\n |> Chain.start\n |> Chain.newWindow session \"watch\"\n |> Chain.splitLeftRight\n |> Chain.sendLine \"exec sleep 60\"\n |> Chain.run token\n\n // Every command through this handle, and the handles taken from it,\n // gives tmux five seconds.\n let bounded = owned.Value |> Server.within (TimeSpan.FromSeconds 5.)\n let! windows = bounded |> Server.windows |> Query.list token\n\n for window in windows do\n let! panes = window |> Window.panes |> Query.list token\n printfn \"%s: %d panes\" window.Name panes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"editor: 1 panes\nlogs: 3 panes\nwatch: 2 panes\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":34,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-within"},{"id":"LibTmux.FSharp.Server.newSession","name":"newSession","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val newSession:\n cancellationToken: CancellationToken -> spec: SessionSpec -> server: LibTmux.Server -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"spec","type":"SessionSpec"},{"name":"server","type":"LibTmux.Server"}],"returns":"Task","returnsDoc":"The session, read again after its windows and panes exist.","raises":[{"type":"System.ArgumentException","doc":"The session and its first window name different directories, or the\nfirst window sets an environment."},{"type":"LibTmux.TmuxSessionExistsException","doc":"The name is already taken."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Creates a session as described: its windows, and each window's splits.","body":"tmux gives a new session one window, so the first WindowSpec is\nthat window: its name, command and directory go into the command that\ncreates the session. tmux sets environment there for the whole session,\nso the first window's must be empty; put it in the session's. Each\nlater spec creates a window of its own. A window's splits are made in\norder, each beside the pane before it.\n\nSteps run one after another; a failure part way leaves what was already\ncreated, so kill the session by name to clean up.","examples":[{"lang":"console","intro":"Create a session from F# records in one call: the first window is the one tmux makes with the session, and each split goes beside the pane before it. Add a window with a command chain, then read through a handle whose commands each get five seconds. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/BuildSession.fs","code":"// fsharp-snippet: BuildSession\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-build-session-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n // Describe the session, then create it in one call: the first window is\n // the one tmux makes with the session, and each split goes beside the\n // pane before it.\n let dev =\n { SessionSpec.named \"dev\" with\n Windows =\n [\n { WindowSpec.named \"editor\" with\n Command = Some \"exec sleep 60\"\n }\n { WindowSpec.named \"logs\" with\n Command = Some \"exec sleep 60\"\n Splits =\n [\n { SplitSpec.empty with\n Direction = Some PaneDirection.Right\n Command = Some \"exec sleep 60\"\n }\n { SplitSpec.empty with\n Command = Some \"exec sleep 60\"\n }\n ]\n }\n ]\n }\n\n let! session = owned.Value |> Server.newSession token dev\n\n // A chain runs in one tmux invocation; each step acts on what the one\n // before made.\n let! _ =\n owned.Value\n |> Chain.start\n |> Chain.newWindow session \"watch\"\n |> Chain.splitLeftRight\n |> Chain.sendLine \"exec sleep 60\"\n |> Chain.run token\n\n // Every command through this handle, and the handles taken from it,\n // gives tmux five seconds.\n let bounded = owned.Value |> Server.within (TimeSpan.FromSeconds 5.)\n let! windows = bounded |> Server.windows |> Query.list token\n\n for window in windows do\n let! panes = window |> Window.panes |> Query.list token\n printfn \"%s: %d panes\" window.Name panes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"editor: 1 panes\nlogs: 3 panes\nwatch: 2 panes\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":57,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-newsession"},{"id":"LibTmux.FSharp.Server.capture","name":"capture","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val capture:\n cancellationToken: CancellationToken -> depth: SnapshotDepth -> server: LibTmux.Server -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"depth","type":"SnapshotDepth"},{"name":"server","type":"LibTmux.Server"}],"returns":"Task"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns a new server handle captured to the requested depth.","body":"Acquisition is not atomic; retained handles do not refresh themselves.","examples":[{"lang":"console","intro":"Pattern match CaptureState before reading relations or active entities, and option before using nullable pane fields. Capturing returns a fresh handle; a captured empty relation is different from an uncaptured one. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SnapshotAccess.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-snapshot-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! server =\n task {\n use! session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"Sessions have not been captured.\"\n | Captured _ -> failwith \"Connecting must not capture the hierarchy.\"\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let capturedSession =\n match captured.Sessions |> Snapshot.relation with\n | Captured sessions -> sessions |> Seq.exactlyOne\n | Uncaptured _ -> failwith \"The requested sessions were not captured.\"\n\n let pane =\n match capturedSession.ActivePane |> Snapshot.value with\n | Captured pane -> pane\n | Uncaptured _ -> failwith \"The active pane was not captured.\"\n\n match pane |> Pane.currentPath, pane |> Pane.currentCommand with\n | Some _, Some _ -> printfn \"The captured active pane has a path and command.\"\n | _ -> failwith \"The running pane should report its path and command.\"\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"The original handle is still uncaptured.\"\n | Captured _ -> failwith \"Capturing must return a new immutable handle.\"\n\n // Keep this private daemon alive after its only owned session is disposed.\n let! result =\n server.ExecuteCommandAsync([| \"set-option\"; \"-s\"; \"exit-empty\"; \"off\" |], token)\n\n if result.ExitCode <> 0 then\n failwithf \"Could not keep the empty server alive: %A\" result.StandardErrorLines\n\n return server\n }\n\n let! empty = server |> Server.capture token SnapshotDepth.Sessions\n\n match empty.Sessions |> Snapshot.relation with\n | Captured sessions when sessions.Count = 0 -> printfn \"Captured sessions can be empty.\"\n | _ -> failwith \"An empty captured relation must be distinct from an uncaptured relation.\"\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":62,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-capture"},{"id":"LibTmux.FSharp.Server.tryFindSession","name":"tryFindSession","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val tryFindSession:\n cancellationToken: CancellationToken -> id: SessionId -> server: LibTmux.Server -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"id","type":"SessionId"},{"name":"server","type":"LibTmux.Server"}],"returns":"Task"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns a session or None after a successful lookup establishes absence.","body":"Connection, command and cancellation errors propagate unchanged.","examples":[{"lang":"console","intro":"Match successful lookups with Some and missing entities with None. The control connection supplies a client to find and is disposed before the owned server. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerLookups.fs","code":"// fsharp-snippet: ServerLookups\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-lookups-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! windows = server |> Server.windows |> Query.list token\n let! panes = server |> Server.panes |> Query.list token\n let window = windows |> Seq.exactlyOne\n let pane = panes |> Seq.exactlyOne\n\n use! _control = server |> Control.enter token\n let! clients = server |> Server.clients |> Query.list token\n let client = clients |> Seq.exactlyOne\n\n let! foundSession = server |> Server.tryFindSession token demo.Value.Id\n let! foundWindow = server |> Server.tryFindWindow token window.Id\n let! foundPane = server |> Server.tryFindPane token pane.Id\n let! foundClient = server |> Server.tryFindClient token client.Name\n\n let! missingSession =\n server |> Server.tryFindSession token (SessionId Int32.MaxValue)\n\n let! missingWindow = server |> Server.tryFindWindow token (WindowId Int32.MaxValue)\n let! missingPane = server |> Server.tryFindPane token (PaneId Int32.MaxValue)\n let! missingClient = server |> Server.tryFindClient token (client.Name + \"-missing\")\n\n printfn \"session: %A\" (foundSession |> Option.map (fun found -> found.Name))\n printfn \"window: %A\" (foundWindow |> Option.map (fun found -> found.Name))\n printfn \"pane: %A\" (foundPane |> Option.map (fun found -> found.Id = pane.Id))\n printfn \"client: %A\" (foundClient |> Option.map (fun found -> found.Name = client.Name))\n\n printfn\n \"missing: %A\"\n [\n missingSession.IsSome\n missingWindow.IsSome\n missingPane.IsSome\n missingClient.IsSome\n ]\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"session: Some \"demo\"\nwindow: Some \"shell\"\npane: Some true\nclient: Some true\nmissing: [false; false; false; false]\n"},{"lang":"console","intro":"None means a successful read found no matching session. A cancelled operation, invalid client name and stopped server still raise exceptions; ownership scopes clean up independently of the caller token. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/LookupFailures.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-failures-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n let! stoppedServer =\n task {\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! missing = server |> Server.tryFindSession token (SessionId Int32.MaxValue)\n\n match missing with\n | None -> printfn \"A successful lookup can return None.\"\n | Some _ -> failwith \"The missing session unexpectedly exists.\"\n\n use cancelled = new CancellationTokenSource()\n cancelled.Cancel()\n\n try\n let! _ = server |> Server.tryFindSession cancelled.Token session.Value.Id\n failwith \"A cancelled lookup must throw.\"\n with :? OperationCanceledException ->\n printfn \"Cancellation remains OperationCanceledException.\"\n\n try\n let! _ = server |> Server.tryFindClient token \" \"\n failwith \"A blank client name must be rejected.\"\n with :? ArgumentException ->\n printfn \"A blank client name remains ArgumentException.\"\n\n return server\n }\n\n try\n let! _ = stoppedServer |> Server.tryFindSession token (SessionId Int32.MaxValue)\n failwith \"A failed server read must not become None.\"\n with :? LibTmuxException ->\n printfn \"A stopped server remains a LibTmuxException.\"\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"A successful lookup can return None.\nCancellation remains OperationCanceledException.\nA blank client name remains ArgumentException.\nA stopped server remains a LibTmuxException.\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":67,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-tryfindsession"},{"id":"LibTmux.FSharp.Server.tryFindWindow","name":"tryFindWindow","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val tryFindWindow:\n cancellationToken: CancellationToken -> id: WindowId -> server: LibTmux.Server -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"id","type":"WindowId"},{"name":"server","type":"LibTmux.Server"}],"returns":"Task"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns a window or None after a successful lookup establishes absence.","body":"Connection, command and cancellation errors propagate unchanged.","examples":[{"lang":"console","intro":"Match successful lookups with Some and missing entities with None. The control connection supplies a client to find and is disposed before the owned server. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerLookups.fs","code":"// fsharp-snippet: ServerLookups\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-lookups-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! windows = server |> Server.windows |> Query.list token\n let! panes = server |> Server.panes |> Query.list token\n let window = windows |> Seq.exactlyOne\n let pane = panes |> Seq.exactlyOne\n\n use! _control = server |> Control.enter token\n let! clients = server |> Server.clients |> Query.list token\n let client = clients |> Seq.exactlyOne\n\n let! foundSession = server |> Server.tryFindSession token demo.Value.Id\n let! foundWindow = server |> Server.tryFindWindow token window.Id\n let! foundPane = server |> Server.tryFindPane token pane.Id\n let! foundClient = server |> Server.tryFindClient token client.Name\n\n let! missingSession =\n server |> Server.tryFindSession token (SessionId Int32.MaxValue)\n\n let! missingWindow = server |> Server.tryFindWindow token (WindowId Int32.MaxValue)\n let! missingPane = server |> Server.tryFindPane token (PaneId Int32.MaxValue)\n let! missingClient = server |> Server.tryFindClient token (client.Name + \"-missing\")\n\n printfn \"session: %A\" (foundSession |> Option.map (fun found -> found.Name))\n printfn \"window: %A\" (foundWindow |> Option.map (fun found -> found.Name))\n printfn \"pane: %A\" (foundPane |> Option.map (fun found -> found.Id = pane.Id))\n printfn \"client: %A\" (foundClient |> Option.map (fun found -> found.Name = client.Name))\n\n printfn\n \"missing: %A\"\n [\n missingSession.IsSome\n missingWindow.IsSome\n missingPane.IsSome\n missingClient.IsSome\n ]\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"session: Some \"demo\"\nwindow: Some \"shell\"\npane: Some true\nclient: Some true\nmissing: [false; false; false; false]\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":72,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-tryfindwindow"},{"id":"LibTmux.FSharp.Server.tryFindPane","name":"tryFindPane","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val tryFindPane:\n cancellationToken: CancellationToken -> id: PaneId -> server: LibTmux.Server -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"id","type":"PaneId"},{"name":"server","type":"LibTmux.Server"}],"returns":"Task"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns a pane or None after a successful lookup establishes absence.","body":"Connection, command and cancellation errors propagate unchanged.","examples":[{"lang":"console","intro":"Match successful lookups with Some and missing entities with None. The control connection supplies a client to find and is disposed before the owned server. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerLookups.fs","code":"// fsharp-snippet: ServerLookups\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-lookups-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! windows = server |> Server.windows |> Query.list token\n let! panes = server |> Server.panes |> Query.list token\n let window = windows |> Seq.exactlyOne\n let pane = panes |> Seq.exactlyOne\n\n use! _control = server |> Control.enter token\n let! clients = server |> Server.clients |> Query.list token\n let client = clients |> Seq.exactlyOne\n\n let! foundSession = server |> Server.tryFindSession token demo.Value.Id\n let! foundWindow = server |> Server.tryFindWindow token window.Id\n let! foundPane = server |> Server.tryFindPane token pane.Id\n let! foundClient = server |> Server.tryFindClient token client.Name\n\n let! missingSession =\n server |> Server.tryFindSession token (SessionId Int32.MaxValue)\n\n let! missingWindow = server |> Server.tryFindWindow token (WindowId Int32.MaxValue)\n let! missingPane = server |> Server.tryFindPane token (PaneId Int32.MaxValue)\n let! missingClient = server |> Server.tryFindClient token (client.Name + \"-missing\")\n\n printfn \"session: %A\" (foundSession |> Option.map (fun found -> found.Name))\n printfn \"window: %A\" (foundWindow |> Option.map (fun found -> found.Name))\n printfn \"pane: %A\" (foundPane |> Option.map (fun found -> found.Id = pane.Id))\n printfn \"client: %A\" (foundClient |> Option.map (fun found -> found.Name = client.Name))\n\n printfn\n \"missing: %A\"\n [\n missingSession.IsSome\n missingWindow.IsSome\n missingPane.IsSome\n missingClient.IsSome\n ]\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"session: Some \"demo\"\nwindow: Some \"shell\"\npane: Some true\nclient: Some true\nmissing: [false; false; false; false]\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":77,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-tryfindpane"},{"id":"LibTmux.FSharp.Server.tryFindClient","name":"tryFindClient","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val tryFindClient:\n cancellationToken: CancellationToken -> name: string -> server: LibTmux.Server -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"name","type":"string"},{"name":"server","type":"LibTmux.Server"}],"returns":"Task","raises":[{"type":"System.ArgumentException","doc":"The client name is null, empty or whitespace."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns the client with an exact name or None after a successful listing finds no match.","body":"Connection, command and cancellation errors propagate unchanged.","examples":[{"lang":"console","intro":"Match successful lookups with Some and missing entities with None. The control connection supplies a client to find and is disposed before the owned server. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerLookups.fs","code":"// fsharp-snippet: ServerLookups\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-lookups-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! windows = server |> Server.windows |> Query.list token\n let! panes = server |> Server.panes |> Query.list token\n let window = windows |> Seq.exactlyOne\n let pane = panes |> Seq.exactlyOne\n\n use! _control = server |> Control.enter token\n let! clients = server |> Server.clients |> Query.list token\n let client = clients |> Seq.exactlyOne\n\n let! foundSession = server |> Server.tryFindSession token demo.Value.Id\n let! foundWindow = server |> Server.tryFindWindow token window.Id\n let! foundPane = server |> Server.tryFindPane token pane.Id\n let! foundClient = server |> Server.tryFindClient token client.Name\n\n let! missingSession =\n server |> Server.tryFindSession token (SessionId Int32.MaxValue)\n\n let! missingWindow = server |> Server.tryFindWindow token (WindowId Int32.MaxValue)\n let! missingPane = server |> Server.tryFindPane token (PaneId Int32.MaxValue)\n let! missingClient = server |> Server.tryFindClient token (client.Name + \"-missing\")\n\n printfn \"session: %A\" (foundSession |> Option.map (fun found -> found.Name))\n printfn \"window: %A\" (foundWindow |> Option.map (fun found -> found.Name))\n printfn \"pane: %A\" (foundPane |> Option.map (fun found -> found.Id = pane.Id))\n printfn \"client: %A\" (foundClient |> Option.map (fun found -> found.Name = client.Name))\n\n printfn\n \"missing: %A\"\n [\n missingSession.IsSome\n missingWindow.IsSome\n missingPane.IsSome\n missingClient.IsSome\n ]\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"session: Some \"demo\"\nwindow: Some \"shell\"\npane: Some true\nclient: Some true\nmissing: [false; false; false; false]\n"},{"lang":"console","intro":"None means a successful read found no matching session. A cancelled operation, invalid client name and stopped server still raise exceptions; ownership scopes clean up independently of the caller token. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/LookupFailures.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-failures-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n let! stoppedServer =\n task {\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! missing = server |> Server.tryFindSession token (SessionId Int32.MaxValue)\n\n match missing with\n | None -> printfn \"A successful lookup can return None.\"\n | Some _ -> failwith \"The missing session unexpectedly exists.\"\n\n use cancelled = new CancellationTokenSource()\n cancelled.Cancel()\n\n try\n let! _ = server |> Server.tryFindSession cancelled.Token session.Value.Id\n failwith \"A cancelled lookup must throw.\"\n with :? OperationCanceledException ->\n printfn \"Cancellation remains OperationCanceledException.\"\n\n try\n let! _ = server |> Server.tryFindClient token \" \"\n failwith \"A blank client name must be rejected.\"\n with :? ArgumentException ->\n printfn \"A blank client name remains ArgumentException.\"\n\n return server\n }\n\n try\n let! _ = stoppedServer |> Server.tryFindSession token (SessionId Int32.MaxValue)\n failwith \"A failed server read must not become None.\"\n with :? LibTmuxException ->\n printfn \"A stopped server remains a LibTmuxException.\"\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"A successful lookup can return None.\nCancellation remains OperationCanceledException.\nA blank client name remains ArgumentException.\nA stopped server remains a LibTmuxException.\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":83,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-tryfindclient"},{"id":"LibTmux.FSharp.Session","name":"Session","kind":"module","modifiers":[],"signatures":[{"raw":"module Session","params":[]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Starts queries confined to one session."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":88,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-session"},{"id":"LibTmux.FSharp.Session.windows","name":"windows","kind":"function","parent":"LibTmux.FSharp.Session","modifiers":[],"signatures":[{"raw":"val windows: session: LibTmux.Session -> Query","params":[{"name":"session","type":"LibTmux.Session"}],"returns":"Query","raises":[{"type":"LibTmux.IncompleteSnapshotException","doc":"The session was not read through a server."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Queries the window placements in a session."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":91,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-session-windows"},{"id":"LibTmux.FSharp.Session.panes","name":"panes","kind":"function","parent":"LibTmux.FSharp.Session","modifiers":[],"signatures":[{"raw":"val panes: session: LibTmux.Session -> Query","params":[{"name":"session","type":"LibTmux.Session"}],"returns":"Query","raises":[{"type":"LibTmux.IncompleteSnapshotException","doc":"The session was not read through a server."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Queries the panes of every window in a session."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":95,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-session-panes"},{"id":"LibTmux.FSharp.Window","name":"Window","kind":"module","modifiers":[],"signatures":[{"raw":"module Window","params":[]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Identifies window placements and starts queries confined to one window."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":99,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-window"},{"id":"LibTmux.FSharp.Window.placementKey","name":"placementKey","kind":"function","parent":"LibTmux.FSharp.Window","modifiers":[],"signatures":[{"raw":"val placementKey: window: LibTmux.Window -> WindowPlacementKey","params":[{"name":"window","type":"LibTmux.Window"}],"returns":"WindowPlacementKey","raises":[{"type":"LibTmux.IncompleteSnapshotException","doc":"The placement was not captured."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns a comparable key including the captured session and window index."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":102,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-window-placementkey"},{"id":"LibTmux.FSharp.Window.panes","name":"panes","kind":"function","parent":"LibTmux.FSharp.Window","modifiers":[],"signatures":[{"raw":"val panes: window: LibTmux.Window -> Query","params":[{"name":"window","type":"LibTmux.Window"}],"returns":"Query","raises":[{"type":"LibTmux.IncompleteSnapshotException","doc":"The window was not read through a server."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Queries the panes in a window."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":106,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-window-panes"},{"id":"LibTmux.FSharp.Pane","name":"Pane","kind":"module","modifiers":[],"signatures":[{"raw":"module Pane","params":[]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Reads captured pane fields and starts explicit pane operations."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":110,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane"},{"id":"LibTmux.FSharp.Pane.currentPath","name":"currentPath","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val currentPath: pane: LibTmux.Pane -> string option","params":[{"name":"pane","type":"LibTmux.Pane"}],"returns":"string option","raises":[{"type":"LibTmux.IncompleteSnapshotException","doc":"The path field was not captured."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Reads the captured working directory, preserving an empty string.","examples":[{"lang":"console","intro":"Pattern match CaptureState before reading relations or active entities, and option before using nullable pane fields. Capturing returns a fresh handle; a captured empty relation is different from an uncaptured one. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SnapshotAccess.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-snapshot-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! server =\n task {\n use! session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"Sessions have not been captured.\"\n | Captured _ -> failwith \"Connecting must not capture the hierarchy.\"\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let capturedSession =\n match captured.Sessions |> Snapshot.relation with\n | Captured sessions -> sessions |> Seq.exactlyOne\n | Uncaptured _ -> failwith \"The requested sessions were not captured.\"\n\n let pane =\n match capturedSession.ActivePane |> Snapshot.value with\n | Captured pane -> pane\n | Uncaptured _ -> failwith \"The active pane was not captured.\"\n\n match pane |> Pane.currentPath, pane |> Pane.currentCommand with\n | Some _, Some _ -> printfn \"The captured active pane has a path and command.\"\n | _ -> failwith \"The running pane should report its path and command.\"\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"The original handle is still uncaptured.\"\n | Captured _ -> failwith \"Capturing must return a new immutable handle.\"\n\n // Keep this private daemon alive after its only owned session is disposed.\n let! result =\n server.ExecuteCommandAsync([| \"set-option\"; \"-s\"; \"exit-empty\"; \"off\" |], token)\n\n if result.ExitCode <> 0 then\n failwithf \"Could not keep the empty server alive: %A\" result.StandardErrorLines\n\n return server\n }\n\n let! empty = server |> Server.capture token SnapshotDepth.Sessions\n\n match empty.Sessions |> Snapshot.relation with\n | Captured sessions when sessions.Count = 0 -> printfn \"Captured sessions can be empty.\"\n | _ -> failwith \"An empty captured relation must be distinct from an uncaptured relation.\"\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":113,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-currentpath"},{"id":"LibTmux.FSharp.Pane.currentCommand","name":"currentCommand","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val currentCommand: pane: LibTmux.Pane -> string option","params":[{"name":"pane","type":"LibTmux.Pane"}],"returns":"string option","raises":[{"type":"LibTmux.IncompleteSnapshotException","doc":"The command field was not captured."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Reads the captured command name, preserving an empty string.","examples":[{"lang":"console","intro":"Pattern match CaptureState before reading relations or active entities, and option before using nullable pane fields. Capturing returns a fresh handle; a captured empty relation is different from an uncaptured one. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SnapshotAccess.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-snapshot-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! server =\n task {\n use! session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"Sessions have not been captured.\"\n | Captured _ -> failwith \"Connecting must not capture the hierarchy.\"\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let capturedSession =\n match captured.Sessions |> Snapshot.relation with\n | Captured sessions -> sessions |> Seq.exactlyOne\n | Uncaptured _ -> failwith \"The requested sessions were not captured.\"\n\n let pane =\n match capturedSession.ActivePane |> Snapshot.value with\n | Captured pane -> pane\n | Uncaptured _ -> failwith \"The active pane was not captured.\"\n\n match pane |> Pane.currentPath, pane |> Pane.currentCommand with\n | Some _, Some _ -> printfn \"The captured active pane has a path and command.\"\n | _ -> failwith \"The running pane should report its path and command.\"\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"The original handle is still uncaptured.\"\n | Captured _ -> failwith \"Capturing must return a new immutable handle.\"\n\n // Keep this private daemon alive after its only owned session is disposed.\n let! result =\n server.ExecuteCommandAsync([| \"set-option\"; \"-s\"; \"exit-empty\"; \"off\" |], token)\n\n if result.ExitCode <> 0 then\n failwithf \"Could not keep the empty server alive: %A\" result.StandardErrorLines\n\n return server\n }\n\n let! empty = server |> Server.capture token SnapshotDepth.Sessions\n\n match empty.Sessions |> Snapshot.relation with\n | Captured sessions when sessions.Count = 0 -> printfn \"Captured sessions can be empty.\"\n | _ -> failwith \"An empty captured relation must be distinct from an uncaptured relation.\"\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":117,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-currentcommand"},{"id":"LibTmux.FSharp.Pane.capture","name":"capture","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val capture:\n cancellationToken: CancellationToken ->\n request: CapturePaneRequest ->\n pane: LibTmux.Pane ->\n Task>","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"request","type":"CapturePaneRequest"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task>"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Captures pane contents using the supplied core request.","examples":[{"lang":"console","intro":"Type a shell command literally, press the named Enter key, and wait for its private completion signal before capturing output. Timeout and command failures escape the program after scoped cleanup; cancellation does not undo dispatched input. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/InputCapture.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet quoteShell (value: string) = \"'\" + value.Replace(\"'\", \"'\\\\''\") + \"'\"\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let socketName = \"fsharp-capture-\" + Guid.NewGuid().ToString(\"N\")\n\n let options =\n ServerConnectionOptions(SocketName = socketName, ConfigurationFile = \"/dev/null\", TmuxBinaryPath = binary)\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! _session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/sh\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! panes = server |> Server.panes |> Query.list token\n let pane = panes |> Seq.exactlyOne\n let channel = \"capture-\" + Guid.NewGuid().ToString(\"N\")\n use wait = server.OpenWaitChannel(channel)\n let marker = \"api capture ready\"\n\n let command =\n sprintf\n \"printf '%%s\\\\n' %s; %s -L %s wait-for -S %s\"\n (quoteShell marker)\n (quoteShell binary)\n (quoteShell socketName)\n (quoteShell channel)\n\n do!\n pane\n |> Pane.sendKeys token (SendKeysRequest(Text = command, Literal = true, Enter = false))\n\n do! pane |> Pane.sendKeys token (SendKeysRequest(Text = \"Enter\", Enter = false))\n let! ready = wait.WaitAsync(TimeSpan.FromSeconds 5., token)\n\n if not ready then\n failwith \"The pane did not signal that its output was ready.\"\n\n let! lines = pane |> Pane.capture token (CapturePaneRequest(JoinWrappedLines = true))\n\n // Joining wrapped lines preserves terminal padding after the output.\n if not (lines |> Seq.exists (fun line -> line.TrimEnd() = marker)) then\n failwithf \"Capture did not contain the complete output line: %A\" lines\n\n printfn \"%s\" marker\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"api capture ready\n"},{"lang":"console","intro":"Type a line and wait for what it prints, not for its echo. Wait for a condition over the whole screen, then run a command and read its exit status and output. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SendWaitRead.fs","code":"// fsharp-snippet: SendWaitRead\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-send-wait-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! session =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"work\", Command = \"/bin/sh\"), token)\n\n let! panes = session |> Session.panes |> Query.list token\n let pane = panes[0]\n\n // Type a line and wait for what it prints. The screen before it and\n // the line's own echo do not count.\n let! ready =\n pane\n |> Pane.sendAndWait token (TimeSpan.FromSeconds 5.) \"echo server ready\" \"server ready\"\n\n // A condition sees every visible row each time the pane changes.\n do! pane |> Pane.sendKeys token (SendKeysRequest(Text = \"seq 3\", Literal = true))\n\n let! counted =\n pane\n |> Pane.waitUntil token (TimeSpan.FromSeconds 5.) (fun rows -> rows |> Seq.exists ((=) \"3\"))\n\n // Running a command waits for its exit status and returns its output.\n let! listing =\n pane |> Pane.run token (TimeSpan.FromSeconds 10.) \"printf 'a\\\\nb\\\\n'; exit 4\"\n\n let! screen = pane |> Pane.capture token (CapturePaneRequest())\n\n printfn \"ready: %b\" ready.Found\n printfn \"counted: %b\" counted.Found\n printfn \"run: exit %A, output %A\" listing.ExitStatus (List.ofSeq listing.Output)\n printfn \"screen shows the run: %b\" (screen |> Seq.exists (fun row -> row = \"a\"))\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"ready: true\ncounted: true\nrun: exit 4, output [\"a\"; \"b\"]\nscreen shows the run: true\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":120,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-capture"},{"id":"LibTmux.FSharp.Pane.findOnScreen","name":"findOnScreen","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val findOnScreen:\n cancellationToken: CancellationToken -> search: ScreenSearch -> pane: LibTmux.Pane -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"search","type":"ScreenSearch"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task","raises":[{"type":"System.ArgumentException","doc":"The text cannot be written as a tmux format."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns the first visible row showing the text, counted from 1, or None.","body":"tmux searches only the rows on screen. Capture the history and filter its lines to search further back."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":129,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-findonscreen"},{"id":"LibTmux.FSharp.Pane.waitForText","name":"waitForText","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val waitForText:\n cancellationToken: CancellationToken ->\n timeout: TimeSpan ->\n text: string ->\n pane: LibTmux.Pane ->\n Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"timeout","type":"TimeSpan"},{"name":"text","type":"string"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task","raises":[{"type":"System.ArgumentException","doc":"The text is empty or spans lines."},{"type":"LibTmux.TmuxPaneException","doc":"The pane's program had already exited."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Waits for a line the pane prints to contain the text.","body":"Text already on screen ends the wait at once as PresentAtEntry.\nThe wait sleeps on the pane's own output rather than polling, and ends\nearly when the pane's program exits or a full-screen program starts."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":140,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-waitfortext"},{"id":"LibTmux.FSharp.Pane.waitFor","name":"waitFor","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val waitFor:\n cancellationToken: CancellationToken -> request: PaneWaitRequest -> pane: LibTmux.Pane -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"request","type":"PaneWaitRequest"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task","raises":[{"type":"LibTmux.TmuxPaneException","doc":"The pane's program had already exited."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Waits as the request describes: patterns, stop patterns, or any output."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":149,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-waitfor"},{"id":"LibTmux.FSharp.Pane.sendAndWait","name":"sendAndWait","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val sendAndWait:\n cancellationToken: CancellationToken ->\n timeout: TimeSpan ->\n line: string ->\n text: string ->\n pane: LibTmux.Pane ->\n Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"timeout","type":"TimeSpan"},{"name":"line","type":"string"},{"name":"text","type":"string"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task","raises":[{"type":"System.ArgumentException","doc":"The text is empty or spans lines."},{"type":"LibTmux.TmuxPaneException","doc":"The pane's program had already exited."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Types a line, presses Enter, and waits for a later line to contain the text.","body":"The screen before the line is typed never ends the wait, and the\nshell's echo of the line is discounted: waiting for done after\ntyping echo done waits for the command's output. Prefer this to\nsendKeys followed by waitForText, which can match the\ntyped line itself.","examples":[{"lang":"console","intro":"Type a line and wait for what it prints, not for its echo. Wait for a condition over the whole screen, then run a command and read its exit status and output. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SendWaitRead.fs","code":"// fsharp-snippet: SendWaitRead\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-send-wait-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! session =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"work\", Command = \"/bin/sh\"), token)\n\n let! panes = session |> Session.panes |> Query.list token\n let pane = panes[0]\n\n // Type a line and wait for what it prints. The screen before it and\n // the line's own echo do not count.\n let! ready =\n pane\n |> Pane.sendAndWait token (TimeSpan.FromSeconds 5.) \"echo server ready\" \"server ready\"\n\n // A condition sees every visible row each time the pane changes.\n do! pane |> Pane.sendKeys token (SendKeysRequest(Text = \"seq 3\", Literal = true))\n\n let! counted =\n pane\n |> Pane.waitUntil token (TimeSpan.FromSeconds 5.) (fun rows -> rows |> Seq.exists ((=) \"3\"))\n\n // Running a command waits for its exit status and returns its output.\n let! listing =\n pane |> Pane.run token (TimeSpan.FromSeconds 10.) \"printf 'a\\\\nb\\\\n'; exit 4\"\n\n let! screen = pane |> Pane.capture token (CapturePaneRequest())\n\n printfn \"ready: %b\" ready.Found\n printfn \"counted: %b\" counted.Found\n printfn \"run: exit %A, output %A\" listing.ExitStatus (List.ofSeq listing.Output)\n printfn \"screen shows the run: %b\" (screen |> Seq.exists (fun row -> row = \"a\"))\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"ready: true\ncounted: true\nrun: exit 4, output [\"a\"; \"b\"]\nscreen shows the run: true\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":162,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-sendandwait"},{"id":"LibTmux.FSharp.Pane.sendAndWaitFor","name":"sendAndWaitFor","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val sendAndWaitFor:\n cancellationToken: CancellationToken ->\n keys: SendKeysRequest ->\n request: PaneWaitRequest ->\n pane: LibTmux.Pane ->\n Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"keys","type":"SendKeysRequest"},{"name":"request","type":"PaneWaitRequest"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task","raises":[{"type":"System.ArgumentException","doc":"The wait names no pattern."},{"type":"LibTmux.TmuxPaneException","doc":"The pane's program had already exited."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Sends keys as the request describes, then waits as the wait request describes.","body":"As sendAndWait: only output after the keys counts, and literal\ntext is discounted from it. Key names are not."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":177,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-sendandwaitfor"},{"id":"LibTmux.FSharp.Pane.waitUntil","name":"waitUntil","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val waitUntil:\n cancellationToken: CancellationToken ->\n timeout: TimeSpan ->\n condition: (IReadOnlyList -> bool) ->\n pane: LibTmux.Pane ->\n Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"timeout","type":"TimeSpan"},{"name":"condition","type":"(IReadOnlyList -> bool)"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task","raises":[{"type":"LibTmux.TmuxPaneException","doc":"The pane's program had already exited."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Waits until a condition holds over the rows the pane shows, top to bottom.","body":"The condition sees the whole screen each time the pane prints or changes state.","examples":[{"lang":"console","intro":"Type a line and wait for what it prints, not for its echo. Wait for a condition over the whole screen, then run a command and read its exit status and output. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SendWaitRead.fs","code":"// fsharp-snippet: SendWaitRead\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-send-wait-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! session =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"work\", Command = \"/bin/sh\"), token)\n\n let! panes = session |> Session.panes |> Query.list token\n let pane = panes[0]\n\n // Type a line and wait for what it prints. The screen before it and\n // the line's own echo do not count.\n let! ready =\n pane\n |> Pane.sendAndWait token (TimeSpan.FromSeconds 5.) \"echo server ready\" \"server ready\"\n\n // A condition sees every visible row each time the pane changes.\n do! pane |> Pane.sendKeys token (SendKeysRequest(Text = \"seq 3\", Literal = true))\n\n let! counted =\n pane\n |> Pane.waitUntil token (TimeSpan.FromSeconds 5.) (fun rows -> rows |> Seq.exists ((=) \"3\"))\n\n // Running a command waits for its exit status and returns its output.\n let! listing =\n pane |> Pane.run token (TimeSpan.FromSeconds 10.) \"printf 'a\\\\nb\\\\n'; exit 4\"\n\n let! screen = pane |> Pane.capture token (CapturePaneRequest())\n\n printfn \"ready: %b\" ready.Found\n printfn \"counted: %b\" counted.Found\n printfn \"run: exit %A, output %A\" listing.ExitStatus (List.ofSeq listing.Output)\n printfn \"screen shows the run: %b\" (screen |> Seq.exists (fun row -> row = \"a\"))\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"ready: true\ncounted: true\nrun: exit 4, output [\"a\"; \"b\"]\nscreen shows the run: true\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":187,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-waituntil"},{"id":"LibTmux.FSharp.Pane.run","name":"run","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val run:\n cancellationToken: CancellationToken ->\n timeout: TimeSpan ->\n command: string ->\n pane: LibTmux.Pane ->\n Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"timeout","type":"TimeSpan"},{"name":"command","type":"string"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task","raises":[{"type":"LibTmux.TmuxPaneException","doc":"The pane is in a mode or not running a POSIX shell."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Runs a shell command in the pane and waits for its exit status and output.","body":"The pane must sit at a POSIX shell prompt. A command still running at\nthe timeout keeps running; the result reports TimedOut.","examples":[{"lang":"console","intro":"Type a line and wait for what it prints, not for its echo. Wait for a condition over the whole screen, then run a command and read its exit status and output. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SendWaitRead.fs","code":"// fsharp-snippet: SendWaitRead\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-send-wait-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! session =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"work\", Command = \"/bin/sh\"), token)\n\n let! panes = session |> Session.panes |> Query.list token\n let pane = panes[0]\n\n // Type a line and wait for what it prints. The screen before it and\n // the line's own echo do not count.\n let! ready =\n pane\n |> Pane.sendAndWait token (TimeSpan.FromSeconds 5.) \"echo server ready\" \"server ready\"\n\n // A condition sees every visible row each time the pane changes.\n do! pane |> Pane.sendKeys token (SendKeysRequest(Text = \"seq 3\", Literal = true))\n\n let! counted =\n pane\n |> Pane.waitUntil token (TimeSpan.FromSeconds 5.) (fun rows -> rows |> Seq.exists ((=) \"3\"))\n\n // Running a command waits for its exit status and returns its output.\n let! listing =\n pane |> Pane.run token (TimeSpan.FromSeconds 10.) \"printf 'a\\\\nb\\\\n'; exit 4\"\n\n let! screen = pane |> Pane.capture token (CapturePaneRequest())\n\n printfn \"ready: %b\" ready.Found\n printfn \"counted: %b\" counted.Found\n printfn \"run: exit %A, output %A\" listing.ExitStatus (List.ofSeq listing.Output)\n printfn \"screen shows the run: %b\" (screen |> Seq.exists (fun row -> row = \"a\"))\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"ready: true\ncounted: true\nrun: exit 4, output [\"a\"; \"b\"]\nscreen shows the run: true\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":200,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-run"},{"id":"LibTmux.FSharp.Pane.sendKeys","name":"sendKeys","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val sendKeys: cancellationToken: CancellationToken -> request: SendKeysRequest -> pane: LibTmux.Pane -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"request","type":"SendKeysRequest"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Sends text or key names according to the request's literal and Enter settings.","body":"Cancellation can occur after dispatch; it does not undo sent keys.","examples":[{"lang":"console","intro":"Type a shell command literally, press the named Enter key, and wait for its private completion signal before capturing output. Timeout and command failures escape the program after scoped cleanup; cancellation does not undo dispatched input. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/InputCapture.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet quoteShell (value: string) = \"'\" + value.Replace(\"'\", \"'\\\\''\") + \"'\"\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let socketName = \"fsharp-capture-\" + Guid.NewGuid().ToString(\"N\")\n\n let options =\n ServerConnectionOptions(SocketName = socketName, ConfigurationFile = \"/dev/null\", TmuxBinaryPath = binary)\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! _session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/sh\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! panes = server |> Server.panes |> Query.list token\n let pane = panes |> Seq.exactlyOne\n let channel = \"capture-\" + Guid.NewGuid().ToString(\"N\")\n use wait = server.OpenWaitChannel(channel)\n let marker = \"api capture ready\"\n\n let command =\n sprintf\n \"printf '%%s\\\\n' %s; %s -L %s wait-for -S %s\"\n (quoteShell marker)\n (quoteShell binary)\n (quoteShell socketName)\n (quoteShell channel)\n\n do!\n pane\n |> Pane.sendKeys token (SendKeysRequest(Text = command, Literal = true, Enter = false))\n\n do! pane |> Pane.sendKeys token (SendKeysRequest(Text = \"Enter\", Enter = false))\n let! ready = wait.WaitAsync(TimeSpan.FromSeconds 5., token)\n\n if not ready then\n failwith \"The pane did not signal that its output was ready.\"\n\n let! lines = pane |> Pane.capture token (CapturePaneRequest(JoinWrappedLines = true))\n\n // Joining wrapped lines preserves terminal padding after the output.\n if not (lines |> Seq.exists (fun line -> line.TrimEnd() = marker)) then\n failwithf \"Capture did not contain the complete output line: %A\" lines\n\n printfn \"%s\" marker\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"api capture ready\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":209,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-sendkeys"},{"id":"LibTmux.FSharp.Pane.split","name":"split","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val split:\n cancellationToken: CancellationToken -> request: SplitPaneRequest -> pane: LibTmux.Pane -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"request","type":"SplitPaneRequest"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Splits the pane and returns the new pane handle.","body":"Cancellation can leave the split applied; do not retry automatically.","examples":[{"lang":"console","intro":"Create owned session and window scopes with the core LibTmux API, then split a pane with the F# Pane.split helper. Disposing the owned window also stops its split panes. For F# session descriptions, use Server.newSession with SessionSpec. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/CreateWindowPane.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-create-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! session =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\"),\n token\n )\n\n use! window =\n session.Value.CreateOwnedWindowAsync(NewWindowRequest(Name = \"editor\", Command = \"/bin/cat\"), token)\n\n let! panes = window.Value.GetPanesAsync(token)\n let original = panes |> Seq.exactlyOne\n\n let! added =\n original\n |> Pane.split token (SplitPaneRequest(Direction = PaneDirection.Right, Command = \"/bin/cat\"))\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! windows = server |> Server.windows |> Query.list token\n let! allPanes = server |> Server.panes |> Query.list token\n\n if windows.Count <> 2 || allPanes.Count <> 3 || added.Id = original.Id then\n failwith \"Expected two windows and three distinct panes.\"\n\n printfn \"Created session demo and window editor.\"\n printfn \"Windows: %d; panes: %d\" windows.Count allPanes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Created session demo and window editor.\nWindows: 2; panes: 3\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":213,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-split"},{"id":"LibTmux.FSharp.Options","name":"Options","kind":"module","modifiers":[],"signatures":[{"raw":"module Options","params":[]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Reads and writes options through keys that know their value's type.","body":"Pass the options of the scope the option belongs to, such as\nsession.Options for TmuxOptionKey.HistoryLimit. Declare other keys\nwith TmuxOptionKey.Text, Number or Flag."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":223,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-options"},{"id":"LibTmux.FSharp.Options.get","name":"get","kind":"function","parent":"LibTmux.FSharp.Options","modifiers":[],"signatures":[{"raw":"val get: cancellationToken: CancellationToken -> key: TmuxOptionKey<'T> -> options: TmuxOptions -> Task<'T>","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"key","type":"TmuxOptionKey<'T>"},{"name":"options","type":"TmuxOptions"}],"returns":"Task<'T>","raises":[{"type":"LibTmux.TmuxOptionException","doc":"tmux rejected the name, reported no value, or reported one the key cannot read."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Reads the value an option has in a scope, set there or inherited, as its key's type."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":226,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-options-get"},{"id":"LibTmux.FSharp.Options.set","name":"set","kind":"function","parent":"LibTmux.FSharp.Options","modifiers":[],"signatures":[{"raw":"val set: cancellationToken: CancellationToken -> key: TmuxOptionKey<'T> -> value: 'T -> options: TmuxOptions -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"key","type":"TmuxOptionKey<'T>"},{"name":"value","type":"'T"},{"name":"options","type":"TmuxOptions"}],"returns":"Task","raises":[{"type":"LibTmux.TmuxOptionException","doc":"tmux rejected the name or the value."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Sets an option in a scope from a value of its key's type."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":230,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-options-set"},{"id":"LibTmux.FSharp.Chain","name":"Chain","kind":"module","modifiers":[],"signatures":[{"raw":"module Chain","params":[]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Builds commands tmux runs together, each acting on what the one before made.","body":"tmux moves its current target as a chain runs: newWindow makes the\nnew window current, a following split splits its pane, and a following\nsendLine types into the pane that split made. No step after the\nfirst names a target, so a chain needs no round trip to learn the id of\nwhat it just created.\n\nA chain is a core TmuxChain: each step returns a new one, building\nreads nothing, and run sends every command in one tmux invocation.\nadd appends any command, such as a typed request's ToCommand."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":248,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-chain"},{"id":"LibTmux.FSharp.Chain.start","name":"start","kind":"function","parent":"LibTmux.FSharp.Chain","modifiers":[],"signatures":[{"raw":"val start: server: LibTmux.Server -> TmuxChain","params":[{"name":"server","type":"LibTmux.Server"}],"returns":"TmuxChain","raises":[{"type":"System.InvalidOperationException","doc":"The server handle has no connection."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Starts an empty chain against a server.","examples":[{"lang":"console","intro":"Create a session from F# records in one call: the first window is the one tmux makes with the session, and each split goes beside the pane before it. Add a window with a command chain, then read through a handle whose commands each get five seconds. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/BuildSession.fs","code":"// fsharp-snippet: BuildSession\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-build-session-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n // Describe the session, then create it in one call: the first window is\n // the one tmux makes with the session, and each split goes beside the\n // pane before it.\n let dev =\n { SessionSpec.named \"dev\" with\n Windows =\n [\n { WindowSpec.named \"editor\" with\n Command = Some \"exec sleep 60\"\n }\n { WindowSpec.named \"logs\" with\n Command = Some \"exec sleep 60\"\n Splits =\n [\n { SplitSpec.empty with\n Direction = Some PaneDirection.Right\n Command = Some \"exec sleep 60\"\n }\n { SplitSpec.empty with\n Command = Some \"exec sleep 60\"\n }\n ]\n }\n ]\n }\n\n let! session = owned.Value |> Server.newSession token dev\n\n // A chain runs in one tmux invocation; each step acts on what the one\n // before made.\n let! _ =\n owned.Value\n |> Chain.start\n |> Chain.newWindow session \"watch\"\n |> Chain.splitLeftRight\n |> Chain.sendLine \"exec sleep 60\"\n |> Chain.run token\n\n // Every command through this handle, and the handles taken from it,\n // gives tmux five seconds.\n let bounded = owned.Value |> Server.within (TimeSpan.FromSeconds 5.)\n let! windows = bounded |> Server.windows |> Query.list token\n\n for window in windows do\n let! panes = window |> Window.panes |> Query.list token\n printfn \"%s: %d panes\" window.Name panes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"editor: 1 panes\nlogs: 3 panes\nwatch: 2 panes\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":251,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-chain-start"},{"id":"LibTmux.FSharp.Chain.newWindow","name":"newWindow","kind":"function","parent":"LibTmux.FSharp.Chain","modifiers":[],"signatures":[{"raw":"val newWindow: session: LibTmux.Session -> name: string -> chain: TmuxChain -> TmuxChain","params":[{"name":"session","type":"LibTmux.Session"},{"name":"name","type":"string"},{"name":"chain","type":"TmuxChain"}],"returns":"TmuxChain"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Adds a window to a session and makes it the one following steps act on.","body":"It fails rather than reach another session when tmux restarted after the session was read.","examples":[{"lang":"console","intro":"Create a session from F# records in one call: the first window is the one tmux makes with the session, and each split goes beside the pane before it. Add a window with a command chain, then read through a handle whose commands each get five seconds. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/BuildSession.fs","code":"// fsharp-snippet: BuildSession\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-build-session-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n // Describe the session, then create it in one call: the first window is\n // the one tmux makes with the session, and each split goes beside the\n // pane before it.\n let dev =\n { SessionSpec.named \"dev\" with\n Windows =\n [\n { WindowSpec.named \"editor\" with\n Command = Some \"exec sleep 60\"\n }\n { WindowSpec.named \"logs\" with\n Command = Some \"exec sleep 60\"\n Splits =\n [\n { SplitSpec.empty with\n Direction = Some PaneDirection.Right\n Command = Some \"exec sleep 60\"\n }\n { SplitSpec.empty with\n Command = Some \"exec sleep 60\"\n }\n ]\n }\n ]\n }\n\n let! session = owned.Value |> Server.newSession token dev\n\n // A chain runs in one tmux invocation; each step acts on what the one\n // before made.\n let! _ =\n owned.Value\n |> Chain.start\n |> Chain.newWindow session \"watch\"\n |> Chain.splitLeftRight\n |> Chain.sendLine \"exec sleep 60\"\n |> Chain.run token\n\n // Every command through this handle, and the handles taken from it,\n // gives tmux five seconds.\n let bounded = owned.Value |> Server.within (TimeSpan.FromSeconds 5.)\n let! windows = bounded |> Server.windows |> Query.list token\n\n for window in windows do\n let! panes = window |> Window.panes |> Query.list token\n printfn \"%s: %d panes\" window.Name panes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"editor: 1 panes\nlogs: 3 panes\nwatch: 2 panes\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":255,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-chain-newwindow"},{"id":"LibTmux.FSharp.Chain.splitLeftRight","name":"splitLeftRight","kind":"function","parent":"LibTmux.FSharp.Chain","modifiers":[],"signatures":[{"raw":"val splitLeftRight: chain: TmuxChain -> TmuxChain","params":[{"name":"chain","type":"TmuxChain"}],"returns":"TmuxChain"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Splits the current pane into a left and a right one; the right becomes current.","examples":[{"lang":"console","intro":"Create a session from F# records in one call: the first window is the one tmux makes with the session, and each split goes beside the pane before it. Add a window with a command chain, then read through a handle whose commands each get five seconds. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/BuildSession.fs","code":"// fsharp-snippet: BuildSession\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-build-session-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n // Describe the session, then create it in one call: the first window is\n // the one tmux makes with the session, and each split goes beside the\n // pane before it.\n let dev =\n { SessionSpec.named \"dev\" with\n Windows =\n [\n { WindowSpec.named \"editor\" with\n Command = Some \"exec sleep 60\"\n }\n { WindowSpec.named \"logs\" with\n Command = Some \"exec sleep 60\"\n Splits =\n [\n { SplitSpec.empty with\n Direction = Some PaneDirection.Right\n Command = Some \"exec sleep 60\"\n }\n { SplitSpec.empty with\n Command = Some \"exec sleep 60\"\n }\n ]\n }\n ]\n }\n\n let! session = owned.Value |> Server.newSession token dev\n\n // A chain runs in one tmux invocation; each step acts on what the one\n // before made.\n let! _ =\n owned.Value\n |> Chain.start\n |> Chain.newWindow session \"watch\"\n |> Chain.splitLeftRight\n |> Chain.sendLine \"exec sleep 60\"\n |> Chain.run token\n\n // Every command through this handle, and the handles taken from it,\n // gives tmux five seconds.\n let bounded = owned.Value |> Server.within (TimeSpan.FromSeconds 5.)\n let! windows = bounded |> Server.windows |> Query.list token\n\n for window in windows do\n let! panes = window |> Window.panes |> Query.list token\n printfn \"%s: %d panes\" window.Name panes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"editor: 1 panes\nlogs: 3 panes\nwatch: 2 panes\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":258,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-chain-splitleftright"},{"id":"LibTmux.FSharp.Chain.splitTopBottom","name":"splitTopBottom","kind":"function","parent":"LibTmux.FSharp.Chain","modifiers":[],"signatures":[{"raw":"val splitTopBottom: chain: TmuxChain -> TmuxChain","params":[{"name":"chain","type":"TmuxChain"}],"returns":"TmuxChain"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Splits the current pane into a top and a bottom one; the bottom becomes current."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":261,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-chain-splittopbottom"},{"id":"LibTmux.FSharp.Chain.sendLine","name":"sendLine","kind":"function","parent":"LibTmux.FSharp.Chain","modifiers":[],"signatures":[{"raw":"val sendLine: line: string -> chain: TmuxChain -> TmuxChain","params":[{"name":"line","type":"string"},{"name":"chain","type":"TmuxChain"}],"returns":"TmuxChain"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Types a line into the current pane and presses Enter.","examples":[{"lang":"console","intro":"Create a session from F# records in one call: the first window is the one tmux makes with the session, and each split goes beside the pane before it. Add a window with a command chain, then read through a handle whose commands each get five seconds. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/BuildSession.fs","code":"// fsharp-snippet: BuildSession\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-build-session-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n // Describe the session, then create it in one call: the first window is\n // the one tmux makes with the session, and each split goes beside the\n // pane before it.\n let dev =\n { SessionSpec.named \"dev\" with\n Windows =\n [\n { WindowSpec.named \"editor\" with\n Command = Some \"exec sleep 60\"\n }\n { WindowSpec.named \"logs\" with\n Command = Some \"exec sleep 60\"\n Splits =\n [\n { SplitSpec.empty with\n Direction = Some PaneDirection.Right\n Command = Some \"exec sleep 60\"\n }\n { SplitSpec.empty with\n Command = Some \"exec sleep 60\"\n }\n ]\n }\n ]\n }\n\n let! session = owned.Value |> Server.newSession token dev\n\n // A chain runs in one tmux invocation; each step acts on what the one\n // before made.\n let! _ =\n owned.Value\n |> Chain.start\n |> Chain.newWindow session \"watch\"\n |> Chain.splitLeftRight\n |> Chain.sendLine \"exec sleep 60\"\n |> Chain.run token\n\n // Every command through this handle, and the handles taken from it,\n // gives tmux five seconds.\n let bounded = owned.Value |> Server.within (TimeSpan.FromSeconds 5.)\n let! windows = bounded |> Server.windows |> Query.list token\n\n for window in windows do\n let! panes = window |> Window.panes |> Query.list token\n printfn \"%s: %d panes\" window.Name panes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"editor: 1 panes\nlogs: 3 panes\nwatch: 2 panes\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":264,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-chain-sendline"},{"id":"LibTmux.FSharp.Chain.arrange","name":"arrange","kind":"function","parent":"LibTmux.FSharp.Chain","modifiers":[],"signatures":[{"raw":"val arrange: layout: string -> chain: TmuxChain -> TmuxChain","params":[{"name":"layout","type":"string"},{"name":"chain","type":"TmuxChain"}],"returns":"TmuxChain"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Arranges the current window with a tmux layout; the chain checks the name before tmux sees it."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":267,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-chain-arrange"},{"id":"LibTmux.FSharp.Chain.add","name":"add","kind":"function","parent":"LibTmux.FSharp.Chain","modifiers":[],"signatures":[{"raw":"val add: command: TmuxCommand -> chain: TmuxChain -> TmuxChain","params":[{"name":"command","type":"TmuxCommand"},{"name":"chain","type":"TmuxChain"}],"returns":"TmuxChain"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Appends any command, such as a typed request's ToCommand."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":270,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-chain-add"},{"id":"LibTmux.FSharp.Chain.run","name":"run","kind":"function","parent":"LibTmux.FSharp.Chain","modifiers":[],"signatures":[{"raw":"val run: cancellationToken: CancellationToken -> chain: TmuxChain -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"chain","type":"TmuxChain"}],"returns":"Task"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Runs every command in one tmux invocation and returns tmux's combined answer.","body":"Cancellation after dispatch does not undo commands tmux already ran.","examples":[{"lang":"console","intro":"Create a session from F# records in one call: the first window is the one tmux makes with the session, and each split goes beside the pane before it. Add a window with a command chain, then read through a handle whose commands each get five seconds. Use Linux or macOS with Git, tmux 3.2a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/BuildSession.fs","code":"// fsharp-snippet: BuildSession\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-build-session-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n // Describe the session, then create it in one call: the first window is\n // the one tmux makes with the session, and each split goes beside the\n // pane before it.\n let dev =\n { SessionSpec.named \"dev\" with\n Windows =\n [\n { WindowSpec.named \"editor\" with\n Command = Some \"exec sleep 60\"\n }\n { WindowSpec.named \"logs\" with\n Command = Some \"exec sleep 60\"\n Splits =\n [\n { SplitSpec.empty with\n Direction = Some PaneDirection.Right\n Command = Some \"exec sleep 60\"\n }\n { SplitSpec.empty with\n Command = Some \"exec sleep 60\"\n }\n ]\n }\n ]\n }\n\n let! session = owned.Value |> Server.newSession token dev\n\n // A chain runs in one tmux invocation; each step acts on what the one\n // before made.\n let! _ =\n owned.Value\n |> Chain.start\n |> Chain.newWindow session \"watch\"\n |> Chain.splitLeftRight\n |> Chain.sendLine \"exec sleep 60\"\n |> Chain.run token\n\n // Every command through this handle, and the handles taken from it,\n // gives tmux five seconds.\n let bounded = owned.Value |> Server.within (TimeSpan.FromSeconds 5.)\n let! windows = bounded |> Server.windows |> Query.list token\n\n for window in windows do\n let! panes = window |> Window.panes |> Query.list token\n printfn \"%s: %d panes\" window.Name panes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"editor: 1 panes\nlogs: 3 panes\nwatch: 2 panes\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":274,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-chain-run"}],"sources":[{"product":"core","package":"LibTmux.FSharp","repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","version":"0.0.0-alpha.18"}],"repo":"libtmux/libtmux-dotnet"} +{"port":"fsharp","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractor":"FSharp.Compiler.Service 43.11.302.0 (public .fsi syntax)","symbols":[{"id":"LibTmux.FSharp.CardinalityError","name":"CardinalityError","kind":"enum","modifiers":[],"signatures":[{"raw":"type CardinalityError","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Describes a selection that does not contain exactly one match.","examples":[{"lang":"console","intro":"Select one session without using exceptions for ordinary cardinality outcomes. Match Ok, Error NoMatches and Error MultipleMatches explicitly. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SelectionResults.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-selection-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! _demo =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"worker\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n\n match\n sessions\n |> Seq.filter (fun session -> session.Name = \"demo\")\n |> Selection.exactlyOne\n with\n | Ok session -> printfn \"One match: %s\" session.Name\n | Error error -> failwithf \"Expected one demo session, received %A.\" error\n\n match\n sessions\n |> Seq.filter (fun session -> session.Name = \"missing\")\n |> Selection.exactlyOne\n with\n | Error NoMatches -> printfn \"No match: NoMatches\"\n | result -> failwithf \"Expected NoMatches, received %A.\" result\n\n match sessions |> Selection.exactlyOne with\n | Error MultipleMatches -> printfn \"Two matches: MultipleMatches\"\n | result -> failwithf \"Expected MultipleMatches, received %A.\" result\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"One match: demo\nNo match: NoMatches\nTwo matches: MultipleMatches\n"}]},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":9,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-cardinalityerror"},{"id":"LibTmux.FSharp.CardinalityError.NoMatches","name":"NoMatches","kind":"constant","parent":"LibTmux.FSharp.CardinalityError","modifiers":[],"signatures":[{"raw":"NoMatches","params":[],"returns":"LibTmux.FSharp.CardinalityError"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"No element matched."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":11,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-cardinalityerror-nomatches"},{"id":"LibTmux.FSharp.CardinalityError.MultipleMatches","name":"MultipleMatches","kind":"constant","parent":"LibTmux.FSharp.CardinalityError","modifiers":[],"signatures":[{"raw":"MultipleMatches","params":[],"returns":"LibTmux.FSharp.CardinalityError"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"At least two elements matched."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":13,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-cardinalityerror-multiplematches"},{"id":"LibTmux.FSharp.CaptureState","name":"CaptureState","kind":"enum","modifiers":[],"signatures":[{"raw":"type CaptureState<'T>","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Distinguishes captured state from a relation the snapshot did not read.","examples":[{"lang":"console","intro":"Pattern match CaptureState before reading relations or active entities, and option before using nullable pane fields. Capturing returns a fresh handle; a captured empty relation is different from an uncaptured one. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SnapshotAccess.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-snapshot-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! server =\n task {\n use! session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"Sessions have not been captured.\"\n | Captured _ -> failwith \"Connecting must not capture the hierarchy.\"\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let capturedSession =\n match captured.Sessions |> Snapshot.relation with\n | Captured sessions -> sessions |> Seq.exactlyOne\n | Uncaptured _ -> failwith \"The requested sessions were not captured.\"\n\n let pane =\n match capturedSession.ActivePane |> Snapshot.value with\n | Captured pane -> pane\n | Uncaptured _ -> failwith \"The active pane was not captured.\"\n\n match pane |> Pane.currentPath, pane |> Pane.currentCommand with\n | Some _, Some _ -> printfn \"The captured active pane has a path and command.\"\n | _ -> failwith \"The running pane should report its path and command.\"\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"The original handle is still uncaptured.\"\n | Captured _ -> failwith \"Capturing must return a new immutable handle.\"\n\n // Keep this private daemon alive after its only owned session is disposed.\n let! result =\n server.ExecuteCommandAsync([| \"set-option\"; \"-s\"; \"exit-empty\"; \"off\" |], token)\n\n if result.ExitCode <> 0 then\n failwithf \"Could not keep the empty server alive: %A\" result.StandardErrorLines\n\n return server\n }\n\n let! empty = server |> Server.capture token SnapshotDepth.Sessions\n\n match empty.Sessions |> Snapshot.relation with\n | Captured sessions when sessions.Count = 0 -> printfn \"Captured sessions can be empty.\"\n | _ -> failwith \"An empty captured relation must be distinct from an uncaptured relation.\"\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":16,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-capturestate"},{"id":"LibTmux.FSharp.CaptureState.Captured","name":"Captured","kind":"constant","parent":"LibTmux.FSharp.CaptureState","modifiers":[],"signatures":[{"raw":"Captured of value: 'T","params":[{"name":"value","type":"'T"}],"returns":"LibTmux.FSharp.CaptureState"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Contains the captured value, including an observed empty collection."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":18,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-capturestate-captured"},{"id":"LibTmux.FSharp.CaptureState.Uncaptured","name":"Uncaptured","kind":"constant","parent":"LibTmux.FSharp.CaptureState","modifiers":[],"signatures":[{"raw":"Uncaptured of relation: string * depth: SnapshotDepth","params":[{"name":"relation","type":"string"},{"name":"depth","type":"SnapshotDepth"}],"returns":"LibTmux.FSharp.CaptureState"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Names the unread relation and the depth the snapshot reached."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":20,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-capturestate-uncaptured"},{"id":"LibTmux.FSharp.WindowPlacementKey","name":"WindowPlacementKey","kind":"struct","modifiers":[],"signatures":[{"raw":"type WindowPlacementKey","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Identifies one indexed placement of a window within a server generation."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":24,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowplacementkey"},{"id":"LibTmux.FSharp.Snapshot","name":"Snapshot","kind":"module","modifiers":[],"signatures":[{"raw":"module Snapshot","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Reads captured values without contacting tmux."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":36,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-snapshot"},{"id":"LibTmux.FSharp.Snapshot.relation","name":"relation","kind":"function","parent":"LibTmux.FSharp.Snapshot","modifiers":[],"signatures":[{"raw":"val relation: relation: CapturedRelation<'T> -> CaptureState>","params":[{"name":"relation","type":"CapturedRelation<'T>"}],"returns":"CaptureState>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Distinguishes captured children from an unread relation.","examples":[{"lang":"console","intro":"Pattern match CaptureState before reading relations or active entities, and option before using nullable pane fields. Capturing returns a fresh handle; a captured empty relation is different from an uncaptured one. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SnapshotAccess.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-snapshot-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! server =\n task {\n use! session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"Sessions have not been captured.\"\n | Captured _ -> failwith \"Connecting must not capture the hierarchy.\"\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let capturedSession =\n match captured.Sessions |> Snapshot.relation with\n | Captured sessions -> sessions |> Seq.exactlyOne\n | Uncaptured _ -> failwith \"The requested sessions were not captured.\"\n\n let pane =\n match capturedSession.ActivePane |> Snapshot.value with\n | Captured pane -> pane\n | Uncaptured _ -> failwith \"The active pane was not captured.\"\n\n match pane |> Pane.currentPath, pane |> Pane.currentCommand with\n | Some _, Some _ -> printfn \"The captured active pane has a path and command.\"\n | _ -> failwith \"The running pane should report its path and command.\"\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"The original handle is still uncaptured.\"\n | Captured _ -> failwith \"Capturing must return a new immutable handle.\"\n\n // Keep this private daemon alive after its only owned session is disposed.\n let! result =\n server.ExecuteCommandAsync([| \"set-option\"; \"-s\"; \"exit-empty\"; \"off\" |], token)\n\n if result.ExitCode <> 0 then\n failwithf \"Could not keep the empty server alive: %A\" result.StandardErrorLines\n\n return server\n }\n\n let! empty = server |> Server.capture token SnapshotDepth.Sessions\n\n match empty.Sessions |> Snapshot.relation with\n | Captured sessions when sessions.Count = 0 -> printfn \"Captured sessions can be empty.\"\n | _ -> failwith \"An empty captured relation must be distinct from an uncaptured relation.\"\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":38,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-snapshot-relation"},{"id":"LibTmux.FSharp.Snapshot.value","name":"value","kind":"function","parent":"LibTmux.FSharp.Snapshot","modifiers":[],"signatures":[{"raw":"val value: value: CapturedValue<'T> -> CaptureState<'T> when 'T: not struct","params":[{"name":"value","type":"CapturedValue<'T>"}],"returns":"CaptureState<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Distinguishes a captured child from an unread value.","examples":[{"lang":"console","intro":"Pattern match CaptureState before reading relations or active entities, and option before using nullable pane fields. Capturing returns a fresh handle; a captured empty relation is different from an uncaptured one. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SnapshotAccess.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-snapshot-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! server =\n task {\n use! session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"Sessions have not been captured.\"\n | Captured _ -> failwith \"Connecting must not capture the hierarchy.\"\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let capturedSession =\n match captured.Sessions |> Snapshot.relation with\n | Captured sessions -> sessions |> Seq.exactlyOne\n | Uncaptured _ -> failwith \"The requested sessions were not captured.\"\n\n let pane =\n match capturedSession.ActivePane |> Snapshot.value with\n | Captured pane -> pane\n | Uncaptured _ -> failwith \"The active pane was not captured.\"\n\n match pane |> Pane.currentPath, pane |> Pane.currentCommand with\n | Some _, Some _ -> printfn \"The captured active pane has a path and command.\"\n | _ -> failwith \"The running pane should report its path and command.\"\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"The original handle is still uncaptured.\"\n | Captured _ -> failwith \"Capturing must return a new immutable handle.\"\n\n // Keep this private daemon alive after its only owned session is disposed.\n let! result =\n server.ExecuteCommandAsync([| \"set-option\"; \"-s\"; \"exit-empty\"; \"off\" |], token)\n\n if result.ExitCode <> 0 then\n failwithf \"Could not keep the empty server alive: %A\" result.StandardErrorLines\n\n return server\n }\n\n let! empty = server |> Server.capture token SnapshotDepth.Sessions\n\n match empty.Sessions |> Snapshot.relation with\n | Captured sessions when sessions.Count = 0 -> printfn \"Captured sessions can be empty.\"\n | _ -> failwith \"An empty captured relation must be distinct from an uncaptured relation.\"\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":41,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-snapshot-value"},{"id":"LibTmux.FSharp.Selection","name":"Selection","kind":"module","modifiers":[],"signatures":[{"raw":"module Selection","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Selects values from ordinary F# sequences."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":45,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-selection"},{"id":"LibTmux.FSharp.Selection.exactlyOne","name":"exactlyOne","kind":"function","parent":"LibTmux.FSharp.Selection","modifiers":[],"signatures":[{"raw":"val exactlyOne: source: seq<'T> -> Result<'T, CardinalityError>","params":[{"name":"source","type":"seq<'T>"}],"returns":"Result<'T, CardinalityError>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns the sole match, examining at most two elements.","body":"Disposes the enumerator on success, multiple matches or failure.","examples":[{"lang":"console","intro":"Select one session without using exceptions for ordinary cardinality outcomes. Match Ok, Error NoMatches and Error MultipleMatches explicitly. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SelectionResults.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-selection-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! _demo =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"worker\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n\n match\n sessions\n |> Seq.filter (fun session -> session.Name = \"demo\")\n |> Selection.exactlyOne\n with\n | Ok session -> printfn \"One match: %s\" session.Name\n | Error error -> failwithf \"Expected one demo session, received %A.\" error\n\n match\n sessions\n |> Seq.filter (fun session -> session.Name = \"missing\")\n |> Selection.exactlyOne\n with\n | Error NoMatches -> printfn \"No match: NoMatches\"\n | result -> failwithf \"Expected NoMatches, received %A.\" result\n\n match sessions |> Selection.exactlyOne with\n | Error MultipleMatches -> printfn \"Two matches: MultipleMatches\"\n | result -> failwithf \"Expected MultipleMatches, received %A.\" result\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"One match: demo\nNo match: NoMatches\nTwo matches: MultipleMatches\n"}]},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":48,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-selection-exactlyone"},{"id":"LibTmux.FSharp.TmuxFailure","name":"TmuxFailure","kind":"module","modifiers":[],"signatures":[{"raw":"module TmuxFailure","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Recognises tmux failures by whether running the operation again could repeat what it did.","body":"Every LibTmuxException says whether its command reached tmux, so match\non that rather than on the exception type. NotSent is the only failure\nafter which running the same command again is always safe. It says nothing\nabout commands sent before it: an operation that ran one command and then\nfailed to send another has already acted."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":59,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-tmuxfailure"},{"id":"LibTmux.FSharp.TmuxFailure.|NotSent|_|","name":"|NotSent|_|","kind":"function","parent":"LibTmux.FSharp.TmuxFailure","modifiers":[],"signatures":[{"raw":"val |NotSent|_|): error: exn -> LibTmuxException option","params":[{"name":"error","type":"exn"}],"returns":"LibTmuxException option"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Matches a failure whose command never reached tmux; running it again repeats nothing."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":61,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-tmuxfailure-notsent-_"},{"id":"LibTmux.FSharp.TmuxFailure.|Ran|_|","name":"|Ran|_|","kind":"function","parent":"LibTmux.FSharp.TmuxFailure","modifiers":[],"signatures":[{"raw":"val |Ran|_|): error: exn -> LibTmuxException option","params":[{"name":"error","type":"exn"}],"returns":"LibTmuxException option"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Matches a failure after tmux ran the command: tmux reported an error, or its answer could not be used.","body":"Running the command again repeats whatever it did; a read can simply be read again."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":65,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-tmuxfailure-ran-_"},{"id":"LibTmux.FSharp.TmuxFailure.|MayHaveRun|_|","name":"|MayHaveRun|_|","kind":"function","parent":"LibTmux.FSharp.TmuxFailure","modifiers":[],"signatures":[{"raw":"val |MayHaveRun|_|): error: exn -> exn option","params":[{"name":"error","type":"exn"}],"returns":"exn option"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Matches a failure, or a cancellation, after which tmux may already have acted."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":68,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-tmuxfailure-mayhaverun-_"},{"id":"LibTmux.FSharp.Retry","name":"Retry","kind":"module","modifiers":[],"signatures":[{"raw":"module Retry","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Runs an operation again only when tmux never saw it."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":72,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-retry"},{"id":"LibTmux.FSharp.Retry.ifNotSent","name":"ifNotSent","kind":"function","parent":"LibTmux.FSharp.Retry","modifiers":[],"signatures":[{"raw":"val ifNotSent:\n cancellationToken: CancellationToken -> retries: int -> operation: (CancellationToken -> Task<'T>) -> Task<'T>","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"retries","type":"int"},{"name":"operation","type":"(CancellationToken -> Task<'T>)"}],"returns":"Task<'T>","raises":[{"type":"System.ArgumentOutOfRangeException","doc":"The retry count is negative."}]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Runs an operation, and again up to retries times while nothing it sent reached tmux.","body":"An attempt is repeated only when it fails with NotSent and no\ncommand it sent before that failure reached tmux, counting every command\nthe operation awaits, including through nested retries. An operation of\nseveral steps whose first step ran is therefore not repeated because a\nlater step was refused before dispatch. Any other failure, and\ncancellation, propagates at once. A read that is safe to repeat whatever\nhappened belongs in the caller's own retry policy."},"source":{"file":"src/LibTmux.FSharp/Library.fsi","line":84,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-retry-ifnotsent"},{"id":"LibTmux.FSharp.StreamStep","name":"StreamStep","kind":"enum","modifiers":[],"signatures":[{"raw":"type StreamStep<'State>","params":[]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Represents a decision to continue or stop an event fold."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":11,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-streamstep"},{"id":"LibTmux.FSharp.StreamStep.Continue","name":"Continue","kind":"constant","parent":"LibTmux.FSharp.StreamStep","modifiers":[],"signatures":[{"raw":"Continue of state: 'State","params":[{"name":"state","type":"'State"}],"returns":"LibTmux.FSharp.StreamStep"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Retains state and reads the next event."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":13,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-streamstep-continue"},{"id":"LibTmux.FSharp.StreamStep.Stop","name":"Stop","kind":"constant","parent":"LibTmux.FSharp.StreamStep","modifiers":[],"signatures":[{"raw":"Stop of state: 'State","params":[{"name":"state","type":"'State"}],"returns":"LibTmux.FSharp.StreamStep"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Retains state and stops before reading another event."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":15,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-streamstep-stop"},{"id":"LibTmux.FSharp.Control","name":"Control","kind":"module","modifiers":[],"signatures":[{"raw":"module Control","params":[]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Opens control clients and reads their event streams.","body":"Streams are cold: nothing is read until a consumer enumerates one, and the\nconsumer supplies the cancellation token. Any IAsyncEnumerable\nlibrary composes them, including FSharp.Control.TaskSeq."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":24,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control"},{"id":"LibTmux.FSharp.Control.enter","name":"enter","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val enter: cancellationToken: CancellationToken -> server: LibTmux.Server -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"server","type":"LibTmux.Server"}],"returns":"Task"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Opens a control client attached to the most recently used session.","body":"The caller owns and asynchronously disposes the returned client. On a\nserver with several sessions, enterSession attaches to a chosen one."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":30,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-enter"},{"id":"LibTmux.FSharp.Control.enterSession","name":"enterSession","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val enterSession: cancellationToken: CancellationToken -> session: LibTmux.Session -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"session","type":"LibTmux.Session"}],"returns":"Task","raises":[{"type":"LibTmux.IncompleteSnapshotException","doc":"The session was not read through a server."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Opens a control client attached to a session.","body":"The caller owns and asynchronously disposes the returned client.","examples":[{"lang":"console","intro":"Attach one control client, then follow two panes' output as each event names its pane. Each pane's end arrives as TmuxPaneGoneEvent in the order the panes were given. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/WatchPanes.fs","code":"// fsharp-snippet: WatchPanes\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-watch-panes-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! session =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"work\", Command = \"exec sleep 60\"), token)\n\n // The client buffers everything from the moment it attaches, so the\n // panes it should see can start afterwards.\n use! client = session |> Control.enterSession token\n let! first = session |> Session.panes |> Query.list token\n\n let start command =\n first[0] |> Pane.split token (SplitPaneRequest(Command = command))\n\n let! build = start \"printf 'build: ok\\\\n'; exec sleep 60\"\n let! test = start \"printf 'test: ok\\\\n'; exec sleep 60\"\n\n // One client, both panes: each output event names its pane.\n let! printed =\n client\n |> Control.watchPanes [ build; test ]\n |> Control.foldWhile\n token\n (fun (printed: Map) event ->\n task {\n match event with\n | :? TmuxOutputEvent as output ->\n let pane = output.PaneId.ToString()\n let sofar = printed |> Map.tryFind pane |> Option.defaultValue \"\"\n let printed = printed |> Map.add pane (sofar + output.Data)\n\n if printed.Count = 2 && printed |> Map.forall (fun _ text -> text.Contains '\\n') then\n return StreamStep.Stop printed\n else\n return StreamStep.Continue printed\n | _ -> return StreamStep.Continue printed\n })\n Map.empty\n\n // Each pane's end arrives as TmuxPaneGoneEvent, and the stream ends\n // once both are gone.\n do! build.KillAsync(cancellationToken = token)\n do! test.KillAsync(cancellationToken = token)\n\n let! ended =\n client\n |> Control.watchPanes [ build; test ]\n |> Control.foldWhile\n token\n (fun ended event ->\n task {\n match event with\n | :? TmuxPaneGoneEvent as gone -> return StreamStep.Continue(ended @ [ gone.PaneId ])\n | _ -> return StreamStep.Continue ended\n })\n []\n\n for pane in [ build; test ] do\n printfn \"%s\" (printed[pane.Id.ToString()].Trim())\n\n printfn \"ended in order given: %b\" (ended = [ build.Id; test.Id ])\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"build: ok\ntest: ok\nended in order given: true\n"}]},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":35,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-entersession"},{"id":"LibTmux.FSharp.Control.useSession","name":"useSession","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val useSession: work: (IControlModeSession -> Task<'State>) -> session: IControlModeSession -> Task<'State>","params":[{"name":"work","type":"(IControlModeSession -> Task<'State>)"},{"name":"session","type":"IControlModeSession"}],"returns":"Task<'State>"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Runs work with an owned control client and disposes it after the returned task completes.","body":"The work function receives the client and must forward its own cancellation token."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":39,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-usesession"},{"id":"LibTmux.FSharp.Control.withSession","name":"withSession","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val withSession:\n cancellationToken: CancellationToken ->\n work: (IControlModeSession -> Task<'State>) ->\n server: LibTmux.Server ->\n Task<'State>","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"work","type":"(IControlModeSession -> Task<'State>)"},{"name":"server","type":"LibTmux.Server"}],"returns":"Task<'State>"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Opens a control client, runs work, and disposes the client after the returned task completes.","body":"The cancellation token starts the client; the work function forwards its\nown token. Like enter, the client attaches to the most recently\nused session; for a chosen one, pass enterSession's client to\nuseSession."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":48,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-withsession"},{"id":"LibTmux.FSharp.Control.events","name":"events","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val events: session: IControlModeSession -> IAsyncEnumerable","params":[{"name":"session","type":"IControlModeSession"}],"returns":"IAsyncEnumerable"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Streams every event a control client reports.","body":"A client has one event stream; two consumers each see only part of it."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":56,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-events"},{"id":"LibTmux.FSharp.Control.watchPane","name":"watchPane","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val watchPane: pane: LibTmux.Pane -> session: IControlModeSession -> IAsyncEnumerable","params":[{"name":"pane","type":"LibTmux.Pane"},{"name":"session","type":"IControlModeSession"}],"returns":"IAsyncEnumerable"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Streams one pane's output from a borrowed control client.","body":"The stream ends with TmuxPaneGoneEvent once the pane is confirmed\ngone, or with TmuxExitEvent when the client ends.\nTmuxPanePausedEvent and TmuxPaneContinuedEvent bracket output\na slow reader missed. It reads the client's single event stream, so other\nevents are consumed and dropped; follow several panes through one client\nwith watchPanes.\n\ntmux discards output it has not yet sent once a pane's program exits,\nso the last lines of a program that exits at once may never arrive.\nRead final output with Pane.run, or capture a pane kept with\nremain-on-exit."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":75,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-watchpane"},{"id":"LibTmux.FSharp.Control.watchPanes","name":"watchPanes","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val watchPanes: panes: LibTmux.Pane list -> session: IControlModeSession -> IAsyncEnumerable","params":[{"name":"panes","type":"LibTmux.Pane list"},{"name":"session","type":"IControlModeSession"}],"returns":"IAsyncEnumerable","raises":[{"type":"System.ArgumentException","doc":"The list is empty."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Streams several panes' output from one borrowed control client.","body":"Each output event names its pane. Each pane confirmed gone is reported by\na TmuxPaneGoneEvent after the output buffered before it went,\nunless the client ends first, and the stream ends once every pane is gone,\nor with TmuxExitEvent when the client ends. Events after that stay\nunread for the client's next reader.","examples":[{"lang":"console","intro":"Attach one control client, then follow two panes' output as each event names its pane. Each pane's end arrives as TmuxPaneGoneEvent in the order the panes were given. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/WatchPanes.fs","code":"// fsharp-snippet: WatchPanes\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-watch-panes-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! session =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"work\", Command = \"exec sleep 60\"), token)\n\n // The client buffers everything from the moment it attaches, so the\n // panes it should see can start afterwards.\n use! client = session |> Control.enterSession token\n let! first = session |> Session.panes |> Query.list token\n\n let start command =\n first[0] |> Pane.split token (SplitPaneRequest(Command = command))\n\n let! build = start \"printf 'build: ok\\\\n'; exec sleep 60\"\n let! test = start \"printf 'test: ok\\\\n'; exec sleep 60\"\n\n // One client, both panes: each output event names its pane.\n let! printed =\n client\n |> Control.watchPanes [ build; test ]\n |> Control.foldWhile\n token\n (fun (printed: Map) event ->\n task {\n match event with\n | :? TmuxOutputEvent as output ->\n let pane = output.PaneId.ToString()\n let sofar = printed |> Map.tryFind pane |> Option.defaultValue \"\"\n let printed = printed |> Map.add pane (sofar + output.Data)\n\n if printed.Count = 2 && printed |> Map.forall (fun _ text -> text.Contains '\\n') then\n return StreamStep.Stop printed\n else\n return StreamStep.Continue printed\n | _ -> return StreamStep.Continue printed\n })\n Map.empty\n\n // Each pane's end arrives as TmuxPaneGoneEvent, and the stream ends\n // once both are gone.\n do! build.KillAsync(cancellationToken = token)\n do! test.KillAsync(cancellationToken = token)\n\n let! ended =\n client\n |> Control.watchPanes [ build; test ]\n |> Control.foldWhile\n token\n (fun ended event ->\n task {\n match event with\n | :? TmuxPaneGoneEvent as gone -> return StreamStep.Continue(ended @ [ gone.PaneId ])\n | _ -> return StreamStep.Continue ended\n })\n []\n\n for pane in [ build; test ] do\n printfn \"%s\" (printed[pane.Id.ToString()].Trim())\n\n printfn \"ended in order given: %b\" (ended = [ build.Id; test.Id ])\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"build: ok\ntest: ok\nended in order given: true\n"}]},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":86,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-watchpanes"},{"id":"LibTmux.FSharp.Control.iter","name":"iter","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val iter:\n cancellationToken: CancellationToken -> handler: ('T -> Task) -> source: IAsyncEnumerable<'T> -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"handler","type":"('T -> Task)"},{"name":"source","type":"IAsyncEnumerable<'T>"}],"returns":"Task"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Awaits one handler at a time for each item until the stream ends.","body":"The helper disposes its enumerator but leaves the control client open."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":90,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-iter"},{"id":"LibTmux.FSharp.Control.foldWhile","name":"foldWhile","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val foldWhile:\n cancellationToken: CancellationToken ->\n folder: ('State -> 'T -> Task>) ->\n initial: 'State ->\n source: IAsyncEnumerable<'T> ->\n Task<'State>","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"folder","type":"('State -> 'T -> Task>)"},{"name":"initial","type":"'State"},{"name":"source","type":"IAsyncEnumerable<'T>"}],"returns":"Task<'State>"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Folds items until the stream ends or the folder returns Stop.","body":"The helper disposes its enumerator but leaves the control client open.","examples":[{"lang":"console","intro":"Attach one control client, then follow two panes' output as each event names its pane. Each pane's end arrives as TmuxPaneGoneEvent in the order the panes were given. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/WatchPanes.fs","code":"// fsharp-snippet: WatchPanes\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-watch-panes-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! session =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"work\", Command = \"exec sleep 60\"), token)\n\n // The client buffers everything from the moment it attaches, so the\n // panes it should see can start afterwards.\n use! client = session |> Control.enterSession token\n let! first = session |> Session.panes |> Query.list token\n\n let start command =\n first[0] |> Pane.split token (SplitPaneRequest(Command = command))\n\n let! build = start \"printf 'build: ok\\\\n'; exec sleep 60\"\n let! test = start \"printf 'test: ok\\\\n'; exec sleep 60\"\n\n // One client, both panes: each output event names its pane.\n let! printed =\n client\n |> Control.watchPanes [ build; test ]\n |> Control.foldWhile\n token\n (fun (printed: Map) event ->\n task {\n match event with\n | :? TmuxOutputEvent as output ->\n let pane = output.PaneId.ToString()\n let sofar = printed |> Map.tryFind pane |> Option.defaultValue \"\"\n let printed = printed |> Map.add pane (sofar + output.Data)\n\n if printed.Count = 2 && printed |> Map.forall (fun _ text -> text.Contains '\\n') then\n return StreamStep.Stop printed\n else\n return StreamStep.Continue printed\n | _ -> return StreamStep.Continue printed\n })\n Map.empty\n\n // Each pane's end arrives as TmuxPaneGoneEvent, and the stream ends\n // once both are gone.\n do! build.KillAsync(cancellationToken = token)\n do! test.KillAsync(cancellationToken = token)\n\n let! ended =\n client\n |> Control.watchPanes [ build; test ]\n |> Control.foldWhile\n token\n (fun ended event ->\n task {\n match event with\n | :? TmuxPaneGoneEvent as gone -> return StreamStep.Continue(ended @ [ gone.PaneId ])\n | _ -> return StreamStep.Continue ended\n })\n []\n\n for pane in [ build; test ] do\n printfn \"%s\" (printed[pane.Id.ToString()].Trim())\n\n printfn \"ended in order given: %b\" (ended = [ build.Id; test.Id ])\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"build: ok\ntest: ok\nended in order given: true\n"}]},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":95,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-foldwhile"},{"id":"LibTmux.FSharp.Control.cleanupFailure","name":"cleanupFailure","kind":"function","parent":"LibTmux.FSharp.Control","modifiers":[],"signatures":[{"raw":"val cleanupFailure: error: exn -> exn option","params":[{"name":"error","type":"exn"}],"returns":"exn option"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns the cleanup failure attached to the exception a helper rethrew.","body":"When work and cleanup both fail, the helpers rethrow the work's exception\nunchanged and attach the cleanup's; this reads it back. The work's\nexception keeps its type so that a handler written for it, such as\n:? TmuxPaneException or a when filter, still matches;\nan AggregateException of both would slip past those handlers."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":110,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-control-cleanupfailure"},{"id":"LibTmux.FSharp.Mirror","name":"Mirror","kind":"module","modifiers":[],"signatures":[{"raw":"module Mirror","params":[]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Follows a server's sessions, windows, panes and clients as tmux announces changes.","body":"Each announcement starts a fresh capture; a capture that finds nothing\ndifferent publishes nothing. tmux does not announce a pane's running command\nor working directory, nor layout changes in other sessions; use\nstartRefreshing to see those within an interval."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":120,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-mirror"},{"id":"LibTmux.FSharp.Mirror.start","name":"start","kind":"function","parent":"LibTmux.FSharp.Mirror","modifiers":[],"signatures":[{"raw":"val start: cancellationToken: CancellationToken -> anchor: LibTmux.Session -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"anchor","type":"LibTmux.Session"}],"returns":"Task","raises":[{"type":"LibTmux.IncompleteSnapshotException","doc":"The session was not read through a server."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Mirrors the server an anchor session belongs to, capturing on each announcement.","body":"The caller owns and asynchronously disposes the returned mirror."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":124,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-mirror-start"},{"id":"LibTmux.FSharp.Mirror.startRefreshing","name":"startRefreshing","kind":"function","parent":"LibTmux.FSharp.Mirror","modifiers":[],"signatures":[{"raw":"val startRefreshing:\n cancellationToken: CancellationToken -> every: TimeSpan -> anchor: LibTmux.Session -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"every","type":"TimeSpan"},{"name":"anchor","type":"LibTmux.Session"}],"returns":"Task","raises":[{"type":"System.ArgumentOutOfRangeException","doc":"The interval is negative."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Mirrors a server, also capturing whenever it has been quiet for an interval.","body":"The caller owns and asynchronously disposes the returned mirror.","examples":[{"lang":"console","intro":"Keep a current copy of a server's sessions, windows and panes as tmux announces changes, and wait until it shows a state instead of polling. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/LiveState.fs","code":"// fsharp-snippet: LiveState\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-live-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! session =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"work\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n // Captures again on each change tmux announces, and every 200 ms for\n // changes it does not, such as the command a pane runs.\n use! mirror =\n session |> Mirror.startRefreshing token (TimeSpan.FromMilliseconds 200.)\n\n let! _ =\n session.CreateWindowAsync(NewWindowRequest(Name = \"logs\", Command = \"/bin/sh\"), token)\n\n let! withLogs =\n mirror\n |> Mirror.waitUntil token (TimeSpan.FromSeconds 5.) (fun view ->\n view.Server.Windows |> Seq.exists (fun window -> window.Name = \"logs\"))\n\n let! panes = session |> Session.panes |> Query.list token\n\n do!\n panes[0]\n |> Pane.sendKeys token (SendKeysRequest(Text = \"exec sleep 30\", Literal = true))\n\n let! sleeping =\n mirror\n |> Mirror.waitUntil token (TimeSpan.FromSeconds 5.) (fun view ->\n view.Server.Panes |> Seq.exists (fun pane -> pane.CurrentCommand = \"sleep\"))\n\n printfn \"windows: %s\" (String.Join(\", \", [ for window in withLogs.Server.Windows -> window.Name ]))\n\n printfn\n \"sleeping panes: %d\"\n (sleeping.Server.Panes\n |> Seq.filter (fun pane -> pane.CurrentCommand = \"sleep\")\n |> Seq.length)\n\n printfn \"newer view: %b\" (sleeping.Epoch > withLogs.Epoch)\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"windows: shell, logs\nsleeping panes: 1\nnewer view: true\n"}]},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":129,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-mirror-startrefreshing"},{"id":"LibTmux.FSharp.Mirror.current","name":"current","kind":"function","parent":"LibTmux.FSharp.Mirror","modifiers":[],"signatures":[{"raw":"val current: mirror: ServerMirror -> ServerMirrorView","params":[{"name":"mirror","type":"ServerMirror"}],"returns":"ServerMirrorView"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns the latest published view."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":133,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-mirror-current"},{"id":"LibTmux.FSharp.Mirror.views","name":"views","kind":"function","parent":"LibTmux.FSharp.Mirror","modifiers":[],"signatures":[{"raw":"val views: mirror: ServerMirror -> IAsyncEnumerable","params":[{"name":"mirror","type":"ServerMirror"}],"returns":"IAsyncEnumerable"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Streams the current view and each newer one, skipping views published while the reader was busy.","body":"The stream is cold, ends when the mirror ends, and raises the failure that ended it."},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":137,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-mirror-views"},{"id":"LibTmux.FSharp.Mirror.waitUntil","name":"waitUntil","kind":"function","parent":"LibTmux.FSharp.Mirror","modifiers":[],"signatures":[{"raw":"val waitUntil:\n cancellationToken: CancellationToken ->\n timeout: TimeSpan ->\n condition: (ServerMirrorView -> bool) ->\n mirror: ServerMirror ->\n Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"timeout","type":"TimeSpan"},{"name":"condition","type":"(ServerMirrorView -> bool)"},{"name":"mirror","type":"ServerMirror"}],"returns":"Task","raises":[{"type":"LibTmux.TmuxWaitTimeoutException","doc":"No view satisfied the condition in time."},{"type":"System.InvalidOperationException","doc":"The mirror ended first."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Waits until a view satisfies a condition, testing the current view first.","examples":[{"lang":"console","intro":"Keep a current copy of a server's sessions, windows and panes as tmux announces changes, and wait until it shows a state instead of polling. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/LiveState.fs","code":"// fsharp-snippet: LiveState\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-live-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! session =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"work\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n // Captures again on each change tmux announces, and every 200 ms for\n // changes it does not, such as the command a pane runs.\n use! mirror =\n session |> Mirror.startRefreshing token (TimeSpan.FromMilliseconds 200.)\n\n let! _ =\n session.CreateWindowAsync(NewWindowRequest(Name = \"logs\", Command = \"/bin/sh\"), token)\n\n let! withLogs =\n mirror\n |> Mirror.waitUntil token (TimeSpan.FromSeconds 5.) (fun view ->\n view.Server.Windows |> Seq.exists (fun window -> window.Name = \"logs\"))\n\n let! panes = session |> Session.panes |> Query.list token\n\n do!\n panes[0]\n |> Pane.sendKeys token (SendKeysRequest(Text = \"exec sleep 30\", Literal = true))\n\n let! sleeping =\n mirror\n |> Mirror.waitUntil token (TimeSpan.FromSeconds 5.) (fun view ->\n view.Server.Panes |> Seq.exists (fun pane -> pane.CurrentCommand = \"sleep\"))\n\n printfn \"windows: %s\" (String.Join(\", \", [ for window in withLogs.Server.Windows -> window.Name ]))\n\n printfn\n \"sleeping panes: %d\"\n (sleeping.Server.Panes\n |> Seq.filter (fun pane -> pane.CurrentCommand = \"sleep\")\n |> Seq.length)\n\n printfn \"newer view: %b\" (sleeping.Epoch > withLogs.Epoch)\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"windows: shell, logs\nsleeping panes: 1\nnewer view: true\n"}]},"source":{"file":"src/LibTmux.FSharp/Control.fsi","line":142,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-mirror-waituntil"},{"id":"LibTmux.FSharp.Filter","name":"Filter","kind":"class","modifiers":[],"signatures":[{"raw":"type Filter","params":[]},{"raw":"module Filter","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Describes a validated portable predicate over one entity type."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":11,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter"},{"id":"LibTmux.FSharp.Field","name":"Field","kind":"class","modifiers":[],"signatures":[{"raw":"type Field","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies a supported scalar field and its query constant type."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":15,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-field"},{"id":"LibTmux.FSharp.Relation","name":"Relation","kind":"class","modifiers":[],"signatures":[{"raw":"type Relation","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies a supported captured relation between two entity types."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":19,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-relation"},{"id":"LibTmux.FSharp.Filter.eq","name":"eq","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val eq: value: 'Value -> field: Field<'T, 'Value> -> Filter<'T>","params":[{"name":"value","type":"'Value"},{"name":"field","type":"Field<'T, 'Value>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a field equal to a constant.","examples":[{"lang":"console","intro":"Compare native sequence filtering with portable F# filters. Capture the hierarchy before following pane and window relations; listing alone does not capture children. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerFilters.fs","code":"// fsharp-snippet: ServerFilters\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-filters-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n\n let nativeMatches =\n sessions\n |> Seq.filter (fun session -> session.Name.StartsWith(\"de\", StringComparison.Ordinal))\n |> Seq.toList\n\n let portableMatches =\n sessions |> Query.matching (Filter.startsWith \"de\" SessionFields.name)\n\n let! windows = server |> Server.windows |> Query.list token\n\n let matchingWindows =\n windows |> Query.matching (Filter.eq \"shell\" WindowFields.name)\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let demoSession =\n captured.Sessions |> Seq.find (fun session -> session.Id = demo.Value.Id)\n\n let demoPane =\n demoSession.Windows\n |> Seq.collect (fun window -> window.Panes)\n |> Seq.exactlyOne\n\n let paneFilter = Filter.eq demoPane.Id PaneFields.id\n let matchingPanes = captured.Panes |> Query.matching paneFilter\n\n let hasDemoPane =\n paneFilter |> Filter.any WindowFields.panes |> Filter.any SessionFields.windows\n\n let matchingParents = captured.Sessions |> Query.matching hasDemoPane\n\n use! _control = server |> Control.enter token\n let! clients = server |> Server.clients |> Query.list token\n\n let controlClients =\n clients |> Query.matching (Filter.eq true ClientFields.controlMode)\n\n let names (sessions: seq) =\n [ for session in sessions -> session.Name ]\n\n printfn \"native: %A\" (names nativeMatches)\n printfn \"portable: %A\" (names portableMatches)\n printfn \"windows: %A\" [ for window in matchingWindows -> window.Name ]\n printfn \"panes: %d\" matchingPanes.Count\n printfn \"parents: %A\" (names matchingParents)\n printfn \"control clients: %d\" controlClients.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"native: [\"demo\"]\nportable: [\"demo\"]\nwindows: [\"shell\"]\npanes: 1\nparents: [\"demo\"]\ncontrol clients: 1\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":33,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-eq"},{"id":"LibTmux.FSharp.Filter.ne","name":"ne","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val ne: value: 'Value -> field: Field<'T, 'Value> -> Filter<'T>","params":[{"name":"value","type":"'Value"},{"name":"field","type":"Field<'T, 'Value>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a field not equal to a constant."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":36,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-ne"},{"id":"LibTmux.FSharp.Filter.eqIgnoreCase","name":"eqIgnoreCase","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val eqIgnoreCase: value: string -> field: Field<'T, string> -> Filter<'T>","params":[{"name":"value","type":"string"},{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a string equal to a constant ignoring case."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":39,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-eqignorecase"},{"id":"LibTmux.FSharp.Filter.isNull","name":"isNull","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val isNull: field: Field<'T, string> -> Filter<'T>","params":[{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a captured null string without treating an uncaptured field as absent."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":42,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-isnull"},{"id":"LibTmux.FSharp.Filter.startsWith","name":"startsWith","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val startsWith: prefix: string -> field: Field<'T, string> -> Filter<'T>","params":[{"name":"prefix","type":"string"},{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a string prefix.","examples":[{"lang":"console","intro":"Compare native sequence filtering with portable F# filters. Capture the hierarchy before following pane and window relations; listing alone does not capture children. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerFilters.fs","code":"// fsharp-snippet: ServerFilters\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-filters-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n\n let nativeMatches =\n sessions\n |> Seq.filter (fun session -> session.Name.StartsWith(\"de\", StringComparison.Ordinal))\n |> Seq.toList\n\n let portableMatches =\n sessions |> Query.matching (Filter.startsWith \"de\" SessionFields.name)\n\n let! windows = server |> Server.windows |> Query.list token\n\n let matchingWindows =\n windows |> Query.matching (Filter.eq \"shell\" WindowFields.name)\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let demoSession =\n captured.Sessions |> Seq.find (fun session -> session.Id = demo.Value.Id)\n\n let demoPane =\n demoSession.Windows\n |> Seq.collect (fun window -> window.Panes)\n |> Seq.exactlyOne\n\n let paneFilter = Filter.eq demoPane.Id PaneFields.id\n let matchingPanes = captured.Panes |> Query.matching paneFilter\n\n let hasDemoPane =\n paneFilter |> Filter.any WindowFields.panes |> Filter.any SessionFields.windows\n\n let matchingParents = captured.Sessions |> Query.matching hasDemoPane\n\n use! _control = server |> Control.enter token\n let! clients = server |> Server.clients |> Query.list token\n\n let controlClients =\n clients |> Query.matching (Filter.eq true ClientFields.controlMode)\n\n let names (sessions: seq) =\n [ for session in sessions -> session.Name ]\n\n printfn \"native: %A\" (names nativeMatches)\n printfn \"portable: %A\" (names portableMatches)\n printfn \"windows: %A\" [ for window in matchingWindows -> window.Name ]\n printfn \"panes: %d\" matchingPanes.Count\n printfn \"parents: %A\" (names matchingParents)\n printfn \"control clients: %d\" controlClients.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"native: [\"demo\"]\nportable: [\"demo\"]\nwindows: [\"shell\"]\npanes: 1\nparents: [\"demo\"]\ncontrol clients: 1\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":45,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-startswith"},{"id":"LibTmux.FSharp.Filter.startsWithIgnoreCase","name":"startsWithIgnoreCase","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val startsWithIgnoreCase: prefix: string -> field: Field<'T, string> -> Filter<'T>","params":[{"name":"prefix","type":"string"},{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a string prefix ignoring case."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":48,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-startswithignorecase"},{"id":"LibTmux.FSharp.Filter.endsWith","name":"endsWith","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val endsWith: suffix: string -> field: Field<'T, string> -> Filter<'T>","params":[{"name":"suffix","type":"string"},{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a string suffix."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":51,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-endswith"},{"id":"LibTmux.FSharp.Filter.endsWithIgnoreCase","name":"endsWithIgnoreCase","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val endsWithIgnoreCase: suffix: string -> field: Field<'T, string> -> Filter<'T>","params":[{"name":"suffix","type":"string"},{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a string suffix ignoring case."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":54,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-endswithignorecase"},{"id":"LibTmux.FSharp.Filter.contains","name":"contains","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val contains: text: string -> field: Field<'T, string> -> Filter<'T>","params":[{"name":"text","type":"string"},{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a string containing a substring."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":57,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-contains"},{"id":"LibTmux.FSharp.Filter.containsIgnoreCase","name":"containsIgnoreCase","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val containsIgnoreCase: text: string -> field: Field<'T, string> -> Filter<'T>","params":[{"name":"text","type":"string"},{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a string containing a substring ignoring case."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":60,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-containsignorecase"},{"id":"LibTmux.FSharp.Filter.matches","name":"matches","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val matches: pattern: string -> field: Field<'T, string> -> Filter<'T>","params":[{"name":"pattern","type":"string"},{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>","raises":[{"type":"LibTmux.UnsupportedQueryExpressionException","doc":"The pattern is invalid or longer than 1024 characters."}]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a string against a culture-invariant .NET regular expression.","body":"The pattern is unanchored, as Regex.IsMatch is; one match may run for one second."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":65,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-matches"},{"id":"LibTmux.FSharp.Filter.matchesIgnoreCase","name":"matchesIgnoreCase","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val matchesIgnoreCase: pattern: string -> field: Field<'T, string> -> Filter<'T>","params":[{"name":"pattern","type":"string"},{"name":"field","type":"Field<'T, string>"}],"returns":"Filter<'T>","raises":[{"type":"LibTmux.UnsupportedQueryExpressionException","doc":"The pattern is invalid or longer than 1024 characters."}]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a string against a culture-invariant .NET regular expression ignoring case."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":69,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-matchesignorecase"},{"id":"LibTmux.FSharp.Filter.lt","name":"lt","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val lt: value: int -> field: Field<'T, int> -> Filter<'T>","params":[{"name":"value","type":"int"},{"name":"field","type":"Field<'T, int>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a count below a constant."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":72,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-lt"},{"id":"LibTmux.FSharp.Filter.le","name":"le","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val le: value: int -> field: Field<'T, int> -> Filter<'T>","params":[{"name":"value","type":"int"},{"name":"field","type":"Field<'T, int>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a count at most a constant."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":75,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-le"},{"id":"LibTmux.FSharp.Filter.gt","name":"gt","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val gt: value: int -> field: Field<'T, int> -> Filter<'T>","params":[{"name":"value","type":"int"},{"name":"field","type":"Field<'T, int>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a count above a constant."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":78,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-gt"},{"id":"LibTmux.FSharp.Filter.ge","name":"ge","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val ge: value: int -> field: Field<'T, int> -> Filter<'T>","params":[{"name":"value","type":"int"},{"name":"field","type":"Field<'T, int>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a count at least a constant."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":81,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-ge"},{"id":"LibTmux.FSharp.Filter.oneOf","name":"oneOf","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val oneOf: values: 'Value list -> field: Field<'T, 'Value> -> Filter<'T>","params":[{"name":"values","type":"'Value list"},{"name":"field","type":"Field<'T, 'Value>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches any constant in a list; an empty list matches nothing."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":84,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-oneof"},{"id":"LibTmux.FSharp.Filter.notOneOf","name":"notOneOf","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val notOneOf: values: 'Value list -> field: Field<'T, 'Value> -> Filter<'T>","params":[{"name":"values","type":"'Value list"},{"name":"field","type":"Field<'T, 'Value>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches no constant in a list; an empty list matches everything."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":87,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-notoneof"},{"id":"LibTmux.FSharp.Filter.allOf","name":"allOf","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val allOf: filters: Filter<'T> list -> Filter<'T>","params":[{"name":"filters","type":"Filter<'T> list"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Requires every predicate in order; an empty list matches everything."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":90,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-allof"},{"id":"LibTmux.FSharp.Filter.anyOf","name":"anyOf","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val anyOf: filters: Filter<'T> list -> Filter<'T>","params":[{"name":"filters","type":"Filter<'T> list"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Requires at least one predicate in order; an empty list matches nothing."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":93,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-anyof"},{"id":"LibTmux.FSharp.Filter.negate","name":"negate","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val negate: filter: Filter<'T> -> Filter<'T>","params":[{"name":"filter","type":"Filter<'T>"}],"returns":"Filter<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Negates a portable predicate."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":96,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-negate"},{"id":"LibTmux.FSharp.Filter.any","name":"any","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val any: relation: Relation<'Parent, 'Child> -> predicate: Filter<'Child> -> Filter<'Parent>","params":[{"name":"relation","type":"Relation<'Parent, 'Child>"},{"name":"predicate","type":"Filter<'Child>"}],"returns":"Filter<'Parent>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Requires a matching child, returning false for an empty captured relation.","examples":[{"lang":"console","intro":"Compare native sequence filtering with portable F# filters. Capture the hierarchy before following pane and window relations; listing alone does not capture children. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerFilters.fs","code":"// fsharp-snippet: ServerFilters\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-filters-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n\n let nativeMatches =\n sessions\n |> Seq.filter (fun session -> session.Name.StartsWith(\"de\", StringComparison.Ordinal))\n |> Seq.toList\n\n let portableMatches =\n sessions |> Query.matching (Filter.startsWith \"de\" SessionFields.name)\n\n let! windows = server |> Server.windows |> Query.list token\n\n let matchingWindows =\n windows |> Query.matching (Filter.eq \"shell\" WindowFields.name)\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let demoSession =\n captured.Sessions |> Seq.find (fun session -> session.Id = demo.Value.Id)\n\n let demoPane =\n demoSession.Windows\n |> Seq.collect (fun window -> window.Panes)\n |> Seq.exactlyOne\n\n let paneFilter = Filter.eq demoPane.Id PaneFields.id\n let matchingPanes = captured.Panes |> Query.matching paneFilter\n\n let hasDemoPane =\n paneFilter |> Filter.any WindowFields.panes |> Filter.any SessionFields.windows\n\n let matchingParents = captured.Sessions |> Query.matching hasDemoPane\n\n use! _control = server |> Control.enter token\n let! clients = server |> Server.clients |> Query.list token\n\n let controlClients =\n clients |> Query.matching (Filter.eq true ClientFields.controlMode)\n\n let names (sessions: seq) =\n [ for session in sessions -> session.Name ]\n\n printfn \"native: %A\" (names nativeMatches)\n printfn \"portable: %A\" (names portableMatches)\n printfn \"windows: %A\" [ for window in matchingWindows -> window.Name ]\n printfn \"panes: %d\" matchingPanes.Count\n printfn \"parents: %A\" (names matchingParents)\n printfn \"control clients: %d\" controlClients.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"native: [\"demo\"]\nportable: [\"demo\"]\nwindows: [\"shell\"]\npanes: 1\nparents: [\"demo\"]\ncontrol clients: 1\n"},{"lang":"console","intro":"Read sessions, windows and panes through one query vocabulary. tmux drops rows a filter cannot keep, every returned row is rechecked, and a screen search finds the pane showing a line. atMostOne finds an object or reports it absent, and refuses several. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/Queries.fs","code":"// fsharp-snippet: Queries\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-queries-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! build =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"build\", WindowName = \"make\", Command = \"/bin/sh\"),\n token\n )\n\n let! _ =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(\n Name = \"logs\",\n WindowName = \"tail\",\n Command = \"printf 'ERROR: disk full\\\\n'; exec sleep 60\"\n ),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n let! logs =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"logs\")\n |> Query.list token\n\n let! logPane = logs[0] |> Session.panes |> Query.list token\n\n let! logged = logPane[0] |> Pane.waitForText token (TimeSpan.FromSeconds 5.) \"ERROR:\"\n\n\n // tmux narrows each listing itself; every row is then rechecked.\n let! named =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.startsWith \"bu\")\n |> Query.exactlyOne token\n\n // A relation filter reads only the sessions whose windows can match.\n let! tailing =\n server\n |> Server.sessions\n |> Query.where (WindowFields.name |> Filter.eq \"tail\" |> Filter.any SessionFields.windows)\n |> Query.list token\n\n // Session and window scopes use the same functions.\n let! make =\n build\n |> Session.windows\n |> Query.where (WindowFields.name |> Filter.eq \"make\")\n |> Query.tryExactlyOne token\n\n // tryExactlyOne is None when no window, or several, matched.\n let! makePanes =\n task {\n match make with\n | Some window ->\n let! panes = window |> Window.panes |> Query.list token\n return Some panes.Count\n | None -> return None\n }\n\n // tmux searches each pane's visible rows, as find-window does.\n let! showingErrors =\n server\n |> Server.panes\n |> Query.showing (ScreenSearch.Text \"ERROR:\")\n |> Query.list token\n\n let! errorRow =\n showingErrors[0] |> Pane.findOnScreen token (ScreenSearch.Text \"disk full\")\n\n // A raw tmux filter is the escape hatch; nothing rechecks it.\n let! active =\n server\n |> Server.panes\n |> Query.whereUnsafe (UnsafeTmuxFilter \"#{pane_active}\")\n |> Query.list token\n\n // Find a session or create it: atMostOne is None only when nothing\n // matched, and raises when several do.\n let deploy =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"deploy\")\n\n let! existing = deploy |> Query.atMostOne token\n\n if existing.IsNone then\n let! _ =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"deploy\", Command = \"exec sleep 60\"), token)\n\n ()\n\n let! found = deploy |> Query.atMostOne token\n\n let! several =\n task {\n try\n let! _ = server |> Server.sessions |> Query.atMostOne token\n return \"one or none\"\n with :? InvalidOperationException ->\n return \"refused\"\n }\n\n printfn \"logged: %b\" logged.Found\n printfn \"named: %A\" (named |> Result.map (fun session -> session.Name))\n printfn \"tailing: %A\" [ for session in tailing -> session.Name ]\n printfn \"make panes: %A\" makePanes\n printfn \"error row: %A\" errorRow\n printfn \"active panes: %d\" active.Count\n printfn \"deploy: absent %b, then found %b\" existing.IsNone found.IsSome\n printfn \"at most one of every session: %s\" several\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"logged: true\nnamed: Ok \"build\"\ntailing: [\"logs\"]\nmake panes: Some 1\nerror row: Some 1\nactive panes: 2\ndeploy: absent true, then found true\nat most one of every session: refused\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":99,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-any"},{"id":"LibTmux.FSharp.Filter.all","name":"all","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val all: relation: Relation<'Parent, 'Child> -> predicate: Filter<'Child> -> Filter<'Parent>","params":[{"name":"relation","type":"Relation<'Parent, 'Child>"},{"name":"predicate","type":"Filter<'Child>"}],"returns":"Filter<'Parent>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Requires every child to match, returning true for an empty captured relation."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":102,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-all"},{"id":"LibTmux.FSharp.Filter.none","name":"none","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val none: relation: Relation<'Parent, 'Child> -> predicate: Filter<'Child> -> Filter<'Parent>","params":[{"name":"relation","type":"Relation<'Parent, 'Child>"},{"name":"predicate","type":"Filter<'Child>"}],"returns":"Filter<'Parent>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Requires no matching child, returning true for an empty captured relation."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":105,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-none"},{"id":"LibTmux.FSharp.Filter.toDocument","name":"toDocument","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val toDocument: filter: Filter<'T> -> QueryDocument","params":[{"name":"filter","type":"Filter<'T>"}],"returns":"QueryDocument"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Returns the core document validated when the filter was constructed."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":108,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-todocument"},{"id":"LibTmux.FSharp.Filter.toPredicate","name":"toPredicate","kind":"function","parent":"LibTmux.FSharp.Filter","modifiers":[],"signatures":[{"raw":"val toPredicate: filter: Filter<'T> -> ('T -> bool)","params":[{"name":"filter","type":"Filter<'T>"}],"returns":"('T -> bool)"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Returns a predicate compiled once for native lazy filtering."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":111,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-filter-topredicate"},{"id":"LibTmux.FSharp.ScreenSearch","name":"ScreenSearch","kind":"enum","modifiers":[],"signatures":[{"raw":"type ScreenSearch","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Describes text tmux searches for on a pane's visible rows.","body":"tmux evaluates the search itself, as find-window -C does: it reads\nonly the rows on screen, with trailing spaces removed. To search history,\ncapture the pane and filter its lines."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":120,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-screensearch"},{"id":"LibTmux.FSharp.ScreenSearch.Text","name":"Text","kind":"constant","parent":"LibTmux.FSharp.ScreenSearch","modifiers":[],"signatures":[{"raw":"Text of text: string","params":[{"name":"text","type":"string"}],"returns":"LibTmux.FSharp.ScreenSearch"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches literal text."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":122,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-screensearch-text"},{"id":"LibTmux.FSharp.ScreenSearch.TextIgnoringCase","name":"TextIgnoringCase","kind":"constant","parent":"LibTmux.FSharp.ScreenSearch","modifiers":[],"signatures":[{"raw":"TextIgnoringCase of text: string","params":[{"name":"text","type":"string"}],"returns":"LibTmux.FSharp.ScreenSearch"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches literal text ignoring case."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":124,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-screensearch-textignoringcase"},{"id":"LibTmux.FSharp.ScreenSearch.PosixRegex","name":"PosixRegex","kind":"constant","parent":"LibTmux.FSharp.ScreenSearch","modifiers":[],"signatures":[{"raw":"PosixRegex of pattern: string","params":[{"name":"pattern","type":"string"}],"returns":"LibTmux.FSharp.ScreenSearch"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a POSIX extended regular expression, which tmux evaluates."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":126,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-screensearch-posixregex"},{"id":"LibTmux.FSharp.ScreenSearch.PosixRegexIgnoringCase","name":"PosixRegexIgnoringCase","kind":"constant","parent":"LibTmux.FSharp.ScreenSearch","modifiers":[],"signatures":[{"raw":"PosixRegexIgnoringCase of pattern: string","params":[{"name":"pattern","type":"string"}],"returns":"LibTmux.FSharp.ScreenSearch"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Matches a POSIX extended regular expression ignoring case."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":128,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-screensearch-posixregexignoringcase"},{"id":"LibTmux.FSharp.Query","name":"Query","kind":"class","modifiers":[],"signatures":[{"raw":"type Query<'T>","params":[]},{"raw":"module Query","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Describes a tmux listing: a scope, filters and text panes must show.","body":"Building a query reads nothing; each run reads tmux again. tmux narrows the\nlisting with its own filter where it can evaluate one exactly, and every\nrow is then checked against the portable filters."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":140,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-query"},{"id":"LibTmux.FSharp.Query.where","name":"where","kind":"function","parent":"LibTmux.FSharp.Query","modifiers":[],"signatures":[{"raw":"val where: filter: Filter<'T> -> query: Query<'T> -> Query<'T>","params":[{"name":"filter","type":"Filter<'T>"},{"name":"query","type":"Query<'T>"}],"returns":"Query<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Adds a portable filter every result satisfies.","examples":[{"lang":"console","intro":"Read sessions, windows and panes through one query vocabulary. tmux drops rows a filter cannot keep, every returned row is rechecked, and a screen search finds the pane showing a line. atMostOne finds an object or reports it absent, and refuses several. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/Queries.fs","code":"// fsharp-snippet: Queries\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-queries-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! build =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"build\", WindowName = \"make\", Command = \"/bin/sh\"),\n token\n )\n\n let! _ =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(\n Name = \"logs\",\n WindowName = \"tail\",\n Command = \"printf 'ERROR: disk full\\\\n'; exec sleep 60\"\n ),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n let! logs =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"logs\")\n |> Query.list token\n\n let! logPane = logs[0] |> Session.panes |> Query.list token\n\n let! logged = logPane[0] |> Pane.waitForText token (TimeSpan.FromSeconds 5.) \"ERROR:\"\n\n\n // tmux narrows each listing itself; every row is then rechecked.\n let! named =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.startsWith \"bu\")\n |> Query.exactlyOne token\n\n // A relation filter reads only the sessions whose windows can match.\n let! tailing =\n server\n |> Server.sessions\n |> Query.where (WindowFields.name |> Filter.eq \"tail\" |> Filter.any SessionFields.windows)\n |> Query.list token\n\n // Session and window scopes use the same functions.\n let! make =\n build\n |> Session.windows\n |> Query.where (WindowFields.name |> Filter.eq \"make\")\n |> Query.tryExactlyOne token\n\n // tryExactlyOne is None when no window, or several, matched.\n let! makePanes =\n task {\n match make with\n | Some window ->\n let! panes = window |> Window.panes |> Query.list token\n return Some panes.Count\n | None -> return None\n }\n\n // tmux searches each pane's visible rows, as find-window does.\n let! showingErrors =\n server\n |> Server.panes\n |> Query.showing (ScreenSearch.Text \"ERROR:\")\n |> Query.list token\n\n let! errorRow =\n showingErrors[0] |> Pane.findOnScreen token (ScreenSearch.Text \"disk full\")\n\n // A raw tmux filter is the escape hatch; nothing rechecks it.\n let! active =\n server\n |> Server.panes\n |> Query.whereUnsafe (UnsafeTmuxFilter \"#{pane_active}\")\n |> Query.list token\n\n // Find a session or create it: atMostOne is None only when nothing\n // matched, and raises when several do.\n let deploy =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"deploy\")\n\n let! existing = deploy |> Query.atMostOne token\n\n if existing.IsNone then\n let! _ =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"deploy\", Command = \"exec sleep 60\"), token)\n\n ()\n\n let! found = deploy |> Query.atMostOne token\n\n let! several =\n task {\n try\n let! _ = server |> Server.sessions |> Query.atMostOne token\n return \"one or none\"\n with :? InvalidOperationException ->\n return \"refused\"\n }\n\n printfn \"logged: %b\" logged.Found\n printfn \"named: %A\" (named |> Result.map (fun session -> session.Name))\n printfn \"tailing: %A\" [ for session in tailing -> session.Name ]\n printfn \"make panes: %A\" makePanes\n printfn \"error row: %A\" errorRow\n printfn \"active panes: %d\" active.Count\n printfn \"deploy: absent %b, then found %b\" existing.IsNone found.IsSome\n printfn \"at most one of every session: %s\" several\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"logged: true\nnamed: Ok \"build\"\ntailing: [\"logs\"]\nmake panes: Some 1\nerror row: Some 1\nactive panes: 2\ndeploy: absent true, then found true\nat most one of every session: refused\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":148,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-query-where"},{"id":"LibTmux.FSharp.Query.whereUnsafe","name":"whereUnsafe","kind":"function","parent":"LibTmux.FSharp.Query","modifiers":[],"signatures":[{"raw":"val whereUnsafe: filter: UnsafeTmuxFilter -> query: Query<'T> -> Query<'T>","params":[{"name":"filter","type":"UnsafeTmuxFilter"},{"name":"query","type":"Query<'T>"}],"returns":"Query<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Adds a raw tmux filter, which tmux evaluates and nothing rechecks.","body":"A malformed or unknown token makes tmux keep no rows rather than report an error."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":152,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-query-whereunsafe"},{"id":"LibTmux.FSharp.Query.showing","name":"showing","kind":"function","parent":"LibTmux.FSharp.Query","modifiers":[],"signatures":[{"raw":"val showing: search: ScreenSearch -> query: Query -> Query","params":[{"name":"search","type":"ScreenSearch"},{"name":"query","type":"Query"}],"returns":"Query"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Keeps panes whose visible rows show the searched text.","examples":[{"lang":"console","intro":"Read sessions, windows and panes through one query vocabulary. tmux drops rows a filter cannot keep, every returned row is rechecked, and a screen search finds the pane showing a line. atMostOne finds an object or reports it absent, and refuses several. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/Queries.fs","code":"// fsharp-snippet: Queries\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-queries-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! build =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"build\", WindowName = \"make\", Command = \"/bin/sh\"),\n token\n )\n\n let! _ =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(\n Name = \"logs\",\n WindowName = \"tail\",\n Command = \"printf 'ERROR: disk full\\\\n'; exec sleep 60\"\n ),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n let! logs =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"logs\")\n |> Query.list token\n\n let! logPane = logs[0] |> Session.panes |> Query.list token\n\n let! logged = logPane[0] |> Pane.waitForText token (TimeSpan.FromSeconds 5.) \"ERROR:\"\n\n\n // tmux narrows each listing itself; every row is then rechecked.\n let! named =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.startsWith \"bu\")\n |> Query.exactlyOne token\n\n // A relation filter reads only the sessions whose windows can match.\n let! tailing =\n server\n |> Server.sessions\n |> Query.where (WindowFields.name |> Filter.eq \"tail\" |> Filter.any SessionFields.windows)\n |> Query.list token\n\n // Session and window scopes use the same functions.\n let! make =\n build\n |> Session.windows\n |> Query.where (WindowFields.name |> Filter.eq \"make\")\n |> Query.tryExactlyOne token\n\n // tryExactlyOne is None when no window, or several, matched.\n let! makePanes =\n task {\n match make with\n | Some window ->\n let! panes = window |> Window.panes |> Query.list token\n return Some panes.Count\n | None -> return None\n }\n\n // tmux searches each pane's visible rows, as find-window does.\n let! showingErrors =\n server\n |> Server.panes\n |> Query.showing (ScreenSearch.Text \"ERROR:\")\n |> Query.list token\n\n let! errorRow =\n showingErrors[0] |> Pane.findOnScreen token (ScreenSearch.Text \"disk full\")\n\n // A raw tmux filter is the escape hatch; nothing rechecks it.\n let! active =\n server\n |> Server.panes\n |> Query.whereUnsafe (UnsafeTmuxFilter \"#{pane_active}\")\n |> Query.list token\n\n // Find a session or create it: atMostOne is None only when nothing\n // matched, and raises when several do.\n let deploy =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"deploy\")\n\n let! existing = deploy |> Query.atMostOne token\n\n if existing.IsNone then\n let! _ =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"deploy\", Command = \"exec sleep 60\"), token)\n\n ()\n\n let! found = deploy |> Query.atMostOne token\n\n let! several =\n task {\n try\n let! _ = server |> Server.sessions |> Query.atMostOne token\n return \"one or none\"\n with :? InvalidOperationException ->\n return \"refused\"\n }\n\n printfn \"logged: %b\" logged.Found\n printfn \"named: %A\" (named |> Result.map (fun session -> session.Name))\n printfn \"tailing: %A\" [ for session in tailing -> session.Name ]\n printfn \"make panes: %A\" makePanes\n printfn \"error row: %A\" errorRow\n printfn \"active panes: %d\" active.Count\n printfn \"deploy: absent %b, then found %b\" existing.IsNone found.IsSome\n printfn \"at most one of every session: %s\" several\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"logged: true\nnamed: Ok \"build\"\ntailing: [\"logs\"]\nmake panes: Some 1\nerror row: Some 1\nactive panes: 2\ndeploy: absent true, then found true\nat most one of every session: refused\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":155,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-query-showing"},{"id":"LibTmux.FSharp.Query.list","name":"list","kind":"function","parent":"LibTmux.FSharp.Query","modifiers":[],"signatures":[{"raw":"val list: cancellationToken: CancellationToken -> query: Query<'T> -> Task>","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"query","type":"Query<'T>"}],"returns":"Task>","raises":[{"type":"LibTmux.TmuxVersionTooLowException","doc":"A raw client filter needs tmux 3.4."}]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Reads the matching objects in tmux's listing order.","body":"A filter over a relation reads a snapshot of only the sessions that can match.","examples":[{"lang":"console","intro":"Read current scalar listings from a private server. Each detached session has one window and pane; no clients are attached. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerListings.fs","code":"// fsharp-snippet: ServerListings\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-listings-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! _demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n let! windows = server |> Server.windows |> Query.list token\n let! panes = server |> Server.panes |> Query.list token\n let! clients = server |> Server.clients |> Query.list token\n\n for session in sessions do\n printfn \"Session: %s (%O)\" session.Name session.Id\n\n printfn \"Windows: %d; panes: %d; clients: %d\" windows.Count panes.Count clients.Count\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Session: demo ($0)\nSession: worker ($1)\nWindows: 2; panes: 2; clients: 0\n"},{"lang":"console","intro":"Read sessions, windows and panes through one query vocabulary. tmux drops rows a filter cannot keep, every returned row is rechecked, and a screen search finds the pane showing a line. atMostOne finds an object or reports it absent, and refuses several. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/Queries.fs","code":"// fsharp-snippet: Queries\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-queries-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! build =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"build\", WindowName = \"make\", Command = \"/bin/sh\"),\n token\n )\n\n let! _ =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(\n Name = \"logs\",\n WindowName = \"tail\",\n Command = \"printf 'ERROR: disk full\\\\n'; exec sleep 60\"\n ),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n let! logs =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"logs\")\n |> Query.list token\n\n let! logPane = logs[0] |> Session.panes |> Query.list token\n\n let! logged = logPane[0] |> Pane.waitForText token (TimeSpan.FromSeconds 5.) \"ERROR:\"\n\n\n // tmux narrows each listing itself; every row is then rechecked.\n let! named =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.startsWith \"bu\")\n |> Query.exactlyOne token\n\n // A relation filter reads only the sessions whose windows can match.\n let! tailing =\n server\n |> Server.sessions\n |> Query.where (WindowFields.name |> Filter.eq \"tail\" |> Filter.any SessionFields.windows)\n |> Query.list token\n\n // Session and window scopes use the same functions.\n let! make =\n build\n |> Session.windows\n |> Query.where (WindowFields.name |> Filter.eq \"make\")\n |> Query.tryExactlyOne token\n\n // tryExactlyOne is None when no window, or several, matched.\n let! makePanes =\n task {\n match make with\n | Some window ->\n let! panes = window |> Window.panes |> Query.list token\n return Some panes.Count\n | None -> return None\n }\n\n // tmux searches each pane's visible rows, as find-window does.\n let! showingErrors =\n server\n |> Server.panes\n |> Query.showing (ScreenSearch.Text \"ERROR:\")\n |> Query.list token\n\n let! errorRow =\n showingErrors[0] |> Pane.findOnScreen token (ScreenSearch.Text \"disk full\")\n\n // A raw tmux filter is the escape hatch; nothing rechecks it.\n let! active =\n server\n |> Server.panes\n |> Query.whereUnsafe (UnsafeTmuxFilter \"#{pane_active}\")\n |> Query.list token\n\n // Find a session or create it: atMostOne is None only when nothing\n // matched, and raises when several do.\n let deploy =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"deploy\")\n\n let! existing = deploy |> Query.atMostOne token\n\n if existing.IsNone then\n let! _ =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"deploy\", Command = \"exec sleep 60\"), token)\n\n ()\n\n let! found = deploy |> Query.atMostOne token\n\n let! several =\n task {\n try\n let! _ = server |> Server.sessions |> Query.atMostOne token\n return \"one or none\"\n with :? InvalidOperationException ->\n return \"refused\"\n }\n\n printfn \"logged: %b\" logged.Found\n printfn \"named: %A\" (named |> Result.map (fun session -> session.Name))\n printfn \"tailing: %A\" [ for session in tailing -> session.Name ]\n printfn \"make panes: %A\" makePanes\n printfn \"error row: %A\" errorRow\n printfn \"active panes: %d\" active.Count\n printfn \"deploy: absent %b, then found %b\" existing.IsNone found.IsSome\n printfn \"at most one of every session: %s\" several\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"logged: true\nnamed: Ok \"build\"\ntailing: [\"logs\"]\nmake panes: Some 1\nerror row: Some 1\nactive panes: 2\ndeploy: absent true, then found true\nat most one of every session: refused\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":160,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-query-list"},{"id":"LibTmux.FSharp.Query.exactlyOne","name":"exactlyOne","kind":"function","parent":"LibTmux.FSharp.Query","modifiers":[],"signatures":[{"raw":"val exactlyOne: cancellationToken: CancellationToken -> query: Query<'T> -> Task>","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"query","type":"Query<'T>"}],"returns":"Task>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Reads the sole match, or why there is not exactly one.","examples":[{"lang":"console","intro":"Read sessions, windows and panes through one query vocabulary. tmux drops rows a filter cannot keep, every returned row is rechecked, and a screen search finds the pane showing a line. atMostOne finds an object or reports it absent, and refuses several. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/Queries.fs","code":"// fsharp-snippet: Queries\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-queries-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! build =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"build\", WindowName = \"make\", Command = \"/bin/sh\"),\n token\n )\n\n let! _ =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(\n Name = \"logs\",\n WindowName = \"tail\",\n Command = \"printf 'ERROR: disk full\\\\n'; exec sleep 60\"\n ),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n let! logs =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"logs\")\n |> Query.list token\n\n let! logPane = logs[0] |> Session.panes |> Query.list token\n\n let! logged = logPane[0] |> Pane.waitForText token (TimeSpan.FromSeconds 5.) \"ERROR:\"\n\n\n // tmux narrows each listing itself; every row is then rechecked.\n let! named =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.startsWith \"bu\")\n |> Query.exactlyOne token\n\n // A relation filter reads only the sessions whose windows can match.\n let! tailing =\n server\n |> Server.sessions\n |> Query.where (WindowFields.name |> Filter.eq \"tail\" |> Filter.any SessionFields.windows)\n |> Query.list token\n\n // Session and window scopes use the same functions.\n let! make =\n build\n |> Session.windows\n |> Query.where (WindowFields.name |> Filter.eq \"make\")\n |> Query.tryExactlyOne token\n\n // tryExactlyOne is None when no window, or several, matched.\n let! makePanes =\n task {\n match make with\n | Some window ->\n let! panes = window |> Window.panes |> Query.list token\n return Some panes.Count\n | None -> return None\n }\n\n // tmux searches each pane's visible rows, as find-window does.\n let! showingErrors =\n server\n |> Server.panes\n |> Query.showing (ScreenSearch.Text \"ERROR:\")\n |> Query.list token\n\n let! errorRow =\n showingErrors[0] |> Pane.findOnScreen token (ScreenSearch.Text \"disk full\")\n\n // A raw tmux filter is the escape hatch; nothing rechecks it.\n let! active =\n server\n |> Server.panes\n |> Query.whereUnsafe (UnsafeTmuxFilter \"#{pane_active}\")\n |> Query.list token\n\n // Find a session or create it: atMostOne is None only when nothing\n // matched, and raises when several do.\n let deploy =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"deploy\")\n\n let! existing = deploy |> Query.atMostOne token\n\n if existing.IsNone then\n let! _ =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"deploy\", Command = \"exec sleep 60\"), token)\n\n ()\n\n let! found = deploy |> Query.atMostOne token\n\n let! several =\n task {\n try\n let! _ = server |> Server.sessions |> Query.atMostOne token\n return \"one or none\"\n with :? InvalidOperationException ->\n return \"refused\"\n }\n\n printfn \"logged: %b\" logged.Found\n printfn \"named: %A\" (named |> Result.map (fun session -> session.Name))\n printfn \"tailing: %A\" [ for session in tailing -> session.Name ]\n printfn \"make panes: %A\" makePanes\n printfn \"error row: %A\" errorRow\n printfn \"active panes: %d\" active.Count\n printfn \"deploy: absent %b, then found %b\" existing.IsNone found.IsSome\n printfn \"at most one of every session: %s\" several\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"logged: true\nnamed: Ok \"build\"\ntailing: [\"logs\"]\nmake panes: Some 1\nerror row: Some 1\nactive panes: 2\ndeploy: absent true, then found true\nat most one of every session: refused\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":163,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-query-exactlyone"},{"id":"LibTmux.FSharp.Query.tryExactlyOne","name":"tryExactlyOne","kind":"function","parent":"LibTmux.FSharp.Query","modifiers":[],"signatures":[{"raw":"val tryExactlyOne: cancellationToken: CancellationToken -> query: Query<'T> -> Task<'T option>","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"query","type":"Query<'T>"}],"returns":"Task<'T option>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Reads the sole match, or None when there are none or several.","body":"As FSharp.Core's Seq.tryExactlyOne, None does not say nothing\nmatched. To find an object or create it when absent, use atMostOne.","examples":[{"lang":"console","intro":"Read sessions, windows and panes through one query vocabulary. tmux drops rows a filter cannot keep, every returned row is rechecked, and a screen search finds the pane showing a line. atMostOne finds an object or reports it absent, and refuses several. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/Queries.fs","code":"// fsharp-snippet: Queries\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-queries-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! build =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"build\", WindowName = \"make\", Command = \"/bin/sh\"),\n token\n )\n\n let! _ =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(\n Name = \"logs\",\n WindowName = \"tail\",\n Command = \"printf 'ERROR: disk full\\\\n'; exec sleep 60\"\n ),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n let! logs =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"logs\")\n |> Query.list token\n\n let! logPane = logs[0] |> Session.panes |> Query.list token\n\n let! logged = logPane[0] |> Pane.waitForText token (TimeSpan.FromSeconds 5.) \"ERROR:\"\n\n\n // tmux narrows each listing itself; every row is then rechecked.\n let! named =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.startsWith \"bu\")\n |> Query.exactlyOne token\n\n // A relation filter reads only the sessions whose windows can match.\n let! tailing =\n server\n |> Server.sessions\n |> Query.where (WindowFields.name |> Filter.eq \"tail\" |> Filter.any SessionFields.windows)\n |> Query.list token\n\n // Session and window scopes use the same functions.\n let! make =\n build\n |> Session.windows\n |> Query.where (WindowFields.name |> Filter.eq \"make\")\n |> Query.tryExactlyOne token\n\n // tryExactlyOne is None when no window, or several, matched.\n let! makePanes =\n task {\n match make with\n | Some window ->\n let! panes = window |> Window.panes |> Query.list token\n return Some panes.Count\n | None -> return None\n }\n\n // tmux searches each pane's visible rows, as find-window does.\n let! showingErrors =\n server\n |> Server.panes\n |> Query.showing (ScreenSearch.Text \"ERROR:\")\n |> Query.list token\n\n let! errorRow =\n showingErrors[0] |> Pane.findOnScreen token (ScreenSearch.Text \"disk full\")\n\n // A raw tmux filter is the escape hatch; nothing rechecks it.\n let! active =\n server\n |> Server.panes\n |> Query.whereUnsafe (UnsafeTmuxFilter \"#{pane_active}\")\n |> Query.list token\n\n // Find a session or create it: atMostOne is None only when nothing\n // matched, and raises when several do.\n let deploy =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"deploy\")\n\n let! existing = deploy |> Query.atMostOne token\n\n if existing.IsNone then\n let! _ =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"deploy\", Command = \"exec sleep 60\"), token)\n\n ()\n\n let! found = deploy |> Query.atMostOne token\n\n let! several =\n task {\n try\n let! _ = server |> Server.sessions |> Query.atMostOne token\n return \"one or none\"\n with :? InvalidOperationException ->\n return \"refused\"\n }\n\n printfn \"logged: %b\" logged.Found\n printfn \"named: %A\" (named |> Result.map (fun session -> session.Name))\n printfn \"tailing: %A\" [ for session in tailing -> session.Name ]\n printfn \"make panes: %A\" makePanes\n printfn \"error row: %A\" errorRow\n printfn \"active panes: %d\" active.Count\n printfn \"deploy: absent %b, then found %b\" existing.IsNone found.IsSome\n printfn \"at most one of every session: %s\" several\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"logged: true\nnamed: Ok \"build\"\ntailing: [\"logs\"]\nmake panes: Some 1\nerror row: Some 1\nactive panes: 2\ndeploy: absent true, then found true\nat most one of every session: refused\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":170,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-query-tryexactlyone"},{"id":"LibTmux.FSharp.Query.atMostOne","name":"atMostOne","kind":"function","parent":"LibTmux.FSharp.Query","modifiers":[],"signatures":[{"raw":"val atMostOne: cancellationToken: CancellationToken -> query: Query<'T> -> Task<'T option>","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"query","type":"Query<'T>"}],"returns":"Task<'T option>","raises":[{"type":"System.InvalidOperationException","doc":"tmux reported more than one match."}]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Reads the sole match, or None when nothing matches; several matches raise.","body":"None means tmux reported no match, so it suits finding an object or\ncreating it when absent. It returns an option rather than a\nResult, so it publishes under NativeAOT.","examples":[{"lang":"console","intro":"Read sessions, windows and panes through one query vocabulary. tmux drops rows a filter cannot keep, every returned row is rechecked, and a screen search finds the pane showing a line. atMostOne finds an object or reports it absent, and refuses several. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/Queries.fs","code":"// fsharp-snippet: Queries\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-queries-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! build =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"build\", WindowName = \"make\", Command = \"/bin/sh\"),\n token\n )\n\n let! _ =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(\n Name = \"logs\",\n WindowName = \"tail\",\n Command = \"printf 'ERROR: disk full\\\\n'; exec sleep 60\"\n ),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n let! logs =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"logs\")\n |> Query.list token\n\n let! logPane = logs[0] |> Session.panes |> Query.list token\n\n let! logged = logPane[0] |> Pane.waitForText token (TimeSpan.FromSeconds 5.) \"ERROR:\"\n\n\n // tmux narrows each listing itself; every row is then rechecked.\n let! named =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.startsWith \"bu\")\n |> Query.exactlyOne token\n\n // A relation filter reads only the sessions whose windows can match.\n let! tailing =\n server\n |> Server.sessions\n |> Query.where (WindowFields.name |> Filter.eq \"tail\" |> Filter.any SessionFields.windows)\n |> Query.list token\n\n // Session and window scopes use the same functions.\n let! make =\n build\n |> Session.windows\n |> Query.where (WindowFields.name |> Filter.eq \"make\")\n |> Query.tryExactlyOne token\n\n // tryExactlyOne is None when no window, or several, matched.\n let! makePanes =\n task {\n match make with\n | Some window ->\n let! panes = window |> Window.panes |> Query.list token\n return Some panes.Count\n | None -> return None\n }\n\n // tmux searches each pane's visible rows, as find-window does.\n let! showingErrors =\n server\n |> Server.panes\n |> Query.showing (ScreenSearch.Text \"ERROR:\")\n |> Query.list token\n\n let! errorRow =\n showingErrors[0] |> Pane.findOnScreen token (ScreenSearch.Text \"disk full\")\n\n // A raw tmux filter is the escape hatch; nothing rechecks it.\n let! active =\n server\n |> Server.panes\n |> Query.whereUnsafe (UnsafeTmuxFilter \"#{pane_active}\")\n |> Query.list token\n\n // Find a session or create it: atMostOne is None only when nothing\n // matched, and raises when several do.\n let deploy =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"deploy\")\n\n let! existing = deploy |> Query.atMostOne token\n\n if existing.IsNone then\n let! _ =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"deploy\", Command = \"exec sleep 60\"), token)\n\n ()\n\n let! found = deploy |> Query.atMostOne token\n\n let! several =\n task {\n try\n let! _ = server |> Server.sessions |> Query.atMostOne token\n return \"one or none\"\n with :? InvalidOperationException ->\n return \"refused\"\n }\n\n printfn \"logged: %b\" logged.Found\n printfn \"named: %A\" (named |> Result.map (fun session -> session.Name))\n printfn \"tailing: %A\" [ for session in tailing -> session.Name ]\n printfn \"make panes: %A\" makePanes\n printfn \"error row: %A\" errorRow\n printfn \"active panes: %d\" active.Count\n printfn \"deploy: absent %b, then found %b\" existing.IsNone found.IsSome\n printfn \"at most one of every session: %s\" several\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"logged: true\nnamed: Ok \"build\"\ntailing: [\"logs\"]\nmake panes: Some 1\nerror row: Some 1\nactive panes: 2\ndeploy: absent true, then found true\nat most one of every session: refused\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":179,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-query-atmostone"},{"id":"LibTmux.FSharp.Query.matching","name":"matching","kind":"function","parent":"LibTmux.FSharp.Query","modifiers":[],"signatures":[{"raw":"val matching: filter: Filter<'T> -> source: seq<'T> -> IReadOnlyList<'T>","params":[{"name":"filter","type":"Filter<'T>"},{"name":"source","type":"seq<'T>"}],"returns":"IReadOnlyList<'T>"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Filters captured objects locally, preserving input order and multiplicity.","examples":[{"lang":"console","intro":"Compare native sequence filtering with portable F# filters. Capture the hierarchy before following pane and window relations; listing alone does not capture children. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerFilters.fs","code":"// fsharp-snippet: ServerFilters\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-filters-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n\n let nativeMatches =\n sessions\n |> Seq.filter (fun session -> session.Name.StartsWith(\"de\", StringComparison.Ordinal))\n |> Seq.toList\n\n let portableMatches =\n sessions |> Query.matching (Filter.startsWith \"de\" SessionFields.name)\n\n let! windows = server |> Server.windows |> Query.list token\n\n let matchingWindows =\n windows |> Query.matching (Filter.eq \"shell\" WindowFields.name)\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let demoSession =\n captured.Sessions |> Seq.find (fun session -> session.Id = demo.Value.Id)\n\n let demoPane =\n demoSession.Windows\n |> Seq.collect (fun window -> window.Panes)\n |> Seq.exactlyOne\n\n let paneFilter = Filter.eq demoPane.Id PaneFields.id\n let matchingPanes = captured.Panes |> Query.matching paneFilter\n\n let hasDemoPane =\n paneFilter |> Filter.any WindowFields.panes |> Filter.any SessionFields.windows\n\n let matchingParents = captured.Sessions |> Query.matching hasDemoPane\n\n use! _control = server |> Control.enter token\n let! clients = server |> Server.clients |> Query.list token\n\n let controlClients =\n clients |> Query.matching (Filter.eq true ClientFields.controlMode)\n\n let names (sessions: seq) =\n [ for session in sessions -> session.Name ]\n\n printfn \"native: %A\" (names nativeMatches)\n printfn \"portable: %A\" (names portableMatches)\n printfn \"windows: %A\" [ for window in matchingWindows -> window.Name ]\n printfn \"panes: %d\" matchingPanes.Count\n printfn \"parents: %A\" (names matchingParents)\n printfn \"control clients: %d\" controlClients.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"native: [\"demo\"]\nportable: [\"demo\"]\nwindows: [\"shell\"]\npanes: 1\nparents: [\"demo\"]\ncontrol clients: 1\n"}]},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":182,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-query-matching"},{"id":"LibTmux.FSharp.SessionFields","name":"SessionFields","kind":"module","modifiers":[],"signatures":[{"raw":"module SessionFields","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Provides supported session fields and relations for portable filters."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":186,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionfields"},{"id":"LibTmux.FSharp.SessionFields.name","name":"name","kind":"constant","parent":"LibTmux.FSharp.SessionFields","modifiers":[],"signatures":[{"raw":"val name: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the session name."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":188,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionfields-name"},{"id":"LibTmux.FSharp.SessionFields.id","name":"id","kind":"constant","parent":"LibTmux.FSharp.SessionFields","modifiers":[],"signatures":[{"raw":"val id: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the typed session ID."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":190,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionfields-id"},{"id":"LibTmux.FSharp.SessionFields.attached","name":"attached","kind":"constant","parent":"LibTmux.FSharp.SessionFields","modifiers":[],"signatures":[{"raw":"val attached: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies whether the captured session has attached clients."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":192,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionfields-attached"},{"id":"LibTmux.FSharp.SessionFields.windowCount","name":"windowCount","kind":"constant","parent":"LibTmux.FSharp.SessionFields","modifiers":[],"signatures":[{"raw":"val windowCount: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the number of windows linked into the session."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":194,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionfields-windowcount"},{"id":"LibTmux.FSharp.SessionFields.windows","name":"windows","kind":"constant","parent":"LibTmux.FSharp.SessionFields","modifiers":[],"signatures":[{"raw":"val windows: Relation","params":[],"returns":"Relation"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies captured window placements within the session."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":196,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionfields-windows"},{"id":"LibTmux.FSharp.WindowFields","name":"WindowFields","kind":"module","modifiers":[],"signatures":[{"raw":"module WindowFields","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Provides supported window fields and relations for portable filters."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":200,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowfields"},{"id":"LibTmux.FSharp.WindowFields.name","name":"name","kind":"constant","parent":"LibTmux.FSharp.WindowFields","modifiers":[],"signatures":[{"raw":"val name: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the window name."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":202,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowfields-name"},{"id":"LibTmux.FSharp.WindowFields.id","name":"id","kind":"constant","parent":"LibTmux.FSharp.WindowFields","modifiers":[],"signatures":[{"raw":"val id: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the typed physical window ID."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":204,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowfields-id"},{"id":"LibTmux.FSharp.WindowFields.index","name":"index","kind":"constant","parent":"LibTmux.FSharp.WindowFields","modifiers":[],"signatures":[{"raw":"val index: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies where the window sits in its session."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":206,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowfields-index"},{"id":"LibTmux.FSharp.WindowFields.width","name":"width","kind":"constant","parent":"LibTmux.FSharp.WindowFields","modifiers":[],"signatures":[{"raw":"val width: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the window's width in cells."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":208,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowfields-width"},{"id":"LibTmux.FSharp.WindowFields.height","name":"height","kind":"constant","parent":"LibTmux.FSharp.WindowFields","modifiers":[],"signatures":[{"raw":"val height: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the window's height in cells."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":210,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowfields-height"},{"id":"LibTmux.FSharp.WindowFields.paneCount","name":"paneCount","kind":"constant","parent":"LibTmux.FSharp.WindowFields","modifiers":[],"signatures":[{"raw":"val paneCount: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the number of panes in the window."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":212,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowfields-panecount"},{"id":"LibTmux.FSharp.WindowFields.panes","name":"panes","kind":"constant","parent":"LibTmux.FSharp.WindowFields","modifiers":[],"signatures":[{"raw":"val panes: Relation","params":[],"returns":"Relation"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies panes captured through this window placement."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":214,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowfields-panes"},{"id":"LibTmux.FSharp.PaneFields","name":"PaneFields","kind":"module","modifiers":[],"signatures":[{"raw":"module PaneFields","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Provides supported pane fields for portable filters."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":218,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields"},{"id":"LibTmux.FSharp.PaneFields.currentCommand","name":"currentCommand","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val currentCommand: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the captured command, including a captured unavailable value."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":220,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-currentcommand"},{"id":"LibTmux.FSharp.PaneFields.id","name":"id","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val id: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the typed pane ID."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":222,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-id"},{"id":"LibTmux.FSharp.PaneFields.index","name":"index","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val index: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the pane's position in its window."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":224,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-index"},{"id":"LibTmux.FSharp.PaneFields.title","name":"title","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val title: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the pane's title, which a program running in it can set."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":226,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-title"},{"id":"LibTmux.FSharp.PaneFields.currentPath","name":"currentPath","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val currentPath: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the pane's working directory, as the text tmux reported."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":228,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-currentpath"},{"id":"LibTmux.FSharp.PaneFields.width","name":"width","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val width: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the pane's width in cells."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":230,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-width"},{"id":"LibTmux.FSharp.PaneFields.height","name":"height","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val height: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the pane's height in cells."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":232,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-height"},{"id":"LibTmux.FSharp.PaneFields.left","name":"left","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val left: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the column of the pane's left edge in its window."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":234,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-left"},{"id":"LibTmux.FSharp.PaneFields.top","name":"top","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val top: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the row of the pane's top edge in its window."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":236,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-top"},{"id":"LibTmux.FSharp.PaneFields.atTop","name":"atTop","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val atTop: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies whether the pane touches the top of its window."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":238,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-attop"},{"id":"LibTmux.FSharp.PaneFields.atBottom","name":"atBottom","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val atBottom: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies whether the pane touches the bottom of its window."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":240,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-atbottom"},{"id":"LibTmux.FSharp.PaneFields.atLeft","name":"atLeft","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val atLeft: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies whether the pane touches the left of its window."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":242,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-atleft"},{"id":"LibTmux.FSharp.PaneFields.atRight","name":"atRight","kind":"constant","parent":"LibTmux.FSharp.PaneFields","modifiers":[],"signatures":[{"raw":"val atRight: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies whether the pane touches the right of its window."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":244,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-panefields-atright"},{"id":"LibTmux.FSharp.ClientFields","name":"ClientFields","kind":"module","modifiers":[],"signatures":[{"raw":"module ClientFields","params":[]}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Provides supported client fields for portable filters."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":248,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-clientfields"},{"id":"LibTmux.FSharp.ClientFields.name","name":"name","kind":"constant","parent":"LibTmux.FSharp.ClientFields","modifiers":[],"signatures":[{"raw":"val name: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies the client name."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":250,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-clientfields-name"},{"id":"LibTmux.FSharp.ClientFields.controlMode","name":"controlMode","kind":"constant","parent":"LibTmux.FSharp.ClientFields","modifiers":[],"signatures":[{"raw":"val controlMode: Field","params":[],"returns":"Field"}],"namespaceImports":["System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux","LibTmux.Query"],"doc":{"summary":"Identifies whether the captured client uses control mode."},"source":{"file":"src/LibTmux.FSharp/Query.fsi","line":252,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-clientfields-controlmode"},{"id":"LibTmux.FSharp.SplitSpec","name":"SplitSpec","kind":"struct","modifiers":[],"signatures":[{"raw":"type SplitSpec","params":[]},{"raw":"module SplitSpec","params":[]}],"namespaceImports":["LibTmux"],"doc":{"summary":"Describes a pane split off the pane created before it.","body":"Build one from SplitSpec.empty with a copy-and-update expression."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":7,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-splitspec"},{"id":"LibTmux.FSharp.SplitSpec.Direction","name":"Direction","kind":"property","parent":"LibTmux.FSharp.SplitSpec","modifiers":[],"signatures":[{"raw":"Direction: PaneDirection option","params":[],"returns":"PaneDirection option"}],"namespaceImports":["LibTmux"],"doc":{"summary":"Where the new pane goes, beside the pane before it; tmux puts it below when None."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":9,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-splitspec-direction"},{"id":"LibTmux.FSharp.SplitSpec.Command","name":"Command","kind":"property","parent":"LibTmux.FSharp.SplitSpec","modifiers":[],"signatures":[{"raw":"Command: string option","params":[],"returns":"string option"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The command the pane runs instead of the default shell."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":11,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-splitspec-command"},{"id":"LibTmux.FSharp.SplitSpec.Directory","name":"Directory","kind":"property","parent":"LibTmux.FSharp.SplitSpec","modifiers":[],"signatures":[{"raw":"Directory: string option","params":[],"returns":"string option"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The pane's working directory."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":13,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-splitspec-directory"},{"id":"LibTmux.FSharp.SplitSpec.Size","name":"Size","kind":"property","parent":"LibTmux.FSharp.SplitSpec","modifiers":[],"signatures":[{"raw":"Size: string option","params":[],"returns":"string option"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The pane's size, in cells, or with a percent sign as a share of the space split."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":15,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-splitspec-size"},{"id":"LibTmux.FSharp.SplitSpec.Environment","name":"Environment","kind":"property","parent":"LibTmux.FSharp.SplitSpec","modifiers":[],"signatures":[{"raw":"Environment: Map","params":[],"returns":"Map"}],"namespaceImports":["LibTmux"],"doc":{"summary":"Variables added to the pane's environment."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":17,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-splitspec-environment"},{"id":"LibTmux.FSharp.SplitSpec.ToString","name":"ToString","kind":"method","parent":"LibTmux.FSharp.SplitSpec","modifiers":[],"signatures":[{"raw":"member ToString: unit -> string","params":[{"name":"arg1","type":"unit"}],"returns":"string"}],"namespaceImports":["LibTmux"],"doc":{"summary":"Names the split by its command, without formatting through printf."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":22,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-splitspec-tostring"},{"id":"LibTmux.FSharp.WindowSpec","name":"WindowSpec","kind":"struct","modifiers":[],"signatures":[{"raw":"type WindowSpec","params":[]},{"raw":"module WindowSpec","params":[]}],"namespaceImports":["LibTmux"],"doc":{"summary":"Describes a window: its first pane, then each pane split off the one before.","body":"Build one from WindowSpec.named or WindowSpec.empty with a copy-and-update expression."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":26,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowspec"},{"id":"LibTmux.FSharp.WindowSpec.Name","name":"Name","kind":"property","parent":"LibTmux.FSharp.WindowSpec","modifiers":[],"signatures":[{"raw":"Name: string option","params":[],"returns":"string option"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The window's name; tmux names it after its command when None."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":28,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowspec-name"},{"id":"LibTmux.FSharp.WindowSpec.Command","name":"Command","kind":"property","parent":"LibTmux.FSharp.WindowSpec","modifiers":[],"signatures":[{"raw":"Command: string option","params":[],"returns":"string option"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The command the first pane runs instead of the default shell."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":30,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowspec-command"},{"id":"LibTmux.FSharp.WindowSpec.Directory","name":"Directory","kind":"property","parent":"LibTmux.FSharp.WindowSpec","modifiers":[],"signatures":[{"raw":"Directory: string option","params":[],"returns":"string option"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The first pane's working directory."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":32,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowspec-directory"},{"id":"LibTmux.FSharp.WindowSpec.Environment","name":"Environment","kind":"property","parent":"LibTmux.FSharp.WindowSpec","modifiers":[],"signatures":[{"raw":"Environment: Map","params":[],"returns":"Map"}],"namespaceImports":["LibTmux"],"doc":{"summary":"Variables added to the first pane's environment; a session's first window takes them from the session instead."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":34,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowspec-environment"},{"id":"LibTmux.FSharp.WindowSpec.Splits","name":"Splits","kind":"property","parent":"LibTmux.FSharp.WindowSpec","modifiers":[],"signatures":[{"raw":"Splits: SplitSpec list","params":[],"returns":"SplitSpec list"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The panes split off in order, each beside the pane before it."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":36,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowspec-splits"},{"id":"LibTmux.FSharp.WindowSpec.ToString","name":"ToString","kind":"method","parent":"LibTmux.FSharp.WindowSpec","modifiers":[],"signatures":[{"raw":"member ToString: unit -> string","params":[{"name":"arg1","type":"unit"}],"returns":"string"}],"namespaceImports":["LibTmux"],"doc":{"summary":"Names the window, without formatting through printf."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":41,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowspec-tostring"},{"id":"LibTmux.FSharp.SessionSpec","name":"SessionSpec","kind":"struct","modifiers":[],"signatures":[{"raw":"type SessionSpec","params":[]},{"raw":"module SessionSpec","params":[]}],"namespaceImports":["LibTmux"],"doc":{"summary":"Describes a session and its windows, for Server.newSession.","body":"tmux gives a new session one window, which the first WindowSpec\nbecomes; each later one is a window of its own. A session with no windows\nlisted gets tmux's single default window.","examples":[{"lang":"console","intro":"Create a session from F# records in one call: the first window is the one tmux makes with the session, and each split goes beside the pane before it. Add a window with a command chain, then read through a handle whose commands each get five seconds. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/BuildSession.fs","code":"// fsharp-snippet: BuildSession\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-build-session-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n // Describe the session, then create it in one call: the first window is\n // the one tmux makes with the session, and each split goes beside the\n // pane before it.\n let dev =\n { SessionSpec.named \"dev\" with\n Windows =\n [\n { WindowSpec.named \"editor\" with\n Command = Some \"exec sleep 60\"\n }\n { WindowSpec.named \"logs\" with\n Command = Some \"exec sleep 60\"\n Splits =\n [\n { SplitSpec.empty with\n Direction = Some PaneDirection.Right\n Command = Some \"exec sleep 60\"\n }\n { SplitSpec.empty with\n Command = Some \"exec sleep 60\"\n }\n ]\n }\n ]\n }\n\n let! session = owned.Value |> Server.newSession token dev\n\n // A chain runs in one tmux invocation; each step acts on what the one\n // before made.\n let! _ =\n owned.Value\n |> Chain.start\n |> Chain.newWindow session \"watch\"\n |> Chain.splitLeftRight\n |> Chain.sendLine \"exec sleep 60\"\n |> Chain.run token\n\n // Every command through this handle, and the handles taken from it,\n // gives tmux five seconds.\n let bounded = owned.Value |> Server.within (TimeSpan.FromSeconds 5.)\n let! windows = bounded |> Server.windows |> Query.list token\n\n for window in windows do\n let! panes = window |> Window.panes |> Query.list token\n printfn \"%s: %d panes\" window.Name panes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"editor: 1 panes\nlogs: 3 panes\nwatch: 2 panes\n"}]},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":49,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionspec"},{"id":"LibTmux.FSharp.SessionSpec.Name","name":"Name","kind":"property","parent":"LibTmux.FSharp.SessionSpec","modifiers":[],"signatures":[{"raw":"Name: string","params":[],"returns":"string"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The session's name."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":51,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionspec-name"},{"id":"LibTmux.FSharp.SessionSpec.Directory","name":"Directory","kind":"property","parent":"LibTmux.FSharp.SessionSpec","modifiers":[],"signatures":[{"raw":"Directory: string option","params":[],"returns":"string option"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The working directory of the session and its first window."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":53,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionspec-directory"},{"id":"LibTmux.FSharp.SessionSpec.Environment","name":"Environment","kind":"property","parent":"LibTmux.FSharp.SessionSpec","modifiers":[],"signatures":[{"raw":"Environment: Map","params":[],"returns":"Map"}],"namespaceImports":["LibTmux"],"doc":{"summary":"Variables added to the session's environment."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":55,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionspec-environment"},{"id":"LibTmux.FSharp.SessionSpec.Windows","name":"Windows","kind":"property","parent":"LibTmux.FSharp.SessionSpec","modifiers":[],"signatures":[{"raw":"Windows: WindowSpec list","params":[],"returns":"WindowSpec list"}],"namespaceImports":["LibTmux"],"doc":{"summary":"The windows, in order; the first is the one tmux creates with the session."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":57,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionspec-windows"},{"id":"LibTmux.FSharp.SessionSpec.ToString","name":"ToString","kind":"method","parent":"LibTmux.FSharp.SessionSpec","modifiers":[],"signatures":[{"raw":"member ToString: unit -> string","params":[{"name":"arg1","type":"unit"}],"returns":"string"}],"namespaceImports":["LibTmux"],"doc":{"summary":"Names the session, without formatting through printf."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":62,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionspec-tostring"},{"id":"LibTmux.FSharp.SplitSpec.empty","name":"empty","kind":"constant","parent":"LibTmux.FSharp.SplitSpec","modifiers":[],"signatures":[{"raw":"val empty: SplitSpec","params":[],"returns":"SplitSpec"}],"namespaceImports":["LibTmux"],"doc":{"summary":"A split below the pane before it, running the default shell."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":68,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-splitspec-empty"},{"id":"LibTmux.FSharp.WindowSpec.empty","name":"empty","kind":"constant","parent":"LibTmux.FSharp.WindowSpec","modifiers":[],"signatures":[{"raw":"val empty: WindowSpec","params":[],"returns":"WindowSpec"}],"namespaceImports":["LibTmux"],"doc":{"summary":"A window tmux names after its command, running the default shell."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":74,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowspec-empty"},{"id":"LibTmux.FSharp.WindowSpec.named","name":"named","kind":"function","parent":"LibTmux.FSharp.WindowSpec","modifiers":[],"signatures":[{"raw":"val named: name: string -> WindowSpec","params":[{"name":"name","type":"string"}],"returns":"WindowSpec"}],"namespaceImports":["LibTmux"],"doc":{"summary":"A named window running the default shell."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":77,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-windowspec-named"},{"id":"LibTmux.FSharp.SessionSpec.named","name":"named","kind":"function","parent":"LibTmux.FSharp.SessionSpec","modifiers":[],"signatures":[{"raw":"val named: name: string -> SessionSpec","params":[{"name":"name","type":"string"}],"returns":"SessionSpec"}],"namespaceImports":["LibTmux"],"doc":{"summary":"A named session with tmux's single default window."},"source":{"file":"src/LibTmux.FSharp/Spec.fsi","line":83,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-sessionspec-named"},{"id":"LibTmux.FSharp.Server","name":"Server","kind":"module","modifiers":[],"signatures":[{"raw":"module Server","params":[]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Starts server reads and queries with the caller's cancellation token.","examples":[{"lang":"console","intro":"Create owned session and window scopes with the core LibTmux API, then split a pane with the F# Pane.split helper. Disposing the owned window also stops its split panes. For F# session descriptions, use Server.newSession with SessionSpec. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/CreateWindowPane.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-create-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! session =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\"),\n token\n )\n\n use! window =\n session.Value.CreateOwnedWindowAsync(NewWindowRequest(Name = \"editor\", Command = \"/bin/cat\"), token)\n\n let! panes = window.Value.GetPanesAsync(token)\n let original = panes |> Seq.exactlyOne\n\n let! added =\n original\n |> Pane.split token (SplitPaneRequest(Direction = PaneDirection.Right, Command = \"/bin/cat\"))\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! windows = server |> Server.windows |> Query.list token\n let! allPanes = server |> Server.panes |> Query.list token\n\n if windows.Count <> 2 || allPanes.Count <> 3 || added.Id = original.Id then\n failwith \"Expected two windows and three distinct panes.\"\n\n printfn \"Created session demo and window editor.\"\n printfn \"Windows: %d; panes: %d\" windows.Count allPanes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Created session demo and window editor.\nWindows: 2; panes: 3\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":11,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server"},{"id":"LibTmux.FSharp.Server.sessions","name":"sessions","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val sessions: server: LibTmux.Server -> Query","params":[{"name":"server","type":"LibTmux.Server"}],"returns":"Query"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Queries every session.","body":"Child windows and panes require an explicit capture at the corresponding depth.","examples":[{"lang":"console","intro":"Read current scalar listings from a private server. Each detached session has one window and pane; no clients are attached. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerListings.fs","code":"// fsharp-snippet: ServerListings\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-listings-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! _demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n let! windows = server |> Server.windows |> Query.list token\n let! panes = server |> Server.panes |> Query.list token\n let! clients = server |> Server.clients |> Query.list token\n\n for session in sessions do\n printfn \"Session: %s (%O)\" session.Name session.Id\n\n printfn \"Windows: %d; panes: %d; clients: %d\" windows.Count panes.Count clients.Count\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Session: demo ($0)\nSession: worker ($1)\nWindows: 2; panes: 2; clients: 0\n"},{"lang":"console","intro":"Read sessions, windows and panes through one query vocabulary. tmux drops rows a filter cannot keep, every returned row is rechecked, and a screen search finds the pane showing a line. atMostOne finds an object or reports it absent, and refuses several. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/Queries.fs","code":"// fsharp-snippet: Queries\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-queries-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! build =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(Name = \"build\", WindowName = \"make\", Command = \"/bin/sh\"),\n token\n )\n\n let! _ =\n owned.Value.CreateSessionAsync(\n NewSessionRequest(\n Name = \"logs\",\n WindowName = \"tail\",\n Command = \"printf 'ERROR: disk full\\\\n'; exec sleep 60\"\n ),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n let! logs =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"logs\")\n |> Query.list token\n\n let! logPane = logs[0] |> Session.panes |> Query.list token\n\n let! logged = logPane[0] |> Pane.waitForText token (TimeSpan.FromSeconds 5.) \"ERROR:\"\n\n\n // tmux narrows each listing itself; every row is then rechecked.\n let! named =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.startsWith \"bu\")\n |> Query.exactlyOne token\n\n // A relation filter reads only the sessions whose windows can match.\n let! tailing =\n server\n |> Server.sessions\n |> Query.where (WindowFields.name |> Filter.eq \"tail\" |> Filter.any SessionFields.windows)\n |> Query.list token\n\n // Session and window scopes use the same functions.\n let! make =\n build\n |> Session.windows\n |> Query.where (WindowFields.name |> Filter.eq \"make\")\n |> Query.tryExactlyOne token\n\n // tryExactlyOne is None when no window, or several, matched.\n let! makePanes =\n task {\n match make with\n | Some window ->\n let! panes = window |> Window.panes |> Query.list token\n return Some panes.Count\n | None -> return None\n }\n\n // tmux searches each pane's visible rows, as find-window does.\n let! showingErrors =\n server\n |> Server.panes\n |> Query.showing (ScreenSearch.Text \"ERROR:\")\n |> Query.list token\n\n let! errorRow =\n showingErrors[0] |> Pane.findOnScreen token (ScreenSearch.Text \"disk full\")\n\n // A raw tmux filter is the escape hatch; nothing rechecks it.\n let! active =\n server\n |> Server.panes\n |> Query.whereUnsafe (UnsafeTmuxFilter \"#{pane_active}\")\n |> Query.list token\n\n // Find a session or create it: atMostOne is None only when nothing\n // matched, and raises when several do.\n let deploy =\n server\n |> Server.sessions\n |> Query.where (SessionFields.name |> Filter.eq \"deploy\")\n\n let! existing = deploy |> Query.atMostOne token\n\n if existing.IsNone then\n let! _ =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"deploy\", Command = \"exec sleep 60\"), token)\n\n ()\n\n let! found = deploy |> Query.atMostOne token\n\n let! several =\n task {\n try\n let! _ = server |> Server.sessions |> Query.atMostOne token\n return \"one or none\"\n with :? InvalidOperationException ->\n return \"refused\"\n }\n\n printfn \"logged: %b\" logged.Found\n printfn \"named: %A\" (named |> Result.map (fun session -> session.Name))\n printfn \"tailing: %A\" [ for session in tailing -> session.Name ]\n printfn \"make panes: %A\" makePanes\n printfn \"error row: %A\" errorRow\n printfn \"active panes: %d\" active.Count\n printfn \"deploy: absent %b, then found %b\" existing.IsNone found.IsSome\n printfn \"at most one of every session: %s\" several\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"logged: true\nnamed: Ok \"build\"\ntailing: [\"logs\"]\nmake panes: Some 1\nerror row: Some 1\nactive panes: 2\ndeploy: absent true, then found true\nat most one of every session: refused\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":14,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-sessions"},{"id":"LibTmux.FSharp.Server.windows","name":"windows","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val windows: server: LibTmux.Server -> Query","params":[{"name":"server","type":"LibTmux.Server"}],"returns":"Query"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Queries window placements across all sessions.","body":"A linked window appears once for each session it is linked into.","examples":[{"lang":"console","intro":"Read current scalar listings from a private server. Each detached session has one window and pane; no clients are attached. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerListings.fs","code":"// fsharp-snippet: ServerListings\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-listings-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! _demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n let! windows = server |> Server.windows |> Query.list token\n let! panes = server |> Server.panes |> Query.list token\n let! clients = server |> Server.clients |> Query.list token\n\n for session in sessions do\n printfn \"Session: %s (%O)\" session.Name session.Id\n\n printfn \"Windows: %d; panes: %d; clients: %d\" windows.Count panes.Count clients.Count\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Session: demo ($0)\nSession: worker ($1)\nWindows: 2; panes: 2; clients: 0\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":18,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-windows"},{"id":"LibTmux.FSharp.Server.panes","name":"panes","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val panes: server: LibTmux.Server -> Query","params":[{"name":"server","type":"LibTmux.Server"}],"returns":"Query"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Queries every pane.","examples":[{"lang":"console","intro":"Read current scalar listings from a private server. Each detached session has one window and pane; no clients are attached. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerListings.fs","code":"// fsharp-snippet: ServerListings\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-listings-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! _demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n let! windows = server |> Server.windows |> Query.list token\n let! panes = server |> Server.panes |> Query.list token\n let! clients = server |> Server.clients |> Query.list token\n\n for session in sessions do\n printfn \"Session: %s (%O)\" session.Name session.Id\n\n printfn \"Windows: %d; panes: %d; clients: %d\" windows.Count panes.Count clients.Count\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Session: demo ($0)\nSession: worker ($1)\nWindows: 2; panes: 2; clients: 0\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":21,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-panes"},{"id":"LibTmux.FSharp.Server.clients","name":"clients","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val clients: server: LibTmux.Server -> Query","params":[{"name":"server","type":"LibTmux.Server"}],"returns":"Query"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Queries attached clients.","body":"tmux narrows a filtered client listing only from tmux 3.4; older tmux lists every client.","examples":[{"lang":"console","intro":"Read current scalar listings from a private server. Each detached session has one window and pane; no clients are attached. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerListings.fs","code":"// fsharp-snippet: ServerListings\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-listings-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! _demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n use! _worker =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"worker\", WindowName = \"jobs\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! sessions = server |> Server.sessions |> Query.list token\n let! windows = server |> Server.windows |> Query.list token\n let! panes = server |> Server.panes |> Query.list token\n let! clients = server |> Server.clients |> Query.list token\n\n for session in sessions do\n printfn \"Session: %s (%O)\" session.Name session.Id\n\n printfn \"Windows: %d; panes: %d; clients: %d\" windows.Count panes.Count clients.Count\n\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Session: demo ($0)\nSession: worker ($1)\nWindows: 2; panes: 2; clients: 0\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":25,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-clients"},{"id":"LibTmux.FSharp.Server.within","name":"within","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val within: timeout: TimeSpan -> server: LibTmux.Server -> LibTmux.Server","params":[{"name":"timeout","type":"TimeSpan"},{"name":"server","type":"LibTmux.Server"}],"returns":"LibTmux.Server","raises":[{"type":"System.ArgumentOutOfRangeException","doc":"The timeout does not run forward."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns the server with every command bounded by a timeout, for it and every handle taken from it.","body":"The handle shares the connection, so nothing starts or is verified again.\nA command that outlasts the bound fails as MayHaveRun; a caller's\nown cancellation still reads as cancellation.","examples":[{"lang":"console","intro":"Create a session from F# records in one call: the first window is the one tmux makes with the session, and each split goes beside the pane before it. Add a window with a command chain, then read through a handle whose commands each get five seconds. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/BuildSession.fs","code":"// fsharp-snippet: BuildSession\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-build-session-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n // Describe the session, then create it in one call: the first window is\n // the one tmux makes with the session, and each split goes beside the\n // pane before it.\n let dev =\n { SessionSpec.named \"dev\" with\n Windows =\n [\n { WindowSpec.named \"editor\" with\n Command = Some \"exec sleep 60\"\n }\n { WindowSpec.named \"logs\" with\n Command = Some \"exec sleep 60\"\n Splits =\n [\n { SplitSpec.empty with\n Direction = Some PaneDirection.Right\n Command = Some \"exec sleep 60\"\n }\n { SplitSpec.empty with\n Command = Some \"exec sleep 60\"\n }\n ]\n }\n ]\n }\n\n let! session = owned.Value |> Server.newSession token dev\n\n // A chain runs in one tmux invocation; each step acts on what the one\n // before made.\n let! _ =\n owned.Value\n |> Chain.start\n |> Chain.newWindow session \"watch\"\n |> Chain.splitLeftRight\n |> Chain.sendLine \"exec sleep 60\"\n |> Chain.run token\n\n // Every command through this handle, and the handles taken from it,\n // gives tmux five seconds.\n let bounded = owned.Value |> Server.within (TimeSpan.FromSeconds 5.)\n let! windows = bounded |> Server.windows |> Query.list token\n\n for window in windows do\n let! panes = window |> Window.panes |> Query.list token\n printfn \"%s: %d panes\" window.Name panes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"editor: 1 panes\nlogs: 3 panes\nwatch: 2 panes\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":34,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-within"},{"id":"LibTmux.FSharp.Server.newSession","name":"newSession","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val newSession:\n cancellationToken: CancellationToken -> spec: SessionSpec -> server: LibTmux.Server -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"spec","type":"SessionSpec"},{"name":"server","type":"LibTmux.Server"}],"returns":"Task","returnsDoc":"The session, read again after its windows and panes exist.","raises":[{"type":"System.ArgumentException","doc":"The session and its first window name different directories, or the\nfirst window sets an environment."},{"type":"LibTmux.TmuxSessionExistsException","doc":"The name is already taken."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Creates a session as described: its windows, and each window's splits.","body":"tmux gives a new session one window, so the first WindowSpec is\nthat window: its name, command and directory go into the command that\ncreates the session. tmux sets environment there for the whole session,\nso the first window's must be empty; put it in the session's. Each\nlater spec creates a window of its own. A window's splits are made in\norder, each beside the pane before it.\n\nSteps run one after another; a failure part way leaves what was already\ncreated, so kill the session by name to clean up.","examples":[{"lang":"console","intro":"Create a session from F# records in one call: the first window is the one tmux makes with the session, and each split goes beside the pane before it. Add a window with a command chain, then read through a handle whose commands each get five seconds. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/BuildSession.fs","code":"// fsharp-snippet: BuildSession\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-build-session-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n // Describe the session, then create it in one call: the first window is\n // the one tmux makes with the session, and each split goes beside the\n // pane before it.\n let dev =\n { SessionSpec.named \"dev\" with\n Windows =\n [\n { WindowSpec.named \"editor\" with\n Command = Some \"exec sleep 60\"\n }\n { WindowSpec.named \"logs\" with\n Command = Some \"exec sleep 60\"\n Splits =\n [\n { SplitSpec.empty with\n Direction = Some PaneDirection.Right\n Command = Some \"exec sleep 60\"\n }\n { SplitSpec.empty with\n Command = Some \"exec sleep 60\"\n }\n ]\n }\n ]\n }\n\n let! session = owned.Value |> Server.newSession token dev\n\n // A chain runs in one tmux invocation; each step acts on what the one\n // before made.\n let! _ =\n owned.Value\n |> Chain.start\n |> Chain.newWindow session \"watch\"\n |> Chain.splitLeftRight\n |> Chain.sendLine \"exec sleep 60\"\n |> Chain.run token\n\n // Every command through this handle, and the handles taken from it,\n // gives tmux five seconds.\n let bounded = owned.Value |> Server.within (TimeSpan.FromSeconds 5.)\n let! windows = bounded |> Server.windows |> Query.list token\n\n for window in windows do\n let! panes = window |> Window.panes |> Query.list token\n printfn \"%s: %d panes\" window.Name panes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"editor: 1 panes\nlogs: 3 panes\nwatch: 2 panes\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":57,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-newsession"},{"id":"LibTmux.FSharp.Server.capture","name":"capture","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val capture:\n cancellationToken: CancellationToken -> depth: SnapshotDepth -> server: LibTmux.Server -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"depth","type":"SnapshotDepth"},{"name":"server","type":"LibTmux.Server"}],"returns":"Task"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns a new server handle captured to the requested depth.","body":"Acquisition is not atomic; retained handles do not refresh themselves.","examples":[{"lang":"console","intro":"Pattern match CaptureState before reading relations or active entities, and option before using nullable pane fields. Capturing returns a fresh handle; a captured empty relation is different from an uncaptured one. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SnapshotAccess.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-snapshot-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! server =\n task {\n use! session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"Sessions have not been captured.\"\n | Captured _ -> failwith \"Connecting must not capture the hierarchy.\"\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let capturedSession =\n match captured.Sessions |> Snapshot.relation with\n | Captured sessions -> sessions |> Seq.exactlyOne\n | Uncaptured _ -> failwith \"The requested sessions were not captured.\"\n\n let pane =\n match capturedSession.ActivePane |> Snapshot.value with\n | Captured pane -> pane\n | Uncaptured _ -> failwith \"The active pane was not captured.\"\n\n match pane |> Pane.currentPath, pane |> Pane.currentCommand with\n | Some _, Some _ -> printfn \"The captured active pane has a path and command.\"\n | _ -> failwith \"The running pane should report its path and command.\"\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"The original handle is still uncaptured.\"\n | Captured _ -> failwith \"Capturing must return a new immutable handle.\"\n\n // Keep this private daemon alive after its only owned session is disposed.\n let! result =\n server.ExecuteCommandAsync([| \"set-option\"; \"-s\"; \"exit-empty\"; \"off\" |], token)\n\n if result.ExitCode <> 0 then\n failwithf \"Could not keep the empty server alive: %A\" result.StandardErrorLines\n\n return server\n }\n\n let! empty = server |> Server.capture token SnapshotDepth.Sessions\n\n match empty.Sessions |> Snapshot.relation with\n | Captured sessions when sessions.Count = 0 -> printfn \"Captured sessions can be empty.\"\n | _ -> failwith \"An empty captured relation must be distinct from an uncaptured relation.\"\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":62,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-capture"},{"id":"LibTmux.FSharp.Server.tryFindSession","name":"tryFindSession","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val tryFindSession:\n cancellationToken: CancellationToken -> id: SessionId -> server: LibTmux.Server -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"id","type":"SessionId"},{"name":"server","type":"LibTmux.Server"}],"returns":"Task"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns a session or None after a successful lookup establishes absence.","body":"Connection, command and cancellation errors propagate unchanged.","examples":[{"lang":"console","intro":"Match successful lookups with Some and missing entities with None. The control connection supplies a client to find and is disposed before the owned server. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerLookups.fs","code":"// fsharp-snippet: ServerLookups\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-lookups-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! windows = server |> Server.windows |> Query.list token\n let! panes = server |> Server.panes |> Query.list token\n let window = windows |> Seq.exactlyOne\n let pane = panes |> Seq.exactlyOne\n\n use! _control = server |> Control.enter token\n let! clients = server |> Server.clients |> Query.list token\n let client = clients |> Seq.exactlyOne\n\n let! foundSession = server |> Server.tryFindSession token demo.Value.Id\n let! foundWindow = server |> Server.tryFindWindow token window.Id\n let! foundPane = server |> Server.tryFindPane token pane.Id\n let! foundClient = server |> Server.tryFindClient token client.Name\n\n let! missingSession =\n server |> Server.tryFindSession token (SessionId Int32.MaxValue)\n\n let! missingWindow = server |> Server.tryFindWindow token (WindowId Int32.MaxValue)\n let! missingPane = server |> Server.tryFindPane token (PaneId Int32.MaxValue)\n let! missingClient = server |> Server.tryFindClient token (client.Name + \"-missing\")\n\n printfn \"session: %A\" (foundSession |> Option.map (fun found -> found.Name))\n printfn \"window: %A\" (foundWindow |> Option.map (fun found -> found.Name))\n printfn \"pane: %A\" (foundPane |> Option.map (fun found -> found.Id = pane.Id))\n printfn \"client: %A\" (foundClient |> Option.map (fun found -> found.Name = client.Name))\n\n printfn\n \"missing: %A\"\n [\n missingSession.IsSome\n missingWindow.IsSome\n missingPane.IsSome\n missingClient.IsSome\n ]\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"session: Some \"demo\"\nwindow: Some \"shell\"\npane: Some true\nclient: Some true\nmissing: [false; false; false; false]\n"},{"lang":"console","intro":"None means a successful read found no matching session. A cancelled operation, invalid client name and stopped server still raise exceptions; ownership scopes clean up independently of the caller token. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/LookupFailures.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-failures-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n let! stoppedServer =\n task {\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! missing = server |> Server.tryFindSession token (SessionId Int32.MaxValue)\n\n match missing with\n | None -> printfn \"A successful lookup can return None.\"\n | Some _ -> failwith \"The missing session unexpectedly exists.\"\n\n use cancelled = new CancellationTokenSource()\n cancelled.Cancel()\n\n try\n let! _ = server |> Server.tryFindSession cancelled.Token session.Value.Id\n failwith \"A cancelled lookup must throw.\"\n with :? OperationCanceledException ->\n printfn \"Cancellation remains OperationCanceledException.\"\n\n try\n let! _ = server |> Server.tryFindClient token \" \"\n failwith \"A blank client name must be rejected.\"\n with :? ArgumentException ->\n printfn \"A blank client name remains ArgumentException.\"\n\n return server\n }\n\n try\n let! _ = stoppedServer |> Server.tryFindSession token (SessionId Int32.MaxValue)\n failwith \"A failed server read must not become None.\"\n with :? LibTmuxException ->\n printfn \"A stopped server remains a LibTmuxException.\"\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"A successful lookup can return None.\nCancellation remains OperationCanceledException.\nA blank client name remains ArgumentException.\nA stopped server remains a LibTmuxException.\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":67,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-tryfindsession"},{"id":"LibTmux.FSharp.Server.tryFindWindow","name":"tryFindWindow","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val tryFindWindow:\n cancellationToken: CancellationToken -> id: WindowId -> server: LibTmux.Server -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"id","type":"WindowId"},{"name":"server","type":"LibTmux.Server"}],"returns":"Task"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns a window or None after a successful lookup establishes absence.","body":"Connection, command and cancellation errors propagate unchanged.","examples":[{"lang":"console","intro":"Match successful lookups with Some and missing entities with None. The control connection supplies a client to find and is disposed before the owned server. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerLookups.fs","code":"// fsharp-snippet: ServerLookups\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-lookups-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! windows = server |> Server.windows |> Query.list token\n let! panes = server |> Server.panes |> Query.list token\n let window = windows |> Seq.exactlyOne\n let pane = panes |> Seq.exactlyOne\n\n use! _control = server |> Control.enter token\n let! clients = server |> Server.clients |> Query.list token\n let client = clients |> Seq.exactlyOne\n\n let! foundSession = server |> Server.tryFindSession token demo.Value.Id\n let! foundWindow = server |> Server.tryFindWindow token window.Id\n let! foundPane = server |> Server.tryFindPane token pane.Id\n let! foundClient = server |> Server.tryFindClient token client.Name\n\n let! missingSession =\n server |> Server.tryFindSession token (SessionId Int32.MaxValue)\n\n let! missingWindow = server |> Server.tryFindWindow token (WindowId Int32.MaxValue)\n let! missingPane = server |> Server.tryFindPane token (PaneId Int32.MaxValue)\n let! missingClient = server |> Server.tryFindClient token (client.Name + \"-missing\")\n\n printfn \"session: %A\" (foundSession |> Option.map (fun found -> found.Name))\n printfn \"window: %A\" (foundWindow |> Option.map (fun found -> found.Name))\n printfn \"pane: %A\" (foundPane |> Option.map (fun found -> found.Id = pane.Id))\n printfn \"client: %A\" (foundClient |> Option.map (fun found -> found.Name = client.Name))\n\n printfn\n \"missing: %A\"\n [\n missingSession.IsSome\n missingWindow.IsSome\n missingPane.IsSome\n missingClient.IsSome\n ]\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"session: Some \"demo\"\nwindow: Some \"shell\"\npane: Some true\nclient: Some true\nmissing: [false; false; false; false]\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":72,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-tryfindwindow"},{"id":"LibTmux.FSharp.Server.tryFindPane","name":"tryFindPane","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val tryFindPane:\n cancellationToken: CancellationToken -> id: PaneId -> server: LibTmux.Server -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"id","type":"PaneId"},{"name":"server","type":"LibTmux.Server"}],"returns":"Task"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns a pane or None after a successful lookup establishes absence.","body":"Connection, command and cancellation errors propagate unchanged.","examples":[{"lang":"console","intro":"Match successful lookups with Some and missing entities with None. The control connection supplies a client to find and is disposed before the owned server. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerLookups.fs","code":"// fsharp-snippet: ServerLookups\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-lookups-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! windows = server |> Server.windows |> Query.list token\n let! panes = server |> Server.panes |> Query.list token\n let window = windows |> Seq.exactlyOne\n let pane = panes |> Seq.exactlyOne\n\n use! _control = server |> Control.enter token\n let! clients = server |> Server.clients |> Query.list token\n let client = clients |> Seq.exactlyOne\n\n let! foundSession = server |> Server.tryFindSession token demo.Value.Id\n let! foundWindow = server |> Server.tryFindWindow token window.Id\n let! foundPane = server |> Server.tryFindPane token pane.Id\n let! foundClient = server |> Server.tryFindClient token client.Name\n\n let! missingSession =\n server |> Server.tryFindSession token (SessionId Int32.MaxValue)\n\n let! missingWindow = server |> Server.tryFindWindow token (WindowId Int32.MaxValue)\n let! missingPane = server |> Server.tryFindPane token (PaneId Int32.MaxValue)\n let! missingClient = server |> Server.tryFindClient token (client.Name + \"-missing\")\n\n printfn \"session: %A\" (foundSession |> Option.map (fun found -> found.Name))\n printfn \"window: %A\" (foundWindow |> Option.map (fun found -> found.Name))\n printfn \"pane: %A\" (foundPane |> Option.map (fun found -> found.Id = pane.Id))\n printfn \"client: %A\" (foundClient |> Option.map (fun found -> found.Name = client.Name))\n\n printfn\n \"missing: %A\"\n [\n missingSession.IsSome\n missingWindow.IsSome\n missingPane.IsSome\n missingClient.IsSome\n ]\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"session: Some \"demo\"\nwindow: Some \"shell\"\npane: Some true\nclient: Some true\nmissing: [false; false; false; false]\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":77,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-tryfindpane"},{"id":"LibTmux.FSharp.Server.tryFindClient","name":"tryFindClient","kind":"function","parent":"LibTmux.FSharp.Server","modifiers":[],"signatures":[{"raw":"val tryFindClient:\n cancellationToken: CancellationToken -> name: string -> server: LibTmux.Server -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"name","type":"string"},{"name":"server","type":"LibTmux.Server"}],"returns":"Task","raises":[{"type":"System.ArgumentException","doc":"The client name is null, empty or whitespace."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns the client with an exact name or None after a successful listing finds no match.","body":"Connection, command and cancellation errors propagate unchanged.","examples":[{"lang":"console","intro":"Match successful lookups with Some and missing entities with None. The control connection supplies a client to find and is disposed before the owned server. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/ServerLookups.fs","code":"// fsharp-snippet: ServerLookups\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-lookups-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! demo =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/sh\"),\n token\n )\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! windows = server |> Server.windows |> Query.list token\n let! panes = server |> Server.panes |> Query.list token\n let window = windows |> Seq.exactlyOne\n let pane = panes |> Seq.exactlyOne\n\n use! _control = server |> Control.enter token\n let! clients = server |> Server.clients |> Query.list token\n let client = clients |> Seq.exactlyOne\n\n let! foundSession = server |> Server.tryFindSession token demo.Value.Id\n let! foundWindow = server |> Server.tryFindWindow token window.Id\n let! foundPane = server |> Server.tryFindPane token pane.Id\n let! foundClient = server |> Server.tryFindClient token client.Name\n\n let! missingSession =\n server |> Server.tryFindSession token (SessionId Int32.MaxValue)\n\n let! missingWindow = server |> Server.tryFindWindow token (WindowId Int32.MaxValue)\n let! missingPane = server |> Server.tryFindPane token (PaneId Int32.MaxValue)\n let! missingClient = server |> Server.tryFindClient token (client.Name + \"-missing\")\n\n printfn \"session: %A\" (foundSession |> Option.map (fun found -> found.Name))\n printfn \"window: %A\" (foundWindow |> Option.map (fun found -> found.Name))\n printfn \"pane: %A\" (foundPane |> Option.map (fun found -> found.Id = pane.Id))\n printfn \"client: %A\" (foundClient |> Option.map (fun found -> found.Name = client.Name))\n\n printfn\n \"missing: %A\"\n [\n missingSession.IsSome\n missingWindow.IsSome\n missingPane.IsSome\n missingClient.IsSome\n ]\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"session: Some \"demo\"\nwindow: Some \"shell\"\npane: Some true\nclient: Some true\nmissing: [false; false; false; false]\n"},{"lang":"console","intro":"None means a successful read found no matching session. A cancelled operation, invalid client name and stopped server still raise exceptions; ownership scopes clean up independently of the caller token. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/LookupFailures.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-failures-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n let! stoppedServer =\n task {\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! missing = server |> Server.tryFindSession token (SessionId Int32.MaxValue)\n\n match missing with\n | None -> printfn \"A successful lookup can return None.\"\n | Some _ -> failwith \"The missing session unexpectedly exists.\"\n\n use cancelled = new CancellationTokenSource()\n cancelled.Cancel()\n\n try\n let! _ = server |> Server.tryFindSession cancelled.Token session.Value.Id\n failwith \"A cancelled lookup must throw.\"\n with :? OperationCanceledException ->\n printfn \"Cancellation remains OperationCanceledException.\"\n\n try\n let! _ = server |> Server.tryFindClient token \" \"\n failwith \"A blank client name must be rejected.\"\n with :? ArgumentException ->\n printfn \"A blank client name remains ArgumentException.\"\n\n return server\n }\n\n try\n let! _ = stoppedServer |> Server.tryFindSession token (SessionId Int32.MaxValue)\n failwith \"A failed server read must not become None.\"\n with :? LibTmuxException ->\n printfn \"A stopped server remains a LibTmuxException.\"\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"A successful lookup can return None.\nCancellation remains OperationCanceledException.\nA blank client name remains ArgumentException.\nA stopped server remains a LibTmuxException.\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":83,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-server-tryfindclient"},{"id":"LibTmux.FSharp.Session","name":"Session","kind":"module","modifiers":[],"signatures":[{"raw":"module Session","params":[]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Starts queries confined to one session."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":88,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-session"},{"id":"LibTmux.FSharp.Session.windows","name":"windows","kind":"function","parent":"LibTmux.FSharp.Session","modifiers":[],"signatures":[{"raw":"val windows: session: LibTmux.Session -> Query","params":[{"name":"session","type":"LibTmux.Session"}],"returns":"Query","raises":[{"type":"LibTmux.IncompleteSnapshotException","doc":"The session was not read through a server."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Queries the window placements in a session."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":91,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-session-windows"},{"id":"LibTmux.FSharp.Session.panes","name":"panes","kind":"function","parent":"LibTmux.FSharp.Session","modifiers":[],"signatures":[{"raw":"val panes: session: LibTmux.Session -> Query","params":[{"name":"session","type":"LibTmux.Session"}],"returns":"Query","raises":[{"type":"LibTmux.IncompleteSnapshotException","doc":"The session was not read through a server."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Queries the panes of every window in a session."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":95,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-session-panes"},{"id":"LibTmux.FSharp.Window","name":"Window","kind":"module","modifiers":[],"signatures":[{"raw":"module Window","params":[]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Identifies window placements and starts queries confined to one window."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":99,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-window"},{"id":"LibTmux.FSharp.Window.placementKey","name":"placementKey","kind":"function","parent":"LibTmux.FSharp.Window","modifiers":[],"signatures":[{"raw":"val placementKey: window: LibTmux.Window -> WindowPlacementKey","params":[{"name":"window","type":"LibTmux.Window"}],"returns":"WindowPlacementKey","raises":[{"type":"LibTmux.IncompleteSnapshotException","doc":"The placement was not captured."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns a comparable key including the captured session and window index."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":102,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-window-placementkey"},{"id":"LibTmux.FSharp.Window.panes","name":"panes","kind":"function","parent":"LibTmux.FSharp.Window","modifiers":[],"signatures":[{"raw":"val panes: window: LibTmux.Window -> Query","params":[{"name":"window","type":"LibTmux.Window"}],"returns":"Query","raises":[{"type":"LibTmux.IncompleteSnapshotException","doc":"The window was not read through a server."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Queries the panes in a window."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":106,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-window-panes"},{"id":"LibTmux.FSharp.Pane","name":"Pane","kind":"module","modifiers":[],"signatures":[{"raw":"module Pane","params":[]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Reads captured pane fields and starts explicit pane operations."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":110,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane"},{"id":"LibTmux.FSharp.Pane.currentPath","name":"currentPath","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val currentPath: pane: LibTmux.Pane -> string option","params":[{"name":"pane","type":"LibTmux.Pane"}],"returns":"string option","raises":[{"type":"LibTmux.IncompleteSnapshotException","doc":"The path field was not captured."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Reads the captured working directory, preserving an empty string.","examples":[{"lang":"console","intro":"Pattern match CaptureState before reading relations or active entities, and option before using nullable pane fields. Capturing returns a fresh handle; a captured empty relation is different from an uncaptured one. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SnapshotAccess.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-snapshot-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! server =\n task {\n use! session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"Sessions have not been captured.\"\n | Captured _ -> failwith \"Connecting must not capture the hierarchy.\"\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let capturedSession =\n match captured.Sessions |> Snapshot.relation with\n | Captured sessions -> sessions |> Seq.exactlyOne\n | Uncaptured _ -> failwith \"The requested sessions were not captured.\"\n\n let pane =\n match capturedSession.ActivePane |> Snapshot.value with\n | Captured pane -> pane\n | Uncaptured _ -> failwith \"The active pane was not captured.\"\n\n match pane |> Pane.currentPath, pane |> Pane.currentCommand with\n | Some _, Some _ -> printfn \"The captured active pane has a path and command.\"\n | _ -> failwith \"The running pane should report its path and command.\"\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"The original handle is still uncaptured.\"\n | Captured _ -> failwith \"Capturing must return a new immutable handle.\"\n\n // Keep this private daemon alive after its only owned session is disposed.\n let! result =\n server.ExecuteCommandAsync([| \"set-option\"; \"-s\"; \"exit-empty\"; \"off\" |], token)\n\n if result.ExitCode <> 0 then\n failwithf \"Could not keep the empty server alive: %A\" result.StandardErrorLines\n\n return server\n }\n\n let! empty = server |> Server.capture token SnapshotDepth.Sessions\n\n match empty.Sessions |> Snapshot.relation with\n | Captured sessions when sessions.Count = 0 -> printfn \"Captured sessions can be empty.\"\n | _ -> failwith \"An empty captured relation must be distinct from an uncaptured relation.\"\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":113,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-currentpath"},{"id":"LibTmux.FSharp.Pane.currentCommand","name":"currentCommand","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val currentCommand: pane: LibTmux.Pane -> string option","params":[{"name":"pane","type":"LibTmux.Pane"}],"returns":"string option","raises":[{"type":"LibTmux.IncompleteSnapshotException","doc":"The command field was not captured."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Reads the captured command name, preserving an empty string.","examples":[{"lang":"console","intro":"Pattern match CaptureState before reading relations or active entities, and option before using nullable pane fields. Capturing returns a fresh handle; a captured empty relation is different from an uncaptured one. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SnapshotAccess.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-snapshot-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! server =\n task {\n use! session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/cat\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"Sessions have not been captured.\"\n | Captured _ -> failwith \"Connecting must not capture the hierarchy.\"\n\n let! captured = server |> Server.capture token SnapshotDepth.Panes\n\n let capturedSession =\n match captured.Sessions |> Snapshot.relation with\n | Captured sessions -> sessions |> Seq.exactlyOne\n | Uncaptured _ -> failwith \"The requested sessions were not captured.\"\n\n let pane =\n match capturedSession.ActivePane |> Snapshot.value with\n | Captured pane -> pane\n | Uncaptured _ -> failwith \"The active pane was not captured.\"\n\n match pane |> Pane.currentPath, pane |> Pane.currentCommand with\n | Some _, Some _ -> printfn \"The captured active pane has a path and command.\"\n | _ -> failwith \"The running pane should report its path and command.\"\n\n match server.Sessions |> Snapshot.relation with\n | Uncaptured _ -> printfn \"The original handle is still uncaptured.\"\n | Captured _ -> failwith \"Capturing must return a new immutable handle.\"\n\n // Keep this private daemon alive after its only owned session is disposed.\n let! result =\n server.ExecuteCommandAsync([| \"set-option\"; \"-s\"; \"exit-empty\"; \"off\" |], token)\n\n if result.ExitCode <> 0 then\n failwithf \"Could not keep the empty server alive: %A\" result.StandardErrorLines\n\n return server\n }\n\n let! empty = server |> Server.capture token SnapshotDepth.Sessions\n\n match empty.Sessions |> Snapshot.relation with\n | Captured sessions when sessions.Count = 0 -> printfn \"Captured sessions can be empty.\"\n | _ -> failwith \"An empty captured relation must be distinct from an uncaptured relation.\"\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Sessions have not been captured.\nThe captured active pane has a path and command.\nThe original handle is still uncaptured.\nCaptured sessions can be empty.\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":117,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-currentcommand"},{"id":"LibTmux.FSharp.Pane.capture","name":"capture","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val capture:\n cancellationToken: CancellationToken ->\n request: CapturePaneRequest ->\n pane: LibTmux.Pane ->\n Task>","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"request","type":"CapturePaneRequest"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task>"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Captures pane contents using the supplied core request.","examples":[{"lang":"console","intro":"Type a shell command literally, press the named Enter key, and wait for its private completion signal before capturing output. Timeout and command failures escape the program after scoped cleanup; cancellation does not undo dispatched input. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/InputCapture.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet quoteShell (value: string) = \"'\" + value.Replace(\"'\", \"'\\\\''\") + \"'\"\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let socketName = \"fsharp-capture-\" + Guid.NewGuid().ToString(\"N\")\n\n let options =\n ServerConnectionOptions(SocketName = socketName, ConfigurationFile = \"/dev/null\", TmuxBinaryPath = binary)\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! _session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/sh\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! panes = server |> Server.panes |> Query.list token\n let pane = panes |> Seq.exactlyOne\n let channel = \"capture-\" + Guid.NewGuid().ToString(\"N\")\n use wait = server.OpenWaitChannel(channel)\n let marker = \"api capture ready\"\n\n let command =\n sprintf\n \"printf '%%s\\\\n' %s; %s -L %s wait-for -S %s\"\n (quoteShell marker)\n (quoteShell binary)\n (quoteShell socketName)\n (quoteShell channel)\n\n do!\n pane\n |> Pane.sendKeys token (SendKeysRequest(Text = command, Literal = true, Enter = false))\n\n do! pane |> Pane.sendKeys token (SendKeysRequest(Text = \"Enter\", Enter = false))\n let! ready = wait.WaitAsync(TimeSpan.FromSeconds 5., token)\n\n if not ready then\n failwith \"The pane did not signal that its output was ready.\"\n\n let! lines = pane |> Pane.capture token (CapturePaneRequest(JoinWrappedLines = true))\n\n // Joining wrapped lines preserves terminal padding after the output.\n if not (lines |> Seq.exists (fun line -> line.TrimEnd() = marker)) then\n failwithf \"Capture did not contain the complete output line: %A\" lines\n\n printfn \"%s\" marker\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"api capture ready\n"},{"lang":"console","intro":"Type a line and wait for what it prints, not for its echo. Wait for a condition over the whole screen, then run a command and read its exit status and output. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SendWaitRead.fs","code":"// fsharp-snippet: SendWaitRead\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-send-wait-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! session =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"work\", Command = \"/bin/sh\"), token)\n\n let! panes = session |> Session.panes |> Query.list token\n let pane = panes[0]\n\n // Type a line and wait for what it prints. The screen before it and\n // the line's own echo do not count.\n let! ready =\n pane\n |> Pane.sendAndWait token (TimeSpan.FromSeconds 5.) \"echo server ready\" \"server ready\"\n\n // A condition sees every visible row each time the pane changes.\n do! pane |> Pane.sendKeys token (SendKeysRequest(Text = \"seq 3\", Literal = true))\n\n let! counted =\n pane\n |> Pane.waitUntil token (TimeSpan.FromSeconds 5.) (fun rows -> rows |> Seq.exists ((=) \"3\"))\n\n // Running a command waits for its exit status and returns its output.\n let! listing =\n pane |> Pane.run token (TimeSpan.FromSeconds 10.) \"printf 'a\\\\nb\\\\n'; exit 4\"\n\n let! screen = pane |> Pane.capture token (CapturePaneRequest())\n\n printfn \"ready: %b\" ready.Found\n printfn \"counted: %b\" counted.Found\n printfn \"run: exit %A, output %A\" listing.ExitStatus (List.ofSeq listing.Output)\n printfn \"screen shows the run: %b\" (screen |> Seq.exists (fun row -> row = \"a\"))\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"ready: true\ncounted: true\nrun: exit 4, output [\"a\"; \"b\"]\nscreen shows the run: true\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":120,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-capture"},{"id":"LibTmux.FSharp.Pane.findOnScreen","name":"findOnScreen","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val findOnScreen:\n cancellationToken: CancellationToken -> search: ScreenSearch -> pane: LibTmux.Pane -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"search","type":"ScreenSearch"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task","raises":[{"type":"System.ArgumentException","doc":"The text cannot be written as a tmux format."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Returns the first visible row showing the text, counted from 1, or None.","body":"tmux searches only the rows on screen. Capture the history and filter its lines to search further back."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":129,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-findonscreen"},{"id":"LibTmux.FSharp.Pane.waitForText","name":"waitForText","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val waitForText:\n cancellationToken: CancellationToken ->\n timeout: TimeSpan ->\n text: string ->\n pane: LibTmux.Pane ->\n Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"timeout","type":"TimeSpan"},{"name":"text","type":"string"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task","raises":[{"type":"System.ArgumentException","doc":"The text is empty or spans lines."},{"type":"LibTmux.TmuxPaneException","doc":"The pane's program had already exited."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Waits for a line the pane prints to contain the text.","body":"Text already on screen ends the wait at once as PresentAtEntry.\nThe wait sleeps on the pane's own output rather than polling, and ends\nearly when the pane's program exits or a full-screen program starts."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":140,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-waitfortext"},{"id":"LibTmux.FSharp.Pane.waitFor","name":"waitFor","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val waitFor:\n cancellationToken: CancellationToken -> request: PaneWaitRequest -> pane: LibTmux.Pane -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"request","type":"PaneWaitRequest"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task","raises":[{"type":"LibTmux.TmuxPaneException","doc":"The pane's program had already exited."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Waits as the request describes: patterns, stop patterns, or any output."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":149,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-waitfor"},{"id":"LibTmux.FSharp.Pane.sendAndWait","name":"sendAndWait","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val sendAndWait:\n cancellationToken: CancellationToken ->\n timeout: TimeSpan ->\n line: string ->\n text: string ->\n pane: LibTmux.Pane ->\n Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"timeout","type":"TimeSpan"},{"name":"line","type":"string"},{"name":"text","type":"string"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task","raises":[{"type":"System.ArgumentException","doc":"The text is empty or spans lines."},{"type":"LibTmux.TmuxPaneException","doc":"The pane's program had already exited."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Types a line, presses Enter, and waits for a later line to contain the text.","body":"The screen before the line is typed never ends the wait, and the\nshell's echo of the line is discounted: waiting for done after\ntyping echo done waits for the command's output. Prefer this to\nsendKeys followed by waitForText, which can match the\ntyped line itself.","examples":[{"lang":"console","intro":"Type a line and wait for what it prints, not for its echo. Wait for a condition over the whole screen, then run a command and read its exit status and output. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SendWaitRead.fs","code":"// fsharp-snippet: SendWaitRead\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-send-wait-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! session =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"work\", Command = \"/bin/sh\"), token)\n\n let! panes = session |> Session.panes |> Query.list token\n let pane = panes[0]\n\n // Type a line and wait for what it prints. The screen before it and\n // the line's own echo do not count.\n let! ready =\n pane\n |> Pane.sendAndWait token (TimeSpan.FromSeconds 5.) \"echo server ready\" \"server ready\"\n\n // A condition sees every visible row each time the pane changes.\n do! pane |> Pane.sendKeys token (SendKeysRequest(Text = \"seq 3\", Literal = true))\n\n let! counted =\n pane\n |> Pane.waitUntil token (TimeSpan.FromSeconds 5.) (fun rows -> rows |> Seq.exists ((=) \"3\"))\n\n // Running a command waits for its exit status and returns its output.\n let! listing =\n pane |> Pane.run token (TimeSpan.FromSeconds 10.) \"printf 'a\\\\nb\\\\n'; exit 4\"\n\n let! screen = pane |> Pane.capture token (CapturePaneRequest())\n\n printfn \"ready: %b\" ready.Found\n printfn \"counted: %b\" counted.Found\n printfn \"run: exit %A, output %A\" listing.ExitStatus (List.ofSeq listing.Output)\n printfn \"screen shows the run: %b\" (screen |> Seq.exists (fun row -> row = \"a\"))\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"ready: true\ncounted: true\nrun: exit 4, output [\"a\"; \"b\"]\nscreen shows the run: true\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":162,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-sendandwait"},{"id":"LibTmux.FSharp.Pane.sendAndWaitFor","name":"sendAndWaitFor","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val sendAndWaitFor:\n cancellationToken: CancellationToken ->\n keys: SendKeysRequest ->\n request: PaneWaitRequest ->\n pane: LibTmux.Pane ->\n Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"keys","type":"SendKeysRequest"},{"name":"request","type":"PaneWaitRequest"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task","raises":[{"type":"System.ArgumentException","doc":"The wait names no pattern."},{"type":"LibTmux.TmuxPaneException","doc":"The pane's program had already exited."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Sends keys as the request describes, then waits as the wait request describes.","body":"As sendAndWait: only output after the keys counts, and literal\ntext is discounted from it. Key names are not."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":177,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-sendandwaitfor"},{"id":"LibTmux.FSharp.Pane.waitUntil","name":"waitUntil","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val waitUntil:\n cancellationToken: CancellationToken ->\n timeout: TimeSpan ->\n condition: (IReadOnlyList -> bool) ->\n pane: LibTmux.Pane ->\n Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"timeout","type":"TimeSpan"},{"name":"condition","type":"(IReadOnlyList -> bool)"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task","raises":[{"type":"LibTmux.TmuxPaneException","doc":"The pane's program had already exited."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Waits until a condition holds over the rows the pane shows, top to bottom.","body":"The condition sees the whole screen each time the pane prints or changes state.","examples":[{"lang":"console","intro":"Type a line and wait for what it prints, not for its echo. Wait for a condition over the whole screen, then run a command and read its exit status and output. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SendWaitRead.fs","code":"// fsharp-snippet: SendWaitRead\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-send-wait-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! session =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"work\", Command = \"/bin/sh\"), token)\n\n let! panes = session |> Session.panes |> Query.list token\n let pane = panes[0]\n\n // Type a line and wait for what it prints. The screen before it and\n // the line's own echo do not count.\n let! ready =\n pane\n |> Pane.sendAndWait token (TimeSpan.FromSeconds 5.) \"echo server ready\" \"server ready\"\n\n // A condition sees every visible row each time the pane changes.\n do! pane |> Pane.sendKeys token (SendKeysRequest(Text = \"seq 3\", Literal = true))\n\n let! counted =\n pane\n |> Pane.waitUntil token (TimeSpan.FromSeconds 5.) (fun rows -> rows |> Seq.exists ((=) \"3\"))\n\n // Running a command waits for its exit status and returns its output.\n let! listing =\n pane |> Pane.run token (TimeSpan.FromSeconds 10.) \"printf 'a\\\\nb\\\\n'; exit 4\"\n\n let! screen = pane |> Pane.capture token (CapturePaneRequest())\n\n printfn \"ready: %b\" ready.Found\n printfn \"counted: %b\" counted.Found\n printfn \"run: exit %A, output %A\" listing.ExitStatus (List.ofSeq listing.Output)\n printfn \"screen shows the run: %b\" (screen |> Seq.exists (fun row -> row = \"a\"))\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"ready: true\ncounted: true\nrun: exit 4, output [\"a\"; \"b\"]\nscreen shows the run: true\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":187,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-waituntil"},{"id":"LibTmux.FSharp.Pane.run","name":"run","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val run:\n cancellationToken: CancellationToken ->\n timeout: TimeSpan ->\n command: string ->\n pane: LibTmux.Pane ->\n Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"timeout","type":"TimeSpan"},{"name":"command","type":"string"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task","raises":[{"type":"LibTmux.TmuxPaneException","doc":"The pane is in a mode or not running a POSIX shell."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Runs a shell command in the pane and waits for its exit status and output.","body":"The pane must sit at a POSIX shell prompt. A command still running at\nthe timeout keeps running; the result reports TimedOut.","examples":[{"lang":"console","intro":"Type a line and wait for what it prints, not for its echo. Wait for a condition over the whole screen, then run a command and read its exit status and output. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/SendWaitRead.fs","code":"// fsharp-snippet: SendWaitRead\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-send-wait-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n let! session =\n owned.Value.CreateSessionAsync(NewSessionRequest(Name = \"work\", Command = \"/bin/sh\"), token)\n\n let! panes = session |> Session.panes |> Query.list token\n let pane = panes[0]\n\n // Type a line and wait for what it prints. The screen before it and\n // the line's own echo do not count.\n let! ready =\n pane\n |> Pane.sendAndWait token (TimeSpan.FromSeconds 5.) \"echo server ready\" \"server ready\"\n\n // A condition sees every visible row each time the pane changes.\n do! pane |> Pane.sendKeys token (SendKeysRequest(Text = \"seq 3\", Literal = true))\n\n let! counted =\n pane\n |> Pane.waitUntil token (TimeSpan.FromSeconds 5.) (fun rows -> rows |> Seq.exists ((=) \"3\"))\n\n // Running a command waits for its exit status and returns its output.\n let! listing =\n pane |> Pane.run token (TimeSpan.FromSeconds 10.) \"printf 'a\\\\nb\\\\n'; exit 4\"\n\n let! screen = pane |> Pane.capture token (CapturePaneRequest())\n\n printfn \"ready: %b\" ready.Found\n printfn \"counted: %b\" counted.Found\n printfn \"run: exit %A, output %A\" listing.ExitStatus (List.ofSeq listing.Output)\n printfn \"screen shows the run: %b\" (screen |> Seq.exists (fun row -> row = \"a\"))\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"ready: true\ncounted: true\nrun: exit 4, output [\"a\"; \"b\"]\nscreen shows the run: true\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":200,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-run"},{"id":"LibTmux.FSharp.Pane.sendKeys","name":"sendKeys","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val sendKeys: cancellationToken: CancellationToken -> request: SendKeysRequest -> pane: LibTmux.Pane -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"request","type":"SendKeysRequest"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Sends text or key names according to the request's literal and Enter settings.","body":"Cancellation can occur after dispatch; it does not undo sent keys.","examples":[{"lang":"console","intro":"Type a shell command literally, press the named Enter key, and wait for its private completion signal before capturing output. Timeout and command failures escape the program after scoped cleanup; cancellation does not undo dispatched input. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/InputCapture.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet quoteShell (value: string) = \"'\" + value.Replace(\"'\", \"'\\\\''\") + \"'\"\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let socketName = \"fsharp-capture-\" + Guid.NewGuid().ToString(\"N\")\n\n let options =\n ServerConnectionOptions(SocketName = socketName, ConfigurationFile = \"/dev/null\", TmuxBinaryPath = binary)\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! _session =\n owned.Value.CreateOwnedSessionAsync(NewSessionRequest(Name = \"demo\", Command = \"/bin/sh\"), token)\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! panes = server |> Server.panes |> Query.list token\n let pane = panes |> Seq.exactlyOne\n let channel = \"capture-\" + Guid.NewGuid().ToString(\"N\")\n use wait = server.OpenWaitChannel(channel)\n let marker = \"api capture ready\"\n\n let command =\n sprintf\n \"printf '%%s\\\\n' %s; %s -L %s wait-for -S %s\"\n (quoteShell marker)\n (quoteShell binary)\n (quoteShell socketName)\n (quoteShell channel)\n\n do!\n pane\n |> Pane.sendKeys token (SendKeysRequest(Text = command, Literal = true, Enter = false))\n\n do! pane |> Pane.sendKeys token (SendKeysRequest(Text = \"Enter\", Enter = false))\n let! ready = wait.WaitAsync(TimeSpan.FromSeconds 5., token)\n\n if not ready then\n failwith \"The pane did not signal that its output was ready.\"\n\n let! lines = pane |> Pane.capture token (CapturePaneRequest(JoinWrappedLines = true))\n\n // Joining wrapped lines preserves terminal padding after the output.\n if not (lines |> Seq.exists (fun line -> line.TrimEnd() = marker)) then\n failwithf \"Capture did not contain the complete output line: %A\" lines\n\n printfn \"%s\" marker\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"api capture ready\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":209,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-sendkeys"},{"id":"LibTmux.FSharp.Pane.split","name":"split","kind":"function","parent":"LibTmux.FSharp.Pane","modifiers":[],"signatures":[{"raw":"val split:\n cancellationToken: CancellationToken -> request: SplitPaneRequest -> pane: LibTmux.Pane -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"request","type":"SplitPaneRequest"},{"name":"pane","type":"LibTmux.Pane"}],"returns":"Task"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Splits the pane and returns the new pane handle.","body":"Cancellation can leave the split applied; do not retry automatically.","examples":[{"lang":"console","intro":"Create owned session and window scopes with the core LibTmux API, then split a pane with the F# Pane.split helper. Disposing the owned window also stops its split panes. For F# session descriptions, use Server.newSession with SessionSpec. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/CreateWindowPane.fs","code":"open System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 10.)\n let token = deadline.Token\n\n let binary =\n Environment.GetEnvironmentVariable(\"LIBTMUX_TMUX\")\n |> Option.ofObj\n |> Option.defaultValue \"tmux\"\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-create-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath = binary\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n use! session =\n owned.Value.CreateOwnedSessionAsync(\n NewSessionRequest(Name = \"demo\", WindowName = \"shell\", Command = \"/bin/cat\"),\n token\n )\n\n use! window =\n session.Value.CreateOwnedWindowAsync(NewWindowRequest(Name = \"editor\", Command = \"/bin/cat\"), token)\n\n let! panes = window.Value.GetPanesAsync(token)\n let original = panes |> Seq.exactlyOne\n\n let! added =\n original\n |> Pane.split token (SplitPaneRequest(Direction = PaneDirection.Right, Command = \"/bin/cat\"))\n\n let! server = LibTmux.Server.ConnectAsync(options, token)\n let! windows = server |> Server.windows |> Query.list token\n let! allPanes = server |> Server.panes |> Query.list token\n\n if windows.Count <> 2 || allPanes.Count <> 3 || added.Id = original.Id then\n failwith \"Expected two windows and three distinct panes.\"\n\n printfn \"Created session demo and window editor.\"\n printfn \"Windows: %d; panes: %d\" windows.Count allPanes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"Created session demo and window editor.\nWindows: 2; panes: 3\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":213,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-pane-split"},{"id":"LibTmux.FSharp.Options","name":"Options","kind":"module","modifiers":[],"signatures":[{"raw":"module Options","params":[]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Reads and writes options through keys that know their value's type.","body":"Pass the options of the scope the option belongs to, such as\nsession.Options for TmuxOptionKey.HistoryLimit. Declare other keys\nwith TmuxOptionKey.Text, Number or Flag."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":223,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-options"},{"id":"LibTmux.FSharp.Options.get","name":"get","kind":"function","parent":"LibTmux.FSharp.Options","modifiers":[],"signatures":[{"raw":"val get: cancellationToken: CancellationToken -> key: TmuxOptionKey<'T> -> options: TmuxOptions -> Task<'T>","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"key","type":"TmuxOptionKey<'T>"},{"name":"options","type":"TmuxOptions"}],"returns":"Task<'T>","raises":[{"type":"LibTmux.TmuxOptionException","doc":"tmux rejected the name, reported no value, or reported one the key cannot read."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Reads the value an option has in a scope, set there or inherited, as its key's type."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":226,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-options-get"},{"id":"LibTmux.FSharp.Options.set","name":"set","kind":"function","parent":"LibTmux.FSharp.Options","modifiers":[],"signatures":[{"raw":"val set: cancellationToken: CancellationToken -> key: TmuxOptionKey<'T> -> value: 'T -> options: TmuxOptions -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"key","type":"TmuxOptionKey<'T>"},{"name":"value","type":"'T"},{"name":"options","type":"TmuxOptions"}],"returns":"Task","raises":[{"type":"LibTmux.TmuxOptionException","doc":"tmux rejected the name or the value."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Sets an option in a scope from a value of its key's type."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":230,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-options-set"},{"id":"LibTmux.FSharp.Chain","name":"Chain","kind":"module","modifiers":[],"signatures":[{"raw":"module Chain","params":[]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Builds commands tmux runs together, each acting on what the one before made.","body":"tmux moves its current target as a chain runs: newWindow makes the\nnew window current, a following split splits its pane, and a following\nsendLine types into the pane that split made. No step after the\nfirst names a target, so a chain needs no round trip to learn the id of\nwhat it just created.\n\nA chain is a core TmuxChain: each step returns a new one, building\nreads nothing, and run sends every command in one tmux invocation.\nadd appends any command, such as a typed request's ToCommand."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":248,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-chain"},{"id":"LibTmux.FSharp.Chain.start","name":"start","kind":"function","parent":"LibTmux.FSharp.Chain","modifiers":[],"signatures":[{"raw":"val start: server: LibTmux.Server -> TmuxChain","params":[{"name":"server","type":"LibTmux.Server"}],"returns":"TmuxChain","raises":[{"type":"System.InvalidOperationException","doc":"The server handle has no connection."}]}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Starts an empty chain against a server.","examples":[{"lang":"console","intro":"Create a session from F# records in one call: the first window is the one tmux makes with the session, and each split goes beside the pane before it. Add a window with a command chain, then read through a handle whose commands each get five seconds. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/BuildSession.fs","code":"// fsharp-snippet: BuildSession\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-build-session-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n // Describe the session, then create it in one call: the first window is\n // the one tmux makes with the session, and each split goes beside the\n // pane before it.\n let dev =\n { SessionSpec.named \"dev\" with\n Windows =\n [\n { WindowSpec.named \"editor\" with\n Command = Some \"exec sleep 60\"\n }\n { WindowSpec.named \"logs\" with\n Command = Some \"exec sleep 60\"\n Splits =\n [\n { SplitSpec.empty with\n Direction = Some PaneDirection.Right\n Command = Some \"exec sleep 60\"\n }\n { SplitSpec.empty with\n Command = Some \"exec sleep 60\"\n }\n ]\n }\n ]\n }\n\n let! session = owned.Value |> Server.newSession token dev\n\n // A chain runs in one tmux invocation; each step acts on what the one\n // before made.\n let! _ =\n owned.Value\n |> Chain.start\n |> Chain.newWindow session \"watch\"\n |> Chain.splitLeftRight\n |> Chain.sendLine \"exec sleep 60\"\n |> Chain.run token\n\n // Every command through this handle, and the handles taken from it,\n // gives tmux five seconds.\n let bounded = owned.Value |> Server.within (TimeSpan.FromSeconds 5.)\n let! windows = bounded |> Server.windows |> Query.list token\n\n for window in windows do\n let! panes = window |> Window.panes |> Query.list token\n printfn \"%s: %d panes\" window.Name panes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"editor: 1 panes\nlogs: 3 panes\nwatch: 2 panes\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":251,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-chain-start"},{"id":"LibTmux.FSharp.Chain.newWindow","name":"newWindow","kind":"function","parent":"LibTmux.FSharp.Chain","modifiers":[],"signatures":[{"raw":"val newWindow: session: LibTmux.Session -> name: string -> chain: TmuxChain -> TmuxChain","params":[{"name":"session","type":"LibTmux.Session"},{"name":"name","type":"string"},{"name":"chain","type":"TmuxChain"}],"returns":"TmuxChain"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Adds a window to a session and makes it the one following steps act on.","body":"It fails rather than reach another session when tmux restarted after the session was read.","examples":[{"lang":"console","intro":"Create a session from F# records in one call: the first window is the one tmux makes with the session, and each split goes beside the pane before it. Add a window with a command chain, then read through a handle whose commands each get five seconds. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/BuildSession.fs","code":"// fsharp-snippet: BuildSession\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-build-session-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n // Describe the session, then create it in one call: the first window is\n // the one tmux makes with the session, and each split goes beside the\n // pane before it.\n let dev =\n { SessionSpec.named \"dev\" with\n Windows =\n [\n { WindowSpec.named \"editor\" with\n Command = Some \"exec sleep 60\"\n }\n { WindowSpec.named \"logs\" with\n Command = Some \"exec sleep 60\"\n Splits =\n [\n { SplitSpec.empty with\n Direction = Some PaneDirection.Right\n Command = Some \"exec sleep 60\"\n }\n { SplitSpec.empty with\n Command = Some \"exec sleep 60\"\n }\n ]\n }\n ]\n }\n\n let! session = owned.Value |> Server.newSession token dev\n\n // A chain runs in one tmux invocation; each step acts on what the one\n // before made.\n let! _ =\n owned.Value\n |> Chain.start\n |> Chain.newWindow session \"watch\"\n |> Chain.splitLeftRight\n |> Chain.sendLine \"exec sleep 60\"\n |> Chain.run token\n\n // Every command through this handle, and the handles taken from it,\n // gives tmux five seconds.\n let bounded = owned.Value |> Server.within (TimeSpan.FromSeconds 5.)\n let! windows = bounded |> Server.windows |> Query.list token\n\n for window in windows do\n let! panes = window |> Window.panes |> Query.list token\n printfn \"%s: %d panes\" window.Name panes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"editor: 1 panes\nlogs: 3 panes\nwatch: 2 panes\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":255,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-chain-newwindow"},{"id":"LibTmux.FSharp.Chain.splitLeftRight","name":"splitLeftRight","kind":"function","parent":"LibTmux.FSharp.Chain","modifiers":[],"signatures":[{"raw":"val splitLeftRight: chain: TmuxChain -> TmuxChain","params":[{"name":"chain","type":"TmuxChain"}],"returns":"TmuxChain"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Splits the current pane into a left and a right one; the right becomes current.","examples":[{"lang":"console","intro":"Create a session from F# records in one call: the first window is the one tmux makes with the session, and each split goes beside the pane before it. Add a window with a command chain, then read through a handle whose commands each get five seconds. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/BuildSession.fs","code":"// fsharp-snippet: BuildSession\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-build-session-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n // Describe the session, then create it in one call: the first window is\n // the one tmux makes with the session, and each split goes beside the\n // pane before it.\n let dev =\n { SessionSpec.named \"dev\" with\n Windows =\n [\n { WindowSpec.named \"editor\" with\n Command = Some \"exec sleep 60\"\n }\n { WindowSpec.named \"logs\" with\n Command = Some \"exec sleep 60\"\n Splits =\n [\n { SplitSpec.empty with\n Direction = Some PaneDirection.Right\n Command = Some \"exec sleep 60\"\n }\n { SplitSpec.empty with\n Command = Some \"exec sleep 60\"\n }\n ]\n }\n ]\n }\n\n let! session = owned.Value |> Server.newSession token dev\n\n // A chain runs in one tmux invocation; each step acts on what the one\n // before made.\n let! _ =\n owned.Value\n |> Chain.start\n |> Chain.newWindow session \"watch\"\n |> Chain.splitLeftRight\n |> Chain.sendLine \"exec sleep 60\"\n |> Chain.run token\n\n // Every command through this handle, and the handles taken from it,\n // gives tmux five seconds.\n let bounded = owned.Value |> Server.within (TimeSpan.FromSeconds 5.)\n let! windows = bounded |> Server.windows |> Query.list token\n\n for window in windows do\n let! panes = window |> Window.panes |> Query.list token\n printfn \"%s: %d panes\" window.Name panes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"editor: 1 panes\nlogs: 3 panes\nwatch: 2 panes\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":258,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-chain-splitleftright"},{"id":"LibTmux.FSharp.Chain.splitTopBottom","name":"splitTopBottom","kind":"function","parent":"LibTmux.FSharp.Chain","modifiers":[],"signatures":[{"raw":"val splitTopBottom: chain: TmuxChain -> TmuxChain","params":[{"name":"chain","type":"TmuxChain"}],"returns":"TmuxChain"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Splits the current pane into a top and a bottom one; the bottom becomes current."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":261,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-chain-splittopbottom"},{"id":"LibTmux.FSharp.Chain.sendLine","name":"sendLine","kind":"function","parent":"LibTmux.FSharp.Chain","modifiers":[],"signatures":[{"raw":"val sendLine: line: string -> chain: TmuxChain -> TmuxChain","params":[{"name":"line","type":"string"},{"name":"chain","type":"TmuxChain"}],"returns":"TmuxChain"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Types a line into the current pane and presses Enter.","examples":[{"lang":"console","intro":"Create a session from F# records in one call: the first window is the one tmux makes with the session, and each split goes beside the pane before it. Add a window with a command chain, then read through a handle whose commands each get five seconds. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/BuildSession.fs","code":"// fsharp-snippet: BuildSession\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-build-session-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n // Describe the session, then create it in one call: the first window is\n // the one tmux makes with the session, and each split goes beside the\n // pane before it.\n let dev =\n { SessionSpec.named \"dev\" with\n Windows =\n [\n { WindowSpec.named \"editor\" with\n Command = Some \"exec sleep 60\"\n }\n { WindowSpec.named \"logs\" with\n Command = Some \"exec sleep 60\"\n Splits =\n [\n { SplitSpec.empty with\n Direction = Some PaneDirection.Right\n Command = Some \"exec sleep 60\"\n }\n { SplitSpec.empty with\n Command = Some \"exec sleep 60\"\n }\n ]\n }\n ]\n }\n\n let! session = owned.Value |> Server.newSession token dev\n\n // A chain runs in one tmux invocation; each step acts on what the one\n // before made.\n let! _ =\n owned.Value\n |> Chain.start\n |> Chain.newWindow session \"watch\"\n |> Chain.splitLeftRight\n |> Chain.sendLine \"exec sleep 60\"\n |> Chain.run token\n\n // Every command through this handle, and the handles taken from it,\n // gives tmux five seconds.\n let bounded = owned.Value |> Server.within (TimeSpan.FromSeconds 5.)\n let! windows = bounded |> Server.windows |> Query.list token\n\n for window in windows do\n let! panes = window |> Window.panes |> Query.list token\n printfn \"%s: %d panes\" window.Name panes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"editor: 1 panes\nlogs: 3 panes\nwatch: 2 panes\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":264,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-chain-sendline"},{"id":"LibTmux.FSharp.Chain.arrange","name":"arrange","kind":"function","parent":"LibTmux.FSharp.Chain","modifiers":[],"signatures":[{"raw":"val arrange: layout: string -> chain: TmuxChain -> TmuxChain","params":[{"name":"layout","type":"string"},{"name":"chain","type":"TmuxChain"}],"returns":"TmuxChain"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Arranges the current window with a tmux layout; the chain checks the name before tmux sees it."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":267,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-chain-arrange"},{"id":"LibTmux.FSharp.Chain.add","name":"add","kind":"function","parent":"LibTmux.FSharp.Chain","modifiers":[],"signatures":[{"raw":"val add: command: TmuxCommand -> chain: TmuxChain -> TmuxChain","params":[{"name":"command","type":"TmuxCommand"},{"name":"chain","type":"TmuxChain"}],"returns":"TmuxChain"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Appends any command, such as a typed request's ToCommand."},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":270,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-chain-add"},{"id":"LibTmux.FSharp.Chain.run","name":"run","kind":"function","parent":"LibTmux.FSharp.Chain","modifiers":[],"signatures":[{"raw":"val run: cancellationToken: CancellationToken -> chain: TmuxChain -> Task","params":[{"name":"cancellationToken","type":"CancellationToken"},{"name":"chain","type":"TmuxChain"}],"returns":"Task"}],"namespaceImports":["System","System.Collections.Generic","System.Threading","System.Threading.Tasks","LibTmux"],"doc":{"summary":"Runs every command in one tmux invocation and returns tmux's combined answer.","body":"Cancellation after dispatch does not undo commands tmux already ran.","examples":[{"lang":"console","intro":"Create a session from F# records in one call: the first window is the one tmux makes with the session, and each split goes beside the pane before it. Add a window with a command chain, then read through a handle whose commands each get five seconds. Use Linux or macOS with Git, tmux 3.3a or newer, .NET SDK 10.0.302, and the .NET 8 and 10 runtimes. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-dotnet.git libtmux-source && \\\n git -C libtmux-source checkout --detach 4f1b997b2e4aeb604c4184707e49dcd4dea44fef\n"},{"lang":"json","intro":"Save this complete consumer setup as global.json:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/global.json","code":"{\n \"sdk\": {\n \"version\": \"10.0.302\",\n \"rollForward\": \"disable\",\n \"allowPrerelease\": false\n },\n \"test\": {\n \"runner\": \"Microsoft.Testing.Platform\"\n }\n}\n"},{"lang":"xml","intro":"Save this complete consumer setup as NuGet.config:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/NuGet.config","code":"\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n"},{"lang":"xml","intro":"Save this complete consumer setup as Example.fsproj:","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/api/fsharp/Example.fsproj","code":"\n \n Exe\n net8.0;net10.0\n 10.0\n true\n true\n true\n \n \n \n \n \n \n\n"},{"lang":"fsharp","intro":"Save this complete program as Program.fs. It creates a private server with LibTmux.Server.CreateOwnedAsync; use! disposes owned scopes after success, cancellation or failure. The F# facade has no separate server constructor.","sourceUrl":"https://github.com/libtmux/libtmux-dotnet/blob/4f1b997b2e4aeb604c4184707e49dcd4dea44fef/examples/LibTmux.FSharp.Examples/Programs/BuildSession.fs","code":"// fsharp-snippet: BuildSession\nopen System\nopen System.Threading\nopen LibTmux\nopen LibTmux.FSharp\n\nlet runAsync () =\n task {\n use deadline = new CancellationTokenSource(TimeSpan.FromSeconds 20.)\n let token = deadline.Token\n\n let options =\n ServerConnectionOptions(\n SocketName = \"fsharp-build-session-\" + Guid.NewGuid().ToString(\"N\"),\n ConfigurationFile = \"/dev/null\",\n TmuxBinaryPath =\n (Environment.GetEnvironmentVariable \"LIBTMUX_TMUX\"\n |> Option.ofObj\n |> Option.defaultValue \"tmux\")\n )\n\n use! owned = LibTmux.Server.CreateOwnedAsync(options, token)\n\n // Describe the session, then create it in one call: the first window is\n // the one tmux makes with the session, and each split goes beside the\n // pane before it.\n let dev =\n { SessionSpec.named \"dev\" with\n Windows =\n [\n { WindowSpec.named \"editor\" with\n Command = Some \"exec sleep 60\"\n }\n { WindowSpec.named \"logs\" with\n Command = Some \"exec sleep 60\"\n Splits =\n [\n { SplitSpec.empty with\n Direction = Some PaneDirection.Right\n Command = Some \"exec sleep 60\"\n }\n { SplitSpec.empty with\n Command = Some \"exec sleep 60\"\n }\n ]\n }\n ]\n }\n\n let! session = owned.Value |> Server.newSession token dev\n\n // A chain runs in one tmux invocation; each step acts on what the one\n // before made.\n let! _ =\n owned.Value\n |> Chain.start\n |> Chain.newWindow session \"watch\"\n |> Chain.splitLeftRight\n |> Chain.sendLine \"exec sleep 60\"\n |> Chain.run token\n\n // Every command through this handle, and the handles taken from it,\n // gives tmux five seconds.\n let bounded = owned.Value |> Server.within (TimeSpan.FromSeconds 5.)\n let! windows = bounded |> Server.windows |> Query.list token\n\n for window in windows do\n let! panes = window |> Window.panes |> Query.list token\n printfn \"%s: %d panes\" window.Name panes.Count\n }\n\nrunAsync().GetAwaiter().GetResult()\n// endfsharp-snippet\n"},{"lang":"console","intro":"Build the exact source packages and the saved consumer, then run both supported frameworks. The local package feed prevents an unrelated published package from satisfying the restore. Each program checks its result and exits unsuccessfully after an unhandled error:","code":"$ export NUGET_PACKAGES=\"$PWD/packages\" && \\\n dotnet restore libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj --locked-mode && \\\n dotnet pack libtmux-source/src/LibTmux/LibTmux.csproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet pack libtmux-source/src/LibTmux.FSharp/LibTmux.FSharp.fsproj \\\n --configuration Release --no-restore -p:ContinuousIntegrationBuild=true \\\n --output \"$PWD/libtmux-source/artifacts/api-example-packages\" && \\\n dotnet restore Example.fsproj --configfile NuGet.config && \\\n dotnet build Example.fsproj --configuration Release --no-restore --warnaserror && \\\n export LIBTMUX_TMUX=\"$(command -v tmux)\" && \\\n export TMUX_TMPDIR=/tmp/libtmux-dotnet-dev && \\\n mkdir -p \"$TMUX_TMPDIR\" && \\\n unset TMUX TMUX_PANE && \\\n dotnet bin/Release/net8.0/Example.dll && \\\n dotnet bin/Release/net10.0/Example.dll\n"},{"lang":"text","intro":"Expected program output from each framework:","code":"editor: 1 panes\nlogs: 3 panes\nwatch: 2 panes\n"}]},"source":{"file":"src/LibTmux.FSharp/Hierarchy.fsi","line":274,"repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef"},"product":"core","slug":"libtmux-fsharp-chain-run"}],"sources":[{"product":"core","package":"LibTmux.FSharp","repo":"libtmux/libtmux-dotnet","revision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","extractedRevision":"4f1b997b2e4aeb604c4184707e49dcd4dea44fef","version":"0.0.0-alpha.18"}],"repo":"libtmux/libtmux-dotnet"} diff --git a/site/src/data/api/go.json b/site/src/data/api/go.json index aa0b2bded..c44df7c4a 100644 --- a/site/src/data/api/go.json +++ b/site/src/data/api/go.json @@ -1 +1 @@ -{"port":"go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractor":"@libtmux/api-model@0.0.1","symbols":[{"id":"tmux.ModulePath","name":"ModulePath","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"ModulePath is the Go module this package belongs to. It is the module path rather than the package path, because that is what Go build metadata records."},"source":{"file":"tmux/build_info.go","line":7,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ModulePath","product":"core","slug":"tmux-modulepath"},{"id":"tmux.PackageVersion","name":"PackageVersion","kind":"function","modifiers":[],"signatures":[{"raw":"func PackageVersion() (string, bool)","params":[],"returns":"(string, bool)"}],"doc":{"summary":"PackageVersion returns the release version recorded in Go build metadata. Development builds and binaries without module metadata return \"\", false."},"source":{"file":"tmux/build_info.go","line":11,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PackageVersion","product":"core","slug":"tmux-packageversion"},{"id":"tmux.ClientAttachment","name":"ClientAttachment","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ClientAttachment is one immutable view of a client's live attachment. Session, Window, and Pane return values from the same observational Snapshot."},"source":{"file":"tmux/client_attachment.go","line":10,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientAttachment","product":"core","slug":"tmux-clientattachment"},{"id":"tmux.ClientAttachment.Session","name":"Session","kind":"method","modifiers":[],"parent":"tmux.ClientAttachment","signatures":[{"raw":"func (a ClientAttachment) Session() (Session, bool)","params":[],"receiver":{"name":"a","type":"ClientAttachment"},"returns":"(Session, bool)"}],"doc":{"summary":"Session returns the attached session, if it remained live in the snapshot."},"source":{"file":"tmux/client_attachment.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientAttachment.Session","product":"core","slug":"tmux-clientattachment-session"},{"id":"tmux.ClientAttachment.Window","name":"Window","kind":"method","modifiers":[],"parent":"tmux.ClientAttachment","signatures":[{"raw":"func (a ClientAttachment) Window() (Window, bool)","params":[],"receiver":{"name":"a","type":"ClientAttachment"},"returns":"(Window, bool)"}],"doc":{"summary":"Window returns the attached session's active winlink, if present."},"source":{"file":"tmux/client_attachment.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientAttachment.Window","product":"core","slug":"tmux-clientattachment-window"},{"id":"tmux.ClientAttachment.Pane","name":"Pane","kind":"method","modifiers":[],"parent":"tmux.ClientAttachment","signatures":[{"raw":"func (a ClientAttachment) Pane() (Pane, bool)","params":[],"receiver":{"name":"a","type":"ClientAttachment"},"returns":"(Pane, bool)"}],"doc":{"summary":"Pane returns the attached session's active window's active pane, if present."},"source":{"file":"tmux/client_attachment.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientAttachment.Pane","product":"core","slug":"tmux-clientattachment-pane"},{"id":"tmux.Client.ResolveAttachment","name":"ResolveAttachment","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) ResolveAttachment(ctx context.Context) (ClientAttachment, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"Client"},"returns":"(ClientAttachment, error)"}],"doc":{"summary":"ResolveAttachment re-reads the client's live attached hierarchy.","body":"One resolution materializes one strict Snapshot. Snapshot collection is a\nmulti-command observational read, so concurrent tmux changes may produce a\npartial hierarchy. A missing client, detached client, or stale session\nreturns an empty attachment without an error. Other collection, decoding,\nand cardinality errors remain visible."},"source":{"file":"tmux/client_attachment.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.ResolveAttachment","product":"core","slug":"tmux-client-resolveattachment"},{"id":"tmux.ErrUnknownColor","name":"ErrUnknownColor","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrUnknownColor identifies an unsupported tmux color mode. It is matched by errors.Is for [ColorError]."},"source":{"file":"tmux/command.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrUnknownColor","product":"core","slug":"tmux-errunknowncolor"},{"id":"tmux.ErrCommand","name":"ErrCommand","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrCommand identifies a failed high-level tmux command. It is matched by errors.Is for [CommandError]."},"source":{"file":"tmux/command.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrCommand","product":"core","slug":"tmux-errcommand"},{"id":"tmux.ErrNoServer","name":"ErrNoServer","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrNoServer identifies a command that no tmux server answered. A [CommandError] may match both ErrNoServer and [ErrCommand]. tmux cannot reliably distinguish an absent or unreachable server from one that exited during the command."},"source":{"file":"tmux/command.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrNoServer","product":"core","slug":"tmux-errnoserver"},{"id":"tmux.ErrNotFound","name":"ErrNotFound","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrNotFound identifies an operation naming a tmux object that does not exist. A lookup that found nothing matches it, and so does a command tmux refused because the target it named was gone — the same condition reached from either direction. [SnapshotLookupError] and [CommandError] match it through errors.Is.","body":"Only a claim of absence this package has not disproved matches. A lookup\nthat reaches a replaced daemon, or whose diagnostic names an object it did\nnot target, reports what it saw rather than an absence."},"source":{"file":"tmux/command.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrNotFound","product":"core","slug":"tmux-errnotfound"},{"id":"tmux.ColorMode","name":"ColorMode","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ColorMode selects a tmux color-capability override for [ServerOptions]."},"source":{"file":"tmux/command.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ColorMode","product":"core","slug":"tmux-colormode"},{"id":"tmux.ColorDefault","name":"ColorDefault","kind":"constant","modifiers":[],"signatures":[],"type":"ColorMode","doc":{"summary":"ColorDefault preserves tmux's detected color capability."},"source":{"file":"tmux/command.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ColorDefault","product":"core","slug":"tmux-colordefault"},{"id":"tmux.Color256","name":"Color256","kind":"constant","modifiers":[],"signatures":[],"type":"ColorMode","doc":{"summary":"Color256 requests tmux's 256-color capability mode."},"source":{"file":"tmux/command.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Color256","product":"core","slug":"tmux-color256"},{"id":"tmux.ColorError","name":"ColorError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ColorError reports an unsupported color mode. It matches [ErrUnknownColor] through errors.Is; callers can recover Mode with errors.As."},"source":{"file":"tmux/command.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ColorError","product":"core","slug":"tmux-colorerror"},{"id":"tmux.ColorError.Mode","name":"Mode","kind":"attribute","modifiers":[],"parent":"tmux.ColorError","signatures":[],"type":"ColorMode","doc":{"summary":"Mode is the rejected color-capability override."},"source":{"file":"tmux/command.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ColorError.Mode","product":"core","slug":"tmux-colorerror-mode"},{"id":"tmux.ColorError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.ColorError","signatures":[{"raw":"func (e *ColorError) Error() string","params":[],"receiver":{"name":"e","type":"*ColorError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/command.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ColorError.Error","product":"core","slug":"tmux-colorerror-error"},{"id":"tmux.ColorError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.ColorError","signatures":[{"raw":"func (e *ColorError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*ColorError"},"returns":"error"}],"doc":{"summary":"Unwrap makes ColorError compatible with ErrUnknownColor."},"source":{"file":"tmux/command.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ColorError.Unwrap","product":"core","slug":"tmux-colorerror-unwrap"},{"id":"tmux.CommandResult","name":"CommandResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CommandResult contains one completed tmux invocation. [Server.Cmd] returns it even when tmux exits nonzero. Library operations clone its slices before returning it, so the caller owns Command, Stdout, RawStdout, and Stderr."},"source":{"file":"tmux/command.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandResult","product":"core","slug":"tmux-commandresult"},{"id":"tmux.CommandResult.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.CommandResult","signatures":[],"type":"[]string","doc":{"summary":"Command is the executed tmux argument vector."},"source":{"file":"tmux/command.go","line":72,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandResult.Command","product":"core","slug":"tmux-commandresult-command"},{"id":"tmux.CommandResult.Stdout","name":"Stdout","kind":"attribute","modifiers":[],"parent":"tmux.CommandResult","signatures":[],"type":"[]string","doc":{"summary":"Stdout contains one decoded standard-output line per element."},"source":{"file":"tmux/command.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandResult.Stdout","product":"core","slug":"tmux-commandresult-stdout"},{"id":"tmux.CommandResult.RawStdout","name":"RawStdout","kind":"attribute","modifiers":[],"parent":"tmux.CommandResult","signatures":[],"type":"[]byte","doc":{"summary":"RawStdout contains exact captured standard-output bytes, including line delimiters and trailing newlines. It is nil when no output was captured."},"source":{"file":"tmux/command.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandResult.RawStdout","product":"core","slug":"tmux-commandresult-rawstdout"},{"id":"tmux.CommandResult.Stderr","name":"Stderr","kind":"attribute","modifiers":[],"parent":"tmux.CommandResult","signatures":[],"type":"[]string","doc":{"summary":"Stderr contains one decoded standard-error line per element."},"source":{"file":"tmux/command.go","line":79,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandResult.Stderr","product":"core","slug":"tmux-commandresult-stderr"},{"id":"tmux.CommandResult.ExitCode","name":"ExitCode","kind":"attribute","modifiers":[],"parent":"tmux.CommandResult","signatures":[],"type":"int","doc":{"summary":"ExitCode is tmux's completed process exit code, or -1 when no tmux command ran: this package refused the request, or a transport failed before tmux answered. A negative code is therefore never tmux's opinion of the request, and an error carrying one has a reason of its own."},"source":{"file":"tmux/command.go","line":84,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandResult.ExitCode","product":"core","slug":"tmux-commandresult-exitcode"},{"id":"tmux.CommandError","name":"CommandError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CommandError reports a completed failed high-level tmux operation. It matches [ErrCommand] through errors.Is; callers can recover its fields with errors.As. Generic library operations retain an owned copy of the completed command and output so tmux diagnostics remain available. Operations whose primary payload may contain secrets return an exit-code-only result instead. Callers must treat retained argv and output as potentially sensitive."},"source":{"file":"tmux/command.go","line":119,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandError","product":"core","slug":"tmux-commanderror"},{"id":"tmux.CommandError.Subcommand","name":"Subcommand","kind":"attribute","modifiers":[],"parent":"tmux.CommandError","signatures":[],"type":"string","doc":{"summary":"Subcommand is the failed tmux subcommand."},"source":{"file":"tmux/command.go","line":121,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandError.Subcommand","product":"core","slug":"tmux-commanderror-subcommand"},{"id":"tmux.CommandError.Result","name":"Result","kind":"attribute","modifiers":[],"parent":"tmux.CommandError","signatures":[],"type":"CommandResult","doc":{"summary":"Result is the owned completed result, or an exit-code-only redacted result for a secret-bearing operation."},"source":{"file":"tmux/command.go","line":124,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandError.Result","product":"core","slug":"tmux-commanderror-result"},{"id":"tmux.CommandError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.CommandError","signatures":[{"raw":"func (e *CommandError) Error() string","params":[],"receiver":{"name":"e","type":"*CommandError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/command.go","line":131,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandError.Error","product":"core","slug":"tmux-commanderror-error"},{"id":"tmux.CommandError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.CommandError","signatures":[{"raw":"func (e *CommandError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*CommandError"},"returns":"error"}],"doc":{"summary":"Unwrap makes CommandError compatible with ErrCommand."},"source":{"file":"tmux/command.go","line":140,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandError.Unwrap","product":"core","slug":"tmux-commanderror-unwrap"},{"id":"tmux.CommandError.Is","name":"Is","kind":"method","modifiers":[],"parent":"tmux.CommandError","signatures":[{"raw":"func (e *CommandError) Is(target error) bool","params":[{"name":"target","type":"error"}],"receiver":{"name":"e","type":"*CommandError"},"returns":"bool"}],"doc":{"summary":"Is reports [ErrNoServer] for a failure that means no tmux server answered — either the command never reached one, or the one it reached is gone — and [ErrNotFound] for one tmux refused because the object it named was absent."},"source":{"file":"tmux/command.go","line":147,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandError.Is","product":"core","slug":"tmux-commanderror-is"},{"id":"tmux.ErrMalformedComplexOption","name":"ErrMalformedComplexOption","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrMalformedComplexOption identifies an invalid entry in a parsed complex option."},"source":{"file":"tmux/complex_options.go","line":11,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrMalformedComplexOption","product":"core","slug":"tmux-errmalformedcomplexoption"},{"id":"tmux.ComplexOptionDecodeError","name":"ComplexOptionDecodeError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ComplexOptionDecodeError identifies one malformed sparse-array entry without retaining its raw value."},"source":{"file":"tmux/complex_options.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ComplexOptionDecodeError","product":"core","slug":"tmux-complexoptiondecodeerror"},{"id":"tmux.ComplexOptionDecodeError.Option","name":"Option","kind":"attribute","modifiers":[],"parent":"tmux.ComplexOptionDecodeError","signatures":[],"type":"string","doc":{"summary":"Option is the option name whose sparse-array entry was malformed."},"source":{"file":"tmux/complex_options.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ComplexOptionDecodeError.Option","product":"core","slug":"tmux-complexoptiondecodeerror-option"},{"id":"tmux.ComplexOptionDecodeError.Index","name":"Index","kind":"attribute","modifiers":[],"parent":"tmux.ComplexOptionDecodeError","signatures":[],"type":"int","doc":{"summary":"Index is the zero-based sparse-array entry index."},"source":{"file":"tmux/complex_options.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ComplexOptionDecodeError.Index","product":"core","slug":"tmux-complexoptiondecodeerror-index"},{"id":"tmux.ComplexOptionDecodeError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.ComplexOptionDecodeError","signatures":[],"type":"string","doc":{"summary":"Reason describes the syntax failure without retaining raw option contents."},"source":{"file":"tmux/complex_options.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ComplexOptionDecodeError.Reason","product":"core","slug":"tmux-complexoptiondecodeerror-reason"},{"id":"tmux.ComplexOptionDecodeError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.ComplexOptionDecodeError","signatures":[{"raw":"func (e *ComplexOptionDecodeError) Error() string","params":[],"receiver":{"name":"e","type":"*ComplexOptionDecodeError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/complex_options.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ComplexOptionDecodeError.Error","product":"core","slug":"tmux-complexoptiondecodeerror-error"},{"id":"tmux.ComplexOptionDecodeError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.ComplexOptionDecodeError","signatures":[{"raw":"func (e *ComplexOptionDecodeError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*ComplexOptionDecodeError"},"returns":"error"}],"doc":{"summary":"Unwrap makes ComplexOptionDecodeError compatible with ErrMalformedComplexOption."},"source":{"file":"tmux/complex_options.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ComplexOptionDecodeError.Unwrap","product":"core","slug":"tmux-complexoptiondecodeerror-unwrap"},{"id":"tmux.CommandAlias","name":"CommandAlias","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CommandAlias is one parsed command-alias entry."},"source":{"file":"tmux/complex_options.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandAlias","product":"core","slug":"tmux-commandalias"},{"id":"tmux.CommandAlias.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.CommandAlias","signatures":[],"type":"string","doc":{"summary":"Name is the alias name."},"source":{"file":"tmux/complex_options.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandAlias.Name","product":"core","slug":"tmux-commandalias-name"},{"id":"tmux.CommandAlias.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.CommandAlias","signatures":[],"type":"string","doc":{"summary":"Command is the tmux command text associated with Name."},"source":{"file":"tmux/complex_options.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandAlias.Command","product":"core","slug":"tmux-commandalias-command"},{"id":"tmux.CommandAliases","name":"CommandAliases","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CommandAliases is an immutable parsed command-alias option. Its zero value is an empty collection: Len is zero, Lookup reports false, and Entries returns a nonnil empty slice."},"source":{"file":"tmux/complex_options.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandAliases","product":"core","slug":"tmux-commandaliases"},{"id":"tmux.CommandAliases.Lookup","name":"Lookup","kind":"method","modifiers":[],"parent":"tmux.CommandAliases","signatures":[{"raw":"func (a CommandAliases) Lookup(name string) (string, bool)","params":[{"name":"name","type":"string"}],"receiver":{"name":"a","type":"CommandAliases"},"returns":"(string, bool)"}],"doc":{"summary":"Lookup returns the command registered for name."},"source":{"file":"tmux/complex_options.go","line":55,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandAliases.Lookup","product":"core","slug":"tmux-commandaliases-lookup"},{"id":"tmux.CommandAliases.Entries","name":"Entries","kind":"method","modifiers":[],"parent":"tmux.CommandAliases","signatures":[{"raw":"func (a CommandAliases) Entries() []CommandAlias","params":[],"receiver":{"name":"a","type":"CommandAliases"},"returns":"[]CommandAlias"}],"doc":{"summary":"Entries returns a fresh slice in first-definition order."},"source":{"file":"tmux/complex_options.go","line":64,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandAliases.Entries","product":"core","slug":"tmux-commandaliases-entries"},{"id":"tmux.CommandAliases.Len","name":"Len","kind":"method","modifiers":[],"parent":"tmux.CommandAliases","signatures":[{"raw":"func (a CommandAliases) Len() int","params":[],"receiver":{"name":"a","type":"CommandAliases"},"returns":"int"}],"doc":{"summary":"Len returns the number of distinct aliases."},"source":{"file":"tmux/complex_options.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandAliases.Len","product":"core","slug":"tmux-commandaliases-len"},{"id":"tmux.TerminalFeature","name":"TerminalFeature","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TerminalFeature is one terminal pattern and its enabled features."},"source":{"file":"tmux/complex_options.go","line":72,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalFeature","product":"core","slug":"tmux-terminalfeature"},{"id":"tmux.TerminalFeature.Terminal","name":"Terminal","kind":"attribute","modifiers":[],"parent":"tmux.TerminalFeature","signatures":[],"type":"string","doc":{"summary":"Terminal is the terminal pattern."},"source":{"file":"tmux/complex_options.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalFeature.Terminal","product":"core","slug":"tmux-terminalfeature-terminal"},{"id":"tmux.TerminalFeature.Features","name":"Features","kind":"attribute","modifiers":[],"parent":"tmux.TerminalFeature","signatures":[],"type":"[]string","doc":{"summary":"Features is an owned feature list for Terminal."},"source":{"file":"tmux/complex_options.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalFeature.Features","product":"core","slug":"tmux-terminalfeature-features"},{"id":"tmux.TerminalFeatures","name":"TerminalFeatures","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TerminalFeatures is an immutable parsed terminal-features option. Its zero value is an empty collection: Len is zero, Lookup reports false, and Entries returns a nonnil empty slice."},"source":{"file":"tmux/complex_options.go","line":82,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalFeatures","product":"core","slug":"tmux-terminalfeatures"},{"id":"tmux.TerminalFeatures.Lookup","name":"Lookup","kind":"method","modifiers":[],"parent":"tmux.TerminalFeatures","signatures":[{"raw":"func (f TerminalFeatures) Lookup(terminal string) ([]string, bool)","params":[{"name":"terminal","type":"string"}],"receiver":{"name":"f","type":"TerminalFeatures"},"returns":"([]string, bool)"}],"doc":{"summary":"Lookup returns a fresh feature slice for terminal."},"source":{"file":"tmux/complex_options.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalFeatures.Lookup","product":"core","slug":"tmux-terminalfeatures-lookup"},{"id":"tmux.TerminalFeatures.Entries","name":"Entries","kind":"method","modifiers":[],"parent":"tmux.TerminalFeatures","signatures":[{"raw":"func (f TerminalFeatures) Entries() []TerminalFeature","params":[],"receiver":{"name":"f","type":"TerminalFeatures"},"returns":"[]TerminalFeature"}],"doc":{"summary":"Entries returns a deep fresh copy in first-definition order."},"source":{"file":"tmux/complex_options.go","line":97,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalFeatures.Entries","product":"core","slug":"tmux-terminalfeatures-entries"},{"id":"tmux.TerminalFeatures.Len","name":"Len","kind":"method","modifiers":[],"parent":"tmux.TerminalFeatures","signatures":[{"raw":"func (f TerminalFeatures) Len() int","params":[],"receiver":{"name":"f","type":"TerminalFeatures"},"returns":"int"}],"doc":{"summary":"Len returns the number of distinct terminal patterns."},"source":{"file":"tmux/complex_options.go","line":109,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalFeatures.Len","product":"core","slug":"tmux-terminalfeatures-len"},{"id":"tmux.TerminalOverrideValueKind","name":"TerminalOverrideValueKind","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TerminalOverrideValueKind identifies one closed terminal capability value form."},"source":{"file":"tmux/complex_options.go","line":112,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideValueKind","product":"core","slug":"tmux-terminaloverridevaluekind"},{"id":"tmux.TerminalOverrideValueFlag","name":"TerminalOverrideValueFlag","kind":"constant","modifiers":[],"signatures":[],"type":"TerminalOverrideValueKind","doc":{"summary":"TerminalOverrideValueFlag identifies a capability without an assigned value."},"source":{"file":"tmux/complex_options.go","line":116,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideValueFlag","product":"core","slug":"tmux-terminaloverridevalueflag"},{"id":"tmux.TerminalOverrideValueInteger","name":"TerminalOverrideValueInteger","kind":"constant","modifiers":[],"signatures":[],"type":"TerminalOverrideValueKind","doc":{"summary":"TerminalOverrideValueInteger identifies an unsigned decimal integer."},"source":{"file":"tmux/complex_options.go","line":118,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideValueInteger","product":"core","slug":"tmux-terminaloverridevalueinteger"},{"id":"tmux.TerminalOverrideValueText","name":"TerminalOverrideValueText","kind":"constant","modifiers":[],"signatures":[],"type":"TerminalOverrideValueKind","doc":{"summary":"TerminalOverrideValueText identifies an assigned non-integer string."},"source":{"file":"tmux/complex_options.go","line":120,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideValueText","product":"core","slug":"tmux-terminaloverridevaluetext"},{"id":"tmux.TerminalOverrideValue","name":"TerminalOverrideValue","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TerminalOverrideValue is a flag, arbitrary-precision integer, or string. Its zero value has no recognized kind: IsFlag is false, Integer and Text report false, and it represents no parsed capability assignment."},"source":{"file":"tmux/complex_options.go","line":126,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideValue","product":"core","slug":"tmux-terminaloverridevalue"},{"id":"tmux.TerminalOverrideValue.Kind","name":"Kind","kind":"method","modifiers":[],"parent":"tmux.TerminalOverrideValue","signatures":[{"raw":"func (v TerminalOverrideValue) Kind() TerminalOverrideValueKind","params":[],"receiver":{"name":"v","type":"TerminalOverrideValue"},"returns":"TerminalOverrideValueKind"}],"doc":{"summary":"Kind returns the value's closed form."},"source":{"file":"tmux/complex_options.go","line":132,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideValue.Kind","product":"core","slug":"tmux-terminaloverridevalue-kind"},{"id":"tmux.TerminalOverrideValue.IsFlag","name":"IsFlag","kind":"method","modifiers":[],"parent":"tmux.TerminalOverrideValue","signatures":[{"raw":"func (v TerminalOverrideValue) IsFlag() bool","params":[],"receiver":{"name":"v","type":"TerminalOverrideValue"},"returns":"bool"}],"doc":{"summary":"IsFlag reports whether the capability has no assigned value."},"source":{"file":"tmux/complex_options.go","line":135,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideValue.IsFlag","product":"core","slug":"tmux-terminaloverridevalue-isflag"},{"id":"tmux.TerminalOverrideValue.Integer","name":"Integer","kind":"method","modifiers":[],"parent":"tmux.TerminalOverrideValue","signatures":[{"raw":"func (v TerminalOverrideValue) Integer() (*big.Int, bool)","params":[],"receiver":{"name":"v","type":"TerminalOverrideValue"},"returns":"(*big.Int, bool)"}],"doc":{"summary":"Integer returns a fresh arbitrary-precision integer when the value is numeric."},"source":{"file":"tmux/complex_options.go","line":140,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideValue.Integer","product":"core","slug":"tmux-terminaloverridevalue-integer"},{"id":"tmux.TerminalOverrideValue.Text","name":"Text","kind":"method","modifiers":[],"parent":"tmux.TerminalOverrideValue","signatures":[{"raw":"func (v TerminalOverrideValue) Text() (string, bool)","params":[],"receiver":{"name":"v","type":"TerminalOverrideValue"},"returns":"(string, bool)"}],"doc":{"summary":"Text returns the assigned string when the value is textual."},"source":{"file":"tmux/complex_options.go","line":149,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideValue.Text","product":"core","slug":"tmux-terminaloverridevalue-text"},{"id":"tmux.TerminalCapability","name":"TerminalCapability","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TerminalCapability is one parsed terminal override capability."},"source":{"file":"tmux/complex_options.go","line":157,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalCapability","product":"core","slug":"tmux-terminalcapability"},{"id":"tmux.TerminalCapability.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.TerminalCapability","signatures":[],"type":"string","doc":{"summary":"Name is the capability name."},"source":{"file":"tmux/complex_options.go","line":159,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalCapability.Name","product":"core","slug":"tmux-terminalcapability-name"},{"id":"tmux.TerminalCapability.Value","name":"Value","kind":"attribute","modifiers":[],"parent":"tmux.TerminalCapability","signatures":[],"type":"TerminalOverrideValue","doc":{"summary":"Value is the parsed capability value."},"source":{"file":"tmux/complex_options.go","line":161,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalCapability.Value","product":"core","slug":"tmux-terminalcapability-value"},{"id":"tmux.TerminalOverride","name":"TerminalOverride","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TerminalOverride is the immutable capability set for one terminal pattern. Its zero value is an empty immutable collection: Len is zero, Lookup reports false, and Entries returns a nonnil empty slice."},"source":{"file":"tmux/complex_options.go","line":167,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverride","product":"core","slug":"tmux-terminaloverride"},{"id":"tmux.TerminalOverride.Lookup","name":"Lookup","kind":"method","modifiers":[],"parent":"tmux.TerminalOverride","signatures":[{"raw":"func (o TerminalOverride) Lookup(name string) (TerminalOverrideValue, bool)","params":[{"name":"name","type":"string"}],"receiver":{"name":"o","type":"TerminalOverride"},"returns":"(TerminalOverrideValue, bool)"}],"doc":{"summary":"Lookup returns one capability value."},"source":{"file":"tmux/complex_options.go","line":173,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverride.Lookup","product":"core","slug":"tmux-terminaloverride-lookup"},{"id":"tmux.TerminalOverride.Entries","name":"Entries","kind":"method","modifiers":[],"parent":"tmux.TerminalOverride","signatures":[{"raw":"func (o TerminalOverride) Entries() []TerminalCapability","params":[],"receiver":{"name":"o","type":"TerminalOverride"},"returns":"[]TerminalCapability"}],"doc":{"summary":"Entries returns a fresh slice in first-definition order."},"source":{"file":"tmux/complex_options.go","line":182,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverride.Entries","product":"core","slug":"tmux-terminaloverride-entries"},{"id":"tmux.TerminalOverride.Len","name":"Len","kind":"method","modifiers":[],"parent":"tmux.TerminalOverride","signatures":[{"raw":"func (o TerminalOverride) Len() int","params":[],"receiver":{"name":"o","type":"TerminalOverride"},"returns":"int"}],"doc":{"summary":"Len returns the number of distinct capabilities."},"source":{"file":"tmux/complex_options.go","line":187,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverride.Len","product":"core","slug":"tmux-terminaloverride-len"},{"id":"tmux.TerminalOverrideEntry","name":"TerminalOverrideEntry","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TerminalOverrideEntry is one terminal pattern and its parsed capabilities."},"source":{"file":"tmux/complex_options.go","line":190,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideEntry","product":"core","slug":"tmux-terminaloverrideentry"},{"id":"tmux.TerminalOverrideEntry.Terminal","name":"Terminal","kind":"attribute","modifiers":[],"parent":"tmux.TerminalOverrideEntry","signatures":[],"type":"string","doc":{"summary":"Terminal is the terminal pattern."},"source":{"file":"tmux/complex_options.go","line":192,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideEntry.Terminal","product":"core","slug":"tmux-terminaloverrideentry-terminal"},{"id":"tmux.TerminalOverrideEntry.Capabilities","name":"Capabilities","kind":"attribute","modifiers":[],"parent":"tmux.TerminalOverrideEntry","signatures":[],"type":"TerminalOverride","doc":{"summary":"Capabilities is the immutable capability set for Terminal."},"source":{"file":"tmux/complex_options.go","line":194,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideEntry.Capabilities","product":"core","slug":"tmux-terminaloverrideentry-capabilities"},{"id":"tmux.TerminalOverrides","name":"TerminalOverrides","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TerminalOverrides is an immutable parsed terminal-overrides option. Its zero value is an empty immutable collection: Len is zero, Lookup reports false, and Entries returns a nonnil empty slice."},"source":{"file":"tmux/complex_options.go","line":200,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrides","product":"core","slug":"tmux-terminaloverrides"},{"id":"tmux.TerminalOverrides.Lookup","name":"Lookup","kind":"method","modifiers":[],"parent":"tmux.TerminalOverrides","signatures":[{"raw":"func (o TerminalOverrides) Lookup(terminal string) (TerminalOverride, bool)","params":[{"name":"terminal","type":"string"}],"receiver":{"name":"o","type":"TerminalOverrides"},"returns":"(TerminalOverride, bool)"}],"doc":{"summary":"Lookup returns the capabilities for terminal."},"source":{"file":"tmux/complex_options.go","line":206,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrides.Lookup","product":"core","slug":"tmux-terminaloverrides-lookup"},{"id":"tmux.TerminalOverrides.Entries","name":"Entries","kind":"method","modifiers":[],"parent":"tmux.TerminalOverrides","signatures":[{"raw":"func (o TerminalOverrides) Entries() []TerminalOverrideEntry","params":[],"receiver":{"name":"o","type":"TerminalOverrides"},"returns":"[]TerminalOverrideEntry"}],"doc":{"summary":"Entries returns a fresh outer slice in first-definition order. Nested TerminalOverride values remain immutable."},"source":{"file":"tmux/complex_options.go","line":216,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrides.Entries","product":"core","slug":"tmux-terminaloverrides-entries"},{"id":"tmux.TerminalOverrides.Len","name":"Len","kind":"method","modifiers":[],"parent":"tmux.TerminalOverrides","signatures":[{"raw":"func (o TerminalOverrides) Len() int","params":[],"receiver":{"name":"o","type":"TerminalOverrides"},"returns":"int"}],"doc":{"summary":"Len returns the number of distinct terminal patterns."},"source":{"file":"tmux/complex_options.go","line":221,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrides.Len","product":"core","slug":"tmux-terminaloverrides-len"},{"id":"tmux.ServerOptionValues.CommandAliases","name":"CommandAliases","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) CommandAliases() (OptionValue[CommandAliases], error)","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"(OptionValue[CommandAliases], error)"}],"doc":{"summary":"CommandAliases parses command-alias while preserving option presence and origin. A nonnil joined error contains [ComplexOptionDecodeError] values, each usable with [errors.Is] or [errors.As]; the returned projection still contains every valid entry and is owned by the caller."},"source":{"file":"tmux/complex_options.go","line":227,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.CommandAliases","product":"core","slug":"tmux-serveroptionvalues-commandaliases"},{"id":"tmux.ServerOptionValues.ParsedTerminalFeatures","name":"ParsedTerminalFeatures","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) ParsedTerminalFeatures() (OptionValue[TerminalFeatures], error)","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"(OptionValue[TerminalFeatures], error)"}],"doc":{"summary":"ParsedTerminalFeatures parses terminal-features while preserving option presence and origin. A nonnil joined error contains [ComplexOptionDecodeError] values and the returned owned projection contains every valid entry."},"source":{"file":"tmux/complex_options.go","line":253,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.ParsedTerminalFeatures","product":"core","slug":"tmux-serveroptionvalues-parsedterminalfeatures"},{"id":"tmux.ServerOptionValues.ParsedTerminalOverrides","name":"ParsedTerminalOverrides","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) ParsedTerminalOverrides() (OptionValue[TerminalOverrides], error)","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"(OptionValue[TerminalOverrides], error)"}],"doc":{"summary":"ParsedTerminalOverrides parses terminal-overrides while preserving option presence and origin. Terminal-overrides syntax is permissive: no malformed entry error is returned, and the result owns its parsed projection."},"source":{"file":"tmux/complex_options.go","line":278,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.ParsedTerminalOverrides","product":"core","slug":"tmux-serveroptionvalues-parsedterminaloverrides"},{"id":"tmux.ErrConnectionRequiresProcess","name":"ErrConnectionRequiresProcess","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrConnectionRequiresProcess identifies an operation refused because a terminal [Connection] cannot start a tmux process outside its owned lanes."},"source":{"file":"tmux/connection.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrConnectionRequiresProcess","product":"core","slug":"tmux-errconnectionrequiresprocess"},{"id":"tmux.ConnectionOptions","name":"ConnectionOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ConnectionOptions configures the control-mode lanes owned by a [Connection]."},"source":{"file":"tmux/connection.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ConnectionOptions","product":"core","slug":"tmux-connectionoptions"},{"id":"tmux.ConnectionOptions.Lanes","name":"Lanes","kind":"attribute","modifiers":[],"parent":"tmux.ConnectionOptions","signatures":[],"type":"int","doc":{"summary":"Lanes is the number of concurrent command lanes. Zero opens one. Each lane is an attached tmux client and carries one command at a time."},"source":{"file":"tmux/connection.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ConnectionOptions.Lanes","product":"core","slug":"tmux-connectionoptions-lanes"},{"id":"tmux.Connection","name":"Connection","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Connection owns terminal control-mode transport to the exact daemon that materialized its session. Values obtained from Server or Session retain the connection. Closing is terminal: they neither reconnect nor fall back to a subprocess. Its lanes are attached tmux clients; closing the last client can trigger tmux's destroy-unattached or exit-unattached policy. On tmux 3.6 or later, destroying its initial session moves the clients to another session when one exists; the retained Session value keeps its original identity.","body":"It is what a record runs through. [Server.OpenControl] returns a\n[ControlClient] instead, one client carrying commands and notifications\nwith no record bound to it."},"source":{"file":"tmux/connection.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Connection","product":"core","slug":"tmux-connection"},{"id":"tmux.Server.ConnectionBound","name":"ConnectionBound","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ConnectionBound() bool","params":[],"receiver":{"name":"s","type":"Server"},"returns":"bool"}],"doc":{"summary":"ConnectionBound reports whether this handle retains terminal transport owned by a [Connection]. A bound handle never reconnects or falls back to a tmux subprocess after that connection closes."},"source":{"file":"tmux/connection.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ConnectionBound","product":"core","slug":"tmux-server-connectionbound"},{"id":"tmux.Session.OpenControl","name":"OpenControl","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) OpenControl(\n\tctx context.Context,\n\toptions ConnectionOptions,\n) (*Connection, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"options","type":"ConnectionOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"(*Connection, error)"}],"doc":{"summary":"OpenControl opens terminal control-mode transport to the receiver's daemon. The returned connection owns its lanes and must be closed. A receiver already bound to a connection cannot be rebound. Before tmux 3.6, destroying the attached session follows that session's detach-on-destroy policy and may end the connection."},"source":{"file":"tmux/connection.go","line":87,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.OpenControl","product":"core","slug":"tmux-session-opencontrol"},{"id":"tmux.Server.NewSessionConnection","name":"NewSessionConnection","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) NewSessionConnection(\n\tctx context.Context,\n\trequest NewSessionRequest,\n\toptions ConnectionOptions,\n) (Session, *Connection, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"NewSessionRequest"},{"name":"options","type":"ConnectionOptions"}],"receiver":{"name":"s","type":"Server"},"returns":"(Session, *Connection, error)"}],"doc":{"summary":"NewSessionConnection creates a session with a control-mode client and keeps that same process as the first terminal command lane. Unlike [Server.NewSession], it creates an attached session. If tmux reports a valid session ID before later setup fails, the returned partial session retains that ID and server. Cleanup closes the attached creator, so tmux policy may make the partial session no longer live. Before tmux 3.6, destroying the created session follows its detach-on-destroy policy and may end the connection. KillExisting is rejected because removing an existing session cannot be rolled back if later connection setup fails."},"source":{"file":"tmux/connection.go","line":124,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.NewSessionConnection","product":"core","slug":"tmux-server-newsessionconnection"},{"id":"tmux.Connection.Server","name":"Server","kind":"method","modifiers":[],"parent":"tmux.Connection","signatures":[{"raw":"func (c *Connection) Server() Server","params":[],"receiver":{"name":"c","type":"*Connection"},"returns":"Server"}],"doc":{"summary":"Server returns the ordinary server value bound to this connection."},"source":{"file":"tmux/connection.go","line":318,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Connection.Server","product":"core","slug":"tmux-connection-server"},{"id":"tmux.Connection.Session","name":"Session","kind":"method","modifiers":[],"parent":"tmux.Connection","signatures":[{"raw":"func (c *Connection) Session() Session","params":[],"receiver":{"name":"c","type":"*Connection"},"returns":"Session"}],"doc":{"summary":"Session returns the attached session value bound to this connection."},"source":{"file":"tmux/connection.go","line":321,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Connection.Session","product":"core","slug":"tmux-connection-session"},{"id":"tmux.Connection.Lanes","name":"Lanes","kind":"method","modifiers":[],"parent":"tmux.Connection","signatures":[{"raw":"func (c *Connection) Lanes() int","params":[],"receiver":{"name":"c","type":"*Connection"},"returns":"int"}],"doc":{"summary":"Lanes reports the number of owned control-mode command lanes."},"source":{"file":"tmux/connection.go","line":324,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Connection.Lanes","product":"core","slug":"tmux-connection-lanes"},{"id":"tmux.Connection.Call","name":"Call","kind":"method","modifiers":[],"parent":"tmux.Connection","signatures":[{"raw":"func (c *Connection) Call(\n\tctx context.Context,\n\targs ...string,\n) ([]ControlCommandResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"args","type":"string","variadic":"positional"}],"receiver":{"name":"c","type":"*Connection"},"returns":"([]ControlCommandResult, error)"}],"doc":{"summary":"Call executes one safely encoded tmux command on an owned lane and returns every reply frame in order. An alias may produce zero or multiple frames; a %error frame remains result data through [ControlCommandResult.Failed]. Args always describe one command, so a bare semicolon is quoted as an operand rather than interpreted as a command-list separator."},"source":{"file":"tmux/connection.go","line":336,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Connection.Call","product":"core","slug":"tmux-connection-call"},{"id":"tmux.Connection.CloseContext","name":"CloseContext","kind":"method","modifiers":[],"parent":"tmux.Connection","signatures":[{"raw":"func (c *Connection) CloseContext(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"*Connection"},"returns":"error"}],"doc":{"summary":"CloseContext starts terminal shutdown and waits within ctx. The context bounds only the wait; a later call may resume waiting for the same shutdown."},"source":{"file":"tmux/connection.go","line":359,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Connection.CloseContext","product":"core","slug":"tmux-connection-closecontext"},{"id":"tmux.Connection.Close","name":"Close","kind":"method","modifiers":[],"parent":"tmux.Connection","signatures":[{"raw":"func (c *Connection) Close() error","params":[],"receiver":{"name":"c","type":"*Connection"},"returns":"error"}],"doc":{"summary":"Close terminally closes every lane on bounded internal contexts. It is safe to call concurrently and more than once."},"source":{"file":"tmux/connection.go","line":368,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Connection.Close","product":"core","slug":"tmux-connection-close"},{"id":"tmux.ErrControlClosed","name":"ErrControlClosed","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrControlClosed identifies an operation attempted after a control client began closing or lost its protocol stream."},"source":{"file":"tmux/control_client.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrControlClosed","product":"core","slug":"tmux-errcontrolclosed"},{"id":"tmux.ErrControlStreamLost","name":"ErrControlStreamLost","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrControlStreamLost identifies a [ControlClient.NextNotification] stream that ended before the caller asked to close it, distinct from the clean end an explicit Close or CloseContext produces. It is most often the underlying tmux client process exiting because the server it was attached to did."},"source":{"file":"tmux/control_client.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrControlStreamLost","product":"core","slug":"tmux-errcontrolstreamlost"},{"id":"tmux.ErrOutcomeUnknown","name":"ErrOutcomeUnknown","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrOutcomeUnknown identifies a command whose write began but whose reply boundary was not observed. The operation may have changed tmux."},"source":{"file":"tmux/control_client.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrOutcomeUnknown","product":"core","slug":"tmux-erroutcomeunknown"},{"id":"tmux.ErrControlReplyCount","name":"ErrControlReplyCount","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrControlReplyCount identifies a call to [ControlClient.Cmd] for a command that produced zero or multiple reply frames."},"source":{"file":"tmux/control_client.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrControlReplyCount","product":"core","slug":"tmux-errcontrolreplycount"},{"id":"tmux.ControlClient","name":"ControlClient","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ControlClient is one attached tmux control-mode process. Create one with [Server.OpenControl]. Concurrent Cmd, Wait, and close calls are supported; exactly one caller may execute NextNotification at a time.","body":"It is the low-level handle: it carries commands and notifications on one\nclient and can [ControlClient.Reconnect], but records do not run through it.\n[Session.OpenControl] returns a [Connection] instead, whose lanes the\nsessions, windows and panes obtained from it use for their own commands."},"source":{"file":"tmux/control_client.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient","product":"core","slug":"tmux-controlclient"},{"id":"tmux.ControlClient.ClientName","name":"ClientName","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) ClientName() ClientName","params":[],"receiver":{"name":"c","type":"*ControlClient"},"returns":"ClientName"}],"doc":{"summary":"ClientName returns the tmux-assigned identity captured during registration."},"source":{"file":"tmux/control_client.go","line":101,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.ClientName","product":"core","slug":"tmux-controlclient-clientname"},{"id":"tmux.ControlClient.Server","name":"Server","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) Server() Server","params":[],"receiver":{"name":"c","type":"*ControlClient"},"returns":"Server"}],"doc":{"summary":"Server returns the server handle used to start the control client."},"source":{"file":"tmux/control_client.go","line":104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.Server","product":"core","slug":"tmux-controlclient-server"},{"id":"tmux.ControlClient.Session","name":"Session","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) Session() Session","params":[],"receiver":{"name":"c","type":"*ControlClient"},"returns":"Session"}],"doc":{"summary":"Session returns the materialized session selected during startup."},"source":{"file":"tmux/control_client.go","line":107,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.Session","product":"core","slug":"tmux-controlclient-session"},{"id":"tmux.ControlClient.Wait","name":"Wait","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) Wait(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"*ControlClient"},"returns":"error"}],"doc":{"summary":"Wait blocks until the control process exits or ctx ends. It does not close the notification queue; callers may drain final notifications before Close."},"source":{"file":"tmux/control_lifecycle.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.Wait","product":"core","slug":"tmux-controlclient-wait"},{"id":"tmux.ControlClient.CloseContext","name":"CloseContext","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) CloseContext(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"*ControlClient"},"returns":"error"}],"doc":{"summary":"CloseContext starts idempotent control-client shutdown and waits within ctx. The context bounds only the wait: an already-ended context still starts shutdown, and a later call may resume waiting for the same close."},"source":{"file":"tmux/control_lifecycle.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.CloseContext","product":"core","slug":"tmux-controlclient-closecontext"},{"id":"tmux.ControlClient.Close","name":"Close","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) Close() error","params":[],"receiver":{"name":"c","type":"*ControlClient"},"returns":"error"}],"doc":{"summary":"Close stops the control process and releases its notification queue. It is safe to call concurrently and more than once."},"source":{"file":"tmux/control_lifecycle.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.Close","product":"core","slug":"tmux-controlclient-close"},{"id":"tmux.ControlClient.Reconnect","name":"Reconnect","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) Reconnect(ctx context.Context) (*ControlClient, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"*ControlClient"},"returns":"(*ControlClient, error)"}],"doc":{"summary":"Reconnect registers a replacement on the last attached session observed at a reply boundary, then closes the receiver. Failed replacement setup does not initiate receiver shutdown. If shutdown fails, Reconnect returns the live replacement with that error; the caller owns every non-nil result. A receiver whose stream ended cleanly can recover from its last observation. Commands are never replayed."},"source":{"file":"tmux/control_lifecycle.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.Reconnect","product":"core","slug":"tmux-controlclient-reconnect"},{"id":"tmux.ErrMalformedControlNotification","name":"ErrMalformedControlNotification","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrMalformedControlNotification identifies a structurally invalid control-mode notification."},"source":{"file":"tmux/control_notification.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrMalformedControlNotification","product":"core","slug":"tmux-errmalformedcontrolnotification"},{"id":"tmux.ErrUnknownControlNotification","name":"ErrUnknownControlNotification","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrUnknownControlNotification identifies a well-framed notification kind outside the pinned control-mode vocabulary."},"source":{"file":"tmux/control_notification.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrUnknownControlNotification","product":"core","slug":"tmux-errunknowncontrolnotification"},{"id":"tmux.ControlNotificationError","name":"ControlNotificationError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ControlNotificationError reports where a control-mode notification failed validation without retaining or disclosing the notification contents. Callers can use [errors.Is] with Category or [errors.As] to inspect its secret-safe location metadata. Category is [ErrMalformedControlNotification] or [ErrUnknownControlNotification]."},"source":{"file":"tmux/control_notification.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationError","product":"core","slug":"tmux-controlnotificationerror"},{"id":"tmux.ControlNotificationError.Offset","name":"Offset","kind":"attribute","modifiers":[],"parent":"tmux.ControlNotificationError","signatures":[],"type":"int","doc":{"summary":"Offset is the byte offset of the malformed protocol element."},"source":{"file":"tmux/control_notification.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationError.Offset","product":"core","slug":"tmux-controlnotificationerror-offset"},{"id":"tmux.ControlNotificationError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.ControlNotificationError","signatures":[],"type":"string","doc":{"summary":"Reason describes the framing or vocabulary error without retaining input."},"source":{"file":"tmux/control_notification.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationError.Reason","product":"core","slug":"tmux-controlnotificationerror-reason"},{"id":"tmux.ControlNotificationError.Category","name":"Category","kind":"attribute","modifiers":[],"parent":"tmux.ControlNotificationError","signatures":[],"type":"error","doc":{"summary":"Category is ErrMalformedControlNotification or ErrUnknownControlNotification."},"source":{"file":"tmux/control_notification.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationError.Category","product":"core","slug":"tmux-controlnotificationerror-category"},{"id":"tmux.ControlNotificationError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.ControlNotificationError","signatures":[{"raw":"func (e *ControlNotificationError) Error() string","params":[],"receiver":{"name":"e","type":"*ControlNotificationError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/control_notification.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationError.Error","product":"core","slug":"tmux-controlnotificationerror-error"},{"id":"tmux.ControlNotificationError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.ControlNotificationError","signatures":[{"raw":"func (e *ControlNotificationError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*ControlNotificationError"},"returns":"error"}],"doc":{"summary":"Unwrap makes ControlNotificationError compatible with its Category."},"source":{"file":"tmux/control_notification.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationError.Unwrap","product":"core","slug":"tmux-controlnotificationerror-unwrap"},{"id":"tmux.ControlNotification","name":"ControlNotification","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ControlNotification is an immutable parsed tmux control-mode notification. Its zero value has an empty kind and no arguments. Values returned by [ParseControlNotification] own copied arguments and are safe to retain."},"source":{"file":"tmux/control_notification.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotification","product":"core","slug":"tmux-controlnotification"},{"id":"tmux.ControlNotification.Kind","name":"Kind","kind":"method","modifiers":[],"parent":"tmux.ControlNotification","signatures":[{"raw":"func (n ControlNotification) Kind() ControlNotificationKind","params":[],"receiver":{"name":"n","type":"ControlNotification"},"returns":"ControlNotificationKind"}],"doc":{"summary":"Kind returns the notification's protocol kind."},"source":{"file":"tmux/control_notification.go","line":55,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotification.Kind","product":"core","slug":"tmux-controlnotification-kind"},{"id":"tmux.ControlNotification.Arguments","name":"Arguments","kind":"method","modifiers":[],"parent":"tmux.ControlNotification","signatures":[{"raw":"func (n ControlNotification) Arguments() []string","params":[],"receiver":{"name":"n","type":"ControlNotification"},"returns":"[]string"}],"doc":{"summary":"Arguments returns an owned copy of the notification arguments. Arguments before a documented free-form tail are individual values; the tail is the final value and preserves its spacing and tmux escaping."},"source":{"file":"tmux/control_notification.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotification.Arguments","product":"core","slug":"tmux-controlnotification-arguments"},{"id":"tmux.ControlNotification.Output","name":"Output","kind":"method","modifiers":[],"parent":"tmux.ControlNotification","signatures":[{"raw":"func (n ControlNotification) Output() (PaneID, []byte, bool)","params":[],"receiver":{"name":"n","type":"ControlNotification"},"returns":"(PaneID, []byte, bool)"}],"doc":{"summary":"Output returns the pane identity and decoded caller-owned bytes carried by an output or extended-output notification. Other notification kinds return zero values and false."},"source":{"file":"tmux/control_notification.go","line":65,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotification.Output","product":"core","slug":"tmux-controlnotification-output"},{"id":"tmux.SubscriptionChange","name":"SubscriptionChange","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SubscriptionChange is one evaluated format value reported by a subscription armed with [NotificationStream.Subscribe]. The scope fields tmux did not evaluate against are zero: a session-scoped subscription reports no window or pane, and a window-scoped one reports no pane."},"source":{"file":"tmux/control_notification.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionChange","product":"core","slug":"tmux-subscriptionchange"},{"id":"tmux.SubscriptionChange.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionChange","signatures":[],"type":"string","doc":{"summary":"Name is the subscription name given when it was armed."},"source":{"file":"tmux/control_notification.go","line":78,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionChange.Name","product":"core","slug":"tmux-subscriptionchange-name"},{"id":"tmux.SubscriptionChange.Session","name":"Session","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionChange","signatures":[],"type":"SessionID","doc":{"summary":"Session is the session the value was evaluated for."},"source":{"file":"tmux/control_notification.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionChange.Session","product":"core","slug":"tmux-subscriptionchange-session"},{"id":"tmux.SubscriptionChange.Window","name":"Window","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionChange","signatures":[],"type":"WindowID","doc":{"summary":"Window is the window the value was evaluated for, when scoped to one."},"source":{"file":"tmux/control_notification.go","line":82,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionChange.Window","product":"core","slug":"tmux-subscriptionchange-window"},{"id":"tmux.SubscriptionChange.WindowIndex","name":"WindowIndex","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionChange","signatures":[],"type":"int","doc":{"summary":"WindowIndex is Window's index in Session. It means nothing when Window is zero."},"source":{"file":"tmux/control_notification.go","line":85,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionChange.WindowIndex","product":"core","slug":"tmux-subscriptionchange-windowindex"},{"id":"tmux.SubscriptionChange.Pane","name":"Pane","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionChange","signatures":[],"type":"PaneID","doc":{"summary":"Pane is the pane the value was evaluated for, when scoped to one."},"source":{"file":"tmux/control_notification.go","line":87,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionChange.Pane","product":"core","slug":"tmux-subscriptionchange-pane"},{"id":"tmux.SubscriptionChange.Value","name":"Value","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionChange","signatures":[],"type":"string","doc":{"summary":"Value is the format expanded by tmux."},"source":{"file":"tmux/control_notification.go","line":89,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionChange.Value","product":"core","slug":"tmux-subscriptionchange-value"},{"id":"tmux.ControlNotification.Subscription","name":"Subscription","kind":"method","modifiers":[],"parent":"tmux.ControlNotification","signatures":[{"raw":"func (n ControlNotification) Subscription() (SubscriptionChange, bool)","params":[],"receiver":{"name":"n","type":"ControlNotification"},"returns":"(SubscriptionChange, bool)"}],"doc":{"summary":"Subscription returns the change carried by a subscription-changed notification. Other notification kinds return a zero value and false."},"source":{"file":"tmux/control_notification.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotification.Subscription","product":"core","slug":"tmux-controlnotification-subscription"},{"id":"tmux.ParseControlNotification","name":"ParseControlNotification","kind":"function","modifiers":[],"signatures":[{"raw":"func ParseControlNotification(line []byte) (ControlNotification, error)","params":[{"name":"line","type":"[]byte"}],"returns":"(ControlNotification, error)"}],"doc":{"summary":"ParseControlNotification parses one newline-free tmux control-mode notification record. It requires exact control framing and a supported kind, returns errors compatible with [ErrMalformedControlNotification] or [ErrUnknownControlNotification], and copies all caller-owned input before returning. It never returns a partial notification."},"source":{"file":"tmux/control_notification.go","line":125,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ParseControlNotification","product":"core","slug":"tmux-parsecontrolnotification"},{"id":"tmux.ErrControlNotificationOverflow","name":"ErrControlNotificationOverflow","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrControlNotificationOverflow identifies a watcher that did not consume notifications before its bounded backlog filled."},"source":{"file":"tmux/control_notification_queue.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrControlNotificationOverflow","product":"core","slug":"tmux-errcontrolnotificationoverflow"},{"id":"tmux.ControlNotificationOverflowError","name":"ControlNotificationOverflowError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ControlNotificationOverflowError reports the backlog limit and the record that would have crossed it. The queued prefix remains available first."},"source":{"file":"tmux/control_notification_queue.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationOverflowError","product":"core","slug":"tmux-controlnotificationoverflowerror"},{"id":"tmux.ControlNotificationOverflowError.LimitBytes","name":"LimitBytes","kind":"attribute","modifiers":[],"parent":"tmux.ControlNotificationOverflowError","signatures":[],"type":"int","doc":{"summary":"LimitBytes is the maximum retained payload and queue framing."},"source":{"file":"tmux/control_notification_queue.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationOverflowError.LimitBytes","product":"core","slug":"tmux-controlnotificationoverflowerror-limitbytes"},{"id":"tmux.ControlNotificationOverflowError.PendingBytes","name":"PendingBytes","kind":"attribute","modifiers":[],"parent":"tmux.ControlNotificationOverflowError","signatures":[],"type":"int","doc":{"summary":"PendingBytes is the unread payload and queue framing retained at overflow."},"source":{"file":"tmux/control_notification_queue.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationOverflowError.PendingBytes","product":"core","slug":"tmux-controlnotificationoverflowerror-pendingbytes"},{"id":"tmux.ControlNotificationOverflowError.NotificationBytes","name":"NotificationBytes","kind":"attribute","modifiers":[],"parent":"tmux.ControlNotificationOverflowError","signatures":[],"type":"int","doc":{"summary":"NotificationBytes is the size of the first notification not retained."},"source":{"file":"tmux/control_notification_queue.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationOverflowError.NotificationBytes","product":"core","slug":"tmux-controlnotificationoverflowerror-notificationbytes"},{"id":"tmux.ControlNotificationOverflowError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.ControlNotificationOverflowError","signatures":[{"raw":"func (e *ControlNotificationOverflowError) Error() string","params":[],"receiver":{"name":"e","type":"*ControlNotificationOverflowError"},"returns":"string"}],"doc":{"summary":"Error describes the bounded backlog without disclosing notification data."},"source":{"file":"tmux/control_notification_queue.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationOverflowError.Error","product":"core","slug":"tmux-controlnotificationoverflowerror-error"},{"id":"tmux.ControlNotificationOverflowError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.ControlNotificationOverflowError","signatures":[{"raw":"func (e *ControlNotificationOverflowError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*ControlNotificationOverflowError"},"returns":"error"}],"doc":{"summary":"Unwrap makes ControlNotificationOverflowError compatible with ErrControlNotificationOverflow."},"source":{"file":"tmux/control_notification_queue.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationOverflowError.Unwrap","product":"core","slug":"tmux-controlnotificationoverflowerror-unwrap"},{"id":"tmux.ErrPaneObservationLost","name":"ErrPaneObservationLost","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrPaneObservationLost identifies a pane observation whose control client can no longer receive every byte after its baseline. Stream failures that wrap it also preserve their underlying cause."},"source":{"file":"tmux/control_observation.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrPaneObservationLost","product":"core","slug":"tmux-errpaneobservationlost"},{"id":"tmux.PaneObservation","name":"PaneObservation","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneObservation is one visible pane baseline followed by the exact control notification stream after that baseline. That stream is the observation's whole control connection, so a caller wanting only this pane's output selects it by identifier. Create one with [Pane.OpenObservation] and close it when finished. Copies share notification reader ownership, terminal loss, and client lifetime; closing one closes them all."},"source":{"file":"tmux/control_observation.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation","product":"core","slug":"tmux-paneobservation"},{"id":"tmux.PaneObservation.PaneID","name":"PaneID","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) PaneID() PaneID","params":[],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"PaneID"}],"doc":{"summary":"PaneID returns the pane selected at the observation boundary."},"source":{"file":"tmux/control_observation.go","line":55,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.PaneID","product":"core","slug":"tmux-paneobservation-paneid"},{"id":"tmux.PaneObservation.SessionID","name":"SessionID","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) SessionID() SessionID","params":[],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"SessionID"}],"doc":{"summary":"SessionID returns the session the observation's own control client attached to, resolved live when the observation opened - the session a listing must count this client's attachment against, not merely the pane's session at some other, possibly stale, snapshot."},"source":{"file":"tmux/control_observation.go","line":66,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.SessionID","product":"core","slug":"tmux-paneobservation-sessionid"},{"id":"tmux.PaneObservation.ClientName","name":"ClientName","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) ClientName() ClientName","params":[],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"ClientName"}],"doc":{"summary":"ClientName returns the observation's own control client identity - the name a listing of attached clients must exclude, the same way it already excludes a caller's long-lived command connection, so a caller's own stream never reads as another person watching."},"source":{"file":"tmux/control_observation.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.ClientName","product":"core","slug":"tmux-paneobservation-clientname"},{"id":"tmux.PaneObservation.Baseline","name":"Baseline","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) Baseline() []string","params":[],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"[]string"}],"doc":{"summary":"Baseline returns an owned copy of the pane's visible text at the observation boundary."},"source":{"file":"tmux/control_observation.go","line":86,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.Baseline","product":"core","slug":"tmux-paneobservation-baseline"},{"id":"tmux.PaneObservation.NextNotification","name":"NextNotification","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) NextNotification(\n\tctx context.Context,\n) (ControlNotification, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"(ControlNotification, error)"}],"doc":{"summary":"NextNotification returns the next notification strictly after the pane baseline, from the whole connection rather than this pane alone. Notifications queued before that boundary are discarded. Concurrent calls are serialized. Caller context errors and [ControlNotificationError] affect only one call. Explicit close returns an error matching [os.ErrClosed].","body":"Topology loss, natural stream EOF, and terminal reader errors return\n[ErrPaneObservationLost]. Stream failures preserve their cause. Later calls\nreturn that loss without consuming more notifications."},"source":{"file":"tmux/control_observation.go","line":103,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.NextNotification","product":"core","slug":"tmux-paneobservation-nextnotification"},{"id":"tmux.PaneObservation.Close","name":"Close","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) Close() error","params":[],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"error"}],"doc":{"summary":"Close stops the dedicated control client. It is safe to call more than once."},"source":{"file":"tmux/control_observation.go","line":271,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.Close","product":"core","slug":"tmux-paneobservation-close"},{"id":"tmux.PaneObservation.CloseContext","name":"CloseContext","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) CloseContext(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"error"}],"doc":{"summary":"CloseContext starts idempotent observation shutdown and waits within ctx."},"source":{"file":"tmux/control_observation.go","line":279,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.CloseContext","product":"core","slug":"tmux-paneobservation-closecontext"},{"id":"tmux.Pane.OpenObservation","name":"OpenObservation","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) OpenObservation(\n\tctx context.Context,\n) (*PaneObservation, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"(*PaneObservation, error)"}],"doc":{"summary":"OpenObservation captures the pane's visible text and returns an owned observation whose notifications begin at the capture's exact control-wire boundary. It resolves the pane's exact linked session before opening a dedicated control client. The caller must close the result."},"source":{"file":"tmux/control_observation.go","line":290,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.OpenObservation","product":"core","slug":"tmux-pane-openobservation"},{"id":"tmux.PaneObservation.Reader","name":"Reader","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) Reader(ctx context.Context) io.Reader","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"io.Reader"}],"doc":{"summary":"Reader returns the pane's output after the baseline as a byte stream: what the program in the pane writes to its terminal, in order, and nothing from any other pane on the connection. Reads block until the pane writes, ctx ends, or the observation closes. A lost observation ends the stream with [ErrPaneObservationLost] rather than [io.EOF]. The bytes are the terminal's: escape sequences and carriage returns arrive as written, and the echo of what is typed into the pane arrives before the reply, as it does on screen. Exactly one reader or direct notification read may run at a time.","body":"A malformed notification on the connection is skipped, as\n[PaneObservation.Notifications] skips it; every other error ends the stream."},"source":{"file":"tmux/control_observation.go","line":453,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.Reader","product":"core","slug":"tmux-paneobservation-reader"},{"id":"tmux.PaneObservation.Notifications","name":"Notifications","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) Notifications(\n\tctx context.Context,\n) iter.Seq2[ControlNotification, error]","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"iter.Seq2[ControlNotification, error]"}],"doc":{"summary":"Notifications returns [PaneObservation.NextNotification] as a range loop; exactly one iterator or direct read may run at a time. Malformed notifications yield their error and iteration continues; every other error ends the loop after being yielded."},"source":{"file":"tmux/control_observation.go","line":490,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.Notifications","product":"core","slug":"tmux-paneobservation-notifications"},{"id":"tmux.ErrControlProtocol","name":"ErrControlProtocol","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrControlProtocol identifies malformed tmux control-mode framing."},"source":{"file":"tmux/control_protocol.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrControlProtocol","product":"core","slug":"tmux-errcontrolprotocol"},{"id":"tmux.ControlProtocolError","name":"ControlProtocolError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ControlProtocolError reports a control-stream state violation without retaining or disclosing command output or notification contents. It matches [ErrControlProtocol] through errors.Is."},"source":{"file":"tmux/control_protocol.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlProtocolError","product":"core","slug":"tmux-controlprotocolerror"},{"id":"tmux.ControlProtocolError.State","name":"State","kind":"attribute","modifiers":[],"parent":"tmux.ControlProtocolError","signatures":[],"type":"string","doc":{"summary":"State is the parser state in which the violation occurred."},"source":{"file":"tmux/control_protocol.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlProtocolError.State","product":"core","slug":"tmux-controlprotocolerror-state"},{"id":"tmux.ControlProtocolError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.ControlProtocolError","signatures":[],"type":"string","doc":{"summary":"Reason describes the structural violation without quoting input."},"source":{"file":"tmux/control_protocol.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlProtocolError.Reason","product":"core","slug":"tmux-controlprotocolerror-reason"},{"id":"tmux.ControlProtocolError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.ControlProtocolError","signatures":[{"raw":"func (e *ControlProtocolError) Error() string","params":[],"receiver":{"name":"e","type":"*ControlProtocolError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/control_protocol.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlProtocolError.Error","product":"core","slug":"tmux-controlprotocolerror-error"},{"id":"tmux.ControlProtocolError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.ControlProtocolError","signatures":[{"raw":"func (e *ControlProtocolError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*ControlProtocolError"},"returns":"error"}],"doc":{"summary":"Unwrap makes ControlProtocolError compatible with ErrControlProtocol."},"source":{"file":"tmux/control_protocol.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlProtocolError.Unwrap","product":"core","slug":"tmux-controlprotocolerror-unwrap"},{"id":"tmux.ControlCommandResult","name":"ControlCommandResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ControlCommandResult is one completed control-mode command frame. A failed tmux command remains result data through Failed; local, protocol, transport, and context failures are returned separately by [Connection.Call], [ControlClient.Cmd], and [ControlClient.Call]. All slices are owned by the caller."},"source":{"file":"tmux/control_protocol.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlCommandResult","product":"core","slug":"tmux-controlcommandresult"},{"id":"tmux.ControlCommandResult.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.ControlCommandResult","signatures":[],"type":"[]string","doc":{"summary":"Command is the safely encoded command's original argument vector."},"source":{"file":"tmux/control_protocol.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlCommandResult.Command","product":"core","slug":"tmux-controlcommandresult-command"},{"id":"tmux.ControlCommandResult.RawStdout","name":"RawStdout","kind":"attribute","modifiers":[],"parent":"tmux.ControlCommandResult","signatures":[],"type":"[]byte","doc":{"summary":"RawStdout contains exact frame payload bytes, including each line's LF."},"source":{"file":"tmux/control_protocol.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlCommandResult.RawStdout","product":"core","slug":"tmux-controlcommandresult-rawstdout"},{"id":"tmux.ControlCommandResult.Timestamp","name":"Timestamp","kind":"attribute","modifiers":[],"parent":"tmux.ControlCommandResult","signatures":[],"type":"int64","doc":{"summary":"Timestamp is tmux's frame timestamp in Unix seconds."},"source":{"file":"tmux/control_protocol.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlCommandResult.Timestamp","product":"core","slug":"tmux-controlcommandresult-timestamp"},{"id":"tmux.ControlCommandResult.Number","name":"Number","kind":"attribute","modifiers":[],"parent":"tmux.ControlCommandResult","signatures":[],"type":"uint64","doc":{"summary":"Number is tmux's command number for the frame. tmux counts commands the server processed rather than commands this client sent, so a command from any other client advances it too and the gap between two frames is not a count of this client's work."},"source":{"file":"tmux/control_protocol.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlCommandResult.Number","product":"core","slug":"tmux-controlcommandresult-number"},{"id":"tmux.ControlCommandResult.Flags","name":"Flags","kind":"attribute","modifiers":[],"parent":"tmux.ControlCommandResult","signatures":[],"type":"int","doc":{"summary":"Flags contains tmux's frame flags."},"source":{"file":"tmux/control_protocol.go","line":51,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlCommandResult.Flags","product":"core","slug":"tmux-controlcommandresult-flags"},{"id":"tmux.ControlCommandResult.Failed","name":"Failed","kind":"attribute","modifiers":[],"parent":"tmux.ControlCommandResult","signatures":[],"type":"bool","doc":{"summary":"Failed reports whether tmux closed the frame with %error instead of %end."},"source":{"file":"tmux/control_protocol.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlCommandResult.Failed","product":"core","slug":"tmux-controlcommandresult-failed"},{"id":"tmux.ControlClient.Cmd","name":"Cmd","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) Cmd(\n\tctx context.Context,\n\targs ...string,\n) (ControlCommandResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"args","type":"string","variadic":"positional"}],"receiver":{"name":"c","type":"*ControlClient"},"returns":"(ControlCommandResult, error)"}],"doc":{"summary":"Cmd executes one safely encoded tmux command through the control client. It requires exactly one reply frame and returns [ErrControlReplyCount] otherwise. Use [ControlClient.Call] for aliases that may produce zero or multiple frames."},"source":{"file":"tmux/control_request.go","line":95,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.Cmd","product":"core","slug":"tmux-controlclient-cmd"},{"id":"tmux.ControlClient.Call","name":"Call","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) Call(\n\tctx context.Context,\n\targs ...string,\n) ([]ControlCommandResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"args","type":"string","variadic":"positional"}],"receiver":{"name":"c","type":"*ControlClient"},"returns":"([]ControlCommandResult, error)"}],"doc":{"summary":"Call executes one safely encoded tmux command and returns all its reply frames. Cancellation after writing returns [ErrOutcomeUnknown] with the context error while the client drains through the boundary before reuse. A transport failure returns any frames proven before the failure together with [ErrOutcomeUnknown]."},"source":{"file":"tmux/control_request.go","line":118,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.Call","product":"core","slug":"tmux-controlclient-call"},{"id":"tmux.Server.OpenControl","name":"OpenControl","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) OpenControl(\n\tctx context.Context,\n\tsession Session,\n) (*ControlClient, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"session","type":"Session"}],"receiver":{"name":"s","type":"Server"},"returns":"(*ControlClient, error)"}],"doc":{"summary":"OpenControl starts a control-mode client attached to session. The startup context bounds process start, attach framing, and client registration but does not own the returned client's lifetime. Session must belong to the same configured server selector."},"source":{"file":"tmux/control_startup.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.OpenControl","product":"core","slug":"tmux-server-opencontrol"},{"id":"tmux.ControlClient.NextNotification","name":"NextNotification","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) NextNotification(\n\tctx context.Context,\n) (ControlNotification, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"*ControlClient"},"returns":"(ControlNotification, error)"}],"doc":{"summary":"NextNotification returns the next ordered control-mode notification. Exactly one caller may execute it at a time. Close releases the queue and makes subsequent reads report os.ErrClosed, drained through queued notifications first. Natural process exit before a caller asked to close instead reports [ErrControlStreamLost] - most often because the server the underlying tmux client was attached to exited - naming the tmux exit reason when one was sent. A terminal reader error follows notifications queued before that failure. A full bounded queue likewise drains before reporting [ControlNotificationOverflowError]."},"source":{"file":"tmux/control_stream.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.NextNotification","product":"core","slug":"tmux-controlclient-nextnotification"},{"id":"tmux.ControlClient.Notifications","name":"Notifications","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) Notifications(\n\tctx context.Context,\n) iter.Seq2[ControlNotification, error]","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"*ControlClient"},"returns":"iter.Seq2[ControlNotification, error]"}],"doc":{"summary":"Notifications returns an iterator over what tmux says without being asked: pane output, and the events behind [ControlNotification].","body":"It is [ControlClient.NextNotification] as a range loop; exactly one iterator\nor direct notification read may run at a time.\n\n```go\nfor notification, err := range client.Notifications(ctx) {\n\tif err != nil {\n\t\treturn err\n\t}\n\tif pane, output, ok := notification.Output(); ok {\n\t\thandle(pane, output)\n\t}\n}\n```\n\nMalformed or unknown notifications yield their error and iteration continues.\nEvery other error ends the stream after being yielded, including the\n[ErrControlStreamLost] or os.ErrClosed [ControlClient.NextNotification]\nreports at a natural end.\n\nLeaving early preserves queued notifications for the next read."},"source":{"file":"tmux/control_stream.go","line":89,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.Notifications","product":"core","slug":"tmux-controlclient-notifications"},{"id":"tmux.DisplayMessageRequest","name":"DisplayMessageRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"DisplayMessageRequest configures display-message options shared by server, window, and pane scope. A zero request displays tmux's default message and returns nil. Print returns an owned stdout slice instead of displaying only to a client status line. Nil pointer fields omit their flags while pointers to empty values are explicit; a zero TargetClient omits its flag."},"source":{"file":"tmux/display_message.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest","product":"core","slug":"tmux-displaymessagerequest"},{"id":"tmux.DisplayMessageRequest.Message","name":"Message","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMessageRequest","signatures":[],"type":"string","doc":{"summary":"Message is the optional status message; an empty message leaves tmux's default behavior."},"source":{"file":"tmux/display_message.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest.Message","product":"core","slug":"tmux-displaymessagerequest-message"},{"id":"tmux.DisplayMessageRequest.Print","name":"Print","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"Print returns message output instead of only displaying it."},"source":{"file":"tmux/display_message.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest.Print","product":"core","slug":"tmux-displaymessagerequest-print"},{"id":"tmux.DisplayMessageRequest.Format","name":"Format","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMessageRequest","signatures":[],"type":"*string","doc":{"summary":"Format selects tmux output formatting."},"source":{"file":"tmux/display_message.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest.Format","product":"core","slug":"tmux-displaymessagerequest-format"},{"id":"tmux.DisplayMessageRequest.AllFormats","name":"AllFormats","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"AllFormats includes every available format value."},"source":{"file":"tmux/display_message.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest.AllFormats","product":"core","slug":"tmux-displaymessagerequest-allformats"},{"id":"tmux.DisplayMessageRequest.Verbose","name":"Verbose","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"Verbose requests verbose tmux output."},"source":{"file":"tmux/display_message.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest.Verbose","product":"core","slug":"tmux-displaymessagerequest-verbose"},{"id":"tmux.DisplayMessageRequest.NoExpand","name":"NoExpand","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"NoExpand disables format expansion and requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/display_message.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest.NoExpand","product":"core","slug":"tmux-displaymessagerequest-noexpand"},{"id":"tmux.DisplayMessageRequest.TargetClient","name":"TargetClient","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMessageRequest","signatures":[],"type":"ClientName","doc":{"summary":"TargetClient selects the stable client receiving the display; zero omits -c."},"source":{"file":"tmux/display_message.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest.TargetClient","product":"core","slug":"tmux-displaymessagerequest-targetclient"},{"id":"tmux.DisplayMessageRequest.Delay","name":"Delay","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMessageRequest","signatures":[],"type":"*time.Duration","doc":{"summary":"Delay sets the display duration. Nil uses tmux's display-time option; an explicit zero waits for a key press unless Notify is set. Values must be whole milliseconds from zero through 4294967295 milliseconds. Invalid values return ErrInvalidServerCommandRequest before tmux I/O."},"source":{"file":"tmux/display_message.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest.Delay","product":"core","slug":"tmux-displaymessagerequest-delay"},{"id":"tmux.DisplayMessageRequest.Notify","name":"Notify","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"Notify makes the status message ignore key presses, closing only once Delay elapses."},"source":{"file":"tmux/display_message.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest.Notify","product":"core","slug":"tmux-displaymessagerequest-notify"},{"id":"tmux.PaneDisplayMessageRequest","name":"PaneDisplayMessageRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneDisplayMessageRequest adds the pane-only update behavior to the common display-message options."},"source":{"file":"tmux/display_message.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneDisplayMessageRequest","product":"core","slug":"tmux-panedisplaymessagerequest"},{"id":"tmux.PaneDisplayMessageRequest.UpdatePane","name":"UpdatePane","kind":"attribute","modifiers":[],"parent":"tmux.PaneDisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"UpdatePane updates pane state and requires tmux 3.6; see UnsupportedPolicy."},"source":{"file":"tmux/display_message.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneDisplayMessageRequest.UpdatePane","product":"core","slug":"tmux-panedisplaymessagerequest-updatepane"},{"id":"tmux.Server.DisplayMessage","name":"DisplayMessage","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) DisplayMessage(\n\tctx context.Context,\n\trequest DisplayMessageRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"DisplayMessageRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"([]string, error)"}],"doc":{"summary":"DisplayMessage displays or prints a server-scoped tmux message. Print returns an owned stdout slice even when tmux exits nonzero; completed stderr is delivered synchronously through [WarningCommandStderr], not returned as a completed-error classification. Unsupported flags follow [UnsupportedPolicy]. Any warnings run on the caller goroutine before return. Cancellation does not prove display did not occur."},"source":{"file":"tmux/display_message.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.DisplayMessage","product":"core","slug":"tmux-server-displaymessage"},{"id":"tmux.Window.DisplayMessage","name":"DisplayMessage","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) DisplayMessage(\n\tctx context.Context,\n\trequest DisplayMessageRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"DisplayMessageRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"([]string, error)"}],"doc":{"summary":"DisplayMessage displays or prints a message at this window's exact target. Print returns an owned stdout slice even on a completed nonzero exit; completed stderr reaches [WarningHandler] as [WarningCommandStderr]. NoExpand follows [UnsupportedPolicy]. Warnings run synchronously before return; context cancellation does not prove display did not occur."},"source":{"file":"tmux/display_message.go","line":93,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.DisplayMessage","product":"core","slug":"tmux-window-displaymessage"},{"id":"tmux.Pane.DisplayMessage","name":"DisplayMessage","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) DisplayMessage(\n\tctx context.Context,\n\trequest PaneDisplayMessageRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"PaneDisplayMessageRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"([]string, error)"}],"doc":{"summary":"DisplayMessage displays or prints a message at this pane's exact target. Embedded NoExpand requires tmux 3.4 and UpdatePane requires tmux 3.6; each follows [UnsupportedPolicy]. Print returns an owned stdout slice even on a completed nonzero exit. Completed stderr synchronously reaches [WarningHandler] as [WarningCommandStderr], not an error; cancellation does not prove display or pane update did not occur."},"source":{"file":"tmux/display_message.go","line":114,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.DisplayMessage","product":"core","slug":"tmux-pane-displaymessage"},{"id":"tmux.ErrInvalidEnvironmentName","name":"ErrInvalidEnvironmentName","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidEnvironmentName identifies a name tmux cannot store."},"source":{"file":"tmux/environment.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidEnvironmentName","product":"core","slug":"tmux-errinvalidenvironmentname"},{"id":"tmux.ErrInvalidEnvironmentValue","name":"ErrInvalidEnvironmentValue","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidEnvironmentValue identifies a value the line-oriented read API cannot round-trip."},"source":{"file":"tmux/environment.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidEnvironmentValue","product":"core","slug":"tmux-errinvalidenvironmentvalue"},{"id":"tmux.ErrMalformedEnvironment","name":"ErrMalformedEnvironment","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrMalformedEnvironment identifies output that is not a tmux environment entry."},"source":{"file":"tmux/environment.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrMalformedEnvironment","product":"core","slug":"tmux-errmalformedenvironment"},{"id":"tmux.SetEnvironmentOptions","name":"SetEnvironmentOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SetEnvironmentOptions controls tmux's value expansion and visibility flags. Its zero value stores Value literally and exposes it to child processes."},"source":{"file":"tmux/environment.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetEnvironmentOptions","product":"core","slug":"tmux-setenvironmentoptions"},{"id":"tmux.SetEnvironmentOptions.ExpandFormat","name":"ExpandFormat","kind":"attribute","modifiers":[],"parent":"tmux.SetEnvironmentOptions","signatures":[],"type":"bool","doc":{"summary":"ExpandFormat expands tmux format expressions in Value before storing it."},"source":{"file":"tmux/environment.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetEnvironmentOptions.ExpandFormat","product":"core","slug":"tmux-setenvironmentoptions-expandformat"},{"id":"tmux.SetEnvironmentOptions.Hidden","name":"Hidden","kind":"attribute","modifiers":[],"parent":"tmux.SetEnvironmentOptions","signatures":[],"type":"bool","doc":{"summary":"Hidden keeps the value available to tmux but out of child environments."},"source":{"file":"tmux/environment.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetEnvironmentOptions.Hidden","product":"core","slug":"tmux-setenvironmentoptions-hidden"},{"id":"tmux.EnvironmentValue","name":"EnvironmentValue","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"EnvironmentValue is one tmux environment value or removal marker. Its zero value is an ordinary empty value, not a removal marker."},"source":{"file":"tmux/environment.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentValue","product":"core","slug":"tmux-environmentvalue"},{"id":"tmux.EnvironmentValue.Value","name":"Value","kind":"attribute","modifiers":[],"parent":"tmux.EnvironmentValue","signatures":[],"type":"string","doc":{"summary":"Value is the exact value after tmux format expansion, if any."},"source":{"file":"tmux/environment.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentValue.Value","product":"core","slug":"tmux-environmentvalue-value"},{"id":"tmux.EnvironmentValue.Removed","name":"Removed","kind":"attribute","modifiers":[],"parent":"tmux.EnvironmentValue","signatures":[],"type":"bool","doc":{"summary":"Removed reports that tmux will remove the variable from new processes."},"source":{"file":"tmux/environment.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentValue.Removed","product":"core","slug":"tmux-environmentvalue-removed"},{"id":"tmux.EnvironmentNameError","name":"EnvironmentNameError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"EnvironmentNameError reports a name that tmux cannot store."},"source":{"file":"tmux/environment.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentNameError","product":"core","slug":"tmux-environmentnameerror"},{"id":"tmux.EnvironmentNameError.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.EnvironmentNameError","signatures":[],"type":"string","doc":{"summary":"Name is the invalid environment variable name."},"source":{"file":"tmux/environment.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentNameError.Name","product":"core","slug":"tmux-environmentnameerror-name"},{"id":"tmux.EnvironmentNameError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.EnvironmentNameError","signatures":[{"raw":"func (e *EnvironmentNameError) Error() string","params":[],"receiver":{"name":"e","type":"*EnvironmentNameError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/environment.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentNameError.Error","product":"core","slug":"tmux-environmentnameerror-error"},{"id":"tmux.EnvironmentNameError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.EnvironmentNameError","signatures":[{"raw":"func (e *EnvironmentNameError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*EnvironmentNameError"},"returns":"error"}],"doc":{"summary":"Unwrap makes EnvironmentNameError compatible with ErrInvalidEnvironmentName."},"source":{"file":"tmux/environment.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentNameError.Unwrap","product":"core","slug":"tmux-environmentnameerror-unwrap"},{"id":"tmux.EnvironmentValueError","name":"EnvironmentValueError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"EnvironmentValueError reports a value that cannot round-trip through show-environment. It intentionally does not retain or print the environment value."},"source":{"file":"tmux/environment.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentValueError","product":"core","slug":"tmux-environmentvalueerror"},{"id":"tmux.EnvironmentValueError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.EnvironmentValueError","signatures":[{"raw":"func (*EnvironmentValueError) Error() string","params":[],"receiver":{"name":"","type":"*EnvironmentValueError"},"returns":"string"}],"doc":{"summary":"Error implements error without disclosing the environment value."},"source":{"file":"tmux/environment.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentValueError.Error","product":"core","slug":"tmux-environmentvalueerror-error"},{"id":"tmux.EnvironmentValueError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.EnvironmentValueError","signatures":[{"raw":"func (*EnvironmentValueError) Unwrap() error","params":[],"receiver":{"name":"","type":"*EnvironmentValueError"},"returns":"error"}],"doc":{"summary":"Unwrap makes EnvironmentValueError compatible with ErrInvalidEnvironmentValue."},"source":{"file":"tmux/environment.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentValueError.Unwrap","product":"core","slug":"tmux-environmentvalueerror-unwrap"},{"id":"tmux.EnvironmentDecodeError","name":"EnvironmentDecodeError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"EnvironmentDecodeError reports one malformed show-environment record. It never retains the record because environment output may contain secrets."},"source":{"file":"tmux/environment.go","line":65,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentDecodeError","product":"core","slug":"tmux-environmentdecodeerror"},{"id":"tmux.EnvironmentDecodeError.Record","name":"Record","kind":"attribute","modifiers":[],"parent":"tmux.EnvironmentDecodeError","signatures":[],"type":"int","doc":{"summary":"Record is the zero-based malformed output record number."},"source":{"file":"tmux/environment.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentDecodeError.Record","product":"core","slug":"tmux-environmentdecodeerror-record"},{"id":"tmux.EnvironmentDecodeError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.EnvironmentDecodeError","signatures":[],"type":"string","doc":{"summary":"Reason describes malformed framing without retaining the record value."},"source":{"file":"tmux/environment.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentDecodeError.Reason","product":"core","slug":"tmux-environmentdecodeerror-reason"},{"id":"tmux.EnvironmentDecodeError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.EnvironmentDecodeError","signatures":[{"raw":"func (e *EnvironmentDecodeError) Error() string","params":[],"receiver":{"name":"e","type":"*EnvironmentDecodeError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/environment.go","line":73,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentDecodeError.Error","product":"core","slug":"tmux-environmentdecodeerror-error"},{"id":"tmux.EnvironmentDecodeError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.EnvironmentDecodeError","signatures":[{"raw":"func (e *EnvironmentDecodeError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*EnvironmentDecodeError"},"returns":"error"}],"doc":{"summary":"Unwrap makes EnvironmentDecodeError compatible with ErrMalformedEnvironment."},"source":{"file":"tmux/environment.go","line":78,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentDecodeError.Unwrap","product":"core","slug":"tmux-environmentdecodeerror-unwrap"},{"id":"tmux.Server.SetEnvironment","name":"SetEnvironment","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetEnvironment(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetEnvironmentOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetEnvironmentOptions"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetEnvironment stores a value in the server's global tmux environment. ExpandFormat and Hidden select tmux flags; cancellation does not prove the value was not stored."},"source":{"file":"tmux/environment.go","line":83,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetEnvironment","product":"core","slug":"tmux-server-setenvironment"},{"id":"tmux.Server.UnsetEnvironment","name":"UnsetEnvironment","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) UnsetEnvironment(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"UnsetEnvironment deletes a value from the server's global tmux environment. Cancellation does not prove deletion did not occur."},"source":{"file":"tmux/environment.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.UnsetEnvironment","product":"core","slug":"tmux-server-unsetenvironment"},{"id":"tmux.Server.RemoveEnvironment","name":"RemoveEnvironment","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) RemoveEnvironment(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"RemoveEnvironment marks a variable for removal from new process environments."},"source":{"file":"tmux/environment.go","line":99,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.RemoveEnvironment","product":"core","slug":"tmux-server-removeenvironment"},{"id":"tmux.Server.ShowEnvironment","name":"ShowEnvironment","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ShowEnvironment(ctx context.Context) (map[string]EnvironmentValue, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"(map[string]EnvironmentValue, error)"}],"doc":{"summary":"ShowEnvironment returns an owned server-global non-hidden tmux environment. Completed command failures return an empty map unless strict errors are enabled. Externally injected multiline entries return ErrMalformedEnvironment because tmux's multi-entry output does not frame continuation lines. Decode errors are compatible with [ErrMalformedEnvironment] and return no partial map."},"source":{"file":"tmux/environment.go","line":108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ShowEnvironment","product":"core","slug":"tmux-server-showenvironment"},{"id":"tmux.Server.GetEnvironment","name":"GetEnvironment","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) GetEnvironment(\n\tctx context.Context,\n\tname string,\n) (EnvironmentValue, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"(EnvironmentValue, bool, error)"}],"doc":{"summary":"GetEnvironment returns one non-hidden global environment entry. A missing or hidden variable reports ok false."},"source":{"file":"tmux/environment.go","line":114,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.GetEnvironment","product":"core","slug":"tmux-server-getenvironment"},{"id":"tmux.Session.SetEnvironment","name":"SetEnvironment","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetEnvironment(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetEnvironmentOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetEnvironmentOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetEnvironment stores a value in this session's tmux environment, targeted by its stable SessionID."},"source":{"file":"tmux/environment.go","line":123,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetEnvironment","product":"core","slug":"tmux-session-setenvironment"},{"id":"tmux.Session.UnsetEnvironment","name":"UnsetEnvironment","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) UnsetEnvironment(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"UnsetEnvironment deletes a value from this session's tmux environment, targeted by its stable SessionID."},"source":{"file":"tmux/environment.go","line":138,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.UnsetEnvironment","product":"core","slug":"tmux-session-unsetenvironment"},{"id":"tmux.Session.RemoveEnvironment","name":"RemoveEnvironment","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) RemoveEnvironment(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"RemoveEnvironment marks a variable for removal from new process environments for this stable session target."},"source":{"file":"tmux/environment.go","line":148,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.RemoveEnvironment","product":"core","slug":"tmux-session-removeenvironment"},{"id":"tmux.Session.ShowEnvironment","name":"ShowEnvironment","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) ShowEnvironment(ctx context.Context) (map[string]EnvironmentValue, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"(map[string]EnvironmentValue, error)"}],"doc":{"summary":"ShowEnvironment returns an owned session-scoped non-hidden tmux environment. Completed command failures return an empty map unless strict errors are enabled. Externally injected multiline entries return ErrMalformedEnvironment because tmux's multi-entry output does not frame continuation lines. Decode errors are compatible with [ErrMalformedEnvironment] and return no partial map."},"source":{"file":"tmux/environment.go","line":161,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.ShowEnvironment","product":"core","slug":"tmux-session-showenvironment"},{"id":"tmux.Session.GetEnvironment","name":"GetEnvironment","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) GetEnvironment(\n\tctx context.Context,\n\tname string,\n) (EnvironmentValue, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"(EnvironmentValue, bool, error)"}],"doc":{"summary":"GetEnvironment returns one non-hidden session environment entry for this stable session target. A missing or hidden variable reports ok false."},"source":{"file":"tmux/environment.go","line":172,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.GetEnvironment","product":"core","slug":"tmux-session-getenvironment"},{"id":"tmux.ErrInvalidFilter","name":"ErrInvalidFilter","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidFilter reports a malformed or impossible generated filter. Filter validation, lookup parsing, predicates, and JSON methods wrap this error."},"source":{"file":"tmux/filter.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidFilter","product":"core","slug":"tmux-errinvalidfilter"},{"id":"tmux.Ptr","name":"Ptr","kind":"function","modifiers":[],"signatures":[{"raw":"func Ptr[T any](value T) *T","params":[{"name":"value","type":"T"}],"returns":"*T","typeParams":["T any"]}],"doc":{"summary":"Ptr returns a distinct pointer to a shallow copy of value, including when T has zero size. Its nonzero holder prevents Go from coalescing zero-size addresses. Slices, maps, pointers, and other reference-bearing values still alias their referenced data. Ptr performs no validation or ownership transfer."},"source":{"file":"tmux/filter.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Ptr","product":"core","slug":"tmux-ptr"},{"id":"tmux.FilterSchemaVersion","name":"FilterSchemaVersion","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"FilterSchemaVersion identifies external metadata for the generated filter JSON wire schema. It is not embedded in JSON and is independent of the tmux [Version]."},"source":{"file":"tmux/filter_generated.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FilterSchemaVersion","product":"core","slug":"tmux-filterschemaversion"},{"id":"tmux.SessionFilter","name":"SessionFilter","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SessionFilter matches materialized [Session] values without tmux I/O. Its zero value matches every non-nil candidate. Criteria are ANDed; AnyOf adds an OR requirement and Not excludes. Field and relation criteria correspond to [Session.ID], [Session.Name], [Session.Attached], [Session.Windows], and [Session.Panes]. [SessionFilter.Validate] and methods that consume the filter reject invalid criteria with [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter","product":"core","slug":"tmux-sessionfilter"},{"id":"tmux.SessionFilter.ID","name":"ID","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"*SessionID","doc":{"summary":"ID exactly matches the stable tmux session identifier from Session.ID, including its $ sigil. A nil pointer leaves ID unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.ID","product":"core","slug":"tmux-sessionfilter-id"},{"id":"tmux.SessionFilter.IDIn","name":"IDIn","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"[]SessionID","doc":{"summary":"IDIn lists accepted values for the stable tmux session identifier from Session.ID, including its $ sigil. A candidate matches when its materialized value equals one listed value. A nil slice leaves IDIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.IDIn","product":"core","slug":"tmux-sessionfilter-idin"},{"id":"tmux.SessionFilter.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"*string","doc":{"summary":"Name exactly matches the materialized session name from Session.Name. A nil pointer leaves Name unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.Name","product":"core","slug":"tmux-sessionfilter-name"},{"id":"tmux.SessionFilter.NameIn","name":"NameIn","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"[]string","doc":{"summary":"NameIn lists accepted values for the materialized session name from Session.Name. A candidate matches when its materialized value equals one listed value. A nil slice leaves NameIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.NameIn","product":"core","slug":"tmux-sessionfilter-namein"},{"id":"tmux.SessionFilter.NameContains","name":"NameContains","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"*string","doc":{"summary":"NameContains requires the materialized session name from Session.Name to contain the pointed-to substring. A nil pointer leaves NameContains unset; a non-nil pointer applies it, and an empty string matches every available string."},"source":{"file":"tmux/filter_generated.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.NameContains","product":"core","slug":"tmux-sessionfilter-namecontains"},{"id":"tmux.SessionFilter.NameRegex","name":"NameRegex","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"string","doc":{"summary":"NameRegex requires the materialized session name from Session.Name to match Go regular expression syntax. An empty string leaves NameRegex unset."},"source":{"file":"tmux/filter_generated.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.NameRegex","product":"core","slug":"tmux-sessionfilter-nameregex"},{"id":"tmux.SessionFilter.Attached","name":"Attached","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"*bool","doc":{"summary":"Attached exactly matches the materialized attachment state from Session.Attached. A nil pointer leaves Attached unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.Attached","product":"core","slug":"tmux-sessionfilter-attached"},{"id":"tmux.SessionFilter.AnyOf","name":"AnyOf","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"[]SessionFilter","doc":{"summary":"AnyOf additionally requires at least one branch to match after ordinary criteria match. A nil slice leaves AnyOf unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.AnyOf","product":"core","slug":"tmux-sessionfilter-anyof"},{"id":"tmux.SessionFilter.Not","name":"Not","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"*SessionFilter","doc":{"summary":"Not excludes a candidate when its nested filter matches. A nil pointer leaves Not unset."},"source":{"file":"tmux/filter_generated.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.Not","product":"core","slug":"tmux-sessionfilter-not"},{"id":"tmux.SessionFilter.Windows","name":"Windows","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"*WindowRel","doc":{"summary":"Windows traverses the materialized window views returned by Session.Windows. A nil pointer leaves the relation criterion unset."},"source":{"file":"tmux/filter_generated.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.Windows","product":"core","slug":"tmux-sessionfilter-windows"},{"id":"tmux.SessionFilter.Panes","name":"Panes","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"*PaneRel","doc":{"summary":"Panes traverses the materialized pane views returned by Session.Panes. A nil pointer leaves the relation criterion unset."},"source":{"file":"tmux/filter_generated.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.Panes","product":"core","slug":"tmux-sessionfilter-panes"},{"id":"tmux.WindowFilter","name":"WindowFilter","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WindowFilter matches materialized [Window] values without tmux I/O. Its zero value matches every non-nil candidate. Criteria are ANDed; AnyOf adds an OR requirement and Not excludes. Field and relation criteria correspond to [Window.SessionID], [Window.ID], [Window.Index], [Window.Name], [Window.Active], [Window.Session], and [Window.Panes]. [WindowFilter.Validate] and methods that consume the filter reject invalid criteria with [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter","product":"core","slug":"tmux-windowfilter"},{"id":"tmux.WindowFilter.SessionID","name":"SessionID","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*SessionID","doc":{"summary":"SessionID exactly matches the stable tmux session identifier from Window.SessionID, including its $ sigil. A nil pointer leaves SessionID unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.SessionID","product":"core","slug":"tmux-windowfilter-sessionid"},{"id":"tmux.WindowFilter.SessionIDIn","name":"SessionIDIn","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"[]SessionID","doc":{"summary":"SessionIDIn lists accepted values for the stable tmux session identifier from Window.SessionID, including its $ sigil. A candidate matches when its materialized value equals one listed value. A nil slice leaves SessionIDIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.SessionIDIn","product":"core","slug":"tmux-windowfilter-sessionidin"},{"id":"tmux.WindowFilter.ID","name":"ID","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*WindowID","doc":{"summary":"ID exactly matches the stable tmux window identifier from Window.ID, including its @ sigil. A nil pointer leaves ID unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.ID","product":"core","slug":"tmux-windowfilter-id"},{"id":"tmux.WindowFilter.IDIn","name":"IDIn","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"[]WindowID","doc":{"summary":"IDIn lists accepted values for the stable tmux window identifier from Window.ID, including its @ sigil. A candidate matches when its materialized value equals one listed value. A nil slice leaves IDIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.IDIn","product":"core","slug":"tmux-windowfilter-idin"},{"id":"tmux.WindowFilter.Index","name":"Index","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*int","doc":{"summary":"Index exactly matches the nonnegative winlink index from Window.Index. A nil pointer leaves Index unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.Index","product":"core","slug":"tmux-windowfilter-index"},{"id":"tmux.WindowFilter.IndexIn","name":"IndexIn","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"[]int","doc":{"summary":"IndexIn lists accepted values for the nonnegative winlink index from Window.Index. A candidate matches when its materialized value equals one listed value. A nil slice leaves IndexIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":62,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.IndexIn","product":"core","slug":"tmux-windowfilter-indexin"},{"id":"tmux.WindowFilter.IndexGT","name":"IndexGT","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*int","doc":{"summary":"IndexGT requires the nonnegative winlink index from Window.Index to be strictly greater than the pointed-to value. A nil pointer leaves IndexGT unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":64,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.IndexGT","product":"core","slug":"tmux-windowfilter-indexgt"},{"id":"tmux.WindowFilter.IndexGTE","name":"IndexGTE","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*int","doc":{"summary":"IndexGTE requires the nonnegative winlink index from Window.Index to be greater than or equal to the pointed-to value. A nil pointer leaves IndexGTE unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":66,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.IndexGTE","product":"core","slug":"tmux-windowfilter-indexgte"},{"id":"tmux.WindowFilter.IndexLT","name":"IndexLT","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*int","doc":{"summary":"IndexLT requires the nonnegative winlink index from Window.Index to be strictly less than the pointed-to value. A nil pointer leaves IndexLT unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":68,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.IndexLT","product":"core","slug":"tmux-windowfilter-indexlt"},{"id":"tmux.WindowFilter.IndexLTE","name":"IndexLTE","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*int","doc":{"summary":"IndexLTE requires the nonnegative winlink index from Window.Index to be less than or equal to the pointed-to value. A nil pointer leaves IndexLTE unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.IndexLTE","product":"core","slug":"tmux-windowfilter-indexlte"},{"id":"tmux.WindowFilter.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*string","doc":{"summary":"Name exactly matches the materialized window name from Window.Name. A nil pointer leaves Name unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":72,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.Name","product":"core","slug":"tmux-windowfilter-name"},{"id":"tmux.WindowFilter.NameIn","name":"NameIn","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"[]string","doc":{"summary":"NameIn lists accepted values for the materialized window name from Window.Name. A candidate matches when its materialized value equals one listed value. A nil slice leaves NameIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.NameIn","product":"core","slug":"tmux-windowfilter-namein"},{"id":"tmux.WindowFilter.NameContains","name":"NameContains","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*string","doc":{"summary":"NameContains requires the materialized window name from Window.Name to contain the pointed-to substring. A nil pointer leaves NameContains unset; a non-nil pointer applies it, and an empty string matches every available string."},"source":{"file":"tmux/filter_generated.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.NameContains","product":"core","slug":"tmux-windowfilter-namecontains"},{"id":"tmux.WindowFilter.NameRegex","name":"NameRegex","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"string","doc":{"summary":"NameRegex requires the materialized window name from Window.Name to match Go regular expression syntax. An empty string leaves NameRegex unset."},"source":{"file":"tmux/filter_generated.go","line":78,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.NameRegex","product":"core","slug":"tmux-windowfilter-nameregex"},{"id":"tmux.WindowFilter.Active","name":"Active","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*bool","doc":{"summary":"Active exactly matches the materialized active state from Window.Active. A nil pointer leaves Active unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.Active","product":"core","slug":"tmux-windowfilter-active"},{"id":"tmux.WindowFilter.AnyOf","name":"AnyOf","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"[]WindowFilter","doc":{"summary":"AnyOf additionally requires at least one branch to match after ordinary criteria match. A nil slice leaves AnyOf unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":82,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.AnyOf","product":"core","slug":"tmux-windowfilter-anyof"},{"id":"tmux.WindowFilter.Not","name":"Not","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*WindowFilter","doc":{"summary":"Not excludes a candidate when its nested filter matches. A nil pointer leaves Not unset."},"source":{"file":"tmux/filter_generated.go","line":84,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.Not","product":"core","slug":"tmux-windowfilter-not"},{"id":"tmux.WindowFilter.Session","name":"Session","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*SessionFilter","doc":{"summary":"Session traverses the materialized parent returned by Window.Session. A nil pointer leaves the relation criterion unset."},"source":{"file":"tmux/filter_generated.go","line":86,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.Session","product":"core","slug":"tmux-windowfilter-session"},{"id":"tmux.WindowFilter.Panes","name":"Panes","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*PaneRel","doc":{"summary":"Panes traverses the materialized pane views returned by Window.Panes. A nil pointer leaves the relation criterion unset."},"source":{"file":"tmux/filter_generated.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.Panes","product":"core","slug":"tmux-windowfilter-panes"},{"id":"tmux.PaneFilter","name":"PaneFilter","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneFilter matches materialized [Pane] values without tmux I/O. Its zero value matches every non-nil candidate. Criteria are ANDed; AnyOf adds an OR requirement and Not excludes. Field and relation criteria correspond to [Pane.SessionID], [Pane.WindowID], [Pane.ID], [Pane.WindowIndex], [Pane.Index], [Pane.CurrentCommand], [Pane.Active], [Pane.Title], [Pane.Session], and [Pane.Window]. [PaneFilter.Validate] and methods that consume the filter reject invalid criteria with [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":95,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter","product":"core","slug":"tmux-panefilter"},{"id":"tmux.PaneFilter.SessionID","name":"SessionID","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*SessionID","doc":{"summary":"SessionID exactly matches the stable tmux session identifier from Pane.SessionID, including its $ sigil. A nil pointer leaves SessionID unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":97,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.SessionID","product":"core","slug":"tmux-panefilter-sessionid"},{"id":"tmux.PaneFilter.SessionIDIn","name":"SessionIDIn","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"[]SessionID","doc":{"summary":"SessionIDIn lists accepted values for the stable tmux session identifier from Pane.SessionID, including its $ sigil. A candidate matches when its materialized value equals one listed value. A nil slice leaves SessionIDIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":99,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.SessionIDIn","product":"core","slug":"tmux-panefilter-sessionidin"},{"id":"tmux.PaneFilter.WindowID","name":"WindowID","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*WindowID","doc":{"summary":"WindowID exactly matches the stable tmux window identifier from Pane.WindowID, including its @ sigil. A nil pointer leaves WindowID unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":101,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.WindowID","product":"core","slug":"tmux-panefilter-windowid"},{"id":"tmux.PaneFilter.WindowIDIn","name":"WindowIDIn","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"[]WindowID","doc":{"summary":"WindowIDIn lists accepted values for the stable tmux window identifier from Pane.WindowID, including its @ sigil. A candidate matches when its materialized value equals one listed value. A nil slice leaves WindowIDIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":103,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.WindowIDIn","product":"core","slug":"tmux-panefilter-windowidin"},{"id":"tmux.PaneFilter.ID","name":"ID","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*PaneID","doc":{"summary":"ID exactly matches the stable tmux pane identifier from Pane.ID, including its % sigil. A nil pointer leaves ID unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":105,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.ID","product":"core","slug":"tmux-panefilter-id"},{"id":"tmux.PaneFilter.IDIn","name":"IDIn","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"[]PaneID","doc":{"summary":"IDIn lists accepted values for the stable tmux pane identifier from Pane.ID, including its % sigil. A candidate matches when its materialized value equals one listed value. A nil slice leaves IDIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":107,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.IDIn","product":"core","slug":"tmux-panefilter-idin"},{"id":"tmux.PaneFilter.WindowIndex","name":"WindowIndex","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"WindowIndex exactly matches the nonnegative winlink index from Pane.WindowIndex. A nil pointer leaves WindowIndex unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":109,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.WindowIndex","product":"core","slug":"tmux-panefilter-windowindex"},{"id":"tmux.PaneFilter.WindowIndexIn","name":"WindowIndexIn","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"[]int","doc":{"summary":"WindowIndexIn lists accepted values for the nonnegative winlink index from Pane.WindowIndex. A candidate matches when its materialized value equals one listed value. A nil slice leaves WindowIndexIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.WindowIndexIn","product":"core","slug":"tmux-panefilter-windowindexin"},{"id":"tmux.PaneFilter.WindowIndexGT","name":"WindowIndexGT","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"WindowIndexGT requires the nonnegative winlink index from Pane.WindowIndex to be strictly greater than the pointed-to value. A nil pointer leaves WindowIndexGT unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":113,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.WindowIndexGT","product":"core","slug":"tmux-panefilter-windowindexgt"},{"id":"tmux.PaneFilter.WindowIndexGTE","name":"WindowIndexGTE","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"WindowIndexGTE requires the nonnegative winlink index from Pane.WindowIndex to be greater than or equal to the pointed-to value. A nil pointer leaves WindowIndexGTE unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":115,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.WindowIndexGTE","product":"core","slug":"tmux-panefilter-windowindexgte"},{"id":"tmux.PaneFilter.WindowIndexLT","name":"WindowIndexLT","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"WindowIndexLT requires the nonnegative winlink index from Pane.WindowIndex to be strictly less than the pointed-to value. A nil pointer leaves WindowIndexLT unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":117,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.WindowIndexLT","product":"core","slug":"tmux-panefilter-windowindexlt"},{"id":"tmux.PaneFilter.WindowIndexLTE","name":"WindowIndexLTE","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"WindowIndexLTE requires the nonnegative winlink index from Pane.WindowIndex to be less than or equal to the pointed-to value. A nil pointer leaves WindowIndexLTE unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":119,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.WindowIndexLTE","product":"core","slug":"tmux-panefilter-windowindexlte"},{"id":"tmux.PaneFilter.Index","name":"Index","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"Index exactly matches the nonnegative pane index from Pane.Index. A nil pointer leaves Index unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":121,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.Index","product":"core","slug":"tmux-panefilter-index"},{"id":"tmux.PaneFilter.IndexIn","name":"IndexIn","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"[]int","doc":{"summary":"IndexIn lists accepted values for the nonnegative pane index from Pane.Index. A candidate matches when its materialized value equals one listed value. A nil slice leaves IndexIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":123,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.IndexIn","product":"core","slug":"tmux-panefilter-indexin"},{"id":"tmux.PaneFilter.IndexGT","name":"IndexGT","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"IndexGT requires the nonnegative pane index from Pane.Index to be strictly greater than the pointed-to value. A nil pointer leaves IndexGT unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":125,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.IndexGT","product":"core","slug":"tmux-panefilter-indexgt"},{"id":"tmux.PaneFilter.IndexGTE","name":"IndexGTE","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"IndexGTE requires the nonnegative pane index from Pane.Index to be greater than or equal to the pointed-to value. A nil pointer leaves IndexGTE unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":127,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.IndexGTE","product":"core","slug":"tmux-panefilter-indexgte"},{"id":"tmux.PaneFilter.IndexLT","name":"IndexLT","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"IndexLT requires the nonnegative pane index from Pane.Index to be strictly less than the pointed-to value. A nil pointer leaves IndexLT unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":129,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.IndexLT","product":"core","slug":"tmux-panefilter-indexlt"},{"id":"tmux.PaneFilter.IndexLTE","name":"IndexLTE","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"IndexLTE requires the nonnegative pane index from Pane.Index to be less than or equal to the pointed-to value. A nil pointer leaves IndexLTE unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":131,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.IndexLTE","product":"core","slug":"tmux-panefilter-indexlte"},{"id":"tmux.PaneFilter.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*string","doc":{"summary":"Command exactly matches the materialized current command from Pane.CurrentCommand. A nil pointer leaves Command unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":133,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.Command","product":"core","slug":"tmux-panefilter-command"},{"id":"tmux.PaneFilter.CommandIn","name":"CommandIn","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"[]string","doc":{"summary":"CommandIn lists accepted values for the materialized current command from Pane.CurrentCommand. A candidate matches when its materialized value equals one listed value. A nil slice leaves CommandIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":135,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.CommandIn","product":"core","slug":"tmux-panefilter-commandin"},{"id":"tmux.PaneFilter.CommandContains","name":"CommandContains","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*string","doc":{"summary":"CommandContains requires the materialized current command from Pane.CurrentCommand to contain the pointed-to substring. A nil pointer leaves CommandContains unset; a non-nil pointer applies it, and an empty string matches every available string."},"source":{"file":"tmux/filter_generated.go","line":137,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.CommandContains","product":"core","slug":"tmux-panefilter-commandcontains"},{"id":"tmux.PaneFilter.CommandRegex","name":"CommandRegex","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"string","doc":{"summary":"CommandRegex requires the materialized current command from Pane.CurrentCommand to match Go regular expression syntax. An empty string leaves CommandRegex unset."},"source":{"file":"tmux/filter_generated.go","line":139,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.CommandRegex","product":"core","slug":"tmux-panefilter-commandregex"},{"id":"tmux.PaneFilter.Active","name":"Active","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*bool","doc":{"summary":"Active exactly matches the materialized active state from Pane.Active. A nil pointer leaves Active unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":141,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.Active","product":"core","slug":"tmux-panefilter-active"},{"id":"tmux.PaneFilter.Title","name":"Title","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*string","doc":{"summary":"Title exactly matches the materialized title from Pane.Title. A nil pointer leaves Title unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":143,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.Title","product":"core","slug":"tmux-panefilter-title"},{"id":"tmux.PaneFilter.TitleIn","name":"TitleIn","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"[]string","doc":{"summary":"TitleIn lists accepted values for the materialized title from Pane.Title. A candidate matches when its materialized value equals one listed value. A nil slice leaves TitleIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":145,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.TitleIn","product":"core","slug":"tmux-panefilter-titlein"},{"id":"tmux.PaneFilter.TitleContains","name":"TitleContains","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*string","doc":{"summary":"TitleContains requires the materialized title from Pane.Title to contain the pointed-to substring. A nil pointer leaves TitleContains unset; a non-nil pointer applies it, and an empty string matches every available string."},"source":{"file":"tmux/filter_generated.go","line":147,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.TitleContains","product":"core","slug":"tmux-panefilter-titlecontains"},{"id":"tmux.PaneFilter.TitleRegex","name":"TitleRegex","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"string","doc":{"summary":"TitleRegex requires the materialized title from Pane.Title to match Go regular expression syntax. An empty string leaves TitleRegex unset."},"source":{"file":"tmux/filter_generated.go","line":149,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.TitleRegex","product":"core","slug":"tmux-panefilter-titleregex"},{"id":"tmux.PaneFilter.AnyOf","name":"AnyOf","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"[]PaneFilter","doc":{"summary":"AnyOf additionally requires at least one branch to match after ordinary criteria match. A nil slice leaves AnyOf unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":151,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.AnyOf","product":"core","slug":"tmux-panefilter-anyof"},{"id":"tmux.PaneFilter.Not","name":"Not","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*PaneFilter","doc":{"summary":"Not excludes a candidate when its nested filter matches. A nil pointer leaves Not unset."},"source":{"file":"tmux/filter_generated.go","line":153,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.Not","product":"core","slug":"tmux-panefilter-not"},{"id":"tmux.PaneFilter.Session","name":"Session","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*SessionFilter","doc":{"summary":"Session traverses the materialized parent returned by Pane.Session. A nil pointer leaves the relation criterion unset."},"source":{"file":"tmux/filter_generated.go","line":155,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.Session","product":"core","slug":"tmux-panefilter-session"},{"id":"tmux.PaneFilter.Window","name":"Window","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*WindowFilter","doc":{"summary":"Window traverses the materialized parent returned by Pane.Window. A nil pointer leaves the relation criterion unset."},"source":{"file":"tmux/filter_generated.go","line":157,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.Window","product":"core","slug":"tmux-panefilter-window"},{"id":"tmux.ClientFilter","name":"ClientFilter","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ClientFilter matches materialized [Client] values without tmux I/O. Its zero value matches every non-nil candidate. Criteria are ANDed; AnyOf adds an OR requirement and Not excludes. Field and relation criteria correspond to [Client.Name], [Client.ReadOnly], [Client.AttachedSession], [Client.AttachedWindow], and [Client.AttachedPane]. [ClientFilter.Validate] and methods that consume the filter reject invalid criteria with [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":164,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter","product":"core","slug":"tmux-clientfilter"},{"id":"tmux.ClientFilter.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"*ClientName","doc":{"summary":"Name exactly matches the stable tmux client name from Client.Name. A nil pointer leaves Name unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":166,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.Name","product":"core","slug":"tmux-clientfilter-name"},{"id":"tmux.ClientFilter.NameIn","name":"NameIn","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"[]ClientName","doc":{"summary":"NameIn lists accepted values for the stable tmux client name from Client.Name. A candidate matches when its materialized value equals one listed value. A nil slice leaves NameIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":168,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.NameIn","product":"core","slug":"tmux-clientfilter-namein"},{"id":"tmux.ClientFilter.NameContains","name":"NameContains","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"*string","doc":{"summary":"NameContains requires the stable tmux client name from Client.Name to contain the pointed-to substring. A nil pointer leaves NameContains unset; a non-nil pointer applies it, and an empty string matches every available string."},"source":{"file":"tmux/filter_generated.go","line":170,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.NameContains","product":"core","slug":"tmux-clientfilter-namecontains"},{"id":"tmux.ClientFilter.NameRegex","name":"NameRegex","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"string","doc":{"summary":"NameRegex requires the stable tmux client name from Client.Name to match Go regular expression syntax. An empty string leaves NameRegex unset."},"source":{"file":"tmux/filter_generated.go","line":172,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.NameRegex","product":"core","slug":"tmux-clientfilter-nameregex"},{"id":"tmux.ClientFilter.ReadOnly","name":"ReadOnly","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"*bool","doc":{"summary":"ReadOnly exactly matches the materialized read-only state from Client.ReadOnly. A nil pointer leaves ReadOnly unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":174,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.ReadOnly","product":"core","slug":"tmux-clientfilter-readonly"},{"id":"tmux.ClientFilter.AnyOf","name":"AnyOf","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"[]ClientFilter","doc":{"summary":"AnyOf additionally requires at least one branch to match after ordinary criteria match. A nil slice leaves AnyOf unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":176,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.AnyOf","product":"core","slug":"tmux-clientfilter-anyof"},{"id":"tmux.ClientFilter.Not","name":"Not","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"*ClientFilter","doc":{"summary":"Not excludes a candidate when its nested filter matches. A nil pointer leaves Not unset."},"source":{"file":"tmux/filter_generated.go","line":178,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.Not","product":"core","slug":"tmux-clientfilter-not"},{"id":"tmux.ClientFilter.Session","name":"Session","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"*SessionFilter","doc":{"summary":"Session traverses the materialized attachment returned by Client.AttachedSession. A nil pointer leaves the relation criterion unset."},"source":{"file":"tmux/filter_generated.go","line":180,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.Session","product":"core","slug":"tmux-clientfilter-session"},{"id":"tmux.ClientFilter.Window","name":"Window","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"*WindowFilter","doc":{"summary":"Window traverses the materialized attachment returned by Client.AttachedWindow. A nil pointer leaves the relation criterion unset."},"source":{"file":"tmux/filter_generated.go","line":182,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.Window","product":"core","slug":"tmux-clientfilter-window"},{"id":"tmux.ClientFilter.Pane","name":"Pane","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"*PaneFilter","doc":{"summary":"Pane traverses the materialized attachment returned by Client.AttachedPane. A nil pointer leaves the relation criterion unset."},"source":{"file":"tmux/filter_generated.go","line":184,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.Pane","product":"core","slug":"tmux-clientfilter-pane"},{"id":"tmux.SessionIDIs","name":"SessionIDIs","kind":"function","modifiers":[],"signatures":[{"raw":"func SessionIDIs(value SessionID) SessionFilter","params":[{"name":"value","type":"SessionID"}],"returns":"SessionFilter"}],"doc":{"summary":"SessionIDIs returns a [SessionFilter] that exactly matches the stable tmux session identifier from Session.ID, including its $ sigil. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":188,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionIDIs","product":"core","slug":"tmux-sessionidis"},{"id":"tmux.SessionNameIs","name":"SessionNameIs","kind":"function","modifiers":[],"signatures":[{"raw":"func SessionNameIs(value string) SessionFilter","params":[{"name":"value","type":"string"}],"returns":"SessionFilter"}],"doc":{"summary":"SessionNameIs returns a [SessionFilter] that exactly matches the materialized session name from Session.Name. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":193,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionNameIs","product":"core","slug":"tmux-sessionnameis"},{"id":"tmux.SessionAttachedIs","name":"SessionAttachedIs","kind":"function","modifiers":[],"signatures":[{"raw":"func SessionAttachedIs(value bool) SessionFilter","params":[{"name":"value","type":"bool"}],"returns":"SessionFilter"}],"doc":{"summary":"SessionAttachedIs returns a [SessionFilter] that exactly matches the materialized attachment state from Session.Attached. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":198,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionAttachedIs","product":"core","slug":"tmux-sessionattachedis"},{"id":"tmux.WindowSessionIDIs","name":"WindowSessionIDIs","kind":"function","modifiers":[],"signatures":[{"raw":"func WindowSessionIDIs(value SessionID) WindowFilter","params":[{"name":"value","type":"SessionID"}],"returns":"WindowFilter"}],"doc":{"summary":"WindowSessionIDIs returns a [WindowFilter] that exactly matches the stable tmux session identifier from Window.SessionID, including its $ sigil. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":203,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSessionIDIs","product":"core","slug":"tmux-windowsessionidis"},{"id":"tmux.WindowIDIs","name":"WindowIDIs","kind":"function","modifiers":[],"signatures":[{"raw":"func WindowIDIs(value WindowID) WindowFilter","params":[{"name":"value","type":"WindowID"}],"returns":"WindowFilter"}],"doc":{"summary":"WindowIDIs returns a [WindowFilter] that exactly matches the stable tmux window identifier from Window.ID, including its @ sigil. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":208,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowIDIs","product":"core","slug":"tmux-windowidis"},{"id":"tmux.WindowIndexIs","name":"WindowIndexIs","kind":"function","modifiers":[],"signatures":[{"raw":"func WindowIndexIs(value int) WindowFilter","params":[{"name":"value","type":"int"}],"returns":"WindowFilter"}],"doc":{"summary":"WindowIndexIs returns a [WindowFilter] that exactly matches the nonnegative winlink index from Window.Index. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":213,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowIndexIs","product":"core","slug":"tmux-windowindexis"},{"id":"tmux.WindowNameIs","name":"WindowNameIs","kind":"function","modifiers":[],"signatures":[{"raw":"func WindowNameIs(value string) WindowFilter","params":[{"name":"value","type":"string"}],"returns":"WindowFilter"}],"doc":{"summary":"WindowNameIs returns a [WindowFilter] that exactly matches the materialized window name from Window.Name. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":218,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowNameIs","product":"core","slug":"tmux-windownameis"},{"id":"tmux.WindowActiveIs","name":"WindowActiveIs","kind":"function","modifiers":[],"signatures":[{"raw":"func WindowActiveIs(value bool) WindowFilter","params":[{"name":"value","type":"bool"}],"returns":"WindowFilter"}],"doc":{"summary":"WindowActiveIs returns a [WindowFilter] that exactly matches the materialized active state from Window.Active. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":223,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowActiveIs","product":"core","slug":"tmux-windowactiveis"},{"id":"tmux.PaneSessionIDIs","name":"PaneSessionIDIs","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneSessionIDIs(value SessionID) PaneFilter","params":[{"name":"value","type":"SessionID"}],"returns":"PaneFilter"}],"doc":{"summary":"PaneSessionIDIs returns a [PaneFilter] that exactly matches the stable tmux session identifier from Pane.SessionID, including its $ sigil. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":228,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSessionIDIs","product":"core","slug":"tmux-panesessionidis"},{"id":"tmux.PaneWindowIDIs","name":"PaneWindowIDIs","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneWindowIDIs(value WindowID) PaneFilter","params":[{"name":"value","type":"WindowID"}],"returns":"PaneFilter"}],"doc":{"summary":"PaneWindowIDIs returns a [PaneFilter] that exactly matches the stable tmux window identifier from Pane.WindowID, including its @ sigil. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":233,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneWindowIDIs","product":"core","slug":"tmux-panewindowidis"},{"id":"tmux.PaneIDIs","name":"PaneIDIs","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneIDIs(value PaneID) PaneFilter","params":[{"name":"value","type":"PaneID"}],"returns":"PaneFilter"}],"doc":{"summary":"PaneIDIs returns a [PaneFilter] that exactly matches the stable tmux pane identifier from Pane.ID, including its % sigil. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":238,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneIDIs","product":"core","slug":"tmux-paneidis"},{"id":"tmux.PaneWindowIndexIs","name":"PaneWindowIndexIs","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneWindowIndexIs(value int) PaneFilter","params":[{"name":"value","type":"int"}],"returns":"PaneFilter"}],"doc":{"summary":"PaneWindowIndexIs returns a [PaneFilter] that exactly matches the nonnegative winlink index from Pane.WindowIndex. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":243,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneWindowIndexIs","product":"core","slug":"tmux-panewindowindexis"},{"id":"tmux.PaneIndexIs","name":"PaneIndexIs","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneIndexIs(value int) PaneFilter","params":[{"name":"value","type":"int"}],"returns":"PaneFilter"}],"doc":{"summary":"PaneIndexIs returns a [PaneFilter] that exactly matches the nonnegative pane index from Pane.Index. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":248,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneIndexIs","product":"core","slug":"tmux-paneindexis"},{"id":"tmux.PaneCommandIs","name":"PaneCommandIs","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneCommandIs(value string) PaneFilter","params":[{"name":"value","type":"string"}],"returns":"PaneFilter"}],"doc":{"summary":"PaneCommandIs returns a [PaneFilter] that exactly matches the materialized current command from Pane.CurrentCommand. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":253,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneCommandIs","product":"core","slug":"tmux-panecommandis"},{"id":"tmux.PaneActiveIs","name":"PaneActiveIs","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneActiveIs(value bool) PaneFilter","params":[{"name":"value","type":"bool"}],"returns":"PaneFilter"}],"doc":{"summary":"PaneActiveIs returns a [PaneFilter] that exactly matches the materialized active state from Pane.Active. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":258,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneActiveIs","product":"core","slug":"tmux-paneactiveis"},{"id":"tmux.PaneTitleIs","name":"PaneTitleIs","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneTitleIs(value string) PaneFilter","params":[{"name":"value","type":"string"}],"returns":"PaneFilter"}],"doc":{"summary":"PaneTitleIs returns a [PaneFilter] that exactly matches the materialized title from Pane.Title. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":263,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneTitleIs","product":"core","slug":"tmux-panetitleis"},{"id":"tmux.ClientNameIs","name":"ClientNameIs","kind":"function","modifiers":[],"signatures":[{"raw":"func ClientNameIs(value ClientName) ClientFilter","params":[{"name":"value","type":"ClientName"}],"returns":"ClientFilter"}],"doc":{"summary":"ClientNameIs returns a [ClientFilter] that exactly matches the stable tmux client name from Client.Name. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":268,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientNameIs","product":"core","slug":"tmux-clientnameis"},{"id":"tmux.ClientReadOnlyIs","name":"ClientReadOnlyIs","kind":"function","modifiers":[],"signatures":[{"raw":"func ClientReadOnlyIs(value bool) ClientFilter","params":[{"name":"value","type":"bool"}],"returns":"ClientFilter"}],"doc":{"summary":"ClientReadOnlyIs returns a [ClientFilter] that exactly matches the materialized read-only state from Client.ReadOnly. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":273,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientReadOnlyIs","product":"core","slug":"tmux-clientreadonlyis"},{"id":"tmux.WindowRel","name":"WindowRel","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WindowRel applies quantifiers to a materialized [Window] relation; its zero value is invalid. Some is existential, Every is universal and vacuously true for an empty relation, and None excludes; enabled quantifiers are conjunctive."},"source":{"file":"tmux/filter_generated.go","line":279,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowRel","product":"core","slug":"tmux-windowrel"},{"id":"tmux.WindowRel.Some","name":"Some","kind":"attribute","modifiers":[],"parent":"tmux.WindowRel","signatures":[],"type":"*WindowFilter","doc":{"summary":"Some requires an existential match: at least one related value must match."},"source":{"file":"tmux/filter_generated.go","line":281,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowRel.Some","product":"core","slug":"tmux-windowrel-some"},{"id":"tmux.WindowRel.Every","name":"Every","kind":"attribute","modifiers":[],"parent":"tmux.WindowRel","signatures":[],"type":"*WindowFilter","doc":{"summary":"Every requires a universal match and is vacuously true for an empty relation."},"source":{"file":"tmux/filter_generated.go","line":283,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowRel.Every","product":"core","slug":"tmux-windowrel-every"},{"id":"tmux.WindowRel.None","name":"None","kind":"attribute","modifiers":[],"parent":"tmux.WindowRel","signatures":[],"type":"*WindowFilter","doc":{"summary":"None excludes the candidate when any related value matches."},"source":{"file":"tmux/filter_generated.go","line":285,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowRel.None","product":"core","slug":"tmux-windowrel-none"},{"id":"tmux.PaneRel","name":"PaneRel","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneRel applies quantifiers to a materialized [Pane] relation; its zero value is invalid. Some is existential, Every is universal and vacuously true for an empty relation, and None excludes; enabled quantifiers are conjunctive."},"source":{"file":"tmux/filter_generated.go","line":290,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneRel","product":"core","slug":"tmux-panerel"},{"id":"tmux.PaneRel.Some","name":"Some","kind":"attribute","modifiers":[],"parent":"tmux.PaneRel","signatures":[],"type":"*PaneFilter","doc":{"summary":"Some requires an existential match: at least one related value must match."},"source":{"file":"tmux/filter_generated.go","line":292,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneRel.Some","product":"core","slug":"tmux-panerel-some"},{"id":"tmux.PaneRel.Every","name":"Every","kind":"attribute","modifiers":[],"parent":"tmux.PaneRel","signatures":[],"type":"*PaneFilter","doc":{"summary":"Every requires a universal match and is vacuously true for an empty relation."},"source":{"file":"tmux/filter_generated.go","line":294,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneRel.Every","product":"core","slug":"tmux-panerel-every"},{"id":"tmux.PaneRel.None","name":"None","kind":"attribute","modifiers":[],"parent":"tmux.PaneRel","signatures":[],"type":"*PaneFilter","doc":{"summary":"None excludes the candidate when any related value matches."},"source":{"file":"tmux/filter_generated.go","line":296,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneRel.None","product":"core","slug":"tmux-panerel-none"},{"id":"tmux.ParseSessionLookup","name":"ParseSessionLookup","kind":"function","modifiers":[],"signatures":[{"raw":"func ParseSessionLookup(lookup string, values ...string) (SessionFilter, error)","params":[{"name":"lookup","type":"string"},{"name":"values","type":"string","variadic":"positional"}],"returns":"(SessionFilter, error)"}],"doc":{"summary":"ParseSessionLookup converts a lookup path into a concrete session filter. Paths traverse generated JSON relation names and separate segments with double underscores. The default operator is exact. Accepted suffixes are eq, exact, iexact, contains, icontains, startswith, istartswith, endswith, iendswith, in, nin, regex, and iregex; availability is field-specific. The eq suffix aliases exact, nin negates in, scalar operators require one value, and in and nin require one or more. Invalid paths, operators, values, or results wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":666,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ParseSessionLookup","product":"core","slug":"tmux-parsesessionlookup"},{"id":"tmux.ParseWindowLookup","name":"ParseWindowLookup","kind":"function","modifiers":[],"signatures":[{"raw":"func ParseWindowLookup(lookup string, values ...string) (WindowFilter, error)","params":[{"name":"lookup","type":"string"},{"name":"values","type":"string","variadic":"positional"}],"returns":"(WindowFilter, error)"}],"doc":{"summary":"ParseWindowLookup converts a lookup path into a concrete window filter. Paths traverse generated JSON relation names and separate segments with double underscores. The default operator is exact. Accepted suffixes are eq, exact, iexact, contains, icontains, startswith, istartswith, endswith, iendswith, in, nin, regex, and iregex; availability is field-specific. The eq suffix aliases exact, nin negates in, scalar operators require one value, and in and nin require one or more. Invalid paths, operators, values, or results wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":690,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ParseWindowLookup","product":"core","slug":"tmux-parsewindowlookup"},{"id":"tmux.ParsePaneLookup","name":"ParsePaneLookup","kind":"function","modifiers":[],"signatures":[{"raw":"func ParsePaneLookup(lookup string, values ...string) (PaneFilter, error)","params":[{"name":"lookup","type":"string"},{"name":"values","type":"string","variadic":"positional"}],"returns":"(PaneFilter, error)"}],"doc":{"summary":"ParsePaneLookup converts a lookup path into a concrete pane filter. Paths traverse generated JSON relation names and separate segments with double underscores. The default operator is exact. Accepted suffixes are eq, exact, iexact, contains, icontains, startswith, istartswith, endswith, iendswith, in, nin, regex, and iregex; availability is field-specific. The eq suffix aliases exact, nin negates in, scalar operators require one value, and in and nin require one or more. Invalid paths, operators, values, or results wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":714,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ParsePaneLookup","product":"core","slug":"tmux-parsepanelookup"},{"id":"tmux.ParseClientLookup","name":"ParseClientLookup","kind":"function","modifiers":[],"signatures":[{"raw":"func ParseClientLookup(lookup string, values ...string) (ClientFilter, error)","params":[{"name":"lookup","type":"string"},{"name":"values","type":"string","variadic":"positional"}],"returns":"(ClientFilter, error)"}],"doc":{"summary":"ParseClientLookup converts a lookup path into a concrete client filter. Paths traverse generated JSON relation names and separate segments with double underscores. The default operator is exact. Accepted suffixes are eq, exact, iexact, contains, icontains, startswith, istartswith, endswith, iendswith, in, nin, regex, and iregex; availability is field-specific. The eq suffix aliases exact, nin negates in, scalar operators require one value, and in and nin require one or more. Invalid paths, operators, values, or results wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":738,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ParseClientLookup","product":"core","slug":"tmux-parseclientlookup"},{"id":"tmux.SessionFilter.Validate","name":"Validate","kind":"method","modifiers":[],"parent":"tmux.SessionFilter","signatures":[{"raw":"func (filter SessionFilter) Validate() error","params":[],"receiver":{"name":"filter","type":"SessionFilter"},"returns":"error"}],"doc":{"summary":"Validate checks structure, regular expressions, and contradictory criteria; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":1687,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.Validate","product":"core","slug":"tmux-sessionfilter-validate"},{"id":"tmux.WindowFilter.Validate","name":"Validate","kind":"method","modifiers":[],"parent":"tmux.WindowFilter","signatures":[{"raw":"func (filter WindowFilter) Validate() error","params":[],"receiver":{"name":"filter","type":"WindowFilter"},"returns":"error"}],"doc":{"summary":"Validate checks structure, regular expressions, and contradictory criteria; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":1907,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.Validate","product":"core","slug":"tmux-windowfilter-validate"},{"id":"tmux.PaneFilter.Validate","name":"Validate","kind":"method","modifiers":[],"parent":"tmux.PaneFilter","signatures":[{"raw":"func (filter PaneFilter) Validate() error","params":[],"receiver":{"name":"filter","type":"PaneFilter"},"returns":"error"}],"doc":{"summary":"Validate checks structure, regular expressions, and contradictory criteria; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":2093,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.Validate","product":"core","slug":"tmux-panefilter-validate"},{"id":"tmux.ClientFilter.Validate","name":"Validate","kind":"method","modifiers":[],"parent":"tmux.ClientFilter","signatures":[{"raw":"func (filter ClientFilter) Validate() error","params":[],"receiver":{"name":"filter","type":"ClientFilter"},"returns":"error"}],"doc":{"summary":"Validate checks structure, regular expressions, and contradictory criteria; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":2256,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.Validate","product":"core","slug":"tmux-clientfilter-validate"},{"id":"tmux.SessionFilter.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.SessionFilter","signatures":[{"raw":"func (filter SessionFilter) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"filter","type":"SessionFilter"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON validates and encodes the session filter; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":2387,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.MarshalJSON","product":"core","slug":"tmux-sessionfilter-marshaljson"},{"id":"tmux.WindowFilter.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.WindowFilter","signatures":[{"raw":"func (filter WindowFilter) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"filter","type":"WindowFilter"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON validates and encodes the window filter; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":2396,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.MarshalJSON","product":"core","slug":"tmux-windowfilter-marshaljson"},{"id":"tmux.PaneFilter.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.PaneFilter","signatures":[{"raw":"func (filter PaneFilter) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"filter","type":"PaneFilter"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON validates and encodes the pane filter; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":2405,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.MarshalJSON","product":"core","slug":"tmux-panefilter-marshaljson"},{"id":"tmux.ClientFilter.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.ClientFilter","signatures":[{"raw":"func (filter ClientFilter) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"filter","type":"ClientFilter"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON validates and encodes the client filter; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":2414,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.MarshalJSON","product":"core","slug":"tmux-clientfilter-marshaljson"},{"id":"tmux.WindowRel.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.WindowRel","signatures":[{"raw":"func (relation WindowRel) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"relation","type":"WindowRel"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON validates and encodes the window relation; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":2445,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowRel.MarshalJSON","product":"core","slug":"tmux-windowrel-marshaljson"},{"id":"tmux.PaneRel.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.PaneRel","signatures":[{"raw":"func (relation PaneRel) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"relation","type":"PaneRel"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON validates and encodes the pane relation; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":2476,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneRel.MarshalJSON","product":"core","slug":"tmux-panerel-marshaljson"},{"id":"tmux.SessionFilter.Predicate","name":"Predicate","kind":"method","modifiers":[],"parent":"tmux.SessionFilter","signatures":[{"raw":"func (filter SessionFilter) Predicate() (func(*Session) bool, error)","params":[],"receiver":{"name":"filter","type":"SessionFilter"},"returns":"(func(*Session) bool, error)"}],"doc":{"summary":"Predicate validates the session filter and returns a local predicate for [Session] values materialized by a [Snapshot]; it never runs tmux. It traverses only loaded relations and returns false for a nil candidate."},"source":{"file":"tmux/filter_generated.go","line":2486,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.Predicate","product":"core","slug":"tmux-sessionfilter-predicate"},{"id":"tmux.WindowFilter.Predicate","name":"Predicate","kind":"method","modifiers":[],"parent":"tmux.WindowFilter","signatures":[{"raw":"func (filter WindowFilter) Predicate() (func(*Window) bool, error)","params":[],"receiver":{"name":"filter","type":"WindowFilter"},"returns":"(func(*Window) bool, error)"}],"doc":{"summary":"Predicate validates the window filter and returns a local predicate for [Window] values materialized by a [Snapshot]; it never runs tmux. It traverses only loaded relations and returns false for a nil candidate."},"source":{"file":"tmux/filter_generated.go","line":2720,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.Predicate","product":"core","slug":"tmux-windowfilter-predicate"},{"id":"tmux.PaneFilter.Predicate","name":"Predicate","kind":"method","modifiers":[],"parent":"tmux.PaneFilter","signatures":[{"raw":"func (filter PaneFilter) Predicate() (func(*Pane) bool, error)","params":[],"receiver":{"name":"filter","type":"PaneFilter"},"returns":"(func(*Pane) bool, error)"}],"doc":{"summary":"Predicate validates the pane filter and returns a local predicate for [Pane] values materialized by a [Snapshot]; it never runs tmux. It traverses only loaded relations and returns false for a nil candidate."},"source":{"file":"tmux/filter_generated.go","line":2979,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.Predicate","product":"core","slug":"tmux-panefilter-predicate"},{"id":"tmux.ClientFilter.Predicate","name":"Predicate","kind":"method","modifiers":[],"parent":"tmux.ClientFilter","signatures":[{"raw":"func (filter ClientFilter) Predicate() (func(*Client) bool, error)","params":[],"receiver":{"name":"filter","type":"ClientFilter"},"returns":"(func(*Client) bool, error)"}],"doc":{"summary":"Predicate validates the client filter and returns a local predicate for [Client] values materialized by a [Snapshot]; it never runs tmux. It traverses only loaded relations and returns false for a nil candidate."},"source":{"file":"tmux/filter_generated.go","line":3304,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.Predicate","product":"core","slug":"tmux-clientfilter-predicate"},{"id":"tmux.SessionFilter.UnmarshalJSON","name":"UnmarshalJSON","kind":"method","modifiers":[],"parent":"tmux.SessionFilter","signatures":[{"raw":"func (filter *SessionFilter) UnmarshalJSON(data []byte) error","params":[{"name":"data","type":"[]byte"}],"receiver":{"name":"filter","type":"*SessionFilter"},"returns":"error"}],"doc":{"summary":"UnmarshalJSON clears the receiver, strictly decodes a session filter, then validates it. Unknown or duplicate fields, trailing data, and semantic failures wrap [ErrInvalidFilter]; the receiver may retain decoded state on error."},"source":{"file":"tmux/filter_generated.go","line":3446,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.UnmarshalJSON","product":"core","slug":"tmux-sessionfilter-unmarshaljson"},{"id":"tmux.WindowFilter.UnmarshalJSON","name":"UnmarshalJSON","kind":"method","modifiers":[],"parent":"tmux.WindowFilter","signatures":[{"raw":"func (filter *WindowFilter) UnmarshalJSON(data []byte) error","params":[{"name":"data","type":"[]byte"}],"receiver":{"name":"filter","type":"*WindowFilter"},"returns":"error"}],"doc":{"summary":"UnmarshalJSON clears the receiver, strictly decodes a window filter, then validates it. Unknown or duplicate fields, trailing data, and semantic failures wrap [ErrInvalidFilter]; the receiver may retain decoded state on error."},"source":{"file":"tmux/filter_generated.go","line":3471,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.UnmarshalJSON","product":"core","slug":"tmux-windowfilter-unmarshaljson"},{"id":"tmux.PaneFilter.UnmarshalJSON","name":"UnmarshalJSON","kind":"method","modifiers":[],"parent":"tmux.PaneFilter","signatures":[{"raw":"func (filter *PaneFilter) UnmarshalJSON(data []byte) error","params":[{"name":"data","type":"[]byte"}],"receiver":{"name":"filter","type":"*PaneFilter"},"returns":"error"}],"doc":{"summary":"UnmarshalJSON clears the receiver, strictly decodes a pane filter, then validates it. Unknown or duplicate fields, trailing data, and semantic failures wrap [ErrInvalidFilter]; the receiver may retain decoded state on error."},"source":{"file":"tmux/filter_generated.go","line":3504,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.UnmarshalJSON","product":"core","slug":"tmux-panefilter-unmarshaljson"},{"id":"tmux.ClientFilter.UnmarshalJSON","name":"UnmarshalJSON","kind":"method","modifiers":[],"parent":"tmux.ClientFilter","signatures":[{"raw":"func (filter *ClientFilter) UnmarshalJSON(data []byte) error","params":[{"name":"data","type":"[]byte"}],"receiver":{"name":"filter","type":"*ClientFilter"},"returns":"error"}],"doc":{"summary":"UnmarshalJSON clears the receiver, strictly decodes a client filter, then validates it. Unknown or duplicate fields, trailing data, and semantic failures wrap [ErrInvalidFilter]; the receiver may retain decoded state on error."},"source":{"file":"tmux/filter_generated.go","line":3549,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.UnmarshalJSON","product":"core","slug":"tmux-clientfilter-unmarshaljson"},{"id":"tmux.WindowRel.UnmarshalJSON","name":"UnmarshalJSON","kind":"method","modifiers":[],"parent":"tmux.WindowRel","signatures":[{"raw":"func (relation *WindowRel) UnmarshalJSON(data []byte) error","params":[{"name":"data","type":"[]byte"}],"receiver":{"name":"relation","type":"*WindowRel"},"returns":"error"}],"doc":{"summary":"UnmarshalJSON clears the receiver, strictly decodes a window relation, then validates it. Unknown or duplicate fields, trailing data, and semantic failures wrap [ErrInvalidFilter]; the receiver may retain decoded state on error."},"source":{"file":"tmux/filter_generated.go","line":3573,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowRel.UnmarshalJSON","product":"core","slug":"tmux-windowrel-unmarshaljson"},{"id":"tmux.PaneRel.UnmarshalJSON","name":"UnmarshalJSON","kind":"method","modifiers":[],"parent":"tmux.PaneRel","signatures":[{"raw":"func (relation *PaneRel) UnmarshalJSON(data []byte) error","params":[{"name":"data","type":"[]byte"}],"receiver":{"name":"relation","type":"*PaneRel"},"returns":"error"}],"doc":{"summary":"UnmarshalJSON clears the receiver, strictly decodes a pane relation, then validates it. Unknown or duplicate fields, trailing data, and semantic failures wrap [ErrInvalidFilter]; the receiver may retain decoded state on error."},"source":{"file":"tmux/filter_generated.go","line":3590,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneRel.UnmarshalJSON","product":"core","slug":"tmux-panerel-unmarshaljson"},{"id":"tmux.ErrMalformedFormatOutput","name":"ErrMalformedFormatOutput","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrMalformedFormatOutput identifies invalid escaped tmux format output. It is matched by errors.Is for [FormatDecodeError]."},"source":{"file":"tmux/format.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrMalformedFormatOutput","product":"core","slug":"tmux-errmalformedformatoutput"},{"id":"tmux.FormatDecodeError","name":"FormatDecodeError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"FormatDecodeError identifies a malformed escaped tmux format record. It matches [ErrMalformedFormatOutput] through errors.Is; callers can recover its location fields with errors.As. Library-created errors do not retain decoded record values, which may contain caller data."},"source":{"file":"tmux/format.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatDecodeError","product":"core","slug":"tmux-formatdecodeerror"},{"id":"tmux.FormatDecodeError.Record","name":"Record","kind":"attribute","modifiers":[],"parent":"tmux.FormatDecodeError","signatures":[],"type":"int","doc":{"summary":"Record is the one-based physical record number."},"source":{"file":"tmux/format.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatDecodeError.Record","product":"core","slug":"tmux-formatdecodeerror-record"},{"id":"tmux.FormatDecodeError.Field","name":"Field","kind":"attribute","modifiers":[],"parent":"tmux.FormatDecodeError","signatures":[],"type":"string","doc":{"summary":"Field names the format field that could not be decoded."},"source":{"file":"tmux/format.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatDecodeError.Field","product":"core","slug":"tmux-formatdecodeerror-field"},{"id":"tmux.FormatDecodeError.Offset","name":"Offset","kind":"attribute","modifiers":[],"parent":"tmux.FormatDecodeError","signatures":[],"type":"int","doc":{"summary":"Offset is the zero-based byte offset within Field's encoded value."},"source":{"file":"tmux/format.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatDecodeError.Offset","product":"core","slug":"tmux-formatdecodeerror-offset"},{"id":"tmux.FormatDecodeError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.FormatDecodeError","signatures":[],"type":"string","doc":{"summary":"Reason describes the malformed encoding."},"source":{"file":"tmux/format.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatDecodeError.Reason","product":"core","slug":"tmux-formatdecodeerror-reason"},{"id":"tmux.FormatDecodeError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.FormatDecodeError","signatures":[{"raw":"func (e *FormatDecodeError) Error() string","params":[],"receiver":{"name":"e","type":"*FormatDecodeError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/format.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatDecodeError.Error","product":"core","slug":"tmux-formatdecodeerror-error"},{"id":"tmux.FormatDecodeError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.FormatDecodeError","signatures":[{"raw":"func (e *FormatDecodeError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*FormatDecodeError"},"returns":"error"}],"doc":{"summary":"Unwrap makes FormatDecodeError compatible with ErrMalformedFormatOutput."},"source":{"file":"tmux/format.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatDecodeError.Unwrap","product":"core","slug":"tmux-formatdecodeerror-unwrap"},{"id":"tmux.FormatValues","name":"FormatValues","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"FormatValues is a read-only view of format expansions materialized with a Session, Window, Pane, or Client. Its methods do not query tmux. Projected cross-scope fields do not imply that the referenced record was materialized.","body":"Typed accessors return ok == false for an absent, empty, or malformed value;\n[FormatValues.Raw] distinguishes absent from present empty expansions. The\nzero value reports every field as absent."},"source":{"file":"tmux/format.go","line":97,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues","product":"core","slug":"tmux-formatvalues"},{"id":"tmux.FormatValues.Raw","name":"Raw","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) Raw(name string) (string, bool)","params":[{"name":"name","type":"string"}],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"Raw returns the exact materialized tmux format expansion for name. It never queries tmux; ok distinguishes an absent field from a present empty value."},"source":{"file":"tmux/format.go","line":226,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.Raw","product":"core","slug":"tmux-formatvalues-raw"},{"id":"tmux.Session.Formats","name":"Formats","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Formats() FormatValues","params":[],"receiver":{"name":"s","type":"Session"},"returns":"FormatValues"}],"doc":{"summary":"Formats returns this Session's read-only materialized tmux format values. It does not query tmux; use [Server.Snapshot] to obtain a fresh record."},"source":{"file":"tmux/format.go","line":232,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Formats","product":"core","slug":"tmux-session-formats"},{"id":"tmux.Window.Formats","name":"Formats","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Formats() FormatValues","params":[],"receiver":{"name":"w","type":"Window"},"returns":"FormatValues"}],"doc":{"summary":"Formats returns this Window's read-only materialized tmux format values. It does not query tmux; use [Server.Snapshot] to obtain a fresh record."},"source":{"file":"tmux/format.go","line":238,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Formats","product":"core","slug":"tmux-window-formats"},{"id":"tmux.Pane.Formats","name":"Formats","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Formats() FormatValues","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"FormatValues"}],"doc":{"summary":"Formats returns this Pane's read-only materialized tmux format values. It does not query tmux; use [Server.Snapshot] to obtain a fresh record."},"source":{"file":"tmux/format.go","line":244,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Formats","product":"core","slug":"tmux-pane-formats"},{"id":"tmux.Client.Formats","name":"Formats","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Formats() FormatValues","params":[],"receiver":{"name":"c","type":"Client"},"returns":"FormatValues"}],"doc":{"summary":"Formats returns this Client's read-only materialized tmux format values. It does not query tmux; use [Server.Snapshot] to obtain a fresh record."},"source":{"file":"tmux/format.go","line":250,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Formats","product":"core","slug":"tmux-client-formats"},{"id":"tmux.FormatValues.ActiveWindowIndex","name":"ActiveWindowIndex","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ActiveWindowIndex() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ActiveWindowIndex returns tmux #{active_window_index} as int from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":223,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ActiveWindowIndex","product":"core","slug":"tmux-formatvalues-activewindowindex"},{"id":"tmux.FormatValues.AlternateOn","name":"AlternateOn","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) AlternateOn() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"AlternateOn returns tmux #{alternate_on} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":226,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.AlternateOn","product":"core","slug":"tmux-formatvalues-alternateon"},{"id":"tmux.FormatValues.AlternateSavedX","name":"AlternateSavedX","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) AlternateSavedX() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"AlternateSavedX returns tmux #{alternate_saved_x} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":229,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.AlternateSavedX","product":"core","slug":"tmux-formatvalues-alternatesavedx"},{"id":"tmux.FormatValues.AlternateSavedY","name":"AlternateSavedY","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) AlternateSavedY() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"AlternateSavedY returns tmux #{alternate_saved_y} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":232,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.AlternateSavedY","product":"core","slug":"tmux-formatvalues-alternatesavedy"},{"id":"tmux.FormatValues.BracketPasteFlag","name":"BracketPasteFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) BracketPasteFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"BracketPasteFlag returns tmux #{bracket_paste_flag} as bool from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":235,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.BracketPasteFlag","product":"core","slug":"tmux-formatvalues-bracketpasteflag"},{"id":"tmux.FormatValues.BufferModeFormat","name":"BufferModeFormat","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) BufferModeFormat() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"BufferModeFormat returns tmux #{buffer_mode_format} as string from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":238,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.BufferModeFormat","product":"core","slug":"tmux-formatvalues-buffermodeformat"},{"id":"tmux.FormatValues.ClientActivity","name":"ClientActivity","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientActivity() (time.Time, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(time.Time, bool)"}],"doc":{"summary":"ClientActivity returns tmux #{client_activity} as time.Time from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":243,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientActivity","product":"core","slug":"tmux-formatvalues-clientactivity"},{"id":"tmux.FormatValues.ClientCellHeight","name":"ClientCellHeight","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientCellHeight() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ClientCellHeight returns tmux #{client_cell_height} as int from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":246,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientCellHeight","product":"core","slug":"tmux-formatvalues-clientcellheight"},{"id":"tmux.FormatValues.ClientCellWidth","name":"ClientCellWidth","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientCellWidth() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ClientCellWidth returns tmux #{client_cell_width} as int from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":249,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientCellWidth","product":"core","slug":"tmux-formatvalues-clientcellwidth"},{"id":"tmux.FormatValues.ClientControlMode","name":"ClientControlMode","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientControlMode() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"ClientControlMode returns tmux #{client_control_mode} as bool from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":252,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientControlMode","product":"core","slug":"tmux-formatvalues-clientcontrolmode"},{"id":"tmux.FormatValues.ClientCreated","name":"ClientCreated","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientCreated() (time.Time, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(time.Time, bool)"}],"doc":{"summary":"ClientCreated returns tmux #{client_created} as time.Time from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":257,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientCreated","product":"core","slug":"tmux-formatvalues-clientcreated"},{"id":"tmux.FormatValues.ClientDiscarded","name":"ClientDiscarded","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientDiscarded() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ClientDiscarded returns tmux #{client_discarded} as int from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":260,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientDiscarded","product":"core","slug":"tmux-formatvalues-clientdiscarded"},{"id":"tmux.FormatValues.ClientFlags","name":"ClientFlags","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientFlags() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientFlags returns tmux #{client_flags} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":263,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientFlags","product":"core","slug":"tmux-formatvalues-clientflags"},{"id":"tmux.FormatValues.ClientHeight","name":"ClientHeight","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientHeight() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ClientHeight returns tmux #{client_height} as int from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":266,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientHeight","product":"core","slug":"tmux-formatvalues-clientheight"},{"id":"tmux.FormatValues.ClientKeyTable","name":"ClientKeyTable","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientKeyTable() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientKeyTable returns tmux #{client_key_table} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":269,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientKeyTable","product":"core","slug":"tmux-formatvalues-clientkeytable"},{"id":"tmux.FormatValues.ClientLastSession","name":"ClientLastSession","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientLastSession() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientLastSession returns tmux #{client_last_session} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":272,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientLastSession","product":"core","slug":"tmux-formatvalues-clientlastsession"},{"id":"tmux.FormatValues.ClientModeFormat","name":"ClientModeFormat","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientModeFormat() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientModeFormat returns tmux #{client_mode_format} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":277,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientModeFormat","product":"core","slug":"tmux-formatvalues-clientmodeformat"},{"id":"tmux.FormatValues.ClientName","name":"ClientName","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientName() (ClientName, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(ClientName, bool)"}],"doc":{"summary":"ClientName returns tmux #{client_name} as ClientName from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":282,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientName","product":"core","slug":"tmux-formatvalues-clientname"},{"id":"tmux.FormatValues.ClientPID","name":"ClientPID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientPID() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ClientPID returns tmux #{client_pid} as int from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":285,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientPID","product":"core","slug":"tmux-formatvalues-clientpid"},{"id":"tmux.FormatValues.ClientPrefix","name":"ClientPrefix","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientPrefix() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"ClientPrefix returns tmux #{client_prefix} as bool from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":288,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientPrefix","product":"core","slug":"tmux-formatvalues-clientprefix"},{"id":"tmux.FormatValues.ClientReadOnly","name":"ClientReadOnly","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientReadOnly() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"ClientReadOnly returns tmux #{client_readonly} as bool from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":291,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientReadOnly","product":"core","slug":"tmux-formatvalues-clientreadonly"},{"id":"tmux.FormatValues.ClientSession","name":"ClientSession","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientSession() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientSession returns tmux #{client_session} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":294,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientSession","product":"core","slug":"tmux-formatvalues-clientsession"},{"id":"tmux.FormatValues.ClientTermFeatures","name":"ClientTermFeatures","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientTermFeatures() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientTermFeatures returns tmux #{client_termfeatures} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":297,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientTermFeatures","product":"core","slug":"tmux-formatvalues-clienttermfeatures"},{"id":"tmux.FormatValues.ClientTermName","name":"ClientTermName","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientTermName() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientTermName returns tmux #{client_termname} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":302,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientTermName","product":"core","slug":"tmux-formatvalues-clienttermname"},{"id":"tmux.FormatValues.ClientTermType","name":"ClientTermType","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientTermType() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientTermType returns tmux #{client_termtype} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":305,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientTermType","product":"core","slug":"tmux-formatvalues-clienttermtype"},{"id":"tmux.FormatValues.ClientTTY","name":"ClientTTY","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientTTY() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientTTY returns tmux #{client_tty} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":308,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientTTY","product":"core","slug":"tmux-formatvalues-clienttty"},{"id":"tmux.FormatValues.ClientUID","name":"ClientUID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientUID() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ClientUID returns tmux #{client_uid} as int from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":311,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientUID","product":"core","slug":"tmux-formatvalues-clientuid"},{"id":"tmux.FormatValues.ClientUser","name":"ClientUser","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientUser() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientUser returns tmux #{client_user} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":314,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientUser","product":"core","slug":"tmux-formatvalues-clientuser"},{"id":"tmux.FormatValues.ClientUTF8","name":"ClientUTF8","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientUTF8() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"ClientUTF8 returns tmux #{client_utf8} as bool from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":317,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientUTF8","product":"core","slug":"tmux-formatvalues-clientutf8"},{"id":"tmux.FormatValues.ClientWidth","name":"ClientWidth","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientWidth() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ClientWidth returns tmux #{client_width} as int from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":320,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientWidth","product":"core","slug":"tmux-formatvalues-clientwidth"},{"id":"tmux.FormatValues.ClientWritten","name":"ClientWritten","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientWritten() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ClientWritten returns tmux #{client_written} as int from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":323,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientWritten","product":"core","slug":"tmux-formatvalues-clientwritten"},{"id":"tmux.FormatValues.ConfigFiles","name":"ConfigFiles","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ConfigFiles() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ConfigFiles returns tmux #{config_files} as string from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":326,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ConfigFiles","product":"core","slug":"tmux-formatvalues-configfiles"},{"id":"tmux.FormatValues.CursorBlinking","name":"CursorBlinking","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) CursorBlinking() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"CursorBlinking returns tmux #{cursor_blinking} as bool from materialized pane-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":329,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.CursorBlinking","product":"core","slug":"tmux-formatvalues-cursorblinking"},{"id":"tmux.FormatValues.CursorCharacter","name":"CursorCharacter","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) CursorCharacter() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"CursorCharacter returns tmux #{cursor_character} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":332,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.CursorCharacter","product":"core","slug":"tmux-formatvalues-cursorcharacter"},{"id":"tmux.FormatValues.CursorColour","name":"CursorColour","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) CursorColour() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"CursorColour returns tmux #{cursor_colour} as string from materialized pane-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":335,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.CursorColour","product":"core","slug":"tmux-formatvalues-cursorcolour"},{"id":"tmux.FormatValues.CursorFlag","name":"CursorFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) CursorFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"CursorFlag returns tmux #{cursor_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":338,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.CursorFlag","product":"core","slug":"tmux-formatvalues-cursorflag"},{"id":"tmux.FormatValues.CursorShape","name":"CursorShape","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) CursorShape() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"CursorShape returns tmux #{cursor_shape} as string from materialized pane-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":341,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.CursorShape","product":"core","slug":"tmux-formatvalues-cursorshape"},{"id":"tmux.FormatValues.CursorVeryVisible","name":"CursorVeryVisible","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) CursorVeryVisible() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"CursorVeryVisible returns tmux #{cursor_very_visible} as bool from materialized pane-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":344,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.CursorVeryVisible","product":"core","slug":"tmux-formatvalues-cursorveryvisible"},{"id":"tmux.FormatValues.CursorX","name":"CursorX","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) CursorX() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"CursorX returns tmux #{cursor_x} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":349,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.CursorX","product":"core","slug":"tmux-formatvalues-cursorx"},{"id":"tmux.FormatValues.CursorY","name":"CursorY","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) CursorY() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"CursorY returns tmux #{cursor_y} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":352,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.CursorY","product":"core","slug":"tmux-formatvalues-cursory"},{"id":"tmux.FormatValues.HistoryAdded","name":"HistoryAdded","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) HistoryAdded() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryAdded returns tmux #{history_added} as int from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":355,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.HistoryAdded","product":"core","slug":"tmux-formatvalues-historyadded"},{"id":"tmux.FormatValues.HistoryAllBytes","name":"HistoryAllBytes","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) HistoryAllBytes() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"HistoryAllBytes returns tmux #{history_all_bytes} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":358,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.HistoryAllBytes","product":"core","slug":"tmux-formatvalues-historyallbytes"},{"id":"tmux.FormatValues.HistoryBytes","name":"HistoryBytes","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) HistoryBytes() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryBytes returns tmux #{history_bytes} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":363,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.HistoryBytes","product":"core","slug":"tmux-formatvalues-historybytes"},{"id":"tmux.FormatValues.HistoryCollected","name":"HistoryCollected","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) HistoryCollected() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryCollected returns tmux #{history_collected} as int from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":366,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.HistoryCollected","product":"core","slug":"tmux-formatvalues-historycollected"},{"id":"tmux.FormatValues.HistoryGeneration","name":"HistoryGeneration","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) HistoryGeneration() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryGeneration returns tmux #{history_generation} as int from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":369,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.HistoryGeneration","product":"core","slug":"tmux-formatvalues-historygeneration"},{"id":"tmux.FormatValues.HistoryLimit","name":"HistoryLimit","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) HistoryLimit() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryLimit returns tmux #{history_limit} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":372,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.HistoryLimit","product":"core","slug":"tmux-formatvalues-historylimit"},{"id":"tmux.FormatValues.HistorySize","name":"HistorySize","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) HistorySize() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"HistorySize returns tmux #{history_size} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":375,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.HistorySize","product":"core","slug":"tmux-formatvalues-historysize"},{"id":"tmux.FormatValues.Host","name":"Host","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) Host() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"Host returns tmux #{host} as string from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":378,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.Host","product":"core","slug":"tmux-formatvalues-host"},{"id":"tmux.FormatValues.HostShort","name":"HostShort","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) HostShort() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"HostShort returns tmux #{host_short} as string from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":381,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.HostShort","product":"core","slug":"tmux-formatvalues-hostshort"},{"id":"tmux.FormatValues.InsertFlag","name":"InsertFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) InsertFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"InsertFlag returns tmux #{insert_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":384,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.InsertFlag","product":"core","slug":"tmux-formatvalues-insertflag"},{"id":"tmux.FormatValues.KeypadCursorFlag","name":"KeypadCursorFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) KeypadCursorFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"KeypadCursorFlag returns tmux #{keypad_cursor_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":387,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.KeypadCursorFlag","product":"core","slug":"tmux-formatvalues-keypadcursorflag"},{"id":"tmux.FormatValues.KeypadFlag","name":"KeypadFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) KeypadFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"KeypadFlag returns tmux #{keypad_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":390,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.KeypadFlag","product":"core","slug":"tmux-formatvalues-keypadflag"},{"id":"tmux.FormatValues.LastWindowIndex","name":"LastWindowIndex","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) LastWindowIndex() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"LastWindowIndex returns tmux #{last_window_index} as int from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":393,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.LastWindowIndex","product":"core","slug":"tmux-formatvalues-lastwindowindex"},{"id":"tmux.FormatValues.Line","name":"Line","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) Line() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"Line returns tmux #{line} as int from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":396,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.Line","product":"core","slug":"tmux-formatvalues-line"},{"id":"tmux.FormatValues.MouseAllFlag","name":"MouseAllFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) MouseAllFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseAllFlag returns tmux #{mouse_all_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":399,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.MouseAllFlag","product":"core","slug":"tmux-formatvalues-mouseallflag"},{"id":"tmux.FormatValues.MouseAnyFlag","name":"MouseAnyFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) MouseAnyFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseAnyFlag returns tmux #{mouse_any_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":402,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.MouseAnyFlag","product":"core","slug":"tmux-formatvalues-mouseanyflag"},{"id":"tmux.FormatValues.MouseButtonFlag","name":"MouseButtonFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) MouseButtonFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseButtonFlag returns tmux #{mouse_button_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":405,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.MouseButtonFlag","product":"core","slug":"tmux-formatvalues-mousebuttonflag"},{"id":"tmux.FormatValues.MouseSGRFlag","name":"MouseSGRFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) MouseSGRFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseSGRFlag returns tmux #{mouse_sgr_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":408,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.MouseSGRFlag","product":"core","slug":"tmux-formatvalues-mousesgrflag"},{"id":"tmux.FormatValues.MouseStandardFlag","name":"MouseStandardFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) MouseStandardFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseStandardFlag returns tmux #{mouse_standard_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":411,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.MouseStandardFlag","product":"core","slug":"tmux-formatvalues-mousestandardflag"},{"id":"tmux.FormatValues.MouseUTF8Flag","name":"MouseUTF8Flag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) MouseUTF8Flag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseUTF8Flag returns tmux #{mouse_utf8_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":416,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.MouseUTF8Flag","product":"core","slug":"tmux-formatvalues-mouseutf8flag"},{"id":"tmux.FormatValues.NextSessionID","name":"NextSessionID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) NextSessionID() (SessionID, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(SessionID, bool)"}],"doc":{"summary":"NextSessionID returns tmux #{next_session_id} as SessionID from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":419,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.NextSessionID","product":"core","slug":"tmux-formatvalues-nextsessionid"},{"id":"tmux.FormatValues.OriginFlag","name":"OriginFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) OriginFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"OriginFlag returns tmux #{origin_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":424,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.OriginFlag","product":"core","slug":"tmux-formatvalues-originflag"},{"id":"tmux.FormatValues.PaneActive","name":"PaneActive","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneActive() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneActive returns tmux #{pane_active} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":427,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneActive","product":"core","slug":"tmux-formatvalues-paneactive"},{"id":"tmux.FormatValues.PaneAtBottom","name":"PaneAtBottom","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneAtBottom() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneAtBottom returns tmux #{pane_at_bottom} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":430,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneAtBottom","product":"core","slug":"tmux-formatvalues-paneatbottom"},{"id":"tmux.FormatValues.PaneAtLeft","name":"PaneAtLeft","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneAtLeft() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneAtLeft returns tmux #{pane_at_left} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":433,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneAtLeft","product":"core","slug":"tmux-formatvalues-paneatleft"},{"id":"tmux.FormatValues.PaneAtRight","name":"PaneAtRight","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneAtRight() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneAtRight returns tmux #{pane_at_right} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":436,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneAtRight","product":"core","slug":"tmux-formatvalues-paneatright"},{"id":"tmux.FormatValues.PaneAtTop","name":"PaneAtTop","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneAtTop() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneAtTop returns tmux #{pane_at_top} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":439,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneAtTop","product":"core","slug":"tmux-formatvalues-paneattop"},{"id":"tmux.FormatValues.PaneBG","name":"PaneBG","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneBG() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneBG returns tmux #{pane_bg} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":442,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneBG","product":"core","slug":"tmux-formatvalues-panebg"},{"id":"tmux.FormatValues.PaneBottom","name":"PaneBottom","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneBottom() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneBottom returns tmux #{pane_bottom} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":445,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneBottom","product":"core","slug":"tmux-formatvalues-panebottom"},{"id":"tmux.FormatValues.PaneCommandRunning","name":"PaneCommandRunning","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneCommandRunning() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneCommandRunning returns tmux #{pane_command_running} as bool from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":448,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneCommandRunning","product":"core","slug":"tmux-formatvalues-panecommandrunning"},{"id":"tmux.FormatValues.PaneCurrentCommand","name":"PaneCurrentCommand","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneCurrentCommand() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneCurrentCommand returns tmux #{pane_current_command} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":453,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneCurrentCommand","product":"core","slug":"tmux-formatvalues-panecurrentcommand"},{"id":"tmux.FormatValues.PaneCurrentPath","name":"PaneCurrentPath","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneCurrentPath() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneCurrentPath returns tmux #{pane_current_path} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":458,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneCurrentPath","product":"core","slug":"tmux-formatvalues-panecurrentpath"},{"id":"tmux.FormatValues.PaneDead","name":"PaneDead","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneDead() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneDead returns tmux #{pane_dead} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":463,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneDead","product":"core","slug":"tmux-formatvalues-panedead"},{"id":"tmux.FormatValues.PaneDeadSignal","name":"PaneDeadSignal","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneDeadSignal() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneDeadSignal returns tmux #{pane_dead_signal} as string from materialized pane-scoped fields (tmux 3.3 or later)."},"source":{"file":"tmux/format_generated.go","line":466,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneDeadSignal","product":"core","slug":"tmux-formatvalues-panedeadsignal"},{"id":"tmux.FormatValues.PaneDeadStatus","name":"PaneDeadStatus","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneDeadStatus() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneDeadStatus returns tmux #{pane_dead_status} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":469,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneDeadStatus","product":"core","slug":"tmux-formatvalues-panedeadstatus"},{"id":"tmux.FormatValues.PaneDeadTime","name":"PaneDeadTime","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneDeadTime() (time.Time, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(time.Time, bool)"}],"doc":{"summary":"PaneDeadTime returns tmux #{pane_dead_time} as time.Time from materialized pane-scoped fields (tmux 3.3 or later)."},"source":{"file":"tmux/format_generated.go","line":472,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneDeadTime","product":"core","slug":"tmux-formatvalues-panedeadtime"},{"id":"tmux.FormatValues.PaneFG","name":"PaneFG","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneFG() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneFG returns tmux #{pane_fg} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":475,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneFG","product":"core","slug":"tmux-formatvalues-panefg"},{"id":"tmux.FormatValues.PaneFlags","name":"PaneFlags","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneFlags() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneFlags returns tmux #{pane_flags} as string from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":478,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneFlags","product":"core","slug":"tmux-formatvalues-paneflags"},{"id":"tmux.FormatValues.PaneFloatingFlag","name":"PaneFloatingFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneFloatingFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneFloatingFlag returns tmux #{pane_floating_flag} as bool from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":481,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneFloatingFlag","product":"core","slug":"tmux-formatvalues-panefloatingflag"},{"id":"tmux.FormatValues.PaneFormat","name":"PaneFormat","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneFormat() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneFormat returns tmux #{pane_format} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":484,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneFormat","product":"core","slug":"tmux-formatvalues-paneformat"},{"id":"tmux.FormatValues.PaneHeight","name":"PaneHeight","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneHeight() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneHeight returns tmux #{pane_height} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":487,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneHeight","product":"core","slug":"tmux-formatvalues-paneheight"},{"id":"tmux.FormatValues.PaneID","name":"PaneID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneID() (PaneID, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(PaneID, bool)"}],"doc":{"summary":"PaneID returns tmux #{pane_id} as PaneID from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":490,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneID","product":"core","slug":"tmux-formatvalues-paneid"},{"id":"tmux.FormatValues.PaneInMode","name":"PaneInMode","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneInMode() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneInMode returns tmux #{pane_in_mode} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":493,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneInMode","product":"core","slug":"tmux-formatvalues-paneinmode"},{"id":"tmux.FormatValues.PaneIndex","name":"PaneIndex","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneIndex() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneIndex returns tmux #{pane_index} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":496,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneIndex","product":"core","slug":"tmux-formatvalues-paneindex"},{"id":"tmux.FormatValues.PaneInputOff","name":"PaneInputOff","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneInputOff() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneInputOff returns tmux #{pane_input_off} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":499,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneInputOff","product":"core","slug":"tmux-formatvalues-paneinputoff"},{"id":"tmux.FormatValues.PaneKeyMode","name":"PaneKeyMode","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneKeyMode() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneKeyMode returns tmux #{pane_key_mode} as string from materialized pane-scoped fields (tmux 3.5 or later)."},"source":{"file":"tmux/format_generated.go","line":502,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneKeyMode","product":"core","slug":"tmux-formatvalues-panekeymode"},{"id":"tmux.FormatValues.PaneLast","name":"PaneLast","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneLast() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneLast returns tmux #{pane_last} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":505,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneLast","product":"core","slug":"tmux-formatvalues-panelast"},{"id":"tmux.FormatValues.PaneLeft","name":"PaneLeft","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneLeft() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneLeft returns tmux #{pane_left} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":508,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneLeft","product":"core","slug":"tmux-formatvalues-paneleft"},{"id":"tmux.FormatValues.PaneMarked","name":"PaneMarked","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneMarked() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneMarked returns tmux #{pane_marked} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":511,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneMarked","product":"core","slug":"tmux-formatvalues-panemarked"},{"id":"tmux.FormatValues.PaneMarkedSet","name":"PaneMarkedSet","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneMarkedSet() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneMarkedSet returns tmux #{pane_marked_set} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":514,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneMarkedSet","product":"core","slug":"tmux-formatvalues-panemarkedset"},{"id":"tmux.FormatValues.PaneModalFlag","name":"PaneModalFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneModalFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneModalFlag returns tmux #{pane_modal_flag} as bool from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":517,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneModalFlag","product":"core","slug":"tmux-formatvalues-panemodalflag"},{"id":"tmux.FormatValues.PaneMode","name":"PaneMode","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneMode() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneMode returns tmux #{pane_mode} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":520,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneMode","product":"core","slug":"tmux-formatvalues-panemode"},{"id":"tmux.FormatValues.PaneOutputGeneration","name":"PaneOutputGeneration","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneOutputGeneration() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneOutputGeneration returns tmux #{pane_output_generation} as int from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":523,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneOutputGeneration","product":"core","slug":"tmux-formatvalues-paneoutputgeneration"},{"id":"tmux.FormatValues.PanePath","name":"PanePath","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PanePath() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PanePath returns tmux #{pane_path} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":528,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PanePath","product":"core","slug":"tmux-formatvalues-panepath"},{"id":"tmux.FormatValues.PanePBProgress","name":"PanePBProgress","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PanePBProgress() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PanePBProgress returns tmux #{pane_pb_progress} as int from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":531,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PanePBProgress","product":"core","slug":"tmux-formatvalues-panepbprogress"},{"id":"tmux.FormatValues.PanePBState","name":"PanePBState","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PanePBState() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PanePBState returns tmux #{pane_pb_state} as string from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":534,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PanePBState","product":"core","slug":"tmux-formatvalues-panepbstate"},{"id":"tmux.FormatValues.PanePID","name":"PanePID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PanePID() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PanePID returns tmux #{pane_pid} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":537,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PanePID","product":"core","slug":"tmux-formatvalues-panepid"},{"id":"tmux.FormatValues.PanePipe","name":"PanePipe","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PanePipe() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PanePipe returns tmux #{pane_pipe} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":540,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PanePipe","product":"core","slug":"tmux-formatvalues-panepipe"},{"id":"tmux.FormatValues.PanePipePID","name":"PanePipePID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PanePipePID() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PanePipePID returns tmux #{pane_pipe_pid} as int from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":543,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PanePipePID","product":"core","slug":"tmux-formatvalues-panepipepid"},{"id":"tmux.FormatValues.PanePrivateModes","name":"PanePrivateModes","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PanePrivateModes() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PanePrivateModes returns tmux #{pane_private_modes} as string from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":546,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PanePrivateModes","product":"core","slug":"tmux-formatvalues-paneprivatemodes"},{"id":"tmux.FormatValues.PaneRight","name":"PaneRight","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneRight() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneRight returns tmux #{pane_right} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":551,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneRight","product":"core","slug":"tmux-formatvalues-paneright"},{"id":"tmux.FormatValues.PaneSearchString","name":"PaneSearchString","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneSearchString() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneSearchString returns tmux #{pane_search_string} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":554,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneSearchString","product":"core","slug":"tmux-formatvalues-panesearchstring"},{"id":"tmux.FormatValues.PaneStartCommand","name":"PaneStartCommand","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneStartCommand() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneStartCommand returns tmux #{pane_start_command} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":559,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneStartCommand","product":"core","slug":"tmux-formatvalues-panestartcommand"},{"id":"tmux.FormatValues.PaneStartCommandList","name":"PaneStartCommandList","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneStartCommandList() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneStartCommandList returns tmux #{pane_start_command_list} as string from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":564,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneStartCommandList","product":"core","slug":"tmux-formatvalues-panestartcommandlist"},{"id":"tmux.FormatValues.PaneStartPath","name":"PaneStartPath","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneStartPath() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneStartPath returns tmux #{pane_start_path} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":569,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneStartPath","product":"core","slug":"tmux-formatvalues-panestartpath"},{"id":"tmux.FormatValues.PaneSynchronized","name":"PaneSynchronized","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneSynchronized() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneSynchronized returns tmux #{pane_synchronized} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":572,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneSynchronized","product":"core","slug":"tmux-formatvalues-panesynchronized"},{"id":"tmux.FormatValues.PaneTabs","name":"PaneTabs","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneTabs() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneTabs returns tmux #{pane_tabs} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":575,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneTabs","product":"core","slug":"tmux-formatvalues-panetabs"},{"id":"tmux.FormatValues.PaneTitle","name":"PaneTitle","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneTitle() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneTitle returns tmux #{pane_title} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":578,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneTitle","product":"core","slug":"tmux-formatvalues-panetitle"},{"id":"tmux.FormatValues.PaneTop","name":"PaneTop","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneTop() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneTop returns tmux #{pane_top} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":581,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneTop","product":"core","slug":"tmux-formatvalues-panetop"},{"id":"tmux.FormatValues.PaneTTY","name":"PaneTTY","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneTTY() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneTTY returns tmux #{pane_tty} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":584,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneTTY","product":"core","slug":"tmux-formatvalues-panetty"},{"id":"tmux.FormatValues.PaneUnseenChanges","name":"PaneUnseenChanges","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneUnseenChanges() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneUnseenChanges returns tmux #{pane_unseen_changes} as bool from materialized pane-scoped fields (tmux 3.4 or later)."},"source":{"file":"tmux/format_generated.go","line":587,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneUnseenChanges","product":"core","slug":"tmux-formatvalues-paneunseenchanges"},{"id":"tmux.FormatValues.PaneUnzoomedHeight","name":"PaneUnzoomedHeight","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneUnzoomedHeight() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneUnzoomedHeight returns tmux #{pane_unzoomed_height} as int from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":592,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneUnzoomedHeight","product":"core","slug":"tmux-formatvalues-paneunzoomedheight"},{"id":"tmux.FormatValues.PaneUnzoomedWidth","name":"PaneUnzoomedWidth","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneUnzoomedWidth() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneUnzoomedWidth returns tmux #{pane_unzoomed_width} as int from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":597,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneUnzoomedWidth","product":"core","slug":"tmux-formatvalues-paneunzoomedwidth"},{"id":"tmux.FormatValues.PaneWidth","name":"PaneWidth","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneWidth() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneWidth returns tmux #{pane_width} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":600,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneWidth","product":"core","slug":"tmux-formatvalues-panewidth"},{"id":"tmux.FormatValues.PaneX","name":"PaneX","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneX() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneX returns tmux #{pane_x} as int from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":603,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneX","product":"core","slug":"tmux-formatvalues-panex"},{"id":"tmux.FormatValues.PaneY","name":"PaneY","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneY() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneY returns tmux #{pane_y} as int from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":606,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneY","product":"core","slug":"tmux-formatvalues-paney"},{"id":"tmux.FormatValues.PaneZ","name":"PaneZ","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneZ() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneZ returns tmux #{pane_z} as int from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":609,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneZ","product":"core","slug":"tmux-formatvalues-panez"},{"id":"tmux.FormatValues.PaneZoomedFlag","name":"PaneZoomedFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneZoomedFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneZoomedFlag returns tmux #{pane_zoomed_flag} as bool from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":612,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneZoomedFlag","product":"core","slug":"tmux-formatvalues-panezoomedflag"},{"id":"tmux.FormatValues.PID","name":"PID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PID() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PID returns tmux #{pid} as int from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":615,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PID","product":"core","slug":"tmux-formatvalues-pid"},{"id":"tmux.FormatValues.ScrollRegionLower","name":"ScrollRegionLower","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ScrollRegionLower() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ScrollRegionLower returns tmux #{scroll_region_lower} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":618,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ScrollRegionLower","product":"core","slug":"tmux-formatvalues-scrollregionlower"},{"id":"tmux.FormatValues.ScrollRegionUpper","name":"ScrollRegionUpper","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ScrollRegionUpper() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ScrollRegionUpper returns tmux #{scroll_region_upper} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":621,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ScrollRegionUpper","product":"core","slug":"tmux-formatvalues-scrollregionupper"},{"id":"tmux.FormatValues.ServerSessions","name":"ServerSessions","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ServerSessions() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ServerSessions returns tmux #{server_sessions} as int from materialized universal-scoped fields (tmux 3.4 or later)."},"source":{"file":"tmux/format_generated.go","line":624,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ServerSessions","product":"core","slug":"tmux-formatvalues-serversessions"},{"id":"tmux.FormatValues.SessionActive","name":"SessionActive","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionActive() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SessionActive returns tmux #{session_active} as bool from materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":627,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionActive","product":"core","slug":"tmux-formatvalues-sessionactive"},{"id":"tmux.FormatValues.SessionActivity","name":"SessionActivity","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionActivity() (time.Time, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(time.Time, bool)"}],"doc":{"summary":"SessionActivity returns tmux #{session_activity} as time.Time from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":630,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionActivity","product":"core","slug":"tmux-formatvalues-sessionactivity"},{"id":"tmux.FormatValues.SessionActivityFlag","name":"SessionActivityFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionActivityFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SessionActivityFlag returns tmux #{session_activity_flag} as bool from materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":635,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionActivityFlag","product":"core","slug":"tmux-formatvalues-sessionactivityflag"},{"id":"tmux.FormatValues.SessionAlert","name":"SessionAlert","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionAlert() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SessionAlert returns tmux #{session_alert} as string from materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":640,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionAlert","product":"core","slug":"tmux-formatvalues-sessionalert"},{"id":"tmux.FormatValues.SessionAlerts","name":"SessionAlerts","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionAlerts() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SessionAlerts returns tmux #{session_alerts} as string from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":643,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionAlerts","product":"core","slug":"tmux-formatvalues-sessionalerts"},{"id":"tmux.FormatValues.SessionAttached","name":"SessionAttached","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionAttached() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"SessionAttached returns tmux #{session_attached} as int from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":646,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionAttached","product":"core","slug":"tmux-formatvalues-sessionattached"},{"id":"tmux.FormatValues.SessionAttachedList","name":"SessionAttachedList","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionAttachedList() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SessionAttachedList returns tmux #{session_attached_list} as string from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":649,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionAttachedList","product":"core","slug":"tmux-formatvalues-sessionattachedlist"},{"id":"tmux.FormatValues.SessionBellFlag","name":"SessionBellFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionBellFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SessionBellFlag returns tmux #{session_bell_flag} as bool from materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":654,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionBellFlag","product":"core","slug":"tmux-formatvalues-sessionbellflag"},{"id":"tmux.FormatValues.SessionCreated","name":"SessionCreated","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionCreated() (time.Time, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(time.Time, bool)"}],"doc":{"summary":"SessionCreated returns tmux #{session_created} as time.Time from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":657,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionCreated","product":"core","slug":"tmux-formatvalues-sessioncreated"},{"id":"tmux.FormatValues.SessionFormat","name":"SessionFormat","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionFormat() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SessionFormat returns tmux #{session_format} as bool from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":660,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionFormat","product":"core","slug":"tmux-formatvalues-sessionformat"},{"id":"tmux.FormatValues.SessionGroup","name":"SessionGroup","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionGroup() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SessionGroup returns tmux #{session_group} as string from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":663,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionGroup","product":"core","slug":"tmux-formatvalues-sessiongroup"},{"id":"tmux.FormatValues.SessionGroupAttached","name":"SessionGroupAttached","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionGroupAttached() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"SessionGroupAttached returns tmux #{session_group_attached} as int from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":666,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionGroupAttached","product":"core","slug":"tmux-formatvalues-sessiongroupattached"},{"id":"tmux.FormatValues.SessionGroupAttachedList","name":"SessionGroupAttachedList","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionGroupAttachedList() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SessionGroupAttachedList returns tmux #{session_group_attached_list} as string from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":671,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionGroupAttachedList","product":"core","slug":"tmux-formatvalues-sessiongroupattachedlist"},{"id":"tmux.FormatValues.SessionGroupList","name":"SessionGroupList","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionGroupList() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SessionGroupList returns tmux #{session_group_list} as string from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":676,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionGroupList","product":"core","slug":"tmux-formatvalues-sessiongrouplist"},{"id":"tmux.FormatValues.SessionGroupManyAttached","name":"SessionGroupManyAttached","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionGroupManyAttached() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SessionGroupManyAttached returns tmux #{session_group_many_attached} as bool from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":681,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionGroupManyAttached","product":"core","slug":"tmux-formatvalues-sessiongroupmanyattached"},{"id":"tmux.FormatValues.SessionGroupSize","name":"SessionGroupSize","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionGroupSize() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"SessionGroupSize returns tmux #{session_group_size} as int from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":686,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionGroupSize","product":"core","slug":"tmux-formatvalues-sessiongroupsize"},{"id":"tmux.FormatValues.SessionGrouped","name":"SessionGrouped","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionGrouped() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SessionGrouped returns tmux #{session_grouped} as bool from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":689,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionGrouped","product":"core","slug":"tmux-formatvalues-sessiongrouped"},{"id":"tmux.FormatValues.SessionID","name":"SessionID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionID() (SessionID, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(SessionID, bool)"}],"doc":{"summary":"SessionID returns tmux #{session_id} as SessionID from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":692,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionID","product":"core","slug":"tmux-formatvalues-sessionid"},{"id":"tmux.FormatValues.SessionLastAttached","name":"SessionLastAttached","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionLastAttached() (time.Time, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(time.Time, bool)"}],"doc":{"summary":"SessionLastAttached returns tmux #{session_last_attached} as time.Time from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":695,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionLastAttached","product":"core","slug":"tmux-formatvalues-sessionlastattached"},{"id":"tmux.FormatValues.SessionManyAttached","name":"SessionManyAttached","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionManyAttached() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SessionManyAttached returns tmux #{session_many_attached} as bool from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":700,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionManyAttached","product":"core","slug":"tmux-formatvalues-sessionmanyattached"},{"id":"tmux.FormatValues.SessionMarked","name":"SessionMarked","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionMarked() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SessionMarked returns tmux #{session_marked} as bool from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":705,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionMarked","product":"core","slug":"tmux-formatvalues-sessionmarked"},{"id":"tmux.FormatValues.SessionName","name":"SessionName","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionName() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SessionName returns tmux #{session_name} as string from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":708,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionName","product":"core","slug":"tmux-formatvalues-sessionname"},{"id":"tmux.FormatValues.SessionPath","name":"SessionPath","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionPath() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SessionPath returns tmux #{session_path} as string from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":711,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionPath","product":"core","slug":"tmux-formatvalues-sessionpath"},{"id":"tmux.FormatValues.SessionSilenceFlag","name":"SessionSilenceFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionSilenceFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SessionSilenceFlag returns tmux #{session_silence_flag} as bool from materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":714,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionSilenceFlag","product":"core","slug":"tmux-formatvalues-sessionsilenceflag"},{"id":"tmux.FormatValues.SessionStack","name":"SessionStack","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionStack() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SessionStack returns tmux #{session_stack} as string from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":719,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionStack","product":"core","slug":"tmux-formatvalues-sessionstack"},{"id":"tmux.FormatValues.SessionWindows","name":"SessionWindows","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionWindows() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"SessionWindows returns tmux #{session_windows} as int from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":722,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionWindows","product":"core","slug":"tmux-formatvalues-sessionwindows"},{"id":"tmux.FormatValues.SixelSupport","name":"SixelSupport","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SixelSupport() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SixelSupport returns tmux #{sixel_support} as bool from materialized universal-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":725,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SixelSupport","product":"core","slug":"tmux-formatvalues-sixelsupport"},{"id":"tmux.FormatValues.SocketPath","name":"SocketPath","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SocketPath() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SocketPath returns tmux #{socket_path} as string from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":728,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SocketPath","product":"core","slug":"tmux-formatvalues-socketpath"},{"id":"tmux.FormatValues.StartTime","name":"StartTime","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) StartTime() (time.Time, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(time.Time, bool)"}],"doc":{"summary":"StartTime returns tmux #{start_time} as time.Time from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":731,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.StartTime","product":"core","slug":"tmux-formatvalues-starttime"},{"id":"tmux.FormatValues.SynchronizedOutputFlag","name":"SynchronizedOutputFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SynchronizedOutputFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SynchronizedOutputFlag returns tmux #{synchronized_output_flag} as bool from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":734,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SynchronizedOutputFlag","product":"core","slug":"tmux-formatvalues-synchronizedoutputflag"},{"id":"tmux.FormatValues.TreeModeFormat","name":"TreeModeFormat","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) TreeModeFormat() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"TreeModeFormat returns tmux #{tree_mode_format} as string from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":739,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.TreeModeFormat","product":"core","slug":"tmux-formatvalues-treemodeformat"},{"id":"tmux.FormatValues.UID","name":"UID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) UID() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"UID returns tmux #{uid} as int from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":742,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.UID","product":"core","slug":"tmux-formatvalues-uid"},{"id":"tmux.FormatValues.User","name":"User","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) User() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"User returns tmux #{user} as string from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":745,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.User","product":"core","slug":"tmux-formatvalues-user"},{"id":"tmux.FormatValues.Version","name":"Version","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) Version() (Version, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(Version, bool)"}],"doc":{"summary":"Version returns tmux #{version} as Version from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":748,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.Version","product":"core","slug":"tmux-formatvalues-version"},{"id":"tmux.FormatValues.WindowActive","name":"WindowActive","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowActive() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowActive returns tmux #{window_active} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":751,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowActive","product":"core","slug":"tmux-formatvalues-windowactive"},{"id":"tmux.FormatValues.WindowActiveClients","name":"WindowActiveClients","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowActiveClients() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowActiveClients returns tmux #{window_active_clients} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":754,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowActiveClients","product":"core","slug":"tmux-formatvalues-windowactiveclients"},{"id":"tmux.FormatValues.WindowActiveClientsList","name":"WindowActiveClientsList","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowActiveClientsList() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"WindowActiveClientsList returns tmux #{window_active_clients_list} as string from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":759,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowActiveClientsList","product":"core","slug":"tmux-formatvalues-windowactiveclientslist"},{"id":"tmux.FormatValues.WindowActiveSessions","name":"WindowActiveSessions","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowActiveSessions() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowActiveSessions returns tmux #{window_active_sessions} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":764,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowActiveSessions","product":"core","slug":"tmux-formatvalues-windowactivesessions"},{"id":"tmux.FormatValues.WindowActiveSessionsList","name":"WindowActiveSessionsList","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowActiveSessionsList() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"WindowActiveSessionsList returns tmux #{window_active_sessions_list} as string from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":769,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowActiveSessionsList","product":"core","slug":"tmux-formatvalues-windowactivesessionslist"},{"id":"tmux.FormatValues.WindowActivity","name":"WindowActivity","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowActivity() (time.Time, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(time.Time, bool)"}],"doc":{"summary":"WindowActivity returns tmux #{window_activity} as time.Time from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":774,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowActivity","product":"core","slug":"tmux-formatvalues-windowactivity"},{"id":"tmux.FormatValues.WindowActivityFlag","name":"WindowActivityFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowActivityFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowActivityFlag returns tmux #{window_activity_flag} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":777,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowActivityFlag","product":"core","slug":"tmux-formatvalues-windowactivityflag"},{"id":"tmux.FormatValues.WindowBellFlag","name":"WindowBellFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowBellFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowBellFlag returns tmux #{window_bell_flag} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":782,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowBellFlag","product":"core","slug":"tmux-formatvalues-windowbellflag"},{"id":"tmux.FormatValues.WindowBigger","name":"WindowBigger","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowBigger() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowBigger returns tmux #{window_bigger} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":785,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowBigger","product":"core","slug":"tmux-formatvalues-windowbigger"},{"id":"tmux.FormatValues.WindowCellHeight","name":"WindowCellHeight","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowCellHeight() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowCellHeight returns tmux #{window_cell_height} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":788,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowCellHeight","product":"core","slug":"tmux-formatvalues-windowcellheight"},{"id":"tmux.FormatValues.WindowCellWidth","name":"WindowCellWidth","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowCellWidth() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowCellWidth returns tmux #{window_cell_width} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":791,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowCellWidth","product":"core","slug":"tmux-formatvalues-windowcellwidth"},{"id":"tmux.FormatValues.WindowEndFlag","name":"WindowEndFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowEndFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowEndFlag returns tmux #{window_end_flag} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":794,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowEndFlag","product":"core","slug":"tmux-formatvalues-windowendflag"},{"id":"tmux.FormatValues.WindowFlags","name":"WindowFlags","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowFlags() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"WindowFlags returns tmux #{window_flags} as string from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":797,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowFlags","product":"core","slug":"tmux-formatvalues-windowflags"},{"id":"tmux.FormatValues.WindowFormat","name":"WindowFormat","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowFormat() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowFormat returns tmux #{window_format} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":800,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowFormat","product":"core","slug":"tmux-formatvalues-windowformat"},{"id":"tmux.FormatValues.WindowHeight","name":"WindowHeight","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowHeight() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowHeight returns tmux #{window_height} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":803,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowHeight","product":"core","slug":"tmux-formatvalues-windowheight"},{"id":"tmux.FormatValues.WindowID","name":"WindowID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowID() (WindowID, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(WindowID, bool)"}],"doc":{"summary":"WindowID returns tmux #{window_id} as WindowID from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":806,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowID","product":"core","slug":"tmux-formatvalues-windowid"},{"id":"tmux.FormatValues.WindowIndex","name":"WindowIndex","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowIndex() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowIndex returns tmux #{window_index} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":809,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowIndex","product":"core","slug":"tmux-formatvalues-windowindex"},{"id":"tmux.FormatValues.WindowLastFlag","name":"WindowLastFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowLastFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowLastFlag returns tmux #{window_last_flag} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":812,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowLastFlag","product":"core","slug":"tmux-formatvalues-windowlastflag"},{"id":"tmux.FormatValues.WindowLayout","name":"WindowLayout","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowLayout() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"WindowLayout returns tmux #{window_layout} as string from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":815,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowLayout","product":"core","slug":"tmux-formatvalues-windowlayout"},{"id":"tmux.FormatValues.WindowLinked","name":"WindowLinked","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowLinked() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowLinked returns tmux #{window_linked} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":818,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowLinked","product":"core","slug":"tmux-formatvalues-windowlinked"},{"id":"tmux.FormatValues.WindowLinkedSessions","name":"WindowLinkedSessions","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowLinkedSessions() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowLinkedSessions returns tmux #{window_linked_sessions} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":821,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowLinkedSessions","product":"core","slug":"tmux-formatvalues-windowlinkedsessions"},{"id":"tmux.FormatValues.WindowLinkedSessionsList","name":"WindowLinkedSessionsList","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowLinkedSessionsList() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"WindowLinkedSessionsList returns tmux #{window_linked_sessions_list} as string from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":826,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowLinkedSessionsList","product":"core","slug":"tmux-formatvalues-windowlinkedsessionslist"},{"id":"tmux.FormatValues.WindowManualHeight","name":"WindowManualHeight","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowManualHeight() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowManualHeight returns tmux #{window_manual_height} as int from materialized window-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":831,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowManualHeight","product":"core","slug":"tmux-formatvalues-windowmanualheight"},{"id":"tmux.FormatValues.WindowManualWidth","name":"WindowManualWidth","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowManualWidth() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowManualWidth returns tmux #{window_manual_width} as int from materialized window-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":836,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowManualWidth","product":"core","slug":"tmux-formatvalues-windowmanualwidth"},{"id":"tmux.FormatValues.WindowMarkedFlag","name":"WindowMarkedFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowMarkedFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowMarkedFlag returns tmux #{window_marked_flag} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":839,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowMarkedFlag","product":"core","slug":"tmux-formatvalues-windowmarkedflag"},{"id":"tmux.FormatValues.WindowName","name":"WindowName","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowName() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"WindowName returns tmux #{window_name} as string from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":842,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowName","product":"core","slug":"tmux-formatvalues-windowname"},{"id":"tmux.FormatValues.WindowOffsetX","name":"WindowOffsetX","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowOffsetX() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowOffsetX returns tmux #{window_offset_x} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":845,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowOffsetX","product":"core","slug":"tmux-formatvalues-windowoffsetx"},{"id":"tmux.FormatValues.WindowOffsetY","name":"WindowOffsetY","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowOffsetY() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowOffsetY returns tmux #{window_offset_y} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":848,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowOffsetY","product":"core","slug":"tmux-formatvalues-windowoffsety"},{"id":"tmux.FormatValues.WindowPanes","name":"WindowPanes","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowPanes() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowPanes returns tmux #{window_panes} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":851,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowPanes","product":"core","slug":"tmux-formatvalues-windowpanes"},{"id":"tmux.FormatValues.WindowRawFlags","name":"WindowRawFlags","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowRawFlags() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"WindowRawFlags returns tmux #{window_raw_flags} as string from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":854,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowRawFlags","product":"core","slug":"tmux-formatvalues-windowrawflags"},{"id":"tmux.FormatValues.WindowSilenceFlag","name":"WindowSilenceFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowSilenceFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowSilenceFlag returns tmux #{window_silence_flag} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":857,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowSilenceFlag","product":"core","slug":"tmux-formatvalues-windowsilenceflag"},{"id":"tmux.FormatValues.WindowStackIndex","name":"WindowStackIndex","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowStackIndex() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowStackIndex returns tmux #{window_stack_index} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":862,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowStackIndex","product":"core","slug":"tmux-formatvalues-windowstackindex"},{"id":"tmux.FormatValues.WindowStartFlag","name":"WindowStartFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowStartFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowStartFlag returns tmux #{window_start_flag} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":865,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowStartFlag","product":"core","slug":"tmux-formatvalues-windowstartflag"},{"id":"tmux.FormatValues.WindowVisibleLayout","name":"WindowVisibleLayout","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowVisibleLayout() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"WindowVisibleLayout returns tmux #{window_visible_layout} as string from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":868,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowVisibleLayout","product":"core","slug":"tmux-formatvalues-windowvisiblelayout"},{"id":"tmux.FormatValues.WindowWidth","name":"WindowWidth","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowWidth() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowWidth returns tmux #{window_width} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":873,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowWidth","product":"core","slug":"tmux-formatvalues-windowwidth"},{"id":"tmux.FormatValues.WindowZoomedFlag","name":"WindowZoomedFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowZoomedFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowZoomedFlag returns tmux #{window_zoomed_flag} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":876,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowZoomedFlag","product":"core","slug":"tmux-formatvalues-windowzoomedflag"},{"id":"tmux.FormatValues.WrapFlag","name":"WrapFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WrapFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WrapFlag returns tmux #{wrap_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":879,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WrapFlag","product":"core","slug":"tmux-formatvalues-wrapflag"},{"id":"tmux.Session.ActiveWindowIndex","name":"ActiveWindowIndex","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) ActiveWindowIndex() (int, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(int, bool)"}],"doc":{"summary":"ActiveWindowIndex returns tmux #{active_window_index} as int from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":882,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.ActiveWindowIndex","product":"core","slug":"tmux-session-activewindowindex"},{"id":"tmux.Session.LastWindowIndex","name":"LastWindowIndex","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) LastWindowIndex() (int, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(int, bool)"}],"doc":{"summary":"LastWindowIndex returns tmux #{last_window_index} as int from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":885,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.LastWindowIndex","product":"core","slug":"tmux-session-lastwindowindex"},{"id":"tmux.Session.Active","name":"Active","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Active() (bool, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(bool, bool)"}],"doc":{"summary":"Active returns tmux #{session_active} as bool from this Session's materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":888,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Active","product":"core","slug":"tmux-session-active"},{"id":"tmux.Session.Activity","name":"Activity","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Activity() (time.Time, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(time.Time, bool)"}],"doc":{"summary":"Activity returns tmux #{session_activity} as time.Time from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":891,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Activity","product":"core","slug":"tmux-session-activity"},{"id":"tmux.Session.ActivityFlag","name":"ActivityFlag","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) ActivityFlag() (bool, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(bool, bool)"}],"doc":{"summary":"ActivityFlag returns tmux #{session_activity_flag} as bool from this Session's materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":894,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.ActivityFlag","product":"core","slug":"tmux-session-activityflag"},{"id":"tmux.Session.Alert","name":"Alert","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Alert() (string, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool)"}],"doc":{"summary":"Alert returns tmux #{session_alert} as string from this Session's materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":897,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Alert","product":"core","slug":"tmux-session-alert"},{"id":"tmux.Session.Alerts","name":"Alerts","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Alerts() (string, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool)"}],"doc":{"summary":"Alerts returns tmux #{session_alerts} as string from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":900,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Alerts","product":"core","slug":"tmux-session-alerts"},{"id":"tmux.Session.Attached","name":"Attached","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Attached() (int, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(int, bool)"}],"doc":{"summary":"Attached returns tmux #{session_attached} as int from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":903,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Attached","product":"core","slug":"tmux-session-attached"},{"id":"tmux.Session.AttachedList","name":"AttachedList","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) AttachedList() (string, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool)"}],"doc":{"summary":"AttachedList returns tmux #{session_attached_list} as string from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":906,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.AttachedList","product":"core","slug":"tmux-session-attachedlist"},{"id":"tmux.Session.BellFlag","name":"BellFlag","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) BellFlag() (bool, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(bool, bool)"}],"doc":{"summary":"BellFlag returns tmux #{session_bell_flag} as bool from this Session's materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":909,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.BellFlag","product":"core","slug":"tmux-session-bellflag"},{"id":"tmux.Session.Created","name":"Created","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Created() (time.Time, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(time.Time, bool)"}],"doc":{"summary":"Created returns tmux #{session_created} as time.Time from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":912,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Created","product":"core","slug":"tmux-session-created"},{"id":"tmux.Session.Format","name":"Format","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Format() (bool, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(bool, bool)"}],"doc":{"summary":"Format returns tmux #{session_format} as bool from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":915,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Format","product":"core","slug":"tmux-session-format"},{"id":"tmux.Session.Group","name":"Group","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Group() (string, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool)"}],"doc":{"summary":"Group returns tmux #{session_group} as string from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":918,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Group","product":"core","slug":"tmux-session-group"},{"id":"tmux.Session.GroupAttached","name":"GroupAttached","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) GroupAttached() (int, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(int, bool)"}],"doc":{"summary":"GroupAttached returns tmux #{session_group_attached} as int from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":921,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.GroupAttached","product":"core","slug":"tmux-session-groupattached"},{"id":"tmux.Session.GroupAttachedList","name":"GroupAttachedList","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) GroupAttachedList() (string, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool)"}],"doc":{"summary":"GroupAttachedList returns tmux #{session_group_attached_list} as string from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":924,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.GroupAttachedList","product":"core","slug":"tmux-session-groupattachedlist"},{"id":"tmux.Session.GroupList","name":"GroupList","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) GroupList() (string, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool)"}],"doc":{"summary":"GroupList returns tmux #{session_group_list} as string from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":929,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.GroupList","product":"core","slug":"tmux-session-grouplist"},{"id":"tmux.Session.GroupManyAttached","name":"GroupManyAttached","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) GroupManyAttached() (bool, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(bool, bool)"}],"doc":{"summary":"GroupManyAttached returns tmux #{session_group_many_attached} as bool from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":932,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.GroupManyAttached","product":"core","slug":"tmux-session-groupmanyattached"},{"id":"tmux.Session.GroupSize","name":"GroupSize","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) GroupSize() (int, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(int, bool)"}],"doc":{"summary":"GroupSize returns tmux #{session_group_size} as int from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":937,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.GroupSize","product":"core","slug":"tmux-session-groupsize"},{"id":"tmux.Session.Grouped","name":"Grouped","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Grouped() (bool, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(bool, bool)"}],"doc":{"summary":"Grouped returns tmux #{session_grouped} as bool from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":940,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Grouped","product":"core","slug":"tmux-session-grouped"},{"id":"tmux.Session.LastAttached","name":"LastAttached","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) LastAttached() (time.Time, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(time.Time, bool)"}],"doc":{"summary":"LastAttached returns tmux #{session_last_attached} as time.Time from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":943,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.LastAttached","product":"core","slug":"tmux-session-lastattached"},{"id":"tmux.Session.ManyAttached","name":"ManyAttached","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) ManyAttached() (bool, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(bool, bool)"}],"doc":{"summary":"ManyAttached returns tmux #{session_many_attached} as bool from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":946,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.ManyAttached","product":"core","slug":"tmux-session-manyattached"},{"id":"tmux.Session.Marked","name":"Marked","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Marked() (bool, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(bool, bool)"}],"doc":{"summary":"Marked returns tmux #{session_marked} as bool from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":949,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Marked","product":"core","slug":"tmux-session-marked"},{"id":"tmux.Session.Name","name":"Name","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Name() (string, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool)"}],"doc":{"summary":"Name returns tmux #{session_name} as string from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":952,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Name","product":"core","slug":"tmux-session-name"},{"id":"tmux.Session.Path","name":"Path","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Path() (string, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool)"}],"doc":{"summary":"Path returns tmux #{session_path} as string from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":955,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Path","product":"core","slug":"tmux-session-path"},{"id":"tmux.Session.SilenceFlag","name":"SilenceFlag","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SilenceFlag() (bool, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(bool, bool)"}],"doc":{"summary":"SilenceFlag returns tmux #{session_silence_flag} as bool from this Session's materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":958,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SilenceFlag","product":"core","slug":"tmux-session-silenceflag"},{"id":"tmux.Session.Stack","name":"Stack","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Stack() (string, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool)"}],"doc":{"summary":"Stack returns tmux #{session_stack} as string from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":961,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Stack","product":"core","slug":"tmux-session-stack"},{"id":"tmux.Session.WindowCount","name":"WindowCount","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) WindowCount() (int, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(int, bool)"}],"doc":{"summary":"WindowCount returns tmux #{session_windows} as int from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":964,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.WindowCount","product":"core","slug":"tmux-session-windowcount"},{"id":"tmux.Window.Active","name":"Active","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Active() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"Active returns tmux #{window_active} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":967,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Active","product":"core","slug":"tmux-window-active"},{"id":"tmux.Window.ActiveClients","name":"ActiveClients","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ActiveClients() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"ActiveClients returns tmux #{window_active_clients} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":970,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ActiveClients","product":"core","slug":"tmux-window-activeclients"},{"id":"tmux.Window.ActiveClientsList","name":"ActiveClientsList","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ActiveClientsList() (string, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool)"}],"doc":{"summary":"ActiveClientsList returns tmux #{window_active_clients_list} as string from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":973,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ActiveClientsList","product":"core","slug":"tmux-window-activeclientslist"},{"id":"tmux.Window.ActiveSessions","name":"ActiveSessions","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ActiveSessions() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"ActiveSessions returns tmux #{window_active_sessions} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":978,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ActiveSessions","product":"core","slug":"tmux-window-activesessions"},{"id":"tmux.Window.ActiveSessionsList","name":"ActiveSessionsList","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ActiveSessionsList() (string, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool)"}],"doc":{"summary":"ActiveSessionsList returns tmux #{window_active_sessions_list} as string from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":981,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ActiveSessionsList","product":"core","slug":"tmux-window-activesessionslist"},{"id":"tmux.Window.Activity","name":"Activity","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Activity() (time.Time, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(time.Time, bool)"}],"doc":{"summary":"Activity returns tmux #{window_activity} as time.Time from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":986,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Activity","product":"core","slug":"tmux-window-activity"},{"id":"tmux.Window.ActivityFlag","name":"ActivityFlag","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ActivityFlag() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"ActivityFlag returns tmux #{window_activity_flag} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":989,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ActivityFlag","product":"core","slug":"tmux-window-activityflag"},{"id":"tmux.Window.BellFlag","name":"BellFlag","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) BellFlag() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"BellFlag returns tmux #{window_bell_flag} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":992,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.BellFlag","product":"core","slug":"tmux-window-bellflag"},{"id":"tmux.Window.Bigger","name":"Bigger","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Bigger() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"Bigger returns tmux #{window_bigger} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":995,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Bigger","product":"core","slug":"tmux-window-bigger"},{"id":"tmux.Window.CellHeight","name":"CellHeight","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) CellHeight() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"CellHeight returns tmux #{window_cell_height} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":998,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.CellHeight","product":"core","slug":"tmux-window-cellheight"},{"id":"tmux.Window.CellWidth","name":"CellWidth","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) CellWidth() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"CellWidth returns tmux #{window_cell_width} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1001,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.CellWidth","product":"core","slug":"tmux-window-cellwidth"},{"id":"tmux.Window.EndFlag","name":"EndFlag","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) EndFlag() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"EndFlag returns tmux #{window_end_flag} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1004,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.EndFlag","product":"core","slug":"tmux-window-endflag"},{"id":"tmux.Window.Flags","name":"Flags","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Flags() (string, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool)"}],"doc":{"summary":"Flags returns tmux #{window_flags} as string from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1007,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Flags","product":"core","slug":"tmux-window-flags"},{"id":"tmux.Window.Format","name":"Format","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Format() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"Format returns tmux #{window_format} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1010,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Format","product":"core","slug":"tmux-window-format"},{"id":"tmux.Window.Height","name":"Height","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Height() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"Height returns tmux #{window_height} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1013,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Height","product":"core","slug":"tmux-window-height"},{"id":"tmux.Window.LastFlag","name":"LastFlag","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) LastFlag() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"LastFlag returns tmux #{window_last_flag} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1016,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.LastFlag","product":"core","slug":"tmux-window-lastflag"},{"id":"tmux.Window.Layout","name":"Layout","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Layout() (string, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool)"}],"doc":{"summary":"Layout returns tmux #{window_layout} as string from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1019,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Layout","product":"core","slug":"tmux-window-layout"},{"id":"tmux.Window.Linked","name":"Linked","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Linked() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"Linked returns tmux #{window_linked} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1022,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Linked","product":"core","slug":"tmux-window-linked"},{"id":"tmux.Window.LinkedSessionCount","name":"LinkedSessionCount","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) LinkedSessionCount() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"LinkedSessionCount returns tmux #{window_linked_sessions} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1025,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.LinkedSessionCount","product":"core","slug":"tmux-window-linkedsessioncount"},{"id":"tmux.Window.LinkedSessionsList","name":"LinkedSessionsList","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) LinkedSessionsList() (string, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool)"}],"doc":{"summary":"LinkedSessionsList returns tmux #{window_linked_sessions_list} as string from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1028,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.LinkedSessionsList","product":"core","slug":"tmux-window-linkedsessionslist"},{"id":"tmux.Window.ManualHeight","name":"ManualHeight","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ManualHeight() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"ManualHeight returns tmux #{window_manual_height} as int from this Window's materialized window-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1033,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ManualHeight","product":"core","slug":"tmux-window-manualheight"},{"id":"tmux.Window.ManualWidth","name":"ManualWidth","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ManualWidth() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"ManualWidth returns tmux #{window_manual_width} as int from this Window's materialized window-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1036,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ManualWidth","product":"core","slug":"tmux-window-manualwidth"},{"id":"tmux.Window.MarkedFlag","name":"MarkedFlag","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) MarkedFlag() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"MarkedFlag returns tmux #{window_marked_flag} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1039,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.MarkedFlag","product":"core","slug":"tmux-window-markedflag"},{"id":"tmux.Window.Name","name":"Name","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Name() (string, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool)"}],"doc":{"summary":"Name returns tmux #{window_name} as string from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1042,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Name","product":"core","slug":"tmux-window-name"},{"id":"tmux.Window.OffsetX","name":"OffsetX","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) OffsetX() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"OffsetX returns tmux #{window_offset_x} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1045,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.OffsetX","product":"core","slug":"tmux-window-offsetx"},{"id":"tmux.Window.OffsetY","name":"OffsetY","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) OffsetY() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"OffsetY returns tmux #{window_offset_y} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1048,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.OffsetY","product":"core","slug":"tmux-window-offsety"},{"id":"tmux.Window.PaneCount","name":"PaneCount","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) PaneCount() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"PaneCount returns tmux #{window_panes} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1051,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.PaneCount","product":"core","slug":"tmux-window-panecount"},{"id":"tmux.Window.RawFlags","name":"RawFlags","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) RawFlags() (string, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool)"}],"doc":{"summary":"RawFlags returns tmux #{window_raw_flags} as string from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1054,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.RawFlags","product":"core","slug":"tmux-window-rawflags"},{"id":"tmux.Window.SilenceFlag","name":"SilenceFlag","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SilenceFlag() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"SilenceFlag returns tmux #{window_silence_flag} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1057,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SilenceFlag","product":"core","slug":"tmux-window-silenceflag"},{"id":"tmux.Window.StackIndex","name":"StackIndex","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) StackIndex() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"StackIndex returns tmux #{window_stack_index} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1060,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.StackIndex","product":"core","slug":"tmux-window-stackindex"},{"id":"tmux.Window.StartFlag","name":"StartFlag","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) StartFlag() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"StartFlag returns tmux #{window_start_flag} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1063,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.StartFlag","product":"core","slug":"tmux-window-startflag"},{"id":"tmux.Window.VisibleLayout","name":"VisibleLayout","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) VisibleLayout() (string, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool)"}],"doc":{"summary":"VisibleLayout returns tmux #{window_visible_layout} as string from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1066,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.VisibleLayout","product":"core","slug":"tmux-window-visiblelayout"},{"id":"tmux.Window.Width","name":"Width","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Width() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"Width returns tmux #{window_width} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1069,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Width","product":"core","slug":"tmux-window-width"},{"id":"tmux.Window.ZoomedFlag","name":"ZoomedFlag","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ZoomedFlag() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"ZoomedFlag returns tmux #{window_zoomed_flag} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1072,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ZoomedFlag","product":"core","slug":"tmux-window-zoomedflag"},{"id":"tmux.Pane.AlternateOn","name":"AlternateOn","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) AlternateOn() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"AlternateOn returns tmux #{alternate_on} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1075,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.AlternateOn","product":"core","slug":"tmux-pane-alternateon"},{"id":"tmux.Pane.AlternateSavedX","name":"AlternateSavedX","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) AlternateSavedX() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"AlternateSavedX returns tmux #{alternate_saved_x} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1078,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.AlternateSavedX","product":"core","slug":"tmux-pane-alternatesavedx"},{"id":"tmux.Pane.AlternateSavedY","name":"AlternateSavedY","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) AlternateSavedY() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"AlternateSavedY returns tmux #{alternate_saved_y} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1081,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.AlternateSavedY","product":"core","slug":"tmux-pane-alternatesavedy"},{"id":"tmux.Pane.BracketPasteFlag","name":"BracketPasteFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) BracketPasteFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"BracketPasteFlag returns tmux #{bracket_paste_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1084,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.BracketPasteFlag","product":"core","slug":"tmux-pane-bracketpasteflag"},{"id":"tmux.Pane.CursorBlinking","name":"CursorBlinking","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CursorBlinking() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"CursorBlinking returns tmux #{cursor_blinking} as bool from this Pane's materialized pane-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":1087,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CursorBlinking","product":"core","slug":"tmux-pane-cursorblinking"},{"id":"tmux.Pane.CursorCharacter","name":"CursorCharacter","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CursorCharacter() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"CursorCharacter returns tmux #{cursor_character} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1090,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CursorCharacter","product":"core","slug":"tmux-pane-cursorcharacter"},{"id":"tmux.Pane.CursorColour","name":"CursorColour","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CursorColour() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"CursorColour returns tmux #{cursor_colour} as string from this Pane's materialized pane-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":1093,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CursorColour","product":"core","slug":"tmux-pane-cursorcolour"},{"id":"tmux.Pane.CursorFlag","name":"CursorFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CursorFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"CursorFlag returns tmux #{cursor_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1096,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CursorFlag","product":"core","slug":"tmux-pane-cursorflag"},{"id":"tmux.Pane.CursorShape","name":"CursorShape","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CursorShape() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"CursorShape returns tmux #{cursor_shape} as string from this Pane's materialized pane-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":1099,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CursorShape","product":"core","slug":"tmux-pane-cursorshape"},{"id":"tmux.Pane.CursorVeryVisible","name":"CursorVeryVisible","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CursorVeryVisible() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"CursorVeryVisible returns tmux #{cursor_very_visible} as bool from this Pane's materialized pane-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":1102,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CursorVeryVisible","product":"core","slug":"tmux-pane-cursorveryvisible"},{"id":"tmux.Pane.CursorX","name":"CursorX","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CursorX() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"CursorX returns tmux #{cursor_x} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1105,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CursorX","product":"core","slug":"tmux-pane-cursorx"},{"id":"tmux.Pane.CursorY","name":"CursorY","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CursorY() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"CursorY returns tmux #{cursor_y} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CursorY","product":"core","slug":"tmux-pane-cursory"},{"id":"tmux.Pane.HistoryAdded","name":"HistoryAdded","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) HistoryAdded() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryAdded returns tmux #{history_added} as int from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.HistoryAdded","product":"core","slug":"tmux-pane-historyadded"},{"id":"tmux.Pane.HistoryAllBytes","name":"HistoryAllBytes","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) HistoryAllBytes() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"HistoryAllBytes returns tmux #{history_all_bytes} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1114,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.HistoryAllBytes","product":"core","slug":"tmux-pane-historyallbytes"},{"id":"tmux.Pane.HistoryBytes","name":"HistoryBytes","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) HistoryBytes() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryBytes returns tmux #{history_bytes} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1117,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.HistoryBytes","product":"core","slug":"tmux-pane-historybytes"},{"id":"tmux.Pane.HistoryCollected","name":"HistoryCollected","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) HistoryCollected() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryCollected returns tmux #{history_collected} as int from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1120,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.HistoryCollected","product":"core","slug":"tmux-pane-historycollected"},{"id":"tmux.Pane.HistoryGeneration","name":"HistoryGeneration","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) HistoryGeneration() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryGeneration returns tmux #{history_generation} as int from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1123,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.HistoryGeneration","product":"core","slug":"tmux-pane-historygeneration"},{"id":"tmux.Pane.HistoryLimit","name":"HistoryLimit","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) HistoryLimit() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryLimit returns tmux #{history_limit} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1126,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.HistoryLimit","product":"core","slug":"tmux-pane-historylimit"},{"id":"tmux.Pane.HistorySize","name":"HistorySize","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) HistorySize() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"HistorySize returns tmux #{history_size} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1129,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.HistorySize","product":"core","slug":"tmux-pane-historysize"},{"id":"tmux.Pane.InsertFlag","name":"InsertFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) InsertFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"InsertFlag returns tmux #{insert_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1132,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.InsertFlag","product":"core","slug":"tmux-pane-insertflag"},{"id":"tmux.Pane.KeypadCursorFlag","name":"KeypadCursorFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) KeypadCursorFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"KeypadCursorFlag returns tmux #{keypad_cursor_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1135,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.KeypadCursorFlag","product":"core","slug":"tmux-pane-keypadcursorflag"},{"id":"tmux.Pane.KeypadFlag","name":"KeypadFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) KeypadFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"KeypadFlag returns tmux #{keypad_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1138,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.KeypadFlag","product":"core","slug":"tmux-pane-keypadflag"},{"id":"tmux.Pane.MouseAllFlag","name":"MouseAllFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) MouseAllFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseAllFlag returns tmux #{mouse_all_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1141,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.MouseAllFlag","product":"core","slug":"tmux-pane-mouseallflag"},{"id":"tmux.Pane.MouseAnyFlag","name":"MouseAnyFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) MouseAnyFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseAnyFlag returns tmux #{mouse_any_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1144,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.MouseAnyFlag","product":"core","slug":"tmux-pane-mouseanyflag"},{"id":"tmux.Pane.MouseButtonFlag","name":"MouseButtonFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) MouseButtonFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseButtonFlag returns tmux #{mouse_button_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1147,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.MouseButtonFlag","product":"core","slug":"tmux-pane-mousebuttonflag"},{"id":"tmux.Pane.MouseSGRFlag","name":"MouseSGRFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) MouseSGRFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseSGRFlag returns tmux #{mouse_sgr_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1150,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.MouseSGRFlag","product":"core","slug":"tmux-pane-mousesgrflag"},{"id":"tmux.Pane.MouseStandardFlag","name":"MouseStandardFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) MouseStandardFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseStandardFlag returns tmux #{mouse_standard_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1153,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.MouseStandardFlag","product":"core","slug":"tmux-pane-mousestandardflag"},{"id":"tmux.Pane.MouseUTF8Flag","name":"MouseUTF8Flag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) MouseUTF8Flag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseUTF8Flag returns tmux #{mouse_utf8_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1156,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.MouseUTF8Flag","product":"core","slug":"tmux-pane-mouseutf8flag"},{"id":"tmux.Pane.OriginFlag","name":"OriginFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) OriginFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"OriginFlag returns tmux #{origin_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1159,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.OriginFlag","product":"core","slug":"tmux-pane-originflag"},{"id":"tmux.Pane.Active","name":"Active","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Active() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"Active returns tmux #{pane_active} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1162,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Active","product":"core","slug":"tmux-pane-active"},{"id":"tmux.Pane.AtBottom","name":"AtBottom","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) AtBottom() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"AtBottom returns tmux #{pane_at_bottom} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1165,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.AtBottom","product":"core","slug":"tmux-pane-atbottom"},{"id":"tmux.Pane.AtLeft","name":"AtLeft","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) AtLeft() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"AtLeft returns tmux #{pane_at_left} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1168,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.AtLeft","product":"core","slug":"tmux-pane-atleft"},{"id":"tmux.Pane.AtRight","name":"AtRight","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) AtRight() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"AtRight returns tmux #{pane_at_right} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1171,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.AtRight","product":"core","slug":"tmux-pane-atright"},{"id":"tmux.Pane.AtTop","name":"AtTop","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) AtTop() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"AtTop returns tmux #{pane_at_top} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1174,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.AtTop","product":"core","slug":"tmux-pane-attop"},{"id":"tmux.Pane.BG","name":"BG","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) BG() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"BG returns tmux #{pane_bg} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1177,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.BG","product":"core","slug":"tmux-pane-bg"},{"id":"tmux.Pane.Bottom","name":"Bottom","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Bottom() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"Bottom returns tmux #{pane_bottom} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1180,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Bottom","product":"core","slug":"tmux-pane-bottom"},{"id":"tmux.Pane.CommandRunning","name":"CommandRunning","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CommandRunning() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"CommandRunning returns tmux #{pane_command_running} as bool from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1183,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CommandRunning","product":"core","slug":"tmux-pane-commandrunning"},{"id":"tmux.Pane.CurrentCommand","name":"CurrentCommand","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CurrentCommand() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"CurrentCommand returns tmux #{pane_current_command} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1186,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CurrentCommand","product":"core","slug":"tmux-pane-currentcommand"},{"id":"tmux.Pane.CurrentPath","name":"CurrentPath","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CurrentPath() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"CurrentPath returns tmux #{pane_current_path} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1189,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CurrentPath","product":"core","slug":"tmux-pane-currentpath"},{"id":"tmux.Pane.Dead","name":"Dead","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Dead() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"Dead returns tmux #{pane_dead} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1192,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Dead","product":"core","slug":"tmux-pane-dead"},{"id":"tmux.Pane.DeadSignal","name":"DeadSignal","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) DeadSignal() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"DeadSignal returns tmux #{pane_dead_signal} as string from this Pane's materialized pane-scoped fields (tmux 3.3 or later)."},"source":{"file":"tmux/format_generated.go","line":1195,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.DeadSignal","product":"core","slug":"tmux-pane-deadsignal"},{"id":"tmux.Pane.DeadStatus","name":"DeadStatus","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) DeadStatus() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"DeadStatus returns tmux #{pane_dead_status} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1198,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.DeadStatus","product":"core","slug":"tmux-pane-deadstatus"},{"id":"tmux.Pane.DeadTime","name":"DeadTime","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) DeadTime() (time.Time, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(time.Time, bool)"}],"doc":{"summary":"DeadTime returns tmux #{pane_dead_time} as time.Time from this Pane's materialized pane-scoped fields (tmux 3.3 or later)."},"source":{"file":"tmux/format_generated.go","line":1201,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.DeadTime","product":"core","slug":"tmux-pane-deadtime"},{"id":"tmux.Pane.FG","name":"FG","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) FG() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"FG returns tmux #{pane_fg} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1204,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.FG","product":"core","slug":"tmux-pane-fg"},{"id":"tmux.Pane.Flags","name":"Flags","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Flags() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"Flags returns tmux #{pane_flags} as string from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1207,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Flags","product":"core","slug":"tmux-pane-flags"},{"id":"tmux.Pane.FloatingFlag","name":"FloatingFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) FloatingFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"FloatingFlag returns tmux #{pane_floating_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1210,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.FloatingFlag","product":"core","slug":"tmux-pane-floatingflag"},{"id":"tmux.Pane.Format","name":"Format","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Format() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"Format returns tmux #{pane_format} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1213,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Format","product":"core","slug":"tmux-pane-format"},{"id":"tmux.Pane.Height","name":"Height","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Height() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"Height returns tmux #{pane_height} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1216,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Height","product":"core","slug":"tmux-pane-height"},{"id":"tmux.Pane.InMode","name":"InMode","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) InMode() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"InMode returns tmux #{pane_in_mode} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1219,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.InMode","product":"core","slug":"tmux-pane-inmode"},{"id":"tmux.Pane.InputOff","name":"InputOff","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) InputOff() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"InputOff returns tmux #{pane_input_off} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1222,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.InputOff","product":"core","slug":"tmux-pane-inputoff"},{"id":"tmux.Pane.KeyMode","name":"KeyMode","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) KeyMode() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"KeyMode returns tmux #{pane_key_mode} as string from this Pane's materialized pane-scoped fields (tmux 3.5 or later)."},"source":{"file":"tmux/format_generated.go","line":1225,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.KeyMode","product":"core","slug":"tmux-pane-keymode"},{"id":"tmux.Pane.Last","name":"Last","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Last() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"Last returns tmux #{pane_last} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1228,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Last","product":"core","slug":"tmux-pane-last"},{"id":"tmux.Pane.Left","name":"Left","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Left() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"Left returns tmux #{pane_left} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1231,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Left","product":"core","slug":"tmux-pane-left"},{"id":"tmux.Pane.Marked","name":"Marked","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Marked() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"Marked returns tmux #{pane_marked} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1234,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Marked","product":"core","slug":"tmux-pane-marked"},{"id":"tmux.Pane.MarkedSet","name":"MarkedSet","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) MarkedSet() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"MarkedSet returns tmux #{pane_marked_set} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1237,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.MarkedSet","product":"core","slug":"tmux-pane-markedset"},{"id":"tmux.Pane.ModalFlag","name":"ModalFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ModalFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"ModalFlag returns tmux #{pane_modal_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1240,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ModalFlag","product":"core","slug":"tmux-pane-modalflag"},{"id":"tmux.Pane.Mode","name":"Mode","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Mode() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"Mode returns tmux #{pane_mode} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1243,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Mode","product":"core","slug":"tmux-pane-mode"},{"id":"tmux.Pane.OutputGeneration","name":"OutputGeneration","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) OutputGeneration() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"OutputGeneration returns tmux #{pane_output_generation} as int from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1246,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.OutputGeneration","product":"core","slug":"tmux-pane-outputgeneration"},{"id":"tmux.Pane.Path","name":"Path","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Path() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"Path returns tmux #{pane_path} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1249,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Path","product":"core","slug":"tmux-pane-path"},{"id":"tmux.Pane.PBProgress","name":"PBProgress","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) PBProgress() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"PBProgress returns tmux #{pane_pb_progress} as int from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1252,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.PBProgress","product":"core","slug":"tmux-pane-pbprogress"},{"id":"tmux.Pane.PBState","name":"PBState","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) PBState() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"PBState returns tmux #{pane_pb_state} as string from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1255,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.PBState","product":"core","slug":"tmux-pane-pbstate"},{"id":"tmux.Pane.ProcessPID","name":"ProcessPID","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ProcessPID() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"ProcessPID returns tmux #{pane_pid} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1258,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ProcessPID","product":"core","slug":"tmux-pane-processpid"},{"id":"tmux.Pane.Piping","name":"Piping","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Piping() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"Piping returns tmux #{pane_pipe} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1261,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Piping","product":"core","slug":"tmux-pane-piping"},{"id":"tmux.Pane.PipePID","name":"PipePID","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) PipePID() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"PipePID returns tmux #{pane_pipe_pid} as int from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1264,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.PipePID","product":"core","slug":"tmux-pane-pipepid"},{"id":"tmux.Pane.PrivateModes","name":"PrivateModes","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) PrivateModes() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"PrivateModes returns tmux #{pane_private_modes} as string from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1267,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.PrivateModes","product":"core","slug":"tmux-pane-privatemodes"},{"id":"tmux.Pane.Right","name":"Right","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Right() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"Right returns tmux #{pane_right} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1270,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Right","product":"core","slug":"tmux-pane-right"},{"id":"tmux.Pane.SearchString","name":"SearchString","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SearchString() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"SearchString returns tmux #{pane_search_string} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1273,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SearchString","product":"core","slug":"tmux-pane-searchstring"},{"id":"tmux.Pane.StartCommand","name":"StartCommand","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) StartCommand() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"StartCommand returns tmux #{pane_start_command} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1276,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.StartCommand","product":"core","slug":"tmux-pane-startcommand"},{"id":"tmux.Pane.StartCommandList","name":"StartCommandList","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) StartCommandList() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"StartCommandList returns tmux #{pane_start_command_list} as string from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1279,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.StartCommandList","product":"core","slug":"tmux-pane-startcommandlist"},{"id":"tmux.Pane.StartPath","name":"StartPath","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) StartPath() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"StartPath returns tmux #{pane_start_path} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1284,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.StartPath","product":"core","slug":"tmux-pane-startpath"},{"id":"tmux.Pane.Synchronized","name":"Synchronized","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Synchronized() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"Synchronized returns tmux #{pane_synchronized} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1287,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Synchronized","product":"core","slug":"tmux-pane-synchronized"},{"id":"tmux.Pane.Tabs","name":"Tabs","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Tabs() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"Tabs returns tmux #{pane_tabs} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1290,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Tabs","product":"core","slug":"tmux-pane-tabs"},{"id":"tmux.Pane.Title","name":"Title","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Title() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"Title returns tmux #{pane_title} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1293,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Title","product":"core","slug":"tmux-pane-title"},{"id":"tmux.Pane.Top","name":"Top","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Top() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"Top returns tmux #{pane_top} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1296,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Top","product":"core","slug":"tmux-pane-top"},{"id":"tmux.Pane.TTY","name":"TTY","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) TTY() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"TTY returns tmux #{pane_tty} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1299,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.TTY","product":"core","slug":"tmux-pane-tty"},{"id":"tmux.Pane.UnseenChanges","name":"UnseenChanges","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) UnseenChanges() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"UnseenChanges returns tmux #{pane_unseen_changes} as bool from this Pane's materialized pane-scoped fields (tmux 3.4 or later)."},"source":{"file":"tmux/format_generated.go","line":1302,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.UnseenChanges","product":"core","slug":"tmux-pane-unseenchanges"},{"id":"tmux.Pane.UnzoomedHeight","name":"UnzoomedHeight","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) UnzoomedHeight() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"UnzoomedHeight returns tmux #{pane_unzoomed_height} as int from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1305,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.UnzoomedHeight","product":"core","slug":"tmux-pane-unzoomedheight"},{"id":"tmux.Pane.UnzoomedWidth","name":"UnzoomedWidth","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) UnzoomedWidth() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"UnzoomedWidth returns tmux #{pane_unzoomed_width} as int from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1308,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.UnzoomedWidth","product":"core","slug":"tmux-pane-unzoomedwidth"},{"id":"tmux.Pane.Width","name":"Width","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Width() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"Width returns tmux #{pane_width} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1311,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Width","product":"core","slug":"tmux-pane-width"},{"id":"tmux.Pane.X","name":"X","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) X() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"X returns tmux #{pane_x} as int from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1314,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.X","product":"core","slug":"tmux-pane-x"},{"id":"tmux.Pane.Y","name":"Y","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Y() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"Y returns tmux #{pane_y} as int from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1317,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Y","product":"core","slug":"tmux-pane-y"},{"id":"tmux.Pane.Z","name":"Z","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Z() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"Z returns tmux #{pane_z} as int from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1320,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Z","product":"core","slug":"tmux-pane-z"},{"id":"tmux.Pane.ZoomedFlag","name":"ZoomedFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ZoomedFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"ZoomedFlag returns tmux #{pane_zoomed_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1323,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ZoomedFlag","product":"core","slug":"tmux-pane-zoomedflag"},{"id":"tmux.Pane.ScrollRegionLower","name":"ScrollRegionLower","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ScrollRegionLower() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"ScrollRegionLower returns tmux #{scroll_region_lower} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1326,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ScrollRegionLower","product":"core","slug":"tmux-pane-scrollregionlower"},{"id":"tmux.Pane.ScrollRegionUpper","name":"ScrollRegionUpper","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ScrollRegionUpper() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"ScrollRegionUpper returns tmux #{scroll_region_upper} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1329,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ScrollRegionUpper","product":"core","slug":"tmux-pane-scrollregionupper"},{"id":"tmux.Pane.SynchronizedOutputFlag","name":"SynchronizedOutputFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SynchronizedOutputFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"SynchronizedOutputFlag returns tmux #{synchronized_output_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1332,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SynchronizedOutputFlag","product":"core","slug":"tmux-pane-synchronizedoutputflag"},{"id":"tmux.Pane.WrapFlag","name":"WrapFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) WrapFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"WrapFlag returns tmux #{wrap_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1337,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.WrapFlag","product":"core","slug":"tmux-pane-wrapflag"},{"id":"tmux.Client.Activity","name":"Activity","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Activity() (time.Time, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(time.Time, bool)"}],"doc":{"summary":"Activity returns tmux #{client_activity} as time.Time from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1340,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Activity","product":"core","slug":"tmux-client-activity"},{"id":"tmux.Client.CellHeight","name":"CellHeight","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) CellHeight() (int, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(int, bool)"}],"doc":{"summary":"CellHeight returns tmux #{client_cell_height} as int from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1343,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.CellHeight","product":"core","slug":"tmux-client-cellheight"},{"id":"tmux.Client.CellWidth","name":"CellWidth","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) CellWidth() (int, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(int, bool)"}],"doc":{"summary":"CellWidth returns tmux #{client_cell_width} as int from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1346,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.CellWidth","product":"core","slug":"tmux-client-cellwidth"},{"id":"tmux.Client.ControlMode","name":"ControlMode","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) ControlMode() (bool, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(bool, bool)"}],"doc":{"summary":"ControlMode returns tmux #{client_control_mode} as bool from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1349,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.ControlMode","product":"core","slug":"tmux-client-controlmode"},{"id":"tmux.Client.Created","name":"Created","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Created() (time.Time, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(time.Time, bool)"}],"doc":{"summary":"Created returns tmux #{client_created} as time.Time from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1352,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Created","product":"core","slug":"tmux-client-created"},{"id":"tmux.Client.Discarded","name":"Discarded","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Discarded() (int, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(int, bool)"}],"doc":{"summary":"Discarded returns tmux #{client_discarded} as int from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1355,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Discarded","product":"core","slug":"tmux-client-discarded"},{"id":"tmux.Client.Flags","name":"Flags","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Flags() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"Flags returns tmux #{client_flags} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1358,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Flags","product":"core","slug":"tmux-client-flags"},{"id":"tmux.Client.Height","name":"Height","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Height() (int, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(int, bool)"}],"doc":{"summary":"Height returns tmux #{client_height} as int from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1361,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Height","product":"core","slug":"tmux-client-height"},{"id":"tmux.Client.KeyTable","name":"KeyTable","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) KeyTable() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"KeyTable returns tmux #{client_key_table} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1364,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.KeyTable","product":"core","slug":"tmux-client-keytable"},{"id":"tmux.Client.LastSession","name":"LastSession","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) LastSession() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"LastSession returns tmux #{client_last_session} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1367,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.LastSession","product":"core","slug":"tmux-client-lastsession"},{"id":"tmux.Client.ModeFormat","name":"ModeFormat","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) ModeFormat() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"ModeFormat returns tmux #{client_mode_format} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1370,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.ModeFormat","product":"core","slug":"tmux-client-modeformat"},{"id":"tmux.Client.ProcessPID","name":"ProcessPID","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) ProcessPID() (int, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(int, bool)"}],"doc":{"summary":"ProcessPID returns tmux #{client_pid} as int from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1373,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.ProcessPID","product":"core","slug":"tmux-client-processpid"},{"id":"tmux.Client.Prefix","name":"Prefix","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Prefix() (bool, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(bool, bool)"}],"doc":{"summary":"Prefix returns tmux #{client_prefix} as bool from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1376,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Prefix","product":"core","slug":"tmux-client-prefix"},{"id":"tmux.Client.ReadOnly","name":"ReadOnly","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) ReadOnly() (bool, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(bool, bool)"}],"doc":{"summary":"ReadOnly returns tmux #{client_readonly} as bool from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1379,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.ReadOnly","product":"core","slug":"tmux-client-readonly"},{"id":"tmux.Client.Session","name":"Session","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Session() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"Session returns tmux #{client_session} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1382,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Session","product":"core","slug":"tmux-client-session"},{"id":"tmux.Client.TermFeatures","name":"TermFeatures","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) TermFeatures() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"TermFeatures returns tmux #{client_termfeatures} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1385,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.TermFeatures","product":"core","slug":"tmux-client-termfeatures"},{"id":"tmux.Client.TermName","name":"TermName","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) TermName() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"TermName returns tmux #{client_termname} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1388,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.TermName","product":"core","slug":"tmux-client-termname"},{"id":"tmux.Client.TermType","name":"TermType","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) TermType() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"TermType returns tmux #{client_termtype} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1391,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.TermType","product":"core","slug":"tmux-client-termtype"},{"id":"tmux.Client.TTY","name":"TTY","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) TTY() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"TTY returns tmux #{client_tty} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1394,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.TTY","product":"core","slug":"tmux-client-tty"},{"id":"tmux.Client.ProcessUID","name":"ProcessUID","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) ProcessUID() (int, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(int, bool)"}],"doc":{"summary":"ProcessUID returns tmux #{client_uid} as int from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1397,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.ProcessUID","product":"core","slug":"tmux-client-processuid"},{"id":"tmux.Client.ProcessUser","name":"ProcessUser","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) ProcessUser() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"ProcessUser returns tmux #{client_user} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1400,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.ProcessUser","product":"core","slug":"tmux-client-processuser"},{"id":"tmux.Client.UTF8","name":"UTF8","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) UTF8() (bool, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(bool, bool)"}],"doc":{"summary":"UTF8 returns tmux #{client_utf8} as bool from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1403,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.UTF8","product":"core","slug":"tmux-client-utf8"},{"id":"tmux.Client.Width","name":"Width","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Width() (int, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(int, bool)"}],"doc":{"summary":"Width returns tmux #{client_width} as int from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1406,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Width","product":"core","slug":"tmux-client-width"},{"id":"tmux.Client.Written","name":"Written","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Written() (int, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(int, bool)"}],"doc":{"summary":"Written returns tmux #{client_written} as int from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1409,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Written","product":"core","slug":"tmux-client-written"},{"id":"tmux.ErrNotInsideTmux","name":"ErrNotInsideTmux","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrNotInsideTmux identifies missing or malformed tmux discovery variables."},"source":{"file":"tmux/from_env.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrNotInsideTmux","product":"core","slug":"tmux-errnotinsidetmux"},{"id":"tmux.FromEnvError","name":"FromEnvError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"FromEnvError reports which tmux discovery variable was missing or malformed. It never retains or prints the variable's value."},"source":{"file":"tmux/from_env.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FromEnvError","product":"core","slug":"tmux-fromenverror"},{"id":"tmux.FromEnvError.Variable","name":"Variable","kind":"attribute","modifiers":[],"parent":"tmux.FromEnvError","signatures":[],"type":"string","doc":{"summary":"Variable is the discovery variable name, never its value."},"source":{"file":"tmux/from_env.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FromEnvError.Variable","product":"core","slug":"tmux-fromenverror-variable"},{"id":"tmux.FromEnvError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.FromEnvError","signatures":[],"type":"string","doc":{"summary":"Reason describes why the variable cannot identify a tmux resource."},"source":{"file":"tmux/from_env.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FromEnvError.Reason","product":"core","slug":"tmux-fromenverror-reason"},{"id":"tmux.FromEnvError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.FromEnvError","signatures":[{"raw":"func (e *FromEnvError) Error() string","params":[],"receiver":{"name":"e","type":"*FromEnvError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/from_env.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FromEnvError.Error","product":"core","slug":"tmux-fromenverror-error"},{"id":"tmux.FromEnvError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.FromEnvError","signatures":[{"raw":"func (e *FromEnvError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*FromEnvError"},"returns":"error"}],"doc":{"summary":"Unwrap makes FromEnvError compatible with ErrNotInsideTmux."},"source":{"file":"tmux/from_env.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FromEnvError.Unwrap","product":"core","slug":"tmux-fromenverror-unwrap"},{"id":"tmux.NewServerFromEnv","name":"NewServerFromEnv","kind":"function","modifiers":[],"signatures":[{"raw":"func NewServerFromEnv(environment map[string]string) (Server, error)","params":[{"name":"environment","type":"map[string]string"}],"returns":"(Server, error)"}],"doc":{"summary":"NewServerFromEnv returns a server configured from TMUX without starting tmux. It snapshots the process environment once. A nonnil environment supplies discovery values and overrides that snapshot for later tmux processes; an empty map therefore has no TMUX discovery value. Names follow the platform's environment rules and are case-insensitive on Windows."},"source":{"file":"tmux/from_env.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewServerFromEnv","product":"core","slug":"tmux-newserverfromenv"},{"id":"tmux.PaneFromEnv","name":"PaneFromEnv","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneFromEnv(ctx context.Context, environment map[string]string) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"environment","type":"map[string]string"}],"returns":"(Pane, error)"}],"doc":{"summary":"PaneFromEnv returns the pane identified by TMUX and TMUX_PANE. Nil reads the process environment; a nonnil empty map does not. Environment names are case-insensitive on Windows. It resolves the live hierarchy later through identity-checked tmux queries."},"source":{"file":"tmux/from_env.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFromEnv","product":"core","slug":"tmux-panefromenv"},{"id":"tmux.WindowFromEnv","name":"WindowFromEnv","kind":"function","modifiers":[],"signatures":[{"raw":"func WindowFromEnv(ctx context.Context, environment map[string]string) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"environment","type":"map[string]string"}],"returns":"(Window, error)"}],"doc":{"summary":"WindowFromEnv returns the window containing the pane identified by the environment. Nil reads the process environment; a nonnil empty map does not."},"source":{"file":"tmux/from_env.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFromEnv","product":"core","slug":"tmux-windowfromenv"},{"id":"tmux.SessionFromEnv","name":"SessionFromEnv","kind":"function","modifiers":[],"signatures":[{"raw":"func SessionFromEnv(ctx context.Context, environment map[string]string) (Session, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"environment","type":"map[string]string"}],"returns":"(Session, error)"}],"doc":{"summary":"SessionFromEnv returns the canonical session containing the environment's pane. Nil reads the process environment; a nonnil empty map does not."},"source":{"file":"tmux/from_env.go","line":84,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFromEnv","product":"core","slug":"tmux-sessionfromenv"},{"id":"tmux.Server.Sessions","name":"Sessions","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Sessions(ctx context.Context) ([]Session, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"([]Session, error)"}],"doc":{"summary":"Sessions materializes the server's sessions. Failures, including [ErrNoServer], remain errors rather than empty results.","examples":[{"lang":"console","intro":"List all sessions on a private server. Sessions reads a fresh snapshot; an absent daemon is an error, not an empty list. Names are sorted here only to make the example output independent of tmux ordering. Use Go 1.26.0 or newer and tmux 3.2a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-go.git libtmux-source && \\\n git -C libtmux-source checkout 6f3df55f8a41999e41225eefb3940545b834e6a2\n"},{"lang":"go","intro":"Save this dependency file as go.mod:","code":"module example.com/libtmux-api\n\ngo 1.26.0\n\nrequire github.com/libtmux/libtmux-go v0.0.0\n\nreplace github.com/libtmux/libtmux-go => ./libtmux-source\n"},{"lang":"go","intro":"Save this complete example as example_test.go. It creates a private temporary socket and stops its server before removing the directory. Cleanup failure fails the example and retains the socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-go/blob/6f3df55f8a41999e41225eefb3940545b834e6a2/tmux/api_server_sessions_example_test.go","code":"package tmux_test\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"slices\"\n\t\"time\"\n\n\t\"github.com/libtmux/libtmux-go/tmux\"\n)\n\n// List all sessions on a private server. Sessions reads a fresh snapshot;\n// an absent daemon is an error, not an empty list. Names are sorted here\n// only to make the example output independent of tmux ordering.\nfunc ExampleServer_Sessions_complete() {\n\trun := func() (runErr error) {\n\t\tdirectory, err := os.MkdirTemp(\"\", \"libtmux-go-api-\")\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create socket directory: %w\", err)\n\t\t}\n\t\tserver, err := tmux.NewServer(tmux.ServerOptions{\n\t\t\tSocketPath: filepath.Join(directory, \"tmux.sock\"),\n\t\t\tConfigFile: \"/dev/null\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errors.Join(err, os.RemoveAll(directory))\n\t\t}\n\t\tdefer func() {\n\t\t\t// Cleanup has its own deadline because the operation may have timed out.\n\t\t\tcleanup, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\t\t\tdefer cancel()\n\t\t\tif err := server.Kill(cleanup); err != nil && !errors.Is(err, tmux.ErrNoServer) {\n\t\t\t\trunErr = errors.Join(runErr, fmt.Errorf(\"stop server at %s: %w\", directory, err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\trunErr = errors.Join(runErr, os.RemoveAll(directory))\n\t\t}()\n\t\tctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)\n\t\tdefer cancel()\n\t\tfor _, name := range []string{\"work\", \"docs\"} {\n\t\t\tif _, err = server.NewSession(ctx, tmux.NewSessionRequest{\n\t\t\t\tName: name, WindowName: name + \"-editor\", Command: \"cat\", Width: 100, Height: 30,\n\t\t\t}); err != nil {\n\t\t\t\treturn fmt.Errorf(\"create %s session: %w\", name, err)\n\t\t\t}\n\t\t}\n\t\tsessions, err := server.Sessions(ctx)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"list sessions: %w\", err)\n\t\t}\n\t\tnames := make([]string, 0, len(sessions))\n\t\tfor _, session := range sessions {\n\t\t\tname, ok := session.Name()\n\t\t\tif !ok {\n\t\t\t\treturn fmt.Errorf(\"session %s has no name\", session.ID())\n\t\t\t}\n\t\t\tnames = append(names, name)\n\t\t}\n\t\tslices.Sort(names)\n\t\tfmt.Println(names)\n\t\treturn nil\n\t}\n\tif err := run(); err != nil {\n\t\tpanic(err)\n\t}\n\t// Output:\n\t// [docs work]\n}\n"},{"lang":"console","intro":"Run the saved file. Go checks the Output comment and fails on different output or an operation or cleanup error:","code":"$ GOWORK=off go test -count=1 -v example_test.go\n"}]},"source":{"file":"tmux/hierarchy.go","line":7,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Sessions","product":"core","slug":"tmux-server-sessions"},{"id":"tmux.Server.Windows","name":"Windows","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Windows(ctx context.Context) ([]Window, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"([]Window, error)"}],"doc":{"summary":"Windows materializes one record per winlink. Failures, including [ErrNoServer], remain errors rather than empty results.","examples":[{"lang":"console","intro":"List windows across every session on a private server. Each record is a winlink: linking one window into two sessions produces two records. This example gives each session one independently created window. Use Go 1.26.0 or newer and tmux 3.2a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-go.git libtmux-source && \\\n git -C libtmux-source checkout 6f3df55f8a41999e41225eefb3940545b834e6a2\n"},{"lang":"go","intro":"Save this dependency file as go.mod:","code":"module example.com/libtmux-api\n\ngo 1.26.0\n\nrequire github.com/libtmux/libtmux-go v0.0.0\n\nreplace github.com/libtmux/libtmux-go => ./libtmux-source\n"},{"lang":"go","intro":"Save this complete example as example_test.go. It creates a private temporary socket and stops its server before removing the directory. Cleanup failure fails the example and retains the socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-go/blob/6f3df55f8a41999e41225eefb3940545b834e6a2/tmux/api_server_windows_example_test.go","code":"package tmux_test\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"slices\"\n\t\"time\"\n\n\t\"github.com/libtmux/libtmux-go/tmux\"\n)\n\n// List windows across every session on a private server. Each record is a\n// winlink: linking one window into two sessions produces two records.\n// This example gives each session one independently created window.\nfunc ExampleServer_Windows_complete() {\n\trun := func() (runErr error) {\n\t\tdirectory, err := os.MkdirTemp(\"\", \"libtmux-go-api-\")\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create socket directory: %w\", err)\n\t\t}\n\t\tserver, err := tmux.NewServer(tmux.ServerOptions{\n\t\t\tSocketPath: filepath.Join(directory, \"tmux.sock\"),\n\t\t\tConfigFile: \"/dev/null\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errors.Join(err, os.RemoveAll(directory))\n\t\t}\n\t\tdefer func() {\n\t\t\t// Cleanup has its own deadline because the operation may have timed out.\n\t\t\tcleanup, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\t\t\tdefer cancel()\n\t\t\tif err := server.Kill(cleanup); err != nil && !errors.Is(err, tmux.ErrNoServer) {\n\t\t\t\trunErr = errors.Join(runErr, fmt.Errorf(\"stop server at %s: %w\", directory, err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\trunErr = errors.Join(runErr, os.RemoveAll(directory))\n\t\t}()\n\t\tctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)\n\t\tdefer cancel()\n\t\tfor _, name := range []string{\"work\", \"docs\"} {\n\t\t\tif _, err = server.NewSession(ctx, tmux.NewSessionRequest{\n\t\t\t\tName: name, WindowName: name + \"-editor\", Command: \"cat\", Width: 100, Height: 30,\n\t\t\t}); err != nil {\n\t\t\t\treturn fmt.Errorf(\"create %s session: %w\", name, err)\n\t\t\t}\n\t\t}\n\t\twindows, err := server.Windows(ctx)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"list windows: %w\", err)\n\t\t}\n\t\tnames := make([]string, 0, len(windows))\n\t\tfor _, window := range windows {\n\t\t\tname, ok := window.Name()\n\t\t\tif !ok {\n\t\t\t\treturn fmt.Errorf(\"window %s has no name\", window.ID())\n\t\t\t}\n\t\t\tnames = append(names, name)\n\t\t}\n\t\tslices.Sort(names)\n\t\tfmt.Println(names)\n\t\treturn nil\n\t}\n\tif err := run(); err != nil {\n\t\tpanic(err)\n\t}\n\t// Output:\n\t// [docs-editor work-editor]\n}\n"},{"lang":"console","intro":"Run the saved file. Go checks the Output comment and fails on different output or an operation or cleanup error:","code":"$ GOWORK=off go test -count=1 -v example_test.go\n"}]},"source":{"file":"tmux/hierarchy.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Windows","product":"core","slug":"tmux-server-windows"},{"id":"tmux.Server.Panes","name":"Panes","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Panes(ctx context.Context) ([]Pane, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"([]Pane, error)"}],"doc":{"summary":"Panes materializes pane records for every winlink. Failures, including [ErrNoServer], remain errors rather than empty results.","examples":[{"lang":"console","intro":"List pane records across every session and window on a private server. Panes materializes each linked view, so callers that link windows may see the same underlying pane ID in more than one session. Use Go 1.26.0 or newer and tmux 3.2a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-go.git libtmux-source && \\\n git -C libtmux-source checkout 6f3df55f8a41999e41225eefb3940545b834e6a2\n"},{"lang":"go","intro":"Save this dependency file as go.mod:","code":"module example.com/libtmux-api\n\ngo 1.26.0\n\nrequire github.com/libtmux/libtmux-go v0.0.0\n\nreplace github.com/libtmux/libtmux-go => ./libtmux-source\n"},{"lang":"go","intro":"Save this complete example as example_test.go. It creates a private temporary socket and stops its server before removing the directory. Cleanup failure fails the example and retains the socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-go/blob/6f3df55f8a41999e41225eefb3940545b834e6a2/tmux/api_server_panes_example_test.go","code":"package tmux_test\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"time\"\n\n\t\"github.com/libtmux/libtmux-go/tmux\"\n)\n\n// List pane records across every session and window on a private server.\n// Panes materializes each linked view, so callers that link windows may see\n// the same underlying pane ID in more than one session.\nfunc ExampleServer_Panes_complete() {\n\trun := func() (runErr error) {\n\t\tdirectory, err := os.MkdirTemp(\"\", \"libtmux-go-api-\")\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create socket directory: %w\", err)\n\t\t}\n\t\tserver, err := tmux.NewServer(tmux.ServerOptions{\n\t\t\tSocketPath: filepath.Join(directory, \"tmux.sock\"),\n\t\t\tConfigFile: \"/dev/null\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errors.Join(err, os.RemoveAll(directory))\n\t\t}\n\t\tdefer func() {\n\t\t\t// Cleanup has its own deadline because the operation may have timed out.\n\t\t\tcleanup, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\t\t\tdefer cancel()\n\t\t\tif err := server.Kill(cleanup); err != nil && !errors.Is(err, tmux.ErrNoServer) {\n\t\t\t\trunErr = errors.Join(runErr, fmt.Errorf(\"stop server at %s: %w\", directory, err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\trunErr = errors.Join(runErr, os.RemoveAll(directory))\n\t\t}()\n\t\tctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)\n\t\tdefer cancel()\n\t\tfor _, name := range []string{\"work\", \"docs\"} {\n\t\t\tif _, err = server.NewSession(ctx, tmux.NewSessionRequest{\n\t\t\t\tName: name, WindowName: name + \"-editor\", Command: \"cat\", Width: 100, Height: 30,\n\t\t\t}); err != nil {\n\t\t\t\treturn fmt.Errorf(\"create %s session: %w\", name, err)\n\t\t\t}\n\t\t}\n\t\tpanes, err := server.Panes(ctx)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"list panes: %w\", err)\n\t\t}\n\t\tfor _, pane := range panes {\n\t\t\tif pane.ID() == \"\" {\n\t\t\t\treturn errors.New(\"pane has no stable ID\")\n\t\t\t}\n\t\t}\n\t\tfmt.Println(\"panes:\", len(panes))\n\t\treturn nil\n\t}\n\tif err := run(); err != nil {\n\t\tpanic(err)\n\t}\n\t// Output:\n\t// panes: 2\n}\n"},{"lang":"console","intro":"Run the saved file. Go checks the Output comment and fails on different output or an operation or cleanup error:","code":"$ GOWORK=off go test -count=1 -v example_test.go\n"}]},"source":{"file":"tmux/hierarchy.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Panes","product":"core","slug":"tmux-server-panes"},{"id":"tmux.Server.Clients","name":"Clients","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Clients(ctx context.Context) ([]Client, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"([]Client, error)"}],"doc":{"summary":"Clients materializes attached clients. Failures, including [ErrNoServer], remain errors rather than empty results."},"source":{"file":"tmux/hierarchy.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Clients","product":"core","slug":"tmux-server-clients"},{"id":"tmux.SetHooksOptions","name":"SetHooksOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SetHooksOptions controls a bulk hook replacement. Its zero value preserves existing indices before applying the supplied sparse values."},"source":{"file":"tmux/hook_runtime.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetHooksOptions","product":"core","slug":"tmux-sethooksoptions"},{"id":"tmux.SetHooksOptions.ClearExisting","name":"ClearExisting","kind":"attribute","modifiers":[],"parent":"tmux.SetHooksOptions","signatures":[],"type":"bool","doc":{"summary":"ClearExisting unsets every existing index before applying Values."},"source":{"file":"tmux/hook_runtime.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetHooksOptions.ClearExisting","product":"core","slug":"tmux-sethooksoptions-clearexisting"},{"id":"tmux.SetHooksResult","name":"SetHooksResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SetHooksResult reports only side effects confirmed before return."},"source":{"file":"tmux/hook_runtime.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetHooksResult","product":"core","slug":"tmux-sethooksresult"},{"id":"tmux.SetHooksResult.Cleared","name":"Cleared","kind":"attribute","modifiers":[],"parent":"tmux.SetHooksResult","signatures":[],"type":"bool","doc":{"summary":"Cleared reports that all existing hook indices were confirmed cleared."},"source":{"file":"tmux/hook_runtime.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetHooksResult.Cleared","product":"core","slug":"tmux-sethooksresult-cleared"},{"id":"tmux.SetHooksResult.AppliedIndices","name":"AppliedIndices","kind":"attribute","modifiers":[],"parent":"tmux.SetHooksResult","signatures":[],"type":"[]int","doc":{"summary":"AppliedIndices is an owned ascending list of indices confirmed applied."},"source":{"file":"tmux/hook_runtime.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetHooksResult.AppliedIndices","product":"core","slug":"tmux-sethooksresult-appliedindices"},{"id":"tmux.GlobalSessionScope.Hooks","name":"Hooks","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) Hooks(ctx context.Context) (ServerHookValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"(ServerHookValues, error)"}],"doc":{"summary":"Hooks returns a freshly decoded, caller-owned view of known global session-scope hooks, including inherited values. A read failure is returned rather than answered with zero values."},"source":{"file":"tmux/hook_runtime.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.Hooks","product":"core","slug":"tmux-globalsessionscope-hooks"},{"id":"tmux.GlobalWindowScope.Hooks","name":"Hooks","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) Hooks(ctx context.Context) (WindowHookValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"(WindowHookValues, error)"}],"doc":{"summary":"Hooks returns a freshly decoded, caller-owned view of known global window hooks, including defaults. A read failure is returned rather than answered with zero values; context errors propagate."},"source":{"file":"tmux/hook_runtime.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.Hooks","product":"core","slug":"tmux-globalwindowscope-hooks"},{"id":"tmux.Session.Hooks","name":"Hooks","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Hooks(ctx context.Context) (SessionHookValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"(SessionHookValues, error)"}],"doc":{"summary":"Hooks returns a freshly decoded, caller-owned view of known hooks at this stable session target, including inherited values. A read failure is returned rather than answered with zero values."},"source":{"file":"tmux/hook_runtime.go","line":65,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Hooks","product":"core","slug":"tmux-session-hooks"},{"id":"tmux.Window.Hooks","name":"Hooks","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Hooks(ctx context.Context) (WindowHookValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"(WindowHookValues, error)"}],"doc":{"summary":"Hooks returns a freshly decoded, caller-owned view of known hooks at this exact window target, including inherited values. The receiver's exact linked session context controls tmux format evaluation. A read failure is returned rather than answered with zero values."},"source":{"file":"tmux/hook_runtime.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Hooks","product":"core","slug":"tmux-window-hooks"},{"id":"tmux.Pane.Hooks","name":"Hooks","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Hooks(ctx context.Context) (PaneHookValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"(PaneHookValues, error)"}],"doc":{"summary":"Hooks returns a freshly decoded, caller-owned view of known hooks at this exact pane target, including inherited values. The receiver's exact linked session context controls tmux format evaluation. A read failure is returned rather than answered with zero values."},"source":{"file":"tmux/hook_runtime.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Hooks","product":"core","slug":"tmux-pane-hooks"},{"id":"tmux.GlobalSessionScope.RawHook","name":"RawHook","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) RawHook(ctx context.Context, name string) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawHook returns one exact global session-scope hook value. A successful string is caller-owned; ok reports presence. Targeted reads do not use list leniency, and completed failures return a secret-safe option error. An unindexed empty hook array is ambiguous; use Hooks for typed presence."},"source":{"file":"tmux/hook_runtime.go","line":134,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.RawHook","product":"core","slug":"tmux-globalsessionscope-rawhook"},{"id":"tmux.GlobalWindowScope.RawHook","name":"RawHook","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) RawHook(\n\tctx context.Context,\n\tname string,\n) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawHook returns one exact global window-hook value. A successful string is caller-owned; ok reports presence and completed failures are returned. An unindexed empty hook array is ambiguous; use Hooks for typed presence."},"source":{"file":"tmux/hook_runtime.go","line":142,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.RawHook","product":"core","slug":"tmux-globalwindowscope-rawhook"},{"id":"tmux.Session.RawHook","name":"RawHook","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) RawHook(ctx context.Context, name string) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawHook returns one exact session hook value at this stable session target. A successful string is caller-owned; ok reports presence and completed failures are returned. An unindexed empty hook array is ambiguous; use Hooks for typed presence."},"source":{"file":"tmux/hook_runtime.go","line":153,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.RawHook","product":"core","slug":"tmux-session-rawhook"},{"id":"tmux.Window.RawHook","name":"RawHook","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) RawHook(ctx context.Context, name string) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawHook returns one exact window hook value at this exact window target. A successful string is caller-owned; the receiver's exact linked session context controls tmux format evaluation, and completed failures are returned."},"source":{"file":"tmux/hook_runtime.go","line":164,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.RawHook","product":"core","slug":"tmux-window-rawhook"},{"id":"tmux.Pane.RawHook","name":"RawHook","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) RawHook(ctx context.Context, name string) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawHook returns one exact pane hook value at this exact pane target. A successful string is caller-owned; the receiver's exact linked session context controls tmux format evaluation, and completed failures are returned."},"source":{"file":"tmux/hook_runtime.go","line":175,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.RawHook","product":"core","slug":"tmux-pane-rawhook"},{"id":"tmux.GlobalSessionScope.SetHook","name":"SetHook","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetHook stores a global session-scope hook without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/hook_runtime.go","line":186,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetHook","product":"core","slug":"tmux-globalsessionscope-sethook"},{"id":"tmux.GlobalWindowScope.SetHook","name":"SetHook","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetHook stores a global window hook without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/hook_runtime.go","line":193,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetHook","product":"core","slug":"tmux-globalwindowscope-sethook"},{"id":"tmux.Session.SetHook","name":"SetHook","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetHook stores a session hook at this stable session target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/hook_runtime.go","line":208,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetHook","product":"core","slug":"tmux-session-sethook"},{"id":"tmux.Window.SetHook","name":"SetHook","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetHook stores a window hook at this exact window target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/hook_runtime.go","line":219,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetHook","product":"core","slug":"tmux-window-sethook"},{"id":"tmux.Pane.SetHook","name":"SetHook","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetHook stores a pane hook at this exact pane target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/hook_runtime.go","line":230,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetHook","product":"core","slug":"tmux-pane-sethook"},{"id":"tmux.GlobalSessionScope.AppendHook","name":"AppendHook","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) AppendHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"AppendHook appends a global session-scope hook without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the append."},"source":{"file":"tmux/hook_runtime.go","line":241,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.AppendHook","product":"core","slug":"tmux-globalsessionscope-appendhook"},{"id":"tmux.GlobalWindowScope.AppendHook","name":"AppendHook","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) AppendHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"AppendHook appends a command to a global window hook without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the append."},"source":{"file":"tmux/hook_runtime.go","line":248,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.AppendHook","product":"core","slug":"tmux-globalwindowscope-appendhook"},{"id":"tmux.Session.AppendHook","name":"AppendHook","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) AppendHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"AppendHook appends a session hook at this stable session target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the append."},"source":{"file":"tmux/hook_runtime.go","line":263,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.AppendHook","product":"core","slug":"tmux-session-appendhook"},{"id":"tmux.Window.AppendHook","name":"AppendHook","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) AppendHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"AppendHook appends a window hook at this exact window target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the append."},"source":{"file":"tmux/hook_runtime.go","line":274,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.AppendHook","product":"core","slug":"tmux-window-appendhook"},{"id":"tmux.Pane.AppendHook","name":"AppendHook","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) AppendHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"AppendHook appends a pane hook at this exact pane target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the append."},"source":{"file":"tmux/hook_runtime.go","line":285,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.AppendHook","product":"core","slug":"tmux-pane-appendhook"},{"id":"tmux.GlobalSessionScope.UnsetHook","name":"UnsetHook","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) UnsetHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"UnsetHook removes every matching global session-scope hook index without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the unset."},"source":{"file":"tmux/hook_runtime.go","line":296,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.UnsetHook","product":"core","slug":"tmux-globalsessionscope-unsethook"},{"id":"tmux.GlobalWindowScope.UnsetHook","name":"UnsetHook","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) UnsetHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"UnsetHook removes every matching global window-hook index without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the unset."},"source":{"file":"tmux/hook_runtime.go","line":303,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.UnsetHook","product":"core","slug":"tmux-globalwindowscope-unsethook"},{"id":"tmux.Session.UnsetHook","name":"UnsetHook","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) UnsetHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"UnsetHook removes every matching session hook index at this stable session target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove the unset was accepted."},"source":{"file":"tmux/hook_runtime.go","line":318,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.UnsetHook","product":"core","slug":"tmux-session-unsethook"},{"id":"tmux.Window.UnsetHook","name":"UnsetHook","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) UnsetHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"UnsetHook removes every matching window hook index at this exact window target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove the unset was accepted."},"source":{"file":"tmux/hook_runtime.go","line":329,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.UnsetHook","product":"core","slug":"tmux-window-unsethook"},{"id":"tmux.Pane.UnsetHook","name":"UnsetHook","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) UnsetHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"UnsetHook removes every matching pane hook index at this exact pane target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove the unset was accepted."},"source":{"file":"tmux/hook_runtime.go","line":340,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.UnsetHook","product":"core","slug":"tmux-pane-unsethook"},{"id":"tmux.GlobalSessionScope.RunHook","name":"RunHook","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) RunHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"RunHook asks tmux to run one global hook directly. It intentionally performs no racy target preflight; stale targets and global execution context remain tmux-defined. Completed failures are secret-safe option errors; cancellation does not prove hook delivery or execution did not occur."},"source":{"file":"tmux/hook_runtime.go","line":352,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.RunHook","product":"core","slug":"tmux-globalsessionscope-runhook"},{"id":"tmux.GlobalWindowScope.RunHook","name":"RunHook","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) RunHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"RunHook asks tmux to run one global window hook directly. It targets global window scope rather than a receiver, returns secret-safe option errors for completed failures, and cancellation does not prove hook delivery or execution did not occur."},"source":{"file":"tmux/hook_runtime.go","line":360,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.RunHook","product":"core","slug":"tmux-globalwindowscope-runhook"},{"id":"tmux.Session.RunHook","name":"RunHook","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) RunHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"RunHook asks tmux to run one session hook directly at this stable target. It intentionally performs no racy liveness preflight after validation. Completed failures are secret-safe option errors; cancellation does not prove execution did not occur."},"source":{"file":"tmux/hook_runtime.go","line":376,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.RunHook","product":"core","slug":"tmux-session-runhook"},{"id":"tmux.Window.RunHook","name":"RunHook","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) RunHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"RunHook asks tmux to run one window hook directly at this exact target. The receiver's exact linked session context controls tmux format evaluation; no racy preflight is issued. Completed failures are secret-safe option errors; cancellation does not prove execution did not occur."},"source":{"file":"tmux/hook_runtime.go","line":388,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.RunHook","product":"core","slug":"tmux-window-runhook"},{"id":"tmux.Pane.RunHook","name":"RunHook","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) RunHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"RunHook asks tmux to run one pane hook directly at this exact target. The receiver's exact linked session context controls tmux format evaluation; no racy preflight is issued. Completed failures are secret-safe option errors; cancellation does not prove execution did not occur."},"source":{"file":"tmux/hook_runtime.go","line":400,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.RunHook","product":"core","slug":"tmux-pane-runhook"},{"id":"tmux.GlobalSessionScope.SetHooks","name":"SetHooks","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetHooks(\n\tctx context.Context,\n\tname string,\n\tvalues SparseArray[string],\n\toptions SetHooksOptions,\n) (SetHooksResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"values","type":"SparseArray[string]"},{"name":"options","type":"SetHooksOptions"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"(SetHooksResult, error)"}],"doc":{"summary":"SetHooks applies indexed global session-scope hook commands in ascending order. With ClearExisting it confirms clearing before applying sparse Values. It stops at the first failure without rollback; the returned result reports only confirmed partial progress and owns AppliedIndices. Cancellation may follow accepted commands and cannot disprove their delivery."},"source":{"file":"tmux/hook_runtime.go","line":413,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetHooks","product":"core","slug":"tmux-globalsessionscope-sethooks"},{"id":"tmux.GlobalWindowScope.SetHooks","name":"SetHooks","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetHooks(\n\tctx context.Context,\n\tname string,\n\tvalues SparseArray[string],\n\toptions SetHooksOptions,\n) (SetHooksResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"values","type":"SparseArray[string]"},{"name":"options","type":"SetHooksOptions"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"(SetHooksResult, error)"}],"doc":{"summary":"SetHooks applies indexed global window-hook commands in ascending order. With ClearExisting it confirms clearing before applying sparse Values, stops at the first failure without rollback, and reports confirmed progress. Cancellation may follow accepted commands and cannot disprove their delivery."},"source":{"file":"tmux/hook_runtime.go","line":426,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetHooks","product":"core","slug":"tmux-globalwindowscope-sethooks"},{"id":"tmux.Session.SetHooks","name":"SetHooks","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetHooks(\n\tctx context.Context,\n\tname string,\n\tvalues SparseArray[string],\n\toptions SetHooksOptions,\n) (SetHooksResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"values","type":"SparseArray[string]"},{"name":"options","type":"SetHooksOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"(SetHooksResult, error)"}],"doc":{"summary":"SetHooks applies indexed session hook commands in ascending order at this handle's stable session target. With ClearExisting it confirms clearing first, stops at the first failure without rollback, and reports confirmed partial progress. Cancellation may follow accepted commands and cannot disprove their delivery."},"source":{"file":"tmux/hook_runtime.go","line":448,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetHooks","product":"core","slug":"tmux-session-sethooks"},{"id":"tmux.Window.SetHooks","name":"SetHooks","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetHooks(\n\tctx context.Context,\n\tname string,\n\tvalues SparseArray[string],\n\toptions SetHooksOptions,\n) (SetHooksResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"values","type":"SparseArray[string]"},{"name":"options","type":"SetHooksOptions"}],"receiver":{"name":"w","type":"Window"},"returns":"(SetHooksResult, error)"}],"doc":{"summary":"SetHooks applies indexed window hook commands in ascending order at this handle's exact window target. With ClearExisting it confirms clearing first, stops at the first failure without rollback, and reports confirmed progress. Cancellation may follow accepted commands and cannot disprove their delivery."},"source":{"file":"tmux/hook_runtime.go","line":465,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetHooks","product":"core","slug":"tmux-window-sethooks"},{"id":"tmux.Pane.SetHooks","name":"SetHooks","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetHooks(\n\tctx context.Context,\n\tname string,\n\tvalues SparseArray[string],\n\toptions SetHooksOptions,\n) (SetHooksResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"values","type":"SparseArray[string]"},{"name":"options","type":"SetHooksOptions"}],"receiver":{"name":"p","type":"Pane"},"returns":"(SetHooksResult, error)"}],"doc":{"summary":"SetHooks applies indexed pane hook commands in ascending order at this handle's exact pane target. With ClearExisting it confirms clearing first, stops at the first failure without rollback, and reports confirmed progress. Cancellation may follow accepted commands and cannot disprove their delivery."},"source":{"file":"tmux/hook_runtime.go","line":482,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetHooks","product":"core","slug":"tmux-pane-sethooks"},{"id":"tmux.ErrDaemonReplaced","name":"ErrDaemonReplaced","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrDaemonReplaced identifies an operation refused because the tmux server instance that produced a materialized value no longer occupies its socket."},"source":{"file":"tmux/identity.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrDaemonReplaced","product":"core","slug":"tmux-errdaemonreplaced"},{"id":"tmux.Server.Equal","name":"Equal","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Equal(other Server) bool","params":[{"name":"other","type":"Server"}],"receiver":{"name":"s","type":"Server"},"returns":"bool"}],"doc":{"summary":"Equal reports whether both handles currently select the same socket path. It evaluates relative paths and environment-dependent named and default sockets against each handle's frozen binding."},"source":{"file":"tmux/identity.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Equal","product":"core","slug":"tmux-server-equal"},{"id":"tmux.Server.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) String() string","params":[],"receiver":{"name":"s","type":"Server"},"returns":"string"}],"doc":{"summary":"String returns a concise representation of the server selector."},"source":{"file":"tmux/identity.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.String","product":"core","slug":"tmux-server-string"},{"id":"tmux.Session.Equal","name":"Equal","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Equal(other Session) bool","params":[{"name":"other","type":"Session"}],"receiver":{"name":"s","type":"Session"},"returns":"bool"}],"doc":{"summary":"Equal reports whether two session records carry the same stable ID and tmux server provenance."},"source":{"file":"tmux/identity.go","line":59,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Equal","product":"core","slug":"tmux-session-equal"},{"id":"tmux.Session.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) String() string","params":[],"receiver":{"name":"s","type":"Session"},"returns":"string"}],"doc":{"summary":"String returns the session's stable ID and queried name."},"source":{"file":"tmux/identity.go","line":64,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.String","product":"core","slug":"tmux-session-string"},{"id":"tmux.Window.Equal","name":"Equal","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Equal(other Window) bool","params":[{"name":"other","type":"Window"}],"receiver":{"name":"w","type":"Window"},"returns":"bool"}],"doc":{"summary":"Equal reports whether two window records carry the same stable window ID. It intentionally collapses linked-session views with different sessions or indexes; use SessionID, WindowID, and WindowIndex for exact view identity."},"source":{"file":"tmux/identity.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Equal","product":"core","slug":"tmux-window-equal"},{"id":"tmux.Window.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) String() string","params":[],"receiver":{"name":"w","type":"Window"},"returns":"string"}],"doc":{"summary":"String returns the winlink identity and its materialized parent, when present."},"source":{"file":"tmux/identity.go","line":79,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.String","product":"core","slug":"tmux-window-string"},{"id":"tmux.Pane.Equal","name":"Equal","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Equal(other Pane) bool","params":[{"name":"other","type":"Pane"}],"receiver":{"name":"p","type":"Pane"},"returns":"bool"}],"doc":{"summary":"Equal reports whether two pane records carry the same stable pane ID. It intentionally collapses linked-session views; a pane's exact view identity includes SessionID, WindowID, WindowIndex, and PaneID."},"source":{"file":"tmux/identity.go","line":91,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Equal","product":"core","slug":"tmux-pane-equal"},{"id":"tmux.Pane.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) String() string","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"string"}],"doc":{"summary":"String returns the pane identity and its materialized parent, when present."},"source":{"file":"tmux/identity.go","line":96,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.String","product":"core","slug":"tmux-pane-string"},{"id":"tmux.Client.Equal","name":"Equal","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Equal(other Client) bool","params":[{"name":"other","type":"Client"}],"receiver":{"name":"c","type":"Client"},"returns":"bool"}],"doc":{"summary":"Equal reports whether two clients carry the same stable client name and tmux server provenance."},"source":{"file":"tmux/identity.go","line":106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Equal","product":"core","slug":"tmux-client-equal"},{"id":"tmux.Client.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) String() string","params":[],"receiver":{"name":"c","type":"Client"},"returns":"string"}],"doc":{"summary":"String returns the client's stable name."},"source":{"file":"tmux/identity.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.String","product":"core","slug":"tmux-client-string"},{"id":"tmux.ErrInvalidRequest","name":"ErrInvalidRequest","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidRequest identifies lifecycle options rejected before execution."},"source":{"file":"tmux/lifecycle.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidRequest","product":"core","slug":"tmux-errinvalidrequest"},{"id":"tmux.ErrInvalidCommandOutput","name":"ErrInvalidCommandOutput","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidCommandOutput identifies malformed identity output from tmux."},"source":{"file":"tmux/lifecycle.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidCommandOutput","product":"core","slug":"tmux-errinvalidcommandoutput"},{"id":"tmux.PaneDirection","name":"PaneDirection","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneDirection selects where a tiled pane is created or moved on tmux 3.2a or later. Its zero value places the pane below the target."},"source":{"file":"tmux/lifecycle.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneDirection","product":"core","slug":"tmux-panedirection"},{"id":"tmux.PaneDirectionBelow","name":"PaneDirectionBelow","kind":"constant","modifiers":[],"signatures":[],"type":"PaneDirection","doc":{"summary":"PaneDirectionBelow places the pane below the target."},"source":{"file":"tmux/lifecycle.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneDirectionBelow","product":"core","slug":"tmux-panedirectionbelow"},{"id":"tmux.PaneDirectionAbove","name":"PaneDirectionAbove","kind":"constant","modifiers":[],"signatures":[],"type":"PaneDirection","doc":{"summary":"PaneDirectionAbove places the pane above the target."},"source":{"file":"tmux/lifecycle.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneDirectionAbove","product":"core","slug":"tmux-panedirectionabove"},{"id":"tmux.PaneDirectionRight","name":"PaneDirectionRight","kind":"constant","modifiers":[],"signatures":[],"type":"PaneDirection","doc":{"summary":"PaneDirectionRight places the pane to the right of the target."},"source":{"file":"tmux/lifecycle.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneDirectionRight","product":"core","slug":"tmux-panedirectionright"},{"id":"tmux.PaneDirectionLeft","name":"PaneDirectionLeft","kind":"constant","modifiers":[],"signatures":[],"type":"PaneDirection","doc":{"summary":"PaneDirectionLeft places the pane to the left of the target."},"source":{"file":"tmux/lifecycle.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneDirectionLeft","product":"core","slug":"tmux-panedirectionleft"},{"id":"tmux.SessionKillRequest","name":"SessionKillRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SessionKillRequest configures kill-session on tmux 3.2a or later. Its zero value destroys the receiver session. AllExcept destroys other sessions instead, while ClearAlerts is non-destructive. AllExcept, ClearAlerts, and Group are mutually exclusive because tmux applies a hidden precedence when more than one mode is supplied; the package rejects those combinations before execution. Group's compatibility behavior is documented on that field."},"source":{"file":"tmux/lifecycle_kill.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionKillRequest","product":"core","slug":"tmux-sessionkillrequest"},{"id":"tmux.SessionKillRequest.AllExcept","name":"AllExcept","kind":"attribute","modifiers":[],"parent":"tmux.SessionKillRequest","signatures":[],"type":"bool","doc":{"summary":"AllExcept terminates every other session and detaches their clients while preserving the receiver session."},"source":{"file":"tmux/lifecycle_kill.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionKillRequest.AllExcept","product":"core","slug":"tmux-sessionkillrequest-allexcept"},{"id":"tmux.SessionKillRequest.ClearAlerts","name":"ClearAlerts","kind":"attribute","modifiers":[],"parent":"tmux.SessionKillRequest","signatures":[],"type":"bool","doc":{"summary":"ClearAlerts clears bell, activity, and silence alerts in every window linked to the receiver without destroying a session or detaching its clients."},"source":{"file":"tmux/lifecycle_kill.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionKillRequest.ClearAlerts","product":"core","slug":"tmux-sessionkillrequest-clearalerts"},{"id":"tmux.SessionKillRequest.Group","name":"Group","kind":"attribute","modifiers":[],"parent":"tmux.SessionKillRequest","signatures":[],"type":"bool","doc":{"summary":"Group terminates every session in the receiver's group and detaches their clients. It requires tmux 3.7; see UnsupportedPolicy."},"source":{"file":"tmux/lifecycle_kill.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionKillRequest.Group","product":"core","slug":"tmux-sessionkillrequest-group"},{"id":"tmux.KillWindowRequest","name":"KillWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"KillWindowRequest selects a window for [Session.KillWindow] on tmux 3.2a or later. A zero request kills the receiver session's current window, and Index is scoped to that session. Target is unrestricted tmux target syntax and may select a window in another session. Target and Index are mutually exclusive and are checked before execution. Pointer values are read during the call and are not retained; callers must not mutate them concurrently. A nil pointer omits its selector, while a nonnil pointer is explicit even when Target points to an empty string."},"source":{"file":"tmux/lifecycle_kill.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.KillWindowRequest","product":"core","slug":"tmux-killwindowrequest"},{"id":"tmux.KillWindowRequest.Target","name":"Target","kind":"attribute","modifiers":[],"parent":"tmux.KillWindowRequest","signatures":[],"type":"*string","doc":{"summary":"Target is passed through as unrestricted tmux target syntax when nonnil."},"source":{"file":"tmux/lifecycle_kill.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.KillWindowRequest.Target","product":"core","slug":"tmux-killwindowrequest-target"},{"id":"tmux.KillWindowRequest.Index","name":"Index","kind":"attribute","modifiers":[],"parent":"tmux.KillWindowRequest","signatures":[],"type":"*int","doc":{"summary":"Index selects a winlink index within the receiver session when nonnil."},"source":{"file":"tmux/lifecycle_kill.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.KillWindowRequest.Index","product":"core","slug":"tmux-killwindowrequest-index"},{"id":"tmux.Server.Kill","name":"Kill","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Kill(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"Kill terminates the configured tmux server and all of its sessions, windows, panes, and clients. After a completed failed kill, a liveness probe makes repeated calls harmless when no daemon answers. Transport or context errors can be delivery-ambiguous; no rollback is attempted.","body":"tmux leaves the socket file in place, so cleanup that waits for the path to\ndisappear does not finish. Use [Server.IsAlive] to observe the daemon, and\nremove a socket path this process chose itself."},"source":{"file":"tmux/lifecycle_kill.go","line":51,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Kill","product":"core","slug":"tmux-server-kill"},{"id":"tmux.Server.KillSession","name":"KillSession","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) KillSession(ctx context.Context, target string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"target","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"KillSession terminates the session selected by tmux target syntax. Pattern and prefix matching are deliberately left to tmux. Completed nonzero exits without stderr are ignored. Transport and context errors are delivery-ambiguous."},"source":{"file":"tmux/lifecycle_kill.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.KillSession","product":"core","slug":"tmux-server-killsession"},{"id":"tmux.Session.Kill","name":"Kill","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Kill(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"Kill destroys the receiver session and removes its winlinks. Ordinary attached clients detach; on tmux 3.6 or later, clients carrying no-detach-on-destroy move to another session when one exists. A window with no remaining links and all of that window's panes are also destroyed. The materialized receiver is not refreshed. Only stderr makes a completed command a [CommandError]; nonzero exits without stderr are ignored. Transport errors are delivery-ambiguous. Kill is equivalent to [Session.KillWith] with a zero [SessionKillRequest]."},"source":{"file":"tmux/lifecycle_kill.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Kill","product":"core","slug":"tmux-session-kill"},{"id":"tmux.Session.KillWith","name":"KillWith","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) KillWith(ctx context.Context, request SessionKillRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SessionKillRequest"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"KillWith applies one kill-session mode without refreshing the materialized receiver. The zero request destroys the receiver; AllExcept destroys every other session while preserving the receiver and its current window; ClearAlerts only clears alerts in windows linked to the receiver and leaves sessions, winlinks, panes, client attachments, and current-window selections unchanged. Destroying a session handles clients as [Session.Kill] describes and removes its winlinks; windows left without links and their panes are also destroyed. Group destroys the receiver's group and requires tmux 3.7; on older versions it follows [UnsupportedPolicy].","body":"The three modes are mutually exclusive. Only stderr makes a completed command\na [CommandError]; nonzero exits without stderr are ignored. Transport errors\nare delivery-ambiguous."},"source":{"file":"tmux/lifecycle_kill.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.KillWith","product":"core","slug":"tmux-session-killwith"},{"id":"tmux.Session.KillWindow","name":"KillWindow","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) KillWindow(ctx context.Context, request KillWindowRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"KillWindowRequest"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"KillWindow destroys one stable window. When Target and Index are nil it selects the receiver session's current window, and Index selects a winlink in that session. A nonnil Target is forwarded as unrestricted tmux target syntax and may select a window in another session. The selected stable window is removed from every session and its panes are destroyed. Affected sessions preserve their current selection unless this window was current, in which case they select another. A session left without windows is destroyed; [Session.Kill] describes how tmux handles its clients.","body":"Target and Index are mutually exclusive. The receiver is not refreshed. Only\nstderr makes a completed command a [CommandError]; nonzero exits without\nstderr are ignored. Transport errors are delivery-ambiguous."},"source":{"file":"tmux/lifecycle_kill.go","line":169,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.KillWindow","product":"core","slug":"tmux-session-killwindow"},{"id":"tmux.Window.Kill","name":"Kill","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Kill(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"Kill destroys the stable window selected by the receiver's WindowID, removes all of its winlinks, and destroys its panes. Affected sessions preserve their current selection unless this window was current, in which case they select another. A session left without windows is destroyed; [Session.Kill] describes how tmux handles its clients. The receiver is not refreshed. Only stderr makes a completed command a [CommandError]; nonzero exits without stderr are ignored."},"source":{"file":"tmux/lifecycle_kill.go","line":205,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Kill","product":"core","slug":"tmux-window-kill"},{"id":"tmux.Window.KillOthers","name":"KillOthers","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) KillOthers(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"KillOthers destroys every other stable window selected through the receiver's exact session and leaves the receiver as that session's current and only window. Links in other sessions are not selected merely because they share the receiver's [WindowID], but every selected stable window is removed from all sessions. Other affected sessions preserve their current selection unless a destroyed window was current, in which case they select another. A session left without windows is destroyed; [Session.Kill] describes how tmux handles its clients. The receiver is not refreshed. Only stderr makes a completed command a [CommandError]; nonzero exits without stderr are ignored."},"source":{"file":"tmux/lifecycle_kill.go","line":220,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.KillOthers","product":"core","slug":"tmux-window-killothers"},{"id":"tmux.Pane.Kill","name":"Kill","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Kill(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"Kill destroys the receiver pane through its exact linked-pane target. If panes remain and the receiver was active, tmux selects another active pane. If this was the last pane, tmux also destroys the window and removes all of its winlinks. Affected sessions preserve their current selection unless the destroyed window was current, in which case they select another. A session left without windows is destroyed; [Session.Kill] describes how tmux handles its clients. The receiver is not refreshed. Only stderr makes a completed command a [CommandError]; nonzero exits without stderr are ignored."},"source":{"file":"tmux/lifecycle_kill.go","line":237,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Kill","product":"core","slug":"tmux-pane-kill"},{"id":"tmux.Pane.KillOthers","name":"KillOthers","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) KillOthers(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"KillOthers destroys every other pane in the receiver's stable window and leaves the receiver as its sole active pane. It does not select the exact winlink as its session's current window or promise client focus, and it does not destroy a window or session. The receiver is not refreshed. Only stderr makes a completed command a [CommandError]; nonzero exits without stderr are ignored."},"source":{"file":"tmux/lifecycle_kill.go","line":247,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.KillOthers","product":"core","slug":"tmux-pane-killothers"},{"id":"tmux.Server.Session","name":"Session","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Session(ctx context.Context, id SessionID) (Session, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"id","type":"SessionID"}],"receiver":{"name":"s","type":"Server"},"returns":"(Session, error)"}],"doc":{"summary":"Session performs a canonical live lookup of id and returns a newly materialized record. Use [Session.Refresh] when beginning from a record."},"source":{"file":"tmux/lookup.go","line":10,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Session","product":"core","slug":"tmux-server-session"},{"id":"tmux.Server.SessionByName","name":"SessionByName","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SessionByName(ctx context.Context, name string) (Session, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"(Session, error)"}],"doc":{"summary":"SessionByName performs a live lookup of the session tmux knows by name and returns a newly materialized record. A name no session holds reports [ErrNotFound].","body":"tmux keeps session names unique, so a name identifies one session for as\nlong as it keeps it. A [SessionID] does not change, which is why the records\nthis package hands back carry one and [Server.Session] takes one; a name is\nwhat a person types and what a workspace file records."},"source":{"file":"tmux/lookup.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SessionByName","product":"core","slug":"tmux-server-sessionbyname"},{"id":"tmux.Server.Window","name":"Window","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Window(ctx context.Context, id WindowID) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"id","type":"WindowID"}],"receiver":{"name":"s","type":"Server"},"returns":"(Window, error)"}],"doc":{"summary":"Window performs a canonical live lookup of id using tmux's canonical session and returns a newly materialized record. It does not preserve a linked-session view; use [Window.ResolveSession] for that exact relationship."},"source":{"file":"tmux/lookup.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Window","product":"core","slug":"tmux-server-window"},{"id":"tmux.Server.Pane","name":"Pane","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Pane(ctx context.Context, id PaneID) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"id","type":"PaneID"}],"receiver":{"name":"s","type":"Server"},"returns":"(Pane, error)"}],"doc":{"summary":"Pane performs a canonical live lookup of id using tmux's canonical session and returns a newly materialized record. It does not preserve a linked-session view; use [Pane.ResolveWindow] for that exact relationship."},"source":{"file":"tmux/lookup.go","line":78,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Pane","product":"core","slug":"tmux-server-pane"},{"id":"tmux.Server.Client","name":"Client","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Client(ctx context.Context, name ClientName) (Client, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"ClientName"}],"receiver":{"name":"s","type":"Server"},"returns":"(Client, error)"}],"doc":{"summary":"Client performs a canonical live lookup of name and returns a new record."},"source":{"file":"tmux/lookup.go","line":93,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Client","product":"core","slug":"tmux-server-client"},{"id":"tmux.Session.Refresh","name":"Refresh","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Refresh(ctx context.Context) (Session, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"(Session, error)"}],"doc":{"summary":"Refresh performs a canonical live lookup without mutating the receiver."},"source":{"file":"tmux/lookup.go","line":108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Refresh","product":"core","slug":"tmux-session-refresh"},{"id":"tmux.Window.Refresh","name":"Refresh","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Refresh(ctx context.Context) (Window, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"(Window, error)"}],"doc":{"summary":"Refresh performs a canonical live lookup for the window's stable ID and returns a new record without mutating the receiver. It does not preserve a linked-session view; use [Window.ResolveSession] for exact relationships."},"source":{"file":"tmux/lookup.go","line":115,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Refresh","product":"core","slug":"tmux-window-refresh"},{"id":"tmux.Pane.Refresh","name":"Refresh","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Refresh(ctx context.Context) (Pane, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"Refresh performs a canonical live lookup for the pane's stable ID and returns a new record without mutating the receiver. It does not preserve a linked-session view; use [Pane.ResolveWindow] for exact relationships."},"source":{"file":"tmux/lookup.go","line":122,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Refresh","product":"core","slug":"tmux-pane-refresh"},{"id":"tmux.Client.Refresh","name":"Refresh","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Refresh(ctx context.Context) (Client, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"Client"},"returns":"(Client, error)"}],"doc":{"summary":"Refresh performs a canonical live lookup without mutating the receiver."},"source":{"file":"tmux/lookup.go","line":127,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Refresh","product":"core","slug":"tmux-client-refresh"},{"id":"tmux.FormatValues.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON encodes the format expansions as tmux returned them. Nothing decodes: [json.Unmarshal] into this type reports no error and changes nothing, because every field is unexported."},"source":{"file":"tmux/marshal.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.MarshalJSON","product":"core","slug":"tmux-formatvalues-marshaljson"},{"id":"tmux.Session.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON encodes the session's identity and the format expansions tmux returned for it, under \"formats\". Nothing decodes: a decoded record would carry no [Server], so it could name a session it could never act on, and [json.Unmarshal] into this type reports no error and changes nothing."},"source":{"file":"tmux/marshal.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.MarshalJSON","product":"core","slug":"tmux-session-marshaljson"},{"id":"tmux.Window.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON encodes the window's identity, its place in the hierarchy, and the format expansions tmux returned for it. Nothing decodes; see [Session.MarshalJSON]."},"source":{"file":"tmux/marshal.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.MarshalJSON","product":"core","slug":"tmux-window-marshaljson"},{"id":"tmux.Pane.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON encodes the pane's identity, its place in the hierarchy, and the format expansions tmux returned for it. Nothing decodes; see [Session.MarshalJSON]."},"source":{"file":"tmux/marshal.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.MarshalJSON","product":"core","slug":"tmux-pane-marshaljson"},{"id":"tmux.Client.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON encodes the client's name and the format expansions tmux returned for it. Nothing decodes; see [Session.MarshalJSON]."},"source":{"file":"tmux/marshal.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.MarshalJSON","product":"core","slug":"tmux-client-marshaljson"},{"id":"tmux.Snapshot.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON encodes the snapshot's tmux version and the records it holds. A kind it listed encodes as an array, empty when tmux reported none; a kind it never listed is absent. Those are different answers, and one field cannot spell both, which is why the arrays are pointers here. Nothing decodes; see [Session.MarshalJSON]."},"source":{"file":"tmux/marshal.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.MarshalJSON","product":"core","slug":"tmux-snapshot-marshaljson"},{"id":"tmux.SessionID","name":"SessionID","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SessionID is tmux's stable session identifier, including its $ sigil. The zero value is not a usable tmux target."},"source":{"file":"tmux/model.go","line":5,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionID","product":"core","slug":"tmux-sessionid"},{"id":"tmux.SessionID.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.SessionID","signatures":[{"raw":"func (id SessionID) String() string","params":[],"receiver":{"name":"id","type":"SessionID"},"returns":"string"}],"doc":{"summary":"String returns the tmux identifier verbatim."},"source":{"file":"tmux/model.go","line":8,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionID.String","product":"core","slug":"tmux-sessionid-string"},{"id":"tmux.WindowID","name":"WindowID","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WindowID is tmux's stable window identifier, including its @ sigil. It does not distinguish linked-session views; the zero value is not a usable target."},"source":{"file":"tmux/model.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowID","product":"core","slug":"tmux-windowid"},{"id":"tmux.WindowID.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.WindowID","signatures":[{"raw":"func (id WindowID) String() string","params":[],"receiver":{"name":"id","type":"WindowID"},"returns":"string"}],"doc":{"summary":"String returns the tmux identifier verbatim."},"source":{"file":"tmux/model.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowID.String","product":"core","slug":"tmux-windowid-string"},{"id":"tmux.PaneID","name":"PaneID","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneID is tmux's stable pane identifier, including its % sigil. It does not distinguish linked-session views; the zero value is not a usable target."},"source":{"file":"tmux/model.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneID","product":"core","slug":"tmux-paneid"},{"id":"tmux.PaneID.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.PaneID","signatures":[{"raw":"func (id PaneID) String() string","params":[],"receiver":{"name":"id","type":"PaneID"},"returns":"string"}],"doc":{"summary":"String returns the tmux identifier verbatim."},"source":{"file":"tmux/model.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneID.String","product":"core","slug":"tmux-paneid-string"},{"id":"tmux.ClientName","name":"ClientName","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ClientName is tmux's stable client name, normally its terminal path. The zero value is not a usable tmux target."},"source":{"file":"tmux/model.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientName","product":"core","slug":"tmux-clientname"},{"id":"tmux.ClientName.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.ClientName","signatures":[{"raw":"func (name ClientName) String() string","params":[],"receiver":{"name":"name","type":"ClientName"},"returns":"string"}],"doc":{"summary":"String returns the tmux client name verbatim."},"source":{"file":"tmux/model.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientName.String","product":"core","slug":"tmux-clientname-string"},{"id":"tmux.Session","name":"Session","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Session is one materialized tmux session record. It is normally returned by [Server.Snapshot], [Server.Session], or [Session.Refresh]. A zero Session is not a usable tmux target."},"source":{"file":"tmux/model.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session","product":"core","slug":"tmux-session"},{"id":"tmux.Session.ID","name":"ID","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) ID() SessionID","params":[],"receiver":{"name":"s","type":"Session"},"returns":"SessionID"}],"doc":{"summary":"ID returns the stable tmux identity of this session."},"source":{"file":"tmux/model.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.ID","product":"core","slug":"tmux-session-id"},{"id":"tmux.Session.Server","name":"Server","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Server() Server","params":[],"receiver":{"name":"s","type":"Session"},"returns":"Server"}],"doc":{"summary":"Server returns the immutable configured handle that produced the session."},"source":{"file":"tmux/model.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Server","product":"core","slug":"tmux-session-server"},{"id":"tmux.Session.Windows","name":"Windows","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Windows() ([]Window, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"([]Window, bool)"}],"doc":{"summary":"Windows returns newly allocated shallow copies of this snapshot record's winlink views, and reports whether the receiver carries relations at all.","body":"It never queries tmux. [Server.Snapshot] and the resolvers carry relations; a\ntargeted lookup, refresh, or creation reports false rather than an empty\nrelation. Use [Session.SearchWindows] for current live windows."},"source":{"file":"tmux/model.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Windows","product":"core","slug":"tmux-session-windows"},{"id":"tmux.Session.Panes","name":"Panes","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Panes() ([]Pane, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"([]Pane, bool)"}],"doc":{"summary":"Panes returns newly allocated shallow copies of this snapshot record's pane views, and reports whether the receiver carries relations at all.","body":"It never queries tmux. [Server.Snapshot] and the resolvers carry relations; a\ntargeted lookup, refresh, or creation reports false rather than an empty\nrelation. Use [Session.SearchPanes] for current live panes."},"source":{"file":"tmux/model.go","line":75,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Panes","product":"core","slug":"tmux-session-panes"},{"id":"tmux.Window","name":"Window","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Window is one materialized (session, index, window) winlink record. It is normally returned by [Server.Snapshot], [Server.Window], or [Window.Refresh]. A zero Window is not a usable tmux target."},"source":{"file":"tmux/model.go","line":89,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window","product":"core","slug":"tmux-window"},{"id":"tmux.Window.SessionID","name":"SessionID","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SessionID() SessionID","params":[],"receiver":{"name":"w","type":"Window"},"returns":"SessionID"}],"doc":{"summary":"SessionID returns the linked session containing this view."},"source":{"file":"tmux/model.go","line":99,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SessionID","product":"core","slug":"tmux-window-sessionid"},{"id":"tmux.Window.ID","name":"ID","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ID() WindowID","params":[],"receiver":{"name":"w","type":"Window"},"returns":"WindowID"}],"doc":{"summary":"ID returns the underlying stable tmux window identity."},"source":{"file":"tmux/model.go","line":102,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ID","product":"core","slug":"tmux-window-id"},{"id":"tmux.Window.Index","name":"Index","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Index() int","params":[],"receiver":{"name":"w","type":"Window"},"returns":"int"}],"doc":{"summary":"Index returns this window's index in its linked session. It returns -1 for a partial Window whose exact winlink has not been materialized."},"source":{"file":"tmux/model.go","line":106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Index","product":"core","slug":"tmux-window-index"},{"id":"tmux.Window.Server","name":"Server","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Server() Server","params":[],"receiver":{"name":"w","type":"Window"},"returns":"Server"}],"doc":{"summary":"Server returns the configured handle that produced the window."},"source":{"file":"tmux/model.go","line":109,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Server","product":"core","slug":"tmux-window-server"},{"id":"tmux.Window.Session","name":"Session","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Session() (Session, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(Session, bool)"}],"doc":{"summary":"Session returns this view's parent record when it remains in the same snapshot. It never queries tmux."},"source":{"file":"tmux/model.go","line":118,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Session","product":"core","slug":"tmux-window-session"},{"id":"tmux.Window.Panes","name":"Panes","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Panes() ([]Pane, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"([]Pane, bool)"}],"doc":{"summary":"Panes returns newly allocated shallow copies of panes for this exact winlink, and reports whether the receiver carries relations at all.","body":"It never queries tmux. [Server.Snapshot], the resolvers, and\n[Session.NewWindow] carry relations; a targeted lookup or refresh reports\nfalse instead. Use [Window.SearchPanes] for current live panes."},"source":{"file":"tmux/model.go","line":135,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Panes","product":"core","slug":"tmux-window-panes"},{"id":"tmux.Pane","name":"Pane","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Pane is one materialized pane record within a specific winlink. It is normally returned by [Server.Snapshot], [Server.Pane], or [Pane.Refresh]. A zero Pane is not a usable tmux target."},"source":{"file":"tmux/model.go","line":150,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane","product":"core","slug":"tmux-pane"},{"id":"tmux.Pane.SessionID","name":"SessionID","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SessionID() SessionID","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"SessionID"}],"doc":{"summary":"SessionID returns the linked session containing this pane view."},"source":{"file":"tmux/model.go","line":162,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SessionID","product":"core","slug":"tmux-pane-sessionid"},{"id":"tmux.Pane.WindowID","name":"WindowID","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) WindowID() WindowID","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"WindowID"}],"doc":{"summary":"WindowID returns the underlying stable tmux window identity."},"source":{"file":"tmux/model.go","line":165,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.WindowID","product":"core","slug":"tmux-pane-windowid"},{"id":"tmux.Pane.WindowIndex","name":"WindowIndex","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) WindowIndex() int","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"int"}],"doc":{"summary":"WindowIndex returns this pane view's window index in its linked session."},"source":{"file":"tmux/model.go","line":168,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.WindowIndex","product":"core","slug":"tmux-pane-windowindex"},{"id":"tmux.Pane.ID","name":"ID","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ID() PaneID","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"PaneID"}],"doc":{"summary":"ID returns the stable tmux pane identity."},"source":{"file":"tmux/model.go","line":171,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ID","product":"core","slug":"tmux-pane-id"},{"id":"tmux.Pane.Index","name":"Index","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Index() int","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"int"}],"doc":{"summary":"Index returns the pane's index in its exact window view. Unlike the materialized format accessors it sits beside, it returns a plain int, because a pane record always carries the index tmux placed it at."},"source":{"file":"tmux/model.go","line":176,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Index","product":"core","slug":"tmux-pane-index"},{"id":"tmux.Pane.Server","name":"Server","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Server() Server","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"Server"}],"doc":{"summary":"Server returns the configured handle that produced the pane."},"source":{"file":"tmux/model.go","line":179,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Server","product":"core","slug":"tmux-pane-server"},{"id":"tmux.Pane.Session","name":"Session","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Session() (Session, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(Session, bool)"}],"doc":{"summary":"Session returns this view's parent record when it remains in the same snapshot. It never queries tmux."},"source":{"file":"tmux/model.go","line":188,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Session","product":"core","slug":"tmux-pane-session"},{"id":"tmux.Pane.Window","name":"Window","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Window() (Window, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(Window, bool)"}],"doc":{"summary":"Window returns this pane's exact winlink record when it remains in the same snapshot. It never queries tmux."},"source":{"file":"tmux/model.go","line":201,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Window","product":"core","slug":"tmux-pane-window"},{"id":"tmux.Client","name":"Client","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Client is one materialized tmux client record. It is normally returned by [Server.Snapshot], [Server.Client], or [Client.Refresh]. A zero Client is not a usable tmux target."},"source":{"file":"tmux/model.go","line":216,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client","product":"core","slug":"tmux-client"},{"id":"tmux.Client.Server","name":"Server","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Server() Server","params":[],"receiver":{"name":"c","type":"Client"},"returns":"Server"}],"doc":{"summary":"Server returns the configured handle that produced the client."},"source":{"file":"tmux/model.go","line":235,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Server","product":"core","slug":"tmux-client-server"},{"id":"tmux.Client.Name","name":"Name","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Name() ClientName","params":[],"receiver":{"name":"c","type":"Client"},"returns":"ClientName"}],"doc":{"summary":"Name returns the stable tmux name of this client."},"source":{"file":"tmux/model.go","line":238,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Name","product":"core","slug":"tmux-client-name"},{"id":"tmux.Client.AttachedSession","name":"AttachedSession","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) AttachedSession() (Session, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(Session, bool)"}],"doc":{"summary":"AttachedSession returns the materialized attached session, if present in the same snapshot. It never queries tmux."},"source":{"file":"tmux/model.go","line":242,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.AttachedSession","product":"core","slug":"tmux-client-attachedsession"},{"id":"tmux.Client.AttachedWindow","name":"AttachedWindow","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) AttachedWindow() (Window, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(Window, bool)"}],"doc":{"summary":"AttachedWindow returns the client's exact materialized winlink, if present in the same snapshot. It never queries tmux."},"source":{"file":"tmux/model.go","line":255,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.AttachedWindow","product":"core","slug":"tmux-client-attachedwindow"},{"id":"tmux.Client.AttachedPane","name":"AttachedPane","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) AttachedPane() (Pane, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(Pane, bool)"}],"doc":{"summary":"AttachedPane returns the client's exact materialized pane view, if present in the same snapshot. It never queries tmux."},"source":{"file":"tmux/model.go","line":273,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.AttachedPane","product":"core","slug":"tmux-client-attachedpane"},{"id":"tmux.NotificationStream","name":"NotificationStream","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"NotificationStream owns one observation-only control client attached to a session. It yields tmux notifications in wire order and must be closed. Before tmux 3.6, destroying the attached session follows that session's detach-on-destroy policy and may end the stream."},"source":{"file":"tmux/notification_stream.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationStream","product":"core","slug":"tmux-notificationstream"},{"id":"tmux.NotificationOptions","name":"NotificationOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"NotificationOptions configures which notifications a stream receives. The zero value retains notifications other than pane output."},"source":{"file":"tmux/notification_stream.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationOptions","product":"core","slug":"tmux-notificationoptions"},{"id":"tmux.NotificationOptions.IncludePaneOutput","name":"IncludePaneOutput","kind":"attribute","modifiers":[],"parent":"tmux.NotificationOptions","signatures":[],"type":"bool","doc":{"summary":"IncludePaneOutput includes output and extended-output notifications."},"source":{"file":"tmux/notification_stream.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationOptions.IncludePaneOutput","product":"core","slug":"tmux-notificationoptions-includepaneoutput"},{"id":"tmux.NotificationOptions.PauseAfter","name":"PauseAfter","kind":"attribute","modifiers":[],"parent":"tmux.NotificationOptions","signatures":[],"type":"time.Duration","doc":{"summary":"PauseAfter asks tmux to hold a pane's output once this stream is that far behind on it, and to say so with a pause notification. Zero leaves tmux's own behavior, which ends a stream that falls five minutes behind rather than pausing it. tmux resolves this to whole seconds, and it governs pane output, so it requires IncludePaneOutput."},"source":{"file":"tmux/notification_stream.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationOptions.PauseAfter","product":"core","slug":"tmux-notificationoptions-pauseafter"},{"id":"tmux.Server.OpenNotifications","name":"OpenNotifications","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) OpenNotifications(\n\tctx context.Context,\n\tsession Session,\n\toptions NotificationOptions,\n) (*NotificationStream, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"session","type":"Session"},{"name":"options","type":"NotificationOptions"}],"receiver":{"name":"s","type":"Server"},"returns":"(*NotificationStream, error)"}],"doc":{"summary":"OpenNotifications starts an owned observation-only stream attached to session. Session must belong to the same configured server selector. A connection-bound server returns [ErrConnectionRequiresProcess]."},"source":{"file":"tmux/notification_stream.go","line":55,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.OpenNotifications","product":"core","slug":"tmux-server-opennotifications"},{"id":"tmux.NotificationStream.ContinuePane","name":"ContinuePane","kind":"method","modifiers":[],"parent":"tmux.NotificationStream","signatures":[{"raw":"func (s *NotificationStream) ContinuePane(ctx context.Context, pane PaneID) error","params":[{"name":"ctx","type":"context.Context"},{"name":"pane","type":"PaneID"}],"receiver":{"name":"s","type":"*NotificationStream"},"returns":"error"}],"doc":{"summary":"ContinuePane resumes pane output tmux held after this stream fell behind on it. tmux does not replay what it held, so read the pane to recover that span rather than waiting for it. Resuming a pane tmux never paused does nothing and reports nothing, because tmux answers neither."},"source":{"file":"tmux/notification_stream.go","line":91,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationStream.ContinuePane","product":"core","slug":"tmux-notificationstream-continuepane"},{"id":"tmux.SubscriptionRequest","name":"SubscriptionRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SubscriptionRequest names a format for tmux to evaluate and report on this stream whenever its value changes. Its zero value is invalid because Name and Format are required. At most one of Session, Window, and Pane scopes the evaluation; none evaluates against the stream's attached session.","body":"tmux stops evaluating a pane-scoped subscription once that pane's process has\nexited, so a subscription that must observe pane death is scoped to the\nwindow and reads the pane from the change it reports."},"source":{"file":"tmux/notification_stream.go","line":115,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionRequest","product":"core","slug":"tmux-subscriptionrequest"},{"id":"tmux.SubscriptionRequest.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionRequest","signatures":[],"type":"string","doc":{"summary":"Name identifies the subscription in each change and to Unsubscribe. It may not contain a colon or a space."},"source":{"file":"tmux/notification_stream.go","line":118,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionRequest.Name","product":"core","slug":"tmux-subscriptionrequest-name"},{"id":"tmux.SubscriptionRequest.Format","name":"Format","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionRequest","signatures":[],"type":"string","doc":{"summary":"Format is the tmux format to evaluate, such as #{pane_current_command}."},"source":{"file":"tmux/notification_stream.go","line":120,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionRequest.Format","product":"core","slug":"tmux-subscriptionrequest-format"},{"id":"tmux.SubscriptionRequest.Session","name":"Session","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionRequest","signatures":[],"type":"SessionID","doc":{"summary":"Session scopes evaluation to the stream's attached session. tmux always evaluates a session-scoped subscription against the control client's own session, so this only requests that scope; it is not a selector, and any value is equivalent to the stream's own session."},"source":{"file":"tmux/notification_stream.go","line":125,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionRequest.Session","product":"core","slug":"tmux-subscriptionrequest-session"},{"id":"tmux.SubscriptionRequest.Window","name":"Window","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionRequest","signatures":[],"type":"WindowID","doc":{"summary":"Window scopes evaluation to one window."},"source":{"file":"tmux/notification_stream.go","line":127,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionRequest.Window","product":"core","slug":"tmux-subscriptionrequest-window"},{"id":"tmux.SubscriptionRequest.Pane","name":"Pane","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionRequest","signatures":[],"type":"PaneID","doc":{"summary":"Pane scopes evaluation to one pane."},"source":{"file":"tmux/notification_stream.go","line":129,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionRequest.Pane","product":"core","slug":"tmux-subscriptionrequest-pane"},{"id":"tmux.NotificationStream.Subscribe","name":"Subscribe","kind":"method","modifiers":[],"parent":"tmux.NotificationStream","signatures":[{"raw":"func (s *NotificationStream) Subscribe(ctx context.Context, request SubscriptionRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SubscriptionRequest"}],"receiver":{"name":"s","type":"*NotificationStream"},"returns":"error"}],"doc":{"summary":"Subscribe asks tmux to evaluate request's format and report it on this stream as a subscription-changed notification, read with [ControlNotification.Subscription]. tmux reports the value at its next evaluation, about a second later, and then each time it changes. Arming a name already armed replaces its format."},"source":{"file":"tmux/notification_stream.go","line":189,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationStream.Subscribe","product":"core","slug":"tmux-notificationstream-subscribe"},{"id":"tmux.NotificationStream.Unsubscribe","name":"Unsubscribe","kind":"method","modifiers":[],"parent":"tmux.NotificationStream","signatures":[{"raw":"func (s *NotificationStream) Unsubscribe(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"*NotificationStream"},"returns":"error"}],"doc":{"summary":"Unsubscribe stops the subscription armed under name. Stopping a name that was never armed does nothing and reports nothing, because tmux answers neither."},"source":{"file":"tmux/notification_stream.go","line":204,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationStream.Unsubscribe","product":"core","slug":"tmux-notificationstream-unsubscribe"},{"id":"tmux.Session.OpenNotifications","name":"OpenNotifications","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) OpenNotifications(\n\tctx context.Context,\n\toptions NotificationOptions,\n) (*NotificationStream, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"options","type":"NotificationOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"(*NotificationStream, error)"}],"doc":{"summary":"OpenNotifications starts an owned notification stream attached to the receiver. It does not change the receiver's transport or expose control commands. A connection-bound receiver returns [ErrConnectionRequiresProcess]."},"source":{"file":"tmux/notification_stream.go","line":233,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.OpenNotifications","product":"core","slug":"tmux-session-opennotifications"},{"id":"tmux.NotificationStream.Next","name":"Next","kind":"method","modifiers":[],"parent":"tmux.NotificationStream","signatures":[{"raw":"func (s *NotificationStream) Next(\n\tctx context.Context,\n) (ControlNotification, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"*NotificationStream"},"returns":"(ControlNotification, error)"}],"doc":{"summary":"Next returns the next ordered control-mode notification. Exactly one caller may use Next at a time."},"source":{"file":"tmux/notification_stream.go","line":242,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationStream.Next","product":"core","slug":"tmux-notificationstream-next"},{"id":"tmux.NotificationStream.Notifications","name":"Notifications","kind":"method","modifiers":[],"parent":"tmux.NotificationStream","signatures":[{"raw":"func (s *NotificationStream) Notifications(\n\tctx context.Context,\n) iter.Seq2[ControlNotification, error]","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"*NotificationStream"},"returns":"iter.Seq2[ControlNotification, error]"}],"doc":{"summary":"Notifications returns [NotificationStream.Next] as a range loop; exactly one iterator or direct read may run at a time. Malformed notifications yield their error and iteration continues; every other error ends the loop after being yielded."},"source":{"file":"tmux/notification_stream.go","line":255,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationStream.Notifications","product":"core","slug":"tmux-notificationstream-notifications"},{"id":"tmux.NotificationStream.CloseContext","name":"CloseContext","kind":"method","modifiers":[],"parent":"tmux.NotificationStream","signatures":[{"raw":"func (s *NotificationStream) CloseContext(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"*NotificationStream"},"returns":"error"}],"doc":{"summary":"CloseContext starts idempotent stream shutdown and waits within ctx. The context bounds only the wait; a later call may resume waiting for shutdown."},"source":{"file":"tmux/notification_stream.go","line":263,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationStream.CloseContext","product":"core","slug":"tmux-notificationstream-closecontext"},{"id":"tmux.NotificationStream.Close","name":"Close","kind":"method","modifiers":[],"parent":"tmux.NotificationStream","signatures":[{"raw":"func (s *NotificationStream) Close() error","params":[],"receiver":{"name":"s","type":"*NotificationStream"},"returns":"error"}],"doc":{"summary":"Close stops the notification stream. It is safe to call concurrently and more than once."},"source":{"file":"tmux/notification_stream.go","line":272,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationStream.Close","product":"core","slug":"tmux-notificationstream-close"},{"id":"tmux.CommandTransport","name":"CommandTransport","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CommandTransport names how one tmux command reached tmux."},"source":{"file":"tmux/observer.go","line":9,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTransport","product":"core","slug":"tmux-commandtransport"},{"id":"tmux.CommandTransportProcess","name":"CommandTransportProcess","kind":"constant","modifiers":[],"signatures":[],"type":"CommandTransport","doc":{"summary":"CommandTransportProcess ran the command as its own tmux process."},"source":{"file":"tmux/observer.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTransportProcess","product":"core","slug":"tmux-commandtransportprocess"},{"id":"tmux.CommandTransportConnection","name":"CommandTransportConnection","kind":"constant","modifiers":[],"signatures":[],"type":"CommandTransport","doc":{"summary":"CommandTransportConnection carried the command over a control-mode connection opened earlier."},"source":{"file":"tmux/observer.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTransportConnection","product":"core","slug":"tmux-commandtransportconnection"},{"id":"tmux.CommandTransport.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.CommandTransport","signatures":[{"raw":"func (t CommandTransport) String() string","params":[],"receiver":{"name":"t","type":"CommandTransport"},"returns":"string"}],"doc":{"summary":"String implements fmt.Stringer."},"source":{"file":"tmux/observer.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTransport.String","product":"core","slug":"tmux-commandtransport-string"},{"id":"tmux.CommandTrace","name":"CommandTrace","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CommandTrace records one completed attempt to run a tmux command. It carries neither the argument vector nor tmux's output, both of which may hold passwords, tokens, or pane contents; [CommandError] is where a caller that accepts that reads them."},"source":{"file":"tmux/observer.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTrace","product":"core","slug":"tmux-commandtrace"},{"id":"tmux.CommandTrace.Subcommand","name":"Subcommand","kind":"attribute","modifiers":[],"parent":"tmux.CommandTrace","signatures":[],"type":"string","doc":{"summary":"Subcommand is the tmux subcommand, such as \"list-sessions\". A raw command list reports its first subcommand."},"source":{"file":"tmux/observer.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTrace.Subcommand","product":"core","slug":"tmux-commandtrace-subcommand"},{"id":"tmux.CommandTrace.Transport","name":"Transport","kind":"attribute","modifiers":[],"parent":"tmux.CommandTrace","signatures":[],"type":"CommandTransport","doc":{"summary":"Transport names how the command reached tmux."},"source":{"file":"tmux/observer.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTrace.Transport","product":"core","slug":"tmux-commandtrace-transport"},{"id":"tmux.CommandTrace.Duration","name":"Duration","kind":"attribute","modifiers":[],"parent":"tmux.CommandTrace","signatures":[],"type":"time.Duration","doc":{"summary":"Duration is how long the attempt took."},"source":{"file":"tmux/observer.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTrace.Duration","product":"core","slug":"tmux-commandtrace-duration"},{"id":"tmux.CommandTrace.ExitCode","name":"ExitCode","kind":"attribute","modifiers":[],"parent":"tmux.CommandTrace","signatures":[],"type":"int","doc":{"summary":"ExitCode is tmux's exit code, or -1 when no tmux command ran."},"source":{"file":"tmux/observer.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTrace.ExitCode","product":"core","slug":"tmux-commandtrace-exitcode"},{"id":"tmux.CommandTrace.Err","name":"Err","kind":"attribute","modifiers":[],"parent":"tmux.CommandTrace","signatures":[],"type":"error","doc":{"summary":"Err is the transport or validation failure, if any. A completed tmux command that failed leaves this nil and reports through ExitCode."},"source":{"file":"tmux/observer.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTrace.Err","product":"core","slug":"tmux-commandtrace-err"},{"id":"tmux.CommandTrace.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.CommandTrace","signatures":[{"raw":"func (t CommandTrace) String() string","params":[],"receiver":{"name":"t","type":"CommandTrace"},"returns":"string"}],"doc":{"summary":"String implements fmt.Stringer."},"source":{"file":"tmux/observer.go","line":51,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTrace.String","product":"core","slug":"tmux-commandtrace-string"},{"id":"tmux.CommandObserver","name":"CommandObserver","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CommandObserver receives one [CommandTrace] per tmux command a [Server] and the values derived from it run:","body":"```go\nserver, err := tmux.NewServer(tmux.ServerOptions{\n\tCommandObserver: func(trace tmux.CommandTrace) {\n\t\tslog.Info(\"tmux\", \"command\", trace.Subcommand,\n\t\t\t\"transport\", trace.Transport.String(),\n\t\t\t\"duration\", trace.Duration, \"exit\", trace.ExitCode)\n\t},\n})\nif err != nil {\n\tlog.Fatal(err)\n}\n```\n\nIt is called synchronously on the goroutine that ran the command, after the\ncommand finishes and before its result is returned, so a slow observer slows\nevery command. Operations may invoke it concurrently; synchronize shared\nstate. A nil observer costs nothing, not even the clock reads.\n\nIt sees the version probes this package runs on its own behalf, and the\nidentity probe a daemon guard runs to decide whether a failure was a\nreplaced daemon, so one call can produce more than one trace."},"source":{"file":"tmux/observer.go","line":82,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandObserver","product":"core","slug":"tmux-commandobserver"},{"id":"tmux.ErrMalformedOptionOutput","name":"ErrMalformedOptionOutput","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrMalformedOptionOutput identifies a recognized option or hook record that cannot be decoded without ambiguity. It is matched by errors.Is for OptionDecodeError."},"source":{"file":"tmux/option_decode.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrMalformedOptionOutput","product":"core","slug":"tmux-errmalformedoptionoutput"},{"id":"tmux.OptionDecodeError","name":"OptionDecodeError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"OptionDecodeError reports a malformed recognized record without retaining its value. It matches [ErrMalformedOptionOutput] through errors.Is; callers can recover Record and Reason with errors.As. Record is the zero-based physical output line."},"source":{"file":"tmux/option_decode.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionDecodeError","product":"core","slug":"tmux-optiondecodeerror"},{"id":"tmux.OptionDecodeError.Record","name":"Record","kind":"attribute","modifiers":[],"parent":"tmux.OptionDecodeError","signatures":[],"type":"int","doc":{"summary":"Record is the zero-based physical output line."},"source":{"file":"tmux/option_decode.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionDecodeError.Record","product":"core","slug":"tmux-optiondecodeerror-record"},{"id":"tmux.OptionDecodeError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.OptionDecodeError","signatures":[],"type":"string","doc":{"summary":"Reason describes the malformed record without retaining its value."},"source":{"file":"tmux/option_decode.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionDecodeError.Reason","product":"core","slug":"tmux-optiondecodeerror-reason"},{"id":"tmux.OptionDecodeError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.OptionDecodeError","signatures":[{"raw":"func (e *OptionDecodeError) Error() string","params":[],"receiver":{"name":"e","type":"*OptionDecodeError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/option_decode.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionDecodeError.Error","product":"core","slug":"tmux-optiondecodeerror-error"},{"id":"tmux.OptionDecodeError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.OptionDecodeError","signatures":[{"raw":"func (e *OptionDecodeError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*OptionDecodeError"},"returns":"error"}],"doc":{"summary":"Unwrap makes OptionDecodeError compatible with ErrMalformedOptionOutput."},"source":{"file":"tmux/option_decode.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionDecodeError.Unwrap","product":"core","slug":"tmux-optiondecodeerror-unwrap"},{"id":"tmux.ErrOption","name":"ErrOption","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrOption identifies a failed high-level option or hook operation. It is matched by errors.Is for OptionError."},"source":{"file":"tmux/option_error.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrOption","product":"core","slug":"tmux-erroption"},{"id":"tmux.ErrUnknownOption","name":"ErrUnknownOption","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrUnknownOption identifies tmux's case-sensitive unknown-option diagnostic."},"source":{"file":"tmux/option_error.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrUnknownOption","product":"core","slug":"tmux-errunknownoption"},{"id":"tmux.ErrInvalidOption","name":"ErrInvalidOption","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidOption identifies tmux's case-sensitive invalid-option diagnostic."},"source":{"file":"tmux/option_error.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidOption","product":"core","slug":"tmux-errinvalidoption"},{"id":"tmux.ErrInvalidOptionValue","name":"ErrInvalidOptionValue","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidOptionValue identifies a typed option value outside its active tmux-version domain."},"source":{"file":"tmux/option_error.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidOptionValue","product":"core","slug":"tmux-errinvalidoptionvalue"},{"id":"tmux.ErrAmbiguousOption","name":"ErrAmbiguousOption","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrAmbiguousOption identifies tmux's case-sensitive ambiguous-option diagnostic."},"source":{"file":"tmux/option_error.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrAmbiguousOption","product":"core","slug":"tmux-errambiguousoption"},{"id":"tmux.ErrOptionTarget","name":"ErrOptionTarget","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrOptionTarget identifies an option or hook operation whose target did not resolve, which is the failure an unknown name is most easily mistaken for. Classifying it discloses nothing that redaction protects: which kind of failure occurred is not one of the values or hook commands an option error withholds."},"source":{"file":"tmux/option_error.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrOptionTarget","product":"core","slug":"tmux-erroptiontarget"},{"id":"tmux.OptionValueError","name":"OptionValueError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"OptionValueError reports a rejected typed option value without retaining or rendering that value. It matches [ErrInvalidOptionValue] and [ErrOption]."},"source":{"file":"tmux/option_error.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionValueError","product":"core","slug":"tmux-optionvalueerror"},{"id":"tmux.OptionValueError.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.OptionValueError","signatures":[],"type":"string","doc":{"summary":"Name is the safe, generated tmux option name."},"source":{"file":"tmux/option_error.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionValueError.Name","product":"core","slug":"tmux-optionvalueerror-name"},{"id":"tmux.OptionValueError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.OptionValueError","signatures":[{"raw":"func (e *OptionValueError) Error() string","params":[],"receiver":{"name":"e","type":"*OptionValueError"},"returns":"string"}],"doc":{"summary":"Error implements error without disclosing the attempted value."},"source":{"file":"tmux/option_error.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionValueError.Error","product":"core","slug":"tmux-optionvalueerror-error"},{"id":"tmux.OptionValueError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.OptionValueError","signatures":[{"raw":"func (e *OptionValueError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*OptionValueError"},"returns":"error"}],"doc":{"summary":"Unwrap makes OptionValueError compatible with ErrInvalidOptionValue."},"source":{"file":"tmux/option_error.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionValueError.Unwrap","product":"core","slug":"tmux-optionvalueerror-unwrap"},{"id":"tmux.OptionError","name":"OptionError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"OptionError reports a completed high-level option or hook failure. It matches [ErrOption] and a specific option sentinel through errors.Is; callers can recover its fields with errors.As. Library-created errors retain only Result.ExitCode. Error never renders command output because option values and hook commands may be secret; callers may construct exported values with other contents."},"source":{"file":"tmux/option_error.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionError","product":"core","slug":"tmux-optionerror"},{"id":"tmux.OptionError.Subcommand","name":"Subcommand","kind":"attribute","modifiers":[],"parent":"tmux.OptionError","signatures":[],"type":"string","doc":{"summary":"Subcommand is the failed tmux option or hook subcommand."},"source":{"file":"tmux/option_error.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionError.Subcommand","product":"core","slug":"tmux-optionerror-subcommand"},{"id":"tmux.OptionError.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.OptionError","signatures":[],"type":"string","doc":{"summary":"Name is the option or hook name, when available."},"source":{"file":"tmux/option_error.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionError.Name","product":"core","slug":"tmux-optionerror-name"},{"id":"tmux.OptionError.Result","name":"Result","kind":"attribute","modifiers":[],"parent":"tmux.OptionError","signatures":[],"type":"CommandResult","doc":{"summary":"Result contains the library-created error's exit code and no diagnostics."},"source":{"file":"tmux/option_error.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionError.Result","product":"core","slug":"tmux-optionerror-result"},{"id":"tmux.OptionError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.OptionError","signatures":[{"raw":"func (e *OptionError) Error() string","params":[],"receiver":{"name":"e","type":"*OptionError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/option_error.go","line":72,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionError.Error","product":"core","slug":"tmux-optionerror-error"},{"id":"tmux.OptionError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.OptionError","signatures":[{"raw":"func (e *OptionError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*OptionError"},"returns":"error"}],"doc":{"summary":"Unwrap makes OptionError compatible with ErrOption and its specific kinds."},"source":{"file":"tmux/option_error.go","line":102,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionError.Unwrap","product":"core","slug":"tmux-optionerror-unwrap"},{"id":"tmux.ActivityAction","name":"ActivityAction","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ActivityAction is a typed value for the \"activity-action\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":11,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ActivityAction","product":"core","slug":"tmux-activityaction"},{"id":"tmux.ActivityActionNone","name":"ActivityActionNone","kind":"constant","modifiers":[],"signatures":[],"type":"ActivityAction","doc":{"summary":"ActivityActionNone selects \"none\"."},"source":{"file":"tmux/option_generated.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ActivityActionNone","product":"core","slug":"tmux-activityactionnone"},{"id":"tmux.ActivityActionAny","name":"ActivityActionAny","kind":"constant","modifiers":[],"signatures":[],"type":"ActivityAction","doc":{"summary":"ActivityActionAny selects \"any\"."},"source":{"file":"tmux/option_generated.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ActivityActionAny","product":"core","slug":"tmux-activityactionany"},{"id":"tmux.ActivityActionCurrent","name":"ActivityActionCurrent","kind":"constant","modifiers":[],"signatures":[],"type":"ActivityAction","doc":{"summary":"ActivityActionCurrent selects \"current\"."},"source":{"file":"tmux/option_generated.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ActivityActionCurrent","product":"core","slug":"tmux-activityactioncurrent"},{"id":"tmux.ActivityActionOther","name":"ActivityActionOther","kind":"constant","modifiers":[],"signatures":[],"type":"ActivityAction","doc":{"summary":"ActivityActionOther selects \"other\"."},"source":{"file":"tmux/option_generated.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ActivityActionOther","product":"core","slug":"tmux-activityactionother"},{"id":"tmux.ActivityAction.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.ActivityAction","signatures":[{"raw":"func (v ActivityAction) String() string","params":[],"receiver":{"name":"v","type":"ActivityAction"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ActivityAction.String","product":"core","slug":"tmux-activityaction-string"},{"id":"tmux.ActivityAction.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.ActivityAction","signatures":[{"raw":"func (v ActivityAction) Valid() bool","params":[],"receiver":{"name":"v","type":"ActivityAction"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ActivityAction.Valid","product":"core","slug":"tmux-activityaction-valid"},{"id":"tmux.AllowPassthrough","name":"AllowPassthrough","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"AllowPassthrough is a typed value for the \"allow-passthrough\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AllowPassthrough","product":"core","slug":"tmux-allowpassthrough"},{"id":"tmux.AllowPassthroughOff","name":"AllowPassthroughOff","kind":"constant","modifiers":[],"signatures":[],"type":"AllowPassthrough","doc":{"summary":"AllowPassthroughOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AllowPassthroughOff","product":"core","slug":"tmux-allowpassthroughoff"},{"id":"tmux.AllowPassthroughOn","name":"AllowPassthroughOn","kind":"constant","modifiers":[],"signatures":[],"type":"AllowPassthrough","doc":{"summary":"AllowPassthroughOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AllowPassthroughOn","product":"core","slug":"tmux-allowpassthroughon"},{"id":"tmux.AllowPassthroughAll","name":"AllowPassthroughAll","kind":"constant","modifiers":[],"signatures":[],"type":"AllowPassthrough","doc":{"summary":"AllowPassthroughAll selects \"all\"."},"source":{"file":"tmux/option_generated.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AllowPassthroughAll","product":"core","slug":"tmux-allowpassthroughall"},{"id":"tmux.AllowPassthrough.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.AllowPassthrough","signatures":[{"raw":"func (v AllowPassthrough) String() string","params":[],"receiver":{"name":"v","type":"AllowPassthrough"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AllowPassthrough.String","product":"core","slug":"tmux-allowpassthrough-string"},{"id":"tmux.AllowPassthrough.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.AllowPassthrough","signatures":[{"raw":"func (v AllowPassthrough) Valid() bool","params":[],"receiver":{"name":"v","type":"AllowPassthrough"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AllowPassthrough.Valid","product":"core","slug":"tmux-allowpassthrough-valid"},{"id":"tmux.BellAction","name":"BellAction","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"BellAction is a typed value for the \"bell-action\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BellAction","product":"core","slug":"tmux-bellaction"},{"id":"tmux.BellActionNone","name":"BellActionNone","kind":"constant","modifiers":[],"signatures":[],"type":"BellAction","doc":{"summary":"BellActionNone selects \"none\"."},"source":{"file":"tmux/option_generated.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BellActionNone","product":"core","slug":"tmux-bellactionnone"},{"id":"tmux.BellActionAny","name":"BellActionAny","kind":"constant","modifiers":[],"signatures":[],"type":"BellAction","doc":{"summary":"BellActionAny selects \"any\"."},"source":{"file":"tmux/option_generated.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BellActionAny","product":"core","slug":"tmux-bellactionany"},{"id":"tmux.BellActionCurrent","name":"BellActionCurrent","kind":"constant","modifiers":[],"signatures":[],"type":"BellAction","doc":{"summary":"BellActionCurrent selects \"current\"."},"source":{"file":"tmux/option_generated.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BellActionCurrent","product":"core","slug":"tmux-bellactioncurrent"},{"id":"tmux.BellActionOther","name":"BellActionOther","kind":"constant","modifiers":[],"signatures":[],"type":"BellAction","doc":{"summary":"BellActionOther selects \"other\"."},"source":{"file":"tmux/option_generated.go","line":73,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BellActionOther","product":"core","slug":"tmux-bellactionother"},{"id":"tmux.BellAction.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.BellAction","signatures":[{"raw":"func (v BellAction) String() string","params":[],"receiver":{"name":"v","type":"BellAction"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BellAction.String","product":"core","slug":"tmux-bellaction-string"},{"id":"tmux.BellAction.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.BellAction","signatures":[{"raw":"func (v BellAction) Valid() bool","params":[],"receiver":{"name":"v","type":"BellAction"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BellAction.Valid","product":"core","slug":"tmux-bellaction-valid"},{"id":"tmux.ClockModeStyle","name":"ClockModeStyle","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ClockModeStyle is a typed value for the \"clock-mode-style\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":90,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClockModeStyle","product":"core","slug":"tmux-clockmodestyle"},{"id":"tmux.ClockModeStyle12","name":"ClockModeStyle12","kind":"constant","modifiers":[],"signatures":[],"type":"ClockModeStyle","doc":{"summary":"ClockModeStyle12 selects \"12\"."},"source":{"file":"tmux/option_generated.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClockModeStyle12","product":"core","slug":"tmux-clockmodestyle12"},{"id":"tmux.ClockModeStyle24","name":"ClockModeStyle24","kind":"constant","modifiers":[],"signatures":[],"type":"ClockModeStyle","doc":{"summary":"ClockModeStyle24 selects \"24\"."},"source":{"file":"tmux/option_generated.go","line":96,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClockModeStyle24","product":"core","slug":"tmux-clockmodestyle24"},{"id":"tmux.ClockModeStyle12WithSeconds","name":"ClockModeStyle12WithSeconds","kind":"constant","modifiers":[],"signatures":[],"type":"ClockModeStyle","doc":{"summary":"ClockModeStyle12WithSeconds selects \"12-with-seconds\"."},"source":{"file":"tmux/option_generated.go","line":98,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClockModeStyle12WithSeconds","product":"core","slug":"tmux-clockmodestyle12withseconds"},{"id":"tmux.ClockModeStyle24WithSeconds","name":"ClockModeStyle24WithSeconds","kind":"constant","modifiers":[],"signatures":[],"type":"ClockModeStyle","doc":{"summary":"ClockModeStyle24WithSeconds selects \"24-with-seconds\"."},"source":{"file":"tmux/option_generated.go","line":100,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClockModeStyle24WithSeconds","product":"core","slug":"tmux-clockmodestyle24withseconds"},{"id":"tmux.ClockModeStyle.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.ClockModeStyle","signatures":[{"raw":"func (v ClockModeStyle) String() string","params":[],"receiver":{"name":"v","type":"ClockModeStyle"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClockModeStyle.String","product":"core","slug":"tmux-clockmodestyle-string"},{"id":"tmux.ClockModeStyle.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.ClockModeStyle","signatures":[{"raw":"func (v ClockModeStyle) Valid() bool","params":[],"receiver":{"name":"v","type":"ClockModeStyle"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":107,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClockModeStyle.Valid","product":"core","slug":"tmux-clockmodestyle-valid"},{"id":"tmux.CopyModeLineNumbers","name":"CopyModeLineNumbers","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CopyModeLineNumbers is a typed value for the \"copy-mode-line-numbers\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":117,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeLineNumbers","product":"core","slug":"tmux-copymodelinenumbers"},{"id":"tmux.CopyModeLineNumbersOff","name":"CopyModeLineNumbersOff","kind":"constant","modifiers":[],"signatures":[],"type":"CopyModeLineNumbers","doc":{"summary":"CopyModeLineNumbersOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":121,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeLineNumbersOff","product":"core","slug":"tmux-copymodelinenumbersoff"},{"id":"tmux.CopyModeLineNumbersDefault","name":"CopyModeLineNumbersDefault","kind":"constant","modifiers":[],"signatures":[],"type":"CopyModeLineNumbers","doc":{"summary":"CopyModeLineNumbersDefault selects \"default\"."},"source":{"file":"tmux/option_generated.go","line":123,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeLineNumbersDefault","product":"core","slug":"tmux-copymodelinenumbersdefault"},{"id":"tmux.CopyModeLineNumbersAbsolute","name":"CopyModeLineNumbersAbsolute","kind":"constant","modifiers":[],"signatures":[],"type":"CopyModeLineNumbers","doc":{"summary":"CopyModeLineNumbersAbsolute selects \"absolute\"."},"source":{"file":"tmux/option_generated.go","line":125,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeLineNumbersAbsolute","product":"core","slug":"tmux-copymodelinenumbersabsolute"},{"id":"tmux.CopyModeLineNumbersRelative","name":"CopyModeLineNumbersRelative","kind":"constant","modifiers":[],"signatures":[],"type":"CopyModeLineNumbers","doc":{"summary":"CopyModeLineNumbersRelative selects \"relative\"."},"source":{"file":"tmux/option_generated.go","line":127,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeLineNumbersRelative","product":"core","slug":"tmux-copymodelinenumbersrelative"},{"id":"tmux.CopyModeLineNumbersHybrid","name":"CopyModeLineNumbersHybrid","kind":"constant","modifiers":[],"signatures":[],"type":"CopyModeLineNumbers","doc":{"summary":"CopyModeLineNumbersHybrid selects \"hybrid\"."},"source":{"file":"tmux/option_generated.go","line":129,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeLineNumbersHybrid","product":"core","slug":"tmux-copymodelinenumbershybrid"},{"id":"tmux.CopyModeLineNumbers.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.CopyModeLineNumbers","signatures":[{"raw":"func (v CopyModeLineNumbers) String() string","params":[],"receiver":{"name":"v","type":"CopyModeLineNumbers"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":133,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeLineNumbers.String","product":"core","slug":"tmux-copymodelinenumbers-string"},{"id":"tmux.CopyModeLineNumbers.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.CopyModeLineNumbers","signatures":[{"raw":"func (v CopyModeLineNumbers) Valid() bool","params":[],"receiver":{"name":"v","type":"CopyModeLineNumbers"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":136,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeLineNumbers.Valid","product":"core","slug":"tmux-copymodelinenumbers-valid"},{"id":"tmux.CursorStyle","name":"CursorStyle","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CursorStyle is a typed value for the \"cursor-style\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":146,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyle","product":"core","slug":"tmux-cursorstyle"},{"id":"tmux.CursorStyleDefault","name":"CursorStyleDefault","kind":"constant","modifiers":[],"signatures":[],"type":"CursorStyle","doc":{"summary":"CursorStyleDefault selects \"default\"."},"source":{"file":"tmux/option_generated.go","line":150,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyleDefault","product":"core","slug":"tmux-cursorstyledefault"},{"id":"tmux.CursorStyleBlinkingBlock","name":"CursorStyleBlinkingBlock","kind":"constant","modifiers":[],"signatures":[],"type":"CursorStyle","doc":{"summary":"CursorStyleBlinkingBlock selects \"blinking-block\"."},"source":{"file":"tmux/option_generated.go","line":152,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyleBlinkingBlock","product":"core","slug":"tmux-cursorstyleblinkingblock"},{"id":"tmux.CursorStyleBlock","name":"CursorStyleBlock","kind":"constant","modifiers":[],"signatures":[],"type":"CursorStyle","doc":{"summary":"CursorStyleBlock selects \"block\"."},"source":{"file":"tmux/option_generated.go","line":154,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyleBlock","product":"core","slug":"tmux-cursorstyleblock"},{"id":"tmux.CursorStyleBlinkingUnderline","name":"CursorStyleBlinkingUnderline","kind":"constant","modifiers":[],"signatures":[],"type":"CursorStyle","doc":{"summary":"CursorStyleBlinkingUnderline selects \"blinking-underline\"."},"source":{"file":"tmux/option_generated.go","line":156,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyleBlinkingUnderline","product":"core","slug":"tmux-cursorstyleblinkingunderline"},{"id":"tmux.CursorStyleUnderline","name":"CursorStyleUnderline","kind":"constant","modifiers":[],"signatures":[],"type":"CursorStyle","doc":{"summary":"CursorStyleUnderline selects \"underline\"."},"source":{"file":"tmux/option_generated.go","line":158,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyleUnderline","product":"core","slug":"tmux-cursorstyleunderline"},{"id":"tmux.CursorStyleBlinkingBar","name":"CursorStyleBlinkingBar","kind":"constant","modifiers":[],"signatures":[],"type":"CursorStyle","doc":{"summary":"CursorStyleBlinkingBar selects \"blinking-bar\"."},"source":{"file":"tmux/option_generated.go","line":160,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyleBlinkingBar","product":"core","slug":"tmux-cursorstyleblinkingbar"},{"id":"tmux.CursorStyleBar","name":"CursorStyleBar","kind":"constant","modifiers":[],"signatures":[],"type":"CursorStyle","doc":{"summary":"CursorStyleBar selects \"bar\"."},"source":{"file":"tmux/option_generated.go","line":162,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyleBar","product":"core","slug":"tmux-cursorstylebar"},{"id":"tmux.CursorStyle.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.CursorStyle","signatures":[{"raw":"func (v CursorStyle) String() string","params":[],"receiver":{"name":"v","type":"CursorStyle"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":166,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyle.String","product":"core","slug":"tmux-cursorstyle-string"},{"id":"tmux.CursorStyle.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.CursorStyle","signatures":[{"raw":"func (v CursorStyle) Valid() bool","params":[],"receiver":{"name":"v","type":"CursorStyle"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":169,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyle.Valid","product":"core","slug":"tmux-cursorstyle-valid"},{"id":"tmux.DestroyUnattached","name":"DestroyUnattached","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"DestroyUnattached is a typed value for the \"destroy-unattached\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":179,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DestroyUnattached","product":"core","slug":"tmux-destroyunattached"},{"id":"tmux.DestroyUnattachedOff","name":"DestroyUnattachedOff","kind":"constant","modifiers":[],"signatures":[],"type":"DestroyUnattached","doc":{"summary":"DestroyUnattachedOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":183,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DestroyUnattachedOff","product":"core","slug":"tmux-destroyunattachedoff"},{"id":"tmux.DestroyUnattachedOn","name":"DestroyUnattachedOn","kind":"constant","modifiers":[],"signatures":[],"type":"DestroyUnattached","doc":{"summary":"DestroyUnattachedOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":185,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DestroyUnattachedOn","product":"core","slug":"tmux-destroyunattachedon"},{"id":"tmux.DestroyUnattachedKeepLast","name":"DestroyUnattachedKeepLast","kind":"constant","modifiers":[],"signatures":[],"type":"DestroyUnattached","doc":{"summary":"DestroyUnattachedKeepLast selects \"keep-last\"."},"source":{"file":"tmux/option_generated.go","line":187,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DestroyUnattachedKeepLast","product":"core","slug":"tmux-destroyunattachedkeeplast"},{"id":"tmux.DestroyUnattachedKeepGroup","name":"DestroyUnattachedKeepGroup","kind":"constant","modifiers":[],"signatures":[],"type":"DestroyUnattached","doc":{"summary":"DestroyUnattachedKeepGroup selects \"keep-group\"."},"source":{"file":"tmux/option_generated.go","line":189,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DestroyUnattachedKeepGroup","product":"core","slug":"tmux-destroyunattachedkeepgroup"},{"id":"tmux.DestroyUnattached.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.DestroyUnattached","signatures":[{"raw":"func (v DestroyUnattached) String() string","params":[],"receiver":{"name":"v","type":"DestroyUnattached"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":193,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DestroyUnattached.String","product":"core","slug":"tmux-destroyunattached-string"},{"id":"tmux.DestroyUnattached.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.DestroyUnattached","signatures":[{"raw":"func (v DestroyUnattached) Valid() bool","params":[],"receiver":{"name":"v","type":"DestroyUnattached"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":196,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DestroyUnattached.Valid","product":"core","slug":"tmux-destroyunattached-valid"},{"id":"tmux.DetachOnDestroy","name":"DetachOnDestroy","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"DetachOnDestroy is a typed value for the \"detach-on-destroy\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":206,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachOnDestroy","product":"core","slug":"tmux-detachondestroy"},{"id":"tmux.DetachOnDestroyOff","name":"DetachOnDestroyOff","kind":"constant","modifiers":[],"signatures":[],"type":"DetachOnDestroy","doc":{"summary":"DetachOnDestroyOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":210,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachOnDestroyOff","product":"core","slug":"tmux-detachondestroyoff"},{"id":"tmux.DetachOnDestroyOn","name":"DetachOnDestroyOn","kind":"constant","modifiers":[],"signatures":[],"type":"DetachOnDestroy","doc":{"summary":"DetachOnDestroyOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":212,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachOnDestroyOn","product":"core","slug":"tmux-detachondestroyon"},{"id":"tmux.DetachOnDestroyNoDetached","name":"DetachOnDestroyNoDetached","kind":"constant","modifiers":[],"signatures":[],"type":"DetachOnDestroy","doc":{"summary":"DetachOnDestroyNoDetached selects \"no-detached\"."},"source":{"file":"tmux/option_generated.go","line":214,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachOnDestroyNoDetached","product":"core","slug":"tmux-detachondestroynodetached"},{"id":"tmux.DetachOnDestroyPrevious","name":"DetachOnDestroyPrevious","kind":"constant","modifiers":[],"signatures":[],"type":"DetachOnDestroy","doc":{"summary":"DetachOnDestroyPrevious selects \"previous\"."},"source":{"file":"tmux/option_generated.go","line":216,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachOnDestroyPrevious","product":"core","slug":"tmux-detachondestroyprevious"},{"id":"tmux.DetachOnDestroyNext","name":"DetachOnDestroyNext","kind":"constant","modifiers":[],"signatures":[],"type":"DetachOnDestroy","doc":{"summary":"DetachOnDestroyNext selects \"next\"."},"source":{"file":"tmux/option_generated.go","line":218,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachOnDestroyNext","product":"core","slug":"tmux-detachondestroynext"},{"id":"tmux.DetachOnDestroy.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.DetachOnDestroy","signatures":[{"raw":"func (v DetachOnDestroy) String() string","params":[],"receiver":{"name":"v","type":"DetachOnDestroy"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":222,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachOnDestroy.String","product":"core","slug":"tmux-detachondestroy-string"},{"id":"tmux.DetachOnDestroy.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.DetachOnDestroy","signatures":[{"raw":"func (v DetachOnDestroy) Valid() bool","params":[],"receiver":{"name":"v","type":"DetachOnDestroy"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":225,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachOnDestroy.Valid","product":"core","slug":"tmux-detachondestroy-valid"},{"id":"tmux.ExtendedKeys","name":"ExtendedKeys","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ExtendedKeys is a typed value for the \"extended-keys\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":235,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeys","product":"core","slug":"tmux-extendedkeys"},{"id":"tmux.ExtendedKeysOff","name":"ExtendedKeysOff","kind":"constant","modifiers":[],"signatures":[],"type":"ExtendedKeys","doc":{"summary":"ExtendedKeysOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":239,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeysOff","product":"core","slug":"tmux-extendedkeysoff"},{"id":"tmux.ExtendedKeysOn","name":"ExtendedKeysOn","kind":"constant","modifiers":[],"signatures":[],"type":"ExtendedKeys","doc":{"summary":"ExtendedKeysOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":241,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeysOn","product":"core","slug":"tmux-extendedkeyson"},{"id":"tmux.ExtendedKeysAlways","name":"ExtendedKeysAlways","kind":"constant","modifiers":[],"signatures":[],"type":"ExtendedKeys","doc":{"summary":"ExtendedKeysAlways selects \"always\"."},"source":{"file":"tmux/option_generated.go","line":243,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeysAlways","product":"core","slug":"tmux-extendedkeysalways"},{"id":"tmux.ExtendedKeys.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.ExtendedKeys","signatures":[{"raw":"func (v ExtendedKeys) String() string","params":[],"receiver":{"name":"v","type":"ExtendedKeys"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":247,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeys.String","product":"core","slug":"tmux-extendedkeys-string"},{"id":"tmux.ExtendedKeys.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.ExtendedKeys","signatures":[{"raw":"func (v ExtendedKeys) Valid() bool","params":[],"receiver":{"name":"v","type":"ExtendedKeys"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":250,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeys.Valid","product":"core","slug":"tmux-extendedkeys-valid"},{"id":"tmux.ExtendedKeysFormat","name":"ExtendedKeysFormat","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ExtendedKeysFormat is a typed value for the \"extended-keys-format\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":260,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeysFormat","product":"core","slug":"tmux-extendedkeysformat"},{"id":"tmux.ExtendedKeysFormatCSIU","name":"ExtendedKeysFormatCSIU","kind":"constant","modifiers":[],"signatures":[],"type":"ExtendedKeysFormat","doc":{"summary":"ExtendedKeysFormatCSIU selects \"csi-u\"."},"source":{"file":"tmux/option_generated.go","line":264,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeysFormatCSIU","product":"core","slug":"tmux-extendedkeysformatcsiu"},{"id":"tmux.ExtendedKeysFormatXTerm","name":"ExtendedKeysFormatXTerm","kind":"constant","modifiers":[],"signatures":[],"type":"ExtendedKeysFormat","doc":{"summary":"ExtendedKeysFormatXTerm selects \"xterm\"."},"source":{"file":"tmux/option_generated.go","line":266,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeysFormatXTerm","product":"core","slug":"tmux-extendedkeysformatxterm"},{"id":"tmux.ExtendedKeysFormat.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.ExtendedKeysFormat","signatures":[{"raw":"func (v ExtendedKeysFormat) String() string","params":[],"receiver":{"name":"v","type":"ExtendedKeysFormat"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":270,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeysFormat.String","product":"core","slug":"tmux-extendedkeysformat-string"},{"id":"tmux.ExtendedKeysFormat.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.ExtendedKeysFormat","signatures":[{"raw":"func (v ExtendedKeysFormat) Valid() bool","params":[],"receiver":{"name":"v","type":"ExtendedKeysFormat"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":273,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeysFormat.Valid","product":"core","slug":"tmux-extendedkeysformat-valid"},{"id":"tmux.GetClipboard","name":"GetClipboard","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"GetClipboard is a typed value for the \"get-clipboard\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":283,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GetClipboard","product":"core","slug":"tmux-getclipboard"},{"id":"tmux.GetClipboardOff","name":"GetClipboardOff","kind":"constant","modifiers":[],"signatures":[],"type":"GetClipboard","doc":{"summary":"GetClipboardOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":287,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GetClipboardOff","product":"core","slug":"tmux-getclipboardoff"},{"id":"tmux.GetClipboardBuffer","name":"GetClipboardBuffer","kind":"constant","modifiers":[],"signatures":[],"type":"GetClipboard","doc":{"summary":"GetClipboardBuffer selects \"buffer\"."},"source":{"file":"tmux/option_generated.go","line":289,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GetClipboardBuffer","product":"core","slug":"tmux-getclipboardbuffer"},{"id":"tmux.GetClipboardRequest","name":"GetClipboardRequest","kind":"constant","modifiers":[],"signatures":[],"type":"GetClipboard","doc":{"summary":"GetClipboardRequest selects \"request\"."},"source":{"file":"tmux/option_generated.go","line":291,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GetClipboardRequest","product":"core","slug":"tmux-getclipboardrequest"},{"id":"tmux.GetClipboardBoth","name":"GetClipboardBoth","kind":"constant","modifiers":[],"signatures":[],"type":"GetClipboard","doc":{"summary":"GetClipboardBoth selects \"both\"."},"source":{"file":"tmux/option_generated.go","line":293,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GetClipboardBoth","product":"core","slug":"tmux-getclipboardboth"},{"id":"tmux.GetClipboard.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.GetClipboard","signatures":[{"raw":"func (v GetClipboard) String() string","params":[],"receiver":{"name":"v","type":"GetClipboard"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":297,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GetClipboard.String","product":"core","slug":"tmux-getclipboard-string"},{"id":"tmux.GetClipboard.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.GetClipboard","signatures":[{"raw":"func (v GetClipboard) Valid() bool","params":[],"receiver":{"name":"v","type":"GetClipboard"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":300,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GetClipboard.Valid","product":"core","slug":"tmux-getclipboard-valid"},{"id":"tmux.MenuBorderLines","name":"MenuBorderLines","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"MenuBorderLines is a typed value for the \"menu-border-lines\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":310,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLines","product":"core","slug":"tmux-menuborderlines"},{"id":"tmux.MenuBorderLinesSingle","name":"MenuBorderLinesSingle","kind":"constant","modifiers":[],"signatures":[],"type":"MenuBorderLines","doc":{"summary":"MenuBorderLinesSingle selects \"single\"."},"source":{"file":"tmux/option_generated.go","line":314,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLinesSingle","product":"core","slug":"tmux-menuborderlinessingle"},{"id":"tmux.MenuBorderLinesDouble","name":"MenuBorderLinesDouble","kind":"constant","modifiers":[],"signatures":[],"type":"MenuBorderLines","doc":{"summary":"MenuBorderLinesDouble selects \"double\"."},"source":{"file":"tmux/option_generated.go","line":316,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLinesDouble","product":"core","slug":"tmux-menuborderlinesdouble"},{"id":"tmux.MenuBorderLinesHeavy","name":"MenuBorderLinesHeavy","kind":"constant","modifiers":[],"signatures":[],"type":"MenuBorderLines","doc":{"summary":"MenuBorderLinesHeavy selects \"heavy\"."},"source":{"file":"tmux/option_generated.go","line":318,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLinesHeavy","product":"core","slug":"tmux-menuborderlinesheavy"},{"id":"tmux.MenuBorderLinesSimple","name":"MenuBorderLinesSimple","kind":"constant","modifiers":[],"signatures":[],"type":"MenuBorderLines","doc":{"summary":"MenuBorderLinesSimple selects \"simple\"."},"source":{"file":"tmux/option_generated.go","line":320,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLinesSimple","product":"core","slug":"tmux-menuborderlinessimple"},{"id":"tmux.MenuBorderLinesRounded","name":"MenuBorderLinesRounded","kind":"constant","modifiers":[],"signatures":[],"type":"MenuBorderLines","doc":{"summary":"MenuBorderLinesRounded selects \"rounded\"."},"source":{"file":"tmux/option_generated.go","line":322,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLinesRounded","product":"core","slug":"tmux-menuborderlinesrounded"},{"id":"tmux.MenuBorderLinesPadded","name":"MenuBorderLinesPadded","kind":"constant","modifiers":[],"signatures":[],"type":"MenuBorderLines","doc":{"summary":"MenuBorderLinesPadded selects \"padded\"."},"source":{"file":"tmux/option_generated.go","line":324,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLinesPadded","product":"core","slug":"tmux-menuborderlinespadded"},{"id":"tmux.MenuBorderLinesNone","name":"MenuBorderLinesNone","kind":"constant","modifiers":[],"signatures":[],"type":"MenuBorderLines","doc":{"summary":"MenuBorderLinesNone selects \"none\"."},"source":{"file":"tmux/option_generated.go","line":326,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLinesNone","product":"core","slug":"tmux-menuborderlinesnone"},{"id":"tmux.MenuBorderLines.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.MenuBorderLines","signatures":[{"raw":"func (v MenuBorderLines) String() string","params":[],"receiver":{"name":"v","type":"MenuBorderLines"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":330,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLines.String","product":"core","slug":"tmux-menuborderlines-string"},{"id":"tmux.MenuBorderLines.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.MenuBorderLines","signatures":[{"raw":"func (v MenuBorderLines) Valid() bool","params":[],"receiver":{"name":"v","type":"MenuBorderLines"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":333,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLines.Valid","product":"core","slug":"tmux-menuborderlines-valid"},{"id":"tmux.MessageLine","name":"MessageLine","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"MessageLine is a typed value for the \"message-line\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":343,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MessageLine","product":"core","slug":"tmux-messageline"},{"id":"tmux.MessageLine0","name":"MessageLine0","kind":"constant","modifiers":[],"signatures":[],"type":"MessageLine","doc":{"summary":"MessageLine0 selects \"0\"."},"source":{"file":"tmux/option_generated.go","line":347,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MessageLine0","product":"core","slug":"tmux-messageline0"},{"id":"tmux.MessageLine1","name":"MessageLine1","kind":"constant","modifiers":[],"signatures":[],"type":"MessageLine","doc":{"summary":"MessageLine1 selects \"1\"."},"source":{"file":"tmux/option_generated.go","line":349,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MessageLine1","product":"core","slug":"tmux-messageline1"},{"id":"tmux.MessageLine2","name":"MessageLine2","kind":"constant","modifiers":[],"signatures":[],"type":"MessageLine","doc":{"summary":"MessageLine2 selects \"2\"."},"source":{"file":"tmux/option_generated.go","line":351,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MessageLine2","product":"core","slug":"tmux-messageline2"},{"id":"tmux.MessageLine3","name":"MessageLine3","kind":"constant","modifiers":[],"signatures":[],"type":"MessageLine","doc":{"summary":"MessageLine3 selects \"3\"."},"source":{"file":"tmux/option_generated.go","line":353,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MessageLine3","product":"core","slug":"tmux-messageline3"},{"id":"tmux.MessageLine4","name":"MessageLine4","kind":"constant","modifiers":[],"signatures":[],"type":"MessageLine","doc":{"summary":"MessageLine4 selects \"4\"."},"source":{"file":"tmux/option_generated.go","line":355,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MessageLine4","product":"core","slug":"tmux-messageline4"},{"id":"tmux.MessageLine.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.MessageLine","signatures":[{"raw":"func (v MessageLine) String() string","params":[],"receiver":{"name":"v","type":"MessageLine"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":359,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MessageLine.String","product":"core","slug":"tmux-messageline-string"},{"id":"tmux.MessageLine.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.MessageLine","signatures":[{"raw":"func (v MessageLine) Valid() bool","params":[],"receiver":{"name":"v","type":"MessageLine"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":362,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MessageLine.Valid","product":"core","slug":"tmux-messageline-valid"},{"id":"tmux.ModeKeys","name":"ModeKeys","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ModeKeys is a typed value for the \"mode-keys\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":372,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ModeKeys","product":"core","slug":"tmux-modekeys"},{"id":"tmux.ModeKeysEmacs","name":"ModeKeysEmacs","kind":"constant","modifiers":[],"signatures":[],"type":"ModeKeys","doc":{"summary":"ModeKeysEmacs selects \"emacs\"."},"source":{"file":"tmux/option_generated.go","line":376,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ModeKeysEmacs","product":"core","slug":"tmux-modekeysemacs"},{"id":"tmux.ModeKeysVi","name":"ModeKeysVi","kind":"constant","modifiers":[],"signatures":[],"type":"ModeKeys","doc":{"summary":"ModeKeysVi selects \"vi\"."},"source":{"file":"tmux/option_generated.go","line":378,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ModeKeysVi","product":"core","slug":"tmux-modekeysvi"},{"id":"tmux.ModeKeys.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.ModeKeys","signatures":[{"raw":"func (v ModeKeys) String() string","params":[],"receiver":{"name":"v","type":"ModeKeys"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":382,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ModeKeys.String","product":"core","slug":"tmux-modekeys-string"},{"id":"tmux.ModeKeys.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.ModeKeys","signatures":[{"raw":"func (v ModeKeys) Valid() bool","params":[],"receiver":{"name":"v","type":"ModeKeys"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":385,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ModeKeys.Valid","product":"core","slug":"tmux-modekeys-valid"},{"id":"tmux.PaneBorderIndicators","name":"PaneBorderIndicators","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneBorderIndicators is a typed value for the \"pane-border-indicators\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":395,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderIndicators","product":"core","slug":"tmux-paneborderindicators"},{"id":"tmux.PaneBorderIndicatorsOff","name":"PaneBorderIndicatorsOff","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderIndicators","doc":{"summary":"PaneBorderIndicatorsOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":399,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderIndicatorsOff","product":"core","slug":"tmux-paneborderindicatorsoff"},{"id":"tmux.PaneBorderIndicatorsColour","name":"PaneBorderIndicatorsColour","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderIndicators","doc":{"summary":"PaneBorderIndicatorsColour selects \"colour\"."},"source":{"file":"tmux/option_generated.go","line":401,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderIndicatorsColour","product":"core","slug":"tmux-paneborderindicatorscolour"},{"id":"tmux.PaneBorderIndicatorsArrows","name":"PaneBorderIndicatorsArrows","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderIndicators","doc":{"summary":"PaneBorderIndicatorsArrows selects \"arrows\"."},"source":{"file":"tmux/option_generated.go","line":403,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderIndicatorsArrows","product":"core","slug":"tmux-paneborderindicatorsarrows"},{"id":"tmux.PaneBorderIndicatorsBoth","name":"PaneBorderIndicatorsBoth","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderIndicators","doc":{"summary":"PaneBorderIndicatorsBoth selects \"both\"."},"source":{"file":"tmux/option_generated.go","line":405,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderIndicatorsBoth","product":"core","slug":"tmux-paneborderindicatorsboth"},{"id":"tmux.PaneBorderIndicators.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.PaneBorderIndicators","signatures":[{"raw":"func (v PaneBorderIndicators) String() string","params":[],"receiver":{"name":"v","type":"PaneBorderIndicators"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":409,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderIndicators.String","product":"core","slug":"tmux-paneborderindicators-string"},{"id":"tmux.PaneBorderIndicators.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.PaneBorderIndicators","signatures":[{"raw":"func (v PaneBorderIndicators) Valid() bool","params":[],"receiver":{"name":"v","type":"PaneBorderIndicators"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":412,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderIndicators.Valid","product":"core","slug":"tmux-paneborderindicators-valid"},{"id":"tmux.PaneBorderLines","name":"PaneBorderLines","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneBorderLines is a typed value for the \"pane-border-lines\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":422,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderLines","product":"core","slug":"tmux-paneborderlines"},{"id":"tmux.PaneBorderLinesSingle","name":"PaneBorderLinesSingle","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderLines","doc":{"summary":"PaneBorderLinesSingle selects \"single\"."},"source":{"file":"tmux/option_generated.go","line":426,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderLinesSingle","product":"core","slug":"tmux-paneborderlinessingle"},{"id":"tmux.PaneBorderLinesDouble","name":"PaneBorderLinesDouble","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderLines","doc":{"summary":"PaneBorderLinesDouble selects \"double\"."},"source":{"file":"tmux/option_generated.go","line":428,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderLinesDouble","product":"core","slug":"tmux-paneborderlinesdouble"},{"id":"tmux.PaneBorderLinesHeavy","name":"PaneBorderLinesHeavy","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderLines","doc":{"summary":"PaneBorderLinesHeavy selects \"heavy\"."},"source":{"file":"tmux/option_generated.go","line":430,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderLinesHeavy","product":"core","slug":"tmux-paneborderlinesheavy"},{"id":"tmux.PaneBorderLinesSimple","name":"PaneBorderLinesSimple","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderLines","doc":{"summary":"PaneBorderLinesSimple selects \"simple\"."},"source":{"file":"tmux/option_generated.go","line":432,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderLinesSimple","product":"core","slug":"tmux-paneborderlinessimple"},{"id":"tmux.PaneBorderLinesNumber","name":"PaneBorderLinesNumber","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderLines","doc":{"summary":"PaneBorderLinesNumber selects \"number\"."},"source":{"file":"tmux/option_generated.go","line":434,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderLinesNumber","product":"core","slug":"tmux-paneborderlinesnumber"},{"id":"tmux.PaneBorderLinesSpaces","name":"PaneBorderLinesSpaces","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderLines","doc":{"summary":"PaneBorderLinesSpaces selects \"spaces\"."},"source":{"file":"tmux/option_generated.go","line":436,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderLinesSpaces","product":"core","slug":"tmux-paneborderlinesspaces"},{"id":"tmux.PaneBorderLines.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.PaneBorderLines","signatures":[{"raw":"func (v PaneBorderLines) String() string","params":[],"receiver":{"name":"v","type":"PaneBorderLines"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":440,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderLines.String","product":"core","slug":"tmux-paneborderlines-string"},{"id":"tmux.PaneBorderLines.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.PaneBorderLines","signatures":[{"raw":"func (v PaneBorderLines) Valid() bool","params":[],"receiver":{"name":"v","type":"PaneBorderLines"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":443,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderLines.Valid","product":"core","slug":"tmux-paneborderlines-valid"},{"id":"tmux.PaneBorderStatus","name":"PaneBorderStatus","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneBorderStatus is a typed value for the \"pane-border-status\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":453,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderStatus","product":"core","slug":"tmux-paneborderstatus"},{"id":"tmux.PaneBorderStatusOff","name":"PaneBorderStatusOff","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderStatus","doc":{"summary":"PaneBorderStatusOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":457,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderStatusOff","product":"core","slug":"tmux-paneborderstatusoff"},{"id":"tmux.PaneBorderStatusTop","name":"PaneBorderStatusTop","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderStatus","doc":{"summary":"PaneBorderStatusTop selects \"top\"."},"source":{"file":"tmux/option_generated.go","line":459,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderStatusTop","product":"core","slug":"tmux-paneborderstatustop"},{"id":"tmux.PaneBorderStatusBottom","name":"PaneBorderStatusBottom","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderStatus","doc":{"summary":"PaneBorderStatusBottom selects \"bottom\"."},"source":{"file":"tmux/option_generated.go","line":461,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderStatusBottom","product":"core","slug":"tmux-paneborderstatusbottom"},{"id":"tmux.PaneBorderStatus.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.PaneBorderStatus","signatures":[{"raw":"func (v PaneBorderStatus) String() string","params":[],"receiver":{"name":"v","type":"PaneBorderStatus"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":465,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderStatus.String","product":"core","slug":"tmux-paneborderstatus-string"},{"id":"tmux.PaneBorderStatus.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.PaneBorderStatus","signatures":[{"raw":"func (v PaneBorderStatus) Valid() bool","params":[],"receiver":{"name":"v","type":"PaneBorderStatus"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":468,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderStatus.Valid","product":"core","slug":"tmux-paneborderstatus-valid"},{"id":"tmux.PaneScrollbars","name":"PaneScrollbars","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneScrollbars is a typed value for the \"pane-scrollbars\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":478,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbars","product":"core","slug":"tmux-panescrollbars"},{"id":"tmux.PaneScrollbarsOff","name":"PaneScrollbarsOff","kind":"constant","modifiers":[],"signatures":[],"type":"PaneScrollbars","doc":{"summary":"PaneScrollbarsOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":482,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbarsOff","product":"core","slug":"tmux-panescrollbarsoff"},{"id":"tmux.PaneScrollbarsModal","name":"PaneScrollbarsModal","kind":"constant","modifiers":[],"signatures":[],"type":"PaneScrollbars","doc":{"summary":"PaneScrollbarsModal selects \"modal\"."},"source":{"file":"tmux/option_generated.go","line":484,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbarsModal","product":"core","slug":"tmux-panescrollbarsmodal"},{"id":"tmux.PaneScrollbarsOn","name":"PaneScrollbarsOn","kind":"constant","modifiers":[],"signatures":[],"type":"PaneScrollbars","doc":{"summary":"PaneScrollbarsOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":486,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbarsOn","product":"core","slug":"tmux-panescrollbarson"},{"id":"tmux.PaneScrollbars.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.PaneScrollbars","signatures":[{"raw":"func (v PaneScrollbars) String() string","params":[],"receiver":{"name":"v","type":"PaneScrollbars"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":490,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbars.String","product":"core","slug":"tmux-panescrollbars-string"},{"id":"tmux.PaneScrollbars.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.PaneScrollbars","signatures":[{"raw":"func (v PaneScrollbars) Valid() bool","params":[],"receiver":{"name":"v","type":"PaneScrollbars"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":493,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbars.Valid","product":"core","slug":"tmux-panescrollbars-valid"},{"id":"tmux.PaneScrollbarsPosition","name":"PaneScrollbarsPosition","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneScrollbarsPosition is a typed value for the \"pane-scrollbars-position\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":503,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbarsPosition","product":"core","slug":"tmux-panescrollbarsposition"},{"id":"tmux.PaneScrollbarsPositionRight","name":"PaneScrollbarsPositionRight","kind":"constant","modifiers":[],"signatures":[],"type":"PaneScrollbarsPosition","doc":{"summary":"PaneScrollbarsPositionRight selects \"right\"."},"source":{"file":"tmux/option_generated.go","line":507,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbarsPositionRight","product":"core","slug":"tmux-panescrollbarspositionright"},{"id":"tmux.PaneScrollbarsPositionLeft","name":"PaneScrollbarsPositionLeft","kind":"constant","modifiers":[],"signatures":[],"type":"PaneScrollbarsPosition","doc":{"summary":"PaneScrollbarsPositionLeft selects \"left\"."},"source":{"file":"tmux/option_generated.go","line":509,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbarsPositionLeft","product":"core","slug":"tmux-panescrollbarspositionleft"},{"id":"tmux.PaneScrollbarsPosition.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.PaneScrollbarsPosition","signatures":[{"raw":"func (v PaneScrollbarsPosition) String() string","params":[],"receiver":{"name":"v","type":"PaneScrollbarsPosition"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":513,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbarsPosition.String","product":"core","slug":"tmux-panescrollbarsposition-string"},{"id":"tmux.PaneScrollbarsPosition.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.PaneScrollbarsPosition","signatures":[{"raw":"func (v PaneScrollbarsPosition) Valid() bool","params":[],"receiver":{"name":"v","type":"PaneScrollbarsPosition"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":516,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbarsPosition.Valid","product":"core","slug":"tmux-panescrollbarsposition-valid"},{"id":"tmux.PopupBorderLines","name":"PopupBorderLines","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PopupBorderLines is a typed value for the \"popup-border-lines\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":526,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLines","product":"core","slug":"tmux-popupborderlines"},{"id":"tmux.PopupBorderLinesSingle","name":"PopupBorderLinesSingle","kind":"constant","modifiers":[],"signatures":[],"type":"PopupBorderLines","doc":{"summary":"PopupBorderLinesSingle selects \"single\"."},"source":{"file":"tmux/option_generated.go","line":530,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLinesSingle","product":"core","slug":"tmux-popupborderlinessingle"},{"id":"tmux.PopupBorderLinesDouble","name":"PopupBorderLinesDouble","kind":"constant","modifiers":[],"signatures":[],"type":"PopupBorderLines","doc":{"summary":"PopupBorderLinesDouble selects \"double\"."},"source":{"file":"tmux/option_generated.go","line":532,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLinesDouble","product":"core","slug":"tmux-popupborderlinesdouble"},{"id":"tmux.PopupBorderLinesHeavy","name":"PopupBorderLinesHeavy","kind":"constant","modifiers":[],"signatures":[],"type":"PopupBorderLines","doc":{"summary":"PopupBorderLinesHeavy selects \"heavy\"."},"source":{"file":"tmux/option_generated.go","line":534,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLinesHeavy","product":"core","slug":"tmux-popupborderlinesheavy"},{"id":"tmux.PopupBorderLinesSimple","name":"PopupBorderLinesSimple","kind":"constant","modifiers":[],"signatures":[],"type":"PopupBorderLines","doc":{"summary":"PopupBorderLinesSimple selects \"simple\"."},"source":{"file":"tmux/option_generated.go","line":536,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLinesSimple","product":"core","slug":"tmux-popupborderlinessimple"},{"id":"tmux.PopupBorderLinesRounded","name":"PopupBorderLinesRounded","kind":"constant","modifiers":[],"signatures":[],"type":"PopupBorderLines","doc":{"summary":"PopupBorderLinesRounded selects \"rounded\"."},"source":{"file":"tmux/option_generated.go","line":538,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLinesRounded","product":"core","slug":"tmux-popupborderlinesrounded"},{"id":"tmux.PopupBorderLinesPadded","name":"PopupBorderLinesPadded","kind":"constant","modifiers":[],"signatures":[],"type":"PopupBorderLines","doc":{"summary":"PopupBorderLinesPadded selects \"padded\"."},"source":{"file":"tmux/option_generated.go","line":540,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLinesPadded","product":"core","slug":"tmux-popupborderlinespadded"},{"id":"tmux.PopupBorderLinesNone","name":"PopupBorderLinesNone","kind":"constant","modifiers":[],"signatures":[],"type":"PopupBorderLines","doc":{"summary":"PopupBorderLinesNone selects \"none\"."},"source":{"file":"tmux/option_generated.go","line":542,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLinesNone","product":"core","slug":"tmux-popupborderlinesnone"},{"id":"tmux.PopupBorderLines.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.PopupBorderLines","signatures":[{"raw":"func (v PopupBorderLines) String() string","params":[],"receiver":{"name":"v","type":"PopupBorderLines"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":546,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLines.String","product":"core","slug":"tmux-popupborderlines-string"},{"id":"tmux.PopupBorderLines.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.PopupBorderLines","signatures":[{"raw":"func (v PopupBorderLines) Valid() bool","params":[],"receiver":{"name":"v","type":"PopupBorderLines"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":549,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLines.Valid","product":"core","slug":"tmux-popupborderlines-valid"},{"id":"tmux.PromptCommandCursorStyle","name":"PromptCommandCursorStyle","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PromptCommandCursorStyle is a typed value for the \"prompt-command-cursor-style\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":559,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyle","product":"core","slug":"tmux-promptcommandcursorstyle"},{"id":"tmux.PromptCommandCursorStyleDefault","name":"PromptCommandCursorStyleDefault","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCommandCursorStyle","doc":{"summary":"PromptCommandCursorStyleDefault selects \"default\"."},"source":{"file":"tmux/option_generated.go","line":563,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyleDefault","product":"core","slug":"tmux-promptcommandcursorstyledefault"},{"id":"tmux.PromptCommandCursorStyleBlinkingBlock","name":"PromptCommandCursorStyleBlinkingBlock","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCommandCursorStyle","doc":{"summary":"PromptCommandCursorStyleBlinkingBlock selects \"blinking-block\"."},"source":{"file":"tmux/option_generated.go","line":565,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyleBlinkingBlock","product":"core","slug":"tmux-promptcommandcursorstyleblinkingblock"},{"id":"tmux.PromptCommandCursorStyleBlock","name":"PromptCommandCursorStyleBlock","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCommandCursorStyle","doc":{"summary":"PromptCommandCursorStyleBlock selects \"block\"."},"source":{"file":"tmux/option_generated.go","line":567,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyleBlock","product":"core","slug":"tmux-promptcommandcursorstyleblock"},{"id":"tmux.PromptCommandCursorStyleBlinkingUnderline","name":"PromptCommandCursorStyleBlinkingUnderline","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCommandCursorStyle","doc":{"summary":"PromptCommandCursorStyleBlinkingUnderline selects \"blinking-underline\"."},"source":{"file":"tmux/option_generated.go","line":569,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyleBlinkingUnderline","product":"core","slug":"tmux-promptcommandcursorstyleblinkingunderline"},{"id":"tmux.PromptCommandCursorStyleUnderline","name":"PromptCommandCursorStyleUnderline","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCommandCursorStyle","doc":{"summary":"PromptCommandCursorStyleUnderline selects \"underline\"."},"source":{"file":"tmux/option_generated.go","line":571,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyleUnderline","product":"core","slug":"tmux-promptcommandcursorstyleunderline"},{"id":"tmux.PromptCommandCursorStyleBlinkingBar","name":"PromptCommandCursorStyleBlinkingBar","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCommandCursorStyle","doc":{"summary":"PromptCommandCursorStyleBlinkingBar selects \"blinking-bar\"."},"source":{"file":"tmux/option_generated.go","line":573,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyleBlinkingBar","product":"core","slug":"tmux-promptcommandcursorstyleblinkingbar"},{"id":"tmux.PromptCommandCursorStyleBar","name":"PromptCommandCursorStyleBar","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCommandCursorStyle","doc":{"summary":"PromptCommandCursorStyleBar selects \"bar\"."},"source":{"file":"tmux/option_generated.go","line":575,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyleBar","product":"core","slug":"tmux-promptcommandcursorstylebar"},{"id":"tmux.PromptCommandCursorStyle.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.PromptCommandCursorStyle","signatures":[{"raw":"func (v PromptCommandCursorStyle) String() string","params":[],"receiver":{"name":"v","type":"PromptCommandCursorStyle"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":579,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyle.String","product":"core","slug":"tmux-promptcommandcursorstyle-string"},{"id":"tmux.PromptCommandCursorStyle.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.PromptCommandCursorStyle","signatures":[{"raw":"func (v PromptCommandCursorStyle) Valid() bool","params":[],"receiver":{"name":"v","type":"PromptCommandCursorStyle"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":582,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyle.Valid","product":"core","slug":"tmux-promptcommandcursorstyle-valid"},{"id":"tmux.PromptCursorStyle","name":"PromptCursorStyle","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PromptCursorStyle is a typed value for the \"prompt-cursor-style\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":592,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyle","product":"core","slug":"tmux-promptcursorstyle"},{"id":"tmux.PromptCursorStyleDefault","name":"PromptCursorStyleDefault","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCursorStyle","doc":{"summary":"PromptCursorStyleDefault selects \"default\"."},"source":{"file":"tmux/option_generated.go","line":596,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyleDefault","product":"core","slug":"tmux-promptcursorstyledefault"},{"id":"tmux.PromptCursorStyleBlinkingBlock","name":"PromptCursorStyleBlinkingBlock","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCursorStyle","doc":{"summary":"PromptCursorStyleBlinkingBlock selects \"blinking-block\"."},"source":{"file":"tmux/option_generated.go","line":598,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyleBlinkingBlock","product":"core","slug":"tmux-promptcursorstyleblinkingblock"},{"id":"tmux.PromptCursorStyleBlock","name":"PromptCursorStyleBlock","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCursorStyle","doc":{"summary":"PromptCursorStyleBlock selects \"block\"."},"source":{"file":"tmux/option_generated.go","line":600,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyleBlock","product":"core","slug":"tmux-promptcursorstyleblock"},{"id":"tmux.PromptCursorStyleBlinkingUnderline","name":"PromptCursorStyleBlinkingUnderline","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCursorStyle","doc":{"summary":"PromptCursorStyleBlinkingUnderline selects \"blinking-underline\"."},"source":{"file":"tmux/option_generated.go","line":602,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyleBlinkingUnderline","product":"core","slug":"tmux-promptcursorstyleblinkingunderline"},{"id":"tmux.PromptCursorStyleUnderline","name":"PromptCursorStyleUnderline","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCursorStyle","doc":{"summary":"PromptCursorStyleUnderline selects \"underline\"."},"source":{"file":"tmux/option_generated.go","line":604,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyleUnderline","product":"core","slug":"tmux-promptcursorstyleunderline"},{"id":"tmux.PromptCursorStyleBlinkingBar","name":"PromptCursorStyleBlinkingBar","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCursorStyle","doc":{"summary":"PromptCursorStyleBlinkingBar selects \"blinking-bar\"."},"source":{"file":"tmux/option_generated.go","line":606,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyleBlinkingBar","product":"core","slug":"tmux-promptcursorstyleblinkingbar"},{"id":"tmux.PromptCursorStyleBar","name":"PromptCursorStyleBar","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCursorStyle","doc":{"summary":"PromptCursorStyleBar selects \"bar\"."},"source":{"file":"tmux/option_generated.go","line":608,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyleBar","product":"core","slug":"tmux-promptcursorstylebar"},{"id":"tmux.PromptCursorStyle.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.PromptCursorStyle","signatures":[{"raw":"func (v PromptCursorStyle) String() string","params":[],"receiver":{"name":"v","type":"PromptCursorStyle"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":612,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyle.String","product":"core","slug":"tmux-promptcursorstyle-string"},{"id":"tmux.PromptCursorStyle.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.PromptCursorStyle","signatures":[{"raw":"func (v PromptCursorStyle) Valid() bool","params":[],"receiver":{"name":"v","type":"PromptCursorStyle"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":615,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyle.Valid","product":"core","slug":"tmux-promptcursorstyle-valid"},{"id":"tmux.RemainOnExit","name":"RemainOnExit","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"RemainOnExit is a typed value for the \"remain-on-exit\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":625,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RemainOnExit","product":"core","slug":"tmux-remainonexit"},{"id":"tmux.RemainOnExitOff","name":"RemainOnExitOff","kind":"constant","modifiers":[],"signatures":[],"type":"RemainOnExit","doc":{"summary":"RemainOnExitOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":629,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RemainOnExitOff","product":"core","slug":"tmux-remainonexitoff"},{"id":"tmux.RemainOnExitOn","name":"RemainOnExitOn","kind":"constant","modifiers":[],"signatures":[],"type":"RemainOnExit","doc":{"summary":"RemainOnExitOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":631,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RemainOnExitOn","product":"core","slug":"tmux-remainonexiton"},{"id":"tmux.RemainOnExitFailed","name":"RemainOnExitFailed","kind":"constant","modifiers":[],"signatures":[],"type":"RemainOnExit","doc":{"summary":"RemainOnExitFailed selects \"failed\"."},"source":{"file":"tmux/option_generated.go","line":633,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RemainOnExitFailed","product":"core","slug":"tmux-remainonexitfailed"},{"id":"tmux.RemainOnExitKey","name":"RemainOnExitKey","kind":"constant","modifiers":[],"signatures":[],"type":"RemainOnExit","doc":{"summary":"RemainOnExitKey selects \"key\"."},"source":{"file":"tmux/option_generated.go","line":635,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RemainOnExitKey","product":"core","slug":"tmux-remainonexitkey"},{"id":"tmux.RemainOnExit.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.RemainOnExit","signatures":[{"raw":"func (v RemainOnExit) String() string","params":[],"receiver":{"name":"v","type":"RemainOnExit"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":639,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RemainOnExit.String","product":"core","slug":"tmux-remainonexit-string"},{"id":"tmux.RemainOnExit.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.RemainOnExit","signatures":[{"raw":"func (v RemainOnExit) Valid() bool","params":[],"receiver":{"name":"v","type":"RemainOnExit"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":642,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RemainOnExit.Valid","product":"core","slug":"tmux-remainonexit-valid"},{"id":"tmux.SetClipboard","name":"SetClipboard","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SetClipboard is a typed value for the \"set-clipboard\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":652,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetClipboard","product":"core","slug":"tmux-setclipboard"},{"id":"tmux.SetClipboardOff","name":"SetClipboardOff","kind":"constant","modifiers":[],"signatures":[],"type":"SetClipboard","doc":{"summary":"SetClipboardOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":656,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetClipboardOff","product":"core","slug":"tmux-setclipboardoff"},{"id":"tmux.SetClipboardExternal","name":"SetClipboardExternal","kind":"constant","modifiers":[],"signatures":[],"type":"SetClipboard","doc":{"summary":"SetClipboardExternal selects \"external\"."},"source":{"file":"tmux/option_generated.go","line":658,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetClipboardExternal","product":"core","slug":"tmux-setclipboardexternal"},{"id":"tmux.SetClipboardOn","name":"SetClipboardOn","kind":"constant","modifiers":[],"signatures":[],"type":"SetClipboard","doc":{"summary":"SetClipboardOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":660,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetClipboardOn","product":"core","slug":"tmux-setclipboardon"},{"id":"tmux.SetClipboard.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.SetClipboard","signatures":[{"raw":"func (v SetClipboard) String() string","params":[],"receiver":{"name":"v","type":"SetClipboard"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":664,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetClipboard.String","product":"core","slug":"tmux-setclipboard-string"},{"id":"tmux.SetClipboard.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.SetClipboard","signatures":[{"raw":"func (v SetClipboard) Valid() bool","params":[],"receiver":{"name":"v","type":"SetClipboard"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":667,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetClipboard.Valid","product":"core","slug":"tmux-setclipboard-valid"},{"id":"tmux.SilenceAction","name":"SilenceAction","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SilenceAction is a typed value for the \"silence-action\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":677,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SilenceAction","product":"core","slug":"tmux-silenceaction"},{"id":"tmux.SilenceActionNone","name":"SilenceActionNone","kind":"constant","modifiers":[],"signatures":[],"type":"SilenceAction","doc":{"summary":"SilenceActionNone selects \"none\"."},"source":{"file":"tmux/option_generated.go","line":681,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SilenceActionNone","product":"core","slug":"tmux-silenceactionnone"},{"id":"tmux.SilenceActionAny","name":"SilenceActionAny","kind":"constant","modifiers":[],"signatures":[],"type":"SilenceAction","doc":{"summary":"SilenceActionAny selects \"any\"."},"source":{"file":"tmux/option_generated.go","line":683,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SilenceActionAny","product":"core","slug":"tmux-silenceactionany"},{"id":"tmux.SilenceActionCurrent","name":"SilenceActionCurrent","kind":"constant","modifiers":[],"signatures":[],"type":"SilenceAction","doc":{"summary":"SilenceActionCurrent selects \"current\"."},"source":{"file":"tmux/option_generated.go","line":685,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SilenceActionCurrent","product":"core","slug":"tmux-silenceactioncurrent"},{"id":"tmux.SilenceActionOther","name":"SilenceActionOther","kind":"constant","modifiers":[],"signatures":[],"type":"SilenceAction","doc":{"summary":"SilenceActionOther selects \"other\"."},"source":{"file":"tmux/option_generated.go","line":687,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SilenceActionOther","product":"core","slug":"tmux-silenceactionother"},{"id":"tmux.SilenceAction.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.SilenceAction","signatures":[{"raw":"func (v SilenceAction) String() string","params":[],"receiver":{"name":"v","type":"SilenceAction"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":691,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SilenceAction.String","product":"core","slug":"tmux-silenceaction-string"},{"id":"tmux.SilenceAction.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.SilenceAction","signatures":[{"raw":"func (v SilenceAction) Valid() bool","params":[],"receiver":{"name":"v","type":"SilenceAction"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":694,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SilenceAction.Valid","product":"core","slug":"tmux-silenceaction-valid"},{"id":"tmux.Status","name":"Status","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Status is a typed value for the \"status\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":704,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Status","product":"core","slug":"tmux-status"},{"id":"tmux.StatusOff","name":"StatusOff","kind":"constant","modifiers":[],"signatures":[],"type":"Status","doc":{"summary":"StatusOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":708,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusOff","product":"core","slug":"tmux-statusoff"},{"id":"tmux.StatusOn","name":"StatusOn","kind":"constant","modifiers":[],"signatures":[],"type":"Status","doc":{"summary":"StatusOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":710,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusOn","product":"core","slug":"tmux-statuson"},{"id":"tmux.Status2","name":"Status2","kind":"constant","modifiers":[],"signatures":[],"type":"Status","doc":{"summary":"Status2 selects \"2\"."},"source":{"file":"tmux/option_generated.go","line":712,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Status2","product":"core","slug":"tmux-status2"},{"id":"tmux.Status3","name":"Status3","kind":"constant","modifiers":[],"signatures":[],"type":"Status","doc":{"summary":"Status3 selects \"3\"."},"source":{"file":"tmux/option_generated.go","line":714,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Status3","product":"core","slug":"tmux-status3"},{"id":"tmux.Status4","name":"Status4","kind":"constant","modifiers":[],"signatures":[],"type":"Status","doc":{"summary":"Status4 selects \"4\"."},"source":{"file":"tmux/option_generated.go","line":716,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Status4","product":"core","slug":"tmux-status4"},{"id":"tmux.Status5","name":"Status5","kind":"constant","modifiers":[],"signatures":[],"type":"Status","doc":{"summary":"Status5 selects \"5\"."},"source":{"file":"tmux/option_generated.go","line":718,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Status5","product":"core","slug":"tmux-status5"},{"id":"tmux.Status.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.Status","signatures":[{"raw":"func (v Status) String() string","params":[],"receiver":{"name":"v","type":"Status"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":722,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Status.String","product":"core","slug":"tmux-status-string"},{"id":"tmux.Status.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.Status","signatures":[{"raw":"func (v Status) Valid() bool","params":[],"receiver":{"name":"v","type":"Status"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":725,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Status.Valid","product":"core","slug":"tmux-status-valid"},{"id":"tmux.StatusJustify","name":"StatusJustify","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"StatusJustify is a typed value for the \"status-justify\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":735,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusJustify","product":"core","slug":"tmux-statusjustify"},{"id":"tmux.StatusJustifyLeft","name":"StatusJustifyLeft","kind":"constant","modifiers":[],"signatures":[],"type":"StatusJustify","doc":{"summary":"StatusJustifyLeft selects \"left\"."},"source":{"file":"tmux/option_generated.go","line":739,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusJustifyLeft","product":"core","slug":"tmux-statusjustifyleft"},{"id":"tmux.StatusJustifyCentre","name":"StatusJustifyCentre","kind":"constant","modifiers":[],"signatures":[],"type":"StatusJustify","doc":{"summary":"StatusJustifyCentre selects \"centre\"."},"source":{"file":"tmux/option_generated.go","line":741,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusJustifyCentre","product":"core","slug":"tmux-statusjustifycentre"},{"id":"tmux.StatusJustifyRight","name":"StatusJustifyRight","kind":"constant","modifiers":[],"signatures":[],"type":"StatusJustify","doc":{"summary":"StatusJustifyRight selects \"right\"."},"source":{"file":"tmux/option_generated.go","line":743,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusJustifyRight","product":"core","slug":"tmux-statusjustifyright"},{"id":"tmux.StatusJustifyAbsoluteCentre","name":"StatusJustifyAbsoluteCentre","kind":"constant","modifiers":[],"signatures":[],"type":"StatusJustify","doc":{"summary":"StatusJustifyAbsoluteCentre selects \"absolute-centre\"."},"source":{"file":"tmux/option_generated.go","line":745,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusJustifyAbsoluteCentre","product":"core","slug":"tmux-statusjustifyabsolutecentre"},{"id":"tmux.StatusJustify.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.StatusJustify","signatures":[{"raw":"func (v StatusJustify) String() string","params":[],"receiver":{"name":"v","type":"StatusJustify"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":749,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusJustify.String","product":"core","slug":"tmux-statusjustify-string"},{"id":"tmux.StatusJustify.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.StatusJustify","signatures":[{"raw":"func (v StatusJustify) Valid() bool","params":[],"receiver":{"name":"v","type":"StatusJustify"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":752,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusJustify.Valid","product":"core","slug":"tmux-statusjustify-valid"},{"id":"tmux.StatusKeys","name":"StatusKeys","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"StatusKeys is a typed value for the \"status-keys\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":762,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusKeys","product":"core","slug":"tmux-statuskeys"},{"id":"tmux.StatusKeysEmacs","name":"StatusKeysEmacs","kind":"constant","modifiers":[],"signatures":[],"type":"StatusKeys","doc":{"summary":"StatusKeysEmacs selects \"emacs\"."},"source":{"file":"tmux/option_generated.go","line":766,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusKeysEmacs","product":"core","slug":"tmux-statuskeysemacs"},{"id":"tmux.StatusKeysVi","name":"StatusKeysVi","kind":"constant","modifiers":[],"signatures":[],"type":"StatusKeys","doc":{"summary":"StatusKeysVi selects \"vi\"."},"source":{"file":"tmux/option_generated.go","line":768,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusKeysVi","product":"core","slug":"tmux-statuskeysvi"},{"id":"tmux.StatusKeys.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.StatusKeys","signatures":[{"raw":"func (v StatusKeys) String() string","params":[],"receiver":{"name":"v","type":"StatusKeys"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":772,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusKeys.String","product":"core","slug":"tmux-statuskeys-string"},{"id":"tmux.StatusKeys.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.StatusKeys","signatures":[{"raw":"func (v StatusKeys) Valid() bool","params":[],"receiver":{"name":"v","type":"StatusKeys"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":775,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusKeys.Valid","product":"core","slug":"tmux-statuskeys-valid"},{"id":"tmux.StatusPosition","name":"StatusPosition","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"StatusPosition is a typed value for the \"status-position\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":785,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusPosition","product":"core","slug":"tmux-statusposition"},{"id":"tmux.StatusPositionTop","name":"StatusPositionTop","kind":"constant","modifiers":[],"signatures":[],"type":"StatusPosition","doc":{"summary":"StatusPositionTop selects \"top\"."},"source":{"file":"tmux/option_generated.go","line":789,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusPositionTop","product":"core","slug":"tmux-statuspositiontop"},{"id":"tmux.StatusPositionBottom","name":"StatusPositionBottom","kind":"constant","modifiers":[],"signatures":[],"type":"StatusPosition","doc":{"summary":"StatusPositionBottom selects \"bottom\"."},"source":{"file":"tmux/option_generated.go","line":791,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusPositionBottom","product":"core","slug":"tmux-statuspositionbottom"},{"id":"tmux.StatusPosition.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.StatusPosition","signatures":[{"raw":"func (v StatusPosition) String() string","params":[],"receiver":{"name":"v","type":"StatusPosition"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":795,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusPosition.String","product":"core","slug":"tmux-statusposition-string"},{"id":"tmux.StatusPosition.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.StatusPosition","signatures":[{"raw":"func (v StatusPosition) Valid() bool","params":[],"receiver":{"name":"v","type":"StatusPosition"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":798,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusPosition.Valid","product":"core","slug":"tmux-statusposition-valid"},{"id":"tmux.VisualActivity","name":"VisualActivity","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"VisualActivity is a typed value for the \"visual-activity\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":808,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualActivity","product":"core","slug":"tmux-visualactivity"},{"id":"tmux.VisualActivityOff","name":"VisualActivityOff","kind":"constant","modifiers":[],"signatures":[],"type":"VisualActivity","doc":{"summary":"VisualActivityOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":812,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualActivityOff","product":"core","slug":"tmux-visualactivityoff"},{"id":"tmux.VisualActivityOn","name":"VisualActivityOn","kind":"constant","modifiers":[],"signatures":[],"type":"VisualActivity","doc":{"summary":"VisualActivityOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":814,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualActivityOn","product":"core","slug":"tmux-visualactivityon"},{"id":"tmux.VisualActivityBoth","name":"VisualActivityBoth","kind":"constant","modifiers":[],"signatures":[],"type":"VisualActivity","doc":{"summary":"VisualActivityBoth selects \"both\"."},"source":{"file":"tmux/option_generated.go","line":816,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualActivityBoth","product":"core","slug":"tmux-visualactivityboth"},{"id":"tmux.VisualActivity.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.VisualActivity","signatures":[{"raw":"func (v VisualActivity) String() string","params":[],"receiver":{"name":"v","type":"VisualActivity"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":820,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualActivity.String","product":"core","slug":"tmux-visualactivity-string"},{"id":"tmux.VisualActivity.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.VisualActivity","signatures":[{"raw":"func (v VisualActivity) Valid() bool","params":[],"receiver":{"name":"v","type":"VisualActivity"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":823,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualActivity.Valid","product":"core","slug":"tmux-visualactivity-valid"},{"id":"tmux.VisualBell","name":"VisualBell","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"VisualBell is a typed value for the \"visual-bell\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":833,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualBell","product":"core","slug":"tmux-visualbell"},{"id":"tmux.VisualBellOff","name":"VisualBellOff","kind":"constant","modifiers":[],"signatures":[],"type":"VisualBell","doc":{"summary":"VisualBellOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":837,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualBellOff","product":"core","slug":"tmux-visualbelloff"},{"id":"tmux.VisualBellOn","name":"VisualBellOn","kind":"constant","modifiers":[],"signatures":[],"type":"VisualBell","doc":{"summary":"VisualBellOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":839,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualBellOn","product":"core","slug":"tmux-visualbellon"},{"id":"tmux.VisualBellBoth","name":"VisualBellBoth","kind":"constant","modifiers":[],"signatures":[],"type":"VisualBell","doc":{"summary":"VisualBellBoth selects \"both\"."},"source":{"file":"tmux/option_generated.go","line":841,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualBellBoth","product":"core","slug":"tmux-visualbellboth"},{"id":"tmux.VisualBell.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.VisualBell","signatures":[{"raw":"func (v VisualBell) String() string","params":[],"receiver":{"name":"v","type":"VisualBell"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":845,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualBell.String","product":"core","slug":"tmux-visualbell-string"},{"id":"tmux.VisualBell.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.VisualBell","signatures":[{"raw":"func (v VisualBell) Valid() bool","params":[],"receiver":{"name":"v","type":"VisualBell"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":848,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualBell.Valid","product":"core","slug":"tmux-visualbell-valid"},{"id":"tmux.VisualSilence","name":"VisualSilence","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"VisualSilence is a typed value for the \"visual-silence\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":858,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualSilence","product":"core","slug":"tmux-visualsilence"},{"id":"tmux.VisualSilenceOff","name":"VisualSilenceOff","kind":"constant","modifiers":[],"signatures":[],"type":"VisualSilence","doc":{"summary":"VisualSilenceOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":862,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualSilenceOff","product":"core","slug":"tmux-visualsilenceoff"},{"id":"tmux.VisualSilenceOn","name":"VisualSilenceOn","kind":"constant","modifiers":[],"signatures":[],"type":"VisualSilence","doc":{"summary":"VisualSilenceOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":864,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualSilenceOn","product":"core","slug":"tmux-visualsilenceon"},{"id":"tmux.VisualSilenceBoth","name":"VisualSilenceBoth","kind":"constant","modifiers":[],"signatures":[],"type":"VisualSilence","doc":{"summary":"VisualSilenceBoth selects \"both\"."},"source":{"file":"tmux/option_generated.go","line":866,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualSilenceBoth","product":"core","slug":"tmux-visualsilenceboth"},{"id":"tmux.VisualSilence.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.VisualSilence","signatures":[{"raw":"func (v VisualSilence) String() string","params":[],"receiver":{"name":"v","type":"VisualSilence"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":870,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualSilence.String","product":"core","slug":"tmux-visualsilence-string"},{"id":"tmux.VisualSilence.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.VisualSilence","signatures":[{"raw":"func (v VisualSilence) Valid() bool","params":[],"receiver":{"name":"v","type":"VisualSilence"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":873,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualSilence.Valid","product":"core","slug":"tmux-visualsilence-valid"},{"id":"tmux.WindowSize","name":"WindowSize","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WindowSize is a typed value for the \"window-size\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":883,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSize","product":"core","slug":"tmux-windowsize"},{"id":"tmux.WindowSizeLargest","name":"WindowSizeLargest","kind":"constant","modifiers":[],"signatures":[],"type":"WindowSize","doc":{"summary":"WindowSizeLargest selects \"largest\"."},"source":{"file":"tmux/option_generated.go","line":887,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSizeLargest","product":"core","slug":"tmux-windowsizelargest"},{"id":"tmux.WindowSizeSmallest","name":"WindowSizeSmallest","kind":"constant","modifiers":[],"signatures":[],"type":"WindowSize","doc":{"summary":"WindowSizeSmallest selects \"smallest\"."},"source":{"file":"tmux/option_generated.go","line":889,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSizeSmallest","product":"core","slug":"tmux-windowsizesmallest"},{"id":"tmux.WindowSizeManual","name":"WindowSizeManual","kind":"constant","modifiers":[],"signatures":[],"type":"WindowSize","doc":{"summary":"WindowSizeManual selects \"manual\"."},"source":{"file":"tmux/option_generated.go","line":891,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSizeManual","product":"core","slug":"tmux-windowsizemanual"},{"id":"tmux.WindowSizeLatest","name":"WindowSizeLatest","kind":"constant","modifiers":[],"signatures":[],"type":"WindowSize","doc":{"summary":"WindowSizeLatest selects \"latest\"."},"source":{"file":"tmux/option_generated.go","line":893,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSizeLatest","product":"core","slug":"tmux-windowsizelatest"},{"id":"tmux.WindowSize.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.WindowSize","signatures":[{"raw":"func (v WindowSize) String() string","params":[],"receiver":{"name":"v","type":"WindowSize"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":897,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSize.String","product":"core","slug":"tmux-windowsize-string"},{"id":"tmux.WindowSize.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.WindowSize","signatures":[{"raw":"func (v WindowSize) Valid() bool","params":[],"receiver":{"name":"v","type":"WindowSize"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":900,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSize.Valid","product":"core","slug":"tmux-windowsize-valid"},{"id":"tmux.ControlNotificationKind","name":"ControlNotificationKind","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ControlNotificationKind identifies a tmux control-mode notification record. Its zero value is unknown and is not emitted by tmux. [ParseControlNotification] returns known values for the pinned wire vocabulary and rejects unknown notification records."},"source":{"file":"tmux/option_generated.go","line":963,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationKind","product":"core","slug":"tmux-controlnotificationkind"},{"id":"tmux.ControlNotificationClientDetached","name":"ControlNotificationClientDetached","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationClientDetached identifies the %client-detached notification, available since tmux 3.2a. Its wire grammar is %client-detached . ParseControlNotification returns its arguments as client tail."},"source":{"file":"tmux/option_generated.go","line":1683,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationClientDetached","product":"core","slug":"tmux-controlnotificationclientdetached"},{"id":"tmux.ControlNotificationClientSessionChanged","name":"ControlNotificationClientSessionChanged","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationClientSessionChanged identifies the %client-session-changed notification, available since tmux 3.2a. Its wire grammar is %client-session-changed . ParseControlNotification returns its arguments as client, session ID, session name tail."},"source":{"file":"tmux/option_generated.go","line":1686,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationClientSessionChanged","product":"core","slug":"tmux-controlnotificationclientsessionchanged"},{"id":"tmux.ControlNotificationConfigError","name":"ControlNotificationConfigError","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationConfigError identifies the %config-error notification, available since tmux 3.4. Its wire grammar is %config-error . ParseControlNotification returns its arguments as text tail."},"source":{"file":"tmux/option_generated.go","line":1689,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationConfigError","product":"core","slug":"tmux-controlnotificationconfigerror"},{"id":"tmux.ControlNotificationContinue","name":"ControlNotificationContinue","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationContinue identifies the %continue notification, available since tmux 3.2a. Its wire grammar is %continue . ParseControlNotification returns its arguments as pane ID."},"source":{"file":"tmux/option_generated.go","line":1692,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationContinue","product":"core","slug":"tmux-controlnotificationcontinue"},{"id":"tmux.ControlNotificationExit","name":"ControlNotificationExit","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationExit identifies the %exit notification, available since tmux 3.2a. Its wire grammar is %exit or %exit . ParseControlNotification returns its arguments as reason tail."},"source":{"file":"tmux/option_generated.go","line":1695,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationExit","product":"core","slug":"tmux-controlnotificationexit"},{"id":"tmux.ControlNotificationExtendedOutput","name":"ControlNotificationExtendedOutput","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationExtendedOutput identifies the %extended-output notification, available since tmux 3.2a. Its wire grammar is %extended-output { zero or more } : . ParseControlNotification returns its arguments as the prefix arguments, then zero or more reserved arguments, then the data tail; the prefix arguments are pane ID, age. Its tail may be empty."},"source":{"file":"tmux/option_generated.go","line":1699,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationExtendedOutput","product":"core","slug":"tmux-controlnotificationextendedoutput"},{"id":"tmux.ControlNotificationLayoutChange","name":"ControlNotificationLayoutChange","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationLayoutChange identifies the %layout-change notification, available since tmux 3.2a. Its wire grammar is %layout-change . ParseControlNotification returns its arguments as window ID, layout, visible layout, flags tail. Its tail may be empty."},"source":{"file":"tmux/option_generated.go","line":1703,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationLayoutChange","product":"core","slug":"tmux-controlnotificationlayoutchange"},{"id":"tmux.ControlNotificationMessage","name":"ControlNotificationMessage","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationMessage identifies the %message notification, available since tmux 3.4. Its wire grammar is %message . ParseControlNotification returns its arguments as text tail. Its tail may be empty."},"source":{"file":"tmux/option_generated.go","line":1707,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationMessage","product":"core","slug":"tmux-controlnotificationmessage"},{"id":"tmux.ControlNotificationOutput","name":"ControlNotificationOutput","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationOutput identifies the %output notification, available since tmux 3.2a. Its wire grammar is %output . ParseControlNotification returns its arguments as pane ID, data tail. Its tail may be empty."},"source":{"file":"tmux/option_generated.go","line":1711,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationOutput","product":"core","slug":"tmux-controlnotificationoutput"},{"id":"tmux.ControlNotificationPaneModeChanged","name":"ControlNotificationPaneModeChanged","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationPaneModeChanged identifies the %pane-mode-changed notification, available since tmux 3.2a. Its wire grammar is %pane-mode-changed . ParseControlNotification returns its arguments as pane ID."},"source":{"file":"tmux/option_generated.go","line":1714,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationPaneModeChanged","product":"core","slug":"tmux-controlnotificationpanemodechanged"},{"id":"tmux.ControlNotificationPasteBufferChanged","name":"ControlNotificationPasteBufferChanged","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationPasteBufferChanged identifies the %paste-buffer-changed notification, available since tmux 3.4. Its wire grammar is %paste-buffer-changed . ParseControlNotification returns its arguments as name tail."},"source":{"file":"tmux/option_generated.go","line":1717,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationPasteBufferChanged","product":"core","slug":"tmux-controlnotificationpastebufferchanged"},{"id":"tmux.ControlNotificationPasteBufferDeleted","name":"ControlNotificationPasteBufferDeleted","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationPasteBufferDeleted identifies the %paste-buffer-deleted notification, available since tmux 3.4. Its wire grammar is %paste-buffer-deleted . ParseControlNotification returns its arguments as name tail."},"source":{"file":"tmux/option_generated.go","line":1720,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationPasteBufferDeleted","product":"core","slug":"tmux-controlnotificationpastebufferdeleted"},{"id":"tmux.ControlNotificationPause","name":"ControlNotificationPause","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationPause identifies the %pause notification, available since tmux 3.2a. Its wire grammar is %pause . ParseControlNotification returns its arguments as pane ID."},"source":{"file":"tmux/option_generated.go","line":1723,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationPause","product":"core","slug":"tmux-controlnotificationpause"},{"id":"tmux.ControlNotificationSessionChanged","name":"ControlNotificationSessionChanged","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationSessionChanged identifies the %session-changed notification, available since tmux 3.2a. Its wire grammar is %session-changed . ParseControlNotification returns its arguments as session ID, session name tail."},"source":{"file":"tmux/option_generated.go","line":1726,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationSessionChanged","product":"core","slug":"tmux-controlnotificationsessionchanged"},{"id":"tmux.ControlNotificationSessionRenamed","name":"ControlNotificationSessionRenamed","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationSessionRenamed identifies the %session-renamed notification, available since tmux 3.2a. Its wire grammar is %session-renamed . ParseControlNotification returns its arguments as session ID, session name tail."},"source":{"file":"tmux/option_generated.go","line":1729,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationSessionRenamed","product":"core","slug":"tmux-controlnotificationsessionrenamed"},{"id":"tmux.ControlNotificationSessionWindowChanged","name":"ControlNotificationSessionWindowChanged","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationSessionWindowChanged identifies the %session-window-changed notification, available since tmux 3.2a. Its wire grammar is %session-window-changed . ParseControlNotification returns its arguments as session ID, window ID."},"source":{"file":"tmux/option_generated.go","line":1732,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationSessionWindowChanged","product":"core","slug":"tmux-controlnotificationsessionwindowchanged"},{"id":"tmux.ControlNotificationSessionsChanged","name":"ControlNotificationSessionsChanged","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationSessionsChanged identifies the %sessions-changed notification, available since tmux 3.2a. Its wire grammar is %sessions-changed. ParseControlNotification returns its arguments as no arguments."},"source":{"file":"tmux/option_generated.go","line":1735,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationSessionsChanged","product":"core","slug":"tmux-controlnotificationsessionschanged"},{"id":"tmux.ControlNotificationSubscriptionChanged","name":"ControlNotificationSubscriptionChanged","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationSubscriptionChanged identifies the %subscription-changed notification, available since tmux 3.2a. Its wire grammar is %subscription-changed { zero or more } : . ParseControlNotification returns its arguments as the prefix arguments, then zero or more reserved arguments, then the value tail; the prefix arguments are name, session ID, window ID, window index, pane ID. Its tail may be empty."},"source":{"file":"tmux/option_generated.go","line":1739,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationSubscriptionChanged","product":"core","slug":"tmux-controlnotificationsubscriptionchanged"},{"id":"tmux.ControlNotificationUnlinkedWindowAdd","name":"ControlNotificationUnlinkedWindowAdd","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationUnlinkedWindowAdd identifies the %unlinked-window-add notification, available since tmux 3.2a. Its wire grammar is %unlinked-window-add . ParseControlNotification returns its arguments as window ID."},"source":{"file":"tmux/option_generated.go","line":1742,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationUnlinkedWindowAdd","product":"core","slug":"tmux-controlnotificationunlinkedwindowadd"},{"id":"tmux.ControlNotificationUnlinkedWindowClose","name":"ControlNotificationUnlinkedWindowClose","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationUnlinkedWindowClose identifies the %unlinked-window-close notification, available since tmux 3.2a. Its wire grammar is %unlinked-window-close . ParseControlNotification returns its arguments as window ID."},"source":{"file":"tmux/option_generated.go","line":1745,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationUnlinkedWindowClose","product":"core","slug":"tmux-controlnotificationunlinkedwindowclose"},{"id":"tmux.ControlNotificationUnlinkedWindowRenamed","name":"ControlNotificationUnlinkedWindowRenamed","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationUnlinkedWindowRenamed identifies the %unlinked-window-renamed notification, available since tmux 3.2a. Its wire grammar is %unlinked-window-renamed . ParseControlNotification returns its arguments as window ID, name tail."},"source":{"file":"tmux/option_generated.go","line":1748,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationUnlinkedWindowRenamed","product":"core","slug":"tmux-controlnotificationunlinkedwindowrenamed"},{"id":"tmux.ControlNotificationWindowAdd","name":"ControlNotificationWindowAdd","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationWindowAdd identifies the %window-add notification, available since tmux 3.2a. Its wire grammar is %window-add . ParseControlNotification returns its arguments as window ID."},"source":{"file":"tmux/option_generated.go","line":1751,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationWindowAdd","product":"core","slug":"tmux-controlnotificationwindowadd"},{"id":"tmux.ControlNotificationWindowClose","name":"ControlNotificationWindowClose","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationWindowClose identifies the %window-close notification, available since tmux 3.2a. Its wire grammar is %window-close . ParseControlNotification returns its arguments as window ID."},"source":{"file":"tmux/option_generated.go","line":1754,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationWindowClose","product":"core","slug":"tmux-controlnotificationwindowclose"},{"id":"tmux.ControlNotificationWindowPaneChanged","name":"ControlNotificationWindowPaneChanged","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationWindowPaneChanged identifies the %window-pane-changed notification, available since tmux 3.2a. Its wire grammar is %window-pane-changed . ParseControlNotification returns its arguments as window ID, pane ID."},"source":{"file":"tmux/option_generated.go","line":1757,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationWindowPaneChanged","product":"core","slug":"tmux-controlnotificationwindowpanechanged"},{"id":"tmux.ControlNotificationWindowRenamed","name":"ControlNotificationWindowRenamed","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationWindowRenamed identifies the %window-renamed notification, available since tmux 3.2a. Its wire grammar is %window-renamed . ParseControlNotification returns its arguments as window ID, name tail."},"source":{"file":"tmux/option_generated.go","line":1760,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationWindowRenamed","product":"core","slug":"tmux-controlnotificationwindowrenamed"},{"id":"tmux.ControlNotificationKind.MinimumVersion","name":"MinimumVersion","kind":"method","modifiers":[],"parent":"tmux.ControlNotificationKind","signatures":[{"raw":"func (k ControlNotificationKind) MinimumVersion() (Version, bool)","params":[],"receiver":{"name":"k","type":"ControlNotificationKind"},"returns":"(Version, bool)"}],"doc":{"summary":"MinimumVersion returns the oldest [Version] that emits k. It returns ok == false for the zero value and unknown kinds."},"source":{"file":"tmux/option_generated.go","line":1793,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationKind.MinimumVersion","product":"core","slug":"tmux-controlnotificationkind-minimumversion"},{"id":"tmux.ServerOptionValues","name":"ServerOptionValues","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ServerOptionValues is an immutable materialized view of known server option values; its zero value is empty and it does not refresh. Obtain it with [Server.Options]. [OptionValue.Get] reports presence and [OptionValue.Origin] reports inheritance. Use [Server.RawOption] for caller-named or undecoded values."},"source":{"file":"tmux/option_generated.go","line":1816,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues","product":"core","slug":"tmux-serveroptionvalues"},{"id":"tmux.ServerOptionValues.Backspace","name":"Backspace","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) Backspace() OptionValue[string]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"Backspace returns materialized \"backspace\" as [OptionValue] with value type OptionValue[string] from server option values; it does not query tmux. Available as KEY since tmux 3.2a; set it with [Server.SetBackspace]."},"source":{"file":"tmux/option_generated.go","line":1846,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.Backspace","product":"core","slug":"tmux-serveroptionvalues-backspace"},{"id":"tmux.ServerOptionValues.BufferLimit","name":"BufferLimit","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) BufferLimit() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"BufferLimit returns materialized \"buffer-limit\" as [OptionValue] with value type OptionValue[int64] from server option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Server.SetBufferLimit]."},"source":{"file":"tmux/option_generated.go","line":1850,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.BufferLimit","product":"core","slug":"tmux-serveroptionvalues-bufferlimit"},{"id":"tmux.ServerOptionValues.CodepointWidths","name":"CodepointWidths","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) CodepointWidths() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"CodepointWidths returns materialized \"codepoint-widths\" as [OptionValue] with value type OptionValue[SparseArray[string]] from server option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Server.SetCodepointWidths]. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":1855,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.CodepointWidths","product":"core","slug":"tmux-serveroptionvalues-codepointwidths"},{"id":"tmux.ServerOptionValues.CommandAlias","name":"CommandAlias","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) CommandAlias() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"CommandAlias returns materialized \"command-alias\" as [OptionValue] with value type OptionValue[SparseArray[string]] from server option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Server.SetCommandAlias]. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":1862,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.CommandAlias","product":"core","slug":"tmux-serveroptionvalues-commandalias"},{"id":"tmux.ServerOptionValues.CopyCommand","name":"CopyCommand","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) CopyCommand() OptionValue[string]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyCommand returns materialized \"copy-command\" as [OptionValue] with value type OptionValue[string] from server option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Server.SetCopyCommand]."},"source":{"file":"tmux/option_generated.go","line":1866,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.CopyCommand","product":"core","slug":"tmux-serveroptionvalues-copycommand"},{"id":"tmux.ServerOptionValues.DefaultClientCommand","name":"DefaultClientCommand","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) DefaultClientCommand() OptionValue[string]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"DefaultClientCommand returns materialized \"default-client-command\" as [OptionValue] with value type OptionValue[string] from server option values; it does not query tmux. Available as COMMAND since tmux 3.6; set it with [Server.SetDefaultClientCommand]."},"source":{"file":"tmux/option_generated.go","line":1870,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.DefaultClientCommand","product":"core","slug":"tmux-serveroptionvalues-defaultclientcommand"},{"id":"tmux.ServerOptionValues.DefaultTerminal","name":"DefaultTerminal","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) DefaultTerminal() OptionValue[string]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"DefaultTerminal returns materialized \"default-terminal\" as [OptionValue] with value type OptionValue[string] from server option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Server.SetDefaultTerminal]."},"source":{"file":"tmux/option_generated.go","line":1874,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.DefaultTerminal","product":"core","slug":"tmux-serveroptionvalues-defaultterminal"},{"id":"tmux.ServerOptionValues.Editor","name":"Editor","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) Editor() OptionValue[string]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"Editor returns materialized \"editor\" as [OptionValue] with value type OptionValue[string] from server option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Server.SetEditor]."},"source":{"file":"tmux/option_generated.go","line":1878,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.Editor","product":"core","slug":"tmux-serveroptionvalues-editor"},{"id":"tmux.ServerOptionValues.EscapeTime","name":"EscapeTime","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) EscapeTime() OptionValue[time.Duration]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[time.Duration]"}],"doc":{"summary":"EscapeTime returns materialized \"escape-time\" as [OptionValue] with value type OptionValue[time.Duration] from server option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Server.SetEscapeTime]."},"source":{"file":"tmux/option_generated.go","line":1882,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.EscapeTime","product":"core","slug":"tmux-serveroptionvalues-escapetime"},{"id":"tmux.ServerOptionValues.ExitEmpty","name":"ExitEmpty","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) ExitEmpty() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"ExitEmpty returns materialized \"exit-empty\" as [OptionValue] with value type OptionValue[bool] from server option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Server.SetExitEmpty]."},"source":{"file":"tmux/option_generated.go","line":1886,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.ExitEmpty","product":"core","slug":"tmux-serveroptionvalues-exitempty"},{"id":"tmux.ServerOptionValues.ExitUnattached","name":"ExitUnattached","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) ExitUnattached() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"ExitUnattached returns materialized \"exit-unattached\" as [OptionValue] with value type OptionValue[bool] from server option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Server.SetExitUnattached]."},"source":{"file":"tmux/option_generated.go","line":1890,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.ExitUnattached","product":"core","slug":"tmux-serveroptionvalues-exitunattached"},{"id":"tmux.ServerOptionValues.ExtendedKeys","name":"ExtendedKeys","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) ExtendedKeys() OptionValue[ExtendedKeys]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[ExtendedKeys]"}],"doc":{"summary":"ExtendedKeys returns materialized \"extended-keys\" as [OptionValue] with value type OptionValue[ExtendedKeys] from server option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"on\", \"always\"); set it with [Server.SetExtendedKeys]."},"source":{"file":"tmux/option_generated.go","line":1894,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.ExtendedKeys","product":"core","slug":"tmux-serveroptionvalues-extendedkeys"},{"id":"tmux.ServerOptionValues.ExtendedKeysFormat","name":"ExtendedKeysFormat","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) ExtendedKeysFormat() OptionValue[ExtendedKeysFormat]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[ExtendedKeysFormat]"}],"doc":{"summary":"ExtendedKeysFormat returns materialized \"extended-keys-format\" as [OptionValue] with value type OptionValue[ExtendedKeysFormat] from server option values; it does not query tmux. Available as CHOICE since tmux 3.5 (choices: \"csi-u\", \"xterm\"); set it with [Server.SetExtendedKeysFormat]."},"source":{"file":"tmux/option_generated.go","line":1898,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.ExtendedKeysFormat","product":"core","slug":"tmux-serveroptionvalues-extendedkeysformat"},{"id":"tmux.ServerOptionValues.FocusEvents","name":"FocusEvents","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) FocusEvents() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"FocusEvents returns materialized \"focus-events\" as [OptionValue] with value type OptionValue[bool] from server option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Server.SetFocusEvents]."},"source":{"file":"tmux/option_generated.go","line":1904,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.FocusEvents","product":"core","slug":"tmux-serveroptionvalues-focusevents"},{"id":"tmux.ServerOptionValues.GetClipboard","name":"GetClipboard","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) GetClipboard() OptionValue[GetClipboard]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[GetClipboard]"}],"doc":{"summary":"GetClipboard returns materialized \"get-clipboard\" as [OptionValue] with value type OptionValue[GetClipboard] from server option values; it does not query tmux. Available as CHOICE since tmux 3.7 (choices: \"off\", \"buffer\", \"request\", \"both\"); set it with [Server.SetGetClipboard]."},"source":{"file":"tmux/option_generated.go","line":1908,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.GetClipboard","product":"core","slug":"tmux-serveroptionvalues-getclipboard"},{"id":"tmux.ServerOptionValues.HistoryFile","name":"HistoryFile","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) HistoryFile() OptionValue[string]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"HistoryFile returns materialized \"history-file\" as [OptionValue] with value type OptionValue[string] from server option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Server.SetHistoryFile]."},"source":{"file":"tmux/option_generated.go","line":1912,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.HistoryFile","product":"core","slug":"tmux-serveroptionvalues-historyfile"},{"id":"tmux.ServerOptionValues.InputBufferSize","name":"InputBufferSize","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) InputBufferSize() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"InputBufferSize returns materialized \"input-buffer-size\" as [OptionValue] with value type OptionValue[int64] from server option values; it does not query tmux. Available as NUMBER since tmux 3.6; set it with [Server.SetInputBufferSize]."},"source":{"file":"tmux/option_generated.go","line":1916,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.InputBufferSize","product":"core","slug":"tmux-serveroptionvalues-inputbuffersize"},{"id":"tmux.ServerOptionValues.MessageLimit","name":"MessageLimit","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) MessageLimit() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"MessageLimit returns materialized \"message-limit\" as [OptionValue] with value type OptionValue[int64] from server option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Server.SetMessageLimit]."},"source":{"file":"tmux/option_generated.go","line":1920,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.MessageLimit","product":"core","slug":"tmux-serveroptionvalues-messagelimit"},{"id":"tmux.ServerOptionValues.PrefixTimeout","name":"PrefixTimeout","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) PrefixTimeout() OptionValue[time.Duration]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[time.Duration]"}],"doc":{"summary":"PrefixTimeout returns materialized \"prefix-timeout\" as [OptionValue] with value type OptionValue[time.Duration] from server option values; it does not query tmux. Available as NUMBER since tmux 3.5; set it with [Server.SetPrefixTimeout]."},"source":{"file":"tmux/option_generated.go","line":1924,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.PrefixTimeout","product":"core","slug":"tmux-serveroptionvalues-prefixtimeout"},{"id":"tmux.ServerOptionValues.PromptHistoryLimit","name":"PromptHistoryLimit","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) PromptHistoryLimit() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"PromptHistoryLimit returns materialized \"prompt-history-limit\" as [OptionValue] with value type OptionValue[int64] from server option values; it does not query tmux. Available as NUMBER since tmux 3.3; set it with [Server.SetPromptHistoryLimit]."},"source":{"file":"tmux/option_generated.go","line":1928,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.PromptHistoryLimit","product":"core","slug":"tmux-serveroptionvalues-prompthistorylimit"},{"id":"tmux.ServerOptionValues.SetClipboard","name":"SetClipboard","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) SetClipboard() OptionValue[SetClipboard]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[SetClipboard]"}],"doc":{"summary":"SetClipboard returns materialized \"set-clipboard\" as [OptionValue] with value type OptionValue[SetClipboard] from server option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"external\", \"on\"); set it with [Server.SetClipboard]."},"source":{"file":"tmux/option_generated.go","line":1932,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.SetClipboard","product":"core","slug":"tmux-serveroptionvalues-setclipboard"},{"id":"tmux.ServerOptionValues.TerminalFeatures","name":"TerminalFeatures","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) TerminalFeatures() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"TerminalFeatures returns materialized \"terminal-features\" as [OptionValue] with value type OptionValue[SparseArray[string]] from server option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Server.SetTerminalFeatures]. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":1937,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.TerminalFeatures","product":"core","slug":"tmux-serveroptionvalues-terminalfeatures"},{"id":"tmux.ServerOptionValues.TerminalOverrides","name":"TerminalOverrides","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) TerminalOverrides() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"TerminalOverrides returns materialized \"terminal-overrides\" as [OptionValue] with value type OptionValue[SparseArray[string]] from server option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Server.SetTerminalOverrides]. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":1944,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.TerminalOverrides","product":"core","slug":"tmux-serveroptionvalues-terminaloverrides"},{"id":"tmux.ServerOptionValues.UserKeys","name":"UserKeys","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) UserKeys() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"UserKeys returns materialized \"user-keys\" as [OptionValue] with value type OptionValue[SparseArray[string]] from server option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Server.SetUserKeys]. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":1951,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.UserKeys","product":"core","slug":"tmux-serveroptionvalues-userkeys"},{"id":"tmux.ServerOptionValues.VariationSelectorAlwaysWide","name":"VariationSelectorAlwaysWide","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) VariationSelectorAlwaysWide() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"VariationSelectorAlwaysWide returns materialized \"variation-selector-always-wide\" as [OptionValue] with value type OptionValue[bool] from server option values; it does not query tmux. Available as FLAG since tmux 3.6; set it with [Server.SetVariationSelectorAlwaysWide]."},"source":{"file":"tmux/option_generated.go","line":1955,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.VariationSelectorAlwaysWide","product":"core","slug":"tmux-serveroptionvalues-variationselectoralwayswide"},{"id":"tmux.SessionOptionValues","name":"SessionOptionValues","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SessionOptionValues is an immutable materialized view of known session option values; its zero value is empty and it does not refresh. Obtain it with [Session.Options] or [GlobalSessionScope.Options]. [OptionValue.Get] reports presence and [OptionValue.Origin] reports inheritance. Use [Session.RawOption] or [GlobalSessionScope.RawOption] for caller-named or undecoded values."},"source":{"file":"tmux/option_generated.go","line":2021,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues","product":"core","slug":"tmux-sessionoptionvalues"},{"id":"tmux.SessionOptionValues.ActivityAction","name":"ActivityAction","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) ActivityAction() OptionValue[ActivityAction]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[ActivityAction]"}],"doc":{"summary":"ActivityAction returns materialized \"activity-action\" as [OptionValue] with value type OptionValue[ActivityAction] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"none\", \"any\", \"current\", \"other\"); set it with [Session.SetActivityAction] or [GlobalSessionScope.SetActivityAction]."},"source":{"file":"tmux/option_generated.go","line":2080,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.ActivityAction","product":"core","slug":"tmux-sessionoptionvalues-activityaction"},{"id":"tmux.SessionOptionValues.AssumePasteTime","name":"AssumePasteTime","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) AssumePasteTime() OptionValue[time.Duration]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[time.Duration]"}],"doc":{"summary":"AssumePasteTime returns materialized \"assume-paste-time\" as [OptionValue] with value type OptionValue[time.Duration] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetAssumePasteTime] or [GlobalSessionScope.SetAssumePasteTime]."},"source":{"file":"tmux/option_generated.go","line":2084,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.AssumePasteTime","product":"core","slug":"tmux-sessionoptionvalues-assumepastetime"},{"id":"tmux.SessionOptionValues.BaseIndex","name":"BaseIndex","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) BaseIndex() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"BaseIndex returns materialized \"base-index\" as [OptionValue] with value type OptionValue[int64] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetBaseIndex] or [GlobalSessionScope.SetBaseIndex]."},"source":{"file":"tmux/option_generated.go","line":2088,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.BaseIndex","product":"core","slug":"tmux-sessionoptionvalues-baseindex"},{"id":"tmux.SessionOptionValues.BellAction","name":"BellAction","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) BellAction() OptionValue[BellAction]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[BellAction]"}],"doc":{"summary":"BellAction returns materialized \"bell-action\" as [OptionValue] with value type OptionValue[BellAction] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"none\", \"any\", \"current\", \"other\"); set it with [Session.SetBellAction] or [GlobalSessionScope.SetBellAction]."},"source":{"file":"tmux/option_generated.go","line":2092,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.BellAction","product":"core","slug":"tmux-sessionoptionvalues-bellaction"},{"id":"tmux.SessionOptionValues.DefaultCommand","name":"DefaultCommand","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) DefaultCommand() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"DefaultCommand returns materialized \"default-command\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetDefaultCommand] or [GlobalSessionScope.SetDefaultCommand]."},"source":{"file":"tmux/option_generated.go","line":2096,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.DefaultCommand","product":"core","slug":"tmux-sessionoptionvalues-defaultcommand"},{"id":"tmux.SessionOptionValues.DefaultShell","name":"DefaultShell","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) DefaultShell() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"DefaultShell returns materialized \"default-shell\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetDefaultShell] or [GlobalSessionScope.SetDefaultShell]."},"source":{"file":"tmux/option_generated.go","line":2100,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.DefaultShell","product":"core","slug":"tmux-sessionoptionvalues-defaultshell"},{"id":"tmux.SessionOptionValues.DefaultSize","name":"DefaultSize","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) DefaultSize() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"DefaultSize returns materialized \"default-size\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetDefaultSize] or [GlobalSessionScope.SetDefaultSize]."},"source":{"file":"tmux/option_generated.go","line":2104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.DefaultSize","product":"core","slug":"tmux-sessionoptionvalues-defaultsize"},{"id":"tmux.SessionOptionValues.DestroyUnattached","name":"DestroyUnattached","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) DestroyUnattached() OptionValue[DestroyUnattached]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[DestroyUnattached]"}],"doc":{"summary":"DestroyUnattached returns materialized \"destroy-unattached\" as [OptionValue] with value type OptionValue[DestroyUnattached] from session option values; it does not query tmux. Available as FLAG since tmux 3.2a; CHOICE since tmux 3.4 (choices: \"off\", \"on\", \"keep-last\", \"keep-group\"); set it with [Session.SetDestroyUnattached] or [GlobalSessionScope.SetDestroyUnattached]."},"source":{"file":"tmux/option_generated.go","line":2108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.DestroyUnattached","product":"core","slug":"tmux-sessionoptionvalues-destroyunattached"},{"id":"tmux.SessionOptionValues.DetachOnDestroy","name":"DetachOnDestroy","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) DetachOnDestroy() OptionValue[DetachOnDestroy]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[DetachOnDestroy]"}],"doc":{"summary":"DetachOnDestroy returns materialized \"detach-on-destroy\" as [OptionValue] with value type OptionValue[DetachOnDestroy] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"on\", \"no-detached\"); CHOICE since tmux 3.4 (choices: \"off\", \"on\", \"no-detached\", \"previous\", \"next\"); set it with [Session.SetDetachOnDestroy] or [GlobalSessionScope.SetDetachOnDestroy]."},"source":{"file":"tmux/option_generated.go","line":2114,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.DetachOnDestroy","product":"core","slug":"tmux-sessionoptionvalues-detachondestroy"},{"id":"tmux.SessionOptionValues.DisplayPanesActiveColour","name":"DisplayPanesActiveColour","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) DisplayPanesActiveColour() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"DisplayPanesActiveColour returns materialized \"display-panes-active-colour\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as COLOUR since tmux 3.2a; set it with [Session.SetDisplayPanesActiveColour] or [GlobalSessionScope.SetDisplayPanesActiveColour]."},"source":{"file":"tmux/option_generated.go","line":2118,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.DisplayPanesActiveColour","product":"core","slug":"tmux-sessionoptionvalues-displaypanesactivecolour"},{"id":"tmux.SessionOptionValues.DisplayPanesColour","name":"DisplayPanesColour","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) DisplayPanesColour() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"DisplayPanesColour returns materialized \"display-panes-colour\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as COLOUR since tmux 3.2a; set it with [Session.SetDisplayPanesColour] or [GlobalSessionScope.SetDisplayPanesColour]."},"source":{"file":"tmux/option_generated.go","line":2124,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.DisplayPanesColour","product":"core","slug":"tmux-sessionoptionvalues-displaypanescolour"},{"id":"tmux.SessionOptionValues.DisplayPanesTime","name":"DisplayPanesTime","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) DisplayPanesTime() OptionValue[time.Duration]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[time.Duration]"}],"doc":{"summary":"DisplayPanesTime returns materialized \"display-panes-time\" as [OptionValue] with value type OptionValue[time.Duration] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetDisplayPanesTime] or [GlobalSessionScope.SetDisplayPanesTime]."},"source":{"file":"tmux/option_generated.go","line":2128,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.DisplayPanesTime","product":"core","slug":"tmux-sessionoptionvalues-displaypanestime"},{"id":"tmux.SessionOptionValues.DisplayTime","name":"DisplayTime","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) DisplayTime() OptionValue[time.Duration]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[time.Duration]"}],"doc":{"summary":"DisplayTime returns materialized \"display-time\" as [OptionValue] with value type OptionValue[time.Duration] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetDisplayTime] or [GlobalSessionScope.SetDisplayTime]."},"source":{"file":"tmux/option_generated.go","line":2132,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.DisplayTime","product":"core","slug":"tmux-sessionoptionvalues-displaytime"},{"id":"tmux.SessionOptionValues.FocusFollowsMouse","name":"FocusFollowsMouse","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) FocusFollowsMouse() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"FocusFollowsMouse returns materialized \"focus-follows-mouse\" as [OptionValue] with value type OptionValue[bool] from session option values; it does not query tmux. Available as FLAG since tmux 3.7; set it with [Session.SetFocusFollowsMouse] or [GlobalSessionScope.SetFocusFollowsMouse]."},"source":{"file":"tmux/option_generated.go","line":2136,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.FocusFollowsMouse","product":"core","slug":"tmux-sessionoptionvalues-focusfollowsmouse"},{"id":"tmux.SessionOptionValues.HistoryLimit","name":"HistoryLimit","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) HistoryLimit() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"HistoryLimit returns materialized \"history-limit\" as [OptionValue] with value type OptionValue[int64] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetHistoryLimit] or [GlobalSessionScope.SetHistoryLimit]."},"source":{"file":"tmux/option_generated.go","line":2140,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.HistoryLimit","product":"core","slug":"tmux-sessionoptionvalues-historylimit"},{"id":"tmux.SessionOptionValues.InitialRepeatTime","name":"InitialRepeatTime","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) InitialRepeatTime() OptionValue[time.Duration]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[time.Duration]"}],"doc":{"summary":"InitialRepeatTime returns materialized \"initial-repeat-time\" as [OptionValue] with value type OptionValue[time.Duration] from session option values; it does not query tmux. Available as NUMBER since tmux 3.6; set it with [Session.SetInitialRepeatTime] or [GlobalSessionScope.SetInitialRepeatTime]."},"source":{"file":"tmux/option_generated.go","line":2144,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.InitialRepeatTime","product":"core","slug":"tmux-sessionoptionvalues-initialrepeattime"},{"id":"tmux.SessionOptionValues.KeyTable","name":"KeyTable","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) KeyTable() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"KeyTable returns materialized \"key-table\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetKeyTable] or [GlobalSessionScope.SetKeyTable]."},"source":{"file":"tmux/option_generated.go","line":2150,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.KeyTable","product":"core","slug":"tmux-sessionoptionvalues-keytable"},{"id":"tmux.SessionOptionValues.LockAfterTime","name":"LockAfterTime","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) LockAfterTime() OptionValue[time.Duration]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[time.Duration]"}],"doc":{"summary":"LockAfterTime returns materialized \"lock-after-time\" as [OptionValue] with value type OptionValue[time.Duration] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetLockAfterTime] or [GlobalSessionScope.SetLockAfterTime]."},"source":{"file":"tmux/option_generated.go","line":2154,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.LockAfterTime","product":"core","slug":"tmux-sessionoptionvalues-lockaftertime"},{"id":"tmux.SessionOptionValues.LockCommand","name":"LockCommand","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) LockCommand() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"LockCommand returns materialized \"lock-command\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetLockCommand] or [GlobalSessionScope.SetLockCommand]."},"source":{"file":"tmux/option_generated.go","line":2158,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.LockCommand","product":"core","slug":"tmux-sessionoptionvalues-lockcommand"},{"id":"tmux.SessionOptionValues.MessageCommandStyle","name":"MessageCommandStyle","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) MessageCommandStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"MessageCommandStyle returns materialized \"message-command-style\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetMessageCommandStyle] or [GlobalSessionScope.SetMessageCommandStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2163,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.MessageCommandStyle","product":"core","slug":"tmux-sessionoptionvalues-messagecommandstyle"},{"id":"tmux.SessionOptionValues.MessageFormat","name":"MessageFormat","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) MessageFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"MessageFormat returns materialized \"message-format\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Session.SetMessageFormat] or [GlobalSessionScope.SetMessageFormat]."},"source":{"file":"tmux/option_generated.go","line":2167,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.MessageFormat","product":"core","slug":"tmux-sessionoptionvalues-messageformat"},{"id":"tmux.SessionOptionValues.MessageLine","name":"MessageLine","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) MessageLine() OptionValue[MessageLine]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[MessageLine]"}],"doc":{"summary":"MessageLine returns materialized \"message-line\" as [OptionValue] with value type OptionValue[MessageLine] from session option values; it does not query tmux. Available as CHOICE since tmux 3.4 (choices: \"0\", \"1\", \"2\", \"3\", \"4\"); set it with [Session.SetMessageLine] or [GlobalSessionScope.SetMessageLine]."},"source":{"file":"tmux/option_generated.go","line":2171,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.MessageLine","product":"core","slug":"tmux-sessionoptionvalues-messageline"},{"id":"tmux.SessionOptionValues.MessageStyle","name":"MessageStyle","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) MessageStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"MessageStyle returns materialized \"message-style\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetMessageStyle] or [GlobalSessionScope.SetMessageStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2176,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.MessageStyle","product":"core","slug":"tmux-sessionoptionvalues-messagestyle"},{"id":"tmux.SessionOptionValues.Mouse","name":"Mouse","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) Mouse() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"Mouse returns materialized \"mouse\" as [OptionValue] with value type OptionValue[bool] from session option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Session.SetMouse] or [GlobalSessionScope.SetMouse]."},"source":{"file":"tmux/option_generated.go","line":2180,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.Mouse","product":"core","slug":"tmux-sessionoptionvalues-mouse"},{"id":"tmux.SessionOptionValues.Prefix","name":"Prefix","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) Prefix() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"Prefix returns materialized \"prefix\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as KEY since tmux 3.2a; set it with [Session.SetPrefix] or [GlobalSessionScope.SetPrefix]."},"source":{"file":"tmux/option_generated.go","line":2184,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.Prefix","product":"core","slug":"tmux-sessionoptionvalues-prefix"},{"id":"tmux.SessionOptionValues.Prefix2","name":"Prefix2","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) Prefix2() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"Prefix2 returns materialized \"prefix2\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as KEY since tmux 3.2a; set it with [Session.SetPrefix2] or [GlobalSessionScope.SetPrefix2]."},"source":{"file":"tmux/option_generated.go","line":2188,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.Prefix2","product":"core","slug":"tmux-sessionoptionvalues-prefix2"},{"id":"tmux.SessionOptionValues.PromptCommandCursorStyle","name":"PromptCommandCursorStyle","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) PromptCommandCursorStyle() OptionValue[PromptCommandCursorStyle]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[PromptCommandCursorStyle]"}],"doc":{"summary":"PromptCommandCursorStyle returns materialized \"prompt-command-cursor-style\" as [OptionValue] with value type OptionValue[PromptCommandCursorStyle] from session option values; it does not query tmux. Available as CHOICE since tmux 3.7 (choices: \"default\", \"blinking-block\", \"block\", \"blinking-underline\", \"underline\", \"blinking-bar\", \"bar\"); set it with [Session.SetPromptCommandCursorStyle] or [GlobalSessionScope.SetPromptCommandCursorStyle]."},"source":{"file":"tmux/option_generated.go","line":2192,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.PromptCommandCursorStyle","product":"core","slug":"tmux-sessionoptionvalues-promptcommandcursorstyle"},{"id":"tmux.SessionOptionValues.PromptCursorColour","name":"PromptCursorColour","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) PromptCursorColour() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PromptCursorColour returns materialized \"prompt-cursor-colour\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as COLOUR since tmux 3.6; set it with [Session.SetPromptCursorColour] or [GlobalSessionScope.SetPromptCursorColour]."},"source":{"file":"tmux/option_generated.go","line":2198,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.PromptCursorColour","product":"core","slug":"tmux-sessionoptionvalues-promptcursorcolour"},{"id":"tmux.SessionOptionValues.PromptCursorStyle","name":"PromptCursorStyle","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) PromptCursorStyle() OptionValue[PromptCursorStyle]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[PromptCursorStyle]"}],"doc":{"summary":"PromptCursorStyle returns materialized \"prompt-cursor-style\" as [OptionValue] with value type OptionValue[PromptCursorStyle] from session option values; it does not query tmux. Available as CHOICE since tmux 3.6 (choices: \"default\", \"blinking-block\", \"block\", \"blinking-underline\", \"underline\", \"blinking-bar\", \"bar\"); set it with [Session.SetPromptCursorStyle] or [GlobalSessionScope.SetPromptCursorStyle]."},"source":{"file":"tmux/option_generated.go","line":2202,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.PromptCursorStyle","product":"core","slug":"tmux-sessionoptionvalues-promptcursorstyle"},{"id":"tmux.SessionOptionValues.RenumberWindows","name":"RenumberWindows","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) RenumberWindows() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"RenumberWindows returns materialized \"renumber-windows\" as [OptionValue] with value type OptionValue[bool] from session option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Session.SetRenumberWindows] or [GlobalSessionScope.SetRenumberWindows]."},"source":{"file":"tmux/option_generated.go","line":2208,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.RenumberWindows","product":"core","slug":"tmux-sessionoptionvalues-renumberwindows"},{"id":"tmux.SessionOptionValues.RepeatTime","name":"RepeatTime","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) RepeatTime() OptionValue[time.Duration]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[time.Duration]"}],"doc":{"summary":"RepeatTime returns materialized \"repeat-time\" as [OptionValue] with value type OptionValue[time.Duration] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetRepeatTime] or [GlobalSessionScope.SetRepeatTime]."},"source":{"file":"tmux/option_generated.go","line":2212,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.RepeatTime","product":"core","slug":"tmux-sessionoptionvalues-repeattime"},{"id":"tmux.SessionOptionValues.SetTitles","name":"SetTitles","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) SetTitles() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"SetTitles returns materialized \"set-titles\" as [OptionValue] with value type OptionValue[bool] from session option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Session.SetTitles] or [GlobalSessionScope.SetTitles]."},"source":{"file":"tmux/option_generated.go","line":2216,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.SetTitles","product":"core","slug":"tmux-sessionoptionvalues-settitles"},{"id":"tmux.SessionOptionValues.SetTitlesString","name":"SetTitlesString","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) SetTitlesString() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"SetTitlesString returns materialized \"set-titles-string\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetTitlesString] or [GlobalSessionScope.SetTitlesString]."},"source":{"file":"tmux/option_generated.go","line":2220,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.SetTitlesString","product":"core","slug":"tmux-sessionoptionvalues-settitlesstring"},{"id":"tmux.SessionOptionValues.SilenceAction","name":"SilenceAction","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) SilenceAction() OptionValue[SilenceAction]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[SilenceAction]"}],"doc":{"summary":"SilenceAction returns materialized \"silence-action\" as [OptionValue] with value type OptionValue[SilenceAction] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"none\", \"any\", \"current\", \"other\"); set it with [Session.SetSilenceAction] or [GlobalSessionScope.SetSilenceAction]."},"source":{"file":"tmux/option_generated.go","line":2224,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.SilenceAction","product":"core","slug":"tmux-sessionoptionvalues-silenceaction"},{"id":"tmux.SessionOptionValues.Status","name":"Status","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) Status() OptionValue[Status]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[Status]"}],"doc":{"summary":"Status returns materialized \"status\" as [OptionValue] with value type OptionValue[Status] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"on\", \"2\", \"3\", \"4\", \"5\"); set it with [Session.SetStatus] or [GlobalSessionScope.SetStatus]."},"source":{"file":"tmux/option_generated.go","line":2228,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.Status","product":"core","slug":"tmux-sessionoptionvalues-status"},{"id":"tmux.SessionOptionValues.StatusBG","name":"StatusBG","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusBG() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"StatusBG returns materialized \"status-bg\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as COLOUR since tmux 3.2a; set it with [Session.SetStatusBG] or [GlobalSessionScope.SetStatusBG]."},"source":{"file":"tmux/option_generated.go","line":2232,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusBG","product":"core","slug":"tmux-sessionoptionvalues-statusbg"},{"id":"tmux.SessionOptionValues.StatusFG","name":"StatusFG","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusFG() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"StatusFG returns materialized \"status-fg\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as COLOUR since tmux 3.2a; set it with [Session.SetStatusFG] or [GlobalSessionScope.SetStatusFG]."},"source":{"file":"tmux/option_generated.go","line":2236,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusFG","product":"core","slug":"tmux-sessionoptionvalues-statusfg"},{"id":"tmux.SessionOptionValues.StatusFormat","name":"StatusFormat","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusFormat() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"StatusFormat returns materialized \"status-format\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetStatusFormat] or [GlobalSessionScope.SetStatusFormat]. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":2241,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusFormat","product":"core","slug":"tmux-sessionoptionvalues-statusformat"},{"id":"tmux.SessionOptionValues.StatusInterval","name":"StatusInterval","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusInterval() OptionValue[time.Duration]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[time.Duration]"}],"doc":{"summary":"StatusInterval returns materialized \"status-interval\" as [OptionValue] with value type OptionValue[time.Duration] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetStatusInterval] or [GlobalSessionScope.SetStatusInterval]."},"source":{"file":"tmux/option_generated.go","line":2245,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusInterval","product":"core","slug":"tmux-sessionoptionvalues-statusinterval"},{"id":"tmux.SessionOptionValues.StatusJustify","name":"StatusJustify","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusJustify() OptionValue[StatusJustify]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[StatusJustify]"}],"doc":{"summary":"StatusJustify returns materialized \"status-justify\" as [OptionValue] with value type OptionValue[StatusJustify] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"left\", \"centre\", \"right\", \"absolute-centre\"); set it with [Session.SetStatusJustify] or [GlobalSessionScope.SetStatusJustify]."},"source":{"file":"tmux/option_generated.go","line":2249,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusJustify","product":"core","slug":"tmux-sessionoptionvalues-statusjustify"},{"id":"tmux.SessionOptionValues.StatusKeys","name":"StatusKeys","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusKeys() OptionValue[StatusKeys]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[StatusKeys]"}],"doc":{"summary":"StatusKeys returns materialized \"status-keys\" as [OptionValue] with value type OptionValue[StatusKeys] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"emacs\", \"vi\"); set it with [Session.SetStatusKeys] or [GlobalSessionScope.SetStatusKeys]."},"source":{"file":"tmux/option_generated.go","line":2253,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusKeys","product":"core","slug":"tmux-sessionoptionvalues-statuskeys"},{"id":"tmux.SessionOptionValues.StatusLeft","name":"StatusLeft","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusLeft() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"StatusLeft returns materialized \"status-left\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetStatusLeft] or [GlobalSessionScope.SetStatusLeft]."},"source":{"file":"tmux/option_generated.go","line":2257,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusLeft","product":"core","slug":"tmux-sessionoptionvalues-statusleft"},{"id":"tmux.SessionOptionValues.StatusLeftLength","name":"StatusLeftLength","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusLeftLength() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"StatusLeftLength returns materialized \"status-left-length\" as [OptionValue] with value type OptionValue[int64] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetStatusLeftLength] or [GlobalSessionScope.SetStatusLeftLength]."},"source":{"file":"tmux/option_generated.go","line":2261,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusLeftLength","product":"core","slug":"tmux-sessionoptionvalues-statusleftlength"},{"id":"tmux.SessionOptionValues.StatusLeftStyle","name":"StatusLeftStyle","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusLeftStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"StatusLeftStyle returns materialized \"status-left-style\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetStatusLeftStyle] or [GlobalSessionScope.SetStatusLeftStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2266,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusLeftStyle","product":"core","slug":"tmux-sessionoptionvalues-statusleftstyle"},{"id":"tmux.SessionOptionValues.StatusPosition","name":"StatusPosition","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusPosition() OptionValue[StatusPosition]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[StatusPosition]"}],"doc":{"summary":"StatusPosition returns materialized \"status-position\" as [OptionValue] with value type OptionValue[StatusPosition] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"top\", \"bottom\"); set it with [Session.SetStatusPosition] or [GlobalSessionScope.SetStatusPosition]."},"source":{"file":"tmux/option_generated.go","line":2270,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusPosition","product":"core","slug":"tmux-sessionoptionvalues-statusposition"},{"id":"tmux.SessionOptionValues.StatusRight","name":"StatusRight","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusRight() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"StatusRight returns materialized \"status-right\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetStatusRight] or [GlobalSessionScope.SetStatusRight]."},"source":{"file":"tmux/option_generated.go","line":2274,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusRight","product":"core","slug":"tmux-sessionoptionvalues-statusright"},{"id":"tmux.SessionOptionValues.StatusRightLength","name":"StatusRightLength","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusRightLength() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"StatusRightLength returns materialized \"status-right-length\" as [OptionValue] with value type OptionValue[int64] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetStatusRightLength] or [GlobalSessionScope.SetStatusRightLength]."},"source":{"file":"tmux/option_generated.go","line":2278,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusRightLength","product":"core","slug":"tmux-sessionoptionvalues-statusrightlength"},{"id":"tmux.SessionOptionValues.StatusRightStyle","name":"StatusRightStyle","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusRightStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"StatusRightStyle returns materialized \"status-right-style\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetStatusRightStyle] or [GlobalSessionScope.SetStatusRightStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2283,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusRightStyle","product":"core","slug":"tmux-sessionoptionvalues-statusrightstyle"},{"id":"tmux.SessionOptionValues.StatusStyle","name":"StatusStyle","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"StatusStyle returns materialized \"status-style\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetStatusStyle] or [GlobalSessionScope.SetStatusStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2288,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusStyle","product":"core","slug":"tmux-sessionoptionvalues-statusstyle"},{"id":"tmux.SessionOptionValues.UpdateEnvironment","name":"UpdateEnvironment","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) UpdateEnvironment() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"UpdateEnvironment returns materialized \"update-environment\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetUpdateEnvironment] or [GlobalSessionScope.SetUpdateEnvironment]. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":2293,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.UpdateEnvironment","product":"core","slug":"tmux-sessionoptionvalues-updateenvironment"},{"id":"tmux.SessionOptionValues.VisualActivity","name":"VisualActivity","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) VisualActivity() OptionValue[VisualActivity]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[VisualActivity]"}],"doc":{"summary":"VisualActivity returns materialized \"visual-activity\" as [OptionValue] with value type OptionValue[VisualActivity] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"on\", \"both\"); set it with [Session.SetVisualActivity] or [GlobalSessionScope.SetVisualActivity]."},"source":{"file":"tmux/option_generated.go","line":2299,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.VisualActivity","product":"core","slug":"tmux-sessionoptionvalues-visualactivity"},{"id":"tmux.SessionOptionValues.VisualBell","name":"VisualBell","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) VisualBell() OptionValue[VisualBell]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[VisualBell]"}],"doc":{"summary":"VisualBell returns materialized \"visual-bell\" as [OptionValue] with value type OptionValue[VisualBell] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"on\", \"both\"); set it with [Session.SetVisualBell] or [GlobalSessionScope.SetVisualBell]."},"source":{"file":"tmux/option_generated.go","line":2303,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.VisualBell","product":"core","slug":"tmux-sessionoptionvalues-visualbell"},{"id":"tmux.SessionOptionValues.VisualSilence","name":"VisualSilence","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) VisualSilence() OptionValue[VisualSilence]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[VisualSilence]"}],"doc":{"summary":"VisualSilence returns materialized \"visual-silence\" as [OptionValue] with value type OptionValue[VisualSilence] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"on\", \"both\"); set it with [Session.SetVisualSilence] or [GlobalSessionScope.SetVisualSilence]."},"source":{"file":"tmux/option_generated.go","line":2307,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.VisualSilence","product":"core","slug":"tmux-sessionoptionvalues-visualsilence"},{"id":"tmux.SessionOptionValues.WordSeparators","name":"WordSeparators","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) WordSeparators() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WordSeparators returns materialized \"word-separators\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetWordSeparators] or [GlobalSessionScope.SetWordSeparators]."},"source":{"file":"tmux/option_generated.go","line":2311,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.WordSeparators","product":"core","slug":"tmux-sessionoptionvalues-wordseparators"},{"id":"tmux.WindowOptionValues","name":"WindowOptionValues","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WindowOptionValues is an immutable materialized view of known window option values; its zero value is empty and it does not refresh. Obtain it with [Window.Options] or [GlobalWindowScope.Options]. [OptionValue.Get] reports presence and [OptionValue.Origin] reports inheritance. Use [Window.RawOption] or [GlobalWindowScope.RawOption] for caller-named or undecoded values."},"source":{"file":"tmux/option_generated.go","line":2433,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues","product":"core","slug":"tmux-windowoptionvalues"},{"id":"tmux.WindowOptionValues.AggressiveResize","name":"AggressiveResize","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) AggressiveResize() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"AggressiveResize returns materialized \"aggressive-resize\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Window.SetAggressiveResize] or [GlobalWindowScope.SetAggressiveResize]."},"source":{"file":"tmux/option_generated.go","line":2512,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.AggressiveResize","product":"core","slug":"tmux-windowoptionvalues-aggressiveresize"},{"id":"tmux.WindowOptionValues.AllowPassthrough","name":"AllowPassthrough","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) AllowPassthrough() OptionValue[AllowPassthrough]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[AllowPassthrough]"}],"doc":{"summary":"AllowPassthrough returns materialized \"allow-passthrough\" as [OptionValue] with value type OptionValue[AllowPassthrough] from window option values; it does not query tmux. Available as FLAG since tmux 3.3; CHOICE since tmux 3.4 (choices: \"off\", \"on\", \"all\"); set it with [Window.SetAllowPassthrough] or [GlobalWindowScope.SetAllowPassthrough]."},"source":{"file":"tmux/option_generated.go","line":2516,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.AllowPassthrough","product":"core","slug":"tmux-windowoptionvalues-allowpassthrough"},{"id":"tmux.WindowOptionValues.AllowRename","name":"AllowRename","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) AllowRename() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"AllowRename returns materialized \"allow-rename\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Window.SetAllowRename] or [GlobalWindowScope.SetAllowRename]."},"source":{"file":"tmux/option_generated.go","line":2522,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.AllowRename","product":"core","slug":"tmux-windowoptionvalues-allowrename"},{"id":"tmux.WindowOptionValues.AllowSetTitle","name":"AllowSetTitle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) AllowSetTitle() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"AllowSetTitle returns materialized \"allow-set-title\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.5; set it with [Window.SetAllowSetTitle] or [GlobalWindowScope.SetAllowSetTitle]."},"source":{"file":"tmux/option_generated.go","line":2526,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.AllowSetTitle","product":"core","slug":"tmux-windowoptionvalues-allowsettitle"},{"id":"tmux.WindowOptionValues.AlternateScreen","name":"AlternateScreen","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) AlternateScreen() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"AlternateScreen returns materialized \"alternate-screen\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Window.SetAlternateScreen] or [GlobalWindowScope.SetAlternateScreen]."},"source":{"file":"tmux/option_generated.go","line":2530,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.AlternateScreen","product":"core","slug":"tmux-windowoptionvalues-alternatescreen"},{"id":"tmux.WindowOptionValues.AutomaticRename","name":"AutomaticRename","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) AutomaticRename() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"AutomaticRename returns materialized \"automatic-rename\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Window.SetAutomaticRename] or [GlobalWindowScope.SetAutomaticRename]."},"source":{"file":"tmux/option_generated.go","line":2534,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.AutomaticRename","product":"core","slug":"tmux-windowoptionvalues-automaticrename"},{"id":"tmux.WindowOptionValues.AutomaticRenameFormat","name":"AutomaticRenameFormat","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) AutomaticRenameFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"AutomaticRenameFormat returns materialized \"automatic-rename-format\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetAutomaticRenameFormat] or [GlobalWindowScope.SetAutomaticRenameFormat]."},"source":{"file":"tmux/option_generated.go","line":2538,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.AutomaticRenameFormat","product":"core","slug":"tmux-windowoptionvalues-automaticrenameformat"},{"id":"tmux.WindowOptionValues.ClockModeColour","name":"ClockModeColour","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) ClockModeColour() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"ClockModeColour returns materialized \"clock-mode-colour\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as COLOUR since tmux 3.2a; set it with [Window.SetClockModeColour] or [GlobalWindowScope.SetClockModeColour]."},"source":{"file":"tmux/option_generated.go","line":2544,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.ClockModeColour","product":"core","slug":"tmux-windowoptionvalues-clockmodecolour"},{"id":"tmux.WindowOptionValues.ClockModeStyle","name":"ClockModeStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) ClockModeStyle() OptionValue[ClockModeStyle]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[ClockModeStyle]"}],"doc":{"summary":"ClockModeStyle returns materialized \"clock-mode-style\" as [OptionValue] with value type OptionValue[ClockModeStyle] from window option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"12\", \"24\"); CHOICE since tmux 3.6 (choices: \"12\", \"24\", \"12-with-seconds\", \"24-with-seconds\"); set it with [Window.SetClockModeStyle] or [GlobalWindowScope.SetClockModeStyle]."},"source":{"file":"tmux/option_generated.go","line":2548,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.ClockModeStyle","product":"core","slug":"tmux-windowoptionvalues-clockmodestyle"},{"id":"tmux.WindowOptionValues.CopyModeCurrentLineNumberStyle","name":"CopyModeCurrentLineNumberStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CopyModeCurrentLineNumberStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyModeCurrentLineNumberStyle returns materialized \"copy-mode-current-line-number-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Window.SetCopyModeCurrentLineNumberStyle] or [GlobalWindowScope.SetCopyModeCurrentLineNumberStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2553,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CopyModeCurrentLineNumberStyle","product":"core","slug":"tmux-windowoptionvalues-copymodecurrentlinenumberstyle"},{"id":"tmux.WindowOptionValues.CopyModeCurrentMatchStyle","name":"CopyModeCurrentMatchStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CopyModeCurrentMatchStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyModeCurrentMatchStyle returns materialized \"copy-mode-current-match-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetCopyModeCurrentMatchStyle] or [GlobalWindowScope.SetCopyModeCurrentMatchStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2560,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CopyModeCurrentMatchStyle","product":"core","slug":"tmux-windowoptionvalues-copymodecurrentmatchstyle"},{"id":"tmux.WindowOptionValues.CopyModeLineNumberStyle","name":"CopyModeLineNumberStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CopyModeLineNumberStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyModeLineNumberStyle returns materialized \"copy-mode-line-number-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Window.SetCopyModeLineNumberStyle] or [GlobalWindowScope.SetCopyModeLineNumberStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2567,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CopyModeLineNumberStyle","product":"core","slug":"tmux-windowoptionvalues-copymodelinenumberstyle"},{"id":"tmux.WindowOptionValues.CopyModeLineNumbers","name":"CopyModeLineNumbers","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CopyModeLineNumbers() OptionValue[CopyModeLineNumbers]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[CopyModeLineNumbers]"}],"doc":{"summary":"CopyModeLineNumbers returns materialized \"copy-mode-line-numbers\" as [OptionValue] with value type OptionValue[CopyModeLineNumbers] from window option values; it does not query tmux. Available as CHOICE since tmux 3.7 (choices: \"off\", \"default\", \"absolute\", \"relative\", \"hybrid\"); set it with [Window.SetCopyModeLineNumbers] or [GlobalWindowScope.SetCopyModeLineNumbers]."},"source":{"file":"tmux/option_generated.go","line":2573,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CopyModeLineNumbers","product":"core","slug":"tmux-windowoptionvalues-copymodelinenumbers"},{"id":"tmux.WindowOptionValues.CopyModeMarkStyle","name":"CopyModeMarkStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CopyModeMarkStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyModeMarkStyle returns materialized \"copy-mode-mark-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetCopyModeMarkStyle] or [GlobalWindowScope.SetCopyModeMarkStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2580,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CopyModeMarkStyle","product":"core","slug":"tmux-windowoptionvalues-copymodemarkstyle"},{"id":"tmux.WindowOptionValues.CopyModeMatchStyle","name":"CopyModeMatchStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CopyModeMatchStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyModeMatchStyle returns materialized \"copy-mode-match-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetCopyModeMatchStyle] or [GlobalWindowScope.SetCopyModeMatchStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2585,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CopyModeMatchStyle","product":"core","slug":"tmux-windowoptionvalues-copymodematchstyle"},{"id":"tmux.WindowOptionValues.CopyModePositionFormat","name":"CopyModePositionFormat","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CopyModePositionFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyModePositionFormat returns materialized \"copy-mode-position-format\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Window.SetCopyModePositionFormat] or [GlobalWindowScope.SetCopyModePositionFormat]."},"source":{"file":"tmux/option_generated.go","line":2589,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CopyModePositionFormat","product":"core","slug":"tmux-windowoptionvalues-copymodepositionformat"},{"id":"tmux.WindowOptionValues.CopyModePositionStyle","name":"CopyModePositionStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CopyModePositionStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyModePositionStyle returns materialized \"copy-mode-position-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Window.SetCopyModePositionStyle] or [GlobalWindowScope.SetCopyModePositionStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2596,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CopyModePositionStyle","product":"core","slug":"tmux-windowoptionvalues-copymodepositionstyle"},{"id":"tmux.WindowOptionValues.CopyModeSelectionStyle","name":"CopyModeSelectionStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CopyModeSelectionStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyModeSelectionStyle returns materialized \"copy-mode-selection-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Window.SetCopyModeSelectionStyle] or [GlobalWindowScope.SetCopyModeSelectionStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2603,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CopyModeSelectionStyle","product":"core","slug":"tmux-windowoptionvalues-copymodeselectionstyle"},{"id":"tmux.WindowOptionValues.CursorColour","name":"CursorColour","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CursorColour() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CursorColour returns materialized \"cursor-colour\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as COLOUR since tmux 3.3; set it with [Window.SetCursorColour] or [GlobalWindowScope.SetCursorColour]."},"source":{"file":"tmux/option_generated.go","line":2609,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CursorColour","product":"core","slug":"tmux-windowoptionvalues-cursorcolour"},{"id":"tmux.WindowOptionValues.CursorStyle","name":"CursorStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CursorStyle() OptionValue[CursorStyle]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[CursorStyle]"}],"doc":{"summary":"CursorStyle returns materialized \"cursor-style\" as [OptionValue] with value type OptionValue[CursorStyle] from window option values; it does not query tmux. Available as CHOICE since tmux 3.3 (choices: \"default\", \"blinking-block\", \"block\", \"blinking-underline\", \"underline\", \"blinking-bar\", \"bar\"); set it with [Window.SetCursorStyle] or [GlobalWindowScope.SetCursorStyle]."},"source":{"file":"tmux/option_generated.go","line":2613,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CursorStyle","product":"core","slug":"tmux-windowoptionvalues-cursorstyle"},{"id":"tmux.WindowOptionValues.FillCharacter","name":"FillCharacter","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) FillCharacter() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"FillCharacter returns materialized \"fill-character\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.3; set it with [Window.SetFillCharacter] or [GlobalWindowScope.SetFillCharacter]."},"source":{"file":"tmux/option_generated.go","line":2617,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.FillCharacter","product":"core","slug":"tmux-windowoptionvalues-fillcharacter"},{"id":"tmux.WindowOptionValues.MainPaneHeight","name":"MainPaneHeight","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) MainPaneHeight() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"MainPaneHeight returns materialized \"main-pane-height\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetMainPaneHeight] or [GlobalWindowScope.SetMainPaneHeight]."},"source":{"file":"tmux/option_generated.go","line":2621,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.MainPaneHeight","product":"core","slug":"tmux-windowoptionvalues-mainpaneheight"},{"id":"tmux.WindowOptionValues.MainPaneWidth","name":"MainPaneWidth","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) MainPaneWidth() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"MainPaneWidth returns materialized \"main-pane-width\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetMainPaneWidth] or [GlobalWindowScope.SetMainPaneWidth]."},"source":{"file":"tmux/option_generated.go","line":2625,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.MainPaneWidth","product":"core","slug":"tmux-windowoptionvalues-mainpanewidth"},{"id":"tmux.WindowOptionValues.MenuBorderLines","name":"MenuBorderLines","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) MenuBorderLines() OptionValue[MenuBorderLines]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[MenuBorderLines]"}],"doc":{"summary":"MenuBorderLines returns materialized \"menu-border-lines\" as [OptionValue] with value type OptionValue[MenuBorderLines] from window option values; it does not query tmux. Available as CHOICE since tmux 3.4 (choices: \"single\", \"double\", \"heavy\", \"simple\", \"rounded\", \"padded\", \"none\"); set it with [Window.SetMenuBorderLines] or [GlobalWindowScope.SetMenuBorderLines]."},"source":{"file":"tmux/option_generated.go","line":2629,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.MenuBorderLines","product":"core","slug":"tmux-windowoptionvalues-menuborderlines"},{"id":"tmux.WindowOptionValues.MenuBorderStyle","name":"MenuBorderStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) MenuBorderStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"MenuBorderStyle returns materialized \"menu-border-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.4; set it with [Window.SetMenuBorderStyle] or [GlobalWindowScope.SetMenuBorderStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2634,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.MenuBorderStyle","product":"core","slug":"tmux-windowoptionvalues-menuborderstyle"},{"id":"tmux.WindowOptionValues.MenuSelectedStyle","name":"MenuSelectedStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) MenuSelectedStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"MenuSelectedStyle returns materialized \"menu-selected-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.4; set it with [Window.SetMenuSelectedStyle] or [GlobalWindowScope.SetMenuSelectedStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2639,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.MenuSelectedStyle","product":"core","slug":"tmux-windowoptionvalues-menuselectedstyle"},{"id":"tmux.WindowOptionValues.MenuStyle","name":"MenuStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) MenuStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"MenuStyle returns materialized \"menu-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.4; set it with [Window.SetMenuStyle] or [GlobalWindowScope.SetMenuStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2644,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.MenuStyle","product":"core","slug":"tmux-windowoptionvalues-menustyle"},{"id":"tmux.WindowOptionValues.ModeKeys","name":"ModeKeys","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) ModeKeys() OptionValue[ModeKeys]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[ModeKeys]"}],"doc":{"summary":"ModeKeys returns materialized \"mode-keys\" as [OptionValue] with value type OptionValue[ModeKeys] from window option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"emacs\", \"vi\"); set it with [Window.SetModeKeys] or [GlobalWindowScope.SetModeKeys]."},"source":{"file":"tmux/option_generated.go","line":2648,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.ModeKeys","product":"core","slug":"tmux-windowoptionvalues-modekeys"},{"id":"tmux.WindowOptionValues.ModeStyle","name":"ModeStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) ModeStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"ModeStyle returns materialized \"mode-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetModeStyle] or [GlobalWindowScope.SetModeStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2653,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.ModeStyle","product":"core","slug":"tmux-windowoptionvalues-modestyle"},{"id":"tmux.WindowOptionValues.MonitorActivity","name":"MonitorActivity","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) MonitorActivity() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"MonitorActivity returns materialized \"monitor-activity\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Window.SetMonitorActivity] or [GlobalWindowScope.SetMonitorActivity]."},"source":{"file":"tmux/option_generated.go","line":2657,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.MonitorActivity","product":"core","slug":"tmux-windowoptionvalues-monitoractivity"},{"id":"tmux.WindowOptionValues.MonitorBell","name":"MonitorBell","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) MonitorBell() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"MonitorBell returns materialized \"monitor-bell\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Window.SetMonitorBell] or [GlobalWindowScope.SetMonitorBell]."},"source":{"file":"tmux/option_generated.go","line":2661,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.MonitorBell","product":"core","slug":"tmux-windowoptionvalues-monitorbell"},{"id":"tmux.WindowOptionValues.MonitorSilence","name":"MonitorSilence","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) MonitorSilence() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"MonitorSilence returns materialized \"monitor-silence\" as [OptionValue] with value type OptionValue[int64] from window option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Window.SetMonitorSilence] or [GlobalWindowScope.SetMonitorSilence]."},"source":{"file":"tmux/option_generated.go","line":2665,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.MonitorSilence","product":"core","slug":"tmux-windowoptionvalues-monitorsilence"},{"id":"tmux.WindowOptionValues.OtherPaneHeight","name":"OtherPaneHeight","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) OtherPaneHeight() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"OtherPaneHeight returns materialized \"other-pane-height\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetOtherPaneHeight] or [GlobalWindowScope.SetOtherPaneHeight]."},"source":{"file":"tmux/option_generated.go","line":2669,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.OtherPaneHeight","product":"core","slug":"tmux-windowoptionvalues-otherpaneheight"},{"id":"tmux.WindowOptionValues.OtherPaneWidth","name":"OtherPaneWidth","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) OtherPaneWidth() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"OtherPaneWidth returns materialized \"other-pane-width\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetOtherPaneWidth] or [GlobalWindowScope.SetOtherPaneWidth]."},"source":{"file":"tmux/option_generated.go","line":2673,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.OtherPaneWidth","product":"core","slug":"tmux-windowoptionvalues-otherpanewidth"},{"id":"tmux.WindowOptionValues.PaneActiveBorderStyle","name":"PaneActiveBorderStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneActiveBorderStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneActiveBorderStyle returns materialized \"pane-active-border-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; STRING since tmux 3.7; set it with [Window.SetPaneActiveBorderStyle] or [GlobalWindowScope.SetPaneActiveBorderStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2678,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneActiveBorderStyle","product":"core","slug":"tmux-windowoptionvalues-paneactiveborderstyle"},{"id":"tmux.WindowOptionValues.PaneBaseIndex","name":"PaneBaseIndex","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneBaseIndex() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"PaneBaseIndex returns materialized \"pane-base-index\" as [OptionValue] with value type OptionValue[int64] from window option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Window.SetPaneBaseIndex] or [GlobalWindowScope.SetPaneBaseIndex]."},"source":{"file":"tmux/option_generated.go","line":2684,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneBaseIndex","product":"core","slug":"tmux-windowoptionvalues-panebaseindex"},{"id":"tmux.WindowOptionValues.PaneBorderFormat","name":"PaneBorderFormat","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneBorderFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneBorderFormat returns materialized \"pane-border-format\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; STRING since tmux 3.3; set it with [Window.SetPaneBorderFormat] or [GlobalWindowScope.SetPaneBorderFormat]."},"source":{"file":"tmux/option_generated.go","line":2688,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneBorderFormat","product":"core","slug":"tmux-windowoptionvalues-paneborderformat"},{"id":"tmux.WindowOptionValues.PaneBorderIndicators","name":"PaneBorderIndicators","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneBorderIndicators() OptionValue[PaneBorderIndicators]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[PaneBorderIndicators]"}],"doc":{"summary":"PaneBorderIndicators returns materialized \"pane-border-indicators\" as [OptionValue] with value type OptionValue[PaneBorderIndicators] from window option values; it does not query tmux. Available as CHOICE since tmux 3.3 (choices: \"off\", \"colour\", \"arrows\", \"both\"); set it with [Window.SetPaneBorderIndicators] or [GlobalWindowScope.SetPaneBorderIndicators]."},"source":{"file":"tmux/option_generated.go","line":2692,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneBorderIndicators","product":"core","slug":"tmux-windowoptionvalues-paneborderindicators"},{"id":"tmux.WindowOptionValues.PaneBorderLines","name":"PaneBorderLines","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneBorderLines() OptionValue[PaneBorderLines]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[PaneBorderLines]"}],"doc":{"summary":"PaneBorderLines returns materialized \"pane-border-lines\" as [OptionValue] with value type OptionValue[PaneBorderLines] from window option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"single\", \"double\", \"heavy\", \"simple\", \"number\"); CHOICE since tmux 3.6 (choices: \"single\", \"double\", \"heavy\", \"simple\", \"number\", \"spaces\"); set it with [Window.SetPaneBorderLines] or [GlobalWindowScope.SetPaneBorderLines]."},"source":{"file":"tmux/option_generated.go","line":2698,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneBorderLines","product":"core","slug":"tmux-windowoptionvalues-paneborderlines"},{"id":"tmux.WindowOptionValues.PaneBorderStatus","name":"PaneBorderStatus","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneBorderStatus() OptionValue[PaneBorderStatus]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[PaneBorderStatus]"}],"doc":{"summary":"PaneBorderStatus returns materialized \"pane-border-status\" as [OptionValue] with value type OptionValue[PaneBorderStatus] from window option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"top\", \"bottom\"); set it with [Window.SetPaneBorderStatus] or [GlobalWindowScope.SetPaneBorderStatus]."},"source":{"file":"tmux/option_generated.go","line":2702,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneBorderStatus","product":"core","slug":"tmux-windowoptionvalues-paneborderstatus"},{"id":"tmux.WindowOptionValues.PaneBorderStyle","name":"PaneBorderStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneBorderStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneBorderStyle returns materialized \"pane-border-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; STRING since tmux 3.7; set it with [Window.SetPaneBorderStyle] or [GlobalWindowScope.SetPaneBorderStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2709,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneBorderStyle","product":"core","slug":"tmux-windowoptionvalues-paneborderstyle"},{"id":"tmux.WindowOptionValues.PaneColours","name":"PaneColours","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneColours() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneColours returns materialized \"pane-colours\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window option values; it does not query tmux. Available as COLOUR since tmux 3.3; set it with [Window.SetPaneColours] or [GlobalWindowScope.SetPaneColours]. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":2714,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneColours","product":"core","slug":"tmux-windowoptionvalues-panecolours"},{"id":"tmux.WindowOptionValues.PaneScrollbars","name":"PaneScrollbars","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneScrollbars() OptionValue[PaneScrollbars]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[PaneScrollbars]"}],"doc":{"summary":"PaneScrollbars returns materialized \"pane-scrollbars\" as [OptionValue] with value type OptionValue[PaneScrollbars] from window option values; it does not query tmux. Available as CHOICE since tmux 3.6 (choices: \"off\", \"modal\", \"on\"); set it with [Window.SetPaneScrollbars] or [GlobalWindowScope.SetPaneScrollbars]."},"source":{"file":"tmux/option_generated.go","line":2718,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneScrollbars","product":"core","slug":"tmux-windowoptionvalues-panescrollbars"},{"id":"tmux.WindowOptionValues.PaneScrollbarsPosition","name":"PaneScrollbarsPosition","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneScrollbarsPosition() OptionValue[PaneScrollbarsPosition]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[PaneScrollbarsPosition]"}],"doc":{"summary":"PaneScrollbarsPosition returns materialized \"pane-scrollbars-position\" as [OptionValue] with value type OptionValue[PaneScrollbarsPosition] from window option values; it does not query tmux. Available as CHOICE since tmux 3.6 (choices: \"right\", \"left\"); set it with [Window.SetPaneScrollbarsPosition] or [GlobalWindowScope.SetPaneScrollbarsPosition]."},"source":{"file":"tmux/option_generated.go","line":2722,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneScrollbarsPosition","product":"core","slug":"tmux-windowoptionvalues-panescrollbarsposition"},{"id":"tmux.WindowOptionValues.PaneScrollbarsStyle","name":"PaneScrollbarsStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneScrollbarsStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneScrollbarsStyle returns materialized \"pane-scrollbars-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Window.SetPaneScrollbarsStyle] or [GlobalWindowScope.SetPaneScrollbarsStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2729,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneScrollbarsStyle","product":"core","slug":"tmux-windowoptionvalues-panescrollbarsstyle"},{"id":"tmux.WindowOptionValues.PaneStatusCurrentStyle","name":"PaneStatusCurrentStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneStatusCurrentStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneStatusCurrentStyle returns materialized \"pane-status-current-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Window.SetPaneStatusCurrentStyle] or [GlobalWindowScope.SetPaneStatusCurrentStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2734,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneStatusCurrentStyle","product":"core","slug":"tmux-windowoptionvalues-panestatuscurrentstyle"},{"id":"tmux.WindowOptionValues.PaneStatusStyle","name":"PaneStatusStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneStatusStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneStatusStyle returns materialized \"pane-status-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Window.SetPaneStatusStyle] or [GlobalWindowScope.SetPaneStatusStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2741,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneStatusStyle","product":"core","slug":"tmux-windowoptionvalues-panestatusstyle"},{"id":"tmux.WindowOptionValues.PopupBorderLines","name":"PopupBorderLines","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PopupBorderLines() OptionValue[PopupBorderLines]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[PopupBorderLines]"}],"doc":{"summary":"PopupBorderLines returns materialized \"popup-border-lines\" as [OptionValue] with value type OptionValue[PopupBorderLines] from window option values; it does not query tmux. Available as CHOICE since tmux 3.3 (choices: \"single\", \"double\", \"heavy\", \"simple\", \"rounded\", \"padded\", \"none\"); set it with [Window.SetPopupBorderLines] or [GlobalWindowScope.SetPopupBorderLines]."},"source":{"file":"tmux/option_generated.go","line":2745,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PopupBorderLines","product":"core","slug":"tmux-windowoptionvalues-popupborderlines"},{"id":"tmux.WindowOptionValues.PopupBorderStyle","name":"PopupBorderStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PopupBorderStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PopupBorderStyle returns materialized \"popup-border-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.3; set it with [Window.SetPopupBorderStyle] or [GlobalWindowScope.SetPopupBorderStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2752,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PopupBorderStyle","product":"core","slug":"tmux-windowoptionvalues-popupborderstyle"},{"id":"tmux.WindowOptionValues.PopupStyle","name":"PopupStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PopupStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PopupStyle returns materialized \"popup-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.3; set it with [Window.SetPopupStyle] or [GlobalWindowScope.SetPopupStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2757,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PopupStyle","product":"core","slug":"tmux-windowoptionvalues-popupstyle"},{"id":"tmux.WindowOptionValues.RemainOnExit","name":"RemainOnExit","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) RemainOnExit() OptionValue[RemainOnExit]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[RemainOnExit]"}],"doc":{"summary":"RemainOnExit returns materialized \"remain-on-exit\" as [OptionValue] with value type OptionValue[RemainOnExit] from window option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"on\", \"failed\"); CHOICE since tmux 3.7 (choices: \"off\", \"on\", \"failed\", \"key\"); set it with [Window.SetRemainOnExit] or [GlobalWindowScope.SetRemainOnExit]."},"source":{"file":"tmux/option_generated.go","line":2761,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.RemainOnExit","product":"core","slug":"tmux-windowoptionvalues-remainonexit"},{"id":"tmux.WindowOptionValues.RemainOnExitFormat","name":"RemainOnExitFormat","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) RemainOnExitFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"RemainOnExitFormat returns materialized \"remain-on-exit-format\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.3; set it with [Window.SetRemainOnExitFormat] or [GlobalWindowScope.SetRemainOnExitFormat]."},"source":{"file":"tmux/option_generated.go","line":2765,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.RemainOnExitFormat","product":"core","slug":"tmux-windowoptionvalues-remainonexitformat"},{"id":"tmux.WindowOptionValues.ScrollOnClear","name":"ScrollOnClear","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) ScrollOnClear() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"ScrollOnClear returns materialized \"scroll-on-clear\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.3; set it with [Window.SetScrollOnClear] or [GlobalWindowScope.SetScrollOnClear]."},"source":{"file":"tmux/option_generated.go","line":2769,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.ScrollOnClear","product":"core","slug":"tmux-windowoptionvalues-scrollonclear"},{"id":"tmux.WindowOptionValues.SessionStatusCurrentStyle","name":"SessionStatusCurrentStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) SessionStatusCurrentStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"SessionStatusCurrentStyle returns materialized \"session-status-current-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Window.SetSessionStatusCurrentStyle] or [GlobalWindowScope.SetSessionStatusCurrentStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2774,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.SessionStatusCurrentStyle","product":"core","slug":"tmux-windowoptionvalues-sessionstatuscurrentstyle"},{"id":"tmux.WindowOptionValues.SessionStatusStyle","name":"SessionStatusStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) SessionStatusStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"SessionStatusStyle returns materialized \"session-status-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Window.SetSessionStatusStyle] or [GlobalWindowScope.SetSessionStatusStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2781,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.SessionStatusStyle","product":"core","slug":"tmux-windowoptionvalues-sessionstatusstyle"},{"id":"tmux.WindowOptionValues.SynchronizePanes","name":"SynchronizePanes","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) SynchronizePanes() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"SynchronizePanes returns materialized \"synchronize-panes\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Window.SetSynchronizePanes] or [GlobalWindowScope.SetSynchronizePanes]."},"source":{"file":"tmux/option_generated.go","line":2785,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.SynchronizePanes","product":"core","slug":"tmux-windowoptionvalues-synchronizepanes"},{"id":"tmux.WindowOptionValues.TiledLayoutMaxColumns","name":"TiledLayoutMaxColumns","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) TiledLayoutMaxColumns() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"TiledLayoutMaxColumns returns materialized \"tiled-layout-max-columns\" as [OptionValue] with value type OptionValue[int64] from window option values; it does not query tmux. Available as NUMBER since tmux 3.6; set it with [Window.SetTiledLayoutMaxColumns] or [GlobalWindowScope.SetTiledLayoutMaxColumns]."},"source":{"file":"tmux/option_generated.go","line":2789,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.TiledLayoutMaxColumns","product":"core","slug":"tmux-windowoptionvalues-tiledlayoutmaxcolumns"},{"id":"tmux.WindowOptionValues.TreeModePreviewFormat","name":"TreeModePreviewFormat","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) TreeModePreviewFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"TreeModePreviewFormat returns materialized \"tree-mode-preview-format\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Window.SetTreeModePreviewFormat] or [GlobalWindowScope.SetTreeModePreviewFormat]."},"source":{"file":"tmux/option_generated.go","line":2795,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.TreeModePreviewFormat","product":"core","slug":"tmux-windowoptionvalues-treemodepreviewformat"},{"id":"tmux.WindowOptionValues.TreeModePreviewStyle","name":"TreeModePreviewStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) TreeModePreviewStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"TreeModePreviewStyle returns materialized \"tree-mode-preview-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Window.SetTreeModePreviewStyle] or [GlobalWindowScope.SetTreeModePreviewStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2802,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.TreeModePreviewStyle","product":"core","slug":"tmux-windowoptionvalues-treemodepreviewstyle"},{"id":"tmux.WindowOptionValues.WindowActiveStyle","name":"WindowActiveStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowActiveStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowActiveStyle returns materialized \"window-active-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowActiveStyle] or [GlobalWindowScope.SetWindowActiveStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2807,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowActiveStyle","product":"core","slug":"tmux-windowoptionvalues-windowactivestyle"},{"id":"tmux.WindowOptionValues.WindowPaneCurrentStatusFormat","name":"WindowPaneCurrentStatusFormat","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowPaneCurrentStatusFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowPaneCurrentStatusFormat returns materialized \"window-pane-current-status-format\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Window.SetWindowPaneCurrentStatusFormat] or [GlobalWindowScope.SetWindowPaneCurrentStatusFormat]."},"source":{"file":"tmux/option_generated.go","line":2811,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowPaneCurrentStatusFormat","product":"core","slug":"tmux-windowoptionvalues-windowpanecurrentstatusformat"},{"id":"tmux.WindowOptionValues.WindowPaneStatusFormat","name":"WindowPaneStatusFormat","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowPaneStatusFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowPaneStatusFormat returns materialized \"window-pane-status-format\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Window.SetWindowPaneStatusFormat] or [GlobalWindowScope.SetWindowPaneStatusFormat]."},"source":{"file":"tmux/option_generated.go","line":2817,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowPaneStatusFormat","product":"core","slug":"tmux-windowoptionvalues-windowpanestatusformat"},{"id":"tmux.WindowOptionValues.WindowSize","name":"WindowSize","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowSize() OptionValue[WindowSize]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[WindowSize]"}],"doc":{"summary":"WindowSize returns materialized \"window-size\" as [OptionValue] with value type OptionValue[WindowSize] from window option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"largest\", \"smallest\", \"manual\", \"latest\"); set it with [Window.SetWindowSize] or [GlobalWindowScope.SetWindowSize]."},"source":{"file":"tmux/option_generated.go","line":2823,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowSize","product":"core","slug":"tmux-windowoptionvalues-windowsize"},{"id":"tmux.WindowOptionValues.WindowStatusActivityStyle","name":"WindowStatusActivityStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowStatusActivityStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStatusActivityStyle returns materialized \"window-status-activity-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowStatusActivityStyle] or [GlobalWindowScope.SetWindowStatusActivityStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2828,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowStatusActivityStyle","product":"core","slug":"tmux-windowoptionvalues-windowstatusactivitystyle"},{"id":"tmux.WindowOptionValues.WindowStatusBellStyle","name":"WindowStatusBellStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowStatusBellStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStatusBellStyle returns materialized \"window-status-bell-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowStatusBellStyle] or [GlobalWindowScope.SetWindowStatusBellStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2835,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowStatusBellStyle","product":"core","slug":"tmux-windowoptionvalues-windowstatusbellstyle"},{"id":"tmux.WindowOptionValues.WindowStatusCurrentFormat","name":"WindowStatusCurrentFormat","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowStatusCurrentFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStatusCurrentFormat returns materialized \"window-status-current-format\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowStatusCurrentFormat] or [GlobalWindowScope.SetWindowStatusCurrentFormat]."},"source":{"file":"tmux/option_generated.go","line":2841,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowStatusCurrentFormat","product":"core","slug":"tmux-windowoptionvalues-windowstatuscurrentformat"},{"id":"tmux.WindowOptionValues.WindowStatusCurrentStyle","name":"WindowStatusCurrentStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowStatusCurrentStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStatusCurrentStyle returns materialized \"window-status-current-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowStatusCurrentStyle] or [GlobalWindowScope.SetWindowStatusCurrentStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2848,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowStatusCurrentStyle","product":"core","slug":"tmux-windowoptionvalues-windowstatuscurrentstyle"},{"id":"tmux.WindowOptionValues.WindowStatusFormat","name":"WindowStatusFormat","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowStatusFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStatusFormat returns materialized \"window-status-format\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowStatusFormat] or [GlobalWindowScope.SetWindowStatusFormat]."},"source":{"file":"tmux/option_generated.go","line":2854,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowStatusFormat","product":"core","slug":"tmux-windowoptionvalues-windowstatusformat"},{"id":"tmux.WindowOptionValues.WindowStatusLastStyle","name":"WindowStatusLastStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowStatusLastStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStatusLastStyle returns materialized \"window-status-last-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowStatusLastStyle] or [GlobalWindowScope.SetWindowStatusLastStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2859,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowStatusLastStyle","product":"core","slug":"tmux-windowoptionvalues-windowstatuslaststyle"},{"id":"tmux.WindowOptionValues.WindowStatusSeparator","name":"WindowStatusSeparator","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowStatusSeparator() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStatusSeparator returns materialized \"window-status-separator\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowStatusSeparator] or [GlobalWindowScope.SetWindowStatusSeparator]."},"source":{"file":"tmux/option_generated.go","line":2865,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowStatusSeparator","product":"core","slug":"tmux-windowoptionvalues-windowstatusseparator"},{"id":"tmux.WindowOptionValues.WindowStatusStyle","name":"WindowStatusStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowStatusStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStatusStyle returns materialized \"window-status-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowStatusStyle] or [GlobalWindowScope.SetWindowStatusStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2872,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowStatusStyle","product":"core","slug":"tmux-windowoptionvalues-windowstatusstyle"},{"id":"tmux.WindowOptionValues.WindowStyle","name":"WindowStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStyle returns materialized \"window-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowStyle] or [GlobalWindowScope.SetWindowStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2877,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowStyle","product":"core","slug":"tmux-windowoptionvalues-windowstyle"},{"id":"tmux.WindowOptionValues.WrapSearch","name":"WrapSearch","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WrapSearch() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"WrapSearch returns materialized \"wrap-search\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Window.SetWrapSearch] or [GlobalWindowScope.SetWrapSearch]."},"source":{"file":"tmux/option_generated.go","line":2881,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WrapSearch","product":"core","slug":"tmux-windowoptionvalues-wrapsearch"},{"id":"tmux.WindowOptionValues.XTermKeys","name":"XTermKeys","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) XTermKeys() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"XTermKeys returns materialized \"xterm-keys\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Window.SetXTermKeys] or [GlobalWindowScope.SetXTermKeys]."},"source":{"file":"tmux/option_generated.go","line":2885,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.XTermKeys","product":"core","slug":"tmux-windowoptionvalues-xtermkeys"},{"id":"tmux.PaneOptionValues","name":"PaneOptionValues","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneOptionValues is an immutable materialized view of known pane option values; its zero value is empty and it does not refresh. Obtain it with [Pane.Options]. [OptionValue.Get] reports presence and [OptionValue.Origin] reports inheritance. Use [Pane.RawOption] for caller-named or undecoded values."},"source":{"file":"tmux/option_generated.go","line":3047,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues","product":"core","slug":"tmux-paneoptionvalues"},{"id":"tmux.PaneOptionValues.AllowPassthrough","name":"AllowPassthrough","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) AllowPassthrough() OptionValue[AllowPassthrough]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[AllowPassthrough]"}],"doc":{"summary":"AllowPassthrough returns materialized \"allow-passthrough\" as [OptionValue] with value type OptionValue[AllowPassthrough] from pane option values; it does not query tmux. Available as FLAG since tmux 3.3; CHOICE since tmux 3.4 (choices: \"off\", \"on\", \"all\"); set it with [Pane.SetAllowPassthrough]."},"source":{"file":"tmux/option_generated.go","line":3071,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.AllowPassthrough","product":"core","slug":"tmux-paneoptionvalues-allowpassthrough"},{"id":"tmux.PaneOptionValues.AllowRename","name":"AllowRename","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) AllowRename() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"AllowRename returns materialized \"allow-rename\" as [OptionValue] with value type OptionValue[bool] from pane option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Pane.SetAllowRename]."},"source":{"file":"tmux/option_generated.go","line":3075,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.AllowRename","product":"core","slug":"tmux-paneoptionvalues-allowrename"},{"id":"tmux.PaneOptionValues.AllowSetTitle","name":"AllowSetTitle","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) AllowSetTitle() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"AllowSetTitle returns materialized \"allow-set-title\" as [OptionValue] with value type OptionValue[bool] from pane option values; it does not query tmux. Available as FLAG since tmux 3.5; set it with [Pane.SetAllowSetTitle]."},"source":{"file":"tmux/option_generated.go","line":3079,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.AllowSetTitle","product":"core","slug":"tmux-paneoptionvalues-allowsettitle"},{"id":"tmux.PaneOptionValues.AlternateScreen","name":"AlternateScreen","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) AlternateScreen() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"AlternateScreen returns materialized \"alternate-screen\" as [OptionValue] with value type OptionValue[bool] from pane option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Pane.SetAlternateScreen]."},"source":{"file":"tmux/option_generated.go","line":3083,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.AlternateScreen","product":"core","slug":"tmux-paneoptionvalues-alternatescreen"},{"id":"tmux.PaneOptionValues.CopyModePositionFormat","name":"CopyModePositionFormat","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) CopyModePositionFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyModePositionFormat returns materialized \"copy-mode-position-format\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Pane.SetCopyModePositionFormat]."},"source":{"file":"tmux/option_generated.go","line":3087,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.CopyModePositionFormat","product":"core","slug":"tmux-paneoptionvalues-copymodepositionformat"},{"id":"tmux.PaneOptionValues.CursorColour","name":"CursorColour","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) CursorColour() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CursorColour returns materialized \"cursor-colour\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as COLOUR since tmux 3.3; set it with [Pane.SetCursorColour]."},"source":{"file":"tmux/option_generated.go","line":3093,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.CursorColour","product":"core","slug":"tmux-paneoptionvalues-cursorcolour"},{"id":"tmux.PaneOptionValues.CursorStyle","name":"CursorStyle","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) CursorStyle() OptionValue[CursorStyle]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[CursorStyle]"}],"doc":{"summary":"CursorStyle returns materialized \"cursor-style\" as [OptionValue] with value type OptionValue[CursorStyle] from pane option values; it does not query tmux. Available as CHOICE since tmux 3.3 (choices: \"default\", \"blinking-block\", \"block\", \"blinking-underline\", \"underline\", \"blinking-bar\", \"bar\"); set it with [Pane.SetCursorStyle]."},"source":{"file":"tmux/option_generated.go","line":3097,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.CursorStyle","product":"core","slug":"tmux-paneoptionvalues-cursorstyle"},{"id":"tmux.PaneOptionValues.PaneActiveBorderStyle","name":"PaneActiveBorderStyle","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) PaneActiveBorderStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneActiveBorderStyle returns materialized \"pane-active-border-style\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Pane.SetPaneActiveBorderStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":3102,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.PaneActiveBorderStyle","product":"core","slug":"tmux-paneoptionvalues-paneactiveborderstyle"},{"id":"tmux.PaneOptionValues.PaneBorderFormat","name":"PaneBorderFormat","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) PaneBorderFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneBorderFormat returns materialized \"pane-border-format\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as STRING since tmux 3.3; set it with [Pane.SetPaneBorderFormat]."},"source":{"file":"tmux/option_generated.go","line":3106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.PaneBorderFormat","product":"core","slug":"tmux-paneoptionvalues-paneborderformat"},{"id":"tmux.PaneOptionValues.PaneBorderStyle","name":"PaneBorderStyle","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) PaneBorderStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneBorderStyle returns materialized \"pane-border-style\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Pane.SetPaneBorderStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":3111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.PaneBorderStyle","product":"core","slug":"tmux-paneoptionvalues-paneborderstyle"},{"id":"tmux.PaneOptionValues.PaneColours","name":"PaneColours","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) PaneColours() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneColours returns materialized \"pane-colours\" as [OptionValue] with value type OptionValue[SparseArray[string]] from pane option values; it does not query tmux. Available as COLOUR since tmux 3.3; set it with [Pane.SetPaneColours]. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3116,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.PaneColours","product":"core","slug":"tmux-paneoptionvalues-panecolours"},{"id":"tmux.PaneOptionValues.PaneScrollbarsStyle","name":"PaneScrollbarsStyle","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) PaneScrollbarsStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneScrollbarsStyle returns materialized \"pane-scrollbars-style\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Pane.SetPaneScrollbarsStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":3121,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.PaneScrollbarsStyle","product":"core","slug":"tmux-paneoptionvalues-panescrollbarsstyle"},{"id":"tmux.PaneOptionValues.RemainOnExit","name":"RemainOnExit","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) RemainOnExit() OptionValue[RemainOnExit]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[RemainOnExit]"}],"doc":{"summary":"RemainOnExit returns materialized \"remain-on-exit\" as [OptionValue] with value type OptionValue[RemainOnExit] from pane option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"on\", \"failed\"); CHOICE since tmux 3.7 (choices: \"off\", \"on\", \"failed\", \"key\"); set it with [Pane.SetRemainOnExit]."},"source":{"file":"tmux/option_generated.go","line":3125,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.RemainOnExit","product":"core","slug":"tmux-paneoptionvalues-remainonexit"},{"id":"tmux.PaneOptionValues.RemainOnExitFormat","name":"RemainOnExitFormat","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) RemainOnExitFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"RemainOnExitFormat returns materialized \"remain-on-exit-format\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as STRING since tmux 3.3; set it with [Pane.SetRemainOnExitFormat]."},"source":{"file":"tmux/option_generated.go","line":3129,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.RemainOnExitFormat","product":"core","slug":"tmux-paneoptionvalues-remainonexitformat"},{"id":"tmux.PaneOptionValues.ScrollOnClear","name":"ScrollOnClear","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) ScrollOnClear() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"ScrollOnClear returns materialized \"scroll-on-clear\" as [OptionValue] with value type OptionValue[bool] from pane option values; it does not query tmux. Available as FLAG since tmux 3.3; set it with [Pane.SetScrollOnClear]."},"source":{"file":"tmux/option_generated.go","line":3133,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.ScrollOnClear","product":"core","slug":"tmux-paneoptionvalues-scrollonclear"},{"id":"tmux.PaneOptionValues.SynchronizePanes","name":"SynchronizePanes","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) SynchronizePanes() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"SynchronizePanes returns materialized \"synchronize-panes\" as [OptionValue] with value type OptionValue[bool] from pane option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Pane.SetSynchronizePanes]."},"source":{"file":"tmux/option_generated.go","line":3137,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.SynchronizePanes","product":"core","slug":"tmux-paneoptionvalues-synchronizepanes"},{"id":"tmux.PaneOptionValues.TreeModePreviewFormat","name":"TreeModePreviewFormat","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) TreeModePreviewFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"TreeModePreviewFormat returns materialized \"tree-mode-preview-format\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Pane.SetTreeModePreviewFormat]."},"source":{"file":"tmux/option_generated.go","line":3141,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.TreeModePreviewFormat","product":"core","slug":"tmux-paneoptionvalues-treemodepreviewformat"},{"id":"tmux.PaneOptionValues.WindowActiveStyle","name":"WindowActiveStyle","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) WindowActiveStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowActiveStyle returns materialized \"window-active-style\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Pane.SetWindowActiveStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":3146,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.WindowActiveStyle","product":"core","slug":"tmux-paneoptionvalues-windowactivestyle"},{"id":"tmux.PaneOptionValues.WindowStyle","name":"WindowStyle","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) WindowStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStyle returns materialized \"window-style\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Pane.SetWindowStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":3151,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.WindowStyle","product":"core","slug":"tmux-paneoptionvalues-windowstyle"},{"id":"tmux.ServerHookValues","name":"ServerHookValues","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ServerHookValues is an immutable materialized view of known global session-scope hook values; its zero value is empty and it does not refresh. Obtain it with [GlobalSessionScope.Hooks]. [OptionValue.Get] reports presence and [OptionValue.Origin] reports inheritance. Use [GlobalSessionScope.RawHook] for caller-named or undecoded values."},"source":{"file":"tmux/option_generated.go","line":3203,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues","product":"core","slug":"tmux-serverhookvalues"},{"id":"tmux.ServerHookValues.AfterBindKey","name":"AfterBindKey","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterBindKey() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterBindKey returns materialized \"after-bind-key\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3266,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterBindKey","product":"core","slug":"tmux-serverhookvalues-afterbindkey"},{"id":"tmux.ServerHookValues.AfterCapturePane","name":"AfterCapturePane","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterCapturePane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterCapturePane returns materialized \"after-capture-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3271,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterCapturePane","product":"core","slug":"tmux-serverhookvalues-aftercapturepane"},{"id":"tmux.ServerHookValues.AfterCopyMode","name":"AfterCopyMode","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterCopyMode() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterCopyMode returns materialized \"after-copy-mode\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3278,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterCopyMode","product":"core","slug":"tmux-serverhookvalues-aftercopymode"},{"id":"tmux.ServerHookValues.AfterDisplayMessage","name":"AfterDisplayMessage","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterDisplayMessage() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterDisplayMessage returns materialized \"after-display-message\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3283,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterDisplayMessage","product":"core","slug":"tmux-serverhookvalues-afterdisplaymessage"},{"id":"tmux.ServerHookValues.AfterDisplayPanes","name":"AfterDisplayPanes","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterDisplayPanes() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterDisplayPanes returns materialized \"after-display-panes\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3290,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterDisplayPanes","product":"core","slug":"tmux-serverhookvalues-afterdisplaypanes"},{"id":"tmux.ServerHookValues.AfterKillPane","name":"AfterKillPane","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterKillPane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterKillPane returns materialized \"after-kill-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3297,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterKillPane","product":"core","slug":"tmux-serverhookvalues-afterkillpane"},{"id":"tmux.ServerHookValues.AfterListBuffers","name":"AfterListBuffers","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterListBuffers() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListBuffers returns materialized \"after-list-buffers\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3302,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterListBuffers","product":"core","slug":"tmux-serverhookvalues-afterlistbuffers"},{"id":"tmux.ServerHookValues.AfterListClients","name":"AfterListClients","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterListClients() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListClients returns materialized \"after-list-clients\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3309,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterListClients","product":"core","slug":"tmux-serverhookvalues-afterlistclients"},{"id":"tmux.ServerHookValues.AfterListKeys","name":"AfterListKeys","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterListKeys() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListKeys returns materialized \"after-list-keys\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3316,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterListKeys","product":"core","slug":"tmux-serverhookvalues-afterlistkeys"},{"id":"tmux.ServerHookValues.AfterListPanes","name":"AfterListPanes","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterListPanes() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListPanes returns materialized \"after-list-panes\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3321,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterListPanes","product":"core","slug":"tmux-serverhookvalues-afterlistpanes"},{"id":"tmux.ServerHookValues.AfterListSessions","name":"AfterListSessions","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterListSessions() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListSessions returns materialized \"after-list-sessions\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3326,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterListSessions","product":"core","slug":"tmux-serverhookvalues-afterlistsessions"},{"id":"tmux.ServerHookValues.AfterListWindows","name":"AfterListWindows","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterListWindows() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListWindows returns materialized \"after-list-windows\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3333,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterListWindows","product":"core","slug":"tmux-serverhookvalues-afterlistwindows"},{"id":"tmux.ServerHookValues.AfterLoadBuffer","name":"AfterLoadBuffer","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterLoadBuffer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterLoadBuffer returns materialized \"after-load-buffer\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3340,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterLoadBuffer","product":"core","slug":"tmux-serverhookvalues-afterloadbuffer"},{"id":"tmux.ServerHookValues.AfterLockServer","name":"AfterLockServer","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterLockServer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterLockServer returns materialized \"after-lock-server\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3347,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterLockServer","product":"core","slug":"tmux-serverhookvalues-afterlockserver"},{"id":"tmux.ServerHookValues.AfterNewSession","name":"AfterNewSession","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterNewSession() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterNewSession returns materialized \"after-new-session\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3354,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterNewSession","product":"core","slug":"tmux-serverhookvalues-afternewsession"},{"id":"tmux.ServerHookValues.AfterNewWindow","name":"AfterNewWindow","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterNewWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterNewWindow returns materialized \"after-new-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3361,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterNewWindow","product":"core","slug":"tmux-serverhookvalues-afternewwindow"},{"id":"tmux.ServerHookValues.AfterPasteBuffer","name":"AfterPasteBuffer","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterPasteBuffer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterPasteBuffer returns materialized \"after-paste-buffer\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3366,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterPasteBuffer","product":"core","slug":"tmux-serverhookvalues-afterpastebuffer"},{"id":"tmux.ServerHookValues.AfterPipePane","name":"AfterPipePane","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterPipePane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterPipePane returns materialized \"after-pipe-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3373,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterPipePane","product":"core","slug":"tmux-serverhookvalues-afterpipepane"},{"id":"tmux.ServerHookValues.AfterQueue","name":"AfterQueue","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterQueue() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterQueue returns materialized \"after-queue\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3378,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterQueue","product":"core","slug":"tmux-serverhookvalues-afterqueue"},{"id":"tmux.ServerHookValues.AfterRefreshClient","name":"AfterRefreshClient","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterRefreshClient() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterRefreshClient returns materialized \"after-refresh-client\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3383,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterRefreshClient","product":"core","slug":"tmux-serverhookvalues-afterrefreshclient"},{"id":"tmux.ServerHookValues.AfterRenameSession","name":"AfterRenameSession","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterRenameSession() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterRenameSession returns materialized \"after-rename-session\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3390,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterRenameSession","product":"core","slug":"tmux-serverhookvalues-afterrenamesession"},{"id":"tmux.ServerHookValues.AfterRenameWindow","name":"AfterRenameWindow","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterRenameWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterRenameWindow returns materialized \"after-rename-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3397,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterRenameWindow","product":"core","slug":"tmux-serverhookvalues-afterrenamewindow"},{"id":"tmux.ServerHookValues.AfterResizePane","name":"AfterResizePane","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterResizePane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterResizePane returns materialized \"after-resize-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3404,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterResizePane","product":"core","slug":"tmux-serverhookvalues-afterresizepane"},{"id":"tmux.ServerHookValues.AfterResizeWindow","name":"AfterResizeWindow","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterResizeWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterResizeWindow returns materialized \"after-resize-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3411,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterResizeWindow","product":"core","slug":"tmux-serverhookvalues-afterresizewindow"},{"id":"tmux.ServerHookValues.AfterSaveBuffer","name":"AfterSaveBuffer","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSaveBuffer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSaveBuffer returns materialized \"after-save-buffer\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3418,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSaveBuffer","product":"core","slug":"tmux-serverhookvalues-aftersavebuffer"},{"id":"tmux.ServerHookValues.AfterSelectLayout","name":"AfterSelectLayout","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSelectLayout() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSelectLayout returns materialized \"after-select-layout\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3425,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSelectLayout","product":"core","slug":"tmux-serverhookvalues-afterselectlayout"},{"id":"tmux.ServerHookValues.AfterSelectPane","name":"AfterSelectPane","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSelectPane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSelectPane returns materialized \"after-select-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3432,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSelectPane","product":"core","slug":"tmux-serverhookvalues-afterselectpane"},{"id":"tmux.ServerHookValues.AfterSelectWindow","name":"AfterSelectWindow","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSelectWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSelectWindow returns materialized \"after-select-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3439,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSelectWindow","product":"core","slug":"tmux-serverhookvalues-afterselectwindow"},{"id":"tmux.ServerHookValues.AfterSendKeys","name":"AfterSendKeys","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSendKeys() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSendKeys returns materialized \"after-send-keys\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3446,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSendKeys","product":"core","slug":"tmux-serverhookvalues-aftersendkeys"},{"id":"tmux.ServerHookValues.AfterSetBuffer","name":"AfterSetBuffer","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSetBuffer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSetBuffer returns materialized \"after-set-buffer\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3451,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSetBuffer","product":"core","slug":"tmux-serverhookvalues-aftersetbuffer"},{"id":"tmux.ServerHookValues.AfterSetEnvironment","name":"AfterSetEnvironment","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSetEnvironment() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSetEnvironment returns materialized \"after-set-environment\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3456,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSetEnvironment","product":"core","slug":"tmux-serverhookvalues-aftersetenvironment"},{"id":"tmux.ServerHookValues.AfterSetHook","name":"AfterSetHook","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSetHook() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSetHook returns materialized \"after-set-hook\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3463,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSetHook","product":"core","slug":"tmux-serverhookvalues-aftersethook"},{"id":"tmux.ServerHookValues.AfterSetOption","name":"AfterSetOption","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSetOption() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSetOption returns materialized \"after-set-option\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3468,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSetOption","product":"core","slug":"tmux-serverhookvalues-aftersetoption"},{"id":"tmux.ServerHookValues.AfterShowEnvironment","name":"AfterShowEnvironment","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterShowEnvironment() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterShowEnvironment returns materialized \"after-show-environment\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3473,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterShowEnvironment","product":"core","slug":"tmux-serverhookvalues-aftershowenvironment"},{"id":"tmux.ServerHookValues.AfterShowMessages","name":"AfterShowMessages","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterShowMessages() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterShowMessages returns materialized \"after-show-messages\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3480,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterShowMessages","product":"core","slug":"tmux-serverhookvalues-aftershowmessages"},{"id":"tmux.ServerHookValues.AfterShowOptions","name":"AfterShowOptions","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterShowOptions() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterShowOptions returns materialized \"after-show-options\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3487,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterShowOptions","product":"core","slug":"tmux-serverhookvalues-aftershowoptions"},{"id":"tmux.ServerHookValues.AfterSplitWindow","name":"AfterSplitWindow","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSplitWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSplitWindow returns materialized \"after-split-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3494,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSplitWindow","product":"core","slug":"tmux-serverhookvalues-aftersplitwindow"},{"id":"tmux.ServerHookValues.AfterUnbindKey","name":"AfterUnbindKey","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterUnbindKey() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterUnbindKey returns materialized \"after-unbind-key\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3501,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterUnbindKey","product":"core","slug":"tmux-serverhookvalues-afterunbindkey"},{"id":"tmux.ServerHookValues.AlertActivity","name":"AlertActivity","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AlertActivity() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AlertActivity returns materialized \"alert-activity\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3506,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AlertActivity","product":"core","slug":"tmux-serverhookvalues-alertactivity"},{"id":"tmux.ServerHookValues.AlertBell","name":"AlertBell","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AlertBell() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AlertBell returns materialized \"alert-bell\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3511,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AlertBell","product":"core","slug":"tmux-serverhookvalues-alertbell"},{"id":"tmux.ServerHookValues.AlertSilence","name":"AlertSilence","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AlertSilence() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AlertSilence returns materialized \"alert-silence\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3516,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AlertSilence","product":"core","slug":"tmux-serverhookvalues-alertsilence"},{"id":"tmux.ServerHookValues.ClientActive","name":"ClientActive","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) ClientActive() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientActive returns materialized \"client-active\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3521,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.ClientActive","product":"core","slug":"tmux-serverhookvalues-clientactive"},{"id":"tmux.ServerHookValues.ClientAttached","name":"ClientAttached","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) ClientAttached() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientAttached returns materialized \"client-attached\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3526,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.ClientAttached","product":"core","slug":"tmux-serverhookvalues-clientattached"},{"id":"tmux.ServerHookValues.ClientDarkTheme","name":"ClientDarkTheme","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) ClientDarkTheme() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientDarkTheme returns materialized \"client-dark-theme\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.6. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3531,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.ClientDarkTheme","product":"core","slug":"tmux-serverhookvalues-clientdarktheme"},{"id":"tmux.ServerHookValues.ClientDetached","name":"ClientDetached","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) ClientDetached() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientDetached returns materialized \"client-detached\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3538,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.ClientDetached","product":"core","slug":"tmux-serverhookvalues-clientdetached"},{"id":"tmux.ServerHookValues.ClientFocusIn","name":"ClientFocusIn","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) ClientFocusIn() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientFocusIn returns materialized \"client-focus-in\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3543,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.ClientFocusIn","product":"core","slug":"tmux-serverhookvalues-clientfocusin"},{"id":"tmux.ServerHookValues.ClientFocusOut","name":"ClientFocusOut","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) ClientFocusOut() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientFocusOut returns materialized \"client-focus-out\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3548,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.ClientFocusOut","product":"core","slug":"tmux-serverhookvalues-clientfocusout"},{"id":"tmux.ServerHookValues.ClientLightTheme","name":"ClientLightTheme","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) ClientLightTheme() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientLightTheme returns materialized \"client-light-theme\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.6. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3553,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.ClientLightTheme","product":"core","slug":"tmux-serverhookvalues-clientlighttheme"},{"id":"tmux.ServerHookValues.ClientResized","name":"ClientResized","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) ClientResized() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientResized returns materialized \"client-resized\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3560,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.ClientResized","product":"core","slug":"tmux-serverhookvalues-clientresized"},{"id":"tmux.ServerHookValues.ClientSessionChanged","name":"ClientSessionChanged","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) ClientSessionChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientSessionChanged returns materialized \"client-session-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3565,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.ClientSessionChanged","product":"core","slug":"tmux-serverhookvalues-clientsessionchanged"},{"id":"tmux.ServerHookValues.CommandError","name":"CommandError","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) CommandError() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"CommandError returns materialized \"command-error\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.5. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3572,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.CommandError","product":"core","slug":"tmux-serverhookvalues-commanderror"},{"id":"tmux.ServerHookValues.SessionClosed","name":"SessionClosed","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) SessionClosed() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"SessionClosed returns materialized \"session-closed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3577,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.SessionClosed","product":"core","slug":"tmux-serverhookvalues-sessionclosed"},{"id":"tmux.ServerHookValues.SessionCreated","name":"SessionCreated","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) SessionCreated() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"SessionCreated returns materialized \"session-created\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3582,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.SessionCreated","product":"core","slug":"tmux-serverhookvalues-sessioncreated"},{"id":"tmux.ServerHookValues.SessionRenamed","name":"SessionRenamed","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) SessionRenamed() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"SessionRenamed returns materialized \"session-renamed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3587,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.SessionRenamed","product":"core","slug":"tmux-serverhookvalues-sessionrenamed"},{"id":"tmux.ServerHookValues.SessionWindowChanged","name":"SessionWindowChanged","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) SessionWindowChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"SessionWindowChanged returns materialized \"session-window-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3592,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.SessionWindowChanged","product":"core","slug":"tmux-serverhookvalues-sessionwindowchanged"},{"id":"tmux.ServerHookValues.WindowLinked","name":"WindowLinked","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) WindowLinked() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowLinked returns materialized \"window-linked\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3599,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.WindowLinked","product":"core","slug":"tmux-serverhookvalues-windowlinked"},{"id":"tmux.ServerHookValues.WindowUnlinked","name":"WindowUnlinked","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) WindowUnlinked() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowUnlinked returns materialized \"window-unlinked\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3604,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.WindowUnlinked","product":"core","slug":"tmux-serverhookvalues-windowunlinked"},{"id":"tmux.SessionHookValues","name":"SessionHookValues","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SessionHookValues is an immutable materialized view of known session hook values; its zero value is empty and it does not refresh. Obtain it with [Session.Hooks]. [OptionValue.Get] reports presence and [OptionValue.Origin] reports inheritance. Use [Session.RawHook] for caller-named or undecoded values."},"source":{"file":"tmux/option_generated.go","line":3732,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues","product":"core","slug":"tmux-sessionhookvalues"},{"id":"tmux.SessionHookValues.AfterBindKey","name":"AfterBindKey","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterBindKey() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterBindKey returns materialized \"after-bind-key\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3795,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterBindKey","product":"core","slug":"tmux-sessionhookvalues-afterbindkey"},{"id":"tmux.SessionHookValues.AfterCapturePane","name":"AfterCapturePane","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterCapturePane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterCapturePane returns materialized \"after-capture-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3800,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterCapturePane","product":"core","slug":"tmux-sessionhookvalues-aftercapturepane"},{"id":"tmux.SessionHookValues.AfterCopyMode","name":"AfterCopyMode","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterCopyMode() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterCopyMode returns materialized \"after-copy-mode\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3807,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterCopyMode","product":"core","slug":"tmux-sessionhookvalues-aftercopymode"},{"id":"tmux.SessionHookValues.AfterDisplayMessage","name":"AfterDisplayMessage","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterDisplayMessage() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterDisplayMessage returns materialized \"after-display-message\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3812,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterDisplayMessage","product":"core","slug":"tmux-sessionhookvalues-afterdisplaymessage"},{"id":"tmux.SessionHookValues.AfterDisplayPanes","name":"AfterDisplayPanes","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterDisplayPanes() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterDisplayPanes returns materialized \"after-display-panes\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3819,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterDisplayPanes","product":"core","slug":"tmux-sessionhookvalues-afterdisplaypanes"},{"id":"tmux.SessionHookValues.AfterKillPane","name":"AfterKillPane","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterKillPane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterKillPane returns materialized \"after-kill-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3826,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterKillPane","product":"core","slug":"tmux-sessionhookvalues-afterkillpane"},{"id":"tmux.SessionHookValues.AfterListBuffers","name":"AfterListBuffers","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterListBuffers() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListBuffers returns materialized \"after-list-buffers\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3831,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterListBuffers","product":"core","slug":"tmux-sessionhookvalues-afterlistbuffers"},{"id":"tmux.SessionHookValues.AfterListClients","name":"AfterListClients","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterListClients() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListClients returns materialized \"after-list-clients\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3838,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterListClients","product":"core","slug":"tmux-sessionhookvalues-afterlistclients"},{"id":"tmux.SessionHookValues.AfterListKeys","name":"AfterListKeys","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterListKeys() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListKeys returns materialized \"after-list-keys\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3845,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterListKeys","product":"core","slug":"tmux-sessionhookvalues-afterlistkeys"},{"id":"tmux.SessionHookValues.AfterListPanes","name":"AfterListPanes","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterListPanes() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListPanes returns materialized \"after-list-panes\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3850,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterListPanes","product":"core","slug":"tmux-sessionhookvalues-afterlistpanes"},{"id":"tmux.SessionHookValues.AfterListSessions","name":"AfterListSessions","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterListSessions() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListSessions returns materialized \"after-list-sessions\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3855,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterListSessions","product":"core","slug":"tmux-sessionhookvalues-afterlistsessions"},{"id":"tmux.SessionHookValues.AfterListWindows","name":"AfterListWindows","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterListWindows() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListWindows returns materialized \"after-list-windows\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3862,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterListWindows","product":"core","slug":"tmux-sessionhookvalues-afterlistwindows"},{"id":"tmux.SessionHookValues.AfterLoadBuffer","name":"AfterLoadBuffer","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterLoadBuffer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterLoadBuffer returns materialized \"after-load-buffer\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3869,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterLoadBuffer","product":"core","slug":"tmux-sessionhookvalues-afterloadbuffer"},{"id":"tmux.SessionHookValues.AfterLockServer","name":"AfterLockServer","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterLockServer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterLockServer returns materialized \"after-lock-server\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3876,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterLockServer","product":"core","slug":"tmux-sessionhookvalues-afterlockserver"},{"id":"tmux.SessionHookValues.AfterNewSession","name":"AfterNewSession","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterNewSession() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterNewSession returns materialized \"after-new-session\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3883,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterNewSession","product":"core","slug":"tmux-sessionhookvalues-afternewsession"},{"id":"tmux.SessionHookValues.AfterNewWindow","name":"AfterNewWindow","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterNewWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterNewWindow returns materialized \"after-new-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3890,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterNewWindow","product":"core","slug":"tmux-sessionhookvalues-afternewwindow"},{"id":"tmux.SessionHookValues.AfterPasteBuffer","name":"AfterPasteBuffer","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterPasteBuffer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterPasteBuffer returns materialized \"after-paste-buffer\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3895,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterPasteBuffer","product":"core","slug":"tmux-sessionhookvalues-afterpastebuffer"},{"id":"tmux.SessionHookValues.AfterPipePane","name":"AfterPipePane","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterPipePane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterPipePane returns materialized \"after-pipe-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3902,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterPipePane","product":"core","slug":"tmux-sessionhookvalues-afterpipepane"},{"id":"tmux.SessionHookValues.AfterQueue","name":"AfterQueue","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterQueue() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterQueue returns materialized \"after-queue\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3907,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterQueue","product":"core","slug":"tmux-sessionhookvalues-afterqueue"},{"id":"tmux.SessionHookValues.AfterRefreshClient","name":"AfterRefreshClient","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterRefreshClient() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterRefreshClient returns materialized \"after-refresh-client\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3912,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterRefreshClient","product":"core","slug":"tmux-sessionhookvalues-afterrefreshclient"},{"id":"tmux.SessionHookValues.AfterRenameSession","name":"AfterRenameSession","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterRenameSession() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterRenameSession returns materialized \"after-rename-session\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3919,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterRenameSession","product":"core","slug":"tmux-sessionhookvalues-afterrenamesession"},{"id":"tmux.SessionHookValues.AfterRenameWindow","name":"AfterRenameWindow","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterRenameWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterRenameWindow returns materialized \"after-rename-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3926,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterRenameWindow","product":"core","slug":"tmux-sessionhookvalues-afterrenamewindow"},{"id":"tmux.SessionHookValues.AfterResizePane","name":"AfterResizePane","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterResizePane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterResizePane returns materialized \"after-resize-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3933,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterResizePane","product":"core","slug":"tmux-sessionhookvalues-afterresizepane"},{"id":"tmux.SessionHookValues.AfterResizeWindow","name":"AfterResizeWindow","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterResizeWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterResizeWindow returns materialized \"after-resize-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3940,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterResizeWindow","product":"core","slug":"tmux-sessionhookvalues-afterresizewindow"},{"id":"tmux.SessionHookValues.AfterSaveBuffer","name":"AfterSaveBuffer","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSaveBuffer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSaveBuffer returns materialized \"after-save-buffer\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3947,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSaveBuffer","product":"core","slug":"tmux-sessionhookvalues-aftersavebuffer"},{"id":"tmux.SessionHookValues.AfterSelectLayout","name":"AfterSelectLayout","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSelectLayout() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSelectLayout returns materialized \"after-select-layout\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3954,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSelectLayout","product":"core","slug":"tmux-sessionhookvalues-afterselectlayout"},{"id":"tmux.SessionHookValues.AfterSelectPane","name":"AfterSelectPane","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSelectPane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSelectPane returns materialized \"after-select-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3961,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSelectPane","product":"core","slug":"tmux-sessionhookvalues-afterselectpane"},{"id":"tmux.SessionHookValues.AfterSelectWindow","name":"AfterSelectWindow","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSelectWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSelectWindow returns materialized \"after-select-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3968,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSelectWindow","product":"core","slug":"tmux-sessionhookvalues-afterselectwindow"},{"id":"tmux.SessionHookValues.AfterSendKeys","name":"AfterSendKeys","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSendKeys() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSendKeys returns materialized \"after-send-keys\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3975,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSendKeys","product":"core","slug":"tmux-sessionhookvalues-aftersendkeys"},{"id":"tmux.SessionHookValues.AfterSetBuffer","name":"AfterSetBuffer","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSetBuffer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSetBuffer returns materialized \"after-set-buffer\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3980,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSetBuffer","product":"core","slug":"tmux-sessionhookvalues-aftersetbuffer"},{"id":"tmux.SessionHookValues.AfterSetEnvironment","name":"AfterSetEnvironment","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSetEnvironment() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSetEnvironment returns materialized \"after-set-environment\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3985,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSetEnvironment","product":"core","slug":"tmux-sessionhookvalues-aftersetenvironment"},{"id":"tmux.SessionHookValues.AfterSetHook","name":"AfterSetHook","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSetHook() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSetHook returns materialized \"after-set-hook\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3992,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSetHook","product":"core","slug":"tmux-sessionhookvalues-aftersethook"},{"id":"tmux.SessionHookValues.AfterSetOption","name":"AfterSetOption","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSetOption() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSetOption returns materialized \"after-set-option\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3997,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSetOption","product":"core","slug":"tmux-sessionhookvalues-aftersetoption"},{"id":"tmux.SessionHookValues.AfterShowEnvironment","name":"AfterShowEnvironment","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterShowEnvironment() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterShowEnvironment returns materialized \"after-show-environment\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4002,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterShowEnvironment","product":"core","slug":"tmux-sessionhookvalues-aftershowenvironment"},{"id":"tmux.SessionHookValues.AfterShowMessages","name":"AfterShowMessages","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterShowMessages() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterShowMessages returns materialized \"after-show-messages\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4009,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterShowMessages","product":"core","slug":"tmux-sessionhookvalues-aftershowmessages"},{"id":"tmux.SessionHookValues.AfterShowOptions","name":"AfterShowOptions","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterShowOptions() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterShowOptions returns materialized \"after-show-options\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4016,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterShowOptions","product":"core","slug":"tmux-sessionhookvalues-aftershowoptions"},{"id":"tmux.SessionHookValues.AfterSplitWindow","name":"AfterSplitWindow","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSplitWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSplitWindow returns materialized \"after-split-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4023,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSplitWindow","product":"core","slug":"tmux-sessionhookvalues-aftersplitwindow"},{"id":"tmux.SessionHookValues.AfterUnbindKey","name":"AfterUnbindKey","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterUnbindKey() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterUnbindKey returns materialized \"after-unbind-key\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4030,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterUnbindKey","product":"core","slug":"tmux-sessionhookvalues-afterunbindkey"},{"id":"tmux.SessionHookValues.AlertActivity","name":"AlertActivity","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AlertActivity() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AlertActivity returns materialized \"alert-activity\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4035,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AlertActivity","product":"core","slug":"tmux-sessionhookvalues-alertactivity"},{"id":"tmux.SessionHookValues.AlertBell","name":"AlertBell","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AlertBell() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AlertBell returns materialized \"alert-bell\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4040,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AlertBell","product":"core","slug":"tmux-sessionhookvalues-alertbell"},{"id":"tmux.SessionHookValues.AlertSilence","name":"AlertSilence","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AlertSilence() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AlertSilence returns materialized \"alert-silence\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4045,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AlertSilence","product":"core","slug":"tmux-sessionhookvalues-alertsilence"},{"id":"tmux.SessionHookValues.ClientActive","name":"ClientActive","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) ClientActive() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientActive returns materialized \"client-active\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4050,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.ClientActive","product":"core","slug":"tmux-sessionhookvalues-clientactive"},{"id":"tmux.SessionHookValues.ClientAttached","name":"ClientAttached","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) ClientAttached() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientAttached returns materialized \"client-attached\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4055,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.ClientAttached","product":"core","slug":"tmux-sessionhookvalues-clientattached"},{"id":"tmux.SessionHookValues.ClientDarkTheme","name":"ClientDarkTheme","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) ClientDarkTheme() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientDarkTheme returns materialized \"client-dark-theme\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.6. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4060,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.ClientDarkTheme","product":"core","slug":"tmux-sessionhookvalues-clientdarktheme"},{"id":"tmux.SessionHookValues.ClientDetached","name":"ClientDetached","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) ClientDetached() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientDetached returns materialized \"client-detached\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4067,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.ClientDetached","product":"core","slug":"tmux-sessionhookvalues-clientdetached"},{"id":"tmux.SessionHookValues.ClientFocusIn","name":"ClientFocusIn","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) ClientFocusIn() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientFocusIn returns materialized \"client-focus-in\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4072,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.ClientFocusIn","product":"core","slug":"tmux-sessionhookvalues-clientfocusin"},{"id":"tmux.SessionHookValues.ClientFocusOut","name":"ClientFocusOut","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) ClientFocusOut() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientFocusOut returns materialized \"client-focus-out\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4077,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.ClientFocusOut","product":"core","slug":"tmux-sessionhookvalues-clientfocusout"},{"id":"tmux.SessionHookValues.ClientLightTheme","name":"ClientLightTheme","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) ClientLightTheme() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientLightTheme returns materialized \"client-light-theme\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.6. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4082,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.ClientLightTheme","product":"core","slug":"tmux-sessionhookvalues-clientlighttheme"},{"id":"tmux.SessionHookValues.ClientResized","name":"ClientResized","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) ClientResized() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientResized returns materialized \"client-resized\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4089,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.ClientResized","product":"core","slug":"tmux-sessionhookvalues-clientresized"},{"id":"tmux.SessionHookValues.ClientSessionChanged","name":"ClientSessionChanged","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) ClientSessionChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientSessionChanged returns materialized \"client-session-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4094,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.ClientSessionChanged","product":"core","slug":"tmux-sessionhookvalues-clientsessionchanged"},{"id":"tmux.SessionHookValues.CommandError","name":"CommandError","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) CommandError() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"CommandError returns materialized \"command-error\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.5. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4101,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.CommandError","product":"core","slug":"tmux-sessionhookvalues-commanderror"},{"id":"tmux.SessionHookValues.SessionClosed","name":"SessionClosed","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) SessionClosed() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"SessionClosed returns materialized \"session-closed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.SessionClosed","product":"core","slug":"tmux-sessionhookvalues-sessionclosed"},{"id":"tmux.SessionHookValues.SessionCreated","name":"SessionCreated","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) SessionCreated() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"SessionCreated returns materialized \"session-created\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.SessionCreated","product":"core","slug":"tmux-sessionhookvalues-sessioncreated"},{"id":"tmux.SessionHookValues.SessionRenamed","name":"SessionRenamed","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) SessionRenamed() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"SessionRenamed returns materialized \"session-renamed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4116,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.SessionRenamed","product":"core","slug":"tmux-sessionhookvalues-sessionrenamed"},{"id":"tmux.SessionHookValues.SessionWindowChanged","name":"SessionWindowChanged","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) SessionWindowChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"SessionWindowChanged returns materialized \"session-window-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4121,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.SessionWindowChanged","product":"core","slug":"tmux-sessionhookvalues-sessionwindowchanged"},{"id":"tmux.SessionHookValues.WindowLinked","name":"WindowLinked","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) WindowLinked() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowLinked returns materialized \"window-linked\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4128,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.WindowLinked","product":"core","slug":"tmux-sessionhookvalues-windowlinked"},{"id":"tmux.SessionHookValues.WindowUnlinked","name":"WindowUnlinked","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) WindowUnlinked() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowUnlinked returns materialized \"window-unlinked\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4133,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.WindowUnlinked","product":"core","slug":"tmux-sessionhookvalues-windowunlinked"},{"id":"tmux.WindowHookValues","name":"WindowHookValues","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WindowHookValues is an immutable materialized view of known window hook values; its zero value is empty and it does not refresh. Obtain it with [Window.Hooks] or [GlobalWindowScope.Hooks]. [OptionValue.Get] reports presence and [OptionValue.Origin] reports inheritance. Use [Window.RawHook] or [GlobalWindowScope.RawHook] for caller-named or undecoded values."},"source":{"file":"tmux/option_generated.go","line":4261,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues","product":"core","slug":"tmux-windowhookvalues"},{"id":"tmux.WindowHookValues.PaneDied","name":"PaneDied","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) PaneDied() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneDied returns materialized \"pane-died\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4280,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.PaneDied","product":"core","slug":"tmux-windowhookvalues-panedied"},{"id":"tmux.WindowHookValues.PaneExited","name":"PaneExited","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) PaneExited() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneExited returns materialized \"pane-exited\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4285,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.PaneExited","product":"core","slug":"tmux-windowhookvalues-paneexited"},{"id":"tmux.WindowHookValues.PaneFocusIn","name":"PaneFocusIn","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) PaneFocusIn() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneFocusIn returns materialized \"pane-focus-in\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4290,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.PaneFocusIn","product":"core","slug":"tmux-windowhookvalues-panefocusin"},{"id":"tmux.WindowHookValues.PaneFocusOut","name":"PaneFocusOut","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) PaneFocusOut() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneFocusOut returns materialized \"pane-focus-out\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4295,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.PaneFocusOut","product":"core","slug":"tmux-windowhookvalues-panefocusout"},{"id":"tmux.WindowHookValues.PaneModeChanged","name":"PaneModeChanged","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) PaneModeChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneModeChanged returns materialized \"pane-mode-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4300,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.PaneModeChanged","product":"core","slug":"tmux-windowhookvalues-panemodechanged"},{"id":"tmux.WindowHookValues.PaneSetClipboard","name":"PaneSetClipboard","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) PaneSetClipboard() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneSetClipboard returns materialized \"pane-set-clipboard\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4307,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.PaneSetClipboard","product":"core","slug":"tmux-windowhookvalues-panesetclipboard"},{"id":"tmux.WindowHookValues.PaneTitleChanged","name":"PaneTitleChanged","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) PaneTitleChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneTitleChanged returns materialized \"pane-title-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4314,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.PaneTitleChanged","product":"core","slug":"tmux-windowhookvalues-panetitlechanged"},{"id":"tmux.WindowHookValues.WindowLayoutChanged","name":"WindowLayoutChanged","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) WindowLayoutChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowLayoutChanged returns materialized \"window-layout-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4321,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.WindowLayoutChanged","product":"core","slug":"tmux-windowhookvalues-windowlayoutchanged"},{"id":"tmux.WindowHookValues.WindowLinked","name":"WindowLinked","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) WindowLinked() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowLinked returns materialized \"window-linked\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4328,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.WindowLinked","product":"core","slug":"tmux-windowhookvalues-windowlinked"},{"id":"tmux.WindowHookValues.WindowPaneChanged","name":"WindowPaneChanged","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) WindowPaneChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowPaneChanged returns materialized \"window-pane-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4333,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.WindowPaneChanged","product":"core","slug":"tmux-windowhookvalues-windowpanechanged"},{"id":"tmux.WindowHookValues.WindowRenamed","name":"WindowRenamed","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) WindowRenamed() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowRenamed returns materialized \"window-renamed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4340,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.WindowRenamed","product":"core","slug":"tmux-windowhookvalues-windowrenamed"},{"id":"tmux.WindowHookValues.WindowResized","name":"WindowResized","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) WindowResized() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowResized returns materialized \"window-resized\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4345,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.WindowResized","product":"core","slug":"tmux-windowhookvalues-windowresized"},{"id":"tmux.WindowHookValues.WindowUnlinked","name":"WindowUnlinked","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) WindowUnlinked() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowUnlinked returns materialized \"window-unlinked\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4350,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.WindowUnlinked","product":"core","slug":"tmux-windowhookvalues-windowunlinked"},{"id":"tmux.PaneHookValues","name":"PaneHookValues","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneHookValues is an immutable materialized view of known pane hook values; its zero value is empty and it does not refresh. Obtain it with [Pane.Hooks]. [OptionValue.Get] reports presence and [OptionValue.Origin] reports inheritance. Use [Pane.RawHook] for caller-named or undecoded values."},"source":{"file":"tmux/option_generated.go","line":4390,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneHookValues","product":"core","slug":"tmux-panehookvalues"},{"id":"tmux.PaneHookValues.PaneDied","name":"PaneDied","kind":"method","modifiers":[],"parent":"tmux.PaneHookValues","signatures":[{"raw":"func (v PaneHookValues) PaneDied() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"PaneHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneDied returns materialized \"pane-died\" as [OptionValue] with value type OptionValue[SparseArray[string]] from pane hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4403,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneHookValues.PaneDied","product":"core","slug":"tmux-panehookvalues-panedied"},{"id":"tmux.PaneHookValues.PaneExited","name":"PaneExited","kind":"method","modifiers":[],"parent":"tmux.PaneHookValues","signatures":[{"raw":"func (v PaneHookValues) PaneExited() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"PaneHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneExited returns materialized \"pane-exited\" as [OptionValue] with value type OptionValue[SparseArray[string]] from pane hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4408,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneHookValues.PaneExited","product":"core","slug":"tmux-panehookvalues-paneexited"},{"id":"tmux.PaneHookValues.PaneFocusIn","name":"PaneFocusIn","kind":"method","modifiers":[],"parent":"tmux.PaneHookValues","signatures":[{"raw":"func (v PaneHookValues) PaneFocusIn() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"PaneHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneFocusIn returns materialized \"pane-focus-in\" as [OptionValue] with value type OptionValue[SparseArray[string]] from pane hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4413,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneHookValues.PaneFocusIn","product":"core","slug":"tmux-panehookvalues-panefocusin"},{"id":"tmux.PaneHookValues.PaneFocusOut","name":"PaneFocusOut","kind":"method","modifiers":[],"parent":"tmux.PaneHookValues","signatures":[{"raw":"func (v PaneHookValues) PaneFocusOut() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"PaneHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneFocusOut returns materialized \"pane-focus-out\" as [OptionValue] with value type OptionValue[SparseArray[string]] from pane hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4418,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneHookValues.PaneFocusOut","product":"core","slug":"tmux-panehookvalues-panefocusout"},{"id":"tmux.PaneHookValues.PaneModeChanged","name":"PaneModeChanged","kind":"method","modifiers":[],"parent":"tmux.PaneHookValues","signatures":[{"raw":"func (v PaneHookValues) PaneModeChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"PaneHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneModeChanged returns materialized \"pane-mode-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from pane hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4423,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneHookValues.PaneModeChanged","product":"core","slug":"tmux-panehookvalues-panemodechanged"},{"id":"tmux.PaneHookValues.PaneSetClipboard","name":"PaneSetClipboard","kind":"method","modifiers":[],"parent":"tmux.PaneHookValues","signatures":[{"raw":"func (v PaneHookValues) PaneSetClipboard() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"PaneHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneSetClipboard returns materialized \"pane-set-clipboard\" as [OptionValue] with value type OptionValue[SparseArray[string]] from pane hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4428,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneHookValues.PaneSetClipboard","product":"core","slug":"tmux-panehookvalues-panesetclipboard"},{"id":"tmux.PaneHookValues.PaneTitleChanged","name":"PaneTitleChanged","kind":"method","modifiers":[],"parent":"tmux.PaneHookValues","signatures":[{"raw":"func (v PaneHookValues) PaneTitleChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"PaneHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneTitleChanged returns materialized \"pane-title-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from pane hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4435,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneHookValues.PaneTitleChanged","product":"core","slug":"tmux-panehookvalues-panetitlechanged"},{"id":"tmux.Session.SetActivityAction","name":"SetActivityAction","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetActivityAction(ctx context.Context, value ActivityAction) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"ActivityAction"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetActivityAction stores the \"activity-action\" session option as ActivityAction (tmux 3.2a or later). Read it with [SessionOptionValues.ActivityAction] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4464,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetActivityAction","product":"core","slug":"tmux-session-setactivityaction"},{"id":"tmux.GlobalSessionScope.SetActivityAction","name":"SetActivityAction","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetActivityAction(ctx context.Context, value ActivityAction) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"ActivityAction"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetActivityAction stores the \"activity-action\" session option as ActivityAction (tmux 3.2a or later). Read it with [SessionOptionValues.ActivityAction] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4474,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetActivityAction","product":"core","slug":"tmux-globalsessionscope-setactivityaction"},{"id":"tmux.Window.SetAggressiveResize","name":"SetAggressiveResize","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetAggressiveResize(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetAggressiveResize stores the \"aggressive-resize\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.AggressiveResize] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4482,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetAggressiveResize","product":"core","slug":"tmux-window-setaggressiveresize"},{"id":"tmux.GlobalWindowScope.SetAggressiveResize","name":"SetAggressiveResize","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetAggressiveResize(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetAggressiveResize stores the \"aggressive-resize\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.AggressiveResize] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4492,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetAggressiveResize","product":"core","slug":"tmux-globalwindowscope-setaggressiveresize"},{"id":"tmux.Window.SetAllowPassthrough","name":"SetAllowPassthrough","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetAllowPassthrough(ctx context.Context, value AllowPassthrough) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"AllowPassthrough"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetAllowPassthrough stores the \"allow-passthrough\" window option as AllowPassthrough (tmux 3.3 or later). Read it with [WindowOptionValues.AllowPassthrough] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4500,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetAllowPassthrough","product":"core","slug":"tmux-window-setallowpassthrough"},{"id":"tmux.GlobalWindowScope.SetAllowPassthrough","name":"SetAllowPassthrough","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetAllowPassthrough(ctx context.Context, value AllowPassthrough) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"AllowPassthrough"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetAllowPassthrough stores the \"allow-passthrough\" window option as AllowPassthrough (tmux 3.3 or later). Read it with [WindowOptionValues.AllowPassthrough] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4510,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetAllowPassthrough","product":"core","slug":"tmux-globalwindowscope-setallowpassthrough"},{"id":"tmux.Pane.SetAllowPassthrough","name":"SetAllowPassthrough","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetAllowPassthrough(ctx context.Context, value AllowPassthrough) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"AllowPassthrough"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetAllowPassthrough stores the \"allow-passthrough\" pane option as AllowPassthrough (tmux 3.3 or later). Read it with [PaneOptionValues.AllowPassthrough] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4518,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetAllowPassthrough","product":"core","slug":"tmux-pane-setallowpassthrough"},{"id":"tmux.Window.SetAllowRename","name":"SetAllowRename","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetAllowRename(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetAllowRename stores the \"allow-rename\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.AllowRename] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4528,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetAllowRename","product":"core","slug":"tmux-window-setallowrename"},{"id":"tmux.GlobalWindowScope.SetAllowRename","name":"SetAllowRename","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetAllowRename(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetAllowRename stores the \"allow-rename\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.AllowRename] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4538,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetAllowRename","product":"core","slug":"tmux-globalwindowscope-setallowrename"},{"id":"tmux.Pane.SetAllowRename","name":"SetAllowRename","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetAllowRename(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetAllowRename stores the \"allow-rename\" pane option as bool (tmux 3.2a or later). Read it with [PaneOptionValues.AllowRename] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4546,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetAllowRename","product":"core","slug":"tmux-pane-setallowrename"},{"id":"tmux.Window.SetAllowSetTitle","name":"SetAllowSetTitle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetAllowSetTitle(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetAllowSetTitle stores the \"allow-set-title\" window option as bool (tmux 3.5 or later). Read it with [WindowOptionValues.AllowSetTitle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4556,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetAllowSetTitle","product":"core","slug":"tmux-window-setallowsettitle"},{"id":"tmux.GlobalWindowScope.SetAllowSetTitle","name":"SetAllowSetTitle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetAllowSetTitle(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetAllowSetTitle stores the \"allow-set-title\" window option as bool (tmux 3.5 or later). Read it with [WindowOptionValues.AllowSetTitle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4566,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetAllowSetTitle","product":"core","slug":"tmux-globalwindowscope-setallowsettitle"},{"id":"tmux.Pane.SetAllowSetTitle","name":"SetAllowSetTitle","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetAllowSetTitle(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetAllowSetTitle stores the \"allow-set-title\" pane option as bool (tmux 3.5 or later). Read it with [PaneOptionValues.AllowSetTitle] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4574,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetAllowSetTitle","product":"core","slug":"tmux-pane-setallowsettitle"},{"id":"tmux.Window.SetAlternateScreen","name":"SetAlternateScreen","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetAlternateScreen(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetAlternateScreen stores the \"alternate-screen\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.AlternateScreen] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4584,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetAlternateScreen","product":"core","slug":"tmux-window-setalternatescreen"},{"id":"tmux.GlobalWindowScope.SetAlternateScreen","name":"SetAlternateScreen","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetAlternateScreen(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetAlternateScreen stores the \"alternate-screen\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.AlternateScreen] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4594,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetAlternateScreen","product":"core","slug":"tmux-globalwindowscope-setalternatescreen"},{"id":"tmux.Pane.SetAlternateScreen","name":"SetAlternateScreen","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetAlternateScreen(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetAlternateScreen stores the \"alternate-screen\" pane option as bool (tmux 3.2a or later). Read it with [PaneOptionValues.AlternateScreen] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4602,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetAlternateScreen","product":"core","slug":"tmux-pane-setalternatescreen"},{"id":"tmux.Session.SetAssumePasteTime","name":"SetAssumePasteTime","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetAssumePasteTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetAssumePasteTime stores the \"assume-paste-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.AssumePasteTime] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4612,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetAssumePasteTime","product":"core","slug":"tmux-session-setassumepastetime"},{"id":"tmux.GlobalSessionScope.SetAssumePasteTime","name":"SetAssumePasteTime","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetAssumePasteTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetAssumePasteTime stores the \"assume-paste-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.AssumePasteTime] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4626,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetAssumePasteTime","product":"core","slug":"tmux-globalsessionscope-setassumepastetime"},{"id":"tmux.Window.SetAutomaticRename","name":"SetAutomaticRename","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetAutomaticRename(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetAutomaticRename stores the \"automatic-rename\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.AutomaticRename] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4638,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetAutomaticRename","product":"core","slug":"tmux-window-setautomaticrename"},{"id":"tmux.GlobalWindowScope.SetAutomaticRename","name":"SetAutomaticRename","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetAutomaticRename(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetAutomaticRename stores the \"automatic-rename\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.AutomaticRename] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4648,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetAutomaticRename","product":"core","slug":"tmux-globalwindowscope-setautomaticrename"},{"id":"tmux.Window.SetAutomaticRenameFormat","name":"SetAutomaticRenameFormat","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetAutomaticRenameFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetAutomaticRenameFormat stores the \"automatic-rename-format\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.AutomaticRenameFormat] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4656,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetAutomaticRenameFormat","product":"core","slug":"tmux-window-setautomaticrenameformat"},{"id":"tmux.GlobalWindowScope.SetAutomaticRenameFormat","name":"SetAutomaticRenameFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetAutomaticRenameFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetAutomaticRenameFormat stores the \"automatic-rename-format\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.AutomaticRenameFormat] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4666,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetAutomaticRenameFormat","product":"core","slug":"tmux-globalwindowscope-setautomaticrenameformat"},{"id":"tmux.Server.SetBackspace","name":"SetBackspace","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetBackspace(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetBackspace stores the \"backspace\" server option as string (tmux 3.2a or later). Read it with [ServerOptionValues.Backspace] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4674,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetBackspace","product":"core","slug":"tmux-server-setbackspace"},{"id":"tmux.Session.SetBaseIndex","name":"SetBaseIndex","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetBaseIndex(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetBaseIndex stores the \"base-index\" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.BaseIndex] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4682,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetBaseIndex","product":"core","slug":"tmux-session-setbaseindex"},{"id":"tmux.GlobalSessionScope.SetBaseIndex","name":"SetBaseIndex","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetBaseIndex(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetBaseIndex stores the \"base-index\" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.BaseIndex] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4692,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetBaseIndex","product":"core","slug":"tmux-globalsessionscope-setbaseindex"},{"id":"tmux.Session.SetBellAction","name":"SetBellAction","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetBellAction(ctx context.Context, value BellAction) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"BellAction"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetBellAction stores the \"bell-action\" session option as BellAction (tmux 3.2a or later). Read it with [SessionOptionValues.BellAction] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4700,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetBellAction","product":"core","slug":"tmux-session-setbellaction"},{"id":"tmux.GlobalSessionScope.SetBellAction","name":"SetBellAction","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetBellAction(ctx context.Context, value BellAction) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"BellAction"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetBellAction stores the \"bell-action\" session option as BellAction (tmux 3.2a or later). Read it with [SessionOptionValues.BellAction] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4710,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetBellAction","product":"core","slug":"tmux-globalsessionscope-setbellaction"},{"id":"tmux.Server.SetBufferLimit","name":"SetBufferLimit","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetBufferLimit(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetBufferLimit stores the \"buffer-limit\" server option as int64 (tmux 3.2a or later). Read it with [ServerOptionValues.BufferLimit] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4718,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetBufferLimit","product":"core","slug":"tmux-server-setbufferlimit"},{"id":"tmux.Window.SetClockModeColour","name":"SetClockModeColour","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetClockModeColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetClockModeColour stores the \"clock-mode-colour\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.ClockModeColour] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4726,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetClockModeColour","product":"core","slug":"tmux-window-setclockmodecolour"},{"id":"tmux.GlobalWindowScope.SetClockModeColour","name":"SetClockModeColour","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetClockModeColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetClockModeColour stores the \"clock-mode-colour\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.ClockModeColour] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4736,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetClockModeColour","product":"core","slug":"tmux-globalwindowscope-setclockmodecolour"},{"id":"tmux.Window.SetClockModeStyle","name":"SetClockModeStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetClockModeStyle(ctx context.Context, value ClockModeStyle) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"ClockModeStyle"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetClockModeStyle stores the \"clock-mode-style\" window option as ClockModeStyle (tmux 3.2a or later). Read it with [WindowOptionValues.ClockModeStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4744,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetClockModeStyle","product":"core","slug":"tmux-window-setclockmodestyle"},{"id":"tmux.GlobalWindowScope.SetClockModeStyle","name":"SetClockModeStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetClockModeStyle(ctx context.Context, value ClockModeStyle) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"ClockModeStyle"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetClockModeStyle stores the \"clock-mode-style\" window option as ClockModeStyle (tmux 3.2a or later). Read it with [WindowOptionValues.ClockModeStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4754,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetClockModeStyle","product":"core","slug":"tmux-globalwindowscope-setclockmodestyle"},{"id":"tmux.Server.SetCopyCommand","name":"SetCopyCommand","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetCopyCommand(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetCopyCommand stores the \"copy-command\" server option as string (tmux 3.2a or later). Read it with [ServerOptionValues.CopyCommand] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4762,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetCopyCommand","product":"core","slug":"tmux-server-setcopycommand"},{"id":"tmux.Window.SetCopyModeCurrentLineNumberStyle","name":"SetCopyModeCurrentLineNumberStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCopyModeCurrentLineNumberStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCopyModeCurrentLineNumberStyle stores the \"copy-mode-current-line-number-style\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.CopyModeCurrentLineNumberStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4770,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCopyModeCurrentLineNumberStyle","product":"core","slug":"tmux-window-setcopymodecurrentlinenumberstyle"},{"id":"tmux.GlobalWindowScope.SetCopyModeCurrentLineNumberStyle","name":"SetCopyModeCurrentLineNumberStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCopyModeCurrentLineNumberStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCopyModeCurrentLineNumberStyle stores the \"copy-mode-current-line-number-style\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.CopyModeCurrentLineNumberStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4780,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCopyModeCurrentLineNumberStyle","product":"core","slug":"tmux-globalwindowscope-setcopymodecurrentlinenumberstyle"},{"id":"tmux.Window.SetCopyModeCurrentMatchStyle","name":"SetCopyModeCurrentMatchStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCopyModeCurrentMatchStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCopyModeCurrentMatchStyle stores the \"copy-mode-current-match-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.CopyModeCurrentMatchStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4788,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCopyModeCurrentMatchStyle","product":"core","slug":"tmux-window-setcopymodecurrentmatchstyle"},{"id":"tmux.GlobalWindowScope.SetCopyModeCurrentMatchStyle","name":"SetCopyModeCurrentMatchStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCopyModeCurrentMatchStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCopyModeCurrentMatchStyle stores the \"copy-mode-current-match-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.CopyModeCurrentMatchStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4798,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCopyModeCurrentMatchStyle","product":"core","slug":"tmux-globalwindowscope-setcopymodecurrentmatchstyle"},{"id":"tmux.Window.SetCopyModeLineNumberStyle","name":"SetCopyModeLineNumberStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCopyModeLineNumberStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCopyModeLineNumberStyle stores the \"copy-mode-line-number-style\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.CopyModeLineNumberStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4806,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCopyModeLineNumberStyle","product":"core","slug":"tmux-window-setcopymodelinenumberstyle"},{"id":"tmux.GlobalWindowScope.SetCopyModeLineNumberStyle","name":"SetCopyModeLineNumberStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCopyModeLineNumberStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCopyModeLineNumberStyle stores the \"copy-mode-line-number-style\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.CopyModeLineNumberStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4816,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCopyModeLineNumberStyle","product":"core","slug":"tmux-globalwindowscope-setcopymodelinenumberstyle"},{"id":"tmux.Window.SetCopyModeLineNumbers","name":"SetCopyModeLineNumbers","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCopyModeLineNumbers(ctx context.Context, value CopyModeLineNumbers) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"CopyModeLineNumbers"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCopyModeLineNumbers stores the \"copy-mode-line-numbers\" window option as CopyModeLineNumbers (tmux 3.7 or later). Read it with [WindowOptionValues.CopyModeLineNumbers] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4824,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCopyModeLineNumbers","product":"core","slug":"tmux-window-setcopymodelinenumbers"},{"id":"tmux.GlobalWindowScope.SetCopyModeLineNumbers","name":"SetCopyModeLineNumbers","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCopyModeLineNumbers(ctx context.Context, value CopyModeLineNumbers) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"CopyModeLineNumbers"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCopyModeLineNumbers stores the \"copy-mode-line-numbers\" window option as CopyModeLineNumbers (tmux 3.7 or later). Read it with [WindowOptionValues.CopyModeLineNumbers] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4834,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCopyModeLineNumbers","product":"core","slug":"tmux-globalwindowscope-setcopymodelinenumbers"},{"id":"tmux.Window.SetCopyModeMarkStyle","name":"SetCopyModeMarkStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCopyModeMarkStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCopyModeMarkStyle stores the \"copy-mode-mark-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.CopyModeMarkStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4842,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCopyModeMarkStyle","product":"core","slug":"tmux-window-setcopymodemarkstyle"},{"id":"tmux.GlobalWindowScope.SetCopyModeMarkStyle","name":"SetCopyModeMarkStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCopyModeMarkStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCopyModeMarkStyle stores the \"copy-mode-mark-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.CopyModeMarkStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4852,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCopyModeMarkStyle","product":"core","slug":"tmux-globalwindowscope-setcopymodemarkstyle"},{"id":"tmux.Window.SetCopyModeMatchStyle","name":"SetCopyModeMatchStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCopyModeMatchStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCopyModeMatchStyle stores the \"copy-mode-match-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.CopyModeMatchStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4860,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCopyModeMatchStyle","product":"core","slug":"tmux-window-setcopymodematchstyle"},{"id":"tmux.GlobalWindowScope.SetCopyModeMatchStyle","name":"SetCopyModeMatchStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCopyModeMatchStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCopyModeMatchStyle stores the \"copy-mode-match-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.CopyModeMatchStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4870,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCopyModeMatchStyle","product":"core","slug":"tmux-globalwindowscope-setcopymodematchstyle"},{"id":"tmux.Window.SetCopyModePositionFormat","name":"SetCopyModePositionFormat","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCopyModePositionFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCopyModePositionFormat stores the \"copy-mode-position-format\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.CopyModePositionFormat] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4878,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCopyModePositionFormat","product":"core","slug":"tmux-window-setcopymodepositionformat"},{"id":"tmux.GlobalWindowScope.SetCopyModePositionFormat","name":"SetCopyModePositionFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCopyModePositionFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCopyModePositionFormat stores the \"copy-mode-position-format\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.CopyModePositionFormat] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4888,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCopyModePositionFormat","product":"core","slug":"tmux-globalwindowscope-setcopymodepositionformat"},{"id":"tmux.Pane.SetCopyModePositionFormat","name":"SetCopyModePositionFormat","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetCopyModePositionFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetCopyModePositionFormat stores the \"copy-mode-position-format\" pane option as string (tmux 3.6 or later). Read it with [PaneOptionValues.CopyModePositionFormat] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4896,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetCopyModePositionFormat","product":"core","slug":"tmux-pane-setcopymodepositionformat"},{"id":"tmux.Window.SetCopyModePositionStyle","name":"SetCopyModePositionStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCopyModePositionStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCopyModePositionStyle stores the \"copy-mode-position-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.CopyModePositionStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4906,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCopyModePositionStyle","product":"core","slug":"tmux-window-setcopymodepositionstyle"},{"id":"tmux.GlobalWindowScope.SetCopyModePositionStyle","name":"SetCopyModePositionStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCopyModePositionStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCopyModePositionStyle stores the \"copy-mode-position-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.CopyModePositionStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4916,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCopyModePositionStyle","product":"core","slug":"tmux-globalwindowscope-setcopymodepositionstyle"},{"id":"tmux.Window.SetCopyModeSelectionStyle","name":"SetCopyModeSelectionStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCopyModeSelectionStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCopyModeSelectionStyle stores the \"copy-mode-selection-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.CopyModeSelectionStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4924,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCopyModeSelectionStyle","product":"core","slug":"tmux-window-setcopymodeselectionstyle"},{"id":"tmux.GlobalWindowScope.SetCopyModeSelectionStyle","name":"SetCopyModeSelectionStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCopyModeSelectionStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCopyModeSelectionStyle stores the \"copy-mode-selection-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.CopyModeSelectionStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4934,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCopyModeSelectionStyle","product":"core","slug":"tmux-globalwindowscope-setcopymodeselectionstyle"},{"id":"tmux.Window.SetCursorColour","name":"SetCursorColour","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCursorColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCursorColour stores the \"cursor-colour\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.CursorColour] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4942,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCursorColour","product":"core","slug":"tmux-window-setcursorcolour"},{"id":"tmux.GlobalWindowScope.SetCursorColour","name":"SetCursorColour","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCursorColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCursorColour stores the \"cursor-colour\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.CursorColour] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4952,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCursorColour","product":"core","slug":"tmux-globalwindowscope-setcursorcolour"},{"id":"tmux.Pane.SetCursorColour","name":"SetCursorColour","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetCursorColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetCursorColour stores the \"cursor-colour\" pane option as string (tmux 3.3 or later). Read it with [PaneOptionValues.CursorColour] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4960,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetCursorColour","product":"core","slug":"tmux-pane-setcursorcolour"},{"id":"tmux.Window.SetCursorStyle","name":"SetCursorStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCursorStyle(ctx context.Context, value CursorStyle) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"CursorStyle"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCursorStyle stores the \"cursor-style\" window option as CursorStyle (tmux 3.3 or later). Read it with [WindowOptionValues.CursorStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4970,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCursorStyle","product":"core","slug":"tmux-window-setcursorstyle"},{"id":"tmux.GlobalWindowScope.SetCursorStyle","name":"SetCursorStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCursorStyle(ctx context.Context, value CursorStyle) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"CursorStyle"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCursorStyle stores the \"cursor-style\" window option as CursorStyle (tmux 3.3 or later). Read it with [WindowOptionValues.CursorStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4980,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCursorStyle","product":"core","slug":"tmux-globalwindowscope-setcursorstyle"},{"id":"tmux.Pane.SetCursorStyle","name":"SetCursorStyle","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetCursorStyle(ctx context.Context, value CursorStyle) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"CursorStyle"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetCursorStyle stores the \"cursor-style\" pane option as CursorStyle (tmux 3.3 or later). Read it with [PaneOptionValues.CursorStyle] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4988,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetCursorStyle","product":"core","slug":"tmux-pane-setcursorstyle"},{"id":"tmux.Server.SetDefaultClientCommand","name":"SetDefaultClientCommand","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetDefaultClientCommand(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetDefaultClientCommand stores the \"default-client-command\" server option as string (tmux 3.6 or later). Read it with [ServerOptionValues.DefaultClientCommand] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4998,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetDefaultClientCommand","product":"core","slug":"tmux-server-setdefaultclientcommand"},{"id":"tmux.Session.SetDefaultCommand","name":"SetDefaultCommand","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetDefaultCommand(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetDefaultCommand stores the \"default-command\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DefaultCommand] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5006,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetDefaultCommand","product":"core","slug":"tmux-session-setdefaultcommand"},{"id":"tmux.GlobalSessionScope.SetDefaultCommand","name":"SetDefaultCommand","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetDefaultCommand(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetDefaultCommand stores the \"default-command\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DefaultCommand] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5016,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetDefaultCommand","product":"core","slug":"tmux-globalsessionscope-setdefaultcommand"},{"id":"tmux.Session.SetDefaultShell","name":"SetDefaultShell","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetDefaultShell(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetDefaultShell stores the \"default-shell\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DefaultShell] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5024,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetDefaultShell","product":"core","slug":"tmux-session-setdefaultshell"},{"id":"tmux.GlobalSessionScope.SetDefaultShell","name":"SetDefaultShell","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetDefaultShell(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetDefaultShell stores the \"default-shell\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DefaultShell] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5034,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetDefaultShell","product":"core","slug":"tmux-globalsessionscope-setdefaultshell"},{"id":"tmux.Session.SetDefaultSize","name":"SetDefaultSize","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetDefaultSize(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetDefaultSize stores the \"default-size\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DefaultSize] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5042,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetDefaultSize","product":"core","slug":"tmux-session-setdefaultsize"},{"id":"tmux.GlobalSessionScope.SetDefaultSize","name":"SetDefaultSize","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetDefaultSize(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetDefaultSize stores the \"default-size\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DefaultSize] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5052,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetDefaultSize","product":"core","slug":"tmux-globalsessionscope-setdefaultsize"},{"id":"tmux.Server.SetDefaultTerminal","name":"SetDefaultTerminal","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetDefaultTerminal(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetDefaultTerminal stores the \"default-terminal\" server option as string (tmux 3.2a or later). Read it with [ServerOptionValues.DefaultTerminal] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5060,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetDefaultTerminal","product":"core","slug":"tmux-server-setdefaultterminal"},{"id":"tmux.Session.SetDestroyUnattached","name":"SetDestroyUnattached","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetDestroyUnattached(ctx context.Context, value DestroyUnattached) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"DestroyUnattached"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetDestroyUnattached stores the \"destroy-unattached\" session option as DestroyUnattached (tmux 3.2a or later). Read it with [SessionOptionValues.DestroyUnattached] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5068,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetDestroyUnattached","product":"core","slug":"tmux-session-setdestroyunattached"},{"id":"tmux.GlobalSessionScope.SetDestroyUnattached","name":"SetDestroyUnattached","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetDestroyUnattached(ctx context.Context, value DestroyUnattached) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"DestroyUnattached"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetDestroyUnattached stores the \"destroy-unattached\" session option as DestroyUnattached (tmux 3.2a or later). Read it with [SessionOptionValues.DestroyUnattached] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5078,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetDestroyUnattached","product":"core","slug":"tmux-globalsessionscope-setdestroyunattached"},{"id":"tmux.Session.SetDetachOnDestroy","name":"SetDetachOnDestroy","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetDetachOnDestroy(ctx context.Context, value DetachOnDestroy) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"DetachOnDestroy"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetDetachOnDestroy stores the \"detach-on-destroy\" session option as DetachOnDestroy (tmux 3.2a or later). Read it with [SessionOptionValues.DetachOnDestroy] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5086,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetDetachOnDestroy","product":"core","slug":"tmux-session-setdetachondestroy"},{"id":"tmux.GlobalSessionScope.SetDetachOnDestroy","name":"SetDetachOnDestroy","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetDetachOnDestroy(ctx context.Context, value DetachOnDestroy) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"DetachOnDestroy"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetDetachOnDestroy stores the \"detach-on-destroy\" session option as DetachOnDestroy (tmux 3.2a or later). Read it with [SessionOptionValues.DetachOnDestroy] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5096,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetDetachOnDestroy","product":"core","slug":"tmux-globalsessionscope-setdetachondestroy"},{"id":"tmux.Session.SetDisplayPanesActiveColour","name":"SetDisplayPanesActiveColour","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetDisplayPanesActiveColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetDisplayPanesActiveColour stores the \"display-panes-active-colour\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayPanesActiveColour] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetDisplayPanesActiveColour","product":"core","slug":"tmux-session-setdisplaypanesactivecolour"},{"id":"tmux.GlobalSessionScope.SetDisplayPanesActiveColour","name":"SetDisplayPanesActiveColour","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetDisplayPanesActiveColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetDisplayPanesActiveColour stores the \"display-panes-active-colour\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayPanesActiveColour] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5114,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetDisplayPanesActiveColour","product":"core","slug":"tmux-globalsessionscope-setdisplaypanesactivecolour"},{"id":"tmux.Session.SetDisplayPanesColour","name":"SetDisplayPanesColour","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetDisplayPanesColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetDisplayPanesColour stores the \"display-panes-colour\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayPanesColour] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5122,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetDisplayPanesColour","product":"core","slug":"tmux-session-setdisplaypanescolour"},{"id":"tmux.GlobalSessionScope.SetDisplayPanesColour","name":"SetDisplayPanesColour","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetDisplayPanesColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetDisplayPanesColour stores the \"display-panes-colour\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayPanesColour] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5132,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetDisplayPanesColour","product":"core","slug":"tmux-globalsessionscope-setdisplaypanescolour"},{"id":"tmux.Session.SetDisplayPanesTime","name":"SetDisplayPanesTime","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetDisplayPanesTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetDisplayPanesTime stores the \"display-panes-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayPanesTime] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5140,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetDisplayPanesTime","product":"core","slug":"tmux-session-setdisplaypanestime"},{"id":"tmux.GlobalSessionScope.SetDisplayPanesTime","name":"SetDisplayPanesTime","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetDisplayPanesTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetDisplayPanesTime stores the \"display-panes-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayPanesTime] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5154,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetDisplayPanesTime","product":"core","slug":"tmux-globalsessionscope-setdisplaypanestime"},{"id":"tmux.Session.SetDisplayTime","name":"SetDisplayTime","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetDisplayTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetDisplayTime stores the \"display-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayTime] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5166,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetDisplayTime","product":"core","slug":"tmux-session-setdisplaytime"},{"id":"tmux.GlobalSessionScope.SetDisplayTime","name":"SetDisplayTime","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetDisplayTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetDisplayTime stores the \"display-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayTime] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5180,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetDisplayTime","product":"core","slug":"tmux-globalsessionscope-setdisplaytime"},{"id":"tmux.Server.SetEditor","name":"SetEditor","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetEditor(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetEditor stores the \"editor\" server option as string (tmux 3.2a or later). Read it with [ServerOptionValues.Editor] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5192,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetEditor","product":"core","slug":"tmux-server-seteditor"},{"id":"tmux.Server.SetEscapeTime","name":"SetEscapeTime","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetEscapeTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetEscapeTime stores the \"escape-time\" server option as time.Duration (tmux 3.2a or later). Read it with [ServerOptionValues.EscapeTime] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5200,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetEscapeTime","product":"core","slug":"tmux-server-setescapetime"},{"id":"tmux.Server.SetExitEmpty","name":"SetExitEmpty","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetExitEmpty(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetExitEmpty stores the \"exit-empty\" server option as bool (tmux 3.2a or later). Read it with [ServerOptionValues.ExitEmpty] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5212,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetExitEmpty","product":"core","slug":"tmux-server-setexitempty"},{"id":"tmux.Server.SetExitUnattached","name":"SetExitUnattached","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetExitUnattached(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetExitUnattached stores the \"exit-unattached\" server option as bool (tmux 3.2a or later). Read it with [ServerOptionValues.ExitUnattached] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5220,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetExitUnattached","product":"core","slug":"tmux-server-setexitunattached"},{"id":"tmux.Server.SetExtendedKeys","name":"SetExtendedKeys","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetExtendedKeys(ctx context.Context, value ExtendedKeys) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"ExtendedKeys"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetExtendedKeys stores the \"extended-keys\" server option as ExtendedKeys (tmux 3.2a or later). Read it with [ServerOptionValues.ExtendedKeys] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5228,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetExtendedKeys","product":"core","slug":"tmux-server-setextendedkeys"},{"id":"tmux.Server.SetExtendedKeysFormat","name":"SetExtendedKeysFormat","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetExtendedKeysFormat(ctx context.Context, value ExtendedKeysFormat) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"ExtendedKeysFormat"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetExtendedKeysFormat stores the \"extended-keys-format\" server option as ExtendedKeysFormat (tmux 3.5 or later). Read it with [ServerOptionValues.ExtendedKeysFormat] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5236,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetExtendedKeysFormat","product":"core","slug":"tmux-server-setextendedkeysformat"},{"id":"tmux.Window.SetFillCharacter","name":"SetFillCharacter","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetFillCharacter(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetFillCharacter stores the \"fill-character\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.FillCharacter] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5244,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetFillCharacter","product":"core","slug":"tmux-window-setfillcharacter"},{"id":"tmux.GlobalWindowScope.SetFillCharacter","name":"SetFillCharacter","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetFillCharacter(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetFillCharacter stores the \"fill-character\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.FillCharacter] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5254,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetFillCharacter","product":"core","slug":"tmux-globalwindowscope-setfillcharacter"},{"id":"tmux.Server.SetFocusEvents","name":"SetFocusEvents","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetFocusEvents(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetFocusEvents stores the \"focus-events\" server option as bool (tmux 3.2a or later). Read it with [ServerOptionValues.FocusEvents] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5262,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetFocusEvents","product":"core","slug":"tmux-server-setfocusevents"},{"id":"tmux.Session.SetFocusFollowsMouse","name":"SetFocusFollowsMouse","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetFocusFollowsMouse(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetFocusFollowsMouse stores the \"focus-follows-mouse\" session option as bool (tmux 3.7 or later). Read it with [SessionOptionValues.FocusFollowsMouse] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5270,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetFocusFollowsMouse","product":"core","slug":"tmux-session-setfocusfollowsmouse"},{"id":"tmux.GlobalSessionScope.SetFocusFollowsMouse","name":"SetFocusFollowsMouse","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetFocusFollowsMouse(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetFocusFollowsMouse stores the \"focus-follows-mouse\" session option as bool (tmux 3.7 or later). Read it with [SessionOptionValues.FocusFollowsMouse] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5280,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetFocusFollowsMouse","product":"core","slug":"tmux-globalsessionscope-setfocusfollowsmouse"},{"id":"tmux.Server.SetGetClipboard","name":"SetGetClipboard","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetGetClipboard(ctx context.Context, value GetClipboard) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"GetClipboard"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetGetClipboard stores the \"get-clipboard\" server option as GetClipboard (tmux 3.7 or later). Read it with [ServerOptionValues.GetClipboard] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5288,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetGetClipboard","product":"core","slug":"tmux-server-setgetclipboard"},{"id":"tmux.Server.SetHistoryFile","name":"SetHistoryFile","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetHistoryFile(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetHistoryFile stores the \"history-file\" server option as string (tmux 3.2a or later). Read it with [ServerOptionValues.HistoryFile] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5296,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetHistoryFile","product":"core","slug":"tmux-server-sethistoryfile"},{"id":"tmux.Session.SetHistoryLimit","name":"SetHistoryLimit","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetHistoryLimit(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetHistoryLimit stores the \"history-limit\" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.HistoryLimit] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5304,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetHistoryLimit","product":"core","slug":"tmux-session-sethistorylimit"},{"id":"tmux.GlobalSessionScope.SetHistoryLimit","name":"SetHistoryLimit","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetHistoryLimit(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetHistoryLimit stores the \"history-limit\" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.HistoryLimit] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5314,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetHistoryLimit","product":"core","slug":"tmux-globalsessionscope-sethistorylimit"},{"id":"tmux.Session.SetInitialRepeatTime","name":"SetInitialRepeatTime","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetInitialRepeatTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetInitialRepeatTime stores the \"initial-repeat-time\" session option as time.Duration (tmux 3.6 or later). Read it with [SessionOptionValues.InitialRepeatTime] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5322,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetInitialRepeatTime","product":"core","slug":"tmux-session-setinitialrepeattime"},{"id":"tmux.GlobalSessionScope.SetInitialRepeatTime","name":"SetInitialRepeatTime","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetInitialRepeatTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetInitialRepeatTime stores the \"initial-repeat-time\" session option as time.Duration (tmux 3.6 or later). Read it with [SessionOptionValues.InitialRepeatTime] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5336,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetInitialRepeatTime","product":"core","slug":"tmux-globalsessionscope-setinitialrepeattime"},{"id":"tmux.Server.SetInputBufferSize","name":"SetInputBufferSize","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetInputBufferSize(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetInputBufferSize stores the \"input-buffer-size\" server option as int64 (tmux 3.6 or later). Read it with [ServerOptionValues.InputBufferSize] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5348,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetInputBufferSize","product":"core","slug":"tmux-server-setinputbuffersize"},{"id":"tmux.Session.SetKeyTable","name":"SetKeyTable","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetKeyTable(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetKeyTable stores the \"key-table\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.KeyTable] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5356,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetKeyTable","product":"core","slug":"tmux-session-setkeytable"},{"id":"tmux.GlobalSessionScope.SetKeyTable","name":"SetKeyTable","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetKeyTable(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetKeyTable stores the \"key-table\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.KeyTable] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5366,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetKeyTable","product":"core","slug":"tmux-globalsessionscope-setkeytable"},{"id":"tmux.Session.SetLockAfterTime","name":"SetLockAfterTime","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetLockAfterTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetLockAfterTime stores the \"lock-after-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.LockAfterTime] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5374,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetLockAfterTime","product":"core","slug":"tmux-session-setlockaftertime"},{"id":"tmux.GlobalSessionScope.SetLockAfterTime","name":"SetLockAfterTime","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetLockAfterTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetLockAfterTime stores the \"lock-after-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.LockAfterTime] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5388,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetLockAfterTime","product":"core","slug":"tmux-globalsessionscope-setlockaftertime"},{"id":"tmux.Session.SetLockCommand","name":"SetLockCommand","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetLockCommand(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetLockCommand stores the \"lock-command\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.LockCommand] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5400,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetLockCommand","product":"core","slug":"tmux-session-setlockcommand"},{"id":"tmux.GlobalSessionScope.SetLockCommand","name":"SetLockCommand","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetLockCommand(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetLockCommand stores the \"lock-command\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.LockCommand] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5410,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetLockCommand","product":"core","slug":"tmux-globalsessionscope-setlockcommand"},{"id":"tmux.Window.SetMainPaneHeight","name":"SetMainPaneHeight","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetMainPaneHeight(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetMainPaneHeight stores the \"main-pane-height\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.MainPaneHeight] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5418,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetMainPaneHeight","product":"core","slug":"tmux-window-setmainpaneheight"},{"id":"tmux.GlobalWindowScope.SetMainPaneHeight","name":"SetMainPaneHeight","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetMainPaneHeight(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetMainPaneHeight stores the \"main-pane-height\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.MainPaneHeight] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5428,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetMainPaneHeight","product":"core","slug":"tmux-globalwindowscope-setmainpaneheight"},{"id":"tmux.Window.SetMainPaneWidth","name":"SetMainPaneWidth","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetMainPaneWidth(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetMainPaneWidth stores the \"main-pane-width\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.MainPaneWidth] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5436,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetMainPaneWidth","product":"core","slug":"tmux-window-setmainpanewidth"},{"id":"tmux.GlobalWindowScope.SetMainPaneWidth","name":"SetMainPaneWidth","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetMainPaneWidth(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetMainPaneWidth stores the \"main-pane-width\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.MainPaneWidth] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5446,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetMainPaneWidth","product":"core","slug":"tmux-globalwindowscope-setmainpanewidth"},{"id":"tmux.Window.SetMenuBorderLines","name":"SetMenuBorderLines","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetMenuBorderLines(ctx context.Context, value MenuBorderLines) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"MenuBorderLines"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetMenuBorderLines stores the \"menu-border-lines\" window option as MenuBorderLines (tmux 3.4 or later). Read it with [WindowOptionValues.MenuBorderLines] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5454,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetMenuBorderLines","product":"core","slug":"tmux-window-setmenuborderlines"},{"id":"tmux.GlobalWindowScope.SetMenuBorderLines","name":"SetMenuBorderLines","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetMenuBorderLines(ctx context.Context, value MenuBorderLines) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"MenuBorderLines"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetMenuBorderLines stores the \"menu-border-lines\" window option as MenuBorderLines (tmux 3.4 or later). Read it with [WindowOptionValues.MenuBorderLines] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5464,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetMenuBorderLines","product":"core","slug":"tmux-globalwindowscope-setmenuborderlines"},{"id":"tmux.Window.SetMenuBorderStyle","name":"SetMenuBorderStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetMenuBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetMenuBorderStyle stores the \"menu-border-style\" window option as string (tmux 3.4 or later). Read it with [WindowOptionValues.MenuBorderStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5472,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetMenuBorderStyle","product":"core","slug":"tmux-window-setmenuborderstyle"},{"id":"tmux.GlobalWindowScope.SetMenuBorderStyle","name":"SetMenuBorderStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetMenuBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetMenuBorderStyle stores the \"menu-border-style\" window option as string (tmux 3.4 or later). Read it with [WindowOptionValues.MenuBorderStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5482,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetMenuBorderStyle","product":"core","slug":"tmux-globalwindowscope-setmenuborderstyle"},{"id":"tmux.Window.SetMenuSelectedStyle","name":"SetMenuSelectedStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetMenuSelectedStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetMenuSelectedStyle stores the \"menu-selected-style\" window option as string (tmux 3.4 or later). Read it with [WindowOptionValues.MenuSelectedStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5490,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetMenuSelectedStyle","product":"core","slug":"tmux-window-setmenuselectedstyle"},{"id":"tmux.GlobalWindowScope.SetMenuSelectedStyle","name":"SetMenuSelectedStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetMenuSelectedStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetMenuSelectedStyle stores the \"menu-selected-style\" window option as string (tmux 3.4 or later). Read it with [WindowOptionValues.MenuSelectedStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5500,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetMenuSelectedStyle","product":"core","slug":"tmux-globalwindowscope-setmenuselectedstyle"},{"id":"tmux.Window.SetMenuStyle","name":"SetMenuStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetMenuStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetMenuStyle stores the \"menu-style\" window option as string (tmux 3.4 or later). Read it with [WindowOptionValues.MenuStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5508,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetMenuStyle","product":"core","slug":"tmux-window-setmenustyle"},{"id":"tmux.GlobalWindowScope.SetMenuStyle","name":"SetMenuStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetMenuStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetMenuStyle stores the \"menu-style\" window option as string (tmux 3.4 or later). Read it with [WindowOptionValues.MenuStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5518,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetMenuStyle","product":"core","slug":"tmux-globalwindowscope-setmenustyle"},{"id":"tmux.Session.SetMessageCommandStyle","name":"SetMessageCommandStyle","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetMessageCommandStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetMessageCommandStyle stores the \"message-command-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.MessageCommandStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5526,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetMessageCommandStyle","product":"core","slug":"tmux-session-setmessagecommandstyle"},{"id":"tmux.GlobalSessionScope.SetMessageCommandStyle","name":"SetMessageCommandStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetMessageCommandStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetMessageCommandStyle stores the \"message-command-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.MessageCommandStyle] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5536,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetMessageCommandStyle","product":"core","slug":"tmux-globalsessionscope-setmessagecommandstyle"},{"id":"tmux.Session.SetMessageFormat","name":"SetMessageFormat","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetMessageFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetMessageFormat stores the \"message-format\" session option as string (tmux 3.7 or later). Read it with [SessionOptionValues.MessageFormat] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5544,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetMessageFormat","product":"core","slug":"tmux-session-setmessageformat"},{"id":"tmux.GlobalSessionScope.SetMessageFormat","name":"SetMessageFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetMessageFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetMessageFormat stores the \"message-format\" session option as string (tmux 3.7 or later). Read it with [SessionOptionValues.MessageFormat] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5554,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetMessageFormat","product":"core","slug":"tmux-globalsessionscope-setmessageformat"},{"id":"tmux.Server.SetMessageLimit","name":"SetMessageLimit","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetMessageLimit(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetMessageLimit stores the \"message-limit\" server option as int64 (tmux 3.2a or later). Read it with [ServerOptionValues.MessageLimit] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5562,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetMessageLimit","product":"core","slug":"tmux-server-setmessagelimit"},{"id":"tmux.Session.SetMessageLine","name":"SetMessageLine","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetMessageLine(ctx context.Context, value MessageLine) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"MessageLine"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetMessageLine stores the \"message-line\" session option as MessageLine (tmux 3.4 or later). Read it with [SessionOptionValues.MessageLine] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5570,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetMessageLine","product":"core","slug":"tmux-session-setmessageline"},{"id":"tmux.GlobalSessionScope.SetMessageLine","name":"SetMessageLine","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetMessageLine(ctx context.Context, value MessageLine) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"MessageLine"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetMessageLine stores the \"message-line\" session option as MessageLine (tmux 3.4 or later). Read it with [SessionOptionValues.MessageLine] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5580,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetMessageLine","product":"core","slug":"tmux-globalsessionscope-setmessageline"},{"id":"tmux.Session.SetMessageStyle","name":"SetMessageStyle","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetMessageStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetMessageStyle stores the \"message-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.MessageStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5588,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetMessageStyle","product":"core","slug":"tmux-session-setmessagestyle"},{"id":"tmux.GlobalSessionScope.SetMessageStyle","name":"SetMessageStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetMessageStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetMessageStyle stores the \"message-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.MessageStyle] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5598,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetMessageStyle","product":"core","slug":"tmux-globalsessionscope-setmessagestyle"},{"id":"tmux.Window.SetModeKeys","name":"SetModeKeys","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetModeKeys(ctx context.Context, value ModeKeys) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"ModeKeys"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetModeKeys stores the \"mode-keys\" window option as ModeKeys (tmux 3.2a or later). Read it with [WindowOptionValues.ModeKeys] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5606,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetModeKeys","product":"core","slug":"tmux-window-setmodekeys"},{"id":"tmux.GlobalWindowScope.SetModeKeys","name":"SetModeKeys","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetModeKeys(ctx context.Context, value ModeKeys) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"ModeKeys"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetModeKeys stores the \"mode-keys\" window option as ModeKeys (tmux 3.2a or later). Read it with [WindowOptionValues.ModeKeys] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5616,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetModeKeys","product":"core","slug":"tmux-globalwindowscope-setmodekeys"},{"id":"tmux.Window.SetModeStyle","name":"SetModeStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetModeStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetModeStyle stores the \"mode-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.ModeStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5624,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetModeStyle","product":"core","slug":"tmux-window-setmodestyle"},{"id":"tmux.GlobalWindowScope.SetModeStyle","name":"SetModeStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetModeStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetModeStyle stores the \"mode-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.ModeStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5634,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetModeStyle","product":"core","slug":"tmux-globalwindowscope-setmodestyle"},{"id":"tmux.Window.SetMonitorActivity","name":"SetMonitorActivity","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetMonitorActivity(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetMonitorActivity stores the \"monitor-activity\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.MonitorActivity] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5642,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetMonitorActivity","product":"core","slug":"tmux-window-setmonitoractivity"},{"id":"tmux.GlobalWindowScope.SetMonitorActivity","name":"SetMonitorActivity","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetMonitorActivity(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetMonitorActivity stores the \"monitor-activity\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.MonitorActivity] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5652,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetMonitorActivity","product":"core","slug":"tmux-globalwindowscope-setmonitoractivity"},{"id":"tmux.Window.SetMonitorBell","name":"SetMonitorBell","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetMonitorBell(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetMonitorBell stores the \"monitor-bell\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.MonitorBell] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5660,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetMonitorBell","product":"core","slug":"tmux-window-setmonitorbell"},{"id":"tmux.GlobalWindowScope.SetMonitorBell","name":"SetMonitorBell","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetMonitorBell(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetMonitorBell stores the \"monitor-bell\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.MonitorBell] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5670,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetMonitorBell","product":"core","slug":"tmux-globalwindowscope-setmonitorbell"},{"id":"tmux.Window.SetMonitorSilence","name":"SetMonitorSilence","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetMonitorSilence(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetMonitorSilence stores the \"monitor-silence\" window option as int64 (tmux 3.2a or later). Read it with [WindowOptionValues.MonitorSilence] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5678,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetMonitorSilence","product":"core","slug":"tmux-window-setmonitorsilence"},{"id":"tmux.GlobalWindowScope.SetMonitorSilence","name":"SetMonitorSilence","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetMonitorSilence(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetMonitorSilence stores the \"monitor-silence\" window option as int64 (tmux 3.2a or later). Read it with [WindowOptionValues.MonitorSilence] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5688,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetMonitorSilence","product":"core","slug":"tmux-globalwindowscope-setmonitorsilence"},{"id":"tmux.Session.SetMouse","name":"SetMouse","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetMouse(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetMouse stores the \"mouse\" session option as bool (tmux 3.2a or later). Read it with [SessionOptionValues.Mouse] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5696,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetMouse","product":"core","slug":"tmux-session-setmouse"},{"id":"tmux.GlobalSessionScope.SetMouse","name":"SetMouse","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetMouse(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetMouse stores the \"mouse\" session option as bool (tmux 3.2a or later). Read it with [SessionOptionValues.Mouse] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5706,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetMouse","product":"core","slug":"tmux-globalsessionscope-setmouse"},{"id":"tmux.Window.SetOtherPaneHeight","name":"SetOtherPaneHeight","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetOtherPaneHeight(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetOtherPaneHeight stores the \"other-pane-height\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.OtherPaneHeight] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5714,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetOtherPaneHeight","product":"core","slug":"tmux-window-setotherpaneheight"},{"id":"tmux.GlobalWindowScope.SetOtherPaneHeight","name":"SetOtherPaneHeight","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetOtherPaneHeight(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetOtherPaneHeight stores the \"other-pane-height\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.OtherPaneHeight] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5724,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetOtherPaneHeight","product":"core","slug":"tmux-globalwindowscope-setotherpaneheight"},{"id":"tmux.Window.SetOtherPaneWidth","name":"SetOtherPaneWidth","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetOtherPaneWidth(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetOtherPaneWidth stores the \"other-pane-width\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.OtherPaneWidth] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5732,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetOtherPaneWidth","product":"core","slug":"tmux-window-setotherpanewidth"},{"id":"tmux.GlobalWindowScope.SetOtherPaneWidth","name":"SetOtherPaneWidth","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetOtherPaneWidth(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetOtherPaneWidth stores the \"other-pane-width\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.OtherPaneWidth] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5742,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetOtherPaneWidth","product":"core","slug":"tmux-globalwindowscope-setotherpanewidth"},{"id":"tmux.Window.SetPaneActiveBorderStyle","name":"SetPaneActiveBorderStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneActiveBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneActiveBorderStyle stores the \"pane-active-border-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.PaneActiveBorderStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5750,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneActiveBorderStyle","product":"core","slug":"tmux-window-setpaneactiveborderstyle"},{"id":"tmux.GlobalWindowScope.SetPaneActiveBorderStyle","name":"SetPaneActiveBorderStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneActiveBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneActiveBorderStyle stores the \"pane-active-border-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.PaneActiveBorderStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5760,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneActiveBorderStyle","product":"core","slug":"tmux-globalwindowscope-setpaneactiveborderstyle"},{"id":"tmux.Pane.SetPaneActiveBorderStyle","name":"SetPaneActiveBorderStyle","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetPaneActiveBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetPaneActiveBorderStyle stores the \"pane-active-border-style\" pane option as string (tmux 3.7 or later). Read it with [PaneOptionValues.PaneActiveBorderStyle] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5768,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetPaneActiveBorderStyle","product":"core","slug":"tmux-pane-setpaneactiveborderstyle"},{"id":"tmux.Window.SetPaneBaseIndex","name":"SetPaneBaseIndex","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneBaseIndex(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneBaseIndex stores the \"pane-base-index\" window option as int64 (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBaseIndex] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5778,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneBaseIndex","product":"core","slug":"tmux-window-setpanebaseindex"},{"id":"tmux.GlobalWindowScope.SetPaneBaseIndex","name":"SetPaneBaseIndex","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneBaseIndex(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneBaseIndex stores the \"pane-base-index\" window option as int64 (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBaseIndex] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5788,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneBaseIndex","product":"core","slug":"tmux-globalwindowscope-setpanebaseindex"},{"id":"tmux.Window.SetPaneBorderFormat","name":"SetPaneBorderFormat","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneBorderFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneBorderFormat stores the \"pane-border-format\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBorderFormat] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5796,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneBorderFormat","product":"core","slug":"tmux-window-setpaneborderformat"},{"id":"tmux.GlobalWindowScope.SetPaneBorderFormat","name":"SetPaneBorderFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneBorderFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneBorderFormat stores the \"pane-border-format\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBorderFormat] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5806,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneBorderFormat","product":"core","slug":"tmux-globalwindowscope-setpaneborderformat"},{"id":"tmux.Pane.SetPaneBorderFormat","name":"SetPaneBorderFormat","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetPaneBorderFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetPaneBorderFormat stores the \"pane-border-format\" pane option as string (tmux 3.3 or later). Read it with [PaneOptionValues.PaneBorderFormat] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5814,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetPaneBorderFormat","product":"core","slug":"tmux-pane-setpaneborderformat"},{"id":"tmux.Window.SetPaneBorderIndicators","name":"SetPaneBorderIndicators","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneBorderIndicators(ctx context.Context, value PaneBorderIndicators) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneBorderIndicators"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneBorderIndicators stores the \"pane-border-indicators\" window option as PaneBorderIndicators (tmux 3.3 or later). Read it with [WindowOptionValues.PaneBorderIndicators] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5824,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneBorderIndicators","product":"core","slug":"tmux-window-setpaneborderindicators"},{"id":"tmux.GlobalWindowScope.SetPaneBorderIndicators","name":"SetPaneBorderIndicators","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneBorderIndicators(ctx context.Context, value PaneBorderIndicators) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneBorderIndicators"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneBorderIndicators stores the \"pane-border-indicators\" window option as PaneBorderIndicators (tmux 3.3 or later). Read it with [WindowOptionValues.PaneBorderIndicators] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5834,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneBorderIndicators","product":"core","slug":"tmux-globalwindowscope-setpaneborderindicators"},{"id":"tmux.Window.SetPaneBorderLines","name":"SetPaneBorderLines","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneBorderLines(ctx context.Context, value PaneBorderLines) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneBorderLines"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneBorderLines stores the \"pane-border-lines\" window option as PaneBorderLines (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBorderLines] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5842,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneBorderLines","product":"core","slug":"tmux-window-setpaneborderlines"},{"id":"tmux.GlobalWindowScope.SetPaneBorderLines","name":"SetPaneBorderLines","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneBorderLines(ctx context.Context, value PaneBorderLines) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneBorderLines"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneBorderLines stores the \"pane-border-lines\" window option as PaneBorderLines (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBorderLines] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5852,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneBorderLines","product":"core","slug":"tmux-globalwindowscope-setpaneborderlines"},{"id":"tmux.Window.SetPaneBorderStatus","name":"SetPaneBorderStatus","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneBorderStatus(ctx context.Context, value PaneBorderStatus) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneBorderStatus"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneBorderStatus stores the \"pane-border-status\" window option as PaneBorderStatus (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBorderStatus] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5860,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneBorderStatus","product":"core","slug":"tmux-window-setpaneborderstatus"},{"id":"tmux.GlobalWindowScope.SetPaneBorderStatus","name":"SetPaneBorderStatus","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneBorderStatus(ctx context.Context, value PaneBorderStatus) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneBorderStatus"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneBorderStatus stores the \"pane-border-status\" window option as PaneBorderStatus (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBorderStatus] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5870,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneBorderStatus","product":"core","slug":"tmux-globalwindowscope-setpaneborderstatus"},{"id":"tmux.Window.SetPaneBorderStyle","name":"SetPaneBorderStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneBorderStyle stores the \"pane-border-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBorderStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5878,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneBorderStyle","product":"core","slug":"tmux-window-setpaneborderstyle"},{"id":"tmux.GlobalWindowScope.SetPaneBorderStyle","name":"SetPaneBorderStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneBorderStyle stores the \"pane-border-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBorderStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5888,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneBorderStyle","product":"core","slug":"tmux-globalwindowscope-setpaneborderstyle"},{"id":"tmux.Pane.SetPaneBorderStyle","name":"SetPaneBorderStyle","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetPaneBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetPaneBorderStyle stores the \"pane-border-style\" pane option as string (tmux 3.7 or later). Read it with [PaneOptionValues.PaneBorderStyle] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5896,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetPaneBorderStyle","product":"core","slug":"tmux-pane-setpaneborderstyle"},{"id":"tmux.Window.SetPaneScrollbars","name":"SetPaneScrollbars","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneScrollbars(ctx context.Context, value PaneScrollbars) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneScrollbars"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneScrollbars stores the \"pane-scrollbars\" window option as PaneScrollbars (tmux 3.6 or later). Read it with [WindowOptionValues.PaneScrollbars] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5906,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneScrollbars","product":"core","slug":"tmux-window-setpanescrollbars"},{"id":"tmux.GlobalWindowScope.SetPaneScrollbars","name":"SetPaneScrollbars","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneScrollbars(ctx context.Context, value PaneScrollbars) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneScrollbars"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneScrollbars stores the \"pane-scrollbars\" window option as PaneScrollbars (tmux 3.6 or later). Read it with [WindowOptionValues.PaneScrollbars] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5916,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneScrollbars","product":"core","slug":"tmux-globalwindowscope-setpanescrollbars"},{"id":"tmux.Window.SetPaneScrollbarsPosition","name":"SetPaneScrollbarsPosition","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneScrollbarsPosition(ctx context.Context, value PaneScrollbarsPosition) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneScrollbarsPosition"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneScrollbarsPosition stores the \"pane-scrollbars-position\" window option as PaneScrollbarsPosition (tmux 3.6 or later). Read it with [WindowOptionValues.PaneScrollbarsPosition] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5924,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneScrollbarsPosition","product":"core","slug":"tmux-window-setpanescrollbarsposition"},{"id":"tmux.GlobalWindowScope.SetPaneScrollbarsPosition","name":"SetPaneScrollbarsPosition","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneScrollbarsPosition(ctx context.Context, value PaneScrollbarsPosition) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneScrollbarsPosition"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneScrollbarsPosition stores the \"pane-scrollbars-position\" window option as PaneScrollbarsPosition (tmux 3.6 or later). Read it with [WindowOptionValues.PaneScrollbarsPosition] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5934,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneScrollbarsPosition","product":"core","slug":"tmux-globalwindowscope-setpanescrollbarsposition"},{"id":"tmux.Window.SetPaneScrollbarsStyle","name":"SetPaneScrollbarsStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneScrollbarsStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneScrollbarsStyle stores the \"pane-scrollbars-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.PaneScrollbarsStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5942,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneScrollbarsStyle","product":"core","slug":"tmux-window-setpanescrollbarsstyle"},{"id":"tmux.GlobalWindowScope.SetPaneScrollbarsStyle","name":"SetPaneScrollbarsStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneScrollbarsStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneScrollbarsStyle stores the \"pane-scrollbars-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.PaneScrollbarsStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5952,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneScrollbarsStyle","product":"core","slug":"tmux-globalwindowscope-setpanescrollbarsstyle"},{"id":"tmux.Pane.SetPaneScrollbarsStyle","name":"SetPaneScrollbarsStyle","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetPaneScrollbarsStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetPaneScrollbarsStyle stores the \"pane-scrollbars-style\" pane option as string (tmux 3.6 or later). Read it with [PaneOptionValues.PaneScrollbarsStyle] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5960,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetPaneScrollbarsStyle","product":"core","slug":"tmux-pane-setpanescrollbarsstyle"},{"id":"tmux.Window.SetPaneStatusCurrentStyle","name":"SetPaneStatusCurrentStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneStatusCurrentStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneStatusCurrentStyle stores the \"pane-status-current-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.PaneStatusCurrentStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5970,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneStatusCurrentStyle","product":"core","slug":"tmux-window-setpanestatuscurrentstyle"},{"id":"tmux.GlobalWindowScope.SetPaneStatusCurrentStyle","name":"SetPaneStatusCurrentStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneStatusCurrentStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneStatusCurrentStyle stores the \"pane-status-current-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.PaneStatusCurrentStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5980,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneStatusCurrentStyle","product":"core","slug":"tmux-globalwindowscope-setpanestatuscurrentstyle"},{"id":"tmux.Window.SetPaneStatusStyle","name":"SetPaneStatusStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneStatusStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneStatusStyle stores the \"pane-status-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.PaneStatusStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5988,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneStatusStyle","product":"core","slug":"tmux-window-setpanestatusstyle"},{"id":"tmux.GlobalWindowScope.SetPaneStatusStyle","name":"SetPaneStatusStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneStatusStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneStatusStyle stores the \"pane-status-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.PaneStatusStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5998,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneStatusStyle","product":"core","slug":"tmux-globalwindowscope-setpanestatusstyle"},{"id":"tmux.Window.SetPopupBorderLines","name":"SetPopupBorderLines","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPopupBorderLines(ctx context.Context, value PopupBorderLines) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PopupBorderLines"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPopupBorderLines stores the \"popup-border-lines\" window option as PopupBorderLines (tmux 3.3 or later). Read it with [WindowOptionValues.PopupBorderLines] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6006,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPopupBorderLines","product":"core","slug":"tmux-window-setpopupborderlines"},{"id":"tmux.GlobalWindowScope.SetPopupBorderLines","name":"SetPopupBorderLines","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPopupBorderLines(ctx context.Context, value PopupBorderLines) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PopupBorderLines"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPopupBorderLines stores the \"popup-border-lines\" window option as PopupBorderLines (tmux 3.3 or later). Read it with [WindowOptionValues.PopupBorderLines] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6016,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPopupBorderLines","product":"core","slug":"tmux-globalwindowscope-setpopupborderlines"},{"id":"tmux.Window.SetPopupBorderStyle","name":"SetPopupBorderStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPopupBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPopupBorderStyle stores the \"popup-border-style\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.PopupBorderStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6024,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPopupBorderStyle","product":"core","slug":"tmux-window-setpopupborderstyle"},{"id":"tmux.GlobalWindowScope.SetPopupBorderStyle","name":"SetPopupBorderStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPopupBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPopupBorderStyle stores the \"popup-border-style\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.PopupBorderStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6034,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPopupBorderStyle","product":"core","slug":"tmux-globalwindowscope-setpopupborderstyle"},{"id":"tmux.Window.SetPopupStyle","name":"SetPopupStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPopupStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPopupStyle stores the \"popup-style\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.PopupStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6042,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPopupStyle","product":"core","slug":"tmux-window-setpopupstyle"},{"id":"tmux.GlobalWindowScope.SetPopupStyle","name":"SetPopupStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPopupStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPopupStyle stores the \"popup-style\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.PopupStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6052,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPopupStyle","product":"core","slug":"tmux-globalwindowscope-setpopupstyle"},{"id":"tmux.Session.SetPrefix","name":"SetPrefix","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetPrefix(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetPrefix stores the \"prefix\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.Prefix] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6060,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetPrefix","product":"core","slug":"tmux-session-setprefix"},{"id":"tmux.GlobalSessionScope.SetPrefix","name":"SetPrefix","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetPrefix(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetPrefix stores the \"prefix\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.Prefix] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6070,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetPrefix","product":"core","slug":"tmux-globalsessionscope-setprefix"},{"id":"tmux.Server.SetPrefixTimeout","name":"SetPrefixTimeout","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetPrefixTimeout(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetPrefixTimeout stores the \"prefix-timeout\" server option as time.Duration (tmux 3.5 or later). Read it with [ServerOptionValues.PrefixTimeout] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6078,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetPrefixTimeout","product":"core","slug":"tmux-server-setprefixtimeout"},{"id":"tmux.Session.SetPrefix2","name":"SetPrefix2","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetPrefix2(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetPrefix2 stores the \"prefix2\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.Prefix2] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6090,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetPrefix2","product":"core","slug":"tmux-session-setprefix2"},{"id":"tmux.GlobalSessionScope.SetPrefix2","name":"SetPrefix2","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetPrefix2(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetPrefix2 stores the \"prefix2\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.Prefix2] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6100,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetPrefix2","product":"core","slug":"tmux-globalsessionscope-setprefix2"},{"id":"tmux.Session.SetPromptCommandCursorStyle","name":"SetPromptCommandCursorStyle","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetPromptCommandCursorStyle(ctx context.Context, value PromptCommandCursorStyle) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PromptCommandCursorStyle"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetPromptCommandCursorStyle stores the \"prompt-command-cursor-style\" session option as PromptCommandCursorStyle (tmux 3.7 or later). Read it with [SessionOptionValues.PromptCommandCursorStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetPromptCommandCursorStyle","product":"core","slug":"tmux-session-setpromptcommandcursorstyle"},{"id":"tmux.GlobalSessionScope.SetPromptCommandCursorStyle","name":"SetPromptCommandCursorStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetPromptCommandCursorStyle(ctx context.Context, value PromptCommandCursorStyle) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PromptCommandCursorStyle"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetPromptCommandCursorStyle stores the \"prompt-command-cursor-style\" session option as PromptCommandCursorStyle (tmux 3.7 or later). Read it with [SessionOptionValues.PromptCommandCursorStyle] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6118,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetPromptCommandCursorStyle","product":"core","slug":"tmux-globalsessionscope-setpromptcommandcursorstyle"},{"id":"tmux.Session.SetPromptCursorColour","name":"SetPromptCursorColour","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetPromptCursorColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetPromptCursorColour stores the \"prompt-cursor-colour\" session option as string (tmux 3.6 or later). Read it with [SessionOptionValues.PromptCursorColour] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6126,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetPromptCursorColour","product":"core","slug":"tmux-session-setpromptcursorcolour"},{"id":"tmux.GlobalSessionScope.SetPromptCursorColour","name":"SetPromptCursorColour","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetPromptCursorColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetPromptCursorColour stores the \"prompt-cursor-colour\" session option as string (tmux 3.6 or later). Read it with [SessionOptionValues.PromptCursorColour] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6136,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetPromptCursorColour","product":"core","slug":"tmux-globalsessionscope-setpromptcursorcolour"},{"id":"tmux.Session.SetPromptCursorStyle","name":"SetPromptCursorStyle","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetPromptCursorStyle(ctx context.Context, value PromptCursorStyle) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PromptCursorStyle"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetPromptCursorStyle stores the \"prompt-cursor-style\" session option as PromptCursorStyle (tmux 3.6 or later). Read it with [SessionOptionValues.PromptCursorStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6144,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetPromptCursorStyle","product":"core","slug":"tmux-session-setpromptcursorstyle"},{"id":"tmux.GlobalSessionScope.SetPromptCursorStyle","name":"SetPromptCursorStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetPromptCursorStyle(ctx context.Context, value PromptCursorStyle) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PromptCursorStyle"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetPromptCursorStyle stores the \"prompt-cursor-style\" session option as PromptCursorStyle (tmux 3.6 or later). Read it with [SessionOptionValues.PromptCursorStyle] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6154,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetPromptCursorStyle","product":"core","slug":"tmux-globalsessionscope-setpromptcursorstyle"},{"id":"tmux.Server.SetPromptHistoryLimit","name":"SetPromptHistoryLimit","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetPromptHistoryLimit(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetPromptHistoryLimit stores the \"prompt-history-limit\" server option as int64 (tmux 3.3 or later). Read it with [ServerOptionValues.PromptHistoryLimit] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6162,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetPromptHistoryLimit","product":"core","slug":"tmux-server-setprompthistorylimit"},{"id":"tmux.Window.SetRemainOnExit","name":"SetRemainOnExit","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetRemainOnExit(ctx context.Context, value RemainOnExit) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"RemainOnExit"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetRemainOnExit stores the \"remain-on-exit\" window option as RemainOnExit (tmux 3.2a or later). Read it with [WindowOptionValues.RemainOnExit] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6170,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetRemainOnExit","product":"core","slug":"tmux-window-setremainonexit"},{"id":"tmux.GlobalWindowScope.SetRemainOnExit","name":"SetRemainOnExit","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetRemainOnExit(ctx context.Context, value RemainOnExit) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"RemainOnExit"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetRemainOnExit stores the \"remain-on-exit\" window option as RemainOnExit (tmux 3.2a or later). Read it with [WindowOptionValues.RemainOnExit] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6180,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetRemainOnExit","product":"core","slug":"tmux-globalwindowscope-setremainonexit"},{"id":"tmux.Pane.SetRemainOnExit","name":"SetRemainOnExit","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetRemainOnExit(ctx context.Context, value RemainOnExit) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"RemainOnExit"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetRemainOnExit stores the \"remain-on-exit\" pane option as RemainOnExit (tmux 3.2a or later). Read it with [PaneOptionValues.RemainOnExit] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6188,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetRemainOnExit","product":"core","slug":"tmux-pane-setremainonexit"},{"id":"tmux.Window.SetRemainOnExitFormat","name":"SetRemainOnExitFormat","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetRemainOnExitFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetRemainOnExitFormat stores the \"remain-on-exit-format\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.RemainOnExitFormat] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6198,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetRemainOnExitFormat","product":"core","slug":"tmux-window-setremainonexitformat"},{"id":"tmux.GlobalWindowScope.SetRemainOnExitFormat","name":"SetRemainOnExitFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetRemainOnExitFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetRemainOnExitFormat stores the \"remain-on-exit-format\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.RemainOnExitFormat] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6208,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetRemainOnExitFormat","product":"core","slug":"tmux-globalwindowscope-setremainonexitformat"},{"id":"tmux.Pane.SetRemainOnExitFormat","name":"SetRemainOnExitFormat","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetRemainOnExitFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetRemainOnExitFormat stores the \"remain-on-exit-format\" pane option as string (tmux 3.3 or later). Read it with [PaneOptionValues.RemainOnExitFormat] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6216,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetRemainOnExitFormat","product":"core","slug":"tmux-pane-setremainonexitformat"},{"id":"tmux.Session.SetRenumberWindows","name":"SetRenumberWindows","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetRenumberWindows(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetRenumberWindows stores the \"renumber-windows\" session option as bool (tmux 3.2a or later). Read it with [SessionOptionValues.RenumberWindows] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6226,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetRenumberWindows","product":"core","slug":"tmux-session-setrenumberwindows"},{"id":"tmux.GlobalSessionScope.SetRenumberWindows","name":"SetRenumberWindows","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetRenumberWindows(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetRenumberWindows stores the \"renumber-windows\" session option as bool (tmux 3.2a or later). Read it with [SessionOptionValues.RenumberWindows] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6236,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetRenumberWindows","product":"core","slug":"tmux-globalsessionscope-setrenumberwindows"},{"id":"tmux.Session.SetRepeatTime","name":"SetRepeatTime","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetRepeatTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetRepeatTime stores the \"repeat-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.RepeatTime] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6244,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetRepeatTime","product":"core","slug":"tmux-session-setrepeattime"},{"id":"tmux.GlobalSessionScope.SetRepeatTime","name":"SetRepeatTime","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetRepeatTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetRepeatTime stores the \"repeat-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.RepeatTime] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6258,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetRepeatTime","product":"core","slug":"tmux-globalsessionscope-setrepeattime"},{"id":"tmux.Window.SetScrollOnClear","name":"SetScrollOnClear","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetScrollOnClear(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetScrollOnClear stores the \"scroll-on-clear\" window option as bool (tmux 3.3 or later). Read it with [WindowOptionValues.ScrollOnClear] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6270,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetScrollOnClear","product":"core","slug":"tmux-window-setscrollonclear"},{"id":"tmux.GlobalWindowScope.SetScrollOnClear","name":"SetScrollOnClear","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetScrollOnClear(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetScrollOnClear stores the \"scroll-on-clear\" window option as bool (tmux 3.3 or later). Read it with [WindowOptionValues.ScrollOnClear] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6280,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetScrollOnClear","product":"core","slug":"tmux-globalwindowscope-setscrollonclear"},{"id":"tmux.Pane.SetScrollOnClear","name":"SetScrollOnClear","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetScrollOnClear(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetScrollOnClear stores the \"scroll-on-clear\" pane option as bool (tmux 3.3 or later). Read it with [PaneOptionValues.ScrollOnClear] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6288,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetScrollOnClear","product":"core","slug":"tmux-pane-setscrollonclear"},{"id":"tmux.Window.SetSessionStatusCurrentStyle","name":"SetSessionStatusCurrentStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetSessionStatusCurrentStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetSessionStatusCurrentStyle stores the \"session-status-current-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.SessionStatusCurrentStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6298,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetSessionStatusCurrentStyle","product":"core","slug":"tmux-window-setsessionstatuscurrentstyle"},{"id":"tmux.GlobalWindowScope.SetSessionStatusCurrentStyle","name":"SetSessionStatusCurrentStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetSessionStatusCurrentStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetSessionStatusCurrentStyle stores the \"session-status-current-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.SessionStatusCurrentStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6308,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetSessionStatusCurrentStyle","product":"core","slug":"tmux-globalwindowscope-setsessionstatuscurrentstyle"},{"id":"tmux.Window.SetSessionStatusStyle","name":"SetSessionStatusStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetSessionStatusStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetSessionStatusStyle stores the \"session-status-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.SessionStatusStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6316,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetSessionStatusStyle","product":"core","slug":"tmux-window-setsessionstatusstyle"},{"id":"tmux.GlobalWindowScope.SetSessionStatusStyle","name":"SetSessionStatusStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetSessionStatusStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetSessionStatusStyle stores the \"session-status-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.SessionStatusStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6326,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetSessionStatusStyle","product":"core","slug":"tmux-globalwindowscope-setsessionstatusstyle"},{"id":"tmux.Server.SetClipboard","name":"SetClipboard","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetClipboard(ctx context.Context, value SetClipboard) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SetClipboard"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetClipboard stores the \"set-clipboard\" server option as SetClipboard (tmux 3.2a or later). Read it with [ServerOptionValues.SetClipboard] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6334,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetClipboard","product":"core","slug":"tmux-server-setclipboard"},{"id":"tmux.Session.SetTitles","name":"SetTitles","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetTitles(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetTitles stores the \"set-titles\" session option as bool (tmux 3.2a or later). Read it with [SessionOptionValues.SetTitles] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6342,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetTitles","product":"core","slug":"tmux-session-settitles"},{"id":"tmux.GlobalSessionScope.SetTitles","name":"SetTitles","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetTitles(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetTitles stores the \"set-titles\" session option as bool (tmux 3.2a or later). Read it with [SessionOptionValues.SetTitles] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6352,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetTitles","product":"core","slug":"tmux-globalsessionscope-settitles"},{"id":"tmux.Session.SetTitlesString","name":"SetTitlesString","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetTitlesString(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetTitlesString stores the \"set-titles-string\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.SetTitlesString] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6360,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetTitlesString","product":"core","slug":"tmux-session-settitlesstring"},{"id":"tmux.GlobalSessionScope.SetTitlesString","name":"SetTitlesString","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetTitlesString(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetTitlesString stores the \"set-titles-string\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.SetTitlesString] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6370,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetTitlesString","product":"core","slug":"tmux-globalsessionscope-settitlesstring"},{"id":"tmux.Session.SetSilenceAction","name":"SetSilenceAction","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetSilenceAction(ctx context.Context, value SilenceAction) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SilenceAction"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetSilenceAction stores the \"silence-action\" session option as SilenceAction (tmux 3.2a or later). Read it with [SessionOptionValues.SilenceAction] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6378,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetSilenceAction","product":"core","slug":"tmux-session-setsilenceaction"},{"id":"tmux.GlobalSessionScope.SetSilenceAction","name":"SetSilenceAction","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetSilenceAction(ctx context.Context, value SilenceAction) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SilenceAction"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetSilenceAction stores the \"silence-action\" session option as SilenceAction (tmux 3.2a or later). Read it with [SessionOptionValues.SilenceAction] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6388,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetSilenceAction","product":"core","slug":"tmux-globalsessionscope-setsilenceaction"},{"id":"tmux.Session.SetStatus","name":"SetStatus","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatus(ctx context.Context, value Status) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"Status"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatus stores the \"status\" session option as Status (tmux 3.2a or later). Read it with [SessionOptionValues.Status] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6396,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatus","product":"core","slug":"tmux-session-setstatus"},{"id":"tmux.GlobalSessionScope.SetStatus","name":"SetStatus","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatus(ctx context.Context, value Status) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"Status"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatus stores the \"status\" session option as Status (tmux 3.2a or later). Read it with [SessionOptionValues.Status] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6406,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatus","product":"core","slug":"tmux-globalsessionscope-setstatus"},{"id":"tmux.Session.SetStatusBG","name":"SetStatusBG","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusBG(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusBG stores the \"status-bg\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusBG] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6414,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusBG","product":"core","slug":"tmux-session-setstatusbg"},{"id":"tmux.GlobalSessionScope.SetStatusBG","name":"SetStatusBG","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusBG(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusBG stores the \"status-bg\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusBG] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6424,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusBG","product":"core","slug":"tmux-globalsessionscope-setstatusbg"},{"id":"tmux.Session.SetStatusFG","name":"SetStatusFG","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusFG(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusFG stores the \"status-fg\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusFG] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6432,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusFG","product":"core","slug":"tmux-session-setstatusfg"},{"id":"tmux.GlobalSessionScope.SetStatusFG","name":"SetStatusFG","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusFG(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusFG stores the \"status-fg\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusFG] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6442,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusFG","product":"core","slug":"tmux-globalsessionscope-setstatusfg"},{"id":"tmux.Session.SetStatusInterval","name":"SetStatusInterval","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusInterval(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusInterval stores the \"status-interval\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.StatusInterval] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6450,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusInterval","product":"core","slug":"tmux-session-setstatusinterval"},{"id":"tmux.GlobalSessionScope.SetStatusInterval","name":"SetStatusInterval","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusInterval(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusInterval stores the \"status-interval\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.StatusInterval] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6464,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusInterval","product":"core","slug":"tmux-globalsessionscope-setstatusinterval"},{"id":"tmux.Session.SetStatusJustify","name":"SetStatusJustify","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusJustify(ctx context.Context, value StatusJustify) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"StatusJustify"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusJustify stores the \"status-justify\" session option as StatusJustify (tmux 3.2a or later). Read it with [SessionOptionValues.StatusJustify] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6476,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusJustify","product":"core","slug":"tmux-session-setstatusjustify"},{"id":"tmux.GlobalSessionScope.SetStatusJustify","name":"SetStatusJustify","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusJustify(ctx context.Context, value StatusJustify) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"StatusJustify"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusJustify stores the \"status-justify\" session option as StatusJustify (tmux 3.2a or later). Read it with [SessionOptionValues.StatusJustify] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6486,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusJustify","product":"core","slug":"tmux-globalsessionscope-setstatusjustify"},{"id":"tmux.Session.SetStatusKeys","name":"SetStatusKeys","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusKeys(ctx context.Context, value StatusKeys) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"StatusKeys"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusKeys stores the \"status-keys\" session option as StatusKeys (tmux 3.2a or later). Read it with [SessionOptionValues.StatusKeys] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6494,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusKeys","product":"core","slug":"tmux-session-setstatuskeys"},{"id":"tmux.GlobalSessionScope.SetStatusKeys","name":"SetStatusKeys","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusKeys(ctx context.Context, value StatusKeys) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"StatusKeys"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusKeys stores the \"status-keys\" session option as StatusKeys (tmux 3.2a or later). Read it with [SessionOptionValues.StatusKeys] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6504,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusKeys","product":"core","slug":"tmux-globalsessionscope-setstatuskeys"},{"id":"tmux.Session.SetStatusLeft","name":"SetStatusLeft","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusLeft(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusLeft stores the \"status-left\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusLeft] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6512,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusLeft","product":"core","slug":"tmux-session-setstatusleft"},{"id":"tmux.GlobalSessionScope.SetStatusLeft","name":"SetStatusLeft","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusLeft(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusLeft stores the \"status-left\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusLeft] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6522,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusLeft","product":"core","slug":"tmux-globalsessionscope-setstatusleft"},{"id":"tmux.Session.SetStatusLeftLength","name":"SetStatusLeftLength","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusLeftLength(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusLeftLength stores the \"status-left-length\" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.StatusLeftLength] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6530,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusLeftLength","product":"core","slug":"tmux-session-setstatusleftlength"},{"id":"tmux.GlobalSessionScope.SetStatusLeftLength","name":"SetStatusLeftLength","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusLeftLength(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusLeftLength stores the \"status-left-length\" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.StatusLeftLength] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6540,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusLeftLength","product":"core","slug":"tmux-globalsessionscope-setstatusleftlength"},{"id":"tmux.Session.SetStatusLeftStyle","name":"SetStatusLeftStyle","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusLeftStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusLeftStyle stores the \"status-left-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusLeftStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6548,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusLeftStyle","product":"core","slug":"tmux-session-setstatusleftstyle"},{"id":"tmux.GlobalSessionScope.SetStatusLeftStyle","name":"SetStatusLeftStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusLeftStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusLeftStyle stores the \"status-left-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusLeftStyle] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6558,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusLeftStyle","product":"core","slug":"tmux-globalsessionscope-setstatusleftstyle"},{"id":"tmux.Session.SetStatusPosition","name":"SetStatusPosition","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusPosition(ctx context.Context, value StatusPosition) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"StatusPosition"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusPosition stores the \"status-position\" session option as StatusPosition (tmux 3.2a or later). Read it with [SessionOptionValues.StatusPosition] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6566,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusPosition","product":"core","slug":"tmux-session-setstatusposition"},{"id":"tmux.GlobalSessionScope.SetStatusPosition","name":"SetStatusPosition","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusPosition(ctx context.Context, value StatusPosition) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"StatusPosition"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusPosition stores the \"status-position\" session option as StatusPosition (tmux 3.2a or later). Read it with [SessionOptionValues.StatusPosition] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6576,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusPosition","product":"core","slug":"tmux-globalsessionscope-setstatusposition"},{"id":"tmux.Session.SetStatusRight","name":"SetStatusRight","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusRight(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusRight stores the \"status-right\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusRight] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6584,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusRight","product":"core","slug":"tmux-session-setstatusright"},{"id":"tmux.GlobalSessionScope.SetStatusRight","name":"SetStatusRight","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusRight(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusRight stores the \"status-right\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusRight] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6594,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusRight","product":"core","slug":"tmux-globalsessionscope-setstatusright"},{"id":"tmux.Session.SetStatusRightLength","name":"SetStatusRightLength","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusRightLength(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusRightLength stores the \"status-right-length\" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.StatusRightLength] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6602,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusRightLength","product":"core","slug":"tmux-session-setstatusrightlength"},{"id":"tmux.GlobalSessionScope.SetStatusRightLength","name":"SetStatusRightLength","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusRightLength(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusRightLength stores the \"status-right-length\" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.StatusRightLength] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6612,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusRightLength","product":"core","slug":"tmux-globalsessionscope-setstatusrightlength"},{"id":"tmux.Session.SetStatusRightStyle","name":"SetStatusRightStyle","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusRightStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusRightStyle stores the \"status-right-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusRightStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6620,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusRightStyle","product":"core","slug":"tmux-session-setstatusrightstyle"},{"id":"tmux.GlobalSessionScope.SetStatusRightStyle","name":"SetStatusRightStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusRightStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusRightStyle stores the \"status-right-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusRightStyle] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6630,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusRightStyle","product":"core","slug":"tmux-globalsessionscope-setstatusrightstyle"},{"id":"tmux.Session.SetStatusStyle","name":"SetStatusStyle","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusStyle stores the \"status-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6638,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusStyle","product":"core","slug":"tmux-session-setstatusstyle"},{"id":"tmux.GlobalSessionScope.SetStatusStyle","name":"SetStatusStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusStyle stores the \"status-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusStyle] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6648,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusStyle","product":"core","slug":"tmux-globalsessionscope-setstatusstyle"},{"id":"tmux.Window.SetSynchronizePanes","name":"SetSynchronizePanes","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetSynchronizePanes(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetSynchronizePanes stores the \"synchronize-panes\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.SynchronizePanes] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6656,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetSynchronizePanes","product":"core","slug":"tmux-window-setsynchronizepanes"},{"id":"tmux.GlobalWindowScope.SetSynchronizePanes","name":"SetSynchronizePanes","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetSynchronizePanes(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetSynchronizePanes stores the \"synchronize-panes\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.SynchronizePanes] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6666,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetSynchronizePanes","product":"core","slug":"tmux-globalwindowscope-setsynchronizepanes"},{"id":"tmux.Pane.SetSynchronizePanes","name":"SetSynchronizePanes","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetSynchronizePanes(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetSynchronizePanes stores the \"synchronize-panes\" pane option as bool (tmux 3.2a or later). Read it with [PaneOptionValues.SynchronizePanes] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6674,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetSynchronizePanes","product":"core","slug":"tmux-pane-setsynchronizepanes"},{"id":"tmux.Window.SetTiledLayoutMaxColumns","name":"SetTiledLayoutMaxColumns","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetTiledLayoutMaxColumns(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetTiledLayoutMaxColumns stores the \"tiled-layout-max-columns\" window option as int64 (tmux 3.6 or later). Read it with [WindowOptionValues.TiledLayoutMaxColumns] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6684,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetTiledLayoutMaxColumns","product":"core","slug":"tmux-window-settiledlayoutmaxcolumns"},{"id":"tmux.GlobalWindowScope.SetTiledLayoutMaxColumns","name":"SetTiledLayoutMaxColumns","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetTiledLayoutMaxColumns(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetTiledLayoutMaxColumns stores the \"tiled-layout-max-columns\" window option as int64 (tmux 3.6 or later). Read it with [WindowOptionValues.TiledLayoutMaxColumns] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6694,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetTiledLayoutMaxColumns","product":"core","slug":"tmux-globalwindowscope-settiledlayoutmaxcolumns"},{"id":"tmux.Window.SetTreeModePreviewFormat","name":"SetTreeModePreviewFormat","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetTreeModePreviewFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetTreeModePreviewFormat stores the \"tree-mode-preview-format\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.TreeModePreviewFormat] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6702,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetTreeModePreviewFormat","product":"core","slug":"tmux-window-settreemodepreviewformat"},{"id":"tmux.GlobalWindowScope.SetTreeModePreviewFormat","name":"SetTreeModePreviewFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetTreeModePreviewFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetTreeModePreviewFormat stores the \"tree-mode-preview-format\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.TreeModePreviewFormat] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6712,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetTreeModePreviewFormat","product":"core","slug":"tmux-globalwindowscope-settreemodepreviewformat"},{"id":"tmux.Pane.SetTreeModePreviewFormat","name":"SetTreeModePreviewFormat","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetTreeModePreviewFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetTreeModePreviewFormat stores the \"tree-mode-preview-format\" pane option as string (tmux 3.7 or later). Read it with [PaneOptionValues.TreeModePreviewFormat] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6720,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetTreeModePreviewFormat","product":"core","slug":"tmux-pane-settreemodepreviewformat"},{"id":"tmux.Window.SetTreeModePreviewStyle","name":"SetTreeModePreviewStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetTreeModePreviewStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetTreeModePreviewStyle stores the \"tree-mode-preview-style\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.TreeModePreviewStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6730,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetTreeModePreviewStyle","product":"core","slug":"tmux-window-settreemodepreviewstyle"},{"id":"tmux.GlobalWindowScope.SetTreeModePreviewStyle","name":"SetTreeModePreviewStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetTreeModePreviewStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetTreeModePreviewStyle stores the \"tree-mode-preview-style\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.TreeModePreviewStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6740,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetTreeModePreviewStyle","product":"core","slug":"tmux-globalwindowscope-settreemodepreviewstyle"},{"id":"tmux.Server.SetVariationSelectorAlwaysWide","name":"SetVariationSelectorAlwaysWide","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetVariationSelectorAlwaysWide(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetVariationSelectorAlwaysWide stores the \"variation-selector-always-wide\" server option as bool (tmux 3.6 or later). Read it with [ServerOptionValues.VariationSelectorAlwaysWide] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6748,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetVariationSelectorAlwaysWide","product":"core","slug":"tmux-server-setvariationselectoralwayswide"},{"id":"tmux.Session.SetVisualActivity","name":"SetVisualActivity","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetVisualActivity(ctx context.Context, value VisualActivity) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"VisualActivity"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetVisualActivity stores the \"visual-activity\" session option as VisualActivity (tmux 3.2a or later). Read it with [SessionOptionValues.VisualActivity] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6756,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetVisualActivity","product":"core","slug":"tmux-session-setvisualactivity"},{"id":"tmux.GlobalSessionScope.SetVisualActivity","name":"SetVisualActivity","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetVisualActivity(ctx context.Context, value VisualActivity) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"VisualActivity"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetVisualActivity stores the \"visual-activity\" session option as VisualActivity (tmux 3.2a or later). Read it with [SessionOptionValues.VisualActivity] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6766,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetVisualActivity","product":"core","slug":"tmux-globalsessionscope-setvisualactivity"},{"id":"tmux.Session.SetVisualBell","name":"SetVisualBell","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetVisualBell(ctx context.Context, value VisualBell) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"VisualBell"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetVisualBell stores the \"visual-bell\" session option as VisualBell (tmux 3.2a or later). Read it with [SessionOptionValues.VisualBell] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6774,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetVisualBell","product":"core","slug":"tmux-session-setvisualbell"},{"id":"tmux.GlobalSessionScope.SetVisualBell","name":"SetVisualBell","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetVisualBell(ctx context.Context, value VisualBell) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"VisualBell"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetVisualBell stores the \"visual-bell\" session option as VisualBell (tmux 3.2a or later). Read it with [SessionOptionValues.VisualBell] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6784,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetVisualBell","product":"core","slug":"tmux-globalsessionscope-setvisualbell"},{"id":"tmux.Session.SetVisualSilence","name":"SetVisualSilence","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetVisualSilence(ctx context.Context, value VisualSilence) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"VisualSilence"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetVisualSilence stores the \"visual-silence\" session option as VisualSilence (tmux 3.2a or later). Read it with [SessionOptionValues.VisualSilence] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6792,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetVisualSilence","product":"core","slug":"tmux-session-setvisualsilence"},{"id":"tmux.GlobalSessionScope.SetVisualSilence","name":"SetVisualSilence","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetVisualSilence(ctx context.Context, value VisualSilence) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"VisualSilence"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetVisualSilence stores the \"visual-silence\" session option as VisualSilence (tmux 3.2a or later). Read it with [SessionOptionValues.VisualSilence] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6802,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetVisualSilence","product":"core","slug":"tmux-globalsessionscope-setvisualsilence"},{"id":"tmux.Window.SetWindowActiveStyle","name":"SetWindowActiveStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowActiveStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowActiveStyle stores the \"window-active-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowActiveStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6810,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowActiveStyle","product":"core","slug":"tmux-window-setwindowactivestyle"},{"id":"tmux.GlobalWindowScope.SetWindowActiveStyle","name":"SetWindowActiveStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowActiveStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowActiveStyle stores the \"window-active-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowActiveStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6820,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowActiveStyle","product":"core","slug":"tmux-globalwindowscope-setwindowactivestyle"},{"id":"tmux.Pane.SetWindowActiveStyle","name":"SetWindowActiveStyle","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetWindowActiveStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetWindowActiveStyle stores the \"window-active-style\" pane option as string (tmux 3.2a or later). Read it with [PaneOptionValues.WindowActiveStyle] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6828,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetWindowActiveStyle","product":"core","slug":"tmux-pane-setwindowactivestyle"},{"id":"tmux.Window.SetWindowPaneCurrentStatusFormat","name":"SetWindowPaneCurrentStatusFormat","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowPaneCurrentStatusFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowPaneCurrentStatusFormat stores the \"window-pane-current-status-format\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.WindowPaneCurrentStatusFormat] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6838,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowPaneCurrentStatusFormat","product":"core","slug":"tmux-window-setwindowpanecurrentstatusformat"},{"id":"tmux.GlobalWindowScope.SetWindowPaneCurrentStatusFormat","name":"SetWindowPaneCurrentStatusFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowPaneCurrentStatusFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowPaneCurrentStatusFormat stores the \"window-pane-current-status-format\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.WindowPaneCurrentStatusFormat] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6848,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowPaneCurrentStatusFormat","product":"core","slug":"tmux-globalwindowscope-setwindowpanecurrentstatusformat"},{"id":"tmux.Window.SetWindowPaneStatusFormat","name":"SetWindowPaneStatusFormat","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowPaneStatusFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowPaneStatusFormat stores the \"window-pane-status-format\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.WindowPaneStatusFormat] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6856,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowPaneStatusFormat","product":"core","slug":"tmux-window-setwindowpanestatusformat"},{"id":"tmux.GlobalWindowScope.SetWindowPaneStatusFormat","name":"SetWindowPaneStatusFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowPaneStatusFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowPaneStatusFormat stores the \"window-pane-status-format\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.WindowPaneStatusFormat] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6866,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowPaneStatusFormat","product":"core","slug":"tmux-globalwindowscope-setwindowpanestatusformat"},{"id":"tmux.Window.SetWindowSize","name":"SetWindowSize","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowSize(ctx context.Context, value WindowSize) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"WindowSize"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowSize stores the \"window-size\" window option as WindowSize (tmux 3.2a or later). Read it with [WindowOptionValues.WindowSize] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6874,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowSize","product":"core","slug":"tmux-window-setwindowsize"},{"id":"tmux.GlobalWindowScope.SetWindowSize","name":"SetWindowSize","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowSize(ctx context.Context, value WindowSize) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"WindowSize"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowSize stores the \"window-size\" window option as WindowSize (tmux 3.2a or later). Read it with [WindowOptionValues.WindowSize] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6884,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowSize","product":"core","slug":"tmux-globalwindowscope-setwindowsize"},{"id":"tmux.Window.SetWindowStatusActivityStyle","name":"SetWindowStatusActivityStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowStatusActivityStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowStatusActivityStyle stores the \"window-status-activity-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusActivityStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6892,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowStatusActivityStyle","product":"core","slug":"tmux-window-setwindowstatusactivitystyle"},{"id":"tmux.GlobalWindowScope.SetWindowStatusActivityStyle","name":"SetWindowStatusActivityStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowStatusActivityStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowStatusActivityStyle stores the \"window-status-activity-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusActivityStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6902,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowStatusActivityStyle","product":"core","slug":"tmux-globalwindowscope-setwindowstatusactivitystyle"},{"id":"tmux.Window.SetWindowStatusBellStyle","name":"SetWindowStatusBellStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowStatusBellStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowStatusBellStyle stores the \"window-status-bell-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusBellStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6910,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowStatusBellStyle","product":"core","slug":"tmux-window-setwindowstatusbellstyle"},{"id":"tmux.GlobalWindowScope.SetWindowStatusBellStyle","name":"SetWindowStatusBellStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowStatusBellStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowStatusBellStyle stores the \"window-status-bell-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusBellStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6920,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowStatusBellStyle","product":"core","slug":"tmux-globalwindowscope-setwindowstatusbellstyle"},{"id":"tmux.Window.SetWindowStatusCurrentFormat","name":"SetWindowStatusCurrentFormat","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowStatusCurrentFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowStatusCurrentFormat stores the \"window-status-current-format\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusCurrentFormat] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6928,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowStatusCurrentFormat","product":"core","slug":"tmux-window-setwindowstatuscurrentformat"},{"id":"tmux.GlobalWindowScope.SetWindowStatusCurrentFormat","name":"SetWindowStatusCurrentFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowStatusCurrentFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowStatusCurrentFormat stores the \"window-status-current-format\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusCurrentFormat] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6938,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowStatusCurrentFormat","product":"core","slug":"tmux-globalwindowscope-setwindowstatuscurrentformat"},{"id":"tmux.Window.SetWindowStatusCurrentStyle","name":"SetWindowStatusCurrentStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowStatusCurrentStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowStatusCurrentStyle stores the \"window-status-current-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusCurrentStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6946,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowStatusCurrentStyle","product":"core","slug":"tmux-window-setwindowstatuscurrentstyle"},{"id":"tmux.GlobalWindowScope.SetWindowStatusCurrentStyle","name":"SetWindowStatusCurrentStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowStatusCurrentStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowStatusCurrentStyle stores the \"window-status-current-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusCurrentStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6956,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowStatusCurrentStyle","product":"core","slug":"tmux-globalwindowscope-setwindowstatuscurrentstyle"},{"id":"tmux.Window.SetWindowStatusFormat","name":"SetWindowStatusFormat","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowStatusFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowStatusFormat stores the \"window-status-format\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusFormat] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6964,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowStatusFormat","product":"core","slug":"tmux-window-setwindowstatusformat"},{"id":"tmux.GlobalWindowScope.SetWindowStatusFormat","name":"SetWindowStatusFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowStatusFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowStatusFormat stores the \"window-status-format\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusFormat] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6974,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowStatusFormat","product":"core","slug":"tmux-globalwindowscope-setwindowstatusformat"},{"id":"tmux.Window.SetWindowStatusLastStyle","name":"SetWindowStatusLastStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowStatusLastStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowStatusLastStyle stores the \"window-status-last-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusLastStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6982,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowStatusLastStyle","product":"core","slug":"tmux-window-setwindowstatuslaststyle"},{"id":"tmux.GlobalWindowScope.SetWindowStatusLastStyle","name":"SetWindowStatusLastStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowStatusLastStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowStatusLastStyle stores the \"window-status-last-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusLastStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6992,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowStatusLastStyle","product":"core","slug":"tmux-globalwindowscope-setwindowstatuslaststyle"},{"id":"tmux.Window.SetWindowStatusSeparator","name":"SetWindowStatusSeparator","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowStatusSeparator(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowStatusSeparator stores the \"window-status-separator\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusSeparator] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7000,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowStatusSeparator","product":"core","slug":"tmux-window-setwindowstatusseparator"},{"id":"tmux.GlobalWindowScope.SetWindowStatusSeparator","name":"SetWindowStatusSeparator","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowStatusSeparator(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowStatusSeparator stores the \"window-status-separator\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusSeparator] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7010,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowStatusSeparator","product":"core","slug":"tmux-globalwindowscope-setwindowstatusseparator"},{"id":"tmux.Window.SetWindowStatusStyle","name":"SetWindowStatusStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowStatusStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowStatusStyle stores the \"window-status-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7018,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowStatusStyle","product":"core","slug":"tmux-window-setwindowstatusstyle"},{"id":"tmux.GlobalWindowScope.SetWindowStatusStyle","name":"SetWindowStatusStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowStatusStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowStatusStyle stores the \"window-status-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7028,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowStatusStyle","product":"core","slug":"tmux-globalwindowscope-setwindowstatusstyle"},{"id":"tmux.Window.SetWindowStyle","name":"SetWindowStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowStyle stores the \"window-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7036,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowStyle","product":"core","slug":"tmux-window-setwindowstyle"},{"id":"tmux.GlobalWindowScope.SetWindowStyle","name":"SetWindowStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowStyle stores the \"window-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7046,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowStyle","product":"core","slug":"tmux-globalwindowscope-setwindowstyle"},{"id":"tmux.Pane.SetWindowStyle","name":"SetWindowStyle","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetWindowStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetWindowStyle stores the \"window-style\" pane option as string (tmux 3.2a or later). Read it with [PaneOptionValues.WindowStyle] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7054,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetWindowStyle","product":"core","slug":"tmux-pane-setwindowstyle"},{"id":"tmux.Session.SetWordSeparators","name":"SetWordSeparators","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetWordSeparators(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetWordSeparators stores the \"word-separators\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.WordSeparators] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7064,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetWordSeparators","product":"core","slug":"tmux-session-setwordseparators"},{"id":"tmux.GlobalSessionScope.SetWordSeparators","name":"SetWordSeparators","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetWordSeparators(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetWordSeparators stores the \"word-separators\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.WordSeparators] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7074,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetWordSeparators","product":"core","slug":"tmux-globalsessionscope-setwordseparators"},{"id":"tmux.Window.SetWrapSearch","name":"SetWrapSearch","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWrapSearch(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWrapSearch stores the \"wrap-search\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.WrapSearch] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7082,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWrapSearch","product":"core","slug":"tmux-window-setwrapsearch"},{"id":"tmux.GlobalWindowScope.SetWrapSearch","name":"SetWrapSearch","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWrapSearch(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWrapSearch stores the \"wrap-search\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.WrapSearch] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7092,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWrapSearch","product":"core","slug":"tmux-globalwindowscope-setwrapsearch"},{"id":"tmux.Window.SetXTermKeys","name":"SetXTermKeys","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetXTermKeys(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetXTermKeys stores the \"xterm-keys\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.XTermKeys] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7100,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetXTermKeys","product":"core","slug":"tmux-window-setxtermkeys"},{"id":"tmux.GlobalWindowScope.SetXTermKeys","name":"SetXTermKeys","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetXTermKeys(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetXTermKeys stores the \"xterm-keys\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.XTermKeys] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7110,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetXTermKeys","product":"core","slug":"tmux-globalwindowscope-setxtermkeys"},{"id":"tmux.Server.SetCodepointWidths","name":"SetCodepointWidths","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetCodepointWidths(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"Server"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetCodepointWidths replaces the complete \"codepoint-widths\" server option array with SparseArray[string], preserving holes and empty values (tmux 3.6 or later). Read it with [ServerOptionValues.CodepointWidths] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7119,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetCodepointWidths","product":"core","slug":"tmux-server-setcodepointwidths"},{"id":"tmux.Server.SetCommandAlias","name":"SetCommandAlias","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetCommandAlias(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"Server"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetCommandAlias replaces the complete \"command-alias\" server option array with SparseArray[string], preserving holes and empty values (tmux 3.2a or later). Read it with [ServerOptionValues.CommandAlias] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7128,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetCommandAlias","product":"core","slug":"tmux-server-setcommandalias"},{"id":"tmux.Window.SetPaneColours","name":"SetPaneColours","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneColours(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"w","type":"Window"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetPaneColours replaces the complete \"pane-colours\" window option array with SparseArray[string], preserving holes and empty values (tmux 3.3 or later). Read it with [WindowOptionValues.PaneColours] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7137,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneColours","product":"core","slug":"tmux-window-setpanecolours"},{"id":"tmux.GlobalWindowScope.SetPaneColours","name":"SetPaneColours","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneColours(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetPaneColours replaces the complete \"pane-colours\" window option array with SparseArray[string], preserving holes and empty values (tmux 3.3 or later). Read it with [WindowOptionValues.PaneColours] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7148,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneColours","product":"core","slug":"tmux-globalwindowscope-setpanecolours"},{"id":"tmux.Pane.SetPaneColours","name":"SetPaneColours","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetPaneColours(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"p","type":"Pane"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetPaneColours replaces the complete \"pane-colours\" pane option array with SparseArray[string], preserving holes and empty values (tmux 3.3 or later). Read it with [PaneOptionValues.PaneColours] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7157,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetPaneColours","product":"core","slug":"tmux-pane-setpanecolours"},{"id":"tmux.Session.SetStatusFormat","name":"SetStatusFormat","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusFormat(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"Session"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetStatusFormat replaces the complete \"status-format\" session option array with SparseArray[string], preserving holes and empty values (tmux 3.2a or later). Read it with [SessionOptionValues.StatusFormat] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7168,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusFormat","product":"core","slug":"tmux-session-setstatusformat"},{"id":"tmux.GlobalSessionScope.SetStatusFormat","name":"SetStatusFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusFormat(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetStatusFormat replaces the complete \"status-format\" session option array with SparseArray[string], preserving holes and empty values (tmux 3.2a or later). Read it with [SessionOptionValues.StatusFormat] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7179,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusFormat","product":"core","slug":"tmux-globalsessionscope-setstatusformat"},{"id":"tmux.Server.SetTerminalFeatures","name":"SetTerminalFeatures","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetTerminalFeatures(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"Server"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetTerminalFeatures replaces the complete \"terminal-features\" server option array with SparseArray[string], preserving holes and empty values (tmux 3.2a or later). Read it with [ServerOptionValues.TerminalFeatures] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7188,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetTerminalFeatures","product":"core","slug":"tmux-server-setterminalfeatures"},{"id":"tmux.Server.SetTerminalOverrides","name":"SetTerminalOverrides","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetTerminalOverrides(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"Server"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetTerminalOverrides replaces the complete \"terminal-overrides\" server option array with SparseArray[string], preserving holes and empty values (tmux 3.2a or later). Read it with [ServerOptionValues.TerminalOverrides] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7197,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetTerminalOverrides","product":"core","slug":"tmux-server-setterminaloverrides"},{"id":"tmux.Session.SetUpdateEnvironment","name":"SetUpdateEnvironment","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetUpdateEnvironment(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"Session"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetUpdateEnvironment replaces the complete \"update-environment\" session option array with SparseArray[string], preserving holes and empty values (tmux 3.2a or later). Read it with [SessionOptionValues.UpdateEnvironment] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7206,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetUpdateEnvironment","product":"core","slug":"tmux-session-setupdateenvironment"},{"id":"tmux.GlobalSessionScope.SetUpdateEnvironment","name":"SetUpdateEnvironment","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetUpdateEnvironment(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetUpdateEnvironment replaces the complete \"update-environment\" session option array with SparseArray[string], preserving holes and empty values (tmux 3.2a or later). Read it with [SessionOptionValues.UpdateEnvironment] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7217,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetUpdateEnvironment","product":"core","slug":"tmux-globalsessionscope-setupdateenvironment"},{"id":"tmux.Server.SetUserKeys","name":"SetUserKeys","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetUserKeys(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"Server"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetUserKeys replaces the complete \"user-keys\" server option array with SparseArray[string], preserving holes and empty values (tmux 3.2a or later). Read it with [ServerOptionValues.UserKeys] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7226,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetUserKeys","product":"core","slug":"tmux-server-setuserkeys"},{"id":"tmux.SetOptionOptions","name":"SetOptionOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SetOptionOptions controls set-option mutation flags. Its zero value sends no optional mutation flags."},"source":{"file":"tmux/option_mutation.go","line":7,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetOptionOptions","product":"core","slug":"tmux-setoptionoptions"},{"id":"tmux.SetOptionOptions.ExpandFormat","name":"ExpandFormat","kind":"attribute","modifiers":[],"parent":"tmux.SetOptionOptions","signatures":[],"type":"bool","doc":{"summary":"ExpandFormat expands tmux formats in the value before storing it."},"source":{"file":"tmux/option_mutation.go","line":9,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetOptionOptions.ExpandFormat","product":"core","slug":"tmux-setoptionoptions-expandformat"},{"id":"tmux.SetOptionOptions.PreventOverwrite","name":"PreventOverwrite","kind":"attribute","modifiers":[],"parent":"tmux.SetOptionOptions","signatures":[],"type":"bool","doc":{"summary":"PreventOverwrite leaves an existing option unchanged."},"source":{"file":"tmux/option_mutation.go","line":11,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetOptionOptions.PreventOverwrite","product":"core","slug":"tmux-setoptionoptions-preventoverwrite"},{"id":"tmux.SetOptionOptions.Quiet","name":"Quiet","kind":"attribute","modifiers":[],"parent":"tmux.SetOptionOptions","signatures":[],"type":"bool","doc":{"summary":"Quiet suppresses tmux's missing-option diagnostic."},"source":{"file":"tmux/option_mutation.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetOptionOptions.Quiet","product":"core","slug":"tmux-setoptionoptions-quiet"},{"id":"tmux.UnsetOptionOptions","name":"UnsetOptionOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"UnsetOptionOptions controls set-option unset behavior. Its zero value unsets only the selected option."},"source":{"file":"tmux/option_mutation.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnsetOptionOptions","product":"core","slug":"tmux-unsetoptionoptions"},{"id":"tmux.UnsetOptionOptions.UnsetPanes","name":"UnsetPanes","kind":"attribute","modifiers":[],"parent":"tmux.UnsetOptionOptions","signatures":[],"type":"bool","doc":{"summary":"UnsetPanes unsets a window option on every pane in a Window receiver."},"source":{"file":"tmux/option_mutation.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnsetOptionOptions.UnsetPanes","product":"core","slug":"tmux-unsetoptionoptions-unsetpanes"},{"id":"tmux.UnsetOptionOptions.Quiet","name":"Quiet","kind":"attribute","modifiers":[],"parent":"tmux.UnsetOptionOptions","signatures":[],"type":"bool","doc":{"summary":"Quiet suppresses tmux's missing-option diagnostic."},"source":{"file":"tmux/option_mutation.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnsetOptionOptions.Quiet","product":"core","slug":"tmux-unsetoptionoptions-quiet"},{"id":"tmux.Server.SetOption","name":"SetOption","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetOption stores a server-scope option without refreshing existing models. It may validate a known option against the live version. Completed failures return secret-safe option errors; cancellation does not prove the mutation was not accepted by tmux."},"source":{"file":"tmux/option_mutation.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetOption","product":"core","slug":"tmux-server-setoption"},{"id":"tmux.GlobalSessionScope.SetOption","name":"SetOption","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetOption stores a global session option without refreshing existing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/option_mutation.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetOption","product":"core","slug":"tmux-globalsessionscope-setoption"},{"id":"tmux.GlobalWindowScope.SetOption","name":"SetOption","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetOption stores a global window option without refreshing existing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/option_mutation.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetOption","product":"core","slug":"tmux-globalwindowscope-setoption"},{"id":"tmux.Session.SetOption","name":"SetOption","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetOption stores a session option at this stable session target without refreshing existing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/option_mutation.go","line":92,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetOption","product":"core","slug":"tmux-session-setoption"},{"id":"tmux.Window.SetOption","name":"SetOption","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetOption stores a window option at this exact window target without refreshing existing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/option_mutation.go","line":108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetOption","product":"core","slug":"tmux-window-setoption"},{"id":"tmux.Pane.SetOption","name":"SetOption","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetOption stores a pane option at this exact pane target without refreshing existing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/option_mutation.go","line":128,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetOption","product":"core","slug":"tmux-pane-setoption"},{"id":"tmux.Server.AppendOption","name":"AppendOption","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) AppendOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"AppendOption appends to a server-scope option without refreshing existing models. Completed failures are secret-safe option errors; cancellation does not prove the append was not accepted."},"source":{"file":"tmux/option_mutation.go","line":144,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.AppendOption","product":"core","slug":"tmux-server-appendoption"},{"id":"tmux.GlobalSessionScope.AppendOption","name":"AppendOption","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) AppendOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"AppendOption appends to a global session option without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove the append was not accepted."},"source":{"file":"tmux/option_mutation.go","line":165,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.AppendOption","product":"core","slug":"tmux-globalsessionscope-appendoption"},{"id":"tmux.GlobalWindowScope.AppendOption","name":"AppendOption","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) AppendOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"AppendOption appends to a global window option without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove the append was not accepted."},"source":{"file":"tmux/option_mutation.go","line":186,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.AppendOption","product":"core","slug":"tmux-globalwindowscope-appendoption"},{"id":"tmux.Session.AppendOption","name":"AppendOption","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) AppendOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"AppendOption appends to a session option at this stable session target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove the append was not accepted."},"source":{"file":"tmux/option_mutation.go","line":207,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.AppendOption","product":"core","slug":"tmux-session-appendoption"},{"id":"tmux.Window.AppendOption","name":"AppendOption","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) AppendOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"AppendOption appends to a window option at this exact window target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove the append was not accepted."},"source":{"file":"tmux/option_mutation.go","line":223,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.AppendOption","product":"core","slug":"tmux-window-appendoption"},{"id":"tmux.Pane.AppendOption","name":"AppendOption","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) AppendOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"AppendOption appends to a pane option at this exact pane target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove the append was not accepted."},"source":{"file":"tmux/option_mutation.go","line":243,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.AppendOption","product":"core","slug":"tmux-pane-appendoption"},{"id":"tmux.Server.UnsetOption","name":"UnsetOption","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) UnsetOption(\n\tctx context.Context,\n\tname string,\n\toptions UnsetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"options","type":"UnsetOptionOptions"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"UnsetOption unsets a server-scope option without refreshing existing models. UnsetPanes is invalid at server scope. Completed failures are secret-safe option errors; cancellation does not prove the unset was not accepted."},"source":{"file":"tmux/option_mutation.go","line":259,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.UnsetOption","product":"core","slug":"tmux-server-unsetoption"},{"id":"tmux.GlobalSessionScope.UnsetOption","name":"UnsetOption","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) UnsetOption(\n\tctx context.Context,\n\tname string,\n\toptions UnsetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"options","type":"UnsetOptionOptions"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"UnsetOption unsets a global session option without refreshing models. UnsetPanes is invalid at this scope; cancellation does not prove the unset was not accepted."},"source":{"file":"tmux/option_mutation.go","line":273,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.UnsetOption","product":"core","slug":"tmux-globalsessionscope-unsetoption"},{"id":"tmux.GlobalWindowScope.UnsetOption","name":"UnsetOption","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) UnsetOption(\n\tctx context.Context,\n\tname string,\n\toptions UnsetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"options","type":"UnsetOptionOptions"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"UnsetOption unsets a global window option without refreshing models. UnsetPanes is invalid at this scope; cancellation does not prove the unset was not accepted."},"source":{"file":"tmux/option_mutation.go","line":295,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.UnsetOption","product":"core","slug":"tmux-globalwindowscope-unsetoption"},{"id":"tmux.Session.UnsetOption","name":"UnsetOption","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) UnsetOption(\n\tctx context.Context,\n\tname string,\n\toptions UnsetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"options","type":"UnsetOptionOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"UnsetOption unsets a session option at this stable session target without refreshing models. UnsetPanes is invalid at this scope; cancellation does not prove the unset was not accepted."},"source":{"file":"tmux/option_mutation.go","line":317,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.UnsetOption","product":"core","slug":"tmux-session-unsetoption"},{"id":"tmux.Window.UnsetOption","name":"UnsetOption","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) UnsetOption(\n\tctx context.Context,\n\tname string,\n\toptions UnsetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"options","type":"UnsetOptionOptions"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"UnsetOption unsets a window option at this exact window target, or its pane copies with UnsetPanes, without refreshing models. Cancellation does not prove the unset was not accepted."},"source":{"file":"tmux/option_mutation.go","line":335,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.UnsetOption","product":"core","slug":"tmux-window-unsetoption"},{"id":"tmux.Pane.UnsetOption","name":"UnsetOption","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) UnsetOption(\n\tctx context.Context,\n\tname string,\n\toptions UnsetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"options","type":"UnsetOptionOptions"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"UnsetOption unsets a pane option at this exact pane target without refreshing models. UnsetPanes is invalid at this scope; cancellation does not prove the unset was not accepted."},"source":{"file":"tmux/option_mutation.go","line":358,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.UnsetOption","product":"core","slug":"tmux-pane-unsetoption"},{"id":"tmux.Server.Options","name":"Options","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Options(ctx context.Context) (ServerOptionValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"(ServerOptionValues, error)"}],"doc":{"summary":"Options returns a freshly decoded, caller-owned view of known server options, including inherited values. A read or transport failure is returned rather than answered with zero values; context errors propagate. Each returned accessor names the setter that writes it, so [ServerOptionValues.BufferLimit] pairs with [Server.SetBufferLimit]."},"source":{"file":"tmux/option_read.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Options","product":"core","slug":"tmux-server-options"},{"id":"tmux.GlobalSessionScope.Options","name":"Options","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) Options(ctx context.Context) (SessionOptionValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"(SessionOptionValues, error)"}],"doc":{"summary":"Options returns a freshly decoded, caller-owned view of known global session options, including defaults. A read failure is returned rather than answered with zero values; context errors propagate. Each returned accessor names the setter that writes it, so [SessionOptionValues.Status] pairs with [GlobalSessionScope.SetStatus]."},"source":{"file":"tmux/option_read.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.Options","product":"core","slug":"tmux-globalsessionscope-options"},{"id":"tmux.GlobalWindowScope.Options","name":"Options","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) Options(ctx context.Context) (WindowOptionValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"(WindowOptionValues, error)"}],"doc":{"summary":"Options returns a freshly decoded, caller-owned view of known global window options, including defaults. A read failure is returned rather than answered with zero values; context errors propagate. Each returned accessor names the setter that writes it, so [WindowOptionValues.MainPaneWidth] pairs with [GlobalWindowScope.SetMainPaneWidth]."},"source":{"file":"tmux/option_read.go","line":55,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.Options","product":"core","slug":"tmux-globalwindowscope-options"},{"id":"tmux.Session.Options","name":"Options","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Options(ctx context.Context) (SessionOptionValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"(SessionOptionValues, error)"}],"doc":{"summary":"Options returns a freshly decoded, caller-owned view of known options at this stable session target, including inherited values. A read failure is returned rather than answered with zero values; context errors propagate. Each returned accessor names the setter that writes it, so [SessionOptionValues.Mouse] pairs with [Session.SetMouse]."},"source":{"file":"tmux/option_read.go","line":75,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Options","product":"core","slug":"tmux-session-options"},{"id":"tmux.Window.Options","name":"Options","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Options(ctx context.Context) (WindowOptionValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"(WindowOptionValues, error)"}],"doc":{"summary":"Options returns a freshly decoded, caller-owned view of known options at this exact window target, including inherited values. The receiver's exact linked session context controls tmux format evaluation. A read failure is returned rather than answered with zero values. Each returned accessor names the setter that writes it, so [WindowOptionValues.MainPaneWidth] pairs with [Window.SetMainPaneWidth]."},"source":{"file":"tmux/option_read.go","line":100,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Options","product":"core","slug":"tmux-window-options"},{"id":"tmux.Pane.Options","name":"Options","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Options(ctx context.Context) (PaneOptionValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"(PaneOptionValues, error)"}],"doc":{"summary":"Options returns a freshly decoded, caller-owned view of known options at this exact pane target, including inherited values. The receiver's exact linked session context controls tmux format evaluation. A read failure is returned rather than answered with zero values. Each returned accessor names the setter that writes it, so [PaneOptionValues.WindowStyle] pairs with [Pane.SetWindowStyle]."},"source":{"file":"tmux/option_read.go","line":125,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Options","product":"core","slug":"tmux-pane-options"},{"id":"tmux.Server.RawOption","name":"RawOption","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) RawOption(ctx context.Context, name string) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawOption returns one exact server-scope option value. A successful string is caller-owned; ok reports presence. Targeted reads do not use list leniency, and completed failures return a secret-safe option error. An unindexed empty array is indistinguishable from an empty scalar; use Options for typed array presence."},"source":{"file":"tmux/option_read.go","line":149,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.RawOption","product":"core","slug":"tmux-server-rawoption"},{"id":"tmux.GlobalSessionScope.RawOption","name":"RawOption","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) RawOption(\n\tctx context.Context,\n\tname string,\n) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawOption returns one exact global session-option value. A successful string is caller-owned, and ok reports presence. An unindexed empty array is indistinguishable from an empty scalar; use Options for typed array presence."},"source":{"file":"tmux/option_read.go","line":157,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.RawOption","product":"core","slug":"tmux-globalsessionscope-rawoption"},{"id":"tmux.GlobalWindowScope.RawOption","name":"RawOption","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) RawOption(\n\tctx context.Context,\n\tname string,\n) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawOption returns one exact global window-option value. A successful string is caller-owned, and ok reports presence. An unindexed empty array is indistinguishable from an empty scalar; use Options for typed array presence."},"source":{"file":"tmux/option_read.go","line":168,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.RawOption","product":"core","slug":"tmux-globalwindowscope-rawoption"},{"id":"tmux.Session.RawOption","name":"RawOption","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) RawOption(ctx context.Context, name string) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawOption returns one exact session option value at this stable session target. A successful string is caller-owned; ok reports presence, and a completed failure is returned rather than normalized. An unindexed empty array is indistinguishable from an empty scalar; use Options for typed array presence."},"source":{"file":"tmux/option_read.go","line":180,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.RawOption","product":"core","slug":"tmux-session-rawoption"},{"id":"tmux.Window.RawOption","name":"RawOption","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) RawOption(ctx context.Context, name string) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawOption returns one exact window option value at this exact window target. A successful string is caller-owned; the receiver's exact linked session context controls tmux format evaluation, and a completed failure is returned."},"source":{"file":"tmux/option_read.go","line":191,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.RawOption","product":"core","slug":"tmux-window-rawoption"},{"id":"tmux.Pane.RawOption","name":"RawOption","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) RawOption(ctx context.Context, name string) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawOption returns one exact pane option value at this exact pane target. A successful string is caller-owned; the receiver's exact linked session context controls tmux format evaluation, and a completed failure is returned."},"source":{"file":"tmux/option_read.go","line":202,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.RawOption","product":"core","slug":"tmux-pane-rawoption"},{"id":"tmux.SetArrayResult","name":"SetArrayResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SetArrayResult reports confirmed progress from a typed sparse-array replacement. AppliedIndices is caller-owned and is non-nil whenever mutation was attempted."},"source":{"file":"tmux/option_runtime.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetArrayResult","product":"core","slug":"tmux-setarrayresult"},{"id":"tmux.SetArrayResult.Replaced","name":"Replaced","kind":"attribute","modifiers":[],"parent":"tmux.SetArrayResult","signatures":[],"type":"bool","doc":{"summary":"Replaced reports whether tmux confirmed the base replacement."},"source":{"file":"tmux/option_runtime.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetArrayResult.Replaced","product":"core","slug":"tmux-setarrayresult-replaced"},{"id":"tmux.SetArrayResult.AppliedIndices","name":"AppliedIndices","kind":"attribute","modifiers":[],"parent":"tmux.SetArrayResult","signatures":[],"type":"[]int","doc":{"summary":"AppliedIndices lists confirmed indexed writes in ascending order."},"source":{"file":"tmux/option_runtime.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetArrayResult.AppliedIndices","product":"core","slug":"tmux-setarrayresult-appliedindices"},{"id":"tmux.GlobalSessionScope","name":"GlobalSessionScope","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"GlobalSessionScope is an immutable handle for global session options and hooks. Its zero value is invalid because it contains a zero [Server]."},"source":{"file":"tmux/option_scope.go","line":5,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope","product":"core","slug":"tmux-globalsessionscope"},{"id":"tmux.GlobalWindowScope","name":"GlobalWindowScope","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"GlobalWindowScope is an immutable handle for global window options and hooks. Its zero value is invalid because it contains a zero [Server]."},"source":{"file":"tmux/option_scope.go","line":11,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope","product":"core","slug":"tmux-globalwindowscope"},{"id":"tmux.Server.GlobalSessionScope","name":"GlobalSessionScope","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) GlobalSessionScope() GlobalSessionScope","params":[],"receiver":{"name":"s","type":"Server"},"returns":"GlobalSessionScope"}],"doc":{"summary":"GlobalSessionScope returns a handle that preserves s and its error policy."},"source":{"file":"tmux/option_scope.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.GlobalSessionScope","product":"core","slug":"tmux-server-globalsessionscope"},{"id":"tmux.Server.GlobalWindowScope","name":"GlobalWindowScope","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) GlobalWindowScope() GlobalWindowScope","params":[],"receiver":{"name":"s","type":"Server"},"returns":"GlobalWindowScope"}],"doc":{"summary":"GlobalWindowScope returns a handle that preserves s and its error policy."},"source":{"file":"tmux/option_scope.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.GlobalWindowScope","product":"core","slug":"tmux-server-globalwindowscope"},{"id":"tmux.OptionOrigin","name":"OptionOrigin","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"OptionOrigin identifies where a present option value was resolved. The declared values form the complete set of valid origins."},"source":{"file":"tmux/option_value.go","line":7,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionOrigin","product":"core","slug":"tmux-optionorigin"},{"id":"tmux.OptionOrigin.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.OptionOrigin","signatures":[{"raw":"func (o OptionOrigin) String() string","params":[],"receiver":{"name":"o","type":"OptionOrigin"},"returns":"string"}],"doc":{"summary":"String returns the origin's tmux vocabulary, so an origin prints as a word beside the generated option values, which all carry String."},"source":{"file":"tmux/option_value.go","line":11,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionOrigin.String","product":"core","slug":"tmux-optionorigin-string"},{"id":"tmux.OptionOriginLocal","name":"OptionOriginLocal","kind":"constant","modifiers":[],"signatures":[],"type":"OptionOrigin","doc":{"summary":"OptionOriginLocal identifies a value set directly at the queried scope."},"source":{"file":"tmux/option_value.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionOriginLocal","product":"core","slug":"tmux-optionoriginlocal"},{"id":"tmux.OptionOriginInherited","name":"OptionOriginInherited","kind":"constant","modifiers":[],"signatures":[],"type":"OptionOrigin","doc":{"summary":"OptionOriginInherited identifies a value inherited from a parent scope."},"source":{"file":"tmux/option_value.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionOriginInherited","product":"core","slug":"tmux-optionorigininherited"},{"id":"tmux.OptionValue","name":"OptionValue","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"OptionValue preserves option presence and resolution origin. Its zero value is absent. Copies of reference-bearing T values are shallow."},"source":{"file":"tmux/option_value.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionValue","product":"core","slug":"tmux-optionvalue"},{"id":"tmux.OptionValue.Get","name":"Get","kind":"method","modifiers":[],"parent":"tmux.OptionValue","signatures":[{"raw":"func (v OptionValue[T]) Get() (T, bool)","params":[],"receiver":{"name":"v","type":"OptionValue[T]"},"returns":"(T, bool)"}],"doc":{"summary":"Get returns the option value and reports whether it is present."},"source":{"file":"tmux/option_value.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionValue.Get","product":"core","slug":"tmux-optionvalue-get"},{"id":"tmux.OptionValue.Origin","name":"Origin","kind":"method","modifiers":[],"parent":"tmux.OptionValue","signatures":[{"raw":"func (v OptionValue[T]) Origin() (OptionOrigin, bool)","params":[],"receiver":{"name":"v","type":"OptionValue[T]"},"returns":"(OptionOrigin, bool)"}],"doc":{"summary":"Origin returns the resolution origin and reports whether the option is present."},"source":{"file":"tmux/option_value.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionValue.Origin","product":"core","slug":"tmux-optionvalue-origin"},{"id":"tmux.ErrInvalidCaptureRequest","name":"ErrInvalidCaptureRequest","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidCaptureRequest identifies a capture request that cannot be represented safely as tmux arguments."},"source":{"file":"tmux/pane_capture.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidCaptureRequest","product":"core","slug":"tmux-errinvalidcapturerequest"},{"id":"tmux.CaptureRequestError","name":"CaptureRequestError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CaptureRequestError reports a [CapturePaneRequest] field that cannot be represented as a tmux capture-pane argument. It matches [ErrInvalidCaptureRequest] through [errors.Is] and is available through [errors.As]."},"source":{"file":"tmux/pane_capture.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CaptureRequestError","product":"core","slug":"tmux-capturerequesterror"},{"id":"tmux.CaptureRequestError.Field","name":"Field","kind":"attribute","modifiers":[],"parent":"tmux.CaptureRequestError","signatures":[],"type":"string","doc":{"summary":"Field names the invalid request field."},"source":{"file":"tmux/pane_capture.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CaptureRequestError.Field","product":"core","slug":"tmux-capturerequesterror-field"},{"id":"tmux.CaptureRequestError.Value","name":"Value","kind":"attribute","modifiers":[],"parent":"tmux.CaptureRequestError","signatures":[],"type":"string","doc":{"summary":"Value is the rejected field value. It may be empty when absence is the error."},"source":{"file":"tmux/pane_capture.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CaptureRequestError.Value","product":"core","slug":"tmux-capturerequesterror-value"},{"id":"tmux.CaptureRequestError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.CaptureRequestError","signatures":[],"type":"string","doc":{"summary":"Reason describes the violated request constraint without promising a stable complete error string."},"source":{"file":"tmux/pane_capture.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CaptureRequestError.Reason","product":"core","slug":"tmux-capturerequesterror-reason"},{"id":"tmux.CaptureRequestError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.CaptureRequestError","signatures":[{"raw":"func (e *CaptureRequestError) Error() string","params":[],"receiver":{"name":"e","type":"*CaptureRequestError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/pane_capture.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CaptureRequestError.Error","product":"core","slug":"tmux-capturerequesterror-error"},{"id":"tmux.CaptureRequestError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.CaptureRequestError","signatures":[{"raw":"func (e *CaptureRequestError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*CaptureRequestError"},"returns":"error"}],"doc":{"summary":"Unwrap makes CaptureRequestError compatible with ErrInvalidCaptureRequest."},"source":{"file":"tmux/pane_capture.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CaptureRequestError.Unwrap","product":"core","slug":"tmux-capturerequesterror-unwrap"},{"id":"tmux.CapturePosition","name":"CapturePosition","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CapturePosition selects a line relative to tmux's visible pane or history. Its zero value omits the boundary and lets tmux use the visible-screen default. Construct numeric positions with [CaptureLine]."},"source":{"file":"tmux/pane_capture.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePosition","product":"core","slug":"tmux-captureposition"},{"id":"tmux.CaptureBoundary","name":"CaptureBoundary","kind":"constant","modifiers":[],"signatures":[],"type":"CapturePosition","doc":{"summary":"CaptureBoundary selects the start of history when used as Start and the end of the visible pane when used as End."},"source":{"file":"tmux/pane_capture.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CaptureBoundary","product":"core","slug":"tmux-captureboundary"},{"id":"tmux.CaptureLine","name":"CaptureLine","kind":"function","modifiers":[],"signatures":[{"raw":"func CaptureLine(line int) CapturePosition","params":[{"name":"line","type":"int"}],"returns":"CapturePosition"}],"doc":{"summary":"CaptureLine returns the canonical tmux representation of a capture line. Zero is the first visible line; negative values address history."},"source":{"file":"tmux/pane_capture.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CaptureLine","product":"core","slug":"tmux-captureline"},{"id":"tmux.CapturePaneRequest","name":"CapturePaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CapturePaneRequest configures pane capture. Its zero value captures the visible screen with tmux's default text handling. Version-gated flags follow [UnsupportedPolicy]. [CaptureBoundary] selects the start of history for Start and the end of the visible pane for End."},"source":{"file":"tmux/pane_capture.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest","product":"core","slug":"tmux-capturepanerequest"},{"id":"tmux.CapturePaneRequest.Start","name":"Start","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"CapturePosition","doc":{"summary":"Start selects the first captured line. Empty uses tmux's visible-screen default; CaptureBoundary selects the start of history."},"source":{"file":"tmux/pane_capture.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.Start","product":"core","slug":"tmux-capturepanerequest-start"},{"id":"tmux.CapturePaneRequest.End","name":"End","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"CapturePosition","doc":{"summary":"End selects the last captured line. Empty uses tmux's visible-screen default; CaptureBoundary selects the end of the visible pane."},"source":{"file":"tmux/pane_capture.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.End","product":"core","slug":"tmux-capturepanerequest-end"},{"id":"tmux.CapturePaneRequest.EscapeSequences","name":"EscapeSequences","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"EscapeSequences includes terminal attribute escape sequences."},"source":{"file":"tmux/pane_capture.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.EscapeSequences","product":"core","slug":"tmux-capturepanerequest-escapesequences"},{"id":"tmux.CapturePaneRequest.EscapeNonPrintable","name":"EscapeNonPrintable","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"EscapeNonPrintable renders non-printable characters as octal escapes."},"source":{"file":"tmux/pane_capture.go","line":82,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.EscapeNonPrintable","product":"core","slug":"tmux-capturepanerequest-escapenonprintable"},{"id":"tmux.CapturePaneRequest.JoinWrapped","name":"JoinWrapped","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"JoinWrapped joins wrapped lines, preserves their trailing spaces, and implies tmux trimming independently of TrimTrailing."},"source":{"file":"tmux/pane_capture.go","line":85,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.JoinWrapped","product":"core","slug":"tmux-capturepanerequest-joinwrapped"},{"id":"tmux.CapturePaneRequest.PreserveTrailing","name":"PreserveTrailing","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"PreserveTrailing preserves trailing spaces at each line end."},"source":{"file":"tmux/pane_capture.go","line":87,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.PreserveTrailing","product":"core","slug":"tmux-capturepanerequest-preservetrailing"},{"id":"tmux.CapturePaneRequest.TrimTrailing","name":"TrimTrailing","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"TrimTrailing omits trailing positions without characters. It requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/pane_capture.go","line":90,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.TrimTrailing","product":"core","slug":"tmux-capturepanerequest-trimtrailing"},{"id":"tmux.CapturePaneRequest.AlternateScreen","name":"AlternateScreen","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"AlternateScreen captures the alternate screen without history."},"source":{"file":"tmux/pane_capture.go","line":92,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.AlternateScreen","product":"core","slug":"tmux-capturepanerequest-alternatescreen"},{"id":"tmux.CapturePaneRequest.Quiet","name":"Quiet","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Quiet suppresses tmux's error when AlternateScreen is requested but no alternate screen exists."},"source":{"file":"tmux/pane_capture.go","line":95,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.Quiet","product":"core","slug":"tmux-capturepanerequest-quiet"},{"id":"tmux.CapturePaneRequest.ModeScreen","name":"ModeScreen","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"ModeScreen captures the active mode screen. It requires tmux 3.6; see UnsupportedPolicy."},"source":{"file":"tmux/pane_capture.go","line":98,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.ModeScreen","product":"core","slug":"tmux-capturepanerequest-modescreen"},{"id":"tmux.CapturePaneRequest.Pending","name":"Pending","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Pending captures only the beginning of an incomplete escape sequence."},"source":{"file":"tmux/pane_capture.go","line":100,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.Pending","product":"core","slug":"tmux-capturepanerequest-pending"},{"id":"tmux.CapturePaneRequest.Hyperlinks","name":"Hyperlinks","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Hyperlinks captures hyperlink metadata for the selected lines. It requires tmux 3.7; see UnsupportedPolicy."},"source":{"file":"tmux/pane_capture.go","line":103,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.Hyperlinks","product":"core","slug":"tmux-capturepanerequest-hyperlinks"},{"id":"tmux.CapturePaneRequest.LineNumbers","name":"LineNumbers","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"LineNumbers prefixes each line with its tmux line number. It requires tmux 3.7; see UnsupportedPolicy."},"source":{"file":"tmux/pane_capture.go","line":106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.LineNumbers","product":"core","slug":"tmux-capturepanerequest-linenumbers"},{"id":"tmux.CapturePaneRequest.LineFlags","name":"LineFlags","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"LineFlags prefixes each line with tmux line metadata flags. It requires tmux 3.7; see UnsupportedPolicy."},"source":{"file":"tmux/pane_capture.go","line":109,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.LineFlags","product":"core","slug":"tmux-capturepanerequest-lineflags"},{"id":"tmux.Pane.Capture","name":"Capture","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Capture(\n\tctx context.Context,\n\trequest CapturePaneRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"CapturePaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"([]string, error)"}],"doc":{"summary":"Capture captures printed content from the receiver's exact linked pane. It returns a caller-owned slice. A completed nonzero exit or stderr becomes a [CommandError]; any stdout tmux still printed is returned alongside it.","body":"This is a point-in-time capture rather than a stream; the zero request reads\nthe visible screen. It may include a shell's echo of [Pane.SendKeys] input.\nCompare whole lines when polling; use [ControlClient.NextNotification] or\n[Server.WaitFor] when the application exposes a stream or explicit signal.\n\nInvalid positions fail before execution. Transport and context failures return\nany partial stdout with the error.","examples":[{"lang":"console","intro":"Capture the pane's history and visible screen as lines after sending text to cat. CaptureBoundary selects the beginning of history and the end of the screen. Poll whole lines because terminal echo may appear before the application handles input; this example checks visible text, not command completion. Use Go 1.26.0 or newer and tmux 3.2a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-go.git libtmux-source && \\\n git -C libtmux-source checkout 6f3df55f8a41999e41225eefb3940545b834e6a2\n"},{"lang":"go","intro":"Save this dependency file as go.mod:","code":"module example.com/libtmux-api\n\ngo 1.26.0\n\nrequire github.com/libtmux/libtmux-go v0.0.0\n\nreplace github.com/libtmux/libtmux-go => ./libtmux-source\n"},{"lang":"go","intro":"Save this complete example as example_test.go. It creates a private temporary socket and stops its server before removing the directory. Cleanup failure fails the example and retains the socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-go/blob/6f3df55f8a41999e41225eefb3940545b834e6a2/tmux/api_pane_capture_example_test.go","code":"package tmux_test\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"slices\"\n\t\"time\"\n\n\t\"github.com/libtmux/libtmux-go/tmux\"\n)\n\n// Capture the pane's history and visible screen as lines after sending text\n// to cat. CaptureBoundary selects the beginning of history and the end of\n// the screen. Poll whole lines because terminal echo may appear before the\n// application handles input; this example checks visible text, not command\n// completion.\nfunc ExamplePane_Capture_complete() {\n\trun := func() (runErr error) {\n\t\tdirectory, err := os.MkdirTemp(\"\", \"libtmux-go-api-\")\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create socket directory: %w\", err)\n\t\t}\n\t\tserver, err := tmux.NewServer(tmux.ServerOptions{\n\t\t\tSocketPath: filepath.Join(directory, \"tmux.sock\"),\n\t\t\tConfigFile: \"/dev/null\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errors.Join(err, os.RemoveAll(directory))\n\t\t}\n\t\tdefer func() {\n\t\t\t// Cleanup has its own deadline because the operation may have timed out.\n\t\t\tcleanup, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\t\t\tdefer cancel()\n\t\t\tif err := server.Kill(cleanup); err != nil && !errors.Is(err, tmux.ErrNoServer) {\n\t\t\t\trunErr = errors.Join(runErr, fmt.Errorf(\"stop server at %s: %w\", directory, err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\trunErr = errors.Join(runErr, os.RemoveAll(directory))\n\t\t}()\n\t\tctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)\n\t\tdefer cancel()\n\t\tsession, err := server.NewSession(ctx, tmux.NewSessionRequest{\n\t\t\tName: \"work\", WindowName: \"editor\", Command: \"cat\", Width: 100, Height: 30,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create session: %w\", err)\n\t\t}\n\t\tpane, err := session.ResolveActivePane(ctx)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"resolve pane: %w\", err)\n\t\t}\n\t\ttext := \"api input\"\n\t\tif err := pane.SendKeys(ctx, tmux.SendKeysRequest{Command: &text, Literal: true}); err != nil {\n\t\t\treturn fmt.Errorf(\"send literal input: %w\", err)\n\t\t}\n\t\t// Capture is a point-in-time read, so wait for a complete matching line.\n\t\tticker := time.NewTicker(10 * time.Millisecond)\n\t\tdefer ticker.Stop()\n\t\tfor {\n\t\t\tlines, err := pane.Capture(ctx, tmux.CapturePaneRequest{\n\t\t\t\tStart: tmux.CaptureBoundary, End: tmux.CaptureBoundary,\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"capture pane: %w\", err)\n\t\t\t}\n\t\t\tif slices.Contains(lines, \"api input\") {\n\t\t\t\tfmt.Println(\"captured: api input\")\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tselect {\n\t\t\tcase <-ctx.Done():\n\t\t\t\treturn fmt.Errorf(\"wait for pane text: %w\", ctx.Err())\n\t\t\tcase <-ticker.C:\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\tif err := run(); err != nil {\n\t\tpanic(err)\n\t}\n\t// Output:\n\t// captured: api input\n}\n"},{"lang":"console","intro":"Run the saved file. Go checks the Output comment and fails on different output or an operation or cleanup error:","code":"$ GOWORK=off go test -count=1 -v example_test.go\n"}]},"source":{"file":"tmux/pane_capture.go","line":123,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Capture","product":"core","slug":"tmux-pane-capture"},{"id":"tmux.Pane.CaptureBytes","name":"CaptureBytes","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CaptureBytes(\n\tctx context.Context,\n\trequest CapturePaneRequest,\n) ([]byte, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"CapturePaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"([]byte, error)"}],"doc":{"summary":"CaptureBytes captures printed content from the receiver's exact linked pane as caller-owned stdout bytes. It preserves tmux's output delimiters and trailing newlines after tmux has interpreted the pane's terminal contents.","body":"Its validation and failure behavior match [Pane.Capture], including returning\npartial bytes with transport or context errors."},"source":{"file":"tmux/pane_capture.go","line":137,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CaptureBytes","product":"core","slug":"tmux-pane-capturebytes"},{"id":"tmux.Pane.CaptureToBuffer","name":"CaptureToBuffer","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CaptureToBuffer(\n\tctx context.Context,\n\tbuffer string,\n\trequest CapturePaneRequest,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"buffer","type":"string"},{"name":"request","type":"CapturePaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"CaptureToBuffer captures content from the receiver's exact linked pane into the nonempty named tmux buffer. The buffer is owned by tmux and no printed output is returned. A completed nonzero exit or stderr becomes a [CommandError].","body":"Invalid requests fail before execution. Transport and context errors are\ndelivery-ambiguous: the buffer may already have changed."},"source":{"file":"tmux/pane_capture.go","line":152,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CaptureToBuffer","product":"core","slug":"tmux-pane-capturetobuffer"},{"id":"tmux.Pane.CaptureToFile","name":"CaptureToFile","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CaptureToFile(\n\tctx context.Context,\n\tpath string,\n\trequest CapturePaneRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"path","type":"string"},{"name":"request","type":"CapturePaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"([]string, error)"}],"doc":{"summary":"CaptureToFile captures the receiver's exact linked pane through a tmux buffer and the file at path, returning the same lines [Pane.Capture] returns.","body":"Printed captures cannot safely cross a control connection, so [Pane.Capture]\nand [Pane.CaptureBytes] use a subprocess or reject a connection. CaptureToFile\nstages through a scratch buffer so capture, save, and cleanup can all use the\nconnection's command lanes.\n\npath must name a file the tmux server can write and this process can read.\nIt is replaced and left for the caller. Concurrent calls must use distinct\npaths. The scratch tmux buffer is deleted before return when possible.\n\nValidation and version gating match [Pane.Capture]. Capture, save, and\nfile-read failures return an error with no lines; buffer cleanup is best effort."},"source":{"file":"tmux/pane_capture.go","line":180,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CaptureToFile","product":"core","slug":"tmux-pane-capturetofile"},{"id":"tmux.Pane.CaptureTo","name":"CaptureTo","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CaptureTo(\n\tctx context.Context,\n\tdestination io.Writer,\n\trequest CapturePaneRequest,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"destination","type":"io.Writer"},{"name":"request","type":"CapturePaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"CaptureTo streams printed content from the receiver's exact linked pane into destination without holding a screen in memory, which is what makes a long scrollback affordable to write straight to a file or a compressor. Like [Pane.Capture] it reads the screen at one point in time rather than following it; the zero request reads the visible screen and version-gated fields follow [UnsupportedPolicy].","body":"A completed nonzero exit becomes a redacted command error, because CaptureTo\nreturns no bytes for the caller to inspect. Cancellation does not prove\ndestination received the complete screen, and a copy failure takes\nprecedence over a completed command's exit status because it means\ndestination never saw everything tmux sent. Printed captures always use a\nsubprocess, so a [Connection]-bound Pane returns\n[ErrConnectionRequiresProcess]; [Pane.CaptureToFile] stages through a tmux\nbuffer and runs over a connection."},"source":{"file":"tmux/pane_capture.go","line":388,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CaptureTo","product":"core","slug":"tmux-pane-captureto"},{"id":"tmux.NewPaneRequest","name":"NewPaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"NewPaneRequest configures a floating pane and requires tmux 3.7 or later. Its zero value creates a detached floating pane with tmux's default size, position, styles, and command. Nil pointer fields omit their options; nonnil pointers are explicit, including empty style or message strings. Width and Height must be nonnegative. Empty and Command are mutually exclusive. Unsupported tmux versions return [VersionTooLowError] rather than omitting fields.","body":"Methods copy pointers and Environment before I/O; concurrent mutation during\nthe copy is unsafe."},"source":{"file":"tmux/pane_create.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest","product":"core","slug":"tmux-newpanerequest"},{"id":"tmux.NewPaneRequest.Attach","name":"Attach","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Attach lets the created pane become active in the exact target winlink; false preserves its active pane."},"source":{"file":"tmux/pane_create.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Attach","product":"core","slug":"tmux-newpanerequest-attach"},{"id":"tmux.NewPaneRequest.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"string","doc":{"summary":"StartDirectory expands ~ and ~/... for the current user. Named-user forms such as ~other are rejected; empty inherits tmux's default."},"source":{"file":"tmux/pane_create.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.StartDirectory","product":"core","slug":"tmux-newpanerequest-startdirectory"},{"id":"tmux.NewPaneRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"string","doc":{"summary":"Command starts the pane with this shell command; empty uses tmux's default."},"source":{"file":"tmux/pane_create.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Command","product":"core","slug":"tmux-newpanerequest-command"},{"id":"tmux.NewPaneRequest.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"map[string]string","doc":{"summary":"Environment is emitted in lexically sorted key order. The map is not retained; nil and an empty map both add no entries."},"source":{"file":"tmux/pane_create.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Environment","product":"core","slug":"tmux-newpanerequest-environment"},{"id":"tmux.NewPaneRequest.Width","name":"Width","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"*int","doc":{"summary":"Width sets a nonnegative pane width; nil lets tmux choose."},"source":{"file":"tmux/pane_create.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Width","product":"core","slug":"tmux-newpanerequest-width"},{"id":"tmux.NewPaneRequest.Height","name":"Height","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"*int","doc":{"summary":"Height sets a nonnegative pane height; nil lets tmux choose."},"source":{"file":"tmux/pane_create.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Height","product":"core","slug":"tmux-newpanerequest-height"},{"id":"tmux.NewPaneRequest.X","name":"X","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"*int","doc":{"summary":"X sets the horizontal position; nil lets tmux choose."},"source":{"file":"tmux/pane_create.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.X","product":"core","slug":"tmux-newpanerequest-x"},{"id":"tmux.NewPaneRequest.Y","name":"Y","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"*int","doc":{"summary":"Y sets the vertical position; nil lets tmux choose."},"source":{"file":"tmux/pane_create.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Y","product":"core","slug":"tmux-newpanerequest-y"},{"id":"tmux.NewPaneRequest.Zoom","name":"Zoom","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Zoom preserves the target window's zoomed state."},"source":{"file":"tmux/pane_create.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Zoom","product":"core","slug":"tmux-newpanerequest-zoom"},{"id":"tmux.NewPaneRequest.Empty","name":"Empty","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Empty creates a pane without starting a command."},"source":{"file":"tmux/pane_create.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Empty","product":"core","slug":"tmux-newpanerequest-empty"},{"id":"tmux.NewPaneRequest.Style","name":"Style","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"*string","doc":{"summary":"Style sets the pane style; nil omits it."},"source":{"file":"tmux/pane_create.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Style","product":"core","slug":"tmux-newpanerequest-style"},{"id":"tmux.NewPaneRequest.ActiveBorderStyle","name":"ActiveBorderStyle","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"*string","doc":{"summary":"ActiveBorderStyle sets the active border style; nil omits it."},"source":{"file":"tmux/pane_create.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.ActiveBorderStyle","product":"core","slug":"tmux-newpanerequest-activeborderstyle"},{"id":"tmux.NewPaneRequest.InactiveBorderStyle","name":"InactiveBorderStyle","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"*string","doc":{"summary":"InactiveBorderStyle sets the inactive border style; nil omits it."},"source":{"file":"tmux/pane_create.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.InactiveBorderStyle","product":"core","slug":"tmux-newpanerequest-inactiveborderstyle"},{"id":"tmux.NewPaneRequest.Message","name":"Message","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"*string","doc":{"summary":"Message sets the pane message; nil omits it."},"source":{"file":"tmux/pane_create.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Message","product":"core","slug":"tmux-newpanerequest-message"},{"id":"tmux.NewPaneRequest.Keep","name":"Keep","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Keep preserves the pane after its command exits."},"source":{"file":"tmux/pane_create.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Keep","product":"core","slug":"tmux-newpanerequest-keep"},{"id":"tmux.SplitPaneRequest","name":"SplitPaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SplitPaneRequest configures tiled pane creation on tmux 3.2a or later. Its zero value creates a detached pane below the exact target with tmux's default size and command. Nil pointer fields omit their options; nonnil pointers are explicit, including empty style or message strings. Size and Percentage are mutually exclusive. Invalid values are rejected before tmux is mutated.","body":"Methods copy pointer and map values before I/O; concurrent mutation is unsafe.\nEmpty, styles, Message, and Keep require tmux 3.7 and follow\n[UnsupportedPolicy]. Empty and Command conflict only when Empty is supported."},"source":{"file":"tmux/pane_create.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest","product":"core","slug":"tmux-splitpanerequest"},{"id":"tmux.SplitPaneRequest.Attach","name":"Attach","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Attach lets the created pane become active in the exact target winlink; false preserves its active pane."},"source":{"file":"tmux/pane_create.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Attach","product":"core","slug":"tmux-splitpanerequest-attach"},{"id":"tmux.SplitPaneRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"PaneDirection","doc":{"summary":"Direction selects the side of the target; zero means below."},"source":{"file":"tmux/pane_create.go","line":72,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Direction","product":"core","slug":"tmux-splitpanerequest-direction"},{"id":"tmux.SplitPaneRequest.Size","name":"Size","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"*int","doc":{"summary":"Size selects a nonnegative absolute pane size; nil omits it."},"source":{"file":"tmux/pane_create.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Size","product":"core","slug":"tmux-splitpanerequest-size"},{"id":"tmux.SplitPaneRequest.Percentage","name":"Percentage","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"*int","doc":{"summary":"Percentage selects a size from 0 through 100; nil omits it. It is sent as tmux's \"-l N%\", which every supported version accepts; the older -p spelling is rejected by tmux 3.4."},"source":{"file":"tmux/pane_create.go","line":78,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Percentage","product":"core","slug":"tmux-splitpanerequest-percentage"},{"id":"tmux.SplitPaneRequest.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"string","doc":{"summary":"StartDirectory expands ~ and ~/... for the current user. Named-user forms such as ~other are rejected; empty inherits tmux's default."},"source":{"file":"tmux/pane_create.go","line":81,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.StartDirectory","product":"core","slug":"tmux-splitpanerequest-startdirectory"},{"id":"tmux.SplitPaneRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"string","doc":{"summary":"Command starts the pane with this shell command; empty uses tmux's default."},"source":{"file":"tmux/pane_create.go","line":83,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Command","product":"core","slug":"tmux-splitpanerequest-command"},{"id":"tmux.SplitPaneRequest.FullWindow","name":"FullWindow","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"FullWindow lets the new pane span the full window size."},"source":{"file":"tmux/pane_create.go","line":85,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.FullWindow","product":"core","slug":"tmux-splitpanerequest-fullwindow"},{"id":"tmux.SplitPaneRequest.Zoom","name":"Zoom","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Zoom preserves the window's zoomed state after the split."},"source":{"file":"tmux/pane_create.go","line":87,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Zoom","product":"core","slug":"tmux-splitpanerequest-zoom"},{"id":"tmux.SplitPaneRequest.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"map[string]string","doc":{"summary":"Environment is emitted in lexically sorted key order and is not retained; nil and an empty map both add no entries."},"source":{"file":"tmux/pane_create.go","line":90,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Environment","product":"core","slug":"tmux-splitpanerequest-environment"},{"id":"tmux.SplitPaneRequest.Empty","name":"Empty","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Empty requests an empty pane on tmux 3.7 or later."},"source":{"file":"tmux/pane_create.go","line":92,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Empty","product":"core","slug":"tmux-splitpanerequest-empty"},{"id":"tmux.SplitPaneRequest.Style","name":"Style","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"*string","doc":{"summary":"Style sets the pane style on tmux 3.7 or later; nil omits it."},"source":{"file":"tmux/pane_create.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Style","product":"core","slug":"tmux-splitpanerequest-style"},{"id":"tmux.SplitPaneRequest.ActiveBorderStyle","name":"ActiveBorderStyle","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"*string","doc":{"summary":"ActiveBorderStyle sets the active border style on tmux 3.7 or later; nil omits it."},"source":{"file":"tmux/pane_create.go","line":97,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.ActiveBorderStyle","product":"core","slug":"tmux-splitpanerequest-activeborderstyle"},{"id":"tmux.SplitPaneRequest.InactiveBorderStyle","name":"InactiveBorderStyle","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"*string","doc":{"summary":"InactiveBorderStyle sets the inactive border style on tmux 3.7 or later; nil omits it."},"source":{"file":"tmux/pane_create.go","line":100,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.InactiveBorderStyle","product":"core","slug":"tmux-splitpanerequest-inactiveborderstyle"},{"id":"tmux.SplitPaneRequest.Message","name":"Message","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"*string","doc":{"summary":"Message sets the pane message on tmux 3.7 or later; nil omits it."},"source":{"file":"tmux/pane_create.go","line":102,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Message","product":"core","slug":"tmux-splitpanerequest-message"},{"id":"tmux.SplitPaneRequest.Keep","name":"Keep","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Keep preserves the pane after its command exits on tmux 3.7 or later."},"source":{"file":"tmux/pane_create.go","line":104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Keep","product":"core","slug":"tmux-splitpanerequest-keep"},{"id":"tmux.Window.NewPane","name":"NewPane","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) NewPane(ctx context.Context, request NewPaneRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"NewPaneRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(Pane, error)"}],"doc":{"summary":"NewPane creates a floating pane in the receiver's exact winlink. Attach makes the new pane active in that session and winlink; it is not a global client-focus guarantee. The returned [Pane] is freshly materialized in the receiver SessionID and WindowID rather than by canonical ID-only refresh.","body":"If tmux reports a [PaneID] before a transport or refresh failure, the partial\nresult includes the receiver SessionID and WindowID. Other failures return\nzero; creation is not rolled back."},"source":{"file":"tmux/pane_create.go","line":115,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.NewPane","product":"core","slug":"tmux-window-newpane"},{"id":"tmux.Pane.NewPane","name":"NewPane","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) NewPane(ctx context.Context, request NewPaneRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"NewPaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"NewPane creates a floating pane relative to the receiver's exact linked-pane view. Attach makes the new pane active in that session and winlink; it is not a global client-focus guarantee. The returned [Pane] is freshly materialized in the receiver SessionID and WindowID.","body":"If tmux reports a [PaneID] before a transport or refresh failure, the partial\nresult includes the receiver SessionID and WindowID. Other failures return\nzero; creation is not rolled back."},"source":{"file":"tmux/pane_create.go","line":132,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.NewPane","product":"core","slug":"tmux-pane-newpane"},{"id":"tmux.Window.SplitPane","name":"SplitPane","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SplitPane(ctx context.Context, request SplitPaneRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SplitPaneRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(Pane, error)"}],"doc":{"summary":"SplitPane creates a tiled pane in the receiver's exact winlink. Attach makes the new pane active in that session and winlink; it is not a global client-focus guarantee. The returned [Pane] is freshly materialized in the receiver SessionID and WindowID rather than by canonical ID-only refresh. [Pane.Split] is the equivalent operation relative to an existing pane rather than its window.","body":"If tmux reports a [PaneID] before a transport or refresh failure, the partial\nresult also contains the receiver SessionID and WindowID. Other failures\nreturn zero; creation is not rolled back."},"source":{"file":"tmux/pane_create.go","line":302,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SplitPane","product":"core","slug":"tmux-window-splitpane"},{"id":"tmux.Pane.Split","name":"Split","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Split(ctx context.Context, request SplitPaneRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SplitPaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"Split creates a tiled pane relative to the receiver's exact linked-pane view. Attach makes the new pane active in that session and winlink; it is not a global client-focus guarantee. The returned [Pane] is freshly materialized in the receiver SessionID and WindowID. Named Split rather than SplitPane to avoid repeating Pane; [Window.SplitPane] is the equivalent operation relative to a window.","body":"If tmux reports a [PaneID] before a transport or refresh failure, the partial\nresult also contains the receiver SessionID and WindowID. Other failures\nreturn zero; creation is not rolled back."},"source":{"file":"tmux/pane_create.go","line":321,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Split","product":"core","slug":"tmux-pane-split"},{"id":"tmux.PaneResizeDirection","name":"PaneResizeDirection","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneResizeDirection selects a directional [Pane.Resize]. Its zero value selects no directional adjustment."},"source":{"file":"tmux/pane_geometry.go","line":10,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneResizeDirection","product":"core","slug":"tmux-paneresizedirection"},{"id":"tmux.PaneResizeDirectionNone","name":"PaneResizeDirectionNone","kind":"constant","modifiers":[],"signatures":[],"type":"PaneResizeDirection","doc":{"summary":"PaneResizeDirectionNone omits a directional resize."},"source":{"file":"tmux/pane_geometry.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneResizeDirectionNone","product":"core","slug":"tmux-paneresizedirectionnone"},{"id":"tmux.PaneResizeDirectionUp","name":"PaneResizeDirectionUp","kind":"constant","modifiers":[],"signatures":[],"type":"PaneResizeDirection","doc":{"summary":"PaneResizeDirectionUp selects tmux's upward adjustment."},"source":{"file":"tmux/pane_geometry.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneResizeDirectionUp","product":"core","slug":"tmux-paneresizedirectionup"},{"id":"tmux.PaneResizeDirectionDown","name":"PaneResizeDirectionDown","kind":"constant","modifiers":[],"signatures":[],"type":"PaneResizeDirection","doc":{"summary":"PaneResizeDirectionDown selects tmux's downward adjustment."},"source":{"file":"tmux/pane_geometry.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneResizeDirectionDown","product":"core","slug":"tmux-paneresizedirectiondown"},{"id":"tmux.PaneResizeDirectionLeft","name":"PaneResizeDirectionLeft","kind":"constant","modifiers":[],"signatures":[],"type":"PaneResizeDirection","doc":{"summary":"PaneResizeDirectionLeft selects tmux's leftward adjustment."},"source":{"file":"tmux/pane_geometry.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneResizeDirectionLeft","product":"core","slug":"tmux-paneresizedirectionleft"},{"id":"tmux.PaneResizeDirectionRight","name":"PaneResizeDirectionRight","kind":"constant","modifiers":[],"signatures":[],"type":"PaneResizeDirection","doc":{"summary":"PaneResizeDirectionRight selects tmux's rightward adjustment."},"source":{"file":"tmux/pane_geometry.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneResizeDirectionRight","product":"core","slug":"tmux-paneresizedirectionright"},{"id":"tmux.PaneSize","name":"PaneSize","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneSize is an opaque absolute cell count or percentage for [Pane.Resize]. Its zero value omits the dimension. [PaneCells](0) and [PanePercent](0) are explicit sizes, not zero PaneSize values."},"source":{"file":"tmux/pane_geometry.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSize","product":"core","slug":"tmux-panesize"},{"id":"tmux.PaneCells","name":"PaneCells","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneCells(cells int) PaneSize","params":[{"name":"cells","type":"int"}],"returns":"PaneSize"}],"doc":{"summary":"PaneCells returns an explicit pane size measured in cells. Resize validates that cells is nonnegative; zero remains an explicit request."},"source":{"file":"tmux/pane_geometry.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneCells","product":"core","slug":"tmux-panecells"},{"id":"tmux.PanePercent","name":"PanePercent","kind":"function","modifiers":[],"signatures":[{"raw":"func PanePercent(percent int) PaneSize","params":[{"name":"percent","type":"int"}],"returns":"PaneSize"}],"doc":{"summary":"PanePercent returns an explicit percentage of the window size. Resize validates that percent is between 0 and 100 inclusive; zero remains an explicit request."},"source":{"file":"tmux/pane_geometry.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PanePercent","product":"core","slug":"tmux-panepercent"},{"id":"tmux.ResizePaneRequest","name":"ResizePaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ResizePaneRequest selects one resize mode. Direction with Adjustment, dimensions, Zoom, Mouse, and TrimBelow are mutually exclusive modes; Height and Width may be set together. Its zero value sends a bare tmux resize-pane command rather than selecting a mode. When Direction is [PaneResizeDirectionNone], Adjustment must be zero."},"source":{"file":"tmux/pane_geometry.go","line":59,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizePaneRequest","product":"core","slug":"tmux-resizepanerequest"},{"id":"tmux.ResizePaneRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.ResizePaneRequest","signatures":[],"type":"PaneResizeDirection","doc":{"summary":"Direction selects a directional resize and requires Adjustment."},"source":{"file":"tmux/pane_geometry.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizePaneRequest.Direction","product":"core","slug":"tmux-resizepanerequest-direction"},{"id":"tmux.ResizePaneRequest.Adjustment","name":"Adjustment","kind":"attribute","modifiers":[],"parent":"tmux.ResizePaneRequest","signatures":[],"type":"int","doc":{"summary":"Adjustment is the positive number of cells moved in Direction. It must be zero when Direction is PaneResizeDirectionNone."},"source":{"file":"tmux/pane_geometry.go","line":64,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizePaneRequest.Adjustment","product":"core","slug":"tmux-resizepanerequest-adjustment"},{"id":"tmux.ResizePaneRequest.Height","name":"Height","kind":"attribute","modifiers":[],"parent":"tmux.ResizePaneRequest","signatures":[],"type":"PaneSize","doc":{"summary":"Height sets an absolute or percentage height. A zero PaneSize omits it."},"source":{"file":"tmux/pane_geometry.go","line":66,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizePaneRequest.Height","product":"core","slug":"tmux-resizepanerequest-height"},{"id":"tmux.ResizePaneRequest.Width","name":"Width","kind":"attribute","modifiers":[],"parent":"tmux.ResizePaneRequest","signatures":[],"type":"PaneSize","doc":{"summary":"Width sets an absolute or percentage width. A zero PaneSize omits it."},"source":{"file":"tmux/pane_geometry.go","line":68,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizePaneRequest.Width","product":"core","slug":"tmux-resizepanerequest-width"},{"id":"tmux.ResizePaneRequest.Zoom","name":"Zoom","kind":"attribute","modifiers":[],"parent":"tmux.ResizePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Zoom toggles the pane between its normal layout and full-window zoom."},"source":{"file":"tmux/pane_geometry.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizePaneRequest.Zoom","product":"core","slug":"tmux-resizepanerequest-zoom"},{"id":"tmux.ResizePaneRequest.Mouse","name":"Mouse","kind":"attribute","modifiers":[],"parent":"tmux.ResizePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Mouse begins tmux mouse resizing and is meaningful from a mouse binding."},"source":{"file":"tmux/pane_geometry.go","line":72,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizePaneRequest.Mouse","product":"core","slug":"tmux-resizepanerequest-mouse"},{"id":"tmux.ResizePaneRequest.TrimBelow","name":"TrimBelow","kind":"attribute","modifiers":[],"parent":"tmux.ResizePaneRequest","signatures":[],"type":"bool","doc":{"summary":"TrimBelow removes lines below the cursor and refills from history."},"source":{"file":"tmux/pane_geometry.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizePaneRequest.TrimBelow","product":"core","slug":"tmux-resizepanerequest-trimbelow"},{"id":"tmux.Pane.Resize","name":"Resize","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Resize(ctx context.Context, request ResizePaneRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ResizePaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"Resize runs tmux resize-pane against the receiver's exact linked session-window-pane target, then refreshes by PaneID. The returned canonical [Pane] may therefore carry a different linked-session or winlink context. If the resize is accepted but refresh fails, Resize returns the original receiver with that error.","body":"Invalid requests fail before execution. A completed command produces a\nredacted [CommandError] only for stderr; nonzero exits without stderr are\nfollowed by refresh. Transport errors return zero and are delivery-ambiguous."},"source":{"file":"tmux/pane_geometry.go","line":86,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Resize","product":"core","slug":"tmux-pane-resize"},{"id":"tmux.Pane.SetWidth","name":"SetWidth","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetWidth(ctx context.Context, width int) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"width","type":"int"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"SetWidth resizes the pane to a nonnegative absolute width in cells. Zero is an explicit width. Targeting, refresh, and error semantics match [Pane.Resize]."},"source":{"file":"tmux/pane_geometry.go","line":153,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetWidth","product":"core","slug":"tmux-pane-setwidth"},{"id":"tmux.Pane.SetHeight","name":"SetHeight","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetHeight(ctx context.Context, height int) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"height","type":"int"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"SetHeight resizes the pane to a nonnegative absolute height in cells. Zero is an explicit height. Targeting, refresh, and error semantics match [Pane.Resize]."},"source":{"file":"tmux/pane_geometry.go","line":160,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetHeight","product":"core","slug":"tmux-pane-setheight"},{"id":"tmux.Pane.SetTitle","name":"SetTitle","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetTitle(ctx context.Context, title string) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"title","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"SetTitle sets the title of the receiver's exact linked pane. tmux expands format expressions in title; the value is not a shell command. SetTitle then refreshes by PaneID, so the returned canonical [Pane] may carry a different linked-session or winlink context. If the mutation is accepted but refresh fails, SetTitle returns the original receiver with that error.","body":"Completed stderr produces a redacted [CommandError]; nonzero exits without\nstderr are followed by refresh. Transport errors return zero and are\ndelivery-ambiguous."},"source":{"file":"tmux/pane_geometry.go","line":173,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetTitle","product":"core","slug":"tmux-pane-settitle"},{"id":"tmux.SendKeysRequest","name":"SendKeysRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SendKeysRequest configures tmux key input. Pointer values are copied before I/O and must not be mutated concurrently.","body":"Command must be nonnil unless Reset, Repeat, or CopyModeCommand is set. A\nnonnil empty Command is an explicit key operand and is followed by Enter\nunless SkipEnter is set. CopyModeCommand takes precedence over Command and\nsuppresses Enter. HexKeys takes precedence over Literal when both are set."},"source":{"file":"tmux/pane_input.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest","product":"core","slug":"tmux-sendkeysrequest"},{"id":"tmux.SendKeysRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"*string","doc":{"summary":"Command is one tmux key operand. Nil selects a flag-only invocation; nonnil, including an empty string, supplies the operand."},"source":{"file":"tmux/pane_input.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.Command","product":"core","slug":"tmux-sendkeysrequest-command"},{"id":"tmux.SendKeysRequest.SkipEnter","name":"SkipEnter","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"SkipEnter prevents the separate Enter key sent after Command."},"source":{"file":"tmux/pane_input.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.SkipEnter","product":"core","slug":"tmux-sendkeysrequest-skipenter"},{"id":"tmux.SendKeysRequest.SuppressHistory","name":"SuppressHistory","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"SuppressHistory prefixes Command with one space. Whether that excludes the text from history depends on the application or shell in the pane."},"source":{"file":"tmux/pane_input.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.SuppressHistory","product":"core","slug":"tmux-sendkeysrequest-suppresshistory"},{"id":"tmux.SendKeysRequest.Literal","name":"Literal","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"Literal disables tmux key-name lookup and treats Command as literal UTF-8. It does not bypass interpretation by the pane's application or shell."},"source":{"file":"tmux/pane_input.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.Literal","product":"core","slug":"tmux-sendkeysrequest-literal"},{"id":"tmux.SendKeysRequest.Reset","name":"Reset","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"Reset asks tmux to reset terminal state before processing key input."},"source":{"file":"tmux/pane_input.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.Reset","product":"core","slug":"tmux-sendkeysrequest-reset"},{"id":"tmux.SendKeysRequest.CopyModeCommand","name":"CopyModeCommand","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"*string","doc":{"summary":"CopyModeCommand sends a tmux copy-mode command instead of Command. A nonnil empty string remains an explicit operand."},"source":{"file":"tmux/pane_input.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.CopyModeCommand","product":"core","slug":"tmux-sendkeysrequest-copymodecommand"},{"id":"tmux.SendKeysRequest.Repeat","name":"Repeat","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"int","doc":{"summary":"Repeat repeats the key input a positive number of times. Zero omits the repeat count."},"source":{"file":"tmux/pane_input.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.Repeat","product":"core","slug":"tmux-sendkeysrequest-repeat"},{"id":"tmux.SendKeysRequest.ExpandFormats","name":"ExpandFormats","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"ExpandFormats asks tmux to expand format expressions in key operands."},"source":{"file":"tmux/pane_input.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.ExpandFormats","product":"core","slug":"tmux-sendkeysrequest-expandformats"},{"id":"tmux.SendKeysRequest.HexKeys","name":"HexKeys","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"HexKeys interprets key operands as hexadecimal ASCII values and takes precedence over Literal."},"source":{"file":"tmux/pane_input.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.HexKeys","product":"core","slug":"tmux-sendkeysrequest-hexkeys"},{"id":"tmux.SendKeysRequest.TargetClient","name":"TargetClient","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"ClientName","doc":{"summary":"TargetClient selects the client used by KeyName. Zero leaves client selection to tmux; without KeyName it does not redirect pane input."},"source":{"file":"tmux/pane_input.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.TargetClient","product":"core","slug":"tmux-sendkeysrequest-targetclient"},{"id":"tmux.SendKeysRequest.KeyName","name":"KeyName","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"KeyName routes keys through the selected client's key table rather than delivering them to the pane."},"source":{"file":"tmux/pane_input.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.KeyName","product":"core","slug":"tmux-sendkeysrequest-keyname"},{"id":"tmux.SendKeySequenceRequest","name":"SendKeySequenceRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SendKeySequenceRequest configures ordered pane key delivery. Keys must contain at least one nonempty operand. SendKeySequence copies Keys before I/O; callers must not mutate it concurrently with the call."},"source":{"file":"tmux/pane_input.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeySequenceRequest","product":"core","slug":"tmux-sendkeysequencerequest"},{"id":"tmux.SendKeySequenceRequest.Keys","name":"Keys","kind":"attribute","modifiers":[],"parent":"tmux.SendKeySequenceRequest","signatures":[],"type":"[]string","doc":{"summary":"Keys are tmux key names sent in order."},"source":{"file":"tmux/pane_input.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeySequenceRequest.Keys","product":"core","slug":"tmux-sendkeysequencerequest-keys"},{"id":"tmux.SendKeySequenceRequest.Literal","name":"Literal","kind":"attribute","modifiers":[],"parent":"tmux.SendKeySequenceRequest","signatures":[],"type":"bool","doc":{"summary":"Literal treats every key as literal UTF-8 instead of a tmux key name."},"source":{"file":"tmux/pane_input.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeySequenceRequest.Literal","product":"core","slug":"tmux-sendkeysequencerequest-literal"},{"id":"tmux.Pane.SendKeySequence","name":"SendKeySequence","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SendKeySequence(ctx context.Context, request SendKeySequenceRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SendKeySequenceRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SendKeySequence sends the requested keys to the receiver's exact linked pane in one tmux command. It does not append Enter. Literal changes tmux key parsing but does not bypass interpretation by the pane's application.","body":"A returned error does not establish how many keys tmux delivered."},"source":{"file":"tmux/pane_input.go","line":68,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SendKeySequence","product":"core","slug":"tmux-pane-sendkeysequence"},{"id":"tmux.Pane.SendKeys","name":"SendKeys","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SendKeys(ctx context.Context, request SendKeysRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SendKeysRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SendKeys invokes tmux send-keys with the receiver's exact linked session-window-pane target. This is tmux key input, not shell execution: Literal only changes tmux key parsing, and any delivered text may still be interpreted by the pane's application. KeyName routes through a client's key table instead of delivering to the pane.","body":"KeyName and TargetClient require tmux 3.4 and follow [UnsupportedPolicy].\n\nA completed nonzero exit or stderr, from either the Command send or the\nseparate Enter, becomes a redacted [CommandError]: Command may carry a\ncaller's secret, so only tmux's exit code is retained. Transport and\ncontext errors are delivery-ambiguous, including between Command and Enter.","examples":[{"lang":"console","intro":"Send literal text followed by Enter to a pane running cat, then wait for the text to appear. Literal controls tmux key parsing; it does not prevent the pane's application from interpreting input. SendKeys returning does not establish that the application has processed the text. Use Go 1.26.0 or newer and tmux 3.2a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-go.git libtmux-source && \\\n git -C libtmux-source checkout 6f3df55f8a41999e41225eefb3940545b834e6a2\n"},{"lang":"go","intro":"Save this dependency file as go.mod:","code":"module example.com/libtmux-api\n\ngo 1.26.0\n\nrequire github.com/libtmux/libtmux-go v0.0.0\n\nreplace github.com/libtmux/libtmux-go => ./libtmux-source\n"},{"lang":"go","intro":"Save this complete example as example_test.go. It creates a private temporary socket and stops its server before removing the directory. Cleanup failure fails the example and retains the socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-go/blob/6f3df55f8a41999e41225eefb3940545b834e6a2/tmux/api_pane_send_keys_example_test.go","code":"package tmux_test\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"slices\"\n\t\"time\"\n\n\t\"github.com/libtmux/libtmux-go/tmux\"\n)\n\n// Send literal text followed by Enter to a pane running cat, then wait for\n// the text to appear. Literal controls tmux key parsing; it does not prevent\n// the pane's application from interpreting input. SendKeys returning does\n// not establish that the application has processed the text.\nfunc ExamplePane_SendKeys_complete() {\n\trun := func() (runErr error) {\n\t\tdirectory, err := os.MkdirTemp(\"\", \"libtmux-go-api-\")\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create socket directory: %w\", err)\n\t\t}\n\t\tserver, err := tmux.NewServer(tmux.ServerOptions{\n\t\t\tSocketPath: filepath.Join(directory, \"tmux.sock\"),\n\t\t\tConfigFile: \"/dev/null\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errors.Join(err, os.RemoveAll(directory))\n\t\t}\n\t\tdefer func() {\n\t\t\t// Cleanup has its own deadline because the operation may have timed out.\n\t\t\tcleanup, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\t\t\tdefer cancel()\n\t\t\tif err := server.Kill(cleanup); err != nil && !errors.Is(err, tmux.ErrNoServer) {\n\t\t\t\trunErr = errors.Join(runErr, fmt.Errorf(\"stop server at %s: %w\", directory, err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\trunErr = errors.Join(runErr, os.RemoveAll(directory))\n\t\t}()\n\t\tctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)\n\t\tdefer cancel()\n\t\tsession, err := server.NewSession(ctx, tmux.NewSessionRequest{\n\t\t\tName: \"work\", WindowName: \"editor\", Command: \"cat\", Width: 100, Height: 30,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create session: %w\", err)\n\t\t}\n\t\tpane, err := session.ResolveActivePane(ctx)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"resolve pane: %w\", err)\n\t\t}\n\t\ttext := \"api input\"\n\t\tif err := pane.SendKeys(ctx, tmux.SendKeysRequest{Command: &text, Literal: true}); err != nil {\n\t\t\treturn fmt.Errorf(\"send literal input: %w\", err)\n\t\t}\n\t\t// Capture is a point-in-time read, so wait for a complete matching line.\n\t\tticker := time.NewTicker(10 * time.Millisecond)\n\t\tdefer ticker.Stop()\n\t\tfor {\n\t\t\tlines, err := pane.Capture(ctx, tmux.CapturePaneRequest{\n\t\t\t\tStart: tmux.CaptureBoundary, End: tmux.CaptureBoundary,\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"capture pane: %w\", err)\n\t\t\t}\n\t\t\tif slices.Contains(lines, \"api input\") {\n\t\t\t\tfmt.Println(\"captured: api input\")\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tselect {\n\t\t\tcase <-ctx.Done():\n\t\t\t\treturn fmt.Errorf(\"wait for pane text: %w\", ctx.Err())\n\t\t\tcase <-ticker.C:\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\tif err := run(); err != nil {\n\t\tpanic(err)\n\t}\n\t// Output:\n\t// captured: api input\n}\n"},{"lang":"console","intro":"Run the saved file. Go checks the Output comment and fails on different output or an operation or cleanup error:","code":"$ GOWORK=off go test -count=1 -v example_test.go\n"}]},"source":{"file":"tmux/pane_input.go","line":139,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SendKeys","product":"core","slug":"tmux-pane-sendkeys"},{"id":"tmux.Pane.Writer","name":"Writer","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Writer(ctx context.Context) io.Writer","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"io.Writer"}],"doc":{"summary":"Writer returns the pane's keyboard as an [io.Writer]. Bytes written to it are typed into the pane literally, and each newline is the Enter key, so [fmt.Fprintln] submits a line as a person at the keyboard would. Text with no trailing newline is typed and left on the line.","body":"A write returns once tmux has taken the keys, before the pane's program has\nread them; the program interprets what arrives. A line with a trailing\nnewline costs two tmux commands, the text and a separate Enter; buffering\nwhole lines still costs far less than writing bytes one at a time."},"source":{"file":"tmux/pane_input.go","line":260,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Writer","product":"core","slug":"tmux-pane-writer"},{"id":"tmux.Pane.Enter","name":"Enter","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Enter(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"Enter sends the Enter key to the receiver's exact linked pane. A completed nonzero exit or stderr becomes a redacted [CommandError]; transport errors are delivery-ambiguous."},"source":{"file":"tmux/pane_input.go","line":291,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Enter","product":"core","slug":"tmux-pane-enter"},{"id":"tmux.PrefixKey","name":"PrefixKey","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PrefixKey selects the primary or secondary tmux prefix key. Its zero value selects the primary prefix."},"source":{"file":"tmux/pane_input.go","line":326,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PrefixKey","product":"core","slug":"tmux-prefixkey"},{"id":"tmux.PrefixPrimary","name":"PrefixPrimary","kind":"constant","modifiers":[],"signatures":[],"type":"PrefixKey","doc":{"summary":"PrefixPrimary selects tmux's primary prefix key."},"source":{"file":"tmux/pane_input.go","line":330,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PrefixPrimary","product":"core","slug":"tmux-prefixprimary"},{"id":"tmux.PrefixSecondary","name":"PrefixSecondary","kind":"constant","modifiers":[],"signatures":[],"type":"PrefixKey","doc":{"summary":"PrefixSecondary selects tmux's secondary prefix key."},"source":{"file":"tmux/pane_input.go","line":332,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PrefixSecondary","product":"core","slug":"tmux-prefixsecondary"},{"id":"tmux.Pane.SendPrefix","name":"SendPrefix","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SendPrefix(ctx context.Context, key PrefixKey) error","params":[{"name":"ctx","type":"context.Context"},{"name":"key","type":"PrefixKey"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SendPrefix sends a tmux prefix key to the receiver's exact linked pane. Unsupported PrefixKey values fail before execution. A completed command produces a [CommandError] only when tmux writes stderr; the library-created error retains only the exit code. Nonzero exits without stderr are ignored; transport errors are delivery-ambiguous."},"source":{"file":"tmux/pane_input.go","line":340,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SendPrefix","product":"core","slug":"tmux-pane-sendprefix"},{"id":"tmux.ClearHistoryRequest","name":"ClearHistoryRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ClearHistoryRequest configures pane history clearing. Its zero value clears scrollback without requesting hyperlink cleanup."},"source":{"file":"tmux/pane_input.go","line":360,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClearHistoryRequest","product":"core","slug":"tmux-clearhistoryrequest"},{"id":"tmux.ClearHistoryRequest.ResetHyperlinks","name":"ResetHyperlinks","kind":"attribute","modifiers":[],"parent":"tmux.ClearHistoryRequest","signatures":[],"type":"bool","doc":{"summary":"ResetHyperlinks also removes hyperlinks. It requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/pane_input.go","line":363,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClearHistoryRequest.ResetHyperlinks","product":"core","slug":"tmux-clearhistoryrequest-resethyperlinks"},{"id":"tmux.Pane.ClearHistory","name":"ClearHistory","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ClearHistory(ctx context.Context, request ClearHistoryRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ClearHistoryRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"ClearHistory removes scrollback from the receiver's exact linked pane. ResetHyperlinks triggers a version probe before mutation. A completed command produces a redacted [CommandError] only for stderr; nonzero exits without stderr are ignored. Accepted changes are not rolled back."},"source":{"file":"tmux/pane_input.go","line":370,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ClearHistory","product":"core","slug":"tmux-pane-clearhistory"},{"id":"tmux.Pane.Clear","name":"Clear","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Clear(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"Clear types the text \"reset\" and then Enter into the receiver's exact linked pane, the way a person at the keyboard would. Whatever is running reads it: a shell runs reset(1), and an editor receives the word. Use [Pane.Reset] or [Pane.ClearHistory] to act on the pane itself rather than on its program. A transport error may leave the text delivered without Enter."},"source":{"file":"tmux/pane_input.go","line":427,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Clear","product":"core","slug":"tmux-pane-clear"},{"id":"tmux.Pane.Reset","name":"Reset","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Reset(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"Reset submits one tmux command list that resets terminal state and then clears history for the exact linked pane. The mutations are not atomic and may be partial. Only stderr makes a completed command a [CommandError]; nonzero exits without stderr are ignored. Transport errors are delivery-ambiguous."},"source":{"file":"tmux/pane_input.go","line":437,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Reset","product":"core","slug":"tmux-pane-reset"},{"id":"tmux.CopyModeRequest","name":"CopyModeRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CopyModeRequest configures tmux copy mode. Its zero value enters copy mode on the receiver without scrolling. Fields may be combined. tmux resolves the receiver and optional SourcePane before processing Cancel, so a stale target can prevent reset. After resolution, Cancel takes precedence over other actions, though SourcePane validation and the PageDown version probe still occur first."},"source":{"file":"tmux/pane_modes.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeRequest","product":"core","slug":"tmux-copymoderequest"},{"id":"tmux.CopyModeRequest.ScrollUp","name":"ScrollUp","kind":"attribute","modifiers":[],"parent":"tmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"ScrollUp enters copy mode one page above the current position."},"source":{"file":"tmux/pane_modes.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeRequest.ScrollUp","product":"core","slug":"tmux-copymoderequest-scrollup"},{"id":"tmux.CopyModeRequest.ExitOnBottom","name":"ExitOnBottom","kind":"attribute","modifiers":[],"parent":"tmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"ExitOnBottom makes copy mode exit after scrolling back to the visible screen, until another non-scrolling key disables that behavior."},"source":{"file":"tmux/pane_modes.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeRequest.ExitOnBottom","product":"core","slug":"tmux-copymoderequest-exitonbottom"},{"id":"tmux.CopyModeRequest.MouseDrag","name":"MouseDrag","kind":"attribute","modifiers":[],"parent":"tmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"MouseDrag begins a copy-mode mouse drag and is meaningful from a mouse binding."},"source":{"file":"tmux/pane_modes.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeRequest.MouseDrag","product":"core","slug":"tmux-copymoderequest-mousedrag"},{"id":"tmux.CopyModeRequest.PageDown","name":"PageDown","kind":"attribute","modifiers":[],"parent":"tmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"PageDown enters copy mode one page below the current position. It requires tmux 3.5 and follows UnsupportedPolicy. Its version probe still occurs when Cancel is set."},"source":{"file":"tmux/pane_modes.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeRequest.PageDown","product":"core","slug":"tmux-copymoderequest-pagedown"},{"id":"tmux.CopyModeRequest.SourcePane","name":"SourcePane","kind":"attribute","modifiers":[],"parent":"tmux.CopyModeRequest","signatures":[],"type":"PaneID","doc":{"summary":"SourcePane selects a stable pane whose content is copied while the receiver remains the pane placed in copy mode. Zero uses the receiver. A nonzero value is validated by the library and resolved by tmux even when Cancel is set; a stale or nonexistent pane can prevent cancellation."},"source":{"file":"tmux/pane_modes.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeRequest.SourcePane","product":"core","slug":"tmux-copymoderequest-sourcepane"},{"id":"tmux.CopyModeRequest.Cancel","name":"Cancel","kind":"attribute","modifiers":[],"parent":"tmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"Cancel exits copy mode and any other active pane mode after tmux resolves the receiver and optional SourcePane. A resolution failure prevents the reset; after successful resolution, tmux ignores the other action fields."},"source":{"file":"tmux/pane_modes.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeRequest.Cancel","product":"core","slug":"tmux-copymoderequest-cancel"},{"id":"tmux.TreeSortOrder","name":"TreeSortOrder","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TreeSortOrder selects one initial tmux choose-tree ordering. Its zero value leaves tmux's configured ordering unchanged."},"source":{"file":"tmux/pane_modes.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TreeSortOrder","product":"core","slug":"tmux-treesortorder"},{"id":"tmux.TreeSortDefault","name":"TreeSortDefault","kind":"constant","modifiers":[],"signatures":[],"type":"TreeSortOrder","doc":{"summary":"TreeSortDefault leaves the configured choose-tree ordering unchanged."},"source":{"file":"tmux/pane_modes.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TreeSortDefault","product":"core","slug":"tmux-treesortdefault"},{"id":"tmux.TreeSortIndex","name":"TreeSortIndex","kind":"constant","modifiers":[],"signatures":[],"type":"TreeSortOrder","doc":{"summary":"TreeSortIndex orders tree entries by index."},"source":{"file":"tmux/pane_modes.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TreeSortIndex","product":"core","slug":"tmux-treesortindex"},{"id":"tmux.TreeSortName","name":"TreeSortName","kind":"constant","modifiers":[],"signatures":[],"type":"TreeSortOrder","doc":{"summary":"TreeSortName orders tree entries by name."},"source":{"file":"tmux/pane_modes.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TreeSortName","product":"core","slug":"tmux-treesortname"},{"id":"tmux.TreeSortTime","name":"TreeSortTime","kind":"constant","modifiers":[],"signatures":[],"type":"TreeSortOrder","doc":{"summary":"TreeSortTime orders tree entries by activity time."},"source":{"file":"tmux/pane_modes.go","line":51,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TreeSortTime","product":"core","slug":"tmux-treesorttime"},{"id":"tmux.TreeSortSize","name":"TreeSortSize","kind":"constant","modifiers":[],"signatures":[],"type":"TreeSortOrder","doc":{"summary":"TreeSortSize orders tree entries by size."},"source":{"file":"tmux/pane_modes.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TreeSortSize","product":"core","slug":"tmux-treesortsize"},{"id":"tmux.ChooseTreeRequest","name":"ChooseTreeRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ChooseTreeRequest configures the interactive session and window chooser. Its zero value uses tmux defaults. Format and Filter are copied before execution and must not be mutated concurrently."},"source":{"file":"tmux/pane_modes.go","line":59,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ChooseTreeRequest","product":"core","slug":"tmux-choosetreerequest"},{"id":"tmux.ChooseTreeRequest.SessionsCollapsed","name":"SessionsCollapsed","kind":"attribute","modifiers":[],"parent":"tmux.ChooseTreeRequest","signatures":[],"type":"bool","doc":{"summary":"SessionsCollapsed starts with session nodes collapsed."},"source":{"file":"tmux/pane_modes.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ChooseTreeRequest.SessionsCollapsed","product":"core","slug":"tmux-choosetreerequest-sessionscollapsed"},{"id":"tmux.ChooseTreeRequest.WindowsCollapsed","name":"WindowsCollapsed","kind":"attribute","modifiers":[],"parent":"tmux.ChooseTreeRequest","signatures":[],"type":"bool","doc":{"summary":"WindowsCollapsed starts with window nodes collapsed."},"source":{"file":"tmux/pane_modes.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ChooseTreeRequest.WindowsCollapsed","product":"core","slug":"tmux-choosetreerequest-windowscollapsed"},{"id":"tmux.ChooseTreeRequest.Format","name":"Format","kind":"attribute","modifiers":[],"parent":"tmux.ChooseTreeRequest","signatures":[],"type":"*string","doc":{"summary":"Format is a tmux format expression evaluated for each tree item. Nil leaves the configured format; nonnil empty remains an explicit format."},"source":{"file":"tmux/pane_modes.go","line":66,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ChooseTreeRequest.Format","product":"core","slug":"tmux-choosetreerequest-format"},{"id":"tmux.ChooseTreeRequest.Filter","name":"Filter","kind":"attribute","modifiers":[],"parent":"tmux.ChooseTreeRequest","signatures":[],"type":"*TmuxFilter","doc":{"summary":"Filter is a tmux format expression whose truth value selects tree items. Nil omits filtering; nonnil empty remains an explicit expression."},"source":{"file":"tmux/pane_modes.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ChooseTreeRequest.Filter","product":"core","slug":"tmux-choosetreerequest-filter"},{"id":"tmux.ChooseTreeRequest.Sort","name":"Sort","kind":"attribute","modifiers":[],"parent":"tmux.ChooseTreeRequest","signatures":[],"type":"TreeSortOrder","doc":{"summary":"Sort selects the initial ordering. Unknown values are rejected before execution."},"source":{"file":"tmux/pane_modes.go","line":72,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ChooseTreeRequest.Sort","product":"core","slug":"tmux-choosetreerequest-sort"},{"id":"tmux.ChooseTreeRequest.Reverse","name":"Reverse","kind":"attribute","modifiers":[],"parent":"tmux.ChooseTreeRequest","signatures":[],"type":"bool","doc":{"summary":"Reverse reverses the initial tree ordering."},"source":{"file":"tmux/pane_modes.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ChooseTreeRequest.Reverse","product":"core","slug":"tmux-choosetreerequest-reverse"},{"id":"tmux.ChooseTreeRequest.Zoom","name":"Zoom","kind":"attribute","modifiers":[],"parent":"tmux.ChooseTreeRequest","signatures":[],"type":"bool","doc":{"summary":"Zoom zooms the chooser pane while tree mode is active."},"source":{"file":"tmux/pane_modes.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ChooseTreeRequest.Zoom","product":"core","slug":"tmux-choosetreerequest-zoom"},{"id":"tmux.FindWindowRequest","name":"FindWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"FindWindowRequest configures the interactive window search chooser. Match is a tmux search operand, not a shell command. The zero value searches with an empty glob using tmux's default name, title, and visible-content scopes."},"source":{"file":"tmux/pane_modes.go","line":82,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FindWindowRequest","product":"core","slug":"tmux-findwindowrequest"},{"id":"tmux.FindWindowRequest.Match","name":"Match","kind":"attribute","modifiers":[],"parent":"tmux.FindWindowRequest","signatures":[],"type":"string","doc":{"summary":"Match is the glob pattern, or regular expression when Regex is true."},"source":{"file":"tmux/pane_modes.go","line":84,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FindWindowRequest.Match","product":"core","slug":"tmux-findwindowrequest-match"},{"id":"tmux.FindWindowRequest.MatchContent","name":"MatchContent","kind":"attribute","modifiers":[],"parent":"tmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"MatchContent restricts matching to visible window content, not history."},"source":{"file":"tmux/pane_modes.go","line":86,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FindWindowRequest.MatchContent","product":"core","slug":"tmux-findwindowrequest-matchcontent"},{"id":"tmux.FindWindowRequest.CaseInsensitive","name":"CaseInsensitive","kind":"attribute","modifiers":[],"parent":"tmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"CaseInsensitive makes matching ignore case."},"source":{"file":"tmux/pane_modes.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FindWindowRequest.CaseInsensitive","product":"core","slug":"tmux-findwindowrequest-caseinsensitive"},{"id":"tmux.FindWindowRequest.MatchName","name":"MatchName","kind":"attribute","modifiers":[],"parent":"tmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"MatchName restricts matching to window names."},"source":{"file":"tmux/pane_modes.go","line":90,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FindWindowRequest.MatchName","product":"core","slug":"tmux-findwindowrequest-matchname"},{"id":"tmux.FindWindowRequest.Regex","name":"Regex","kind":"attribute","modifiers":[],"parent":"tmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Regex interprets Match as a regular expression instead of a glob."},"source":{"file":"tmux/pane_modes.go","line":92,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FindWindowRequest.Regex","product":"core","slug":"tmux-findwindowrequest-regex"},{"id":"tmux.FindWindowRequest.MatchTitle","name":"MatchTitle","kind":"attribute","modifiers":[],"parent":"tmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"MatchTitle restricts matching to window titles."},"source":{"file":"tmux/pane_modes.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FindWindowRequest.MatchTitle","product":"core","slug":"tmux-findwindowrequest-matchtitle"},{"id":"tmux.DisplayPanesRequest","name":"DisplayPanesRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"DisplayPanesRequest configures pane-number display for tmux's current client and does not inherit the Pane target. Duration is read during the call, not retained, and must not be mutated concurrently."},"source":{"file":"tmux/pane_modes.go","line":100,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPanesRequest","product":"core","slug":"tmux-displaypanesrequest"},{"id":"tmux.DisplayPanesRequest.Duration","name":"Duration","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPanesRequest","signatures":[],"type":"*int","doc":{"summary":"Duration is the display time in milliseconds. Nil uses tmux's display-panes-time option; zero waits for a key press. Negative values are rejected before execution."},"source":{"file":"tmux/pane_modes.go","line":104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPanesRequest.Duration","product":"core","slug":"tmux-displaypanesrequest-duration"},{"id":"tmux.DisplayPanesRequest.NoSelect","name":"NoSelect","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPanesRequest","signatures":[],"type":"bool","doc":{"summary":"NoSelect prevents number keys from selecting a pane, so the display closes only after its duration. With Duration set to zero, it may remain until the context is canceled."},"source":{"file":"tmux/pane_modes.go","line":108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPanesRequest.NoSelect","product":"core","slug":"tmux-displaypanesrequest-noselect"},{"id":"tmux.Pane.CopyMode","name":"CopyMode","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CopyMode(ctx context.Context, request CopyModeRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"CopyModeRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"CopyMode enters or cancels copy mode using the receiver's exact linked session-window-pane target. PageDown requires tmux 3.5 and follows [UnsupportedPolicy]. A version-probe error stops the operation. tmux resolves the receiver and optional SourcePane before processing Cancel; a stale target can therefore fail without resetting the current mode. Cancel then takes precedence over other actions.","body":"Only stderr produces a redacted [CommandError]; nonzero exits without stderr\nare ignored. Accepted mode changes are not rolled back."},"source":{"file":"tmux/pane_modes.go","line":120,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CopyMode","product":"core","slug":"tmux-pane-copymode"},{"id":"tmux.Pane.ClockMode","name":"ClockMode","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ClockMode(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"ClockMode enters clock mode using the receiver's exact linked target."},"source":{"file":"tmux/pane_modes.go","line":171,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ClockMode","product":"core","slug":"tmux-pane-clockmode"},{"id":"tmux.Pane.ChooseBuffer","name":"ChooseBuffer","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ChooseBuffer(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"ChooseBuffer enters tmux's interactive buffer chooser using the receiver's exact linked target. It requires an attached client."},"source":{"file":"tmux/pane_modes.go","line":177,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ChooseBuffer","product":"core","slug":"tmux-pane-choosebuffer"},{"id":"tmux.Pane.ChooseClient","name":"ChooseClient","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ChooseClient(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"ChooseClient enters tmux's interactive client chooser using the receiver's exact linked target. It requires an attached client."},"source":{"file":"tmux/pane_modes.go","line":183,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ChooseClient","product":"core","slug":"tmux-pane-chooseclient"},{"id":"tmux.Pane.CustomizeMode","name":"CustomizeMode","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CustomizeMode(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"CustomizeMode enters tmux's interactive option browser using the receiver's exact linked target. It requires an attached client."},"source":{"file":"tmux/pane_modes.go","line":189,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CustomizeMode","product":"core","slug":"tmux-pane-customizemode"},{"id":"tmux.Pane.ChooseTree","name":"ChooseTree","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ChooseTree(ctx context.Context, request ChooseTreeRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ChooseTreeRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"ChooseTree enters tmux's interactive session, window, and pane chooser using the receiver's exact linked target. It requires an attached client. Format and Filter are tmux expressions; neither is interpreted by a shell. Unsupported sort values fail before execution. Only stderr produces a redacted [CommandError]; transport errors may leave tree mode active."},"source":{"file":"tmux/pane_modes.go","line":198,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ChooseTree","product":"core","slug":"tmux-pane-choosetree"},{"id":"tmux.Pane.FindWindow","name":"FindWindow","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) FindWindow(ctx context.Context, request FindWindowRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"FindWindowRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"FindWindow opens a tree chooser filtered by Match using the receiver's exact linked target. It requires an attached client. Match is passed as one tmux search operand and protected from leading-dash option parsing; it is not a tmux format or shell command. Only stderr produces a redacted [CommandError]; transport errors may leave the chooser open."},"source":{"file":"tmux/pane_modes.go","line":255,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.FindWindow","product":"core","slug":"tmux-pane-findwindow"},{"id":"tmux.Pane.DisplayPanes","name":"DisplayPanes","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) DisplayPanes(ctx context.Context, request DisplayPanesRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"DisplayPanesRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"DisplayPanes displays pane numbers for tmux's current client and waits for the indicator to close. It is client-scoped: the receiver supplies only the server connection and no pane target. A zero request uses tmux's configured duration and permits number-key selection.","body":"Only stderr produces a redacted [CommandError]; nonzero exits without stderr\nare ignored. Cancellation cannot revoke an accepted display."},"source":{"file":"tmux/pane_modes.go","line":291,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.DisplayPanes","product":"core","slug":"tmux-pane-displaypanes"},{"id":"tmux.DisplayPopupRequest","name":"DisplayPopupRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"DisplayPopupRequest configures a popup overlay. Pointer and map values are copied before I/O and must not be mutated concurrently. Pointer fields distinguish omission from an explicit empty value, with the Command and StartDirectory behavior documented on those fields.","body":"CloseOnExit and CloseOnSuccess are mutually exclusive. CloseExisting asks\ntmux only to close the existing overlay, so the remaining fields do not\ncreate a replacement. NoBorder makes BorderLines ineffective. When modifying\nan existing popup, NoKeys clears its configured automatic-close flags before\ntmux applies CloseOnExit, CloseOnSuccess, and CloseOnAnyKey from this request.\nNoKeys does not disable keyboard input."},"source":{"file":"tmux/pane_popup.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest","product":"core","slug":"tmux-displaypopuprequest"},{"id":"tmux.DisplayPopupRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"Command is interpreted by tmux as a shell command. Nil lets tmux use default-command and then its default shell; nonnil empty is passed explicitly and tmux resolves it directly to the default shell."},"source":{"file":"tmux/pane_popup.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.Command","product":"core","slug":"tmux-displaypopuprequest-command"},{"id":"tmux.DisplayPopupRequest.CloseOnExit","name":"CloseOnExit","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"CloseOnExit closes the overlay whenever Command exits."},"source":{"file":"tmux/pane_popup.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.CloseOnExit","product":"core","slug":"tmux-displaypopuprequest-closeonexit"},{"id":"tmux.DisplayPopupRequest.CloseOnSuccess","name":"CloseOnSuccess","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"CloseOnSuccess closes the overlay only when Command exits successfully."},"source":{"file":"tmux/pane_popup.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.CloseOnSuccess","product":"core","slug":"tmux-displaypopuprequest-closeonsuccess"},{"id":"tmux.DisplayPopupRequest.CloseExisting","name":"CloseExisting","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"CloseExisting closes the selected client's existing overlay and prevents this request from creating a replacement."},"source":{"file":"tmux/pane_popup.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.CloseExisting","product":"core","slug":"tmux-displaypopuprequest-closeexisting"},{"id":"tmux.DisplayPopupRequest.TargetClient","name":"TargetClient","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"ClientName","doc":{"summary":"TargetClient selects the client that receives the overlay; zero lets tmux choose. tmux 3.8 and later refuses to host a popup on a control-mode client, which cannot render an overlay, so an explicit control-mode TargetClient is rejected on those versions rather than left as the silent no-op tmux itself returns."},"source":{"file":"tmux/pane_popup.go","line":51,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.TargetClient","product":"core","slug":"tmux-displaypopuprequest-targetclient"},{"id":"tmux.DisplayPopupRequest.Width","name":"Width","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"Width is an explicit cell count or percentage and may contain tmux format expressions. Nil lets tmux choose the default width."},"source":{"file":"tmux/pane_popup.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.Width","product":"core","slug":"tmux-displaypopuprequest-width"},{"id":"tmux.DisplayPopupRequest.Height","name":"Height","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"Height is an explicit cell count or percentage and may contain tmux format expressions. Nil lets tmux choose the default height."},"source":{"file":"tmux/pane_popup.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.Height","product":"core","slug":"tmux-displaypopuprequest-height"},{"id":"tmux.DisplayPopupRequest.X","name":"X","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"X is a tmux popup position expression and may contain tmux formats. Nil lets tmux choose the horizontal position."},"source":{"file":"tmux/pane_popup.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.X","product":"core","slug":"tmux-displaypopuprequest-x"},{"id":"tmux.DisplayPopupRequest.Y","name":"Y","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"Y is a tmux popup position expression and may contain tmux formats. Nil lets tmux choose the vertical position."},"source":{"file":"tmux/pane_popup.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.Y","product":"core","slug":"tmux-displaypopuprequest-y"},{"id":"tmux.DisplayPopupRequest.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"StartDirectory selects the popup working directory. Nil omits the option; nonnil empty is normalized to \".\". The library expands a leading local ~ before tmux expands formats in the resulting value."},"source":{"file":"tmux/pane_popup.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.StartDirectory","product":"core","slug":"tmux-displaypopuprequest-startdirectory"},{"id":"tmux.DisplayPopupRequest.Title","name":"Title","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"Title is the popup title format. Nil leaves the tmux default."},"source":{"file":"tmux/pane_popup.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.Title","product":"core","slug":"tmux-displaypopuprequest-title"},{"id":"tmux.DisplayPopupRequest.BorderLines","name":"BorderLines","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"BorderLines selects tmux's border-line style. NoBorder makes it ineffective."},"source":{"file":"tmux/pane_popup.go","line":72,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.BorderLines","product":"core","slug":"tmux-displaypopuprequest-borderlines"},{"id":"tmux.DisplayPopupRequest.Style","name":"Style","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"Style selects the tmux style for the popup interior."},"source":{"file":"tmux/pane_popup.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.Style","product":"core","slug":"tmux-displaypopuprequest-style"},{"id":"tmux.DisplayPopupRequest.BorderStyle","name":"BorderStyle","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"BorderStyle selects the tmux style for the popup border."},"source":{"file":"tmux/pane_popup.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.BorderStyle","product":"core","slug":"tmux-displaypopuprequest-borderstyle"},{"id":"tmux.DisplayPopupRequest.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"map[string]string","doc":{"summary":"Environment adds validated popup environment entries. Nil and an empty map add none; entries are sent in lexical key order."},"source":{"file":"tmux/pane_popup.go","line":79,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.Environment","product":"core","slug":"tmux-displaypopuprequest-environment"},{"id":"tmux.DisplayPopupRequest.NoBorder","name":"NoBorder","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"NoBorder removes the popup border and makes BorderLines ineffective."},"source":{"file":"tmux/pane_popup.go","line":81,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.NoBorder","product":"core","slug":"tmux-displaypopuprequest-noborder"},{"id":"tmux.DisplayPopupRequest.CloseOnAnyKey","name":"CloseOnAnyKey","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"CloseOnAnyKey lets a nonmouse, nonpaste key dismiss the popup after its command has exited. It does not dismiss the popup while the job is active; tmux continues to send keys to that job."},"source":{"file":"tmux/pane_popup.go","line":85,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.CloseOnAnyKey","product":"core","slug":"tmux-displaypopuprequest-closeonanykey"},{"id":"tmux.DisplayPopupRequest.NoKeys","name":"NoKeys","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"NoKeys clears automatic-close flags previously configured on an existing popup. Same-request close flags are then applied, and key input remains enabled."},"source":{"file":"tmux/pane_popup.go","line":89,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.NoKeys","product":"core","slug":"tmux-displaypopuprequest-nokeys"},{"id":"tmux.Pane.DisplayPopup","name":"DisplayPopup","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) DisplayPopup(ctx context.Context, request DisplayPopupRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"DisplayPopupRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"DisplayPopup displays an overlay on the selected client and waits until it closes after command exit or user dismissal. A zero request starts tmux's default command or default shell and may wait indefinitely. The API exposes no popup process handle, stdout, or child exit status.","body":"The command carries the receiver's exact linked session-window-pane target,\nwhich supplies format and working-directory context. TargetClient selects\nthe overlay client; it does not turn the operation into pane delivery. tmux\ninterprets Command as a shell command; outer-parser escaping does not quote\nor neutralize that inner command.\n\nTitle, BorderLines, Style, BorderStyle, Environment, and NoBorder require\ntmux 3.3. CloseOnAnyKey and NoKeys require tmux 3.6. Unsupported fields follow\n[UnsupportedPolicy]. On tmux 3.8 and later, an explicit TargetClient that\nresolves to a control-mode client returns [ErrInvalidServerCommandRequest]\nunless CloseExisting is set: tmux itself answers that combination exactly\nas it answers success, so nothing on the wire would otherwise say the\npopup never ran. CloseExisting is exempt because tmux handles it before\nthat refusal on every version, clearing whatever overlay the target has -\nnothing, for a control-mode client - without creating anything either way.\n\nInvalid fields fail before display. Only stderr produces a redacted\n[CommandError]; nonzero exits without stderr are ignored. Cancellation cannot\ndismiss an accepted popup, which may remain visible."},"source":{"file":"tmux/pane_popup.go","line":137,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.DisplayPopup","product":"core","slug":"tmux-pane-displaypopup"},{"id":"tmux.PasteBufferRequest","name":"PasteBufferRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PasteBufferRequest configures one tmux paste-buffer operation. Its zero value pastes the top buffer, replaces linefeeds with tmux's default carriage-return separator, and uses the version's default control-character handling. Pointer values are copied before I/O and must not be mutated concurrently."},"source":{"file":"tmux/pane_process.go","line":9,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PasteBufferRequest","product":"core","slug":"tmux-pastebufferrequest"},{"id":"tmux.PasteBufferRequest.BufferName","name":"BufferName","kind":"attribute","modifiers":[],"parent":"tmux.PasteBufferRequest","signatures":[],"type":"*string","doc":{"summary":"BufferName selects a named tmux buffer. Nil selects the top buffer; nonnil empty remains an explicit buffer name."},"source":{"file":"tmux/pane_process.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PasteBufferRequest.BufferName","product":"core","slug":"tmux-pastebufferrequest-buffername"},{"id":"tmux.PasteBufferRequest.DeleteAfter","name":"DeleteAfter","kind":"attribute","modifiers":[],"parent":"tmux.PasteBufferRequest","signatures":[],"type":"bool","doc":{"summary":"DeleteAfter asks tmux to delete an existing selected buffer after processing it. Deletion does not prove bytes reached a pane whose input may be disabled."},"source":{"file":"tmux/pane_process.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PasteBufferRequest.DeleteAfter","product":"core","slug":"tmux-pastebufferrequest-deleteafter"},{"id":"tmux.PasteBufferRequest.LinefeedSeparator","name":"LinefeedSeparator","kind":"attribute","modifiers":[],"parent":"tmux.PasteBufferRequest","signatures":[],"type":"bool","doc":{"summary":"LinefeedSeparator preserves linefeeds instead of replacing them with Separator or tmux's default carriage return."},"source":{"file":"tmux/pane_process.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PasteBufferRequest.LinefeedSeparator","product":"core","slug":"tmux-pastebufferrequest-linefeedseparator"},{"id":"tmux.PasteBufferRequest.Bracket","name":"Bracket","kind":"attribute","modifiers":[],"parent":"tmux.PasteBufferRequest","signatures":[],"type":"bool","doc":{"summary":"Bracket surrounds the paste with bracketed-paste control codes when the pane application has requested bracketed paste mode."},"source":{"file":"tmux/pane_process.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PasteBufferRequest.Bracket","product":"core","slug":"tmux-pastebufferrequest-bracket"},{"id":"tmux.PasteBufferRequest.Separator","name":"Separator","kind":"attribute","modifiers":[],"parent":"tmux.PasteBufferRequest","signatures":[],"type":"*string","doc":{"summary":"Separator replaces linefeeds. Nil uses tmux's default carriage return; nonnil empty removes linefeeds. LinefeedSeparator takes precedence."},"source":{"file":"tmux/pane_process.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PasteBufferRequest.Separator","product":"core","slug":"tmux-pastebufferrequest-separator"},{"id":"tmux.PasteBufferRequest.NoVis","name":"NoVis","kind":"attribute","modifiers":[],"parent":"tmux.PasteBufferRequest","signatures":[],"type":"bool","doc":{"summary":"NoVis requests raw bytes and requires tmux 3.7. Older versions already paste raw bytes; see UnsupportedPolicy."},"source":{"file":"tmux/pane_process.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PasteBufferRequest.NoVis","product":"core","slug":"tmux-pastebufferrequest-novis"},{"id":"tmux.PipePaneRequest","name":"PipePaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PipePaneRequest configures a pane pipe. Its flags may be combined. Command is copied before I/O and must not be mutated concurrently."},"source":{"file":"tmux/pane_process.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PipePaneRequest","product":"core","slug":"tmux-pipepanerequest"},{"id":"tmux.PipePaneRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.PipePaneRequest","signatures":[],"type":"*string","doc":{"summary":"Command is a shell command for tmux's pipe process. Nil closes the current pipe; nonnil empty is an explicit operand that tmux also treats as stop."},"source":{"file":"tmux/pane_process.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PipePaneRequest.Command","product":"core","slug":"tmux-pipepanerequest-command"},{"id":"tmux.PipePaneRequest.OutputOnly","name":"OutputOnly","kind":"attribute","modifiers":[],"parent":"tmux.PipePaneRequest","signatures":[],"type":"bool","doc":{"summary":"OutputOnly connects pane output to the pipe command's standard input. When neither direction is set, tmux uses this direction by default."},"source":{"file":"tmux/pane_process.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PipePaneRequest.OutputOnly","product":"core","slug":"tmux-pipepanerequest-outputonly"},{"id":"tmux.PipePaneRequest.InputOnly","name":"InputOnly","kind":"attribute","modifiers":[],"parent":"tmux.PipePaneRequest","signatures":[],"type":"bool","doc":{"summary":"InputOnly connects the pipe command's standard output to pane input."},"source":{"file":"tmux/pane_process.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PipePaneRequest.InputOnly","product":"core","slug":"tmux-pipepanerequest-inputonly"},{"id":"tmux.PipePaneRequest.Toggle","name":"Toggle","kind":"attribute","modifiers":[],"parent":"tmux.PipePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Toggle closes an existing pipe or opens Command when no pipe exists."},"source":{"file":"tmux/pane_process.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PipePaneRequest.Toggle","product":"core","slug":"tmux-pipepanerequest-toggle"},{"id":"tmux.Pane.Respawn","name":"Respawn","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Respawn(ctx context.Context, request RespawnRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"RespawnRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"Respawn restarts the process in the receiver's exact linked pane on tmux 3.2a or newer. Command, when present, is passed as one tmux shell-command operand; Go neither executes it locally nor adds inner-shell quoting. Final semicolon protection applies only to tmux's outer command parser. See [RespawnRequest] for zero-value, directory, environment, and Kill behavior.","body":"Respawn refreshes by PaneID, so the returned canonical [Pane] may carry a\ndifferent linked-session or winlink context. The process may be restarted\nbefore refresh fails; in that case Respawn returns the original receiver and\nthe refresh error. Earlier failures return zero. Completed stderr produces a\nredacted [CommandError]; a nonzero exit without stderr is followed by refresh."},"source":{"file":"tmux/pane_process.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Respawn","product":"core","slug":"tmux-pane-respawn"},{"id":"tmux.Pane.PasteBuffer","name":"PasteBuffer","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) PasteBuffer(ctx context.Context, request PasteBufferRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"PasteBufferRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"PasteBuffer pastes a named or top buffer into the receiver's exact linked pane. DeleteAfter requests deletion after tmux processes an existing buffer; an exited target or missing named buffer fails before deletion, while deletion after disabled pane input does not prove byte delivery.","body":"NoVis requires tmux 3.7 and follows [UnsupportedPolicy]; older versions\nalready paste raw bytes. Only stderr produces a redacted [CommandError];\nnonzero exits without stderr are ignored. Accepted paste or deletion effects\nare not rolled back."},"source":{"file":"tmux/pane_process.go","line":134,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.PasteBuffer","product":"core","slug":"tmux-pane-pastebuffer"},{"id":"tmux.Pane.Pipe","name":"Pipe","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Pipe(ctx context.Context, request PipePaneRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"PipePaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"Pipe starts, toggles, or stops piping for the receiver's exact linked pane. tmux expands formats and time formats in Command before running it with sh -c. The library's protection for a final semicolon applies only to tmux's outer command parser; it does not quote or neutralize the child shell.","body":"A nil Command, and an explicit empty Command under tmux semantics, stops the\ncurrent pipe. Successful return means tmux installed, toggled, or stopped the\npipe; it does not report child-shell success or lifetime. Only stderr produces\na redacted [CommandError]. Accepted pipe changes are not rolled back."},"source":{"file":"tmux/pane_process.go","line":207,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Pipe","product":"core","slug":"tmux-pane-pipe"},{"id":"tmux.MovePaneRequest","name":"MovePaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"MovePaneRequest configures move-pane on tmux 3.2a or later. Its zero value is invalid: exactly one complete TargetPane or TargetWindow handle is required. Cross-object handles must be proven to share a daemon through connection state or the same nonempty SocketPath; matching socket names alone are insufficient. Size and Percentage are mutually exclusive. Invalid enum, target, size, and percentage values are rejected before execution.","body":"Size pointers are read during the call and not retained; nil omits the mode\nand nonnil is explicit. Do not mutate them concurrently."},"source":{"file":"tmux/pane_relocate.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MovePaneRequest","product":"core","slug":"tmux-movepanerequest"},{"id":"tmux.MovePaneRequest.TargetPane","name":"TargetPane","kind":"attribute","modifiers":[],"parent":"tmux.MovePaneRequest","signatures":[],"type":"Pane","doc":{"summary":"TargetPane selects an exact destination pane; a zero Pane omits it."},"source":{"file":"tmux/pane_relocate.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MovePaneRequest.TargetPane","product":"core","slug":"tmux-movepanerequest-targetpane"},{"id":"tmux.MovePaneRequest.TargetWindow","name":"TargetWindow","kind":"attribute","modifiers":[],"parent":"tmux.MovePaneRequest","signatures":[],"type":"Window","doc":{"summary":"TargetWindow selects an exact destination winlink; a zero Window omits it."},"source":{"file":"tmux/pane_relocate.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MovePaneRequest.TargetWindow","product":"core","slug":"tmux-movepanerequest-targetwindow"},{"id":"tmux.MovePaneRequest.Attach","name":"Attach","kind":"attribute","modifiers":[],"parent":"tmux.MovePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Attach lets tmux make the moved pane active in the destination winlink."},"source":{"file":"tmux/pane_relocate.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MovePaneRequest.Attach","product":"core","slug":"tmux-movepanerequest-attach"},{"id":"tmux.MovePaneRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.MovePaneRequest","signatures":[],"type":"PaneDirection","doc":{"summary":"Direction selects placement relative to the destination; zero means below."},"source":{"file":"tmux/pane_relocate.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MovePaneRequest.Direction","product":"core","slug":"tmux-movepanerequest-direction"},{"id":"tmux.MovePaneRequest.FullWindow","name":"FullWindow","kind":"attribute","modifiers":[],"parent":"tmux.MovePaneRequest","signatures":[],"type":"bool","doc":{"summary":"FullWindow lets the moved pane span the full destination window."},"source":{"file":"tmux/pane_relocate.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MovePaneRequest.FullWindow","product":"core","slug":"tmux-movepanerequest-fullwindow"},{"id":"tmux.MovePaneRequest.Size","name":"Size","kind":"attribute","modifiers":[],"parent":"tmux.MovePaneRequest","signatures":[],"type":"*int","doc":{"summary":"Size selects a nonnegative absolute pane size; nil omits it."},"source":{"file":"tmux/pane_relocate.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MovePaneRequest.Size","product":"core","slug":"tmux-movepanerequest-size"},{"id":"tmux.MovePaneRequest.Percentage","name":"Percentage","kind":"attribute","modifiers":[],"parent":"tmux.MovePaneRequest","signatures":[],"type":"*int","doc":{"summary":"Percentage selects a size from 0 through 100; nil omits it."},"source":{"file":"tmux/pane_relocate.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MovePaneRequest.Percentage","product":"core","slug":"tmux-movepanerequest-percentage"},{"id":"tmux.JoinPaneRequest","name":"JoinPaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"JoinPaneRequest configures join-pane with the same target, cross-daemon, sizing, validation, and pointer-ownership rules as [MovePaneRequest]."},"source":{"file":"tmux/pane_relocate.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.JoinPaneRequest","product":"core","slug":"tmux-joinpanerequest"},{"id":"tmux.JoinPaneRequest.TargetPane","name":"TargetPane","kind":"attribute","modifiers":[],"parent":"tmux.JoinPaneRequest","signatures":[],"type":"Pane","doc":{"summary":"TargetPane selects an exact destination pane; a zero Pane omits it."},"source":{"file":"tmux/pane_relocate.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.JoinPaneRequest.TargetPane","product":"core","slug":"tmux-joinpanerequest-targetpane"},{"id":"tmux.JoinPaneRequest.TargetWindow","name":"TargetWindow","kind":"attribute","modifiers":[],"parent":"tmux.JoinPaneRequest","signatures":[],"type":"Window","doc":{"summary":"TargetWindow selects an exact destination winlink; a zero Window omits it."},"source":{"file":"tmux/pane_relocate.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.JoinPaneRequest.TargetWindow","product":"core","slug":"tmux-joinpanerequest-targetwindow"},{"id":"tmux.JoinPaneRequest.Attach","name":"Attach","kind":"attribute","modifiers":[],"parent":"tmux.JoinPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Attach lets tmux make the joined pane active in the destination winlink."},"source":{"file":"tmux/pane_relocate.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.JoinPaneRequest.Attach","product":"core","slug":"tmux-joinpanerequest-attach"},{"id":"tmux.JoinPaneRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.JoinPaneRequest","signatures":[],"type":"PaneDirection","doc":{"summary":"Direction selects placement relative to the destination; zero means below."},"source":{"file":"tmux/pane_relocate.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.JoinPaneRequest.Direction","product":"core","slug":"tmux-joinpanerequest-direction"},{"id":"tmux.JoinPaneRequest.FullWindow","name":"FullWindow","kind":"attribute","modifiers":[],"parent":"tmux.JoinPaneRequest","signatures":[],"type":"bool","doc":{"summary":"FullWindow lets the joined pane span the full destination window."},"source":{"file":"tmux/pane_relocate.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.JoinPaneRequest.FullWindow","product":"core","slug":"tmux-joinpanerequest-fullwindow"},{"id":"tmux.JoinPaneRequest.Size","name":"Size","kind":"attribute","modifiers":[],"parent":"tmux.JoinPaneRequest","signatures":[],"type":"*int","doc":{"summary":"Size selects a nonnegative absolute pane size; nil omits it."},"source":{"file":"tmux/pane_relocate.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.JoinPaneRequest.Size","product":"core","slug":"tmux-joinpanerequest-size"},{"id":"tmux.JoinPaneRequest.Percentage","name":"Percentage","kind":"attribute","modifiers":[],"parent":"tmux.JoinPaneRequest","signatures":[],"type":"*int","doc":{"summary":"Percentage selects a size from 0 through 100; nil omits it."},"source":{"file":"tmux/pane_relocate.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.JoinPaneRequest.Percentage","product":"core","slug":"tmux-joinpanerequest-percentage"},{"id":"tmux.BreakPaneRequest","name":"BreakPaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"BreakPaneRequest configures break-pane on tmux 3.2a or later. Its zero value moves the receiver to a detached new window with tmux's default name, except for the documented raw-version 3.7 workaround in [Pane.BreakPane]. Empty Name means omission and is validated before the version probe."},"source":{"file":"tmux/pane_relocate.go","line":59,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BreakPaneRequest","product":"core","slug":"tmux-breakpanerequest"},{"id":"tmux.BreakPaneRequest.Attach","name":"Attach","kind":"attribute","modifiers":[],"parent":"tmux.BreakPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Attach lets the new winlink become current in the receiver session."},"source":{"file":"tmux/pane_relocate.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BreakPaneRequest.Attach","product":"core","slug":"tmux-breakpanerequest-attach"},{"id":"tmux.BreakPaneRequest.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.BreakPaneRequest","signatures":[],"type":"string","doc":{"summary":"Name requests the new window name; empty normally lets tmux choose."},"source":{"file":"tmux/pane_relocate.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BreakPaneRequest.Name","product":"core","slug":"tmux-breakpanerequest-name"},{"id":"tmux.Pane.Move","name":"Move","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Move(ctx context.Context, request MovePaneRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"MovePaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"Move relocates the receiver pane into one exact destination with tmux's move-pane command. Unless Attach is set, the destination's active-pane selection remains unchanged; Attach is not a global client-focus guarantee. The returned [Pane] is freshly materialized in the destination SessionID and WindowID rather than by canonical ID-only refresh.","body":"Removing the sole pane destroys the emptied source window and all of its\nwinlinks. Affected source sessions preserve their current selection unless\nthat window was current, in which case they select another. A session left\nwithout windows is destroyed and detaches its clients.\n\nIf exact refresh fails after the command, Move returns a partial Pane with\nthe receiver PaneID and predicted destination context. Other failures return\nzero. Transport errors are delivery-ambiguous and no rollback is attempted."},"source":{"file":"tmux/pane_relocate.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Move","product":"core","slug":"tmux-pane-move"},{"id":"tmux.Pane.Join","name":"Join","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Join(ctx context.Context, request JoinPaneRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"JoinPaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"Join relocates the receiver with join-pane. Its selection, source-destruction, partial-result, and delivery behavior matches [Pane.Move]."},"source":{"file":"tmux/pane_relocate.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Join","product":"core","slug":"tmux-pane-join"},{"id":"tmux.Pane.BreakPane","name":"BreakPane","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) BreakPane(ctx context.Context, request BreakPaneRequest) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"BreakPaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Window, error)"}],"doc":{"summary":"BreakPane moves the receiver into a new window in its exact session. Attach lets that new winlink become current in the session; it is not a global client-focus guarantee. The returned [Window] is freshly materialized in the receiver SessionID rather than by canonical ID-only refresh.","body":"Before tmux 3.6, the sole-pane path may print no ID and retain WindowID; this\nmethod refreshes that identity. Raw version \"3.7\" alone uses a placeholder\nname and optional second rename; with an empty Name, the window may remain\nnamed \"libtmux\". Suffixed 3.7 releases do not use the workaround.\n\nAfter a reported ID, rename failure, or refresh failure, the partial result\ncarries the known WindowID and receiver session with Index -1. Earlier\nfailures return zero; no mutation is rolled back."},"source":{"file":"tmux/pane_relocate.go","line":119,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.BreakPane","product":"core","slug":"tmux-pane-breakpane"},{"id":"tmux.PaneText","name":"PaneText","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneText is what a pane wrote after an observation's baseline, as the text a person would read: escape sequences removed, UTF-8 joined across writes, and each carriage return or backspace that would overwrite text starting a new line, so nothing the program wrote is hidden."},"source":{"file":"tmux/pane_wait.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneText","product":"core","slug":"tmux-panetext"},{"id":"tmux.PaneText.Text","name":"Text","kind":"attribute","modifiers":[],"parent":"tmux.PaneText","signatures":[],"type":"string","doc":{"summary":"Text is the most recent output, up to a mebibyte."},"source":{"file":"tmux/pane_wait.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneText.Text","product":"core","slug":"tmux-panetext-text"},{"id":"tmux.PaneText.DroppedBytes","name":"DroppedBytes","kind":"attribute","modifiers":[],"parent":"tmux.PaneText","signatures":[],"type":"int","doc":{"summary":"DroppedBytes counts what was dropped from the front of Text to keep it within that bound."},"source":{"file":"tmux/pane_wait.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneText.DroppedBytes","product":"core","slug":"tmux-panetext-droppedbytes"},{"id":"tmux.PaneText.DroppedLines","name":"DroppedLines","kind":"attribute","modifiers":[],"parent":"tmux.PaneText","signatures":[],"type":"int","doc":{"summary":"DroppedLines counts the line ends among those dropped bytes."},"source":{"file":"tmux/pane_wait.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneText.DroppedLines","product":"core","slug":"tmux-panetext-droppedlines"},{"id":"tmux.PaneObservation.WaitFor","name":"WaitFor","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) WaitFor(\n\tctx context.Context,\n\tmatch func(text string) bool,\n) (PaneText, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"match","type":"func(text string) bool"}],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"(PaneText, error)"}],"doc":{"summary":"WaitFor reads what the pane writes after the observation's baseline and calls match with all of it each time the pane writes, until match reports true, ctx ends, or the observation is lost. It returns the text match accepted, or what was read before the error. tmux pushes each write as it happens, so nothing is polled.","body":"The baseline is not part of the text: check [PaneObservation.Baseline] for\nwhat was on screen already. A shell echoes what is typed into it, and the\necho is output like any other, so open the observation before typing and\nmatch on what the command prints rather than on the command itself.\n\nWrites that arrived together reach match once. Exactly one read may run at\na time, as for [PaneObservation.NextNotification], and a malformed\nnotification is skipped as [PaneObservation.Reader] skips it."},"source":{"file":"tmux/pane_wait.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.WaitFor","product":"core","slug":"tmux-paneobservation-waitfor"},{"id":"tmux.ErrPlan","name":"ErrPlan","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrPlan identifies a plan that cannot run as recorded. It is matched by errors.Is for [PlanError]."},"source":{"file":"tmux/plan.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrPlan","product":"core","slug":"tmux-errplan"},{"id":"tmux.PlanError","name":"PlanError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PlanError reports a plan this package refused before sending anything to tmux. It matches [ErrPlan] through errors.Is; callers can recover Step and Reason with errors.As."},"source":{"file":"tmux/plan.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PlanError","product":"core","slug":"tmux-planerror"},{"id":"tmux.PlanError.Step","name":"Step","kind":"attribute","modifiers":[],"parent":"tmux.PlanError","signatures":[],"type":"int","doc":{"summary":"Step is the zero-based index of the operation at fault."},"source":{"file":"tmux/plan.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PlanError.Step","product":"core","slug":"tmux-planerror-step"},{"id":"tmux.PlanError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.PlanError","signatures":[],"type":"string","doc":{"summary":"Reason describes what makes the plan unrunnable."},"source":{"file":"tmux/plan.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PlanError.Reason","product":"core","slug":"tmux-planerror-reason"},{"id":"tmux.PlanError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.PlanError","signatures":[{"raw":"func (e *PlanError) Error() string","params":[],"receiver":{"name":"e","type":"*PlanError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/plan.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PlanError.Error","product":"core","slug":"tmux-planerror-error"},{"id":"tmux.PlanError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.PlanError","signatures":[{"raw":"func (e *PlanError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*PlanError"},"returns":"error"}],"doc":{"summary":"Unwrap makes PlanError compatible with ErrPlan."},"source":{"file":"tmux/plan.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PlanError.Unwrap","product":"core","slug":"tmux-planerror-unwrap"},{"id":"tmux.Ref","name":"Ref","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Ref addresses an existing object or one an earlier [Plan] step will create. This permits forward construction without tmux I/O. The zero Ref addresses nothing and makes a targeted operation fail validation."},"source":{"file":"tmux/plan.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Ref","product":"core","slug":"tmux-ref"},{"id":"tmux.Session.Ref","name":"Ref","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Ref() Ref","params":[],"receiver":{"name":"s","type":"Session"},"returns":"Ref"}],"doc":{"summary":"Ref returns a [Ref] addressing the receiver."},"source":{"file":"tmux/plan.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Ref","product":"core","slug":"tmux-session-ref"},{"id":"tmux.Window.Ref","name":"Ref","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Ref() Ref","params":[],"receiver":{"name":"w","type":"Window"},"returns":"Ref"}],"doc":{"summary":"Ref returns a [Ref] addressing the receiver."},"source":{"file":"tmux/plan.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Ref","product":"core","slug":"tmux-window-ref"},{"id":"tmux.Pane.Ref","name":"Ref","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Ref() Ref","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"Ref"}],"doc":{"summary":"Ref returns a [Ref] addressing the receiver."},"source":{"file":"tmux/plan.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Ref","product":"core","slug":"tmux-pane-ref"},{"id":"tmux.SessionRef","name":"SessionRef","kind":"function","modifiers":[],"signatures":[{"raw":"func SessionRef(id SessionID) Ref","params":[{"name":"id","type":"SessionID"}],"returns":"Ref"}],"doc":{"summary":"SessionRef returns a selector-relative [Ref] addressing a session by ID, for a caller holding an identifier rather than a materialized record."},"source":{"file":"tmux/plan.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionRef","product":"core","slug":"tmux-sessionref"},{"id":"tmux.WindowRef","name":"WindowRef","kind":"function","modifiers":[],"signatures":[{"raw":"func WindowRef(id WindowID) Ref","params":[{"name":"id","type":"WindowID"}],"returns":"Ref"}],"doc":{"summary":"WindowRef returns a selector-relative [Ref] addressing a window by ID, for a caller holding an identifier rather than a materialized record."},"source":{"file":"tmux/plan.go","line":73,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowRef","product":"core","slug":"tmux-windowref"},{"id":"tmux.PaneRef","name":"PaneRef","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneRef(id PaneID) Ref","params":[{"name":"id","type":"PaneID"}],"returns":"Ref"}],"doc":{"summary":"PaneRef returns a selector-relative [Ref] addressing a pane by ID, for a caller holding an identifier rather than a materialized record."},"source":{"file":"tmux/plan.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneRef","product":"core","slug":"tmux-paneref"},{"id":"tmux.Ref.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.Ref","signatures":[{"raw":"func (r Ref) String() string","params":[],"receiver":{"name":"r","type":"Ref"},"returns":"string"}],"doc":{"summary":"String returns the target a Ref resolves to, or a placeholder naming the step that will produce it."},"source":{"file":"tmux/plan.go","line":81,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Ref.String","product":"core","slug":"tmux-ref-string"},{"id":"tmux.Op","name":"Op","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Op is one tmux command a [Plan] has recorded but not run. Build one with a [Plan] method rather than directly; the zero value records nothing."},"source":{"file":"tmux/plan.go","line":93,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Op","product":"core","slug":"tmux-op"},{"id":"tmux.Op.Chainable","name":"Chainable","kind":"method","modifiers":[],"parent":"tmux.Op","signatures":[{"raw":"func (o Op) Chainable() bool","params":[],"receiver":{"name":"o","type":"Op"},"returns":"bool"}],"doc":{"summary":"Chainable reports whether the operation may share a tmux invocation with others, which is what a [Planner] groups on."},"source":{"file":"tmux/plan.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Op.Chainable","product":"core","slug":"tmux-op-chainable"},{"id":"tmux.Op.Command","name":"Command","kind":"method","modifiers":[],"parent":"tmux.Op","signatures":[{"raw":"func (o Op) Command() string","params":[],"receiver":{"name":"o","type":"Op"},"returns":"string"}],"doc":{"summary":"Command returns the tmux command the operation records."},"source":{"file":"tmux/plan.go","line":114,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Op.Command","product":"core","slug":"tmux-op-command"},{"id":"tmux.Plan","name":"Plan","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Plan records ordered tmux commands for later execution. It groups commands that need no answer and lets later steps reference objects earlier steps create.","body":"Recording touches nothing. [Plan.Preview] renders what would be sent and\n[Plan.Explain] says how it would be grouped, both without a server;\n[Plan.Run] is the only method that reaches tmux.\n\nA Plan is not safe for concurrent use."},"source":{"file":"tmux/plan.go","line":127,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan","product":"core","slug":"tmux-plan"},{"id":"tmux.NewPlan","name":"NewPlan","kind":"function","modifiers":[],"signatures":[{"raw":"func NewPlan() *Plan","params":[],"returns":"*Plan"}],"doc":{"summary":"NewPlan returns an empty [Plan]."},"source":{"file":"tmux/plan.go","line":141,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPlan","product":"core","slug":"tmux-newplan"},{"id":"tmux.Plan.Len","name":"Len","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) Len() int","params":[],"receiver":{"name":"p","type":"*Plan"},"returns":"int"}],"doc":{"summary":"Len returns how many operations the plan has recorded."},"source":{"file":"tmux/plan.go","line":153,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.Len","product":"core","slug":"tmux-plan-len"},{"id":"tmux.Plan.Ops","name":"Ops","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) Ops() []Op","params":[],"receiver":{"name":"p","type":"*Plan"},"returns":"[]Op"}],"doc":{"summary":"Ops returns the recorded operations, in order, for a [Planner] to group."},"source":{"file":"tmux/plan.go","line":156,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.Ops","product":"core","slug":"tmux-plan-ops"},{"id":"tmux.Dispatch","name":"Dispatch","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Dispatch is one tmux invocation and the operations it carries. A dispatch holding more than one operation is sent as a tmux command list."},"source":{"file":"tmux/plan.go","line":247,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Dispatch","product":"core","slug":"tmux-dispatch"},{"id":"tmux.Dispatch.Ops","name":"Ops","kind":"attribute","modifiers":[],"parent":"tmux.Dispatch","signatures":[],"type":"[]int","doc":{"summary":"Ops are the indices of the operations this dispatch carries, in order."},"source":{"file":"tmux/plan.go","line":249,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Dispatch.Ops","product":"core","slug":"tmux-dispatch-ops"},{"id":"tmux.Dispatch.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.Dispatch","signatures":[],"type":"string","doc":{"summary":"Reason says why the dispatch ends where it does. It is \"chained\" for a command list, \"creates\" for an operation whose new object's ID a later step needs, \"captures\" for one whose output the caller reads, and \"alone\" for a chainable operation with nothing beside it to chain to."},"source":{"file":"tmux/plan.go","line":254,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Dispatch.Reason","product":"core","slug":"tmux-dispatch-reason"},{"id":"tmux.Planner","name":"Planner","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Planner groups a plan's operations into tmux invocations.","body":"Dispatches must contain every operation exactly once and in recorded order.\n[Plan.Run] validates this before reaching tmux.\n\nOperations with [Op.Chainable] false must run alone because command-list\nstdout cannot be attributed to an individual operation."},"source":{"file":"tmux/plan.go","line":264,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Planner","product":"core","slug":"tmux-planner"},{"id":"tmux.Sequential","name":"Sequential","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Sequential sends every operation as its own tmux invocation. It is the simplest correct planner, and useful as a baseline: a plan produces the same results through it as through [Folding], at one invocation per operation."},"source":{"file":"tmux/plan.go","line":272,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Sequential","product":"core","slug":"tmux-sequential"},{"id":"tmux.Sequential.Plan","name":"Plan","kind":"method","modifiers":[],"parent":"tmux.Sequential","signatures":[{"raw":"func (Sequential) Plan(ops []Op) []Dispatch","params":[{"name":"ops","type":"[]Op"}],"receiver":{"name":"","type":"Sequential"},"returns":"[]Dispatch"}],"doc":{"summary":"Plan returns one dispatch per operation."},"source":{"file":"tmux/plan.go","line":275,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Sequential.Plan","product":"core","slug":"tmux-sequential-plan"},{"id":"tmux.Folding","name":"Folding","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Folding groups each run of operations that neither answer nor create into one tmux command list, and sends the rest alone. It is what [Plan.Run] uses."},"source":{"file":"tmux/plan.go","line":292,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Folding","product":"core","slug":"tmux-folding"},{"id":"tmux.Folding.Plan","name":"Plan","kind":"method","modifiers":[],"parent":"tmux.Folding","signatures":[{"raw":"func (Folding) Plan(ops []Op) []Dispatch","params":[{"name":"ops","type":"[]Op"}],"receiver":{"name":"","type":"Folding"},"returns":"[]Dispatch"}],"doc":{"summary":"Plan returns the dispatches for ops, grouping consecutive chainable runs."},"source":{"file":"tmux/plan.go","line":295,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Folding.Plan","product":"core","slug":"tmux-folding-plan"},{"id":"tmux.Plan.Explain","name":"Explain","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) Explain() []Dispatch","params":[],"receiver":{"name":"p","type":"*Plan"},"returns":"[]Dispatch"}],"doc":{"summary":"Explain reports how [Plan.Run] would group the recorded operations into tmux commands, and why each group ends where it does. It runs no commands.","body":"The number of dispatches is the number of tmux invocations."},"source":{"file":"tmux/plan.go","line":332,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.Explain","product":"core","slug":"tmux-plan-explain"},{"id":"tmux.Plan.ExplainWith","name":"ExplainWith","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) ExplainWith(planner Planner) []Dispatch","params":[{"name":"planner","type":"Planner"}],"receiver":{"name":"p","type":"*Plan"},"returns":"[]Dispatch"}],"doc":{"summary":"ExplainWith reports how planner would group the recorded operations."},"source":{"file":"tmux/plan.go","line":335,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.ExplainWith","product":"core","slug":"tmux-plan-explainwith"},{"id":"tmux.Plan.Preview","name":"Preview","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) Preview(version Version) ([][]string, error)","params":[{"name":"version","type":"Version"}],"receiver":{"name":"p","type":"*Plan"},"returns":"([][]string, error)"}],"doc":{"summary":"Preview renders every recorded operation's argument vector without running anything, for the tmux version given.","body":"An entry is nil when it references an object an earlier step has not created.\n\nOther render failures return the entries completed before the error. Preview\ncatches them before a non-atomic run can partially mutate tmux."},"source":{"file":"tmux/plan.go","line":346,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.Preview","product":"core","slug":"tmux-plan-preview"},{"id":"tmux.PlanResult","name":"PlanResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PlanResult reports what running a [Plan] did, one entry per recorded operation, in the order they were recorded."},"source":{"file":"tmux/plan.go","line":372,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PlanResult","product":"core","slug":"tmux-planresult"},{"id":"tmux.PlanResult.Ops","name":"Ops","kind":"attribute","modifiers":[],"parent":"tmux.PlanResult","signatures":[],"type":"[]OpResult","doc":{"summary":"Ops holds one result per recorded operation, in the order recorded."},"source":{"file":"tmux/plan.go","line":374,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PlanResult.Ops","product":"core","slug":"tmux-planresult-ops"},{"id":"tmux.PlanResult.OK","name":"OK","kind":"method","modifiers":[],"parent":"tmux.PlanResult","signatures":[{"raw":"func (r PlanResult) OK() bool","params":[],"receiver":{"name":"r","type":"PlanResult"},"returns":"bool"}],"doc":{"summary":"OK reports whether every operation completed."},"source":{"file":"tmux/plan.go","line":378,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PlanResult.OK","product":"core","slug":"tmux-planresult-ok"},{"id":"tmux.PlanResult.Err","name":"Err","kind":"method","modifiers":[],"parent":"tmux.PlanResult","signatures":[{"raw":"func (r PlanResult) Err() error","params":[],"receiver":{"name":"r","type":"PlanResult"},"returns":"error"}],"doc":{"summary":"Err returns the first failed or indeterminate operation's error, or nil when every operation completed."},"source":{"file":"tmux/plan.go","line":389,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PlanResult.Err","product":"core","slug":"tmux-planresult-err"},{"id":"tmux.OpStatus","name":"OpStatus","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"OpStatus reports what became of one operation in a plan."},"source":{"file":"tmux/plan.go","line":399,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpStatus","product":"core","slug":"tmux-opstatus"},{"id":"tmux.OpComplete","name":"OpComplete","kind":"constant","modifiers":[],"signatures":[],"type":"OpStatus","doc":{"summary":"OpComplete is an operation tmux ran successfully."},"source":{"file":"tmux/plan.go","line":403,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpComplete","product":"core","slug":"tmux-opcomplete"},{"id":"tmux.OpFailed","name":"OpFailed","kind":"constant","modifiers":[],"signatures":[],"type":"OpStatus","doc":{"summary":"OpFailed is an operation tmux refused. Only an operation sent alone can receive this status."},"source":{"file":"tmux/plan.go","line":406,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpFailed","product":"core","slug":"tmux-opfailed"},{"id":"tmux.OpIndeterminate","name":"OpIndeterminate","kind":"constant","modifiers":[],"signatures":[],"type":"OpStatus","doc":{"summary":"OpIndeterminate is an operation dispatched without enough reply evidence to prove whether tmux applied or rejected it."},"source":{"file":"tmux/plan.go","line":409,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpIndeterminate","product":"core","slug":"tmux-opindeterminate"},{"id":"tmux.OpSkipped","name":"OpSkipped","kind":"constant","modifiers":[],"signatures":[],"type":"OpStatus","doc":{"summary":"OpSkipped is an operation the plan did not dispatch because an earlier dispatch failed or became indeterminate."},"source":{"file":"tmux/plan.go","line":412,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpSkipped","product":"core","slug":"tmux-opskipped"},{"id":"tmux.OpStatus.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.OpStatus","signatures":[{"raw":"func (s OpStatus) String() string","params":[],"receiver":{"name":"s","type":"OpStatus"},"returns":"string"}],"doc":{"summary":"String implements fmt.Stringer."},"source":{"file":"tmux/plan.go","line":416,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpStatus.String","product":"core","slug":"tmux-opstatus-string"},{"id":"tmux.OpResult","name":"OpResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"OpResult is what one operation in a [Plan] produced."},"source":{"file":"tmux/plan.go","line":432,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpResult","product":"core","slug":"tmux-opresult"},{"id":"tmux.OpResult.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.OpResult","signatures":[],"type":"string","doc":{"summary":"Command is the tmux command the operation recorded."},"source":{"file":"tmux/plan.go","line":434,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpResult.Command","product":"core","slug":"tmux-opresult-command"},{"id":"tmux.OpResult.Status","name":"Status","kind":"attribute","modifiers":[],"parent":"tmux.OpResult","signatures":[],"type":"OpStatus","doc":{"summary":"Status reports what became of the operation."},"source":{"file":"tmux/plan.go","line":436,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpResult.Status","product":"core","slug":"tmux-opresult-status"},{"id":"tmux.OpResult.Created","name":"Created","kind":"attribute","modifiers":[],"parent":"tmux.OpResult","signatures":[],"type":"string","doc":{"summary":"Created is the ID tmux reported for an object this operation brought into being, and is empty for every other operation."},"source":{"file":"tmux/plan.go","line":439,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpResult.Created","product":"core","slug":"tmux-opresult-created"},{"id":"tmux.OpResult.Stdout","name":"Stdout","kind":"attribute","modifiers":[],"parent":"tmux.OpResult","signatures":[],"type":"[]string","doc":{"summary":"Stdout holds the operation's output, for an operation that captures it."},"source":{"file":"tmux/plan.go","line":441,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpResult.Stdout","product":"core","slug":"tmux-opresult-stdout"},{"id":"tmux.OpResult.Err","name":"Err","kind":"attribute","modifiers":[],"parent":"tmux.OpResult","signatures":[],"type":"error","doc":{"summary":"Err is the failure or uncertainty for a failed or indeterminate operation."},"source":{"file":"tmux/plan.go","line":443,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpResult.Err","product":"core","slug":"tmux-opresult-err"},{"id":"tmux.Plan.Run","name":"Run","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) Run(ctx context.Context, server Server) (PlanResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"server","type":"Server"}],"receiver":{"name":"p","type":"*Plan"},"returns":"(PlanResult, error)"}],"doc":{"summary":"Run sends the recorded operations through server and returns one result per step.","body":"Operations that need no answer travel together in one tmux command list;\n[Plan.Explain] reports the grouping. Run stops at the first failed or\nindeterminate dispatch; later operations are [OpSkipped].\n\nTmux refusals appear in results. Transport, context, and [PlanError] failures\nare returned. Run is not atomic; completed mutations remain after failure."},"source":{"file":"tmux/plan.go","line":454,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.Run","product":"core","slug":"tmux-plan-run"},{"id":"tmux.Plan.RunWith","name":"RunWith","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) RunWith(\n\tctx context.Context,\n\tserver Server,\n\tplanner Planner,\n) (PlanResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"server","type":"Server"},{"name":"planner","type":"Planner"}],"receiver":{"name":"p","type":"*Plan"},"returns":"(PlanResult, error)"}],"doc":{"summary":"RunWith runs the plan with planner deciding dispatch grouping. Successful execution produces planner-independent results, but every operation in a failed grouped dispatch is [OpIndeterminate]. Use [Sequential] for exact attribution."},"source":{"file":"tmux/plan.go","line":462,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.RunWith","product":"core","slug":"tmux-plan-runwith"},{"id":"tmux.Plan.Cmd","name":"Cmd","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) Cmd(target Ref, args ...string)","params":[{"name":"target","type":"Ref"},{"name":"args","type":"string","variadic":"positional"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"Cmd records raw tmux arguments targeted at target.","body":"It can target an object an earlier step creates. A zero [Ref] records an\nuntargeted server command.\n\nThe recorded command is assumed to neither print output the caller reads nor\ncreate an object, which is what lets it share a dispatch with its neighbours.\nUse [Plan.CmdCapture] for one whose output is the point."},"source":{"file":"tmux/plan.go","line":731,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.Cmd","product":"core","slug":"tmux-plan-cmd"},{"id":"tmux.Plan.CmdCapture","name":"CmdCapture","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) CmdCapture(target Ref, args ...string)","params":[{"name":"target","type":"Ref"},{"name":"args","type":"string","variadic":"positional"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"CmdCapture records raw tmux arguments whose output is returned in the step's [OpResult], and is otherwise [Plan.Cmd].","body":"Reading output is what stops an operation sharing a dispatch, so this is sent\non its own; [Plan.Explain] reports that."},"source":{"file":"tmux/plan.go","line":740,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.CmdCapture","product":"core","slug":"tmux-plan-cmdcapture"},{"id":"tmux.Plan.SplitPane","name":"SplitPane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SplitPane(target Ref, request SplitPaneRequest) Ref","params":[{"name":"target","type":"Ref"},{"name":"request","type":"SplitPaneRequest"}],"receiver":{"name":"p","type":"*Plan"},"returns":"Ref"}],"doc":{"summary":"SplitPane records a split of the window or pane target names, and returns a [Ref] to the pane it will create.","body":"The returned ref can target later steps before the pane exists:\n\n```go\nplan := tmux.NewPlan()\npane := plan.SplitPane(window.Ref(), tmux.SplitPaneRequest{})\nplan.SendKeys(pane, tmux.SendKeysRequest{Command: tmux.Ptr(\"top\")})\nresult, err := plan.Run(ctx, server)\n```"},"source":{"file":"tmux/plan_pane.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SplitPane","product":"core","slug":"tmux-plan-splitpane"},{"id":"tmux.Plan.SendKeys","name":"SendKeys","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SendKeys(target Ref, request SendKeysRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"SendKeysRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SendKeys records keys sent to the pane target names.","body":"Sending keys produces no output and can share a dispatch; see [Plan.Explain].\n\nA request carrying a command records two steps, as [Pane.SendKeys] issues two\ntmux commands: the keys, and the Enter that submits them. Both are chainable,\nso they still travel together."},"source":{"file":"tmux/plan_pane.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SendKeys","product":"core","slug":"tmux-plan-sendkeys"},{"id":"tmux.Plan.DisplayMessage","name":"DisplayMessage","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) DisplayMessage(target Ref, format string)","params":[{"name":"target","type":"Ref"},{"name":"format","type":"string"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"DisplayMessage records a format expanded against the object target names, and returns its output in the step's [OpResult]. The zero [Ref] expands it against no object, the way [Plan.Cmd] takes one.","body":"It runs alone because command-list stdout has no operation boundaries."},"source":{"file":"tmux/plan_pane.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.DisplayMessage","product":"core","slug":"tmux-plan-displaymessage"},{"id":"tmux.Plan.KillPane","name":"KillPane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) KillPane(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"KillPane records the destruction of the pane target names."},"source":{"file":"tmux/plan_pane.go","line":85,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.KillPane","product":"core","slug":"tmux-plan-killpane"},{"id":"tmux.Plan.KillOtherPanes","name":"KillOtherPanes","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) KillOtherPanes(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"KillOtherPanes records the destruction of every pane in the window holding the pane target names, except that pane."},"source":{"file":"tmux/plan_pane.go","line":97,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.KillOtherPanes","product":"core","slug":"tmux-plan-killotherpanes"},{"id":"tmux.Plan.SelectPane","name":"SelectPane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SelectPane(target Ref, request PaneSelectRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"PaneSelectRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SelectPane records a selection or marking of the pane target names."},"source":{"file":"tmux/plan_pane.go","line":108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SelectPane","product":"core","slug":"tmux-plan-selectpane"},{"id":"tmux.Plan.ResizePane","name":"ResizePane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) ResizePane(target Ref, request ResizePaneRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"ResizePaneRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"ResizePane records a resize of the pane target names."},"source":{"file":"tmux/plan_pane.go","line":119,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.ResizePane","product":"core","slug":"tmux-plan-resizepane"},{"id":"tmux.Plan.SetPaneTitle","name":"SetPaneTitle","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SetPaneTitle(target Ref, title string)","params":[{"name":"target","type":"Ref"},{"name":"title","type":"string"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SetPaneTitle records a title for the pane target names."},"source":{"file":"tmux/plan_pane.go","line":130,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SetPaneTitle","product":"core","slug":"tmux-plan-setpanetitle"},{"id":"tmux.Plan.ClearHistory","name":"ClearHistory","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) ClearHistory(target Ref, request ClearHistoryRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"ClearHistoryRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"ClearHistory records the clearing of the scrollback of the pane target names."},"source":{"file":"tmux/plan_pane.go","line":141,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.ClearHistory","product":"core","slug":"tmux-plan-clearhistory"},{"id":"tmux.Plan.SendPrefix","name":"SendPrefix","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SendPrefix(target Ref, key PrefixKey)","params":[{"name":"target","type":"Ref"},{"name":"key","type":"PrefixKey"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SendPrefix records tmux's prefix key sent to the pane target names."},"source":{"file":"tmux/plan_pane.go","line":154,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SendPrefix","product":"core","slug":"tmux-plan-sendprefix"},{"id":"tmux.Plan.PipePane","name":"PipePane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) PipePane(target Ref, request PipePaneRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"PipePaneRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"PipePane records the pane target names having its output piped to a shell command."},"source":{"file":"tmux/plan_pane.go","line":166,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.PipePane","product":"core","slug":"tmux-plan-pipepane"},{"id":"tmux.Plan.RespawnPane","name":"RespawnPane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) RespawnPane(target Ref, request RespawnRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"RespawnRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"RespawnPane records the pane target names being restarted with a new command."},"source":{"file":"tmux/plan_pane.go","line":177,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.RespawnPane","product":"core","slug":"tmux-plan-respawnpane"},{"id":"tmux.Plan.SwapPane","name":"SwapPane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SwapPane(target, source Ref, detach, keepZoom bool)","params":[{"name":"target","type":"Ref"},{"name":"source","type":"Ref"},{"name":"detach","type":"bool"},{"name":"keepZoom","type":"bool"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SwapPane records the panes target and source name exchanging places.","body":"Both panes are Refs so either may be created by an earlier step. Detach leaves\nactive selection alone; KeepZoom preserves a zoomed window."},"source":{"file":"tmux/plan_pane.go","line":191,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SwapPane","product":"core","slug":"tmux-plan-swappane"},{"id":"tmux.Plan.JoinPane","name":"JoinPane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) JoinPane(target, source Ref, horizontal, detach bool)","params":[{"name":"target","type":"Ref"},{"name":"source","type":"Ref"},{"name":"horizontal","type":"bool"},{"name":"detach","type":"bool"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"JoinPane records the pane source names being moved beside the pane target names, splitting that pane's space.","body":"Horizontal splits left and right; Detach leaves active selection alone."},"source":{"file":"tmux/plan_pane.go","line":216,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.JoinPane","product":"core","slug":"tmux-plan-joinpane"},{"id":"tmux.Plan.MovePane","name":"MovePane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) MovePane(target, source Ref, horizontal, detach bool)","params":[{"name":"target","type":"Ref"},{"name":"source","type":"Ref"},{"name":"horizontal","type":"bool"},{"name":"detach","type":"bool"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"MovePane records the pane source names being moved beside the pane target names without joining it to that pane's layout."},"source":{"file":"tmux/plan_pane.go","line":229,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.MovePane","product":"core","slug":"tmux-plan-movepane"},{"id":"tmux.Plan.StartServer","name":"StartServer","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) StartServer()","params":[],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"StartServer records the tmux server being started if it is not running."},"source":{"file":"tmux/plan_server.go","line":8,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.StartServer","product":"core","slug":"tmux-plan-startserver"},{"id":"tmux.Plan.SetOption","name":"SetOption","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SetOption(target Ref, request SetPlanOptionRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"SetPlanOptionRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SetOption records a tmux option written on the object target names, or on the server when target is the zero [Ref] and Global is set.","body":"It takes the option's tmux name because typed accessors read values back."},"source":{"file":"tmux/plan_server.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SetOption","product":"core","slug":"tmux-plan-setoption"},{"id":"tmux.SetPlanOptionRequest","name":"SetPlanOptionRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SetPlanOptionRequest names one tmux option write for [Plan.SetOption]. Its zero value is invalid, because Name is required."},"source":{"file":"tmux/plan_server.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetPlanOptionRequest","product":"core","slug":"tmux-setplanoptionrequest"},{"id":"tmux.SetPlanOptionRequest.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.SetPlanOptionRequest","signatures":[],"type":"string","doc":{"summary":"Name is the tmux option name, such as \"status\" or a user option \"@thing\"."},"source":{"file":"tmux/plan_server.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetPlanOptionRequest.Name","product":"core","slug":"tmux-setplanoptionrequest-name"},{"id":"tmux.SetPlanOptionRequest.Value","name":"Value","kind":"attribute","modifiers":[],"parent":"tmux.SetPlanOptionRequest","signatures":[],"type":"string","doc":{"summary":"Value is the value to write. It is omitted when Unset is set."},"source":{"file":"tmux/plan_server.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetPlanOptionRequest.Value","product":"core","slug":"tmux-setplanoptionrequest-value"},{"id":"tmux.SetPlanOptionRequest.Global","name":"Global","kind":"attribute","modifiers":[],"parent":"tmux.SetPlanOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Global writes the server or global scope rather than the target's own."},"source":{"file":"tmux/plan_server.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetPlanOptionRequest.Global","product":"core","slug":"tmux-setplanoptionrequest-global"},{"id":"tmux.SetPlanOptionRequest.Window","name":"Window","kind":"attribute","modifiers":[],"parent":"tmux.SetPlanOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Window writes a window option rather than a session or server one."},"source":{"file":"tmux/plan_server.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetPlanOptionRequest.Window","product":"core","slug":"tmux-setplanoptionrequest-window"},{"id":"tmux.SetPlanOptionRequest.Pane","name":"Pane","kind":"attribute","modifiers":[],"parent":"tmux.SetPlanOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Pane writes a pane option."},"source":{"file":"tmux/plan_server.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetPlanOptionRequest.Pane","product":"core","slug":"tmux-setplanoptionrequest-pane"},{"id":"tmux.SetPlanOptionRequest.Unset","name":"Unset","kind":"attribute","modifiers":[],"parent":"tmux.SetPlanOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Unset removes the option instead of writing it."},"source":{"file":"tmux/plan_server.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetPlanOptionRequest.Unset","product":"core","slug":"tmux-setplanoptionrequest-unset"},{"id":"tmux.SetPlanOptionRequest.Append","name":"Append","kind":"attribute","modifiers":[],"parent":"tmux.SetPlanOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Append adds to an existing value rather than replacing it."},"source":{"file":"tmux/plan_server.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetPlanOptionRequest.Append","product":"core","slug":"tmux-setplanoptionrequest-append"},{"id":"tmux.Plan.SetHook","name":"SetHook","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SetHook(target Ref, name, command string, global bool)","params":[{"name":"target","type":"Ref"},{"name":"name","type":"string"},{"name":"command","type":"string"},{"name":"global","type":"bool"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SetHook records a tmux hook written on the object target names."},"source":{"file":"tmux/plan_server.go","line":96,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SetHook","product":"core","slug":"tmux-plan-sethook"},{"id":"tmux.Plan.SetBuffer","name":"SetBuffer","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SetBuffer(name, data string)","params":[{"name":"name","type":"string"},{"name":"data","type":"string"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SetBuffer records text stored in a tmux buffer."},"source":{"file":"tmux/plan_server.go","line":119,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SetBuffer","product":"core","slug":"tmux-plan-setbuffer"},{"id":"tmux.Plan.DeleteBuffer","name":"DeleteBuffer","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) DeleteBuffer(name string)","params":[{"name":"name","type":"string"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"DeleteBuffer records a tmux buffer being removed. An empty name removes the most recently added buffer."},"source":{"file":"tmux/plan_server.go","line":134,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.DeleteBuffer","product":"core","slug":"tmux-plan-deletebuffer"},{"id":"tmux.Plan.DetachClient","name":"DetachClient","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) DetachClient(client ClientName)","params":[{"name":"client","type":"ClientName"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"DetachClient records one client being detached. A client is named directly because plans do not create clients."},"source":{"file":"tmux/plan_server.go","line":149,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.DetachClient","product":"core","slug":"tmux-plan-detachclient"},{"id":"tmux.Plan.SuspendClient","name":"SuspendClient","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SuspendClient(client ClientName)","params":[{"name":"client","type":"ClientName"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SuspendClient records one client being suspended."},"source":{"file":"tmux/plan_server.go","line":160,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SuspendClient","product":"core","slug":"tmux-plan-suspendclient"},{"id":"tmux.Plan.RefreshClient","name":"RefreshClient","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) RefreshClient(client ClientName)","params":[{"name":"client","type":"ClientName"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"RefreshClient records one client being asked to redraw."},"source":{"file":"tmux/plan_server.go","line":171,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.RefreshClient","product":"core","slug":"tmux-plan-refreshclient"},{"id":"tmux.Plan.SwitchClient","name":"SwitchClient","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SwitchClient(target Ref, client ClientName)","params":[{"name":"target","type":"Ref"},{"name":"client","type":"ClientName"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SwitchClient records one client being moved to the session target names. target may refer to a session an earlier step creates."},"source":{"file":"tmux/plan_server.go","line":183,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SwitchClient","product":"core","slug":"tmux-plan-switchclient"},{"id":"tmux.Plan.LockServer","name":"LockServer","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) LockServer()","params":[],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"LockServer records every client attached to the server being locked."},"source":{"file":"tmux/plan_server.go","line":194,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.LockServer","product":"core","slug":"tmux-plan-lockserver"},{"id":"tmux.Plan.NewSession","name":"NewSession","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) NewSession(request NewSessionRequest) Ref","params":[{"name":"request","type":"NewSessionRequest"}],"receiver":{"name":"p","type":"*Plan"},"returns":"Ref"}],"doc":{"summary":"NewSession records a detached session and returns a [Ref] to it.","body":"KillExisting is rejected: [Server.NewSession] probes for the named session\nand removes it before creating, and a plan records without reading. Record\n[Plan.KillSession] before this instead, which says the same thing in the\norder it happens."},"source":{"file":"tmux/plan_session.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.NewSession","product":"core","slug":"tmux-plan-newsession"},{"id":"tmux.Plan.KillSession","name":"KillSession","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) KillSession(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"KillSession records the destruction of the session target names."},"source":{"file":"tmux/plan_session.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.KillSession","product":"core","slug":"tmux-plan-killsession"},{"id":"tmux.Plan.RenameSession","name":"RenameSession","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) RenameSession(target Ref, name string)","params":[{"name":"target","type":"Ref"},{"name":"name","type":"string"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"RenameSession records a new name for the session target names."},"source":{"file":"tmux/plan_session.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.RenameSession","product":"core","slug":"tmux-plan-renamesession"},{"id":"tmux.Plan.NextWindow","name":"NextWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) NextWindow(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"NextWindow records the session target names moving to its next window."},"source":{"file":"tmux/plan_session.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.NextWindow","product":"core","slug":"tmux-plan-nextwindow"},{"id":"tmux.Plan.PreviousWindow","name":"PreviousWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) PreviousWindow(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"PreviousWindow records the session target names moving to its previous window."},"source":{"file":"tmux/plan_session.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.PreviousWindow","product":"core","slug":"tmux-plan-previouswindow"},{"id":"tmux.Plan.LastWindow","name":"LastWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) LastWindow(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"LastWindow records the session target names returning to its previously current window."},"source":{"file":"tmux/plan_session.go","line":81,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.LastWindow","product":"core","slug":"tmux-plan-lastwindow"},{"id":"tmux.Plan.LockSession","name":"LockSession","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) LockSession(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"LockSession records every client attached to the session target names being locked."},"source":{"file":"tmux/plan_session.go","line":93,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.LockSession","product":"core","slug":"tmux-plan-locksession"},{"id":"tmux.Plan.DetachClients","name":"DetachClients","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) DetachClients(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"DetachClients records every client attached to the session target names being detached."},"source":{"file":"tmux/plan_session.go","line":105,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.DetachClients","product":"core","slug":"tmux-plan-detachclients"},{"id":"tmux.Plan.SetEnvironment","name":"SetEnvironment","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SetEnvironment(target Ref, name, value string)","params":[{"name":"target","type":"Ref"},{"name":"name","type":"string"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SetEnvironment records a variable set in the session target names, or in the server when target is the zero [Ref]."},"source":{"file":"tmux/plan_session.go","line":120,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SetEnvironment","product":"core","slug":"tmux-plan-setenvironment"},{"id":"tmux.Plan.UnsetEnvironment","name":"UnsetEnvironment","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) UnsetEnvironment(target Ref, name string)","params":[{"name":"target","type":"Ref"},{"name":"name","type":"string"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"UnsetEnvironment records a variable removed from the session target names, or from the server when target is the zero [Ref]."},"source":{"file":"tmux/plan_session.go","line":138,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.UnsetEnvironment","product":"core","slug":"tmux-plan-unsetenvironment"},{"id":"tmux.Plan.SourceFile","name":"SourceFile","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SourceFile(request SourceFileRequest)","params":[{"name":"request","type":"SourceFileRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SourceFile records a tmux configuration file being loaded."},"source":{"file":"tmux/plan_session.go","line":152,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SourceFile","product":"core","slug":"tmux-plan-sourcefile"},{"id":"tmux.Plan.KillServer","name":"KillServer","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) KillServer()","params":[],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"KillServer records the tmux server being shut down. Nothing recorded after it can run because the server will be gone."},"source":{"file":"tmux/plan_session.go","line":164,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.KillServer","product":"core","slug":"tmux-plan-killserver"},{"id":"tmux.Plan.NewWindow","name":"NewWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) NewWindow(target Ref, request NewWindowRequest) Ref","params":[{"name":"target","type":"Ref"},{"name":"request","type":"NewWindowRequest"}],"receiver":{"name":"p","type":"*Plan"},"returns":"Ref"}],"doc":{"summary":"NewWindow records a window created in the session or beside the window that target names, and returns a [Ref] to it.","body":"SelectExisting is rejected: it asks tmux for an existing window's\nexpanded name before creating anything, and a plan records without reading."},"source":{"file":"tmux/plan_window.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.NewWindow","product":"core","slug":"tmux-plan-newwindow"},{"id":"tmux.Plan.KillWindow","name":"KillWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) KillWindow(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"KillWindow records the destruction of the window target names."},"source":{"file":"tmux/plan_window.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.KillWindow","product":"core","slug":"tmux-plan-killwindow"},{"id":"tmux.Plan.KillOtherWindows","name":"KillOtherWindows","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) KillOtherWindows(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"KillOtherWindows records the destruction of every window in the session holding the window target names, except that window."},"source":{"file":"tmux/plan_window.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.KillOtherWindows","product":"core","slug":"tmux-plan-killotherwindows"},{"id":"tmux.Plan.RenameWindow","name":"RenameWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) RenameWindow(target Ref, name string)","params":[{"name":"target","type":"Ref"},{"name":"name","type":"string"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"RenameWindow records a new name for the window target names."},"source":{"file":"tmux/plan_window.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.RenameWindow","product":"core","slug":"tmux-plan-renamewindow"},{"id":"tmux.Plan.SelectWindow","name":"SelectWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SelectWindow(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SelectWindow records the window target names becoming its session's current window."},"source":{"file":"tmux/plan_window.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SelectWindow","product":"core","slug":"tmux-plan-selectwindow"},{"id":"tmux.Plan.SelectLayout","name":"SelectLayout","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SelectLayout(target Ref, request SelectLayoutRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"SelectLayoutRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SelectLayout records a layout applied to the window target names. Run checks every recorded layout before dispatching any operation. Recording and Preview perform no I/O; Preview uses its supplied version for name support."},"source":{"file":"tmux/plan_window.go","line":84,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SelectLayout","product":"core","slug":"tmux-plan-selectlayout"},{"id":"tmux.Plan.NextLayout","name":"NextLayout","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) NextLayout(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"NextLayout records the next preset layout applied to the window target names."},"source":{"file":"tmux/plan_window.go","line":96,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.NextLayout","product":"core","slug":"tmux-plan-nextlayout"},{"id":"tmux.Plan.PreviousLayout","name":"PreviousLayout","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) PreviousLayout(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"PreviousLayout records the previous preset layout applied to the window target names."},"source":{"file":"tmux/plan_window.go","line":108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.PreviousLayout","product":"core","slug":"tmux-plan-previouslayout"},{"id":"tmux.Plan.ResizeWindow","name":"ResizeWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) ResizeWindow(target Ref, request ResizeWindowRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"ResizeWindowRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"ResizeWindow records a resize of the window target names."},"source":{"file":"tmux/plan_window.go","line":119,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.ResizeWindow","product":"core","slug":"tmux-plan-resizewindow"},{"id":"tmux.Plan.RotateWindow","name":"RotateWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) RotateWindow(target Ref, request RotateWindowRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"RotateWindowRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"RotateWindow records the panes of the window target names being rotated through their positions."},"source":{"file":"tmux/plan_window.go","line":131,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.RotateWindow","product":"core","slug":"tmux-plan-rotatewindow"},{"id":"tmux.Plan.RespawnWindow","name":"RespawnWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) RespawnWindow(target Ref, request RespawnRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"RespawnRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"RespawnWindow records the window target names being restarted with a new command."},"source":{"file":"tmux/plan_window.go","line":143,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.RespawnWindow","product":"core","slug":"tmux-plan-respawnwindow"},{"id":"tmux.Plan.LastPane","name":"LastPane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) LastPane(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"LastPane records the window target names returning to its previously active pane."},"source":{"file":"tmux/plan_window.go","line":155,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.LastPane","product":"core","slug":"tmux-plan-lastpane"},{"id":"tmux.Plan.LinkWindow","name":"LinkWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) LinkWindow(target, source Ref, request LinkWindowRequest)","params":[{"name":"target","type":"Ref"},{"name":"source","type":"Ref"},{"name":"request","type":"LinkWindowRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"LinkWindow records the window source names being linked into the session target names.","body":"target supplies the destination session so it may refer to a session an\nearlier step creates. TargetIndex still selects the position within it."},"source":{"file":"tmux/plan_window.go","line":170,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.LinkWindow","product":"core","slug":"tmux-plan-linkwindow"},{"id":"tmux.Plan.UnlinkWindow","name":"UnlinkWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) UnlinkWindow(target Ref, request UnlinkWindowRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"UnlinkWindowRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"UnlinkWindow records the window target names being removed from the session it is linked into."},"source":{"file":"tmux/plan_window.go","line":183,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.UnlinkWindow","product":"core","slug":"tmux-plan-unlinkwindow"},{"id":"tmux.Plan.MoveWindow","name":"MoveWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) MoveWindow(target, source Ref, request MoveWindowRequest)","params":[{"name":"target","type":"Ref"},{"name":"source","type":"Ref"},{"name":"request","type":"MoveWindowRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"MoveWindow records the window source names being moved into the session target names.","body":"target supplies the destination session. TargetIndex selects its position."},"source":{"file":"tmux/plan_window.go","line":201,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.MoveWindow","product":"core","slug":"tmux-plan-movewindow"},{"id":"tmux.Plan.SwapWindow","name":"SwapWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SwapWindow(target, source Ref, detach bool)","params":[{"name":"target","type":"Ref"},{"name":"source","type":"Ref"},{"name":"detach","type":"bool"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SwapWindow records the windows target and source name exchanging places. Detach leaves each session's current window unchanged."},"source":{"file":"tmux/plan_window.go","line":214,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SwapWindow","product":"core","slug":"tmux-plan-swapwindow"},{"id":"tmux.ErrPollCondition","name":"ErrPollCondition","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrPollCondition identifies a poll whose condition was nil. It is matched by errors.Is."},"source":{"file":"tmux/poll.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrPollCondition","product":"core","slug":"tmux-errpollcondition"},{"id":"tmux.Poll","name":"Poll","kind":"function","modifiers":[],"signatures":[{"raw":"func Poll(\n\tctx context.Context,\n\tinterval time.Duration,\n\tcondition func(context.Context) (bool, error),\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"interval","type":"time.Duration"},{"name":"condition","type":"func(context.Context) (bool, error)"}],"returns":"error"}],"doc":{"summary":"Poll checks condition immediately and then after each interval, until it reports true, returns an error, or ctx ends.","body":"A condition receives ctx and must observe cancellation itself; Poll cannot\ninterrupt one already running. Poll returns condition errors unchanged and\nctx.Err when ctx ends first.\n\nPoll is for a state tmux does not announce. Waiting for a pane to print\nsomething is not one: [PaneObservation.WaitFor] is woken by tmux as the\npane writes, where a poll re-reads the screen on a guess and can match a\nshell's echo of what was typed. [Server.WaitFor] waits on tmux's separate\nwait-for channel."},"source":{"file":"tmux/poll.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Poll","product":"core","slug":"tmux-poll"},{"id":"tmux.PromptType","name":"PromptType","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PromptType selects one closed tmux prompt-history class. The zero value selects all prompt types."},"source":{"file":"tmux/prompt_history.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptType","product":"core","slug":"tmux-prompttype"},{"id":"tmux.PromptTypeAll","name":"PromptTypeAll","kind":"constant","modifiers":[],"signatures":[],"type":"PromptType","doc":{"summary":"PromptTypeAll selects every prompt-history class and omits -T."},"source":{"file":"tmux/prompt_history.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptTypeAll","product":"core","slug":"tmux-prompttypeall"},{"id":"tmux.PromptTypeCommand","name":"PromptTypeCommand","kind":"constant","modifiers":[],"signatures":[],"type":"PromptType","doc":{"summary":"PromptTypeCommand selects command-prompt history."},"source":{"file":"tmux/prompt_history.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptTypeCommand","product":"core","slug":"tmux-prompttypecommand"},{"id":"tmux.PromptTypeSearch","name":"PromptTypeSearch","kind":"constant","modifiers":[],"signatures":[],"type":"PromptType","doc":{"summary":"PromptTypeSearch selects search-prompt history."},"source":{"file":"tmux/prompt_history.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptTypeSearch","product":"core","slug":"tmux-prompttypesearch"},{"id":"tmux.PromptTypeTarget","name":"PromptTypeTarget","kind":"constant","modifiers":[],"signatures":[],"type":"PromptType","doc":{"summary":"PromptTypeTarget selects target-prompt history."},"source":{"file":"tmux/prompt_history.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptTypeTarget","product":"core","slug":"tmux-prompttypetarget"},{"id":"tmux.PromptTypeWindowTarget","name":"PromptTypeWindowTarget","kind":"constant","modifiers":[],"signatures":[],"type":"PromptType","doc":{"summary":"PromptTypeWindowTarget selects window-target-prompt history."},"source":{"file":"tmux/prompt_history.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptTypeWindowTarget","product":"core","slug":"tmux-prompttypewindowtarget"},{"id":"tmux.PromptHistoryRequest","name":"PromptHistoryRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PromptHistoryRequest selects one prompt-history class. A zero request selects every class."},"source":{"file":"tmux/prompt_history.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptHistoryRequest","product":"core","slug":"tmux-prompthistoryrequest"},{"id":"tmux.PromptHistoryRequest.Type","name":"Type","kind":"attribute","modifiers":[],"parent":"tmux.PromptHistoryRequest","signatures":[],"type":"PromptType","doc":{"summary":"Type selects a prompt-history class; zero selects all classes."},"source":{"file":"tmux/prompt_history.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptHistoryRequest.Type","product":"core","slug":"tmux-prompthistoryrequest-type"},{"id":"tmux.Server.ShowPromptHistory","name":"ShowPromptHistory","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ShowPromptHistory(\n\tctx context.Context,\n\trequest PromptHistoryRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"PromptHistoryRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"([]string, error)"}],"doc":{"summary":"ShowPromptHistory returns an owned snapshot of tmux prompt-history lines. It requires tmux 3.3 or later and returns [VersionTooLowError] below that floor. A tmux command or transport failure is returned rather than answered with no history."},"source":{"file":"tmux/prompt_history.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ShowPromptHistory","product":"core","slug":"tmux-server-showprompthistory"},{"id":"tmux.Server.ClearPromptHistory","name":"ClearPromptHistory","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ClearPromptHistory(\n\tctx context.Context,\n\trequest PromptHistoryRequest,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"PromptHistoryRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"ClearPromptHistory clears all tmux prompt history or one selected class. Version, transport, and completed-stderr failures are returned. It requires tmux 3.3 or later and returns [VersionTooLowError] below that floor."},"source":{"file":"tmux/prompt_history.go","line":65,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ClearPromptHistory","product":"core","slug":"tmux-server-clearprompthistory"},{"id":"tmux.Session.ActiveWindow","name":"ActiveWindow","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) ActiveWindow() (Window, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(Window, bool)"}],"doc":{"summary":"ActiveWindow returns this session's sole active winlink from the materialized snapshot. It never queries tmux; use [Session.ResolveActiveWindow] for live state."},"source":{"file":"tmux/relations.go","line":11,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.ActiveWindow","product":"core","slug":"tmux-session-activewindow"},{"id":"tmux.Session.ActivePane","name":"ActivePane","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) ActivePane() (Pane, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(Pane, bool)"}],"doc":{"summary":"ActivePane returns the active pane in this session's materialized active window. It never queries tmux; use [Session.ResolveActivePane] for live state."},"source":{"file":"tmux/relations.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.ActivePane","product":"core","slug":"tmux-session-activepane"},{"id":"tmux.Window.ActivePane","name":"ActivePane","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ActivePane() (Pane, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(Pane, bool)"}],"doc":{"summary":"ActivePane returns the first active pane in this materialized winlink view. It never queries tmux; use [Window.ResolveActivePane] for live state."},"source":{"file":"tmux/relations.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ActivePane","product":"core","slug":"tmux-window-activepane"},{"id":"tmux.Window.LinkedSessions","name":"LinkedSessions","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) LinkedSessions() ([]Session, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"([]Session, bool)"}],"doc":{"summary":"LinkedSessions returns newly allocated shallow copies of materialized sessions containing this window, and reports whether the receiver carries relations at all. It never queries tmux."},"source":{"file":"tmux/relations.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.LinkedSessions","product":"core","slug":"tmux-window-linkedsessions"},{"id":"tmux.Session.ResolveActiveWindow","name":"ResolveActiveWindow","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) ResolveActiveWindow(ctx context.Context) (Window, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"(Window, error)"}],"doc":{"summary":"ResolveActiveWindow snapshots live tmux state and returns this session's sole exact active winlink. It returns [SnapshotLookupError] cardinality errors."},"source":{"file":"tmux/relations.go","line":83,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.ResolveActiveWindow","product":"core","slug":"tmux-session-resolveactivewindow"},{"id":"tmux.Session.ResolveActivePane","name":"ResolveActivePane","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) ResolveActivePane(ctx context.Context) (Pane, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"(Pane, error)"}],"doc":{"summary":"ResolveActivePane returns the active pane in this session's active window, read live. It lists that session's panes rather than taking a whole-server snapshot, because a pane row already carries which window is active. It returns [SnapshotLookupError] cardinality errors, which match [ErrNotFound] when nothing was found."},"source":{"file":"tmux/relations.go","line":96,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.ResolveActivePane","product":"core","slug":"tmux-session-resolveactivepane"},{"id":"tmux.Window.ResolveSession","name":"ResolveSession","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ResolveSession(ctx context.Context) (Session, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"(Session, error)"}],"doc":{"summary":"ResolveSession snapshots live tmux state and returns this exact winlink's parent session. It returns [SnapshotLookupError] cardinality errors."},"source":{"file":"tmux/relations.go","line":139,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ResolveSession","product":"core","slug":"tmux-window-resolvesession"},{"id":"tmux.Window.ResolveActivePane","name":"ResolveActivePane","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ResolveActivePane(ctx context.Context) (Pane, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"(Pane, error)"}],"doc":{"summary":"ResolveActivePane returns the active pane in this exact winlink view, read live. It lists that window's panes rather than taking a whole-server snapshot. It returns [SnapshotLookupError] cardinality errors, which match [ErrNotFound] when nothing was found."},"source":{"file":"tmux/relations.go","line":156,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ResolveActivePane","product":"core","slug":"tmux-window-resolveactivepane"},{"id":"tmux.Pane.ResolveWindow","name":"ResolveWindow","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ResolveWindow(ctx context.Context) (Window, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Window, error)"}],"doc":{"summary":"ResolveWindow snapshots live tmux state and returns the exact winlink containing this pane view. It returns [SnapshotLookupError] cardinality errors."},"source":{"file":"tmux/relations.go","line":175,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ResolveWindow","product":"core","slug":"tmux-pane-resolvewindow"},{"id":"tmux.Pane.ResolveSession","name":"ResolveSession","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ResolveSession(ctx context.Context) (Session, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Session, error)"}],"doc":{"summary":"ResolveSession snapshots live tmux state and returns the parent session of this pane's exact winlink. It returns [SnapshotLookupError] cardinality errors."},"source":{"file":"tmux/relations.go","line":185,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ResolveSession","product":"core","slug":"tmux-pane-resolvesession"},{"id":"tmux.ErrMissingSubcommand","name":"ErrMissingSubcommand","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrMissingSubcommand identifies an object command with no tmux subcommand."},"source":{"file":"tmux/scoped_command.go","line":9,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrMissingSubcommand","product":"core","slug":"tmux-errmissingsubcommand"},{"id":"tmux.Session.Cmd","name":"Cmd","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Cmd(ctx context.Context, args ...string) (CommandResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"args","type":"string","variadic":"positional"}],"receiver":{"name":"s","type":"Session"},"returns":"(CommandResult, error)"}],"doc":{"summary":"Cmd executes a tmux subcommand targeted to the session's stable ID."},"source":{"file":"tmux/scoped_command.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Cmd","product":"core","slug":"tmux-session-cmd"},{"id":"tmux.Window.Cmd","name":"Cmd","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Cmd(ctx context.Context, args ...string) (CommandResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"args","type":"string","variadic":"positional"}],"receiver":{"name":"w","type":"Window"},"returns":"(CommandResult, error)"}],"doc":{"summary":"Cmd executes a tmux subcommand targeted to the window's stable ID."},"source":{"file":"tmux/scoped_command.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Cmd","product":"core","slug":"tmux-window-cmd"},{"id":"tmux.Pane.Cmd","name":"Cmd","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Cmd(ctx context.Context, args ...string) (CommandResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"args","type":"string","variadic":"positional"}],"receiver":{"name":"p","type":"Pane"},"returns":"(CommandResult, error)"}],"doc":{"summary":"Cmd executes a tmux subcommand targeted to the pane's stable ID."},"source":{"file":"tmux/scoped_command.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Cmd","product":"core","slug":"tmux-pane-cmd"},{"id":"tmux.Server.SearchSessions","name":"SearchSessions","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SearchSessions(\n\tctx context.Context,\n\tfilter *TmuxFilter,\n) ([]Session, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"filter","type":"*TmuxFilter"}],"receiver":{"name":"s","type":"Server"},"returns":"([]Session, error)"}],"doc":{"summary":"SearchSessions returns a newly materialized snapshot projection of sessions selected by tmux's live -f expression. A nil filter omits -f; a nonnil empty filter remains an explicit empty expression.","examples":[{"lang":"console","intro":"Filter live sessions by name using tmux's format expression syntax. A nil filter lists all sessions. No matches returns an empty slice; the returned session records do not capture window relations. Use Go 1.26.0 or newer and tmux 3.2a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-go.git libtmux-source && \\\n git -C libtmux-source checkout 6f3df55f8a41999e41225eefb3940545b834e6a2\n"},{"lang":"go","intro":"Save this dependency file as go.mod:","code":"module example.com/libtmux-api\n\ngo 1.26.0\n\nrequire github.com/libtmux/libtmux-go v0.0.0\n\nreplace github.com/libtmux/libtmux-go => ./libtmux-source\n"},{"lang":"go","intro":"Save this complete example as example_test.go. It creates a private temporary socket and stops its server before removing the directory. Cleanup failure fails the example and retains the socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-go/blob/6f3df55f8a41999e41225eefb3940545b834e6a2/tmux/api_server_search_sessions_example_test.go","code":"package tmux_test\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"slices\"\n\t\"time\"\n\n\t\"github.com/libtmux/libtmux-go/tmux\"\n)\n\n// Filter live sessions by name using tmux's format expression syntax.\n// A nil filter lists all sessions. No matches returns an empty slice;\n// the returned session records do not capture window relations.\nfunc ExampleServer_SearchSessions_complete() {\n\trun := func() (runErr error) {\n\t\tdirectory, err := os.MkdirTemp(\"\", \"libtmux-go-api-\")\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create socket directory: %w\", err)\n\t\t}\n\t\tserver, err := tmux.NewServer(tmux.ServerOptions{\n\t\t\tSocketPath: filepath.Join(directory, \"tmux.sock\"),\n\t\t\tConfigFile: \"/dev/null\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errors.Join(err, os.RemoveAll(directory))\n\t\t}\n\t\tdefer func() {\n\t\t\t// Cleanup has its own deadline because the operation may have timed out.\n\t\t\tcleanup, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\t\t\tdefer cancel()\n\t\t\tif err := server.Kill(cleanup); err != nil && !errors.Is(err, tmux.ErrNoServer) {\n\t\t\t\trunErr = errors.Join(runErr, fmt.Errorf(\"stop server at %s: %w\", directory, err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\trunErr = errors.Join(runErr, os.RemoveAll(directory))\n\t\t}()\n\t\tctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)\n\t\tdefer cancel()\n\t\tfor _, name := range []string{\"work-one\", \"work-two\", \"scratch\"} {\n\t\t\tif _, err = server.NewSession(ctx, tmux.NewSessionRequest{\n\t\t\t\tName: name, Command: \"cat\", Width: 100, Height: 30,\n\t\t\t}); err != nil {\n\t\t\t\treturn fmt.Errorf(\"create %s session: %w\", name, err)\n\t\t\t}\n\t\t}\n\t\tfilter := tmux.TmuxFilter(\"#{m:work-*,#{session_name}}\")\n\t\tmatched, err := server.SearchSessions(ctx, &filter)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"filter sessions: %w\", err)\n\t\t}\n\t\tnames := make([]string, 0, len(matched))\n\t\tfor _, session := range matched {\n\t\t\tname, ok := session.Name()\n\t\t\tif !ok {\n\t\t\t\treturn errors.New(\"matched session has no name\")\n\t\t\t}\n\t\t\tif _, loaded := session.Windows(); loaded {\n\t\t\t\treturn errors.New(\"live session search unexpectedly loaded windows\")\n\t\t\t}\n\t\t\tnames = append(names, name)\n\t\t}\n\t\tslices.Sort(names)\n\t\tfmt.Println(\"matched:\", names)\n\t\tall, err := server.SearchSessions(ctx, nil)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"list unfiltered sessions: %w\", err)\n\t\t}\n\t\tfmt.Println(\"unfiltered:\", len(all))\n\t\tmissing := tmux.TmuxFilter(\"#{==:#{session_name},missing}\")\n\t\tnone, err := server.SearchSessions(ctx, &missing)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"search missing session: %w\", err)\n\t\t}\n\t\tfmt.Println(\"missing:\", len(none))\n\t\treturn nil\n\t}\n\tif err := run(); err != nil {\n\t\tpanic(err)\n\t}\n\t// Output:\n\t// matched: [work-one work-two]\n\t// unfiltered: 3\n\t// missing: 0\n}\n"},{"lang":"console","intro":"Run the saved file. Go checks the Output comment and fails on different output or an operation or cleanup error:","code":"$ GOWORK=off go test -count=1 -v example_test.go\n"}]},"source":{"file":"tmux/search.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SearchSessions","product":"core","slug":"tmux-server-searchsessions"},{"id":"tmux.Server.SearchClients","name":"SearchClients","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SearchClients(\n\tctx context.Context,\n\tfilter *TmuxFilter,\n) ([]Client, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"filter","type":"*TmuxFilter"}],"receiver":{"name":"s","type":"Server"},"returns":"([]Client, error)"}],"doc":{"summary":"SearchClients returns a newly materialized snapshot projection of clients selected by tmux's live -f expression. A nil filter omits -f and requests the unfiltered listing on every supported tmux version. A nonnil filter, including an empty expression, requires tmux 3.4 or newer and otherwise returns [VersionTooLowError]."},"source":{"file":"tmux/search.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SearchClients","product":"core","slug":"tmux-server-searchclients"},{"id":"tmux.Server.SearchWindows","name":"SearchWindows","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SearchWindows(\n\tctx context.Context,\n\tfilter *TmuxFilter,\n) ([]Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"filter","type":"*TmuxFilter"}],"receiver":{"name":"s","type":"Server"},"returns":"([]Window, error)"}],"doc":{"summary":"SearchWindows returns a newly materialized snapshot projection of winlinks selected by tmux's live -f expression. A nil filter omits -f and a nonnil empty filter sends an explicit expression."},"source":{"file":"tmux/search.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SearchWindows","product":"core","slug":"tmux-server-searchwindows"},{"id":"tmux.Server.SearchPanes","name":"SearchPanes","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SearchPanes(\n\tctx context.Context,\n\tfilter *TmuxFilter,\n) ([]Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"filter","type":"*TmuxFilter"}],"receiver":{"name":"s","type":"Server"},"returns":"([]Pane, error)"}],"doc":{"summary":"SearchPanes returns a newly materialized snapshot projection of pane views selected by tmux's live -f expression. A nil filter omits -f and a nonnil empty filter sends an explicit expression."},"source":{"file":"tmux/search.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SearchPanes","product":"core","slug":"tmux-server-searchpanes"},{"id":"tmux.Session.SearchWindows","name":"SearchWindows","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SearchWindows(\n\tctx context.Context,\n\tfilter *TmuxFilter,\n) ([]Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"filter","type":"*TmuxFilter"}],"receiver":{"name":"s","type":"Session"},"returns":"([]Window, error)"}],"doc":{"summary":"SearchWindows returns this session's winlinks selected by tmux's live -f expression. A nil filter omits -f and a nonnil empty filter sends an explicit expression. The session's stable identity limits the projection."},"source":{"file":"tmux/search.go","line":90,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SearchWindows","product":"core","slug":"tmux-session-searchwindows"},{"id":"tmux.Session.SearchPanes","name":"SearchPanes","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SearchPanes(\n\tctx context.Context,\n\tfilter *TmuxFilter,\n) ([]Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"filter","type":"*TmuxFilter"}],"receiver":{"name":"s","type":"Session"},"returns":"([]Pane, error)"}],"doc":{"summary":"SearchPanes returns this session's pane views selected by tmux's live -f expression. A nil filter omits -f and a nonnil empty filter sends an explicit expression. The session's stable identity limits the projection."},"source":{"file":"tmux/search.go","line":117,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SearchPanes","product":"core","slug":"tmux-session-searchpanes"},{"id":"tmux.Window.SearchPanes","name":"SearchPanes","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SearchPanes(\n\tctx context.Context,\n\tfilter *TmuxFilter,\n) ([]Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"filter","type":"*TmuxFilter"}],"receiver":{"name":"w","type":"Window"},"returns":"([]Pane, error)"}],"doc":{"summary":"SearchPanes returns this window's pane views selected by tmux's live -f expression. A nil filter omits -f and a nonnil empty filter sends an explicit expression. Stable session and window identities limit the projection."},"source":{"file":"tmux/search.go","line":144,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SearchPanes","product":"core","slug":"tmux-window-searchpanes"},{"id":"tmux.Server","name":"Server","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Server is an immutable handle to one tmux configuration. Its zero value is invalid. Copying a configured Server preserves its configuration and shares version-cache coordination; only the documented concurrent operations are safe to share."},"source":{"file":"tmux/server.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server","product":"core","slug":"tmux-server"},{"id":"tmux.Server.SocketPath","name":"SocketPath","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SocketPath() string","params":[],"receiver":{"name":"s","type":"Server"},"returns":"string"}],"doc":{"summary":"SocketPath returns the absolute socket path selected when the server was constructed. An invalid server returns an empty string."},"source":{"file":"tmux/server.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SocketPath","product":"core","slug":"tmux-server-socketpath"},{"id":"tmux.Server.ConfigFile","name":"ConfigFile","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ConfigFile() string","params":[],"receiver":{"name":"s","type":"Server"},"returns":"string"}],"doc":{"summary":"ConfigFile returns the configured tmux configuration path."},"source":{"file":"tmux/server.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ConfigFile","product":"core","slug":"tmux-server-configfile"},{"id":"tmux.Server.ProcessEnvironment","name":"ProcessEnvironment","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ProcessEnvironment() []string","params":[],"receiver":{"name":"s","type":"Server"},"returns":"[]string"}],"doc":{"summary":"ProcessEnvironment returns the normalized environment explicitly supplied through [ServerOptions]. Nil means the server inherited a private process snapshot. The returned slice is owned by the caller; an invalid server returns nil."},"source":{"file":"tmux/server.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ProcessEnvironment","product":"core","slug":"tmux-server-processenvironment"},{"id":"tmux.Server.Executable","name":"Executable","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Executable() string","params":[],"receiver":{"name":"s","type":"Server"},"returns":"string"}],"doc":{"summary":"Executable returns the absolute tmux executable path resolved when the server was constructed. An invalid server returns an empty string."},"source":{"file":"tmux/server.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Executable","product":"core","slug":"tmux-server-executable"},{"id":"tmux.Server.Cmd","name":"Cmd","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Cmd(ctx context.Context, args ...string) (CommandResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"args","type":"string","variadic":"positional"}],"receiver":{"name":"s","type":"Server"},"returns":"(CommandResult, error)"}],"doc":{"summary":"Cmd executes raw tmux arguments and returns caller-owned result slices. A completed nonzero exit remains a result; validation and transport failures return errors. Cancellation cannot prove whether a mutation reached tmux.","body":"An argument that is exactly \";\" separates two tmux commands, so one call can\nsubmit a command list. tmux runs a list until a command fails and drops the\nrest, and answers with one merged stdout, so a caller that needs to know\nwhich command produced which line submits them separately. A list means the\nsame thing through either execution binding.\n\nOnly a standalone \";\" separates commands. Other semicolons follow the selected\nbinding's parsing; typed operations keep values literal across bindings."},"source":{"file":"tmux/server.go","line":99,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Cmd","product":"core","slug":"tmux-server-cmd"},{"id":"tmux.Server.IsAlive","name":"IsAlive","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) IsAlive(ctx context.Context) (bool, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"(bool, error)"}],"doc":{"summary":"IsAlive reports whether a tmux server answers on the configured socket. Only an absent server reports false without an error: a socket that exists but cannot be reached, such as one the process may not read, is a question that could not be answered and is returned as an error. Use [Server.CheckAlive] where an absent server is itself the failure."},"source":{"file":"tmux/server.go","line":145,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.IsAlive","product":"core","slug":"tmux-server-isalive"},{"id":"tmux.Server.CheckAlive","name":"CheckAlive","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) CheckAlive(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"CheckAlive returns a [CommandError] when the configured server is not alive. Cancellation and transport failures are returned directly. Use [Server.IsAlive] where an absent server is an answer rather than a failure."},"source":{"file":"tmux/server.go","line":164,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.CheckAlive","product":"core","slug":"tmux-server-checkalive"},{"id":"tmux.AttachSessionOptions","name":"AttachSessionOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"AttachSessionOptions configures terminal ownership and attach behavior shared by server- and session-scoped attachment. Nil StartDirectory omits its flag and a nonnil empty string is explicit; ClientFlags is copied. The Stdin, Stdout, and Stderr pointers are retained for the attach call and are never owned or closed by this package."},"source":{"file":"tmux/server_attach.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions","product":"core","slug":"tmux-attachsessionoptions"},{"id":"tmux.AttachSessionOptions.DetachOthers","name":"DetachOthers","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionOptions","signatures":[],"type":"bool","doc":{"summary":"DetachOthers disconnects other clients attached to the target session."},"source":{"file":"tmux/server_attach.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions.DetachOthers","product":"core","slug":"tmux-attachsessionoptions-detachothers"},{"id":"tmux.AttachSessionOptions.DetachParent","name":"DetachParent","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionOptions","signatures":[],"type":"bool","doc":{"summary":"DetachParent detaches the invoking client from its parent session first."},"source":{"file":"tmux/server_attach.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions.DetachParent","product":"core","slug":"tmux-attachsessionoptions-detachparent"},{"id":"tmux.AttachSessionOptions.NoUpdateEnvironment","name":"NoUpdateEnvironment","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionOptions","signatures":[],"type":"bool","doc":{"summary":"NoUpdateEnvironment preserves the invoking client's environment."},"source":{"file":"tmux/server_attach.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions.NoUpdateEnvironment","product":"core","slug":"tmux-attachsessionoptions-noupdateenvironment"},{"id":"tmux.AttachSessionOptions.ReadOnly","name":"ReadOnly","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionOptions","signatures":[],"type":"bool","doc":{"summary":"ReadOnly attaches the client with read-only permissions."},"source":{"file":"tmux/server_attach.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions.ReadOnly","product":"core","slug":"tmux-attachsessionoptions-readonly"},{"id":"tmux.AttachSessionOptions.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionOptions","signatures":[],"type":"*string","doc":{"summary":"StartDirectory selects the attached client's initial directory."},"source":{"file":"tmux/server_attach.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions.StartDirectory","product":"core","slug":"tmux-attachsessionoptions-startdirectory"},{"id":"tmux.AttachSessionOptions.ClientFlags","name":"ClientFlags","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionOptions","signatures":[],"type":"[]string","doc":{"summary":"ClientFlags are comma-joined client flags copied before attachment starts."},"source":{"file":"tmux/server_attach.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions.ClientFlags","product":"core","slug":"tmux-attachsessionoptions-clientflags"},{"id":"tmux.AttachSessionOptions.Stdin","name":"Stdin","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionOptions","signatures":[],"type":"*os.File","doc":{"summary":"Stdin is the attached tmux client's input stream; nil inherits process stdin."},"source":{"file":"tmux/server_attach.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions.Stdin","product":"core","slug":"tmux-attachsessionoptions-stdin"},{"id":"tmux.AttachSessionOptions.Stdout","name":"Stdout","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionOptions","signatures":[],"type":"*os.File","doc":{"summary":"Stdout is the attached tmux client's output stream; nil inherits process stdout."},"source":{"file":"tmux/server_attach.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions.Stdout","product":"core","slug":"tmux-attachsessionoptions-stdout"},{"id":"tmux.AttachSessionOptions.Stderr","name":"Stderr","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionOptions","signatures":[],"type":"*os.File","doc":{"summary":"Stderr is the attached tmux client's error stream; nil inherits process stderr."},"source":{"file":"tmux/server_attach.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions.Stderr","product":"core","slug":"tmux-attachsessionoptions-stderr"},{"id":"tmux.AttachSessionRequest","name":"AttachSessionRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"AttachSessionRequest selects a session name or tmux target pattern and configures a blocking terminal attachment. An empty Target lets tmux choose."},"source":{"file":"tmux/server_attach.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionRequest","product":"core","slug":"tmux-attachsessionrequest"},{"id":"tmux.AttachSessionRequest.Target","name":"Target","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionRequest","signatures":[],"type":"string","doc":{"summary":"Target is a session name or tmux target pattern; empty leaves selection to tmux."},"source":{"file":"tmux/server_attach.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionRequest.Target","product":"core","slug":"tmux-attachsessionrequest-target"},{"id":"tmux.Server.Start","name":"Start","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Start(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"Start starts the configured tmux server. It is idempotent when that server is already running. Completed stderr is an error; cancellation does not prove that a daemon was not started.","body":"With tmux's exit-empty default, a server holding no sessions may exit before\nthe next command even though Start succeeded. Create a session or disable\nexit-empty in [ServerOptions.ConfigFile] before startup. Use [Server.IsAlive]\nor [Server.CheckAlive] to check it."},"source":{"file":"tmux/server_attach.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Start","product":"core","slug":"tmux-server-start"},{"id":"tmux.Server.AttachSession","name":"AttachSession","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) AttachSession(ctx context.Context, request AttachSessionRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"AttachSessionRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"AttachSession attaches the caller's terminal to a matching session and blocks until detach or context cancellation. Nil standard streams inherit the process streams; each stream must be a concrete terminal descriptor. The call retains caller-supplied files while attached and never owns or closes them. A completed nonzero exit returns [CommandError]; cancellation can end waiting but does not prove that attachment or detachment did not occur. On Unix, cancellation requests a tmux disconnect before bounded forced cleanup. If the daemon cannot respond, callers may need to restore their terminal state after the call returns.","body":"Alone among this package's operations, it leaves tmux's own locale detection\nalone, because what tmux writes here reaches the caller's terminal rather\nthan this package. See [Session.Attach] for the session-scoped form."},"source":{"file":"tmux/server_attach.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.AttachSession","product":"core","slug":"tmux-server-attachsession"},{"id":"tmux.Session.Attach","name":"Attach","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Attach(ctx context.Context, options AttachSessionOptions) error","params":[{"name":"ctx","type":"context.Context"},{"name":"options","type":"AttachSessionOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"Attach attaches the caller's terminal to this session's stable identifier and blocks until detach or context cancellation. It validates the receiver's stable SessionID, retains but never closes caller-supplied streams, and returns [CommandError] for a completed nonzero exit. Cancellation does not prove attachment or detachment did not occur. See [Server.AttachSession] for locale handling and terminal recovery after forced cancellation."},"source":{"file":"tmux/server_attach.go","line":102,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Attach","product":"core","slug":"tmux-session-attach"},{"id":"tmux.TmuxFilter","name":"TmuxFilter","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TmuxFilter is a raw tmux -f format expression. It is distinct from the generated local filter structs and is evaluated only by tmux. A nil filter omits -f; a nonnil empty filter sends an explicit empty expression.","body":"The expression is tmux's own, so it is written the way tmux's FORMATS\nsection describes rather than built from Go values:\n\n```go\nactive := tmux.TmuxFilter(\"#{==:#{window_active},1}\")\nwindows, err := session.SearchWindows(ctx, &active)\n```\n\ntmux evaluates this while listing. Generated model filters run in Go after\nmaterialization.\n\nrevive:disable-next-line:exported TmuxFilter preserves tmux vocabulary beside local model filters."},"source":{"file":"tmux/server_buffers.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TmuxFilter","product":"core","slug":"tmux-tmuxfilter"},{"id":"tmux.SetBufferRequest","name":"SetBufferRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SetBufferRequest configures storing data in a tmux paste buffer. Its zero value writes an empty most-recent buffer; nil Name selects that buffer while a pointer to an empty name is explicit."},"source":{"file":"tmux/server_buffers.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetBufferRequest","product":"core","slug":"tmux-setbufferrequest"},{"id":"tmux.SetBufferRequest.Data","name":"Data","kind":"attribute","modifiers":[],"parent":"tmux.SetBufferRequest","signatures":[],"type":"string","doc":{"summary":"Data is the exact buffer data to store or append."},"source":{"file":"tmux/server_buffers.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetBufferRequest.Data","product":"core","slug":"tmux-setbufferrequest-data"},{"id":"tmux.SetBufferRequest.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.SetBufferRequest","signatures":[],"type":"*string","doc":{"summary":"Name selects a named buffer, or nil for tmux's most-recent buffer."},"source":{"file":"tmux/server_buffers.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetBufferRequest.Name","product":"core","slug":"tmux-setbufferrequest-name"},{"id":"tmux.SetBufferRequest.Append","name":"Append","kind":"attribute","modifiers":[],"parent":"tmux.SetBufferRequest","signatures":[],"type":"bool","doc":{"summary":"Append appends Data instead of replacing the selected buffer."},"source":{"file":"tmux/server_buffers.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetBufferRequest.Append","product":"core","slug":"tmux-setbufferrequest-append"},{"id":"tmux.SaveBufferRequest","name":"SaveBufferRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SaveBufferRequest configures writing a tmux paste buffer to a file. Its zero value is invalid because Path is required; nil Name selects the most-recent buffer and a pointer to an empty name is explicit."},"source":{"file":"tmux/server_buffers.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SaveBufferRequest","product":"core","slug":"tmux-savebufferrequest"},{"id":"tmux.SaveBufferRequest.Path","name":"Path","kind":"attribute","modifiers":[],"parent":"tmux.SaveBufferRequest","signatures":[],"type":"string","doc":{"summary":"Path is the required output file path."},"source":{"file":"tmux/server_buffers.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SaveBufferRequest.Path","product":"core","slug":"tmux-savebufferrequest-path"},{"id":"tmux.SaveBufferRequest.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.SaveBufferRequest","signatures":[],"type":"*string","doc":{"summary":"Name selects a named buffer, or nil for tmux's most-recent buffer."},"source":{"file":"tmux/server_buffers.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SaveBufferRequest.Name","product":"core","slug":"tmux-savebufferrequest-name"},{"id":"tmux.SaveBufferRequest.Append","name":"Append","kind":"attribute","modifiers":[],"parent":"tmux.SaveBufferRequest","signatures":[],"type":"bool","doc":{"summary":"Append appends buffer data to Path instead of replacing its contents."},"source":{"file":"tmux/server_buffers.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SaveBufferRequest.Append","product":"core","slug":"tmux-savebufferrequest-append"},{"id":"tmux.LoadBufferRequest","name":"LoadBufferRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"LoadBufferRequest configures loading a file into a tmux paste buffer. Its zero value is invalid because Path is required; nil Name lets tmux allocate a buffer and a pointer to an empty name is explicit."},"source":{"file":"tmux/server_buffers.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LoadBufferRequest","product":"core","slug":"tmux-loadbufferrequest"},{"id":"tmux.LoadBufferRequest.Path","name":"Path","kind":"attribute","modifiers":[],"parent":"tmux.LoadBufferRequest","signatures":[],"type":"string","doc":{"summary":"Path is the required input file path."},"source":{"file":"tmux/server_buffers.go","line":55,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LoadBufferRequest.Path","product":"core","slug":"tmux-loadbufferrequest-path"},{"id":"tmux.LoadBufferRequest.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.LoadBufferRequest","signatures":[],"type":"*string","doc":{"summary":"Name selects the destination buffer, or nil for tmux's allocation behavior."},"source":{"file":"tmux/server_buffers.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LoadBufferRequest.Name","product":"core","slug":"tmux-loadbufferrequest-name"},{"id":"tmux.LoadBufferFromOptions","name":"LoadBufferFromOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"LoadBufferFromOptions configures streaming data into a tmux paste buffer. Its zero value lets tmux allocate a buffer; nil Name selects that allocation and a pointer to an empty name is explicit."},"source":{"file":"tmux/server_buffers.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LoadBufferFromOptions","product":"core","slug":"tmux-loadbufferfromoptions"},{"id":"tmux.LoadBufferFromOptions.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.LoadBufferFromOptions","signatures":[],"type":"*string","doc":{"summary":"Name selects the destination buffer, or nil for tmux's allocation behavior."},"source":{"file":"tmux/server_buffers.go","line":65,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LoadBufferFromOptions.Name","product":"core","slug":"tmux-loadbufferfromoptions-name"},{"id":"tmux.SaveBufferToOptions","name":"SaveBufferToOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SaveBufferToOptions configures streaming a tmux paste buffer's contents out. Its zero value selects tmux's most-recent buffer; a pointer to an empty name is explicit."},"source":{"file":"tmux/server_buffers.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SaveBufferToOptions","product":"core","slug":"tmux-savebuffertooptions"},{"id":"tmux.SaveBufferToOptions.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.SaveBufferToOptions","signatures":[],"type":"*string","doc":{"summary":"Name selects a named buffer, or nil for tmux's most-recent buffer."},"source":{"file":"tmux/server_buffers.go","line":73,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SaveBufferToOptions.Name","product":"core","slug":"tmux-savebuffertooptions-name"},{"id":"tmux.ListBuffersRequest","name":"ListBuffersRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ListBuffersRequest configures tmux's live paste-buffer listing. Its zero value requests tmux's default output; nil Format and Filter omit their flags, whereas pointers to empty strings are explicit expressions."},"source":{"file":"tmux/server_buffers.go","line":79,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ListBuffersRequest","product":"core","slug":"tmux-listbuffersrequest"},{"id":"tmux.ListBuffersRequest.Format","name":"Format","kind":"attribute","modifiers":[],"parent":"tmux.ListBuffersRequest","signatures":[],"type":"*string","doc":{"summary":"Format selects tmux's output format."},"source":{"file":"tmux/server_buffers.go","line":81,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ListBuffersRequest.Format","product":"core","slug":"tmux-listbuffersrequest-format"},{"id":"tmux.ListBuffersRequest.Filter","name":"Filter","kind":"attribute","modifiers":[],"parent":"tmux.ListBuffersRequest","signatures":[],"type":"*TmuxFilter","doc":{"summary":"Filter is a raw tmux filter expression evaluated by tmux."},"source":{"file":"tmux/server_buffers.go","line":83,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ListBuffersRequest.Filter","product":"core","slug":"tmux-listbuffersrequest-filter"},{"id":"tmux.Server.SetBuffer","name":"SetBuffer","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetBuffer(ctx context.Context, request SetBufferRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SetBufferRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetBuffer stores or appends exact string data without refreshing models. It mutates the selected paste buffer; completed stderr is reported as a redacted command error because Data may be secret. Cancellation does not prove that tmux did not store data."},"source":{"file":"tmux/server_buffers.go","line":90,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetBuffer","product":"core","slug":"tmux-server-setbuffer"},{"id":"tmux.Server.ShowBuffer","name":"ShowBuffer","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ShowBuffer(ctx context.Context, name *string) (string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"*string"}],"receiver":{"name":"s","type":"Server"},"returns":"(string, error)"}],"doc":{"summary":"ShowBuffer returns one buffer using Python-compatible line reconstruction. The returned string is owned by the caller; nil Name selects tmux's most recent buffer. Completed stderr is an error."},"source":{"file":"tmux/server_buffers.go","line":118,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ShowBuffer","product":"core","slug":"tmux-server-showbuffer"},{"id":"tmux.Server.ShowBufferBytes","name":"ShowBufferBytes","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ShowBufferBytes(ctx context.Context, name *string) ([]byte, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"*string"}],"receiver":{"name":"s","type":"Server"},"returns":"([]byte, error)"}],"doc":{"summary":"ShowBufferBytes returns one buffer as exact caller-owned tmux stdout bytes. Unlike [Server.ShowBuffer], it preserves invalid UTF-8, delimiters, and trailing newlines. Nil Name selects tmux's most recent buffer. Completed stderr returns a redacted command error and a nil byte slice."},"source":{"file":"tmux/server_buffers.go","line":130,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ShowBufferBytes","product":"core","slug":"tmux-server-showbufferbytes"},{"id":"tmux.Server.DeleteBuffer","name":"DeleteBuffer","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) DeleteBuffer(ctx context.Context, name *string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"*string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"DeleteBuffer deletes a named buffer, or the most recent buffer when name is nil. Cancellation does not prove that tmux did not delete the buffer."},"source":{"file":"tmux/server_buffers.go","line":157,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.DeleteBuffer","product":"core","slug":"tmux-server-deletebuffer"},{"id":"tmux.Server.SaveBuffer","name":"SaveBuffer","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SaveBuffer(ctx context.Context, request SaveBufferRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SaveBufferRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SaveBuffer writes a named or most-recent buffer to a file. Path follows [Server.SourceFile]'s current-user expansion and lexical normalization. It changes that file. Exact \"-\" is rejected because it names tmux's stdout rather than a path; [Server.SaveBufferTo] streams to an [io.Writer], and this method is the one that runs over a [Connection]."},"source":{"file":"tmux/server_buffers.go","line":174,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SaveBuffer","product":"core","slug":"tmux-server-savebuffer"},{"id":"tmux.Server.LoadBuffer","name":"LoadBuffer","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) LoadBuffer(ctx context.Context, request LoadBufferRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"LoadBufferRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"LoadBuffer reads a file into a named or newly allocated buffer. Path follows [Server.SourceFile]'s current-user expansion and lexical normalization. It mutates tmux's destination buffer. Exact \"-\" is rejected because it names tmux's stdin rather than a path; [Server.LoadBufferFrom] streams from an [io.Reader], and this method is the one that runs over a [Connection]."},"source":{"file":"tmux/server_buffers.go","line":199,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.LoadBuffer","product":"core","slug":"tmux-server-loadbuffer"},{"id":"tmux.Server.LoadBufferFrom","name":"LoadBufferFrom","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) LoadBufferFrom(\n\tctx context.Context,\n\tsource io.Reader,\n\toptions LoadBufferFromOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"source","type":"io.Reader"},{"name":"options","type":"LoadBufferFromOptions"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"LoadBufferFrom streams source into a named or newly allocated tmux paste buffer, reading it to completion without holding its contents in memory. It carries any bytes, including NUL, and is bounded by neither argv nor tmux's command-message limit, which is what [Server.SetBuffer] is bounded by.","body":"A copy failure after tmux exits zero means the buffer holds only the prefix\nthat reached tmux, and cancellation does not prove tmux stored nothing. A\nsource that blocks regardless of cancellation does not hold the call, and is\nstill being read when it returns. A [Connection]-bound Server returns\n[ErrConnectionRequiresProcess]: tmux offers no stdin to a control client, so\nuse [Server.LoadBuffer] and a path over a connection."},"source":{"file":"tmux/server_buffers.go","line":227,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.LoadBufferFrom","product":"core","slug":"tmux-server-loadbufferfrom"},{"id":"tmux.Server.SaveBufferTo","name":"SaveBufferTo","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SaveBufferTo(\n\tctx context.Context,\n\tdestination io.Writer,\n\toptions SaveBufferToOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"destination","type":"io.Writer"},{"name":"options","type":"SaveBufferToOptions"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SaveBufferTo streams a named or most-recent tmux paste buffer into destination without holding its contents in memory. It writes any bytes, including NUL, and preserves them exactly where [Server.ShowBuffer] reconstructs lines.","body":"Cancellation does not prove destination received a complete buffer, and a\ncopy failure takes precedence over a completed command's exit status because\nit means destination never saw everything tmux sent. A destination that\nblocks regardless of cancellation does not hold the call. A\n[Connection]-bound Server returns [ErrConnectionRequiresProcess]: tmux\noffers no stdout to a control client, so use [Server.SaveBuffer] and a path\nover a connection."},"source":{"file":"tmux/server_buffers.go","line":259,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SaveBufferTo","product":"core","slug":"tmux-server-savebufferto"},{"id":"tmux.Server.ListBuffers","name":"ListBuffers","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ListBuffers(\n\tctx context.Context,\n\trequest ListBuffersRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ListBuffersRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"([]string, error)"}],"doc":{"summary":"ListBuffers returns an owned snapshot of live tmux buffer rows. A command or transport failure is returned rather than answered with no rows; context cancellation still returns its context error. The result is not a live collection."},"source":{"file":"tmux/server_buffers.go","line":283,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ListBuffers","product":"core","slug":"tmux-server-listbuffers"},{"id":"tmux.ServerAccessRequest","name":"ServerAccessRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ServerAccessRequest configures tmux server access control. Its zero value is invalid: List or exactly one nonempty Allow or Deny is required. Allow and Deny, and ReadOnly and Write, are mutually exclusive; nil pointers omit their selectors while explicit empty users are rejected. List selects the returned-list path, but compatible selector and mode flags are still sent to tmux rather than ignored."},"source":{"file":"tmux/server_clients.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerAccessRequest","product":"core","slug":"tmux-serveraccessrequest"},{"id":"tmux.ServerAccessRequest.Allow","name":"Allow","kind":"attribute","modifiers":[],"parent":"tmux.ServerAccessRequest","signatures":[],"type":"*string","doc":{"summary":"Allow grants the named user access."},"source":{"file":"tmux/server_clients.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerAccessRequest.Allow","product":"core","slug":"tmux-serveraccessrequest-allow"},{"id":"tmux.ServerAccessRequest.Deny","name":"Deny","kind":"attribute","modifiers":[],"parent":"tmux.ServerAccessRequest","signatures":[],"type":"*string","doc":{"summary":"Deny revokes the named user's access."},"source":{"file":"tmux/server_clients.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerAccessRequest.Deny","product":"core","slug":"tmux-serveraccessrequest-deny"},{"id":"tmux.ServerAccessRequest.List","name":"List","kind":"attribute","modifiers":[],"parent":"tmux.ServerAccessRequest","signatures":[],"type":"bool","doc":{"summary":"List returns the configured access entries instead of mutating them."},"source":{"file":"tmux/server_clients.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerAccessRequest.List","product":"core","slug":"tmux-serveraccessrequest-list"},{"id":"tmux.ServerAccessRequest.ReadOnly","name":"ReadOnly","kind":"attribute","modifiers":[],"parent":"tmux.ServerAccessRequest","signatures":[],"type":"bool","doc":{"summary":"ReadOnly grants read-only access to the selected user."},"source":{"file":"tmux/server_clients.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerAccessRequest.ReadOnly","product":"core","slug":"tmux-serveraccessrequest-readonly"},{"id":"tmux.ServerAccessRequest.Write","name":"Write","kind":"attribute","modifiers":[],"parent":"tmux.ServerAccessRequest","signatures":[],"type":"bool","doc":{"summary":"Write grants write access to the selected user."},"source":{"file":"tmux/server_clients.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerAccessRequest.Write","product":"core","slug":"tmux-serveraccessrequest-write"},{"id":"tmux.RefreshClientRequest","name":"RefreshClientRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"RefreshClientRequest configures refreshing one tmux client. Its zero value refreshes tmux's current client; a zero TargetClient omits -t."},"source":{"file":"tmux/server_clients.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RefreshClientRequest","product":"core","slug":"tmux-refreshclientrequest"},{"id":"tmux.RefreshClientRequest.TargetClient","name":"TargetClient","kind":"attribute","modifiers":[],"parent":"tmux.RefreshClientRequest","signatures":[],"type":"ClientName","doc":{"summary":"TargetClient selects a stable client; zero selects tmux's current client."},"source":{"file":"tmux/server_clients.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RefreshClientRequest.TargetClient","product":"core","slug":"tmux-refreshclientrequest-targetclient"},{"id":"tmux.RefreshClientRequest.RequestClipboard","name":"RequestClipboard","kind":"attribute","modifiers":[],"parent":"tmux.RefreshClientRequest","signatures":[],"type":"bool","doc":{"summary":"RequestClipboard requests clipboard data and requires tmux 3.4; older tmux versions may exit when given the flag, so it follows UnsupportedPolicy."},"source":{"file":"tmux/server_clients.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RefreshClientRequest.RequestClipboard","product":"core","slug":"tmux-refreshclientrequest-requestclipboard"},{"id":"tmux.DetachClientRequest","name":"DetachClientRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"DetachClientRequest configures detaching one tmux client. Its zero value detaches tmux's current client; nil fields omit their flags while an empty ShellCommand pointer is explicit."},"source":{"file":"tmux/server_clients.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachClientRequest","product":"core","slug":"tmux-detachclientrequest"},{"id":"tmux.DetachClientRequest.TargetClient","name":"TargetClient","kind":"attribute","modifiers":[],"parent":"tmux.DetachClientRequest","signatures":[],"type":"ClientName","doc":{"summary":"TargetClient selects a stable client; zero selects tmux's current client."},"source":{"file":"tmux/server_clients.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachClientRequest.TargetClient","product":"core","slug":"tmux-detachclientrequest-targetclient"},{"id":"tmux.DetachClientRequest.ShellCommand","name":"ShellCommand","kind":"attribute","modifiers":[],"parent":"tmux.DetachClientRequest","signatures":[],"type":"*string","doc":{"summary":"ShellCommand is run after detaching when nonnil."},"source":{"file":"tmux/server_clients.go","line":51,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachClientRequest.ShellCommand","product":"core","slug":"tmux-detachclientrequest-shellcommand"},{"id":"tmux.DetachAllClientsRequest","name":"DetachAllClientsRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"DetachAllClientsRequest configures detaching every client except one. Its zero value keeps tmux's current client; nil fields omit their flags."},"source":{"file":"tmux/server_clients.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachAllClientsRequest","product":"core","slug":"tmux-detachallclientsrequest"},{"id":"tmux.DetachAllClientsRequest.KeepClient","name":"KeepClient","kind":"attribute","modifiers":[],"parent":"tmux.DetachAllClientsRequest","signatures":[],"type":"ClientName","doc":{"summary":"KeepClient selects the stable client to retain; zero keeps tmux's current client."},"source":{"file":"tmux/server_clients.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachAllClientsRequest.KeepClient","product":"core","slug":"tmux-detachallclientsrequest-keepclient"},{"id":"tmux.DetachAllClientsRequest.ShellCommand","name":"ShellCommand","kind":"attribute","modifiers":[],"parent":"tmux.DetachAllClientsRequest","signatures":[],"type":"*string","doc":{"summary":"ShellCommand is run after detaching when nonnil."},"source":{"file":"tmux/server_clients.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachAllClientsRequest.ShellCommand","product":"core","slug":"tmux-detachallclientsrequest-shellcommand"},{"id":"tmux.Server.ServerAccess","name":"ServerAccess","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ServerAccess(\n\tctx context.Context,\n\trequest ServerAccessRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ServerAccessRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"([]string, error)"}],"doc":{"summary":"ServerAccess changes or lists the server access-control entries. It requires tmux 3.3 and returns [VersionTooLowError] below that floor. List returns an owned snapshot, and reports a completed or transport failure rather than answering with no entries; mutation completed stderr is an error."},"source":{"file":"tmux/server_clients.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ServerAccess","product":"core","slug":"tmux-server-serveraccess"},{"id":"tmux.Server.LockServer","name":"LockServer","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) LockServer(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"LockServer locks every attached client on the tmux server. Cancellation does not prove the server did not lock a client."},"source":{"file":"tmux/server_clients.go","line":151,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.LockServer","product":"core","slug":"tmux-server-lockserver"},{"id":"tmux.Server.RefreshClient","name":"RefreshClient","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) RefreshClient(ctx context.Context, request RefreshClientRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"RefreshClientRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"RefreshClient redraws a client, or tmux's current client when no target is set. RequestClipboard requires tmux 3.4 and follows [UnsupportedPolicy]."},"source":{"file":"tmux/server_clients.go","line":157,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.RefreshClient","product":"core","slug":"tmux-server-refreshclient"},{"id":"tmux.Server.LockClient","name":"LockClient","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) LockClient(ctx context.Context, targetClient *ClientName) error","params":[{"name":"ctx","type":"context.Context"},{"name":"targetClient","type":"*ClientName"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"LockClient locks a client, or tmux's current client when targetClient is nil. Cancellation does not prove the target client was not locked."},"source":{"file":"tmux/server_clients.go","line":191,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.LockClient","product":"core","slug":"tmux-server-lockclient"},{"id":"tmux.Server.SuspendClient","name":"SuspendClient","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SuspendClient(ctx context.Context, targetClient *ClientName) error","params":[{"name":"ctx","type":"context.Context"},{"name":"targetClient","type":"*ClientName"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SuspendClient suspends a client, or tmux's current client when targetClient is nil. Cancellation does not prove suspension did not occur."},"source":{"file":"tmux/server_clients.go","line":205,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SuspendClient","product":"core","slug":"tmux-server-suspendclient"},{"id":"tmux.Server.DetachClient","name":"DetachClient","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) DetachClient(ctx context.Context, request DetachClientRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"DetachClientRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"DetachClient detaches one client, or tmux's current client when no target is set. A completed stderr result is an error; cancellation does not prove delivery or detachment did not occur."},"source":{"file":"tmux/server_clients.go","line":220,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.DetachClient","product":"core","slug":"tmux-server-detachclient"},{"id":"tmux.Server.DetachAllClients","name":"DetachAllClients","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) DetachAllClients(\n\tctx context.Context,\n\trequest DetachAllClientsRequest,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"DetachAllClientsRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"DetachAllClients detaches every client except KeepClient or tmux's current client. Cancellation does not prove every client was detached."},"source":{"file":"tmux/server_clients.go","line":245,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.DetachAllClients","product":"core","slug":"tmux-server-detachallclients"},{"id":"tmux.Server.SwitchClient","name":"SwitchClient","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SwitchClient(ctx context.Context, targetSession string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"targetSession","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SwitchClient switches tmux's current client to targetSession. TargetSession is a validated session name rather than a stable identity; cancellation does not prove the switch did not occur.","body":"The target is sent anchored with tmux's \"=\" exact-match prefix: an\nunanchored \"-t name\" resolves by prefix, so a name that matches no session\nexactly but starts a different one's name would otherwise switch there\nsilently instead of failing. The anchor is safe here because\nvalidateLifecycleSessionName has already refused the period or colon that\nwould make \"=name\" misread the target itself."},"source":{"file":"tmux/server_clients.go","line":281,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SwitchClient","product":"core","slug":"tmux-server-switchclient"},{"id":"tmux.Session.Lock","name":"Lock","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Lock(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"Lock locks every client attached to the session identified by this handle's stable ID. Cancellation does not prove that tmux did not lock a client."},"source":{"file":"tmux/server_clients.go","line":295,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Lock","product":"core","slug":"tmux-session-lock"},{"id":"tmux.Session.DetachClients","name":"DetachClients","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) DetachClients(ctx context.Context, shellCommand *string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"shellCommand","type":"*string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"DetachClients detaches every client attached to the session identified by this handle's stable ID. A nonnil ShellCommand is run after detaching."},"source":{"file":"tmux/server_clients.go","line":316,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.DetachClients","product":"core","slug":"tmux-session-detachclients"},{"id":"tmux.Session.SwitchClient","name":"SwitchClient","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SwitchClient(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SwitchClient switches tmux's current client to the session identified by this handle's stable ID."},"source":{"file":"tmux/server_clients.go","line":345,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SwitchClient","product":"core","slug":"tmux-session-switchclient"},{"id":"tmux.ErrInvalidServerCommandRequest","name":"ErrInvalidServerCommandRequest","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidServerCommandRequest identifies a server command request that cannot be represented safely as tmux arguments."},"source":{"file":"tmux/server_exec.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidServerCommandRequest","product":"core","slug":"tmux-errinvalidservercommandrequest"},{"id":"tmux.ServerCommandRequestError","name":"ServerCommandRequestError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ServerCommandRequestError reports a locally rejected server command request field. Callers can use [errors.Is] with [ErrInvalidServerCommandRequest] or [errors.As] to inspect it. Value is redacted only when that field's validator requests redaction."},"source":{"file":"tmux/server_exec.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerCommandRequestError","product":"core","slug":"tmux-servercommandrequesterror"},{"id":"tmux.ServerCommandRequestError.Subcommand","name":"Subcommand","kind":"attribute","modifiers":[],"parent":"tmux.ServerCommandRequestError","signatures":[],"type":"string","doc":{"summary":"Subcommand is the tmux command whose request was rejected."},"source":{"file":"tmux/server_exec.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerCommandRequestError.Subcommand","product":"core","slug":"tmux-servercommandrequesterror-subcommand"},{"id":"tmux.ServerCommandRequestError.Field","name":"Field","kind":"attribute","modifiers":[],"parent":"tmux.ServerCommandRequestError","signatures":[],"type":"string","doc":{"summary":"Field is the request field that was rejected."},"source":{"file":"tmux/server_exec.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerCommandRequestError.Field","product":"core","slug":"tmux-servercommandrequesterror-field"},{"id":"tmux.ServerCommandRequestError.Value","name":"Value","kind":"attribute","modifiers":[],"parent":"tmux.ServerCommandRequestError","signatures":[],"type":"string","doc":{"summary":"Value is the rejected value, or \"[redacted]\" for a secret-sensitive field."},"source":{"file":"tmux/server_exec.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerCommandRequestError.Value","product":"core","slug":"tmux-servercommandrequesterror-value"},{"id":"tmux.ServerCommandRequestError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.ServerCommandRequestError","signatures":[],"type":"string","doc":{"summary":"Reason describes the validation failure without changing the sentinel error."},"source":{"file":"tmux/server_exec.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerCommandRequestError.Reason","product":"core","slug":"tmux-servercommandrequesterror-reason"},{"id":"tmux.ServerCommandRequestError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.ServerCommandRequestError","signatures":[{"raw":"func (e *ServerCommandRequestError) Error() string","params":[],"receiver":{"name":"e","type":"*ServerCommandRequestError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/server_exec.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerCommandRequestError.Error","product":"core","slug":"tmux-servercommandrequesterror-error"},{"id":"tmux.ServerCommandRequestError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.ServerCommandRequestError","signatures":[{"raw":"func (e *ServerCommandRequestError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*ServerCommandRequestError"},"returns":"error"}],"doc":{"summary":"Unwrap makes ServerCommandRequestError compatible with ErrInvalidServerCommandRequest."},"source":{"file":"tmux/server_exec.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerCommandRequestError.Unwrap","product":"core","slug":"tmux-servercommandrequesterror-unwrap"},{"id":"tmux.RunShellRequest","name":"RunShellRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"RunShellRequest configures a command executed by tmux's run-shell command. Its zero value is invalid because Command is required. Pointer fields distinguish omitted flags from explicit empty arguments; RunShell copies Delay, StartDirectory, and Args before invoking tmux."},"source":{"file":"tmux/server_exec.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunShellRequest","product":"core","slug":"tmux-runshellrequest"},{"id":"tmux.RunShellRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.RunShellRequest","signatures":[],"type":"string","doc":{"summary":"Command is the required shell or tmux command to run."},"source":{"file":"tmux/server_exec.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunShellRequest.Command","product":"core","slug":"tmux-runshellrequest-command"},{"id":"tmux.RunShellRequest.Background","name":"Background","kind":"attribute","modifiers":[],"parent":"tmux.RunShellRequest","signatures":[],"type":"bool","doc":{"summary":"Background returns after tmux accepts the job instead of waiting for stdout."},"source":{"file":"tmux/server_exec.go","line":65,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunShellRequest.Background","product":"core","slug":"tmux-runshellrequest-background"},{"id":"tmux.RunShellRequest.Delay","name":"Delay","kind":"attribute","modifiers":[],"parent":"tmux.RunShellRequest","signatures":[],"type":"*string","doc":{"summary":"Delay supplies run-shell's optional delay; nil omits it and an empty value is explicit."},"source":{"file":"tmux/server_exec.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunShellRequest.Delay","product":"core","slug":"tmux-runshellrequest-delay"},{"id":"tmux.RunShellRequest.AsTmuxCommand","name":"AsTmuxCommand","kind":"attribute","modifiers":[],"parent":"tmux.RunShellRequest","signatures":[],"type":"bool","doc":{"summary":"AsTmuxCommand asks tmux to interpret Command as tmux command syntax."},"source":{"file":"tmux/server_exec.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunShellRequest.AsTmuxCommand","product":"core","slug":"tmux-runshellrequest-astmuxcommand"},{"id":"tmux.RunShellRequest.TargetPane","name":"TargetPane","kind":"attribute","modifiers":[],"parent":"tmux.RunShellRequest","signatures":[],"type":"PaneID","doc":{"summary":"TargetPane selects a stable pane target; its zero value leaves target selection to tmux."},"source":{"file":"tmux/server_exec.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunShellRequest.TargetPane","product":"core","slug":"tmux-runshellrequest-targetpane"},{"id":"tmux.RunShellRequest.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"tmux.RunShellRequest","signatures":[],"type":"*string","doc":{"summary":"StartDirectory selects the job directory; nil omits it. It requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/server_exec.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunShellRequest.StartDirectory","product":"core","slug":"tmux-runshellrequest-startdirectory"},{"id":"tmux.RunShellRequest.ShowStderr","name":"ShowStderr","kind":"attribute","modifiers":[],"parent":"tmux.RunShellRequest","signatures":[],"type":"bool","doc":{"summary":"ShowStderr requests job stderr and requires tmux 3.6; see UnsupportedPolicy."},"source":{"file":"tmux/server_exec.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunShellRequest.ShowStderr","product":"core","slug":"tmux-runshellrequest-showstderr"},{"id":"tmux.RunShellRequest.Args","name":"Args","kind":"attribute","modifiers":[],"parent":"tmux.RunShellRequest","signatures":[],"type":"[]string","doc":{"summary":"Args are extra job arguments copied before tmux runs. They require tmux 3.7; see UnsupportedPolicy."},"source":{"file":"tmux/server_exec.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunShellRequest.Args","product":"core","slug":"tmux-runshellrequest-args"},{"id":"tmux.WaitForMode","name":"WaitForMode","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WaitForMode selects one wait-for operation. The zero value waits until the channel is signaled."},"source":{"file":"tmux/server_exec.go","line":85,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WaitForMode","product":"core","slug":"tmux-waitformode"},{"id":"tmux.WaitForModeWait","name":"WaitForModeWait","kind":"constant","modifiers":[],"signatures":[],"type":"WaitForMode","doc":{"summary":"WaitForModeWait waits until another client signals Channel."},"source":{"file":"tmux/server_exec.go","line":90,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WaitForModeWait","product":"core","slug":"tmux-waitformodewait"},{"id":"tmux.WaitForModeSignal","name":"WaitForModeSignal","kind":"constant","modifiers":[],"signatures":[],"type":"WaitForMode","doc":{"summary":"WaitForModeSignal signals Channel and wakes waiters."},"source":{"file":"tmux/server_exec.go","line":92,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WaitForModeSignal","product":"core","slug":"tmux-waitformodesignal"},{"id":"tmux.WaitForModeLock","name":"WaitForModeLock","kind":"constant","modifiers":[],"signatures":[],"type":"WaitForMode","doc":{"summary":"WaitForModeLock acquires Channel's tmux mutex, queuing behind another locker if it is already held.","body":"Before tmux 3.8, a cancelled or timed-out ctx while queued costs Channel\none unlock: tmux hands the mutex to the next queued client whether or\nnot it is still there, and the one that has gone cannot pass it on\n(cmd-wait-for.c cmd_wait_for_unlock). Unlocking again hands it to the\nnext real locker, so a channel is not lost, but a program that abandons\nlock waits and counts its unlocks will deadlock on its own arithmetic.\ntmux 3.8 drops the wait of a client that has gone (tmux issue 5614), so\nthere an abandoned wait costs nothing and an extra unlock fails."},"source":{"file":"tmux/server_exec.go","line":104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WaitForModeLock","product":"core","slug":"tmux-waitformodelock"},{"id":"tmux.WaitForModeUnlock","name":"WaitForModeUnlock","kind":"constant","modifiers":[],"signatures":[],"type":"WaitForMode","doc":{"summary":"WaitForModeUnlock releases Channel's tmux mutex."},"source":{"file":"tmux/server_exec.go","line":106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WaitForModeUnlock","product":"core","slug":"tmux-waitformodeunlock"},{"id":"tmux.WaitForRequest","name":"WaitForRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WaitForRequest configures a wait, signal, lock, or unlock operation. Its zero value waits on the required nonempty Channel."},"source":{"file":"tmux/server_exec.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WaitForRequest","product":"core","slug":"tmux-waitforrequest"},{"id":"tmux.WaitForRequest.Channel","name":"Channel","kind":"attribute","modifiers":[],"parent":"tmux.WaitForRequest","signatures":[],"type":"string","doc":{"summary":"Channel names the tmux wait-for channel or mutex."},"source":{"file":"tmux/server_exec.go","line":113,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WaitForRequest.Channel","product":"core","slug":"tmux-waitforrequest-channel"},{"id":"tmux.WaitForRequest.Mode","name":"Mode","kind":"attribute","modifiers":[],"parent":"tmux.WaitForRequest","signatures":[],"type":"WaitForMode","doc":{"summary":"Mode selects the channel action; zero waits."},"source":{"file":"tmux/server_exec.go","line":115,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WaitForRequest.Mode","product":"core","slug":"tmux-waitforrequest-mode"},{"id":"tmux.IfShellRequest","name":"IfShellRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"IfShellRequest configures conditional execution of a tmux command. Its zero value is invalid because ShellCommand and ThenCommand are required; nil ElseCommand omits the failure branch while a pointer to an empty string is explicit."},"source":{"file":"tmux/server_exec.go","line":122,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.IfShellRequest","product":"core","slug":"tmux-ifshellrequest"},{"id":"tmux.IfShellRequest.ShellCommand","name":"ShellCommand","kind":"attribute","modifiers":[],"parent":"tmux.IfShellRequest","signatures":[],"type":"string","doc":{"summary":"ShellCommand is the required shell condition executed by tmux."},"source":{"file":"tmux/server_exec.go","line":124,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.IfShellRequest.ShellCommand","product":"core","slug":"tmux-ifshellrequest-shellcommand"},{"id":"tmux.IfShellRequest.ThenCommand","name":"ThenCommand","kind":"attribute","modifiers":[],"parent":"tmux.IfShellRequest","signatures":[],"type":"string","doc":{"summary":"ThenCommand is the required tmux command executed when ShellCommand succeeds."},"source":{"file":"tmux/server_exec.go","line":126,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.IfShellRequest.ThenCommand","product":"core","slug":"tmux-ifshellrequest-thencommand"},{"id":"tmux.IfShellRequest.ElseCommand","name":"ElseCommand","kind":"attribute","modifiers":[],"parent":"tmux.IfShellRequest","signatures":[],"type":"*string","doc":{"summary":"ElseCommand is the optional tmux command executed when ShellCommand fails."},"source":{"file":"tmux/server_exec.go","line":128,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.IfShellRequest.ElseCommand","product":"core","slug":"tmux-ifshellrequest-elsecommand"},{"id":"tmux.IfShellRequest.Background","name":"Background","kind":"attribute","modifiers":[],"parent":"tmux.IfShellRequest","signatures":[],"type":"bool","doc":{"summary":"Background makes tmux schedule the conditional command without waiting."},"source":{"file":"tmux/server_exec.go","line":130,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.IfShellRequest.Background","product":"core","slug":"tmux-ifshellrequest-background"},{"id":"tmux.IfShellRequest.TargetPane","name":"TargetPane","kind":"attribute","modifiers":[],"parent":"tmux.IfShellRequest","signatures":[],"type":"PaneID","doc":{"summary":"TargetPane selects a stable pane target; its zero value omits -t."},"source":{"file":"tmux/server_exec.go","line":132,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.IfShellRequest.TargetPane","product":"core","slug":"tmux-ifshellrequest-targetpane"},{"id":"tmux.SourceFileRequest","name":"SourceFileRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SourceFileRequest configures loading or parsing a tmux configuration file. Its zero value is invalid because Path is required; SourceFile expands only the current user's ~ forms and copies no caller-owned mutable input."},"source":{"file":"tmux/server_exec.go","line":138,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SourceFileRequest","product":"core","slug":"tmux-sourcefilerequest"},{"id":"tmux.SourceFileRequest.Path","name":"Path","kind":"attribute","modifiers":[],"parent":"tmux.SourceFileRequest","signatures":[],"type":"string","doc":{"summary":"Path is the required configuration path; exact \"-\" is rejected because no stdin is provided."},"source":{"file":"tmux/server_exec.go","line":140,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SourceFileRequest.Path","product":"core","slug":"tmux-sourcefilerequest-path"},{"id":"tmux.SourceFileRequest.Quiet","name":"Quiet","kind":"attribute","modifiers":[],"parent":"tmux.SourceFileRequest","signatures":[],"type":"bool","doc":{"summary":"Quiet suppresses tmux diagnostics for missing source files."},"source":{"file":"tmux/server_exec.go","line":142,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SourceFileRequest.Quiet","product":"core","slug":"tmux-sourcefilerequest-quiet"},{"id":"tmux.SourceFileRequest.ParseOnly","name":"ParseOnly","kind":"attribute","modifiers":[],"parent":"tmux.SourceFileRequest","signatures":[],"type":"bool","doc":{"summary":"ParseOnly validates the file without applying its commands."},"source":{"file":"tmux/server_exec.go","line":144,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SourceFileRequest.ParseOnly","product":"core","slug":"tmux-sourcefilerequest-parseonly"},{"id":"tmux.SourceFileRequest.Verbose","name":"Verbose","kind":"attribute","modifiers":[],"parent":"tmux.SourceFileRequest","signatures":[],"type":"bool","doc":{"summary":"Verbose requests tmux parsing diagnostics."},"source":{"file":"tmux/server_exec.go","line":146,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SourceFileRequest.Verbose","product":"core","slug":"tmux-sourcefilerequest-verbose"},{"id":"tmux.Server.RunShell","name":"RunShell","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) RunShell(ctx context.Context, request RunShellRequest) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"RunShellRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"([]string, error)"}],"doc":{"summary":"RunShell executes a shell command through tmux and returns an owned stdout slice. A background request returns nil after tmux accepts the job. Unsupported optional flags follow [UnsupportedPolicy]. A completed stderr result is an error; context cancellation can be observed with [errors.Is] but does not establish that tmux did not start the job."},"source":{"file":"tmux/server_exec.go","line":154,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.RunShell","product":"core","slug":"tmux-server-runshell"},{"id":"tmux.Server.WaitFor","name":"WaitFor","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) WaitFor(ctx context.Context, request WaitForRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"WaitForRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"WaitFor waits for, signals, locks, or unlocks a named tmux channel. It changes only that server-side channel state; cancellation can interrupt the client wait but cannot prove a preceding signal or lock did not take effect. See [WaitForModeLock]: before tmux 3.8, abandoning a lock wait costs that channel one unlock."},"source":{"file":"tmux/server_exec.go","line":250,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.WaitFor","product":"core","slug":"tmux-server-waitfor"},{"id":"tmux.Server.IfShell","name":"IfShell","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) IfShell(ctx context.Context, request IfShellRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"IfShellRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"IfShell executes ThenCommand when ShellCommand succeeds and ElseCommand, if present, when it fails. A completed stderr result is an error; cancellation can interrupt delivery without proving that tmux did not execute a branch."},"source":{"file":"tmux/server_exec.go","line":284,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.IfShell","product":"core","slug":"tmux-server-ifshell"},{"id":"tmux.Server.SourceFile","name":"SourceFile","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SourceFile(ctx context.Context, request SourceFileRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SourceFileRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SourceFile loads or parses one tmux configuration file. The path expands ~ and ~/... for the current user and normalizes redundant separators and dot components without collapsing parent components. Named-user forms are rejected. Exact \"-\" is rejected because it requires process stdin; a relative path naming a file called \"-\" remains file data. It can mutate tmux configuration; completed stderr is an error, and cancellation does not prove that parsing or sourcing did not occur."},"source":{"file":"tmux/server_exec.go","line":324,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SourceFile","product":"core","slug":"tmux-server-sourcefile"},{"id":"tmux.ConfirmBeforeRequest","name":"ConfirmBeforeRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ConfirmBeforeRequest configures a background tmux confirmation prompt. Its zero value is invalid because Command is required. Nil pointer fields omit their flags while explicit empty strings are passed to tmux; ConfirmKey must be one printable ASCII character."},"source":{"file":"tmux/server_interactive.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ConfirmBeforeRequest","product":"core","slug":"tmux-confirmbeforerequest"},{"id":"tmux.ConfirmBeforeRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.ConfirmBeforeRequest","signatures":[],"type":"string","doc":{"summary":"Command is the required tmux command shown for confirmation."},"source":{"file":"tmux/server_interactive.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ConfirmBeforeRequest.Command","product":"core","slug":"tmux-confirmbeforerequest-command"},{"id":"tmux.ConfirmBeforeRequest.Prompt","name":"Prompt","kind":"attribute","modifiers":[],"parent":"tmux.ConfirmBeforeRequest","signatures":[],"type":"*string","doc":{"summary":"Prompt replaces tmux's prompt when nonnil."},"source":{"file":"tmux/server_interactive.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ConfirmBeforeRequest.Prompt","product":"core","slug":"tmux-confirmbeforerequest-prompt"},{"id":"tmux.ConfirmBeforeRequest.ConfirmKey","name":"ConfirmKey","kind":"attribute","modifiers":[],"parent":"tmux.ConfirmBeforeRequest","signatures":[],"type":"*string","doc":{"summary":"ConfirmKey selects the affirmative key and requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ConfirmBeforeRequest.ConfirmKey","product":"core","slug":"tmux-confirmbeforerequest-confirmkey"},{"id":"tmux.ConfirmBeforeRequest.DefaultYes","name":"DefaultYes","kind":"attribute","modifiers":[],"parent":"tmux.ConfirmBeforeRequest","signatures":[],"type":"bool","doc":{"summary":"DefaultYes selects yes by default and requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ConfirmBeforeRequest.DefaultYes","product":"core","slug":"tmux-confirmbeforerequest-defaultyes"},{"id":"tmux.ConfirmBeforeRequest.TargetClient","name":"TargetClient","kind":"attribute","modifiers":[],"parent":"tmux.ConfirmBeforeRequest","signatures":[],"type":"ClientName","doc":{"summary":"TargetClient selects the stable client that displays the prompt."},"source":{"file":"tmux/server_interactive.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ConfirmBeforeRequest.TargetClient","product":"core","slug":"tmux-confirmbeforerequest-targetclient"},{"id":"tmux.CommandPromptRequest","name":"CommandPromptRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CommandPromptRequest configures a background tmux command prompt. Its zero value is invalid because Template is required; nil pointer fields omit flags while explicit empty values are passed to tmux."},"source":{"file":"tmux/server_interactive.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest","product":"core","slug":"tmux-commandpromptrequest"},{"id":"tmux.CommandPromptRequest.Template","name":"Template","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"string","doc":{"summary":"Template is the required tmux command template submitted by the prompt."},"source":{"file":"tmux/server_interactive.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.Template","product":"core","slug":"tmux-commandpromptrequest-template"},{"id":"tmux.CommandPromptRequest.Prompt","name":"Prompt","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"*string","doc":{"summary":"Prompt replaces tmux's prompt text when nonnil."},"source":{"file":"tmux/server_interactive.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.Prompt","product":"core","slug":"tmux-commandpromptrequest-prompt"},{"id":"tmux.CommandPromptRequest.Inputs","name":"Inputs","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"*string","doc":{"summary":"Inputs supplies initial prompt inputs when nonnil."},"source":{"file":"tmux/server_interactive.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.Inputs","product":"core","slug":"tmux-commandpromptrequest-inputs"},{"id":"tmux.CommandPromptRequest.TargetClient","name":"TargetClient","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"ClientName","doc":{"summary":"TargetClient selects the stable client that displays the prompt."},"source":{"file":"tmux/server_interactive.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.TargetClient","product":"core","slug":"tmux-commandpromptrequest-targetclient"},{"id":"tmux.CommandPromptRequest.OneKey","name":"OneKey","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"OneKey accepts one key rather than a line."},"source":{"file":"tmux/server_interactive.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.OneKey","product":"core","slug":"tmux-commandpromptrequest-onekey"},{"id":"tmux.CommandPromptRequest.KeyOnly","name":"KeyOnly","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"KeyOnly limits accepted input to keys."},"source":{"file":"tmux/server_interactive.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.KeyOnly","product":"core","slug":"tmux-commandpromptrequest-keyonly"},{"id":"tmux.CommandPromptRequest.OnInputChange","name":"OnInputChange","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"OnInputChange runs Template after each input change."},"source":{"file":"tmux/server_interactive.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.OnInputChange","product":"core","slug":"tmux-commandpromptrequest-oninputchange"},{"id":"tmux.CommandPromptRequest.Numeric","name":"Numeric","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Numeric restricts accepted input to a number."},"source":{"file":"tmux/server_interactive.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.Numeric","product":"core","slug":"tmux-commandpromptrequest-numeric"},{"id":"tmux.CommandPromptRequest.Type","name":"Type","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"PromptType","doc":{"summary":"Type selects the associated prompt-history class; zero omits -T."},"source":{"file":"tmux/server_interactive.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.Type","product":"core","slug":"tmux-commandpromptrequest-type"},{"id":"tmux.CommandPromptRequest.ExpandFormat","name":"ExpandFormat","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"ExpandFormat expands formats in the prompt result."},"source":{"file":"tmux/server_interactive.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.ExpandFormat","product":"core","slug":"tmux-commandpromptrequest-expandformat"},{"id":"tmux.CommandPromptRequest.Literal","name":"Literal","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Literal disables key-name parsing and requires tmux 3.6; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.Literal","product":"core","slug":"tmux-commandpromptrequest-literal"},{"id":"tmux.CommandPromptRequest.BackspaceExit","name":"BackspaceExit","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"BackspaceExit exits on backspace and requires tmux 3.7; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":64,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.BackspaceExit","product":"core","slug":"tmux-commandpromptrequest-backspaceexit"},{"id":"tmux.CommandPromptRequest.NoFreeze","name":"NoFreeze","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"NoFreeze leaves the pane unfrozen and requires tmux 3.7; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.NoFreeze","product":"core","slug":"tmux-commandpromptrequest-nofreeze"},{"id":"tmux.MenuItem","name":"MenuItem","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"MenuItem is one display-menu entry. Its zero value is a separator. A named item always contributes its name, key, and command to tmux, including empty key or command strings."},"source":{"file":"tmux/server_interactive.go","line":73,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuItem","product":"core","slug":"tmux-menuitem"},{"id":"tmux.MenuItem.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.MenuItem","signatures":[],"type":"string","doc":{"summary":"Name is the visible item name; an empty name makes this item a separator."},"source":{"file":"tmux/server_interactive.go","line":75,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuItem.Name","product":"core","slug":"tmux-menuitem-name"},{"id":"tmux.MenuItem.Key","name":"Key","kind":"attribute","modifiers":[],"parent":"tmux.MenuItem","signatures":[],"type":"string","doc":{"summary":"Key is the optional shortcut for a named item."},"source":{"file":"tmux/server_interactive.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuItem.Key","product":"core","slug":"tmux-menuitem-key"},{"id":"tmux.MenuItem.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.MenuItem","signatures":[],"type":"string","doc":{"summary":"Command is the tmux command for a named item."},"source":{"file":"tmux/server_interactive.go","line":79,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuItem.Command","product":"core","slug":"tmux-menuitem-command"},{"id":"tmux.DisplayMenuRequest","name":"DisplayMenuRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"DisplayMenuRequest configures one tmux popup menu. Position and style strings retain tmux's format and symbolic-position languages verbatim. Its zero value is invalid because Items is required. All pointer fields omit their flags when nil and retain explicit empty strings; DisplayMenu copies Items before calling tmux. TargetPane and TargetClient are independent but must be stable identities when present."},"source":{"file":"tmux/server_interactive.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest","product":"core","slug":"tmux-displaymenurequest"},{"id":"tmux.DisplayMenuRequest.Items","name":"Items","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"[]MenuItem","doc":{"summary":"Items are menu rows; a zero MenuItem is a separator."},"source":{"file":"tmux/server_interactive.go","line":90,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.Items","product":"core","slug":"tmux-displaymenurequest-items"},{"id":"tmux.DisplayMenuRequest.Title","name":"Title","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"*string","doc":{"summary":"Title is the optional menu title."},"source":{"file":"tmux/server_interactive.go","line":92,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.Title","product":"core","slug":"tmux-displaymenurequest-title"},{"id":"tmux.DisplayMenuRequest.TargetPane","name":"TargetPane","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"PaneID","doc":{"summary":"TargetPane supplies pane context for format expansion."},"source":{"file":"tmux/server_interactive.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.TargetPane","product":"core","slug":"tmux-displaymenurequest-targetpane"},{"id":"tmux.DisplayMenuRequest.TargetClient","name":"TargetClient","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"ClientName","doc":{"summary":"TargetClient selects the client that renders the menu."},"source":{"file":"tmux/server_interactive.go","line":96,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.TargetClient","product":"core","slug":"tmux-displaymenurequest-targetclient"},{"id":"tmux.DisplayMenuRequest.X","name":"X","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"*string","doc":{"summary":"X is tmux's horizontal position expression."},"source":{"file":"tmux/server_interactive.go","line":98,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.X","product":"core","slug":"tmux-displaymenurequest-x"},{"id":"tmux.DisplayMenuRequest.Y","name":"Y","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"*string","doc":{"summary":"Y is tmux's vertical position expression."},"source":{"file":"tmux/server_interactive.go","line":100,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.Y","product":"core","slug":"tmux-displaymenurequest-y"},{"id":"tmux.DisplayMenuRequest.StartingChoice","name":"StartingChoice","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"*string","doc":{"summary":"StartingChoice selects the initial item and requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":103,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.StartingChoice","product":"core","slug":"tmux-displaymenurequest-startingchoice"},{"id":"tmux.DisplayMenuRequest.BorderLines","name":"BorderLines","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"*string","doc":{"summary":"BorderLines selects border glyphs and requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.BorderLines","product":"core","slug":"tmux-displaymenurequest-borderlines"},{"id":"tmux.DisplayMenuRequest.Style","name":"Style","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"*string","doc":{"summary":"Style selects menu style and requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.Style","product":"core","slug":"tmux-displaymenurequest-style"},{"id":"tmux.DisplayMenuRequest.BorderStyle","name":"BorderStyle","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"*string","doc":{"summary":"BorderStyle selects border style and requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.BorderStyle","product":"core","slug":"tmux-displaymenurequest-borderstyle"},{"id":"tmux.DisplayMenuRequest.SelectedStyle","name":"SelectedStyle","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"*string","doc":{"summary":"SelectedStyle selects highlighted-item style and requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":114,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.SelectedStyle","product":"core","slug":"tmux-displaymenurequest-selectedstyle"},{"id":"tmux.DisplayMenuRequest.Mouse","name":"Mouse","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"bool","doc":{"summary":"Mouse enables mouse selection and requires tmux 3.5; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":116,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.Mouse","product":"core","slug":"tmux-displaymenurequest-mouse"},{"id":"tmux.DisplayMenuRequest.StayOpen","name":"StayOpen","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"bool","doc":{"summary":"StayOpen keeps the menu visible after selecting an item."},"source":{"file":"tmux/server_interactive.go","line":118,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.StayOpen","product":"core","slug":"tmux-displaymenurequest-stayopen"},{"id":"tmux.Server.ConfirmBefore","name":"ConfirmBefore","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ConfirmBefore(ctx context.Context, request ConfirmBeforeRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ConfirmBeforeRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"ConfirmBefore asks tmux to display a background confirmation prompt and returns after tmux accepts it, not after the user answers or Command runs. It requires tmux 3.3. ConfirmKey and DefaultYes require tmux 3.4 and follow [UnsupportedPolicy]. Completed stderr is an error; cancellation does not prove prompt delivery or later command execution did not occur."},"source":{"file":"tmux/server_interactive.go","line":183,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ConfirmBefore","product":"core","slug":"tmux-server-confirmbefore"},{"id":"tmux.Server.CommandPrompt","name":"CommandPrompt","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) CommandPrompt(ctx context.Context, request CommandPromptRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"CommandPromptRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"CommandPrompt asks tmux to display a background command prompt and returns after tmux accepts it, not after input is submitted or Template runs. It requires tmux 3.3. Later flags follow [UnsupportedPolicy]. Completed stderr is an error; cancellation does not prove prompt delivery or later execution."},"source":{"file":"tmux/server_interactive.go","line":231,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.CommandPrompt","product":"core","slug":"tmux-server-commandprompt"},{"id":"tmux.Server.DisplayMenu","name":"DisplayMenu","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) DisplayMenu(ctx context.Context, request DisplayMenuRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"DisplayMenuRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"DisplayMenu displays a menu and waits until tmux closes it. The target client must own a TTY; control-mode clients cannot render menu overlays. It returns no selected value and does not establish whether an item command ran. Unsupported optional flags follow [UnsupportedPolicy]. Completed stderr is an error, and cancellation does not prove menu delivery or a selected command's effect."},"source":{"file":"tmux/server_interactive.go","line":311,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.DisplayMenu","product":"core","slug":"tmux-server-displaymenu"},{"id":"tmux.BindKeyRequest","name":"BindKeyRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"BindKeyRequest configures one tmux key binding. Its zero value is invalid because Key is required; nil KeyTable and Note omit their flags while pointers to empty strings are explicit."},"source":{"file":"tmux/server_keys.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BindKeyRequest","product":"core","slug":"tmux-bindkeyrequest"},{"id":"tmux.BindKeyRequest.Key","name":"Key","kind":"attribute","modifiers":[],"parent":"tmux.BindKeyRequest","signatures":[],"type":"string","doc":{"summary":"Key is the required tmux key notation to bind."},"source":{"file":"tmux/server_keys.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BindKeyRequest.Key","product":"core","slug":"tmux-bindkeyrequest-key"},{"id":"tmux.BindKeyRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.BindKeyRequest","signatures":[],"type":"string","doc":{"summary":"Command is the tmux command; an empty command is a no-op binding on tmux 3.3+."},"source":{"file":"tmux/server_keys.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BindKeyRequest.Command","product":"core","slug":"tmux-bindkeyrequest-command"},{"id":"tmux.BindKeyRequest.KeyTable","name":"KeyTable","kind":"attribute","modifiers":[],"parent":"tmux.BindKeyRequest","signatures":[],"type":"*string","doc":{"summary":"KeyTable selects a table, or nil for tmux's default table."},"source":{"file":"tmux/server_keys.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BindKeyRequest.KeyTable","product":"core","slug":"tmux-bindkeyrequest-keytable"},{"id":"tmux.BindKeyRequest.Note","name":"Note","kind":"attribute","modifiers":[],"parent":"tmux.BindKeyRequest","signatures":[],"type":"*string","doc":{"summary":"Note supplies tmux's optional binding note."},"source":{"file":"tmux/server_keys.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BindKeyRequest.Note","product":"core","slug":"tmux-bindkeyrequest-note"},{"id":"tmux.BindKeyRequest.Repeat","name":"Repeat","kind":"attribute","modifiers":[],"parent":"tmux.BindKeyRequest","signatures":[],"type":"bool","doc":{"summary":"Repeat makes the binding repeatable."},"source":{"file":"tmux/server_keys.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BindKeyRequest.Repeat","product":"core","slug":"tmux-bindkeyrequest-repeat"},{"id":"tmux.UnbindKeyRequest","name":"UnbindKeyRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"UnbindKeyRequest selects one key or an entire key table to unbind. Exactly one of Key and AllKeys must be set."},"source":{"file":"tmux/server_keys.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnbindKeyRequest","product":"core","slug":"tmux-unbindkeyrequest"},{"id":"tmux.UnbindKeyRequest.Key","name":"Key","kind":"attribute","modifiers":[],"parent":"tmux.UnbindKeyRequest","signatures":[],"type":"*string","doc":{"summary":"Key selects one binding; it is mutually exclusive with AllKeys."},"source":{"file":"tmux/server_keys.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnbindKeyRequest.Key","product":"core","slug":"tmux-unbindkeyrequest-key"},{"id":"tmux.UnbindKeyRequest.KeyTable","name":"KeyTable","kind":"attribute","modifiers":[],"parent":"tmux.UnbindKeyRequest","signatures":[],"type":"*string","doc":{"summary":"KeyTable limits removal to one table; nil selects tmux's default table."},"source":{"file":"tmux/server_keys.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnbindKeyRequest.KeyTable","product":"core","slug":"tmux-unbindkeyrequest-keytable"},{"id":"tmux.UnbindKeyRequest.AllKeys","name":"AllKeys","kind":"attribute","modifiers":[],"parent":"tmux.UnbindKeyRequest","signatures":[],"type":"bool","doc":{"summary":"AllKeys removes every binding in KeyTable and is mutually exclusive with Key."},"source":{"file":"tmux/server_keys.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnbindKeyRequest.AllKeys","product":"core","slug":"tmux-unbindkeyrequest-allkeys"},{"id":"tmux.UnbindKeyRequest.Quiet","name":"Quiet","kind":"attribute","modifiers":[],"parent":"tmux.UnbindKeyRequest","signatures":[],"type":"bool","doc":{"summary":"Quiet suppresses tmux's missing-binding diagnostic."},"source":{"file":"tmux/server_keys.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnbindKeyRequest.Quiet","product":"core","slug":"tmux-unbindkeyrequest-quiet"},{"id":"tmux.ListKeysRequest","name":"ListKeysRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ListKeysRequest configures raw key-binding output. Its zero value selects tmux's default table and format; nil fields omit flags while explicit empty pointers are passed to tmux."},"source":{"file":"tmux/server_keys.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ListKeysRequest","product":"core","slug":"tmux-listkeysrequest"},{"id":"tmux.ListKeysRequest.KeyTable","name":"KeyTable","kind":"attribute","modifiers":[],"parent":"tmux.ListKeysRequest","signatures":[],"type":"*string","doc":{"summary":"KeyTable limits output to one key table."},"source":{"file":"tmux/server_keys.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ListKeysRequest.KeyTable","product":"core","slug":"tmux-listkeysrequest-keytable"},{"id":"tmux.ListKeysRequest.Format","name":"Format","kind":"attribute","modifiers":[],"parent":"tmux.ListKeysRequest","signatures":[],"type":"*string","doc":{"summary":"Format selects output format and requires tmux 3.7; see UnsupportedPolicy."},"source":{"file":"tmux/server_keys.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ListKeysRequest.Format","product":"core","slug":"tmux-listkeysrequest-format"},{"id":"tmux.ListCommandsRequest","name":"ListCommandsRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ListCommandsRequest optionally limits output to one tmux command or alias. Nil CommandName lists all commands; a pointer to an empty name is explicit."},"source":{"file":"tmux/server_keys.go","line":51,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ListCommandsRequest","product":"core","slug":"tmux-listcommandsrequest"},{"id":"tmux.ListCommandsRequest.CommandName","name":"CommandName","kind":"attribute","modifiers":[],"parent":"tmux.ListCommandsRequest","signatures":[],"type":"*string","doc":{"summary":"CommandName optionally selects one command or alias."},"source":{"file":"tmux/server_keys.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ListCommandsRequest.CommandName","product":"core","slug":"tmux-listcommandsrequest-commandname"},{"id":"tmux.ShowMessagesRequest","name":"ShowMessagesRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ShowMessagesRequest selects the target and server information to print. Terminals and Jobs are independent and may both be enabled."},"source":{"file":"tmux/server_keys.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ShowMessagesRequest","product":"core","slug":"tmux-showmessagesrequest"},{"id":"tmux.ShowMessagesRequest.TargetClient","name":"TargetClient","kind":"attribute","modifiers":[],"parent":"tmux.ShowMessagesRequest","signatures":[],"type":"ClientName","doc":{"summary":"TargetClient selects a stable client; zero selects tmux's current client."},"source":{"file":"tmux/server_keys.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ShowMessagesRequest.TargetClient","product":"core","slug":"tmux-showmessagesrequest-targetclient"},{"id":"tmux.ShowMessagesRequest.Terminals","name":"Terminals","kind":"attribute","modifiers":[],"parent":"tmux.ShowMessagesRequest","signatures":[],"type":"bool","doc":{"summary":"Terminals includes terminal capability information."},"source":{"file":"tmux/server_keys.go","line":62,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ShowMessagesRequest.Terminals","product":"core","slug":"tmux-showmessagesrequest-terminals"},{"id":"tmux.ShowMessagesRequest.Jobs","name":"Jobs","kind":"attribute","modifiers":[],"parent":"tmux.ShowMessagesRequest","signatures":[],"type":"bool","doc":{"summary":"Jobs includes job status information."},"source":{"file":"tmux/server_keys.go","line":64,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ShowMessagesRequest.Jobs","product":"core","slug":"tmux-showmessagesrequest-jobs"},{"id":"tmux.Server.BindKey","name":"BindKey","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) BindKey(ctx context.Context, request BindKeyRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"BindKeyRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"BindKey binds Key to Command in a tmux key table. An empty Command creates a no-op binding on tmux 3.3 or newer; tmux 3.2a reports its upstream error. It mutates the table; cancellation does not prove that tmux did not bind Key."},"source":{"file":"tmux/server_keys.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.BindKey","product":"core","slug":"tmux-server-bindkey"},{"id":"tmux.Server.UnbindKey","name":"UnbindKey","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) UnbindKey(ctx context.Context, request UnbindKeyRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"UnbindKeyRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"UnbindKey removes one key binding or every binding in a key table. Key and AllKeys must select exactly one target; cancellation does not prove removal did not occur."},"source":{"file":"tmux/server_keys.go","line":103,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.UnbindKey","product":"core","slug":"tmux-server-unbindkey"},{"id":"tmux.Server.ListKeys","name":"ListKeys","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ListKeys(\n\tctx context.Context,\n\trequest ListKeysRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ListKeysRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"([]string, error)"}],"doc":{"summary":"ListKeys returns an owned snapshot of raw tmux key-binding lines. Format requires tmux 3.7 and follows [UnsupportedPolicy]. tmux 3.7 through 3.7c send a table's sole matching binding to client status and leave stdout empty; this method preserves that upstream and Python behavior. Listing failures remain errors.","body":"On an unused socket, tmux starts an empty server to answer. With the default\nexit-empty setting, that server exits at once and leaves its socket file."},"source":{"file":"tmux/server_keys.go","line":149,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ListKeys","product":"core","slug":"tmux-server-listkeys"},{"id":"tmux.Server.ListCommands","name":"ListCommands","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ListCommands(\n\tctx context.Context,\n\trequest ListCommandsRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ListCommandsRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"([]string, error)"}],"doc":{"summary":"ListCommands returns an owned snapshot of raw tmux command-description lines. A list failure is returned rather than answered with no rows. Like [Server.ListKeys], it answers on a socket holding no server."},"source":{"file":"tmux/server_keys.go","line":189,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ListCommands","product":"core","slug":"tmux-server-listcommands"},{"id":"tmux.Server.ListClients","name":"ListClients","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ListClients(ctx context.Context) ([]string, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"([]string, error)"}],"doc":{"summary":"ListClients returns an owned snapshot of raw tmux client-description lines, the text tmux itself prints. A list failure is returned rather than answered with no rows. [Server.Clients] answers the same question as typed [Client] records and is what most callers want."},"source":{"file":"tmux/server_keys.go","line":211,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ListClients","product":"core","slug":"tmux-server-listclients"},{"id":"tmux.Server.ShowMessages","name":"ShowMessages","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ShowMessages(\n\tctx context.Context,\n\trequest ShowMessagesRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ShowMessagesRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"([]string, error)"}],"doc":{"summary":"ShowMessages returns an owned snapshot of the tmux message log, terminal capabilities, job summary, or both terminal and job summaries. A zero TargetClient selects tmux's current client; a list failure is returned rather than answered with no rows."},"source":{"file":"tmux/server_keys.go","line":218,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ShowMessages","product":"core","slug":"tmux-server-showmessages"},{"id":"tmux.Server.ValidateLayouts","name":"ValidateLayouts","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ValidateLayouts(ctx context.Context, layouts iter.Seq2[string, int]) error","params":[{"name":"ctx","type":"context.Context"},{"name":"layouts","type":"iter.Seq2[string, int]"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"ValidateLayouts checks every layout and its required pane count before any mutation. Nil and empty sequences succeed without I/O unless ctx is canceled. Empty layout strings are ignored. Other entries require at least one pane; classic trees must contain enough leaves. tmux validates JSON contents and geometry when applying the layout.","body":"Names accept unique abbreviations. Version-sensitive names query the selected\ndaemon through this server's transport; only a cold endpoint without a captured\ndaemon identity or control connection uses the configured binary's version.\nPermission, protocol, decode and cancellation errors are preserved.\nValidation errors match\n[ErrInvalidServerCommandRequest]; unavailable presets match [ErrVersionTooLow]."},"source":{"file":"tmux/server_layout.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ValidateLayouts","product":"core","slug":"tmux-server-validatelayouts"},{"id":"tmux.ErrInvalidServer","name":"ErrInvalidServer","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidServer identifies an operation on an uninitialized [Server]."},"source":{"file":"tmux/server_options.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidServer","product":"core","slug":"tmux-errinvalidserver"},{"id":"tmux.ErrInvalidServerOptions","name":"ErrInvalidServerOptions","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidServerOptions identifies a value that fails [ServerOptions] validation. Executable lookup and working-directory failures retain their own error identities."},"source":{"file":"tmux/server_options.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidServerOptions","product":"core","slug":"tmux-errinvalidserveroptions"},{"id":"tmux.ServerOptions","name":"ServerOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ServerOptions configures a [Server] without starting tmux. [NewServer] snapshots the effective environment, working directory, and executable; callers retain ownership of every supplied value."},"source":{"file":"tmux/server_options.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions","product":"core","slug":"tmux-serveroptions"},{"id":"tmux.ServerOptions.Binary","name":"Binary","kind":"attribute","modifiers":[],"parent":"tmux.ServerOptions","signatures":[],"type":"string","doc":{"summary":"Binary is the tmux executable name or path. Empty resolves tmux once through the snapshotted PATH. Relative paths resolve against the constructor's working directory. The resolved absolute path is shared by subprocess and control-mode transports."},"source":{"file":"tmux/server_options.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions.Binary","product":"core","slug":"tmux-serveroptions-binary"},{"id":"tmux.ServerOptions.SocketName","name":"SocketName","kind":"attribute","modifiers":[],"parent":"tmux.ServerOptions","signatures":[],"type":"string","doc":{"summary":"SocketName selects tmux's named socket. SocketPath takes precedence."},"source":{"file":"tmux/server_options.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions.SocketName","product":"core","slug":"tmux-serveroptions-socketname"},{"id":"tmux.ServerOptions.SocketPath","name":"SocketPath","kind":"attribute","modifiers":[],"parent":"tmux.ServerOptions","signatures":[],"type":"string","doc":{"summary":"SocketPath selects an explicit tmux socket path."},"source":{"file":"tmux/server_options.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions.SocketPath","product":"core","slug":"tmux-serveroptions-socketpath"},{"id":"tmux.ServerOptions.ConfigFile","name":"ConfigFile","kind":"attribute","modifiers":[],"parent":"tmux.ServerOptions","signatures":[],"type":"string","doc":{"summary":"ConfigFile selects an exact tmux configuration file. Empty lets tmux read its default configuration, so a program inherits whatever the user running it has configured: a base-index other than zero, a prompt that appears in captured pane text, hooks that fire on the sessions this program creates. Point it at a file the program owns, which may be an empty one, when the tmux it drives should not depend on that."},"source":{"file":"tmux/server_options.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions.ConfigFile","product":"core","slug":"tmux-serveroptions-configfile"},{"id":"tmux.ServerOptions.Colors","name":"Colors","kind":"attribute","modifiers":[],"parent":"tmux.ServerOptions","signatures":[],"type":"ColorMode","doc":{"summary":"Colors overrides tmux's terminal color capability."},"source":{"file":"tmux/server_options.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions.Colors","product":"core","slug":"tmux-serveroptions-colors"},{"id":"tmux.ServerOptions.ProcessEnvironment","name":"ProcessEnvironment","kind":"attribute","modifiers":[],"parent":"tmux.ServerOptions","signatures":[],"type":"[]string","doc":{"summary":"ProcessEnvironment replaces the child process environment. Nil snapshots the current process environment. A non-nil empty slice supplies no caller-provided variables. Execution may add variables required by Go's target platform and a canonical TMUX_TMPDIR that freezes named or default socket selection. Duplicate names retain their last value. Entries containing NUL are rejected except on Plan 9, where NUL separates path-list elements. NewServer clones the slice."},"source":{"file":"tmux/server_options.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions.ProcessEnvironment","product":"core","slug":"tmux-serveroptions-processenvironment"},{"id":"tmux.ServerOptions.Unsupported","name":"Unsupported","kind":"attribute","modifiers":[],"parent":"tmux.ServerOptions","signatures":[],"type":"UnsupportedPolicy","doc":{"summary":"Unsupported selects what happens when a request needs an optional tmux capability the running server does not have. The zero value refuses the request; see UnsupportedPolicy."},"source":{"file":"tmux/server_options.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions.Unsupported","product":"core","slug":"tmux-serveroptions-unsupported"},{"id":"tmux.ServerOptions.WarningHandler","name":"WarningHandler","kind":"attribute","modifiers":[],"parent":"tmux.ServerOptions","signatures":[],"type":"WarningHandler","doc":{"summary":"WarningHandler receives nonfatal compatibility warnings. Nil discards warnings. See WarningHandler for delivery and concurrency semantics."},"source":{"file":"tmux/server_options.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions.WarningHandler","product":"core","slug":"tmux-serveroptions-warninghandler"},{"id":"tmux.ServerOptions.CommandObserver","name":"CommandObserver","kind":"attribute","modifiers":[],"parent":"tmux.ServerOptions","signatures":[],"type":"CommandObserver","doc":{"summary":"CommandObserver receives one record per tmux command run. Nil observes nothing. See CommandObserver for delivery and concurrency semantics."},"source":{"file":"tmux/server_options.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions.CommandObserver","product":"core","slug":"tmux-serveroptions-commandobserver"},{"id":"tmux.NewServer","name":"NewServer","kind":"function","modifiers":[],"signatures":[{"raw":"func NewServer(options ServerOptions) (Server, error)","params":[{"name":"options","type":"ServerOptions"}],"returns":"(Server, error)"}],"doc":{"summary":"NewServer validates and snapshots one tmux configuration without starting tmux. Empty socket selectors use the endpoint selected by the frozen environment.","examples":[{"lang":"console","intro":"Construct a server handle for a private socket and check that construction does not start tmux. Creating the first session starts the daemon. The temporary server is stopped even when an operation fails. Use Go 1.26.0 or newer and tmux 3.2a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-go.git libtmux-source && \\\n git -C libtmux-source checkout 6f3df55f8a41999e41225eefb3940545b834e6a2\n"},{"lang":"go","intro":"Save this dependency file as go.mod:","code":"module example.com/libtmux-api\n\ngo 1.26.0\n\nrequire github.com/libtmux/libtmux-go v0.0.0\n\nreplace github.com/libtmux/libtmux-go => ./libtmux-source\n"},{"lang":"go","intro":"Save this complete example as example_test.go. It creates a private temporary socket and stops its server before removing the directory. Cleanup failure fails the example and retains the socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-go/blob/6f3df55f8a41999e41225eefb3940545b834e6a2/tmux/api_new_server_example_test.go","code":"package tmux_test\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"time\"\n\n\t\"github.com/libtmux/libtmux-go/tmux\"\n)\n\n// Construct a server handle for a private socket and check that construction\n// does not start tmux. Creating the first session starts the daemon.\n// The temporary server is stopped even when an operation fails.\nfunc ExampleNewServer_complete() {\n\trun := func() (runErr error) {\n\t\tdirectory, err := os.MkdirTemp(\"\", \"libtmux-go-api-\")\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create socket directory: %w\", err)\n\t\t}\n\t\tserver, err := tmux.NewServer(tmux.ServerOptions{\n\t\t\tSocketPath: filepath.Join(directory, \"tmux.sock\"),\n\t\t\tConfigFile: \"/dev/null\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errors.Join(err, os.RemoveAll(directory))\n\t\t}\n\t\tdefer func() {\n\t\t\t// Cleanup has its own deadline because the operation may have timed out.\n\t\t\tcleanup, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\t\t\tdefer cancel()\n\t\t\tif err := server.Kill(cleanup); err != nil && !errors.Is(err, tmux.ErrNoServer) {\n\t\t\t\trunErr = errors.Join(runErr, fmt.Errorf(\"stop server at %s: %w\", directory, err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\trunErr = errors.Join(runErr, os.RemoveAll(directory))\n\t\t}()\n\t\tctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)\n\t\tdefer cancel()\n\t\tif err := server.CheckAlive(ctx); !errors.Is(err, tmux.ErrNoServer) {\n\t\t\treturn errors.Join(errors.New(\"expected no daemon before session creation\"), err)\n\t\t}\n\t\tfmt.Println(\"construction started tmux: false\")\n\t\t_, err = server.NewSession(ctx, tmux.NewSessionRequest{\n\t\t\tName: \"work\", WindowName: \"editor\", Command: \"cat\", Width: 100, Height: 30,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create session: %w\", err)\n\t\t}\n\t\tif err := server.CheckAlive(ctx); err != nil {\n\t\t\treturn fmt.Errorf(\"check created server: %w\", err)\n\t\t}\n\t\tfmt.Println(\"session started tmux: true\")\n\t\treturn nil\n\t}\n\tif err := run(); err != nil {\n\t\tpanic(err)\n\t}\n\t// Output:\n\t// construction started tmux: false\n\t// session started tmux: true\n}\n"},{"lang":"console","intro":"Run the saved file. Go checks the Output comment and fails on different output or an operation or cleanup error:","code":"$ GOWORK=off go test -count=1 -v example_test.go\n"}]},"source":{"file":"tmux/server_options.go","line":97,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewServer","product":"core","slug":"tmux-newserver"},{"id":"tmux.Server.WithSocketPath","name":"WithSocketPath","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) WithSocketPath(path string) (Server, error)","params":[{"name":"path","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"(Server, error)"}],"doc":{"summary":"WithSocketPath returns a server using path and the receiver's frozen executable, environment, working directory, and server-option policy. Empty clears explicit socket selectors and leaves endpoint selection to tmux. The result has fresh daemon-scoped coordination. A connection-bound receiver is rejected because its transport belongs to the original daemon."},"source":{"file":"tmux/server_options.go","line":106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.WithSocketPath","product":"core","slug":"tmux-server-withsocketpath"},{"id":"tmux.Server.WithProcessEnvironmentValue","name":"WithProcessEnvironmentValue","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) WithProcessEnvironmentValue(name, value string) (Server, error)","params":[{"name":"name","type":"string"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"(Server, error)"}],"doc":{"summary":"WithProcessEnvironmentValue returns a server whose tmux subprocesses receive name=value while preserving the receiver's frozen executable, configuration, and exact socket endpoint. It does not expose an inherited environment snapshot through [Server.ProcessEnvironment]. The result shares daemon-scoped coordination with the receiver. A connection-bound receiver is rejected."},"source":{"file":"tmux/server_options.go","line":134,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.WithProcessEnvironmentValue","product":"core","slug":"tmux-server-withprocessenvironmentvalue"},{"id":"tmux.ErrVersionQuery","name":"ErrVersionQuery","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrVersionQuery identifies a tmux version probe that produced no usable version. It is matched by errors.Is for VersionQueryError."},"source":{"file":"tmux/server_version.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrVersionQuery","product":"core","slug":"tmux-errversionquery"},{"id":"tmux.ErrVersionTooLow","name":"ErrVersionTooLow","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrVersionTooLow identifies a tmux version below a required feature level. It is matched by errors.Is for VersionTooLowError."},"source":{"file":"tmux/server_version.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrVersionTooLow","product":"core","slug":"tmux-errversiontoolow"},{"id":"tmux.VersionQueryError","name":"VersionQueryError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"VersionQueryError reports an unsuccessful tmux version probe. It matches [ErrVersionQuery] through errors.Is; callers can recover its fields with errors.As. Library-created errors retain only the exit code; command arguments and output are omitted, although callers may construct values with other contents."},"source":{"file":"tmux/server_version.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionQueryError","product":"core","slug":"tmux-versionqueryerror"},{"id":"tmux.VersionQueryError.Result","name":"Result","kind":"attribute","modifiers":[],"parent":"tmux.VersionQueryError","signatures":[],"type":"CommandResult","doc":{"summary":"Result contains the library-created error's exit code and no diagnostics."},"source":{"file":"tmux/server_version.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionQueryError.Result","product":"core","slug":"tmux-versionqueryerror-result"},{"id":"tmux.VersionQueryError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.VersionQueryError","signatures":[],"type":"string","doc":{"summary":"Reason describes a malformed successful probe result, when applicable."},"source":{"file":"tmux/server_version.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionQueryError.Reason","product":"core","slug":"tmux-versionqueryerror-reason"},{"id":"tmux.VersionQueryError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.VersionQueryError","signatures":[{"raw":"func (e *VersionQueryError) Error() string","params":[],"receiver":{"name":"e","type":"*VersionQueryError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/server_version.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionQueryError.Error","product":"core","slug":"tmux-versionqueryerror-error"},{"id":"tmux.VersionQueryError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.VersionQueryError","signatures":[{"raw":"func (e *VersionQueryError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*VersionQueryError"},"returns":"error"}],"doc":{"summary":"Unwrap makes VersionQueryError compatible with ErrVersionQuery."},"source":{"file":"tmux/server_version.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionQueryError.Unwrap","product":"core","slug":"tmux-versionqueryerror-unwrap"},{"id":"tmux.VersionTooLowError","name":"VersionTooLowError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"VersionTooLowError reports the installed and required tmux feature levels. It matches [ErrVersionTooLow] through errors.Is; callers can recover its fields with errors.As.","body":"Subcommand and Feature are set when one optional capability within a command\nwas refused rather than the command itself, which is what\n[UnsupportedPolicy] governs."},"source":{"file":"tmux/server_version.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionTooLowError","product":"core","slug":"tmux-versiontoolowerror"},{"id":"tmux.VersionTooLowError.Current","name":"Current","kind":"attribute","modifiers":[],"parent":"tmux.VersionTooLowError","signatures":[],"type":"Version","doc":{"summary":"Current is the installed tmux feature level."},"source":{"file":"tmux/server_version.go","line":79,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionTooLowError.Current","product":"core","slug":"tmux-versiontoolowerror-current"},{"id":"tmux.VersionTooLowError.Minimum","name":"Minimum","kind":"attribute","modifiers":[],"parent":"tmux.VersionTooLowError","signatures":[],"type":"Version","doc":{"summary":"Minimum is the requested minimum feature level."},"source":{"file":"tmux/server_version.go","line":81,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionTooLowError.Minimum","product":"core","slug":"tmux-versiontoolowerror-minimum"},{"id":"tmux.VersionTooLowError.Subcommand","name":"Subcommand","kind":"attribute","modifiers":[],"parent":"tmux.VersionTooLowError","signatures":[],"type":"string","doc":{"summary":"Subcommand names the tmux subcommand whose optional capability was refused. Empty when the command itself is below its floor."},"source":{"file":"tmux/server_version.go","line":84,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionTooLowError.Subcommand","product":"core","slug":"tmux-versiontoolowerror-subcommand"},{"id":"tmux.VersionTooLowError.Feature","name":"Feature","kind":"attribute","modifiers":[],"parent":"tmux.VersionTooLowError","signatures":[],"type":"string","doc":{"summary":"Feature names the refused optional capability. Empty when the command itself is below its floor."},"source":{"file":"tmux/server_version.go","line":87,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionTooLowError.Feature","product":"core","slug":"tmux-versiontoolowerror-feature"},{"id":"tmux.VersionTooLowError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.VersionTooLowError","signatures":[{"raw":"func (e *VersionTooLowError) Error() string","params":[],"receiver":{"name":"e","type":"*VersionTooLowError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/server_version.go","line":91,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionTooLowError.Error","product":"core","slug":"tmux-versiontoolowerror-error"},{"id":"tmux.VersionTooLowError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.VersionTooLowError","signatures":[{"raw":"func (e *VersionTooLowError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*VersionTooLowError"},"returns":"error"}],"doc":{"summary":"Unwrap makes VersionTooLowError compatible with ErrVersionTooLow."},"source":{"file":"tmux/server_version.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionTooLowError.Unwrap","product":"core","slug":"tmux-versiontoolowerror-unwrap"},{"id":"tmux.Server.Version","name":"Version","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Version(ctx context.Context) (Version, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"(Version, error)"}],"doc":{"summary":"Version returns the configured tmux binary's cached version. Failed probes are not cached. A waiting caller can abandon an in-flight shared probe when ctx ends without canceling the caller that owns the probe."},"source":{"file":"tmux/server_version.go","line":152,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Version","product":"core","slug":"tmux-server-version"},{"id":"tmux.Server.RefreshVersion","name":"RefreshVersion","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) RefreshVersion(ctx context.Context) (Version, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"(Version, error)"}],"doc":{"summary":"RefreshVersion invalidates the cached version and probes the binary again. Canceling ctx stops this call's wait; it does not establish whether a probe reached the configured binary."},"source":{"file":"tmux/server_version.go","line":159,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.RefreshVersion","product":"core","slug":"tmux-server-refreshversion"},{"id":"tmux.Server.RequireVersion","name":"RequireVersion","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) RequireVersion(ctx context.Context, minimum Version) error","params":[{"name":"ctx","type":"context.Context"},{"name":"minimum","type":"Version"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"RequireVersion returns a [VersionTooLowError] matching [ErrVersionTooLow] when the configured binary is older than minimum."},"source":{"file":"tmux/server_version.go","line":165,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.RequireVersion","product":"core","slug":"tmux-server-requireversion"},{"id":"tmux.ErrSessionExists","name":"ErrSessionExists","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrSessionExists identifies a named session that was not replaced."},"source":{"file":"tmux/session_lifecycle.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrSessionExists","product":"core","slug":"tmux-errsessionexists"},{"id":"tmux.HasSessionRequest","name":"HasSessionRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"HasSessionRequest selects exact or tmux-pattern session matching on tmux 3.2a or later. Its zero value is invalid because Target is required."},"source":{"file":"tmux/session_lifecycle.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.HasSessionRequest","product":"core","slug":"tmux-hassessionrequest"},{"id":"tmux.HasSessionRequest.Target","name":"Target","kind":"attribute","modifiers":[],"parent":"tmux.HasSessionRequest","signatures":[],"type":"string","doc":{"summary":"Target is the required session name or tmux session pattern."},"source":{"file":"tmux/session_lifecycle.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.HasSessionRequest.Target","product":"core","slug":"tmux-hassessionrequest-target"},{"id":"tmux.HasSessionRequest.Pattern","name":"Pattern","kind":"attribute","modifiers":[],"parent":"tmux.HasSessionRequest","signatures":[],"type":"bool","doc":{"summary":"Pattern lets tmux interpret Target as a pattern; false requires an exact session name."},"source":{"file":"tmux/session_lifecycle.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.HasSessionRequest.Pattern","product":"core","slug":"tmux-hassessionrequest-pattern"},{"id":"tmux.NewSessionRequest","name":"NewSessionRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"NewSessionRequest configures session creation. [Server.NewSession] creates a detached session; [Server.NewSessionConnection] creates one attached to its first control-mode lane. Its zero value uses tmux defaults. Width and Height are either zero or 1 through 65535; KillExisting requires Name. KillExisting may remove a session before a later creation failure.","body":"[Server.NewSession] copies Environment before validation and retains no map\nstorage; concurrent mutation during the copy is unsafe. Foreground-only tmux\nflags are not exposed."},"source":{"file":"tmux/session_lifecycle.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSessionRequest","product":"core","slug":"tmux-newsessionrequest"},{"id":"tmux.NewSessionRequest.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.NewSessionRequest","signatures":[],"type":"string","doc":{"summary":"Name selects the new session name; empty lets tmux generate one."},"source":{"file":"tmux/session_lifecycle.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSessionRequest.Name","product":"core","slug":"tmux-newsessionrequest-name"},{"id":"tmux.NewSessionRequest.KillExisting","name":"KillExisting","kind":"attribute","modifiers":[],"parent":"tmux.NewSessionRequest","signatures":[],"type":"bool","doc":{"summary":"KillExisting removes an existing session named Name before creation."},"source":{"file":"tmux/session_lifecycle.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSessionRequest.KillExisting","product":"core","slug":"tmux-newsessionrequest-killexisting"},{"id":"tmux.NewSessionRequest.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"tmux.NewSessionRequest","signatures":[],"type":"string","doc":{"summary":"StartDirectory expands ~ and ~/... for the current user. Named-user forms such as ~other are rejected; empty inherits tmux's default."},"source":{"file":"tmux/session_lifecycle.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSessionRequest.StartDirectory","product":"core","slug":"tmux-newsessionrequest-startdirectory"},{"id":"tmux.NewSessionRequest.WindowName","name":"WindowName","kind":"attribute","modifiers":[],"parent":"tmux.NewSessionRequest","signatures":[],"type":"string","doc":{"summary":"WindowName names the initial window; empty lets tmux choose."},"source":{"file":"tmux/session_lifecycle.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSessionRequest.WindowName","product":"core","slug":"tmux-newsessionrequest-windowname"},{"id":"tmux.NewSessionRequest.Width","name":"Width","kind":"attribute","modifiers":[],"parent":"tmux.NewSessionRequest","signatures":[],"type":"int","doc":{"summary":"Width sets the detached session width; zero lets tmux choose."},"source":{"file":"tmux/session_lifecycle.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSessionRequest.Width","product":"core","slug":"tmux-newsessionrequest-width"},{"id":"tmux.NewSessionRequest.Height","name":"Height","kind":"attribute","modifiers":[],"parent":"tmux.NewSessionRequest","signatures":[],"type":"int","doc":{"summary":"Height sets the detached session height; zero lets tmux choose."},"source":{"file":"tmux/session_lifecycle.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSessionRequest.Height","product":"core","slug":"tmux-newsessionrequest-height"},{"id":"tmux.NewSessionRequest.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"tmux.NewSessionRequest","signatures":[],"type":"map[string]string","doc":{"summary":"Environment is emitted in lexically sorted key order. The map is not retained; nil and an empty map both add no entries."},"source":{"file":"tmux/session_lifecycle.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSessionRequest.Environment","product":"core","slug":"tmux-newsessionrequest-environment"},{"id":"tmux.NewSessionRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.NewSessionRequest","signatures":[],"type":"string","doc":{"summary":"Command starts the initial pane with this shell command; empty uses tmux's default command."},"source":{"file":"tmux/session_lifecycle.go","line":55,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSessionRequest.Command","product":"core","slug":"tmux-newsessionrequest-command"},{"id":"tmux.Server.HasSession","name":"HasSession","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) HasSession(ctx context.Context, request HasSessionRequest) (bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"HasSessionRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"(bool, error)"}],"doc":{"summary":"HasSession reports whether Target selects a session. With Pattern false it compares session names exactly; with Pattern true, tmux may resolve IDs, client TTYs, unique prefixes, or globs. Pattern-mode completed nonzero exits are misses. Exact-name lookup treats [ErrNoServer] as a miss and returns other failures.","body":"Exact-name lookup lists sessions because tmux's exact-match marker still\nresolves identifiers and client TTYs."},"source":{"file":"tmux/session_lifecycle.go","line":128,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.HasSession","product":"core","slug":"tmux-server-hassession"},{"id":"tmux.Server.NewSession","name":"NewSession","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) NewSession(ctx context.Context, request NewSessionRequest) (Session, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"NewSessionRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"(Session, error)"}],"doc":{"summary":"NewSession creates a detached session, then returns a newly materialized [Session]. It never changes client focus. KillExisting is not rolled back; transport and context failures may be delivery-ambiguous.","body":"The returned record has unmaterialized [Session.Windows] and [Session.Panes]\nrelations. Use the resolvers or [Server.Snapshot] when relations are needed.\n\nIf tmux reports an ID before a transport or refresh failure, the returned\npartial Session contains its [Server] and [SessionID]. Other failures return zero.","examples":[{"lang":"console","intro":"Create a detached session named work with an editor window running cat. A second creation with the same name returns ErrSessionExists. Creation returns a session record without captured window relations; use a live lookup or a snapshot when those relations are needed. Use Go 1.26.0 or newer and tmux 3.2a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-go.git libtmux-source && \\\n git -C libtmux-source checkout 6f3df55f8a41999e41225eefb3940545b834e6a2\n"},{"lang":"go","intro":"Save this dependency file as go.mod:","code":"module example.com/libtmux-api\n\ngo 1.26.0\n\nrequire github.com/libtmux/libtmux-go v0.0.0\n\nreplace github.com/libtmux/libtmux-go => ./libtmux-source\n"},{"lang":"go","intro":"Save this complete example as example_test.go. It creates a private temporary socket and stops its server before removing the directory. Cleanup failure fails the example and retains the socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-go/blob/6f3df55f8a41999e41225eefb3940545b834e6a2/tmux/api_server_new_session_example_test.go","code":"package tmux_test\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"time\"\n\n\t\"github.com/libtmux/libtmux-go/tmux\"\n)\n\n// Create a detached session named work with an editor window running cat.\n// A second creation with the same name returns ErrSessionExists. Creation\n// returns a session record without captured window relations; use a live\n// lookup or a snapshot when those relations are needed.\nfunc ExampleServer_NewSession_complete() {\n\trun := func() (runErr error) {\n\t\tdirectory, err := os.MkdirTemp(\"\", \"libtmux-go-api-\")\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create socket directory: %w\", err)\n\t\t}\n\t\tserver, err := tmux.NewServer(tmux.ServerOptions{\n\t\t\tSocketPath: filepath.Join(directory, \"tmux.sock\"),\n\t\t\tConfigFile: \"/dev/null\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errors.Join(err, os.RemoveAll(directory))\n\t\t}\n\t\tdefer func() {\n\t\t\t// Cleanup has its own deadline because the operation may have timed out.\n\t\t\tcleanup, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\t\t\tdefer cancel()\n\t\t\tif err := server.Kill(cleanup); err != nil && !errors.Is(err, tmux.ErrNoServer) {\n\t\t\t\trunErr = errors.Join(runErr, fmt.Errorf(\"stop server at %s: %w\", directory, err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\trunErr = errors.Join(runErr, os.RemoveAll(directory))\n\t\t}()\n\t\tctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)\n\t\tdefer cancel()\n\t\tsession, err := server.NewSession(ctx, tmux.NewSessionRequest{\n\t\t\tName: \"work\", WindowName: \"editor\", Command: \"cat\", Width: 100, Height: 30,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create session: %w\", err)\n\t\t}\n\t\tname, ok := session.Name()\n\t\tif !ok {\n\t\t\treturn errors.New(\"created session has no name\")\n\t\t}\n\t\tfmt.Println(\"session:\", name)\n\t\t_, relations := session.Windows()\n\t\tfmt.Println(\"window relations captured:\", relations)\n\t\t_, err = server.NewSession(ctx, tmux.NewSessionRequest{Name: \"work\", Command: \"cat\"})\n\t\tif !errors.Is(err, tmux.ErrSessionExists) {\n\t\t\treturn errors.Join(errors.New(\"expected duplicate session error\"), err)\n\t\t}\n\t\tfmt.Println(\"duplicate rejected: true\")\n\t\treturn nil\n\t}\n\tif err := run(); err != nil {\n\t\tpanic(err)\n\t}\n\t// Output:\n\t// session: work\n\t// window relations captured: false\n\t// duplicate rejected: true\n}\n"},{"lang":"console","intro":"Run the saved file. Go checks the Output comment and fails on different output or an operation or cleanup error:","code":"$ GOWORK=off go test -count=1 -v example_test.go\n"}]},"source":{"file":"tmux/session_lifecycle.go","line":184,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.NewSession","product":"core","slug":"tmux-server-newsession"},{"id":"tmux.Session.Rename","name":"Rename","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Rename(ctx context.Context, name string) (Session, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"(Session, error)"}],"doc":{"summary":"Rename changes the receiver session's name and returns a canonical freshly materialized [Session]. If the command succeeds but refresh fails, it returns the receiver with that error. A transport or context error can be delivery-ambiguous; no rollback is attempted. Invalid names are rejected before execution and match [ErrInvalidRequest]."},"source":{"file":"tmux/session_lifecycle.go","line":261,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Rename","product":"core","slug":"tmux-session-rename"},{"id":"tmux.ValidateSessionName","name":"ValidateSessionName","kind":"function","modifiers":[],"signatures":[{"raw":"func ValidateSessionName(name string) error","params":[{"name":"name","type":"string"}],"returns":"error"}],"doc":{"summary":"ValidateSessionName reports whether name can be used as a tmux session name. Empty names, the target delimiters '.' and ':', control characters and invalid UTF-8 are rejected."},"source":{"file":"tmux/session_lifecycle.go","line":310,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ValidateSessionName","product":"core","slug":"tmux-validatesessionname"},{"id":"tmux.SelectWindowRequest","name":"SelectWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SelectWindowRequest selects one winlink in a [Session] on tmux 3.2a or later. Its zero value is invalid: exactly one of WindowID and Index is required. That mutual exclusion, stable-ID syntax, and a nonnegative Index are validated before execution. Index is read during the call and is not retained; nil omits it, a nonnil pointer is explicit, and callers must not mutate it concurrently."},"source":{"file":"tmux/session_navigation.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SelectWindowRequest","product":"core","slug":"tmux-selectwindowrequest"},{"id":"tmux.SelectWindowRequest.WindowID","name":"WindowID","kind":"attribute","modifiers":[],"parent":"tmux.SelectWindowRequest","signatures":[],"type":"WindowID","doc":{"summary":"WindowID selects a stable window linked into the receiver session."},"source":{"file":"tmux/session_navigation.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SelectWindowRequest.WindowID","product":"core","slug":"tmux-selectwindowrequest-windowid"},{"id":"tmux.SelectWindowRequest.Index","name":"Index","kind":"attribute","modifiers":[],"parent":"tmux.SelectWindowRequest","signatures":[],"type":"*int","doc":{"summary":"Index selects a nonnegative winlink index in the receiver session."},"source":{"file":"tmux/session_navigation.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SelectWindowRequest.Index","product":"core","slug":"tmux-selectwindowrequest-index"},{"id":"tmux.Session.LastWindow","name":"LastWindow","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) LastWindow(ctx context.Context) (Window, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"(Window, error)"}],"doc":{"summary":"LastWindow makes the receiver session's previously selected winlink current and returns that freshly materialized session-specific [Window]. The selection is session-scoped; it does not promise focus for clients attached to other sessions. A transport or context error can be delivery-ambiguous and no rollback is attempted. Command or refresh failure returns a zero Window because this navigation operation cannot identify the selected view reliably without refresh."},"source":{"file":"tmux/session_navigation.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.LastWindow","product":"core","slug":"tmux-session-lastwindow"},{"id":"tmux.Session.NextWindow","name":"NextWindow","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) NextWindow(ctx context.Context) (Window, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"(Window, error)"}],"doc":{"summary":"NextWindow makes the next winlink current in the receiver session and returns that freshly materialized session-specific [Window]. The selection is session-scoped; it does not promise focus for clients attached to other sessions. A transport or context error can be delivery-ambiguous and no rollback is attempted. Command or refresh failure returns a zero Window."},"source":{"file":"tmux/session_navigation.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.NextWindow","product":"core","slug":"tmux-session-nextwindow"},{"id":"tmux.Session.PreviousWindow","name":"PreviousWindow","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) PreviousWindow(ctx context.Context) (Window, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"(Window, error)"}],"doc":{"summary":"PreviousWindow makes the previous winlink current in the receiver session and returns that freshly materialized session-specific [Window]. The selection is session-scoped; it does not promise focus for clients attached to other sessions. A transport or context error can be delivery-ambiguous and no rollback is attempted. Command or refresh failure returns a zero Window."},"source":{"file":"tmux/session_navigation.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.PreviousWindow","product":"core","slug":"tmux-session-previouswindow"},{"id":"tmux.Session.SelectWindow","name":"SelectWindow","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SelectWindow(\n\tctx context.Context,\n\trequest SelectWindowRequest,\n) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SelectWindowRequest"}],"receiver":{"name":"s","type":"Session"},"returns":"(Window, error)"}],"doc":{"summary":"SelectWindow makes one winlink current in the receiver session and returns that freshly materialized session-specific [Window]. WindowID is combined with the receiver SessionID, because a WindowID alone does not distinguish linked views. The selection is session-scoped; it does not promise focus for clients attached to other sessions.","body":"Command or refresh failures return zero because the selected view cannot be\nidentified without refresh. Transport errors are delivery-ambiguous."},"source":{"file":"tmux/session_navigation.go","line":59,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SelectWindow","product":"core","slug":"tmux-session-selectwindow"},{"id":"tmux.RunOptions","name":"RunOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"RunOptions configures [Session.Run] and [Session.Start]. Its zero value runs the command in a window tmux names, in the session's default directory and environment, and removes that window once the command has finished."},"source":{"file":"tmux/session_run.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunOptions","product":"core","slug":"tmux-runoptions"},{"id":"tmux.RunOptions.WindowName","name":"WindowName","kind":"attribute","modifiers":[],"parent":"tmux.RunOptions","signatures":[],"type":"string","doc":{"summary":"WindowName names the window the command runs in; empty lets tmux choose."},"source":{"file":"tmux/session_run.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunOptions.WindowName","product":"core","slug":"tmux-runoptions-windowname"},{"id":"tmux.RunOptions.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"tmux.RunOptions","signatures":[],"type":"string","doc":{"summary":"StartDirectory expands ~ and ~/... for the current user; empty inherits the session's default."},"source":{"file":"tmux/session_run.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunOptions.StartDirectory","product":"core","slug":"tmux-runoptions-startdirectory"},{"id":"tmux.RunOptions.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"tmux.RunOptions","signatures":[],"type":"map[string]string","doc":{"summary":"Environment is added to the command's environment. The map is not retained."},"source":{"file":"tmux/session_run.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunOptions.Environment","product":"core","slug":"tmux-runoptions-environment"},{"id":"tmux.RunOptions.Keep","name":"Keep","kind":"attribute","modifiers":[],"parent":"tmux.RunOptions","signatures":[],"type":"bool","doc":{"summary":"Keep leaves the finished window in place, showing what the command printed, instead of removing it."},"source":{"file":"tmux/session_run.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunOptions.Keep","product":"core","slug":"tmux-runoptions-keep"},{"id":"tmux.ErrOutcomeUnrecorded","name":"ErrOutcomeUnrecorded","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrOutcomeUnrecorded reports that a command's pane is dead while tmux has not recorded how the command ended, which it does by reaping the command's process. tmux is known to leave a pane in that state indefinitely, so this is reported rather than waited out, and rather than passed off as a zero exit status that would call a failed command successful."},"source":{"file":"tmux/session_run.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrOutcomeUnrecorded","product":"core","slug":"tmux-erroutcomeunrecorded"},{"id":"tmux.RunResult","name":"RunResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"RunResult reports how a command finished and what its terminal showed."},"source":{"file":"tmux/session_run.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunResult","product":"core","slug":"tmux-runresult"},{"id":"tmux.RunResult.Status","name":"Status","kind":"attribute","modifiers":[],"parent":"tmux.RunResult","signatures":[],"type":"int","doc":{"summary":"Status is the command's exit status. It is zero when Signal is set."},"source":{"file":"tmux/session_run.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunResult.Status","product":"core","slug":"tmux-runresult-status"},{"id":"tmux.RunResult.Signal","name":"Signal","kind":"attribute","modifiers":[],"parent":"tmux.RunResult","signatures":[],"type":"string","doc":{"summary":"Signal names the signal that ended the command, when one did. It is empty before tmux 3.3, which reports no signal for a dead pane."},"source":{"file":"tmux/session_run.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunResult.Signal","product":"core","slug":"tmux-runresult-signal"},{"id":"tmux.RunResult.Lines","name":"Lines","kind":"attribute","modifiers":[],"parent":"tmux.RunResult","signatures":[],"type":"[]string","doc":{"summary":"Lines is what the terminal showed when the command finished, without the blank lines tmux pads a screen with."},"source":{"file":"tmux/session_run.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunResult.Lines","product":"core","slug":"tmux-runresult-lines"},{"id":"tmux.RunResult.Pane","name":"Pane","kind":"attribute","modifiers":[],"parent":"tmux.RunResult","signatures":[],"type":"PaneID","doc":{"summary":"Pane is the pane the command ran in. It is live only when the run kept its window."},"source":{"file":"tmux/session_run.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunResult.Pane","product":"core","slug":"tmux-runresult-pane"},{"id":"tmux.Session.Run","name":"Run","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Run(ctx context.Context, command string, options RunOptions) (RunResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"command","type":"string"},{"name":"options","type":"RunOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"(RunResult, error)"}],"doc":{"summary":"Run starts command in a new window of this session, waits for it to finish, and reports its exit status and what its terminal showed. It is [os/exec] for a program that needs a terminal: the command runs with a tty, so it sees isatty, colour, and a width, and what comes back is the screen tmux rendered rather than the bytes the program wrote.","body":"A nonzero status is a result, not an error; the error reports what tmux\ncould not do. The wait is tmux's own signal, backed by a liveness check that\nwidens from a quarter second in case that signal is lost: it needs no tmux\nbinary on the command's PATH and returns as the process exits. A command that never\nexits holds Run until ctx ends. On error, Run removes its window regardless\nof [RunOptions.Keep], since Run gives the caller no other chance to retry or\nclean up; a bare [Session.Start] followed by [Running.Wait] leaves that\nchoice to the caller instead. [Server.RunShell] runs a command with no pane\nat all."},"source":{"file":"tmux/session_run.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Run","product":"core","slug":"tmux-session-run"},{"id":"tmux.Session.Start","name":"Start","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Start(\n\tctx context.Context,\n\tcommand string,\n\toptions RunOptions,\n) (running *Running, err error)","params":[{"name":"ctx","type":"context.Context"},{"name":"command","type":"string"},{"name":"options","type":"RunOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"(running *Running, err error)"}],"doc":{"summary":"Start runs command in a new window of this session and returns once it is under way, without waiting for it to finish. The returned [Running] reports the pane it runs in and blocks on demand: [Running.Wait] waits for the exit status and screen [Session.Run] would have returned, and [Running.Kill] stops the command. Options are exactly Run's.","body":"Before tmux 3.7, Start attempts to install an output pipe running cat\nunless the pane already has a pipe; a failed attempt only forfeits that\ncompatibility help. [Running.Wait] stops a pipe Start installed once the\noutcome is read, whether or not Keep leaves the window itself in place.\n\nIf Wait is never called, the window Start created is never removed."},"source":{"file":"tmux/session_run.go","line":103,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Start","product":"core","slug":"tmux-session-start"},{"id":"tmux.Running","name":"Running","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Running is a command started by [Session.Start]: a real process, already under way, in a pane of its own. [Running.Pane] exposes that pane so its output can be streamed with [Pane.OpenObservation] or typed into with [Pane.Writer] while the command runs; [Running.Wait] and [Running.Kill] wait for and stop it. A line printed with nothing separating it from the command's own exit can race tmux's control-mode notification of it and never reach [PaneObservation.Reader]; [RunResult.Lines] from Wait, a plain screen capture rather than that notification stream, always has it."},"source":{"file":"tmux/session_run.go","line":192,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Running","product":"core","slug":"tmux-running"},{"id":"tmux.Running.Pane","name":"Pane","kind":"method","modifiers":[],"parent":"tmux.Running","signatures":[{"raw":"func (r *Running) Pane() Pane","params":[],"receiver":{"name":"r","type":"*Running"},"returns":"Pane"}],"doc":{"summary":"Pane returns the pane the command runs in, materialized immediately after Start returned. Like any materialized record it does not refresh itself; a call after Wait or Kill may no longer describe a live pane."},"source":{"file":"tmux/session_run.go","line":218,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Running.Pane","product":"core","slug":"tmux-running-pane"},{"id":"tmux.Running.Wait","name":"Wait","kind":"method","modifiers":[],"parent":"tmux.Running","signatures":[{"raw":"func (r *Running) Wait(ctx context.Context) (RunResult, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"r","type":"*Running"},"returns":"(RunResult, error)"}],"doc":{"summary":"Wait blocks until the command exits, on tmux's own wait-for signal backed by a widening liveness check, and reports its exit status and what its terminal showed. It removes the window Start created unless [RunOptions.Keep] was set. A command whose process tmux never reaps has no outcome to report, and Wait ends with [ErrOutcomeUnrecorded] rather than the zero status that would make a failed command look successful.","body":"Wait may be called more than once and concurrently; every call observes the\nsame completion. The outcome is read once, as soon as any call sees the\ncommand end, on a context no caller's cancellation reaches, because from\nthen on it belongs to every caller. A call whose context ends first reports\nthat context and leaves the window alone; a later call gets the outcome."},"source":{"file":"tmux/session_run.go","line":234,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Running.Wait","product":"core","slug":"tmux-running-wait"},{"id":"tmux.Running.StreamTo","name":"StreamTo","kind":"method","modifiers":[],"parent":"tmux.Running","signatures":[{"raw":"func (r *Running) StreamTo(\n\tctx context.Context,\n\tdestination io.Writer,\n) (RunResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"destination","type":"io.Writer"}],"receiver":{"name":"r","type":"*Running"},"returns":"(RunResult, error)"}],"doc":{"summary":"StreamTo copies what the command prints into destination as it prints it and then reports how it ended, so following a command and collecting its outcome are one blocking call rather than a goroutine the caller writes. It returns exactly what [Running.Wait] returns and, like Wait, removes the window unless [RunOptions.Keep] was set. destination is written only by this call, so it needs no synchronization of its own, and [Running.Kill] may be called from another goroutine while it runs.","body":"The stream is what tmux pushed, which is not quite everything: output the\ncommand printed before StreamTo opened its observation may or may not be in\nit, and tmux can drop a line printed with nothing between it and the\ncommand's exit. [RunResult.Lines] is a screen capture rather than a\nnotification stream and remains the authoritative record of what the command\nshowed. Streaming needs a control client, which a [Connection]-bound value\ndoes not have, so it returns [ErrConnectionRequiresProcess] there; Wait alone\ndoes not."},"source":{"file":"tmux/session_run.go","line":540,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Running.StreamTo","product":"core","slug":"tmux-running-streamto"},{"id":"tmux.Running.Kill","name":"Kill","kind":"method","modifiers":[],"parent":"tmux.Running","signatures":[{"raw":"func (r *Running) Kill(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"r","type":"*Running"},"returns":"error"}],"doc":{"summary":"Kill asks the tmux server to send SIGKILL to the process group running the command. It does not wait for the process to stop; call Wait to observe the resulting status or signal.","body":"Kill runs through [Server.RunShell] with the pane as its target, so tmux\nresolves the process group id itself, at the moment it runs, on whatever\nhost the server is on, rather than trusting a process id this program read\nearlier. A pane that no longer exists makes that id resolve empty and Kill\na no-op; Kill reports only whether tmux could dispatch the request, not\nwhether a process still existed to receive it."},"source":{"file":"tmux/session_run.go","line":592,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Running.Kill","product":"core","slug":"tmux-running-kill"},{"id":"tmux.ErrMalformedSnapshot","name":"ErrMalformedSnapshot","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrMalformedSnapshot identifies invalid required fields in decoded rows. SnapshotDecodeError matches it through errors.Is."},"source":{"file":"tmux/snapshot.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrMalformedSnapshot","product":"core","slug":"tmux-errmalformedsnapshot"},{"id":"tmux.ErrSnapshotAmbiguous","name":"ErrSnapshotAmbiguous","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrSnapshotAmbiguous identifies a point lookup with multiple matching views. SnapshotLookupError matches it through errors.Is."},"source":{"file":"tmux/snapshot.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrSnapshotAmbiguous","product":"core","slug":"tmux-errsnapshotambiguous"},{"id":"tmux.SnapshotDecodeError","name":"SnapshotDecodeError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SnapshotDecodeError identifies one malformed decoded list row. It matches [ErrMalformedSnapshot] through errors.Is; callers can recover its redacted location fields with errors.As."},"source":{"file":"tmux/snapshot.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotDecodeError","product":"core","slug":"tmux-snapshotdecodeerror"},{"id":"tmux.SnapshotDecodeError.Object","name":"Object","kind":"attribute","modifiers":[],"parent":"tmux.SnapshotDecodeError","signatures":[],"type":"string","doc":{"summary":"Object names the tmux object whose listing contained the record."},"source":{"file":"tmux/snapshot.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotDecodeError.Object","product":"core","slug":"tmux-snapshotdecodeerror-object"},{"id":"tmux.SnapshotDecodeError.Record","name":"Record","kind":"attribute","modifiers":[],"parent":"tmux.SnapshotDecodeError","signatures":[],"type":"int","doc":{"summary":"Record is the one-based physical record number in that listing."},"source":{"file":"tmux/snapshot.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotDecodeError.Record","product":"core","slug":"tmux-snapshotdecodeerror-record"},{"id":"tmux.SnapshotDecodeError.Field","name":"Field","kind":"attribute","modifiers":[],"parent":"tmux.SnapshotDecodeError","signatures":[],"type":"string","doc":{"summary":"Field names the required format field that could not be decoded."},"source":{"file":"tmux/snapshot.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotDecodeError.Field","product":"core","slug":"tmux-snapshotdecodeerror-field"},{"id":"tmux.SnapshotDecodeError.Value","name":"Value","kind":"attribute","modifiers":[],"parent":"tmux.SnapshotDecodeError","signatures":[],"type":"string","doc":{"summary":"Value is redacted for library-created errors because snapshot fields may contain pane output, commands, paths, or other caller data."},"source":{"file":"tmux/snapshot.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotDecodeError.Value","product":"core","slug":"tmux-snapshotdecodeerror-value"},{"id":"tmux.SnapshotDecodeError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.SnapshotDecodeError","signatures":[],"type":"string","doc":{"summary":"Reason describes why the field was malformed."},"source":{"file":"tmux/snapshot.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotDecodeError.Reason","product":"core","slug":"tmux-snapshotdecodeerror-reason"},{"id":"tmux.SnapshotDecodeError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.SnapshotDecodeError","signatures":[{"raw":"func (e *SnapshotDecodeError) Error() string","params":[],"receiver":{"name":"e","type":"*SnapshotDecodeError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/snapshot.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotDecodeError.Error","product":"core","slug":"tmux-snapshotdecodeerror-error"},{"id":"tmux.SnapshotDecodeError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.SnapshotDecodeError","signatures":[{"raw":"func (e *SnapshotDecodeError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*SnapshotDecodeError"},"returns":"error"}],"doc":{"summary":"Unwrap makes SnapshotDecodeError compatible with ErrMalformedSnapshot."},"source":{"file":"tmux/snapshot.go","line":51,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotDecodeError.Unwrap","product":"core","slug":"tmux-snapshotdecodeerror-unwrap"},{"id":"tmux.SnapshotLookupError","name":"SnapshotLookupError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SnapshotLookupError reports the cardinality of an unsuccessful point lookup. It matches [ErrNotFound] or [ErrSnapshotAmbiguous] through errors.Is; callers can recover its target and count with errors.As."},"source":{"file":"tmux/snapshot.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotLookupError","product":"core","slug":"tmux-snapshotlookuperror"},{"id":"tmux.SnapshotLookupError.Object","name":"Object","kind":"attribute","modifiers":[],"parent":"tmux.SnapshotLookupError","signatures":[],"type":"string","doc":{"summary":"Object names the requested snapshot object kind."},"source":{"file":"tmux/snapshot.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotLookupError.Object","product":"core","slug":"tmux-snapshotlookuperror-object"},{"id":"tmux.SnapshotLookupError.Identifier","name":"Identifier","kind":"attribute","modifiers":[],"parent":"tmux.SnapshotLookupError","signatures":[],"type":"string","doc":{"summary":"Identifier is the requested stable identifier."},"source":{"file":"tmux/snapshot.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotLookupError.Identifier","product":"core","slug":"tmux-snapshotlookuperror-identifier"},{"id":"tmux.SnapshotLookupError.Matches","name":"Matches","kind":"attribute","modifiers":[],"parent":"tmux.SnapshotLookupError","signatures":[],"type":"int","doc":{"summary":"Matches is the number of matching materialized views."},"source":{"file":"tmux/snapshot.go","line":62,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotLookupError.Matches","product":"core","slug":"tmux-snapshotlookuperror-matches"},{"id":"tmux.SnapshotLookupError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.SnapshotLookupError","signatures":[{"raw":"func (e *SnapshotLookupError) Error() string","params":[],"receiver":{"name":"e","type":"*SnapshotLookupError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/snapshot.go","line":66,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotLookupError.Error","product":"core","slug":"tmux-snapshotlookuperror-error"},{"id":"tmux.SnapshotLookupError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.SnapshotLookupError","signatures":[{"raw":"func (e *SnapshotLookupError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*SnapshotLookupError"},"returns":"error"}],"doc":{"summary":"Unwrap classifies the failed lookup by cardinality."},"source":{"file":"tmux/snapshot.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotLookupError.Unwrap","product":"core","slug":"tmux-snapshotlookuperror-unwrap"},{"id":"tmux.Snapshot","name":"Snapshot","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Snapshot is an immutable, observational view of one tmux server. It is normally returned by [Server.Snapshot]. Its zero value has a zero [Version], a zero [Server], non-nil empty collection slices, and not-found point lookups. Accessors never query tmux; returned slices are newly allocated and their contained records are shallow copies."},"source":{"file":"tmux/snapshot.go","line":92,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot","product":"core","slug":"tmux-snapshot"},{"id":"tmux.Snapshot.Version","name":"Version","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) Version() Version","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"Version"}],"doc":{"summary":"Version returns the tmux version that selected this snapshot's format fields. The zero Snapshot returns a zero Version."},"source":{"file":"tmux/snapshot.go","line":148,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.Version","product":"core","slug":"tmux-snapshot-version"},{"id":"tmux.Snapshot.Server","name":"Server","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) Server() Server","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"Server"}],"doc":{"summary":"Server returns the configured handle that produced this snapshot. The zero Snapshot returns a zero Server."},"source":{"file":"tmux/snapshot.go","line":157,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.Server","product":"core","slug":"tmux-snapshot-server"},{"id":"tmux.Snapshot.Sessions","name":"Sessions","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) Sessions() []Session","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"[]Session"}],"doc":{"summary":"Sessions returns a newly allocated shallow copy of materialized sessions. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":166,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.Sessions","product":"core","slug":"tmux-snapshot-sessions"},{"id":"tmux.Snapshot.Windows","name":"Windows","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) Windows() []Window","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"[]Window"}],"doc":{"summary":"Windows returns a newly allocated shallow copy with one view per winlink. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":175,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.Windows","product":"core","slug":"tmux-snapshot-windows"},{"id":"tmux.Snapshot.Panes","name":"Panes","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) Panes() []Pane","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"[]Pane"}],"doc":{"summary":"Panes returns a newly allocated shallow copy of pane views for every winlink. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":184,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.Panes","product":"core","slug":"tmux-snapshot-panes"},{"id":"tmux.Snapshot.Clients","name":"Clients","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) Clients() []Client","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"[]Client"}],"doc":{"summary":"Clients returns a newly allocated shallow copy of materialized clients. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":193,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.Clients","product":"core","slug":"tmux-snapshot-clients"},{"id":"tmux.Snapshot.SessionsSeq","name":"SessionsSeq","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) SessionsSeq() iter.Seq[Session]","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"iter.Seq[Session]"}],"doc":{"summary":"SessionsSeq returns an iterator over materialized session values. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":202,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.SessionsSeq","product":"core","slug":"tmux-snapshot-sessionsseq"},{"id":"tmux.Snapshot.WindowsSeq","name":"WindowsSeq","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) WindowsSeq() iter.Seq[Window]","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"iter.Seq[Window]"}],"doc":{"summary":"WindowsSeq returns an iterator over materialized winlink values. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":211,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.WindowsSeq","product":"core","slug":"tmux-snapshot-windowsseq"},{"id":"tmux.Snapshot.PanesSeq","name":"PanesSeq","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) PanesSeq() iter.Seq[Pane]","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"iter.Seq[Pane]"}],"doc":{"summary":"PanesSeq returns an iterator over materialized pane-view values. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":220,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.PanesSeq","product":"core","slug":"tmux-snapshot-panesseq"},{"id":"tmux.Snapshot.ClientsSeq","name":"ClientsSeq","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) ClientsSeq() iter.Seq[Client]","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"iter.Seq[Client]"}],"doc":{"summary":"ClientsSeq returns an iterator over materialized client values. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":229,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.ClientsSeq","product":"core","slug":"tmux-snapshot-clientsseq"},{"id":"tmux.Snapshot.SessionByID","name":"SessionByID","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) SessionByID(id SessionID) (Session, error)","params":[{"name":"id","type":"SessionID"}],"receiver":{"name":"s","type":"Snapshot"},"returns":"(Session, error)"}],"doc":{"summary":"SessionByID returns the sole session view with id. It never queries tmux and returns a [SnapshotLookupError] matching [ErrNotFound] otherwise."},"source":{"file":"tmux/snapshot.go","line":238,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.SessionByID","product":"core","slug":"tmux-snapshot-sessionbyid"},{"id":"tmux.Snapshot.WindowByID","name":"WindowByID","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) WindowByID(id WindowID) (Window, error)","params":[{"name":"id","type":"WindowID"}],"receiver":{"name":"s","type":"Snapshot"},"returns":"(Window, error)"}],"doc":{"summary":"WindowByID returns the sole winlink view with id. Linked sessions can make an ID ambiguous, so it can return a [SnapshotLookupError] matching [ErrSnapshotAmbiguous]. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":248,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.WindowByID","product":"core","slug":"tmux-snapshot-windowbyid"},{"id":"tmux.Snapshot.WindowsByID","name":"WindowsByID","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) WindowsByID(id WindowID) []Window","params":[{"name":"id","type":"WindowID"}],"receiver":{"name":"s","type":"Snapshot"},"returns":"[]Window"}],"doc":{"summary":"WindowsByID returns newly allocated shallow copies of every winlink view with id. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":257,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.WindowsByID","product":"core","slug":"tmux-snapshot-windowsbyid"},{"id":"tmux.Snapshot.PaneByID","name":"PaneByID","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) PaneByID(id PaneID) (Pane, error)","params":[{"name":"id","type":"PaneID"}],"receiver":{"name":"s","type":"Snapshot"},"returns":"(Pane, error)"}],"doc":{"summary":"PaneByID returns the sole pane view with id. Linked-session views can make an ID ambiguous, so it can return a [SnapshotLookupError] matching [ErrSnapshotAmbiguous]. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":267,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.PaneByID","product":"core","slug":"tmux-snapshot-panebyid"},{"id":"tmux.Snapshot.PanesByID","name":"PanesByID","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) PanesByID(id PaneID) []Pane","params":[{"name":"id","type":"PaneID"}],"receiver":{"name":"s","type":"Snapshot"},"returns":"[]Pane"}],"doc":{"summary":"PanesByID returns newly allocated shallow copies of every pane view with id. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":276,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.PanesByID","product":"core","slug":"tmux-snapshot-panesbyid"},{"id":"tmux.Snapshot.ClientByName","name":"ClientByName","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) ClientByName(name ClientName) (Client, error)","params":[{"name":"name","type":"ClientName"}],"receiver":{"name":"s","type":"Snapshot"},"returns":"(Client, error)"}],"doc":{"summary":"ClientByName returns the sole client view with name. It never queries tmux and returns a [SnapshotLookupError] matching [ErrNotFound] or [ErrSnapshotAmbiguous] when cardinality is not one."},"source":{"file":"tmux/snapshot.go","line":286,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.ClientByName","product":"core","slug":"tmux-snapshot-clientbyname"},{"id":"tmux.Server.Snapshot","name":"Snapshot","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Snapshot(ctx context.Context) (Snapshot, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"(Snapshot, error)"}],"doc":{"summary":"Snapshot materializes sessions, winlinks, panes, and clients. Its sequential commands produce an observationally consistent result, not an atomic transaction. Failures remain errors rather than empty snapshots; cancellation may occur after earlier listings completed.","body":"Identity probes reject a daemon replacement during subprocess collection.\nA connection is already bound to the exact daemon and skips the closing\nprobe; the opening probe still selects version-specific fields."},"source":{"file":"tmux/snapshot_capture.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Snapshot","product":"core","slug":"tmux-server-snapshot"},{"id":"tmux.SocketSelection","name":"SocketSelection","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SocketSelection describes the Unix filesystem endpoint selected by a [Server]. It does not report whether a server is listening there or whether tmux would accept the named-socket directory's ownership and permissions."},"source":{"file":"tmux/socket_selection.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SocketSelection","product":"core","slug":"tmux-socketselection"},{"id":"tmux.SocketSelection.Path","name":"Path","kind":"attribute","modifiers":[],"parent":"tmux.SocketSelection","signatures":[],"type":"string","doc":{"summary":"Path is the absolute path selected by the frozen socket options, environment, and working directory."},"source":{"file":"tmux/socket_selection.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SocketSelection.Path","product":"core","slug":"tmux-socketselection-path"},{"id":"tmux.SocketSelection.NamedDirectory","name":"NamedDirectory","kind":"attribute","modifiers":[],"parent":"tmux.SocketSelection","signatures":[],"type":"string","doc":{"summary":"NamedDirectory is the directory tmux uses for named and default sockets. It can differ from Path's directory when -S or TMUX selects another path."},"source":{"file":"tmux/socket_selection.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SocketSelection.NamedDirectory","product":"core","slug":"tmux-socketselection-nameddirectory"},{"id":"tmux.Server.SocketSelection","name":"SocketSelection","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SocketSelection() (SocketSelection, error)","params":[],"receiver":{"name":"s","type":"Server"},"returns":"(SocketSelection, error)"}],"doc":{"summary":"SocketSelection returns tmux's -S, -L, TMUX, and default-socket precedence snapshotted by [NewServer]. It does not start tmux or require the selected socket to exist."},"source":{"file":"tmux/socket_selection.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SocketSelection","product":"core","slug":"tmux-server-socketselection"},{"id":"tmux.ErrInvalidSparseIndex","name":"ErrInvalidSparseIndex","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidSparseIndex identifies a negative or overflowing sparse index."},"source":{"file":"tmux/sparse_array.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidSparseIndex","product":"core","slug":"tmux-errinvalidsparseindex"},{"id":"tmux.ErrDuplicateSparseIndex","name":"ErrDuplicateSparseIndex","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrDuplicateSparseIndex identifies repeated constructor indices."},"source":{"file":"tmux/sparse_array.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrDuplicateSparseIndex","product":"core","slug":"tmux-errduplicatesparseindex"},{"id":"tmux.SparseEntry","name":"SparseEntry","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SparseEntry is one indexed [SparseArray] value."},"source":{"file":"tmux/sparse_array.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseEntry","product":"core","slug":"tmux-sparseentry"},{"id":"tmux.SparseEntry.Index","name":"Index","kind":"attribute","modifiers":[],"parent":"tmux.SparseEntry","signatures":[],"type":"int","doc":{"summary":"Index is the nonnegative sparse-array index."},"source":{"file":"tmux/sparse_array.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseEntry.Index","product":"core","slug":"tmux-sparseentry-index"},{"id":"tmux.SparseEntry.Value","name":"Value","kind":"attribute","modifiers":[],"parent":"tmux.SparseEntry","signatures":[],"type":"T","doc":{"summary":"Value is the value stored at Index."},"source":{"file":"tmux/sparse_array.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseEntry.Value","product":"core","slug":"tmux-sparseentry-value"},{"id":"tmux.SparseArray","name":"SparseArray","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SparseArray stores values at sorted, nonnegative indices. Its zero value is an empty array. Constructors and functional updates own their entry slices; copies of reference-bearing T values remain shallow."},"source":{"file":"tmux/sparse_array.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseArray","product":"core","slug":"tmux-sparsearray"},{"id":"tmux.NewSparseArray","name":"NewSparseArray","kind":"function","modifiers":[],"signatures":[{"raw":"func NewSparseArray[T any](entries ...SparseEntry[T]) (SparseArray[T], error)","params":[{"name":"entries","type":"SparseEntry[T]","variadic":"positional"}],"returns":"(SparseArray[T], error)","typeParams":["T any"]}],"doc":{"summary":"NewSparseArray builds an array from entries, sorting them by index. It returns errors matching [ErrInvalidSparseIndex] or [ErrDuplicateSparseIndex] for negative, overflowing, or duplicate indices."},"source":{"file":"tmux/sparse_array.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSparseArray","product":"core","slug":"tmux-newsparsearray"},{"id":"tmux.SparseArray.Get","name":"Get","kind":"method","modifiers":[],"parent":"tmux.SparseArray","signatures":[{"raw":"func (a SparseArray[T]) Get(index int) (T, bool)","params":[{"name":"index","type":"int"}],"receiver":{"name":"a","type":"SparseArray[T]"},"returns":"(T, bool)"}],"doc":{"summary":"Get returns the value at index and reports whether it is present. A missing index, including a sparse hole, returns the zero value and false."},"source":{"file":"tmux/sparse_array.go","line":66,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseArray.Get","product":"core","slug":"tmux-sparsearray-get"},{"id":"tmux.SparseArray.Len","name":"Len","kind":"method","modifiers":[],"parent":"tmux.SparseArray","signatures":[{"raw":"func (a SparseArray[T]) Len() int","params":[],"receiver":{"name":"a","type":"SparseArray[T]"},"returns":"int"}],"doc":{"summary":"Len returns the number of present entries, not the highest index."},"source":{"file":"tmux/sparse_array.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseArray.Len","product":"core","slug":"tmux-sparsearray-len"},{"id":"tmux.SparseArray.Indices","name":"Indices","kind":"method","modifiers":[],"parent":"tmux.SparseArray","signatures":[{"raw":"func (a SparseArray[T]) Indices() []int","params":[],"receiver":{"name":"a","type":"SparseArray[T]"},"returns":"[]int"}],"doc":{"summary":"Indices returns a fresh slice of present indices in ascending order."},"source":{"file":"tmux/sparse_array.go","line":81,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseArray.Indices","product":"core","slug":"tmux-sparsearray-indices"},{"id":"tmux.SparseArray.Entries","name":"Entries","kind":"method","modifiers":[],"parent":"tmux.SparseArray","signatures":[{"raw":"func (a SparseArray[T]) Entries() []SparseEntry[T]","params":[],"receiver":{"name":"a","type":"SparseArray[T]"},"returns":"[]SparseEntry[T]"}],"doc":{"summary":"Entries returns a fresh shallow copy in ascending index order."},"source":{"file":"tmux/sparse_array.go","line":90,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseArray.Entries","product":"core","slug":"tmux-sparsearray-entries"},{"id":"tmux.SparseArray.Values","name":"Values","kind":"method","modifiers":[],"parent":"tmux.SparseArray","signatures":[{"raw":"func (a SparseArray[T]) Values() []T","params":[],"receiver":{"name":"a","type":"SparseArray[T]"},"returns":"[]T"}],"doc":{"summary":"Values returns a fresh shallow slice in ascending index order."},"source":{"file":"tmux/sparse_array.go","line":95,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseArray.Values","product":"core","slug":"tmux-sparsearray-values"},{"id":"tmux.SparseArray.All","name":"All","kind":"method","modifiers":[],"parent":"tmux.SparseArray","signatures":[{"raw":"func (a SparseArray[T]) All() iter.Seq2[int, T]","params":[],"receiver":{"name":"a","type":"SparseArray[T]"},"returns":"iter.Seq2[int, T]"}],"doc":{"summary":"All returns an iterator over indices and values in ascending index order."},"source":{"file":"tmux/sparse_array.go","line":104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseArray.All","product":"core","slug":"tmux-sparsearray-all"},{"id":"tmux.SparseArray.With","name":"With","kind":"method","modifiers":[],"parent":"tmux.SparseArray","signatures":[{"raw":"func (a SparseArray[T]) With(index int, value T) (SparseArray[T], error)","params":[{"name":"index","type":"int"},{"name":"value","type":"T"}],"receiver":{"name":"a","type":"SparseArray[T]"},"returns":"(SparseArray[T], error)"}],"doc":{"summary":"With returns a copy with value inserted or replaced at index. It leaves the receiver unchanged and returns an error matching [ErrInvalidSparseIndex] for a negative index."},"source":{"file":"tmux/sparse_array.go","line":117,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseArray.With","product":"core","slug":"tmux-sparsearray-with"},{"id":"tmux.SparseArray.Append","name":"Append","kind":"method","modifiers":[],"parent":"tmux.SparseArray","signatures":[{"raw":"func (a SparseArray[T]) Append(value T) (SparseArray[T], error)","params":[{"name":"value","type":"T"}],"receiver":{"name":"a","type":"SparseArray[T]"},"returns":"(SparseArray[T], error)"}],"doc":{"summary":"Append returns a copy with value stored after the highest present index. It leaves the receiver unchanged and returns an error matching [ErrInvalidSparseIndex] when that index overflows."},"source":{"file":"tmux/sparse_array.go","line":136,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseArray.Append","product":"core","slug":"tmux-sparsearray-append"},{"id":"tmux.ErrMissingTarget","name":"ErrMissingTarget","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrMissingTarget identifies an operation on a zero-value model identity."},"source":{"file":"tmux/target.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrMissingTarget","product":"core","slug":"tmux-errmissingtarget"},{"id":"tmux.ErrInvalidTarget","name":"ErrInvalidTarget","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidTarget identifies a malformed stable tmux identifier. It is matched by errors.Is for TargetError."},"source":{"file":"tmux/target.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidTarget","product":"core","slug":"tmux-errinvalidtarget"},{"id":"tmux.TargetError","name":"TargetError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TargetError reports a malformed stable identifier before command execution. It matches [ErrInvalidTarget] through errors.Is; callers can recover Object and Target with errors.As."},"source":{"file":"tmux/target.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TargetError","product":"core","slug":"tmux-targeterror"},{"id":"tmux.TargetError.Object","name":"Object","kind":"attribute","modifiers":[],"parent":"tmux.TargetError","signatures":[],"type":"string","doc":{"summary":"Object names the tmux object kind whose target was validated."},"source":{"file":"tmux/target.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TargetError.Object","product":"core","slug":"tmux-targeterror-object"},{"id":"tmux.TargetError.Target","name":"Target","kind":"attribute","modifiers":[],"parent":"tmux.TargetError","signatures":[],"type":"string","doc":{"summary":"Target is the submitted target text."},"source":{"file":"tmux/target.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TargetError.Target","product":"core","slug":"tmux-targeterror-target"},{"id":"tmux.TargetError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.TargetError","signatures":[{"raw":"func (e *TargetError) Error() string","params":[],"receiver":{"name":"e","type":"*TargetError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/target.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TargetError.Error","product":"core","slug":"tmux-targeterror-error"},{"id":"tmux.TargetError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.TargetError","signatures":[{"raw":"func (e *TargetError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*TargetError"},"returns":"error"}],"doc":{"summary":"Unwrap makes TargetError compatible with ErrInvalidTarget."},"source":{"file":"tmux/target.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TargetError.Unwrap","product":"core","slug":"tmux-targeterror-unwrap"},{"id":"tmux.MissingTargetError","name":"MissingTargetError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"MissingTargetError reports an operation attempted on a zero-value model identity. It matches [ErrMissingTarget] through errors.Is; callers can recover Object with errors.As.","body":"A relation accessor such as [Session.ActiveWindow] or [Session.Windows]\nreturns ok false rather than a value with no id, and a creation call such\nas [Server.NewSession] carries no relations at all - so using a discarded\nor freshly created value's zero-value fields reaches this error on the\nfirst operation. Resolve live state with a Resolve* method or a fresh\n[Server.Snapshot] instead."},"source":{"file":"tmux/target.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MissingTargetError","product":"core","slug":"tmux-missingtargeterror"},{"id":"tmux.MissingTargetError.Object","name":"Object","kind":"attribute","modifiers":[],"parent":"tmux.MissingTargetError","signatures":[],"type":"string","doc":{"summary":"Object names the tmux object kind with no id: \"session\", \"window\", \"pane\", or \"client\"."},"source":{"file":"tmux/target.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MissingTargetError.Object","product":"core","slug":"tmux-missingtargeterror-object"},{"id":"tmux.MissingTargetError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.MissingTargetError","signatures":[{"raw":"func (e *MissingTargetError) Error() string","params":[],"receiver":{"name":"e","type":"*MissingTargetError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/target.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MissingTargetError.Error","product":"core","slug":"tmux-missingtargeterror-error"},{"id":"tmux.MissingTargetError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.MissingTargetError","signatures":[{"raw":"func (e *MissingTargetError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*MissingTargetError"},"returns":"error"}],"doc":{"summary":"Unwrap makes MissingTargetError compatible with ErrMissingTarget."},"source":{"file":"tmux/target.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MissingTargetError.Unwrap","product":"core","slug":"tmux-missingtargeterror-unwrap"},{"id":"tmux.MinimumSupportedVersion","name":"MinimumSupportedVersion","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"MinimumSupportedVersion is the oldest tmux feature level supported by this package."},"source":{"file":"tmux/version.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MinimumSupportedVersion","product":"core","slug":"tmux-minimumsupportedversion"},{"id":"tmux.MinimumConnectionVersion","name":"MinimumConnectionVersion","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"MinimumConnectionVersion is the oldest tmux feature level that supports terminal Connection ownership. Later releases may strengthen individual lifecycle guarantees without changing this floor."},"source":{"file":"tmux/version.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MinimumConnectionVersion","product":"core","slug":"tmux-minimumconnectionversion"},{"id":"tmux.MaximumTestedVersion","name":"MaximumTestedVersion","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"MaximumTestedVersion is the newest numbered tmux feature level covered by this package's tests. The matrix also runs 3.8-rc2, which is a release candidate rather than a numbered feature level, so it does not raise this."},"source":{"file":"tmux/version.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MaximumTestedVersion","product":"core","slug":"tmux-maximumtestedversion"},{"id":"tmux.ErrInvalidVersion","name":"ErrInvalidVersion","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidVersion identifies malformed tmux version tokens. It is matched by errors.Is for VersionError."},"source":{"file":"tmux/version.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidVersion","product":"core","slug":"tmux-errinvalidversion"},{"id":"tmux.VersionError","name":"VersionError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"VersionError reports a tmux version token that cannot be parsed. It matches [ErrInvalidVersion] through errors.Is; callers can recover Token with errors.As."},"source":{"file":"tmux/version.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionError","product":"core","slug":"tmux-versionerror"},{"id":"tmux.VersionError.Token","name":"Token","kind":"attribute","modifiers":[],"parent":"tmux.VersionError","signatures":[],"type":"string","doc":{"summary":"Token is the rejected tmux version text."},"source":{"file":"tmux/version.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionError.Token","product":"core","slug":"tmux-versionerror-token"},{"id":"tmux.VersionError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.VersionError","signatures":[{"raw":"func (e *VersionError) Error() string","params":[],"receiver":{"name":"e","type":"*VersionError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/version.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionError.Error","product":"core","slug":"tmux-versionerror-error"},{"id":"tmux.VersionError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.VersionError","signatures":[{"raw":"func (e *VersionError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*VersionError"},"returns":"error"}],"doc":{"summary":"Unwrap makes VersionError compatible with ErrInvalidVersion."},"source":{"file":"tmux/version.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionError.Unwrap","product":"core","slug":"tmux-versionerror-unwrap"},{"id":"tmux.Version","name":"Version","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Version is a parsed tmux version that preserves its original token. Obtain a value with [ParseVersion], [Server.Version], or [Snapshot.Version]. Its zero value has no feature level and is useful only as an absent version. Parsed OpenBSD base-system tokens also have no feature level until [Server.Version] probes the configured binary's commands."},"source":{"file":"tmux/version.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Version","product":"core","slug":"tmux-version"},{"id":"tmux.ParseVersion","name":"ParseVersion","kind":"function","modifiers":[],"signatures":[{"raw":"func ParseVersion(raw string) (Version, error)","params":[{"name":"raw","type":"string"}],"returns":"(Version, error)"}],"doc":{"summary":"ParseVersion parses a raw tmux version token. It returns a [VersionError] matching [ErrInvalidVersion] when the token cannot be parsed."},"source":{"file":"tmux/version.go","line":73,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ParseVersion","product":"core","slug":"tmux-parseversion"},{"id":"tmux.Version.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.Version","signatures":[{"raw":"func (v Version) String() string","params":[],"receiver":{"name":"v","type":"Version"},"returns":"string"}],"doc":{"summary":"String returns the original tmux version token."},"source":{"file":"tmux/version.go","line":144,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Version.String","product":"core","slug":"tmux-version-string"},{"id":"tmux.Version.Major","name":"Major","kind":"method","modifiers":[],"parent":"tmux.Version","signatures":[{"raw":"func (v Version) Major() int","params":[],"receiver":{"name":"v","type":"Version"},"returns":"int"}],"doc":{"summary":"Major returns the capability-level major component. Development tokens use the latest tested feature core. Unprobed OpenBSD base-system tokens return zero."},"source":{"file":"tmux/version.go","line":151,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Version.Major","product":"core","slug":"tmux-version-major"},{"id":"tmux.Version.Minor","name":"Minor","kind":"method","modifiers":[],"parent":"tmux.Version","signatures":[{"raw":"func (v Version) Minor() int","params":[],"receiver":{"name":"v","type":"Version"},"returns":"int"}],"doc":{"summary":"Minor returns the capability-level minor component, or zero when absent. Development tokens use the latest tested feature core. Unprobed OpenBSD base-system tokens return zero."},"source":{"file":"tmux/version.go","line":158,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Version.Minor","product":"core","slug":"tmux-version-minor"},{"id":"tmux.Version.Patch","name":"Patch","kind":"method","modifiers":[],"parent":"tmux.Version","signatures":[{"raw":"func (v Version) Patch() int","params":[],"receiver":{"name":"v","type":"Version"},"returns":"int"}],"doc":{"summary":"Patch returns the capability-level patch component, or zero when absent."},"source":{"file":"tmux/version.go","line":163,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Version.Patch","product":"core","slug":"tmux-version-patch"},{"id":"tmux.Version.Compare","name":"Compare","kind":"method","modifiers":[],"parent":"tmux.Version","signatures":[{"raw":"func (v Version) Compare(other Version) int","params":[{"name":"other","type":"Version"}],"receiver":{"name":"v","type":"Version"},"returns":"int"}],"doc":{"summary":"Compare compares numeric feature levels and returns -1, 0, or 1. Release qualifiers other than master do not change the feature level."},"source":{"file":"tmux/version.go","line":169,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Version.Compare","product":"core","slug":"tmux-version-compare"},{"id":"tmux.Version.CompareRelease","name":"CompareRelease","kind":"method","modifiers":[],"parent":"tmux.Version","signatures":[{"raw":"func (v Version) CompareRelease(other Version) int","params":[{"name":"other","type":"Version"}],"receiver":{"name":"v","type":"Version"},"returns":"int"}],"doc":{"summary":"CompareRelease compares raw release suffixes using libtmux's legacy order. Use Compare for feature gates, where point-release suffixes intentionally share one capability level."},"source":{"file":"tmux/version.go","line":186,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Version.CompareRelease","product":"core","slug":"tmux-version-comparerelease"},{"id":"tmux.Version.AtLeast","name":"AtLeast","kind":"method","modifiers":[],"parent":"tmux.Version","signatures":[{"raw":"func (v Version) AtLeast(minimum Version) bool","params":[{"name":"minimum","type":"Version"}],"receiver":{"name":"v","type":"Version"},"returns":"bool"}],"doc":{"summary":"AtLeast reports whether v provides the same or a newer feature level."},"source":{"file":"tmux/version.go","line":242,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Version.AtLeast","product":"core","slug":"tmux-version-atleast"},{"id":"tmux.UnsupportedPolicy","name":"UnsupportedPolicy","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"UnsupportedPolicy selects what a request does when it needs an optional tmux capability the running server does not have.","body":"The default refuses because dropping a flag can change behavior while still\nreturning success.\n\nChoose degradation only when omission is acceptable:\n\n```go\nserver, err := tmux.NewServer(tmux.ServerOptions{\n\tUnsupported: tmux.DegradeUnsupported,\n\tWarningHandler: func(w tmux.Warning) { log.Printf(\"tmux: %s\", w) },\n})\nif err != nil {\n\tlog.Fatal(err)\n}\n```\n\nSet [ServerOptions.WarningHandler] alongside it to observe omissions."},"source":{"file":"tmux/warning.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnsupportedPolicy","product":"core","slug":"tmux-unsupportedpolicy"},{"id":"tmux.FailUnsupported","name":"FailUnsupported","kind":"constant","modifiers":[],"signatures":[],"type":"UnsupportedPolicy","doc":{"summary":"FailUnsupported refuses a request naming a capability the running tmux does not have, with a VersionTooLowError naming the subcommand and the capability. It is the zero value."},"source":{"file":"tmux/warning.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FailUnsupported","product":"core","slug":"tmux-failunsupported"},{"id":"tmux.DegradeUnsupported","name":"DegradeUnsupported","kind":"constant","modifiers":[],"signatures":[],"type":"UnsupportedPolicy","doc":{"summary":"DegradeUnsupported omits the capability, runs the reduced command, and reports the decision to ServerOptions.WarningHandler as a WarningUnsupportedFeature."},"source":{"file":"tmux/warning.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DegradeUnsupported","product":"core","slug":"tmux-degradeunsupported"},{"id":"tmux.UnsupportedPolicy.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.UnsupportedPolicy","signatures":[{"raw":"func (p UnsupportedPolicy) String() string","params":[],"receiver":{"name":"p","type":"UnsupportedPolicy"},"returns":"string"}],"doc":{"summary":"String implements fmt.Stringer."},"source":{"file":"tmux/warning.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnsupportedPolicy.String","product":"core","slug":"tmux-unsupportedpolicy-string"},{"id":"tmux.WarningKind","name":"WarningKind","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WarningKind identifies one closed class of nonfatal library warning."},"source":{"file":"tmux/warning.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WarningKind","product":"core","slug":"tmux-warningkind"},{"id":"tmux.WarningUnsupportedFeature","name":"WarningUnsupportedFeature","kind":"constant","modifiers":[],"signatures":[],"type":"WarningKind","doc":{"summary":"WarningUnsupportedFeature reports a requested feature omitted because the connected tmux binary is too old."},"source":{"file":"tmux/warning.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WarningUnsupportedFeature","product":"core","slug":"tmux-warningunsupportedfeature"},{"id":"tmux.WarningCommandStderr","name":"WarningCommandStderr","kind":"constant","modifiers":[],"signatures":[],"type":"WarningKind","doc":{"summary":"WarningCommandStderr reports stderr from a completed command whose Python API treats the diagnostic as nonfatal."},"source":{"file":"tmux/warning.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WarningCommandStderr","product":"core","slug":"tmux-warningcommandstderr"},{"id":"tmux.Warning","name":"Warning","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Warning describes one nonfatal compatibility decision delivered to a [WarningHandler]."},"source":{"file":"tmux/warning.go","line":65,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Warning","product":"core","slug":"tmux-warning"},{"id":"tmux.Warning.Kind","name":"Kind","kind":"attribute","modifiers":[],"parent":"tmux.Warning","signatures":[],"type":"WarningKind","doc":{"summary":"Kind classifies the compatibility decision."},"source":{"file":"tmux/warning.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Warning.Kind","product":"core","slug":"tmux-warning-kind"},{"id":"tmux.Warning.Subcommand","name":"Subcommand","kind":"attribute","modifiers":[],"parent":"tmux.Warning","signatures":[],"type":"string","doc":{"summary":"Subcommand names the tmux subcommand affected by the decision."},"source":{"file":"tmux/warning.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Warning.Subcommand","product":"core","slug":"tmux-warning-subcommand"},{"id":"tmux.Warning.Feature","name":"Feature","kind":"attribute","modifiers":[],"parent":"tmux.Warning","signatures":[],"type":"string","doc":{"summary":"Feature names the optional tmux capability involved."},"source":{"file":"tmux/warning.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Warning.Feature","product":"core","slug":"tmux-warning-feature"},{"id":"tmux.Warning.CurrentVersion","name":"CurrentVersion","kind":"attribute","modifiers":[],"parent":"tmux.Warning","signatures":[],"type":"Version","doc":{"summary":"CurrentVersion is the observed tmux version."},"source":{"file":"tmux/warning.go","line":73,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Warning.CurrentVersion","product":"core","slug":"tmux-warning-currentversion"},{"id":"tmux.Warning.RequiredVersion","name":"RequiredVersion","kind":"attribute","modifiers":[],"parent":"tmux.Warning","signatures":[],"type":"Version","doc":{"summary":"RequiredVersion is the minimum tmux version for Feature."},"source":{"file":"tmux/warning.go","line":75,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Warning.RequiredVersion","product":"core","slug":"tmux-warning-requiredversion"},{"id":"tmux.Warning.Message","name":"Message","kind":"attribute","modifiers":[],"parent":"tmux.Warning","signatures":[],"type":"string","doc":{"summary":"Message describes the nonfatal compatibility decision."},"source":{"file":"tmux/warning.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Warning.Message","product":"core","slug":"tmux-warning-message"},{"id":"tmux.WarningHandler","name":"WarningHandler","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WarningHandler receives warnings synchronously on the caller goroutine:","body":"```go\nserver, err := tmux.NewServer(tmux.ServerOptions{\n\tWarningHandler: func(warning tmux.Warning) {\n\t\tlog.Printf(\"tmux: %s\", warning.Message)\n\t},\n})\nif err != nil {\n\tlog.Fatal(err)\n}\n```\n\nOperations may invoke it concurrently; synchronize shared state. Diagnostics\nmay contain caller-supplied arguments and are delivered only to this handler."},"source":{"file":"tmux/warning.go","line":93,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WarningHandler","product":"core","slug":"tmux-warninghandler"},{"id":"tmux.Warning.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.Warning","signatures":[{"raw":"func (w Warning) String() string","params":[],"receiver":{"name":"w","type":"Warning"},"returns":"string"}],"doc":{"summary":"String implements fmt.Stringer by returning Message."},"source":{"file":"tmux/warning.go","line":96,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Warning.String","product":"core","slug":"tmux-warning-string"},{"id":"tmux.SelectLayoutRequest","name":"SelectLayoutRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SelectLayoutRequest selects one layout operation. Its zero value reapplies the last preset layout. Layout, Spread, Next, and Previous are mutually exclusive and are validated before execution; an empty Layout is omitted rather than passed explicitly. The request contains no retained caller-owned storage and is supported on tmux 3.2a or later."},"source":{"file":"tmux/window_layout.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SelectLayoutRequest","product":"core","slug":"tmux-selectlayoutrequest"},{"id":"tmux.SelectLayoutRequest.Layout","name":"Layout","kind":"attribute","modifiers":[],"parent":"tmux.SelectLayoutRequest","signatures":[],"type":"string","doc":{"summary":"Layout names a preset or supplies a tmux layout string - either the classic checksum-prefixed grammar every supported version accepts, or the JSON shape tmux 3.8+ also accepts, exactly as #{window_layout} reported it; empty selects the zero-value behavior."},"source":{"file":"tmux/window_layout.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SelectLayoutRequest.Layout","product":"core","slug":"tmux-selectlayoutrequest-layout"},{"id":"tmux.SelectLayoutRequest.Spread","name":"Spread","kind":"attribute","modifiers":[],"parent":"tmux.SelectLayoutRequest","signatures":[],"type":"bool","doc":{"summary":"Spread distributes pane space evenly."},"source":{"file":"tmux/window_layout.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SelectLayoutRequest.Spread","product":"core","slug":"tmux-selectlayoutrequest-spread"},{"id":"tmux.SelectLayoutRequest.Next","name":"Next","kind":"attribute","modifiers":[],"parent":"tmux.SelectLayoutRequest","signatures":[],"type":"bool","doc":{"summary":"Next selects the next preset layout."},"source":{"file":"tmux/window_layout.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SelectLayoutRequest.Next","product":"core","slug":"tmux-selectlayoutrequest-next"},{"id":"tmux.SelectLayoutRequest.Previous","name":"Previous","kind":"attribute","modifiers":[],"parent":"tmux.SelectLayoutRequest","signatures":[],"type":"bool","doc":{"summary":"Previous selects the previous preset layout."},"source":{"file":"tmux/window_layout.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SelectLayoutRequest.Previous","product":"core","slug":"tmux-selectlayoutrequest-previous"},{"id":"tmux.SelectLayoutRequest.Validate","name":"Validate","kind":"method","modifiers":[],"parent":"tmux.SelectLayoutRequest","signatures":[{"raw":"func (request SelectLayoutRequest) Validate() error","params":[],"receiver":{"name":"request","type":"SelectLayoutRequest"},"returns":"error"}],"doc":{"summary":"Validate checks mode exclusivity, NUL bytes, candidate preset names and classic checksummed syntax and JSON envelopes without running tmux. Its zero value is valid. Invalid requests match [ErrInvalidServerCommandRequest]. Names and abbreviations valid on any supported tmux are accepted here; execution checks daemon support. tmux validates JSON contents, geometry and live pane counts when applying it."},"source":{"file":"tmux/window_layout.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SelectLayoutRequest.Validate","product":"core","slug":"tmux-selectlayoutrequest-validate"},{"id":"tmux.Window.SelectLayout","name":"SelectLayout","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SelectLayout(ctx context.Context, request SelectLayoutRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SelectLayoutRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SelectLayout applies one layout operation to the receiver's exact winlink. It changes pane geometry without selecting the window or promising client focus. The materialized receiver is not refreshed, so callers that need current pane geometry must obtain a new snapshot or refresh related models. A transport or context error can be delivery-ambiguous; the void result cannot carry partial state and no rollback is attempted."},"source":{"file":"tmux/window_layout.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SelectLayout","product":"core","slug":"tmux-window-selectlayout"},{"id":"tmux.Window.NextLayout","name":"NextLayout","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) NextLayout(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"NextLayout applies the next preset layout to the receiver's exact winlink. It changes pane geometry without selecting or refreshing the window. A transport or context error can be delivery-ambiguous; the void result cannot carry partial state and no rollback is attempted."},"source":{"file":"tmux/window_layout.go","line":324,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.NextLayout","product":"core","slug":"tmux-window-nextlayout"},{"id":"tmux.Window.PreviousLayout","name":"PreviousLayout","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) PreviousLayout(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"PreviousLayout applies the previous preset layout to the receiver's exact winlink. It changes pane geometry without selecting or refreshing the window. A transport or context error can be delivery-ambiguous; the void result cannot carry partial state and no rollback is attempted."},"source":{"file":"tmux/window_layout.go","line":341,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.PreviousLayout","product":"core","slug":"tmux-window-previouslayout"},{"id":"tmux.NewWindowRequest","name":"NewWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"NewWindowRequest configures window creation on tmux 3.2a or later. Its zero value uses inherited defaults; placement behavior depends on the receiver. [Session.NewWindow] uses tmux's next free index. [Window.NewWindow] instead targets the receiver's occupied index and normally returns a command error; KillExisting may replace it. [Window.NewWindow] rejects Index. SelectExisting may run name-expansion probes before creation.","body":"Pointer fields are explicit when nonnil. Methods copy them and Environment\nbefore I/O; concurrent mutation during the copy is unsafe."},"source":{"file":"tmux/window_lifecycle.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest","product":"core","slug":"tmux-newwindowrequest"},{"id":"tmux.NewWindowRequest.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.NewWindowRequest","signatures":[],"type":"*string","doc":{"summary":"Name is omitted when nil. A nonnil empty string remains an explicit -n operand. The value is copied before tmux is called."},"source":{"file":"tmux/window_lifecycle.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest.Name","product":"core","slug":"tmux-newwindowrequest-name"},{"id":"tmux.NewWindowRequest.Attach","name":"Attach","kind":"attribute","modifiers":[],"parent":"tmux.NewWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Attach lets the created or selected winlink become current in the target session; false preserves its current window."},"source":{"file":"tmux/window_lifecycle.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest.Attach","product":"core","slug":"tmux-newwindowrequest-attach"},{"id":"tmux.NewWindowRequest.Index","name":"Index","kind":"attribute","modifiers":[],"parent":"tmux.NewWindowRequest","signatures":[],"type":"*int","doc":{"summary":"Index selects an explicit nonnegative winlink index for Session.NewWindow; nil uses the next free index."},"source":{"file":"tmux/window_lifecycle.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest.Index","product":"core","slug":"tmux-newwindowrequest-index"},{"id":"tmux.NewWindowRequest.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"tmux.NewWindowRequest","signatures":[],"type":"string","doc":{"summary":"StartDirectory expands ~ and ~/... for the current user. Named-user forms such as ~other are rejected; empty inherits tmux's default."},"source":{"file":"tmux/window_lifecycle.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest.StartDirectory","product":"core","slug":"tmux-newwindowrequest-startdirectory"},{"id":"tmux.NewWindowRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.NewWindowRequest","signatures":[],"type":"string","doc":{"summary":"Command starts the window with this shell command; empty uses tmux's default command."},"source":{"file":"tmux/window_lifecycle.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest.Command","product":"core","slug":"tmux-newwindowrequest-command"},{"id":"tmux.NewWindowRequest.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"tmux.NewWindowRequest","signatures":[],"type":"map[string]string","doc":{"summary":"Environment is emitted in lexically sorted key order. The map is not retained; nil and an empty map both add no entries."},"source":{"file":"tmux/window_lifecycle.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest.Environment","product":"core","slug":"tmux-newwindowrequest-environment"},{"id":"tmux.NewWindowRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.NewWindowRequest","signatures":[],"type":"NewWindowDirection","doc":{"summary":"Direction places the new winlink relative to the target. Its zero value uses tmux's next free index with Session.NewWindow when Index is nil, but keeps Window.NewWindow on the receiver's occupied target. Use NewWindowDirectionAfter or NewWindowDirectionBefore for non-destructive relative creation through Window.NewWindow."},"source":{"file":"tmux/window_lifecycle.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest.Direction","product":"core","slug":"tmux-newwindowrequest-direction"},{"id":"tmux.NewWindowRequest.KillExisting","name":"KillExisting","kind":"attribute","modifiers":[],"parent":"tmux.NewWindowRequest","signatures":[],"type":"bool","doc":{"summary":"KillExisting asks tmux to destroy a window occupying the target index."},"source":{"file":"tmux/window_lifecycle.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest.KillExisting","product":"core","slug":"tmux-newwindowrequest-killexisting"},{"id":"tmux.NewWindowRequest.SelectExisting","name":"SelectExisting","kind":"attribute","modifiers":[],"parent":"tmux.NewWindowRequest","signatures":[],"type":"bool","doc":{"summary":"SelectExisting asks tmux to select an existing expanded-name match instead of creating another window. It requires Name."},"source":{"file":"tmux/window_lifecycle.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest.SelectExisting","product":"core","slug":"tmux-newwindowrequest-selectexisting"},{"id":"tmux.NewWindowDirection","name":"NewWindowDirection","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"NewWindowDirection selects placement relative to the target winlink on tmux 3.2a or later. Its zero value lets [Session.NewWindow] with nil Index use the next free index, while [Window.NewWindow] keeps the receiver's exact occupied target."},"source":{"file":"tmux/window_lifecycle.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowDirection","product":"core","slug":"tmux-newwindowdirection"},{"id":"tmux.NewWindowDirectionDefault","name":"NewWindowDirectionDefault","kind":"constant","modifiers":[],"signatures":[],"type":"NewWindowDirection","doc":{"summary":"NewWindowDirectionDefault uses the next free index with Session.NewWindow when Index is nil; Window.NewWindow instead keeps the receiver's exact occupied target."},"source":{"file":"tmux/window_lifecycle.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowDirectionDefault","product":"core","slug":"tmux-newwindowdirectiondefault"},{"id":"tmux.NewWindowDirectionAfter","name":"NewWindowDirectionAfter","kind":"constant","modifiers":[],"signatures":[],"type":"NewWindowDirection","doc":{"summary":"NewWindowDirectionAfter places the new winlink after the target."},"source":{"file":"tmux/window_lifecycle.go","line":65,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowDirectionAfter","product":"core","slug":"tmux-newwindowdirectionafter"},{"id":"tmux.NewWindowDirectionBefore","name":"NewWindowDirectionBefore","kind":"constant","modifiers":[],"signatures":[],"type":"NewWindowDirection","doc":{"summary":"NewWindowDirectionBefore places the new winlink before the target."},"source":{"file":"tmux/window_lifecycle.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowDirectionBefore","product":"core","slug":"tmux-newwindowdirectionbefore"},{"id":"tmux.Session.NewWindow","name":"NewWindow","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) NewWindow(ctx context.Context, request NewWindowRequest) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"NewWindowRequest"}],"receiver":{"name":"s","type":"Session"},"returns":"(Window, error)"}],"doc":{"summary":"NewWindow creates a winlink in the receiver session. Attach selects it as that session's current window; it is not a guarantee about clients attached to other sessions. The returned [Window] is freshly materialized in the receiver's exact session context, including when its stable [WindowID] is linked elsewhere.","body":"SelectExisting no-output recovery is available only when Index is nil. It\nexpands Name with tmux's version-specific rules and requires exactly one\nmatching window name in the receiver session. An explicit Index has no such\nrecovery. If tmux reports a WindowID before a transport or refresh failure,\nthe partial result contains that ID and the receiver SessionID with Index -1.\nOther failures return zero; creation is not rolled back.","examples":[{"lang":"console","intro":"Add a logs window to an existing session without selecting it. NewWindow returns the newly materialized window and its initial pane relation; the session record from NewSession still carries no window relations. Use Go 1.26.0 or newer and tmux 3.2a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-go.git libtmux-source && \\\n git -C libtmux-source checkout 6f3df55f8a41999e41225eefb3940545b834e6a2\n"},{"lang":"go","intro":"Save this dependency file as go.mod:","code":"module example.com/libtmux-api\n\ngo 1.26.0\n\nrequire github.com/libtmux/libtmux-go v0.0.0\n\nreplace github.com/libtmux/libtmux-go => ./libtmux-source\n"},{"lang":"go","intro":"Save this complete example as example_test.go. It creates a private temporary socket and stops its server before removing the directory. Cleanup failure fails the example and retains the socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-go/blob/6f3df55f8a41999e41225eefb3940545b834e6a2/tmux/api_session_new_window_example_test.go","code":"package tmux_test\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"time\"\n\n\t\"github.com/libtmux/libtmux-go/tmux\"\n)\n\n// Add a logs window to an existing session without selecting it. NewWindow\n// returns the newly materialized window and its initial pane relation;\n// the session record from NewSession still carries no window relations.\nfunc ExampleSession_NewWindow_complete() {\n\trun := func() (runErr error) {\n\t\tdirectory, err := os.MkdirTemp(\"\", \"libtmux-go-api-\")\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create socket directory: %w\", err)\n\t\t}\n\t\tserver, err := tmux.NewServer(tmux.ServerOptions{\n\t\t\tSocketPath: filepath.Join(directory, \"tmux.sock\"),\n\t\t\tConfigFile: \"/dev/null\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errors.Join(err, os.RemoveAll(directory))\n\t\t}\n\t\tdefer func() {\n\t\t\t// Cleanup has its own deadline because the operation may have timed out.\n\t\t\tcleanup, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\t\t\tdefer cancel()\n\t\t\tif err := server.Kill(cleanup); err != nil && !errors.Is(err, tmux.ErrNoServer) {\n\t\t\t\trunErr = errors.Join(runErr, fmt.Errorf(\"stop server at %s: %w\", directory, err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\trunErr = errors.Join(runErr, os.RemoveAll(directory))\n\t\t}()\n\t\tctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)\n\t\tdefer cancel()\n\t\tsession, err := server.NewSession(ctx, tmux.NewSessionRequest{\n\t\t\tName: \"work\", WindowName: \"editor\", Command: \"cat\", Width: 100, Height: 30,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create session: %w\", err)\n\t\t}\n\t\tname := \"logs\"\n\t\twindow, err := session.NewWindow(ctx, tmux.NewWindowRequest{\n\t\t\tName: &name, Command: \"cat\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create logs window: %w\", err)\n\t\t}\n\t\twindowName, ok := window.Name()\n\t\tif !ok {\n\t\t\treturn errors.New(\"created window has no name\")\n\t\t}\n\t\tpanes, relations := window.Panes()\n\t\tfmt.Println(\"window:\", windowName)\n\t\tfmt.Println(\"initial panes:\", len(panes), \"captured:\", relations)\n\t\twindows, err := session.SearchWindows(ctx, nil)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"list current windows: %w\", err)\n\t\t}\n\t\tfmt.Println(\"live windows:\", len(windows))\n\t\tcurrent, err := session.ResolveActiveWindow(ctx)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"resolve current window: %w\", err)\n\t\t}\n\t\tcurrentName, ok := current.Name()\n\t\tif !ok {\n\t\t\treturn errors.New(\"current window has no name\")\n\t\t}\n\t\tfmt.Println(\"current window:\", currentName)\n\t\treturn nil\n\t}\n\tif err := run(); err != nil {\n\t\tpanic(err)\n\t}\n\t// Output:\n\t// window: logs\n\t// initial panes: 1 captured: true\n\t// live windows: 2\n\t// current window: editor\n}\n"},{"lang":"console","intro":"Run the saved file. Go checks the Output comment and fails on different output or an operation or cleanup error:","code":"$ GOWORK=off go test -count=1 -v example_test.go\n"}]},"source":{"file":"tmux/window_lifecycle.go","line":82,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.NewWindow","product":"core","slug":"tmux-session-newwindow"},{"id":"tmux.Window.NewWindow","name":"NewWindow","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) NewWindow(ctx context.Context, request NewWindowRequest) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"NewWindowRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(Window, error)"}],"doc":{"summary":"NewWindow creates a window relative to the receiver's exact winlink. Set Direction to [NewWindowDirectionAfter] or [NewWindowDirectionBefore] for non-destructive relative creation. With the zero Direction, tmux targets the receiver's occupied index and normally returns a command error; KillExisting can destroy and replace that target. Attach changes the current window only in that target session. Index is rejected before execution because the receiver already supplies the target position. On tmux 3.8 and later, SelectExisting's -S also matches the receiver's own exact target (extended there to match -t as well as a window's name), so it always selects the receiver itself and prints nothing; the identity is already known without a probe. Earlier tmux only matched -S by name here, and always printed a created WindowID because the exact-target form never carries a bare name to match against.","body":"If tmux reports an ID before a transport or refresh failure, the partial result\ncontains it and the receiver SessionID with Index -1. Other failures return\nzero; creation is not rolled back."},"source":{"file":"tmux/window_lifecycle.go","line":108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.NewWindow","product":"core","slug":"tmux-window-newwindow"},{"id":"tmux.Window.Rename","name":"Rename","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Rename(ctx context.Context, name string) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"(Window, error)"}],"doc":{"summary":"Rename changes the stable window through the receiver's exact winlink and returns a canonical freshly materialized [Window]. The returned winlink may therefore use another session when the WindowID is linked. If the command succeeds but refresh fails, Rename returns the receiver with that error. A transport or context error can be delivery-ambiguous; no rollback is attempted."},"source":{"file":"tmux/window_lifecycle.go","line":348,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Rename","product":"core","slug":"tmux-window-rename"},{"id":"tmux.Window.Select","name":"Select","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Select(ctx context.Context) (Window, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"(Window, error)"}],"doc":{"summary":"Select makes the receiver's exact winlink current in its session. It does not promise focus for clients attached to other sessions. Select returns a canonical freshly materialized [Window], which may use another linked session for the same WindowID. If the command succeeds but refresh fails, it returns the receiver with that error. A transport or context error can be delivery-ambiguous; no rollback is attempted."},"source":{"file":"tmux/window_lifecycle.go","line":377,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Select","product":"core","slug":"tmux-window-select"},{"id":"tmux.LinkWindowRequest","name":"LinkWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"LinkWindowRequest configures linking a window into another session on tmux 3.2a or later. Its zero value is invalid because TargetSession is required. Nil TargetIndex asks tmux for a destination index; a nonnil value is explicit and must be nonnegative. After and Before are mutually exclusive and are rejected before execution. TargetIndex is read during the call and is not retained; callers must not mutate it concurrently."},"source":{"file":"tmux/window_link_move.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LinkWindowRequest","product":"core","slug":"tmux-linkwindowrequest"},{"id":"tmux.LinkWindowRequest.TargetSession","name":"TargetSession","kind":"attribute","modifiers":[],"parent":"tmux.LinkWindowRequest","signatures":[],"type":"SessionID","doc":{"summary":"TargetSession identifies the destination session in the receiver's tmux server."},"source":{"file":"tmux/window_link_move.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LinkWindowRequest.TargetSession","product":"core","slug":"tmux-linkwindowrequest-targetsession"},{"id":"tmux.LinkWindowRequest.TargetIndex","name":"TargetIndex","kind":"attribute","modifiers":[],"parent":"tmux.LinkWindowRequest","signatures":[],"type":"*int","doc":{"summary":"TargetIndex selects a destination winlink index; nil lets tmux choose."},"source":{"file":"tmux/window_link_move.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LinkWindowRequest.TargetIndex","product":"core","slug":"tmux-linkwindowrequest-targetindex"},{"id":"tmux.LinkWindowRequest.KillExisting","name":"KillExisting","kind":"attribute","modifiers":[],"parent":"tmux.LinkWindowRequest","signatures":[],"type":"bool","doc":{"summary":"KillExisting destroys a window already occupying the destination."},"source":{"file":"tmux/window_link_move.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LinkWindowRequest.KillExisting","product":"core","slug":"tmux-linkwindowrequest-killexisting"},{"id":"tmux.LinkWindowRequest.After","name":"After","kind":"attribute","modifiers":[],"parent":"tmux.LinkWindowRequest","signatures":[],"type":"bool","doc":{"summary":"After inserts the new winlink after the destination target."},"source":{"file":"tmux/window_link_move.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LinkWindowRequest.After","product":"core","slug":"tmux-linkwindowrequest-after"},{"id":"tmux.LinkWindowRequest.Before","name":"Before","kind":"attribute","modifiers":[],"parent":"tmux.LinkWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Before inserts the new winlink before the destination target."},"source":{"file":"tmux/window_link_move.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LinkWindowRequest.Before","product":"core","slug":"tmux-linkwindowrequest-before"},{"id":"tmux.LinkWindowRequest.Detach","name":"Detach","kind":"attribute","modifiers":[],"parent":"tmux.LinkWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Detach leaves the target session's current window unchanged."},"source":{"file":"tmux/window_link_move.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LinkWindowRequest.Detach","product":"core","slug":"tmux-linkwindowrequest-detach"},{"id":"tmux.UnlinkWindowRequest","name":"UnlinkWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"UnlinkWindowRequest configures unlinking one exact winlink on tmux 3.2a or later. Its zero value removes the link only when the stable window has another link. The request contains no retained caller-owned storage and has no invalid field combinations."},"source":{"file":"tmux/window_link_move.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnlinkWindowRequest","product":"core","slug":"tmux-unlinkwindowrequest"},{"id":"tmux.UnlinkWindowRequest.KillIfLast","name":"KillIfLast","kind":"attribute","modifiers":[],"parent":"tmux.UnlinkWindowRequest","signatures":[],"type":"bool","doc":{"summary":"KillIfLast permits unlinking and destroying a stable window with no other links."},"source":{"file":"tmux/window_link_move.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnlinkWindowRequest.KillIfLast","product":"core","slug":"tmux-unlinkwindowrequest-killiflast"},{"id":"tmux.MoveWindowRequest","name":"MoveWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"MoveWindowRequest configures moving one exact winlink on tmux 3.2a or later. Its zero value moves the receiver within its current session to a tmux-chosen index and lets the moved winlink become current. Nil TargetIndex asks tmux for that index; a nonnil value is explicit and must be nonnegative. After and Before are mutually exclusive. Renumber is a standalone mode mutually exclusive with TargetIndex, After, Before, NoSelect, and KillTarget. Invalid combinations are rejected before execution. TargetIndex is read during the call and is not retained; callers must not mutate it concurrently."},"source":{"file":"tmux/window_link_move.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MoveWindowRequest","product":"core","slug":"tmux-movewindowrequest"},{"id":"tmux.MoveWindowRequest.TargetSession","name":"TargetSession","kind":"attribute","modifiers":[],"parent":"tmux.MoveWindowRequest","signatures":[],"type":"SessionID","doc":{"summary":"TargetSession identifies the destination session; zero uses the receiver session."},"source":{"file":"tmux/window_link_move.go","line":51,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MoveWindowRequest.TargetSession","product":"core","slug":"tmux-movewindowrequest-targetsession"},{"id":"tmux.MoveWindowRequest.TargetIndex","name":"TargetIndex","kind":"attribute","modifiers":[],"parent":"tmux.MoveWindowRequest","signatures":[],"type":"*int","doc":{"summary":"TargetIndex selects a destination winlink index; nil lets tmux choose."},"source":{"file":"tmux/window_link_move.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MoveWindowRequest.TargetIndex","product":"core","slug":"tmux-movewindowrequest-targetindex"},{"id":"tmux.MoveWindowRequest.After","name":"After","kind":"attribute","modifiers":[],"parent":"tmux.MoveWindowRequest","signatures":[],"type":"bool","doc":{"summary":"After inserts the moved winlink after the destination target."},"source":{"file":"tmux/window_link_move.go","line":55,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MoveWindowRequest.After","product":"core","slug":"tmux-movewindowrequest-after"},{"id":"tmux.MoveWindowRequest.Before","name":"Before","kind":"attribute","modifiers":[],"parent":"tmux.MoveWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Before inserts the moved winlink before the destination target."},"source":{"file":"tmux/window_link_move.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MoveWindowRequest.Before","product":"core","slug":"tmux-movewindowrequest-before"},{"id":"tmux.MoveWindowRequest.NoSelect","name":"NoSelect","kind":"attribute","modifiers":[],"parent":"tmux.MoveWindowRequest","signatures":[],"type":"bool","doc":{"summary":"NoSelect leaves the destination session's current window unchanged."},"source":{"file":"tmux/window_link_move.go","line":59,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MoveWindowRequest.NoSelect","product":"core","slug":"tmux-movewindowrequest-noselect"},{"id":"tmux.MoveWindowRequest.KillTarget","name":"KillTarget","kind":"attribute","modifiers":[],"parent":"tmux.MoveWindowRequest","signatures":[],"type":"bool","doc":{"summary":"KillTarget destroys a window already occupying the destination."},"source":{"file":"tmux/window_link_move.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MoveWindowRequest.KillTarget","product":"core","slug":"tmux-movewindowrequest-killtarget"},{"id":"tmux.MoveWindowRequest.Renumber","name":"Renumber","kind":"attribute","modifiers":[],"parent":"tmux.MoveWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Renumber renumbers the target session according to its base-index option instead of moving the receiver to a new destination."},"source":{"file":"tmux/window_link_move.go","line":64,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MoveWindowRequest.Renumber","product":"core","slug":"tmux-movewindowrequest-renumber"},{"id":"tmux.Window.Link","name":"Link","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Link(ctx context.Context, request LinkWindowRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"LinkWindowRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"Link adds the stable window to TargetSession as another winlink, targeting the source through the receiver's exact session. Unless Detach is set, tmux makes the new link current in the target session; this is not a global client-focus guarantee. Link does not refresh or mutate the materialized source [Window]. A transport or context error can be delivery-ambiguous; the void result cannot carry the new winlink identity and no rollback is attempted."},"source":{"file":"tmux/window_link_move.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Link","product":"core","slug":"tmux-window-link"},{"id":"tmux.Window.Unlink","name":"Unlink","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Unlink(ctx context.Context, request UnlinkWindowRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"UnlinkWindowRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"Unlink removes the receiver's exact session winlink without refreshing the materialized receiver. Without KillIfLast, tmux rejects removal of a stable window's only link; with it, that window is destroyed. A transport or context error can be delivery-ambiguous; the void result cannot carry partial identity and no rollback is attempted."},"source":{"file":"tmux/window_link_move.go","line":149,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Unlink","product":"core","slug":"tmux-window-unlink"},{"id":"tmux.Window.Move","name":"Move","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Move(ctx context.Context, request MoveWindowRequest) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"MoveWindowRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(Window, error)"}],"doc":{"summary":"Move removes the receiver's exact winlink and places it in TargetSession, or renumbers the selected session when Renumber is set. Unless NoSelect is set, tmux makes the moved winlink current in the destination session; this is not a global client-focus guarantee. The stable WindowID does not by itself identify either linked view.","body":"Move returns a canonical freshly materialized [Window], which may use a\ndifferent linked session than the destination. If the command succeeds but\nrefresh fails, it returns the receiver with that error. Earlier failures\nreturn zero; transport errors are delivery-ambiguous."},"source":{"file":"tmux/window_link_move.go","line":174,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Move","product":"core","slug":"tmux-window-move"},{"id":"tmux.SwapWindowRequest","name":"SwapWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SwapWindowRequest configures swapping the receiver with one exact winlink on tmux 3.2a or later. Its zero value is invalid because Target must be a complete Window handle. The endpoints must be proven to share a daemon through connection state or the same nonempty SocketPath; matching socket names alone are insufficient. Validation completes before execution."},"source":{"file":"tmux/window_pane_swap.go","line":10,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapWindowRequest","product":"core","slug":"tmux-swapwindowrequest"},{"id":"tmux.SwapWindowRequest.Target","name":"Target","kind":"attribute","modifiers":[],"parent":"tmux.SwapWindowRequest","signatures":[],"type":"Window","doc":{"summary":"Target is the exact other winlink to swap with the receiver."},"source":{"file":"tmux/window_pane_swap.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapWindowRequest.Target","product":"core","slug":"tmux-swapwindowrequest-target"},{"id":"tmux.SwapWindowRequest.Detach","name":"Detach","kind":"attribute","modifiers":[],"parent":"tmux.SwapWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Detach leaves the affected sessions' current-window selection unchanged."},"source":{"file":"tmux/window_pane_swap.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapWindowRequest.Detach","product":"core","slug":"tmux-swapwindowrequest-detach"},{"id":"tmux.WindowSwapResult","name":"WindowSwapResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WindowSwapResult contains both original stable window identities in their post-swap exact winlink views. Its zero value contains no usable endpoints."},"source":{"file":"tmux/window_pane_swap.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSwapResult","product":"core","slug":"tmux-windowswapresult"},{"id":"tmux.WindowSwapResult.Window","name":"Window","kind":"attribute","modifiers":[],"parent":"tmux.WindowSwapResult","signatures":[],"type":"Window","doc":{"summary":"Window is the receiver's original WindowID at its post-swap exact winlink."},"source":{"file":"tmux/window_pane_swap.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSwapResult.Window","product":"core","slug":"tmux-windowswapresult-window"},{"id":"tmux.WindowSwapResult.Target","name":"Target","kind":"attribute","modifiers":[],"parent":"tmux.WindowSwapResult","signatures":[],"type":"Window","doc":{"summary":"Target is the target's original WindowID at its post-swap exact winlink."},"source":{"file":"tmux/window_pane_swap.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSwapResult.Target","product":"core","slug":"tmux-windowswapresult-target"},{"id":"tmux.SwapPaneDirection","name":"SwapPaneDirection","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SwapPaneDirection selects an adjacent pane for swap-pane on tmux 3.2a or later. Its zero value selects no adjacent pane."},"source":{"file":"tmux/window_pane_swap.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapPaneDirection","product":"core","slug":"tmux-swappanedirection"},{"id":"tmux.SwapPaneDirectionNone","name":"SwapPaneDirectionNone","kind":"constant","modifiers":[],"signatures":[],"type":"SwapPaneDirection","doc":{"summary":"SwapPaneDirectionNone selects no adjacent pane."},"source":{"file":"tmux/window_pane_swap.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapPaneDirectionNone","product":"core","slug":"tmux-swappanedirectionnone"},{"id":"tmux.SwapPaneDirectionUp","name":"SwapPaneDirectionUp","kind":"constant","modifiers":[],"signatures":[],"type":"SwapPaneDirection","doc":{"summary":"SwapPaneDirectionUp swaps with the previous pane in index order."},"source":{"file":"tmux/window_pane_swap.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapPaneDirectionUp","product":"core","slug":"tmux-swappanedirectionup"},{"id":"tmux.SwapPaneDirectionDown","name":"SwapPaneDirectionDown","kind":"constant","modifiers":[],"signatures":[],"type":"SwapPaneDirection","doc":{"summary":"SwapPaneDirectionDown swaps with the next pane in index order."},"source":{"file":"tmux/window_pane_swap.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapPaneDirectionDown","product":"core","slug":"tmux-swappanedirectiondown"},{"id":"tmux.SwapPaneRequest","name":"SwapPaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SwapPaneRequest configures swapping with an exact or adjacent pane on tmux 3.2a or later. Its zero value is invalid: exactly one complete Target or Direction is required. An explicit Target must differ from the receiver and must be proven to share a daemon through connection state or the same nonempty SocketPath; matching socket names alone are insufficient. Invalid choices are rejected before execution."},"source":{"file":"tmux/window_pane_swap.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapPaneRequest","product":"core","slug":"tmux-swappanerequest"},{"id":"tmux.SwapPaneRequest.Target","name":"Target","kind":"attribute","modifiers":[],"parent":"tmux.SwapPaneRequest","signatures":[],"type":"Pane","doc":{"summary":"Target selects an exact other pane; a zero Pane omits it."},"source":{"file":"tmux/window_pane_swap.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapPaneRequest.Target","product":"core","slug":"tmux-swappanerequest-target"},{"id":"tmux.SwapPaneRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.SwapPaneRequest","signatures":[],"type":"SwapPaneDirection","doc":{"summary":"Direction selects an adjacent pane; zero omits it."},"source":{"file":"tmux/window_pane_swap.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapPaneRequest.Direction","product":"core","slug":"tmux-swappanerequest-direction"},{"id":"tmux.SwapPaneRequest.Detach","name":"Detach","kind":"attribute","modifiers":[],"parent":"tmux.SwapPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Detach leaves the active-pane selection unchanged."},"source":{"file":"tmux/window_pane_swap.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapPaneRequest.Detach","product":"core","slug":"tmux-swappanerequest-detach"},{"id":"tmux.SwapPaneRequest.KeepZoom","name":"KeepZoom","kind":"attribute","modifiers":[],"parent":"tmux.SwapPaneRequest","signatures":[],"type":"bool","doc":{"summary":"KeepZoom preserves the affected window's zoomed state."},"source":{"file":"tmux/window_pane_swap.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapPaneRequest.KeepZoom","product":"core","slug":"tmux-swappanerequest-keepzoom"},{"id":"tmux.PaneSwapResult","name":"PaneSwapResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneSwapResult contains original stable pane identities in their post-swap exact linked-pane views. Its zero value contains no usable endpoints. Target is zero for a directional swap because tmux does not report the adjacent pane identity."},"source":{"file":"tmux/window_pane_swap.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSwapResult","product":"core","slug":"tmux-paneswapresult"},{"id":"tmux.PaneSwapResult.Pane","name":"Pane","kind":"attribute","modifiers":[],"parent":"tmux.PaneSwapResult","signatures":[],"type":"Pane","doc":{"summary":"Pane is the receiver's original PaneID at its post-swap exact view."},"source":{"file":"tmux/window_pane_swap.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSwapResult.Pane","product":"core","slug":"tmux-paneswapresult-pane"},{"id":"tmux.PaneSwapResult.Target","name":"Target","kind":"attribute","modifiers":[],"parent":"tmux.PaneSwapResult","signatures":[],"type":"Pane","doc":{"summary":"Target is the explicit target's original PaneID at its post-swap exact view, or zero after a directional swap."},"source":{"file":"tmux/window_pane_swap.go","line":66,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSwapResult.Target","product":"core","slug":"tmux-paneswapresult-target"},{"id":"tmux.Window.Swap","name":"Swap","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Swap(ctx context.Context, request SwapWindowRequest) (WindowSwapResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SwapWindowRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(WindowSwapResult, error)"}],"doc":{"summary":"Swap exchanges the receiver and Target exact winlinks. Their stable WindowIDs move to the opposite session-and-index views; a WindowID alone does not identify either endpoint. Unless Detach is set, tmux may change the affected sessions' current-window selection; this is not a global client-focus guarantee.","body":"Swap returns both freshly materialized exact endpoint views. If exact\nrefresh fails after the command, it returns a predicted [WindowSwapResult]\ncarrying both stable IDs and post-swap session/index contexts with the\nerror. Earlier failures return zero; transport errors are delivery-ambiguous."},"source":{"file":"tmux/window_pane_swap.go","line":79,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Swap","product":"core","slug":"tmux-window-swap"},{"id":"tmux.Pane.Swap","name":"Swap","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Swap(ctx context.Context, request SwapPaneRequest) (PaneSwapResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SwapPaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"(PaneSwapResult, error)"}],"doc":{"summary":"Swap exchanges the receiver with one exact or adjacent pane. Explicit targets use exact linked-pane views; PaneID alone does not distinguish linked views. Unless Detach is set, tmux may change active-pane selection; this is not a global client-focus guarantee. A directional swap cannot identify the adjacent target because tmux does not report it, so the returned [PaneSwapResult].Target is zero.","body":"An explicit swap returns freshly materialized exact views for both original\nPaneIDs. If exact refresh fails after the command, Swap returns a predicted\nresult carrying every known identity with the error. Earlier failures return\nzero; transport errors are delivery-ambiguous."},"source":{"file":"tmux/window_pane_swap.go","line":133,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Swap","product":"core","slug":"tmux-pane-swap"},{"id":"tmux.PaneSelectDirection","name":"PaneSelectDirection","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneSelectDirection selects a pane relative to the command target on tmux 3.2a or later. Its zero value selects no relative direction."},"source":{"file":"tmux/window_pane_topology.go","line":7,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectDirection","product":"core","slug":"tmux-paneselectdirection"},{"id":"tmux.PaneSelectDirectionNone","name":"PaneSelectDirectionNone","kind":"constant","modifiers":[],"signatures":[],"type":"PaneSelectDirection","doc":{"summary":"PaneSelectDirectionNone selects no relative pane."},"source":{"file":"tmux/window_pane_topology.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectDirectionNone","product":"core","slug":"tmux-paneselectdirectionnone"},{"id":"tmux.PaneSelectDirectionUp","name":"PaneSelectDirectionUp","kind":"constant","modifiers":[],"signatures":[],"type":"PaneSelectDirection","doc":{"summary":"PaneSelectDirectionUp selects the pane above the target."},"source":{"file":"tmux/window_pane_topology.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectDirectionUp","product":"core","slug":"tmux-paneselectdirectionup"},{"id":"tmux.PaneSelectDirectionDown","name":"PaneSelectDirectionDown","kind":"constant","modifiers":[],"signatures":[],"type":"PaneSelectDirection","doc":{"summary":"PaneSelectDirectionDown selects the pane below the target."},"source":{"file":"tmux/window_pane_topology.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectDirectionDown","product":"core","slug":"tmux-paneselectdirectiondown"},{"id":"tmux.PaneSelectDirectionLeft","name":"PaneSelectDirectionLeft","kind":"constant","modifiers":[],"signatures":[],"type":"PaneSelectDirection","doc":{"summary":"PaneSelectDirectionLeft selects the pane to the left of the target."},"source":{"file":"tmux/window_pane_topology.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectDirectionLeft","product":"core","slug":"tmux-paneselectdirectionleft"},{"id":"tmux.PaneSelectDirectionRight","name":"PaneSelectDirectionRight","kind":"constant","modifiers":[],"signatures":[],"type":"PaneSelectDirection","doc":{"summary":"PaneSelectDirectionRight selects the pane to the right of the target."},"source":{"file":"tmux/window_pane_topology.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectDirectionRight","product":"core","slug":"tmux-paneselectdirectionright"},{"id":"tmux.PaneSelectDirectionLast","name":"PaneSelectDirectionLast","kind":"constant","modifiers":[],"signatures":[],"type":"PaneSelectDirection","doc":{"summary":"PaneSelectDirectionLast selects the previously active pane."},"source":{"file":"tmux/window_pane_topology.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectDirectionLast","product":"core","slug":"tmux-paneselectdirectionlast"},{"id":"tmux.PaneMarkMode","name":"PaneMarkMode","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneMarkMode changes tmux's server-wide marked pane on tmux 3.2a or later. Its zero value leaves the mark unchanged."},"source":{"file":"tmux/window_pane_topology.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneMarkMode","product":"core","slug":"tmux-panemarkmode"},{"id":"tmux.PaneMarkUnchanged","name":"PaneMarkUnchanged","kind":"constant","modifiers":[],"signatures":[],"type":"PaneMarkMode","doc":{"summary":"PaneMarkUnchanged leaves the server-wide marked pane unchanged."},"source":{"file":"tmux/window_pane_topology.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneMarkUnchanged","product":"core","slug":"tmux-panemarkunchanged"},{"id":"tmux.PaneMarkSet","name":"PaneMarkSet","kind":"constant","modifiers":[],"signatures":[],"type":"PaneMarkMode","doc":{"summary":"PaneMarkSet makes the target the server-wide marked pane without selecting it."},"source":{"file":"tmux/window_pane_topology.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneMarkSet","product":"core","slug":"tmux-panemarkset"},{"id":"tmux.PaneMarkClear","name":"PaneMarkClear","kind":"constant","modifiers":[],"signatures":[],"type":"PaneMarkMode","doc":{"summary":"PaneMarkClear clears the server-wide marked pane without selecting the target."},"source":{"file":"tmux/window_pane_topology.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneMarkClear","product":"core","slug":"tmux-panemarkclear"},{"id":"tmux.PaneInputMode","name":"PaneInputMode","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneInputMode changes whether a pane accepts input on tmux 3.2a or later. Its zero value leaves input state unchanged."},"source":{"file":"tmux/window_pane_topology.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneInputMode","product":"core","slug":"tmux-paneinputmode"},{"id":"tmux.PaneInputUnchanged","name":"PaneInputUnchanged","kind":"constant","modifiers":[],"signatures":[],"type":"PaneInputMode","doc":{"summary":"PaneInputUnchanged leaves the target pane's input state unchanged."},"source":{"file":"tmux/window_pane_topology.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneInputUnchanged","product":"core","slug":"tmux-paneinputunchanged"},{"id":"tmux.PaneInputDisable","name":"PaneInputDisable","kind":"constant","modifiers":[],"signatures":[],"type":"PaneInputMode","doc":{"summary":"PaneInputDisable disables input without selecting the target pane."},"source":{"file":"tmux/window_pane_topology.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneInputDisable","product":"core","slug":"tmux-paneinputdisable"},{"id":"tmux.PaneInputEnable","name":"PaneInputEnable","kind":"constant","modifiers":[],"signatures":[],"type":"PaneInputMode","doc":{"summary":"PaneInputEnable enables input without selecting the target pane."},"source":{"file":"tmux/window_pane_topology.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneInputEnable","product":"core","slug":"tmux-paneinputenable"},{"id":"tmux.WindowSelectPaneRequest","name":"WindowSelectPaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WindowSelectPaneRequest selects either one exact pane or one relative pane. Its zero value is invalid: exactly one of Target and Direction is required. Target must be a complete pane handle in the receiver's exact winlink and must be proven to share a daemon through connection state or the same nonempty SocketPath; matching socket names alone are insufficient. Invalid values are rejected before execution."},"source":{"file":"tmux/window_pane_topology.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSelectPaneRequest","product":"core","slug":"tmux-windowselectpanerequest"},{"id":"tmux.WindowSelectPaneRequest.Target","name":"Target","kind":"attribute","modifiers":[],"parent":"tmux.WindowSelectPaneRequest","signatures":[],"type":"Pane","doc":{"summary":"Target selects one exact pane in the receiver winlink; a zero Pane omits this choice."},"source":{"file":"tmux/window_pane_topology.go","line":64,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSelectPaneRequest.Target","product":"core","slug":"tmux-windowselectpanerequest-target"},{"id":"tmux.WindowSelectPaneRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.WindowSelectPaneRequest","signatures":[],"type":"PaneSelectDirection","doc":{"summary":"Direction selects a pane relative to the receiver window's active pane; zero omits this choice."},"source":{"file":"tmux/window_pane_topology.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSelectPaneRequest.Direction","product":"core","slug":"tmux-windowselectpanerequest-direction"},{"id":"tmux.WindowSelectPaneRequest.KeepZoom","name":"KeepZoom","kind":"attribute","modifiers":[],"parent":"tmux.WindowSelectPaneRequest","signatures":[],"type":"bool","doc":{"summary":"KeepZoom preserves the window's zoomed state."},"source":{"file":"tmux/window_pane_topology.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSelectPaneRequest.KeepZoom","product":"core","slug":"tmux-windowselectpanerequest-keepzoom"},{"id":"tmux.PaneSelectRequest","name":"PaneSelectRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneSelectRequest configures select-pane for one exact receiver. Closed enums prevent conflicting direction, mark, and input flags. Its zero value selects the receiver. Mark rejects every other option. Input rejects Direction and KeepZoom because changing input does not select a pane. These combinations and enum ranges are validated before execution."},"source":{"file":"tmux/window_pane_topology.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectRequest","product":"core","slug":"tmux-paneselectrequest"},{"id":"tmux.PaneSelectRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.PaneSelectRequest","signatures":[],"type":"PaneSelectDirection","doc":{"summary":"Direction selects a pane relative to the receiver; zero selects the receiver unless Mark or Input is set."},"source":{"file":"tmux/window_pane_topology.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectRequest.Direction","product":"core","slug":"tmux-paneselectrequest-direction"},{"id":"tmux.PaneSelectRequest.KeepZoom","name":"KeepZoom","kind":"attribute","modifiers":[],"parent":"tmux.PaneSelectRequest","signatures":[],"type":"bool","doc":{"summary":"KeepZoom preserves the window's zoomed state while selecting."},"source":{"file":"tmux/window_pane_topology.go","line":82,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectRequest.KeepZoom","product":"core","slug":"tmux-paneselectrequest-keepzoom"},{"id":"tmux.PaneSelectRequest.Mark","name":"Mark","kind":"attribute","modifiers":[],"parent":"tmux.PaneSelectRequest","signatures":[],"type":"PaneMarkMode","doc":{"summary":"Mark changes the server-wide marked pane without selecting; zero leaves it unchanged."},"source":{"file":"tmux/window_pane_topology.go","line":85,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectRequest.Mark","product":"core","slug":"tmux-paneselectrequest-mark"},{"id":"tmux.PaneSelectRequest.Input","name":"Input","kind":"attribute","modifiers":[],"parent":"tmux.PaneSelectRequest","signatures":[],"type":"PaneInputMode","doc":{"summary":"Input changes whether the receiver accepts input without selecting; zero leaves input state unchanged."},"source":{"file":"tmux/window_pane_topology.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectRequest.Input","product":"core","slug":"tmux-paneselectrequest-input"},{"id":"tmux.LastPaneRequest","name":"LastPaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"LastPaneRequest configures last-pane on tmux 3.2a or later. Its zero value selects the previously active pane. Input and KeepZoom are mutually exclusive and are validated before execution; an Input mode changes the previous pane's input state without selecting it."},"source":{"file":"tmux/window_pane_topology.go","line":95,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LastPaneRequest","product":"core","slug":"tmux-lastpanerequest"},{"id":"tmux.LastPaneRequest.Input","name":"Input","kind":"attribute","modifiers":[],"parent":"tmux.LastPaneRequest","signatures":[],"type":"PaneInputMode","doc":{"summary":"Input changes the previous pane's input state; zero performs selection."},"source":{"file":"tmux/window_pane_topology.go","line":97,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LastPaneRequest.Input","product":"core","slug":"tmux-lastpanerequest-input"},{"id":"tmux.LastPaneRequest.KeepZoom","name":"KeepZoom","kind":"attribute","modifiers":[],"parent":"tmux.LastPaneRequest","signatures":[],"type":"bool","doc":{"summary":"KeepZoom preserves the window's zoomed state during selection."},"source":{"file":"tmux/window_pane_topology.go","line":99,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LastPaneRequest.KeepZoom","product":"core","slug":"tmux-lastpanerequest-keepzoom"},{"id":"tmux.RotateWindowDirection","name":"RotateWindowDirection","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"RotateWindowDirection selects rotate-window's direction on tmux 3.2a or later. Its zero value uses tmux's default rotation."},"source":{"file":"tmux/window_pane_topology.go","line":104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RotateWindowDirection","product":"core","slug":"tmux-rotatewindowdirection"},{"id":"tmux.RotateWindowDefault","name":"RotateWindowDefault","kind":"constant","modifiers":[],"signatures":[],"type":"RotateWindowDirection","doc":{"summary":"RotateWindowDefault uses tmux's default rotation."},"source":{"file":"tmux/window_pane_topology.go","line":109,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RotateWindowDefault","product":"core","slug":"tmux-rotatewindowdefault"},{"id":"tmux.RotateWindowUp","name":"RotateWindowUp","kind":"constant","modifiers":[],"signatures":[],"type":"RotateWindowDirection","doc":{"summary":"RotateWindowUp rotates pane positions toward lower indexes."},"source":{"file":"tmux/window_pane_topology.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RotateWindowUp","product":"core","slug":"tmux-rotatewindowup"},{"id":"tmux.RotateWindowDown","name":"RotateWindowDown","kind":"constant","modifiers":[],"signatures":[],"type":"RotateWindowDirection","doc":{"summary":"RotateWindowDown rotates pane positions toward higher indexes."},"source":{"file":"tmux/window_pane_topology.go","line":113,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RotateWindowDown","product":"core","slug":"tmux-rotatewindowdown"},{"id":"tmux.RotateWindowRequest","name":"RotateWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"RotateWindowRequest configures rotate-window. Its zero value uses tmux's default rotation; enum validation happens before execution."},"source":{"file":"tmux/window_pane_topology.go","line":118,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RotateWindowRequest","product":"core","slug":"tmux-rotatewindowrequest"},{"id":"tmux.RotateWindowRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.RotateWindowRequest","signatures":[],"type":"RotateWindowDirection","doc":{"summary":"Direction selects the rotation direction; zero uses tmux's default."},"source":{"file":"tmux/window_pane_topology.go","line":120,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RotateWindowRequest.Direction","product":"core","slug":"tmux-rotatewindowrequest-direction"},{"id":"tmux.RotateWindowRequest.KeepZoom","name":"KeepZoom","kind":"attribute","modifiers":[],"parent":"tmux.RotateWindowRequest","signatures":[],"type":"bool","doc":{"summary":"KeepZoom preserves the window's zoomed state."},"source":{"file":"tmux/window_pane_topology.go","line":122,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RotateWindowRequest.KeepZoom","product":"core","slug":"tmux-rotatewindowrequest-keepzoom"},{"id":"tmux.Window.SelectPane","name":"SelectPane","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SelectPane(\n\tctx context.Context,\n\trequest WindowSelectPaneRequest,\n) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"WindowSelectPaneRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(Pane, error)"}],"doc":{"summary":"SelectPane makes an exact or relative pane active in the receiver's exact winlink without selecting the window in its session. Target must belong to that same SessionID and WindowID; a PaneID alone does not identify a linked view. The returned [Pane] is the freshly materialized active pane in the receiver context, not a canonical ID-only view.","body":"Command or refresh failures return zero because active-pane selection has no\nreliable partial identity. Transport errors are delivery-ambiguous."},"source":{"file":"tmux/window_pane_topology.go","line":133,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SelectPane","product":"core","slug":"tmux-window-selectpane"},{"id":"tmux.Pane.Select","name":"Select","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Select(ctx context.Context, request PaneSelectRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"PaneSelectRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"Select applies select-pane to the receiver's exact linked-pane view. Direction makes an adjacent pane active, but the returned [Pane] is a fresh exact refresh of the receiver rather than the newly active pane. With no Direction, Mark, or Input, the receiver becomes active. Mark changes the server-wide marked pane without selection; Input changes the receiver's input state without selection. None of these modes selects the window in its session or promises client focus.","body":"A refresh failure returns the receiver with the error; earlier failures return zero."},"source":{"file":"tmux/window_pane_topology.go","line":186,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Select","product":"core","slug":"tmux-pane-select"},{"id":"tmux.Window.LastPane","name":"LastPane","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) LastPane(ctx context.Context, request LastPaneRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"LastPaneRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(Pane, error)"}],"doc":{"summary":"LastPane targets the receiver's exact winlink. Its zero request makes the previously active pane active without selecting the window in its session. With an Input mode, tmux changes the previous pane's input state without selecting it; the returned [Pane] is still the freshly materialized active pane in the receiver context.","body":"Command or refresh failures return zero because the active view needs refresh."},"source":{"file":"tmux/window_pane_topology.go","line":213,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.LastPane","product":"core","slug":"tmux-window-lastpane"},{"id":"tmux.Window.Rotate","name":"Rotate","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Rotate(ctx context.Context, request RotateWindowRequest) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"RotateWindowRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(Window, error)"}],"doc":{"summary":"Rotate rotates pane positions in the receiver's exact winlink without selecting the window or promising client focus. It returns a freshly materialized exact [Window] preserving the receiver SessionID, rather than a canonical ID-only view. If the command succeeds but refresh fails, Rotate returns the receiver with that error; earlier failures return zero."},"source":{"file":"tmux/window_pane_topology.go","line":247,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Rotate","product":"core","slug":"tmux-window-rotate"},{"id":"tmux.WindowResizeDirection","name":"WindowResizeDirection","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WindowResizeDirection selects one directional resize operation on tmux 3.2a or later. Its zero value selects no directional adjustment."},"source":{"file":"tmux/window_resize.go","line":10,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowResizeDirection","product":"core","slug":"tmux-windowresizedirection"},{"id":"tmux.WindowResizeDirectionNone","name":"WindowResizeDirectionNone","kind":"constant","modifiers":[],"signatures":[],"type":"WindowResizeDirection","doc":{"summary":"WindowResizeDirectionNone selects no directional adjustment."},"source":{"file":"tmux/window_resize.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowResizeDirectionNone","product":"core","slug":"tmux-windowresizedirectionnone"},{"id":"tmux.WindowResizeDirectionUp","name":"WindowResizeDirectionUp","kind":"constant","modifiers":[],"signatures":[],"type":"WindowResizeDirection","doc":{"summary":"WindowResizeDirectionUp adjusts the window upward."},"source":{"file":"tmux/window_resize.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowResizeDirectionUp","product":"core","slug":"tmux-windowresizedirectionup"},{"id":"tmux.WindowResizeDirectionDown","name":"WindowResizeDirectionDown","kind":"constant","modifiers":[],"signatures":[],"type":"WindowResizeDirection","doc":{"summary":"WindowResizeDirectionDown adjusts the window downward."},"source":{"file":"tmux/window_resize.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowResizeDirectionDown","product":"core","slug":"tmux-windowresizedirectiondown"},{"id":"tmux.WindowResizeDirectionLeft","name":"WindowResizeDirectionLeft","kind":"constant","modifiers":[],"signatures":[],"type":"WindowResizeDirection","doc":{"summary":"WindowResizeDirectionLeft adjusts the window leftward."},"source":{"file":"tmux/window_resize.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowResizeDirectionLeft","product":"core","slug":"tmux-windowresizedirectionleft"},{"id":"tmux.WindowResizeDirectionRight","name":"WindowResizeDirectionRight","kind":"constant","modifiers":[],"signatures":[],"type":"WindowResizeDirection","doc":{"summary":"WindowResizeDirectionRight adjusts the window rightward."},"source":{"file":"tmux/window_resize.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowResizeDirectionRight","product":"core","slug":"tmux-windowresizedirectionright"},{"id":"tmux.ResizeWindowRequest","name":"ResizeWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ResizeWindowRequest selects one directional, manual, expand, or shrink operation. Height and Width may be set together. A zero request asks tmux to reapply the current manual size. Direction requires a positive Adjustment; that pair, dimensions, Expand, and Shrink are mutually exclusive and are validated before execution. Zero Adjustment, Height, and Width omit their modes; nonzero values must be positive. The request is supported on tmux 3.2a or later."},"source":{"file":"tmux/window_resize.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizeWindowRequest","product":"core","slug":"tmux-resizewindowrequest"},{"id":"tmux.ResizeWindowRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.ResizeWindowRequest","signatures":[],"type":"WindowResizeDirection","doc":{"summary":"Direction selects a directional adjustment; zero selects another mode."},"source":{"file":"tmux/window_resize.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizeWindowRequest.Direction","product":"core","slug":"tmux-resizewindowrequest-direction"},{"id":"tmux.ResizeWindowRequest.Adjustment","name":"Adjustment","kind":"attribute","modifiers":[],"parent":"tmux.ResizeWindowRequest","signatures":[],"type":"int","doc":{"summary":"Adjustment is the required positive amount for Direction; zero omits it."},"source":{"file":"tmux/window_resize.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizeWindowRequest.Adjustment","product":"core","slug":"tmux-resizewindowrequest-adjustment"},{"id":"tmux.ResizeWindowRequest.Height","name":"Height","kind":"attribute","modifiers":[],"parent":"tmux.ResizeWindowRequest","signatures":[],"type":"int","doc":{"summary":"Height sets a positive manual height; zero preserves the current height."},"source":{"file":"tmux/window_resize.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizeWindowRequest.Height","product":"core","slug":"tmux-resizewindowrequest-height"},{"id":"tmux.ResizeWindowRequest.Width","name":"Width","kind":"attribute","modifiers":[],"parent":"tmux.ResizeWindowRequest","signatures":[],"type":"int","doc":{"summary":"Width sets a positive manual width; zero preserves the current width."},"source":{"file":"tmux/window_resize.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizeWindowRequest.Width","product":"core","slug":"tmux-resizewindowrequest-width"},{"id":"tmux.ResizeWindowRequest.Expand","name":"Expand","kind":"attribute","modifiers":[],"parent":"tmux.ResizeWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Expand sets the window to the size of the largest session containing it."},"source":{"file":"tmux/window_resize.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizeWindowRequest.Expand","product":"core","slug":"tmux-resizewindowrequest-expand"},{"id":"tmux.ResizeWindowRequest.Shrink","name":"Shrink","kind":"attribute","modifiers":[],"parent":"tmux.ResizeWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Shrink sets the window to the size of the smallest session containing it."},"source":{"file":"tmux/window_resize.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizeWindowRequest.Shrink","product":"core","slug":"tmux-resizewindowrequest-shrink"},{"id":"tmux.Window.Resize","name":"Resize","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Resize(ctx context.Context, request ResizeWindowRequest) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ResizeWindowRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(Window, error)"}],"doc":{"summary":"Resize changes the stable window's size through the receiver's exact winlink. It does not select the window or promise any client focus. Resize returns a canonical freshly materialized [Window], which may use another linked session for the same WindowID. If the command succeeds but refresh fails, it returns the receiver with that error; other command failures return a zero Window. A transport or context error can be delivery-ambiguous and no rollback is attempted."},"source":{"file":"tmux/window_resize.go","line":55,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Resize","product":"core","slug":"tmux-window-resize"},{"id":"tmux.RespawnRequest","name":"RespawnRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"RespawnRequest configures restarting a window's or pane's process on tmux 3.2a or later. Its zero value reuses the stored command and directory and requires the target process to be inactive. Nil pointer fields omit their options; nonnil pointers are explicit, including empty strings. There are no mutually exclusive fields. Arguments and environment entries are validated before execution.","body":"Methods read pointer and map values during argument construction; do not\nmutate them concurrently."},"source":{"file":"tmux/window_respawn.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RespawnRequest","product":"core","slug":"tmux-respawnrequest"},{"id":"tmux.RespawnRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.RespawnRequest","signatures":[],"type":"*string","doc":{"summary":"Command is omitted when nil so tmux reuses the stored command. A nonnil empty string remains an explicit operand."},"source":{"file":"tmux/window_respawn.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RespawnRequest.Command","product":"core","slug":"tmux-respawnrequest-command"},{"id":"tmux.RespawnRequest.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"tmux.RespawnRequest","signatures":[],"type":"*string","doc":{"summary":"StartDirectory expands ~ and ~/... for the current user. Nil reuses the stored directory; a nonnil empty string selects the current directory."},"source":{"file":"tmux/window_respawn.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RespawnRequest.StartDirectory","product":"core","slug":"tmux-respawnrequest-startdirectory"},{"id":"tmux.RespawnRequest.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"tmux.RespawnRequest","signatures":[],"type":"map[string]string","doc":{"summary":"Environment is emitted in lexically sorted key order; nil and an empty map both add no environment entries."},"source":{"file":"tmux/window_respawn.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RespawnRequest.Environment","product":"core","slug":"tmux-respawnrequest-environment"},{"id":"tmux.RespawnRequest.Kill","name":"Kill","kind":"attribute","modifiers":[],"parent":"tmux.RespawnRequest","signatures":[],"type":"bool","doc":{"summary":"Kill terminates an active target process before restarting it."},"source":{"file":"tmux/window_respawn.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RespawnRequest.Kill","product":"core","slug":"tmux-respawnrequest-kill"},{"id":"tmux.Window.Respawn","name":"Respawn","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Respawn(ctx context.Context, request RespawnRequest) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"RespawnRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(Window, error)"}],"doc":{"summary":"Respawn restarts the stable window process through the receiver's exact winlink. It does not select the window or promise any client focus. Respawn returns a canonical freshly materialized [Window], which may use another linked session for the same WindowID. If the command succeeds but refresh fails, it returns the receiver with that error; earlier failures return zero. Completed stderr produces a redacted [CommandError]; nonzero exits without stderr are followed by refresh."},"source":{"file":"tmux/window_respawn.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Respawn","product":"core","slug":"tmux-window-respawn"},{"id":"tmuxtest.ControlMode","name":"ControlMode","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ControlMode is an attached tmux control client for real-tmux tests. It owns one stdout reader and a temporary-file spool, which preserves unread protocol output until [ControlMode.Close] releases it. Instances come from [NewControlMode]; do not construct them directly or read concurrently."},"source":{"file":"tmux/tmuxtest/control.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ControlMode","product":"core","slug":"tmuxtest-controlmode"},{"id":"tmuxtest.NewControlMode","name":"NewControlMode","kind":"function","modifiers":[],"signatures":[{"raw":"func NewControlMode(\n\tctx context.Context,\n\tt testing.TB,\n\tserver tmux.Server,\n\tsession tmux.Session,\n) *ControlMode","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"server","type":"tmux.Server"},{"name":"session","type":"tmux.Session"}],"returns":"*ControlMode"}],"doc":{"summary":"NewControlMode starts a [ControlMode] attached to session and registers cleanup with t. It requires an explicitly configured process environment and validates that session belongs to server. The client pins the server's frozen effective socket path. Validation or startup failures call [testing.TB.Fatal]. ctx bounds startup and registration only, not the returned client's lifetime."},"source":{"file":"tmux/tmuxtest/control.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.NewControlMode","product":"core","slug":"tmuxtest-newcontrolmode"},{"id":"tmuxtest.ControlMode.CloseContext","name":"CloseContext","kind":"method","modifiers":[],"parent":"tmuxtest.ControlMode","signatures":[{"raw":"func (c *ControlMode) CloseContext(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"*ControlMode"},"returns":"error"}],"doc":{"summary":"CloseContext starts an idempotent shutdown and waits within ctx. Concurrent calls join the same shutdown. If ctx ends after shutdown starts, shutdown continues and a later call may wait for completion; an already-ended ctx does not start shutdown."},"source":{"file":"tmux/tmuxtest/control.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ControlMode.CloseContext","product":"core","slug":"tmuxtest-controlmode-closecontext"},{"id":"tmuxtest.ControlMode.ClientName","name":"ClientName","kind":"method","modifiers":[],"parent":"tmuxtest.ControlMode","signatures":[{"raw":"func (c *ControlMode) ClientName() tmux.ClientName","params":[],"receiver":{"name":"c","type":"*ControlMode"},"returns":"tmux.ClientName"}],"doc":{"summary":"ClientName returns the tmux-assigned identity captured at registration."},"source":{"file":"tmux/tmuxtest/control.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ControlMode.ClientName","product":"core","slug":"tmuxtest-controlmode-clientname"},{"id":"tmuxtest.ControlMode.Server","name":"Server","kind":"method","modifiers":[],"parent":"tmuxtest.ControlMode","signatures":[{"raw":"func (c *ControlMode) Server() tmux.Server","params":[],"receiver":{"name":"c","type":"*ControlMode"},"returns":"tmux.Server"}],"doc":{"summary":"Server returns the validated server handle captured at construction."},"source":{"file":"tmux/tmuxtest/control.go","line":93,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ControlMode.Server","product":"core","slug":"tmuxtest-controlmode-server"},{"id":"tmuxtest.ControlMode.Session","name":"Session","kind":"method","modifiers":[],"parent":"tmuxtest.ControlMode","signatures":[{"raw":"func (c *ControlMode) Session() tmux.Session","params":[],"receiver":{"name":"c","type":"*ControlMode"},"returns":"tmux.Session"}],"doc":{"summary":"Session returns the validated session handle captured at construction."},"source":{"file":"tmux/tmuxtest/control.go","line":98,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ControlMode.Session","product":"core","slug":"tmuxtest-controlmode-session"},{"id":"tmuxtest.ControlMode.Read","name":"Read","kind":"method","modifiers":[],"parent":"tmuxtest.ControlMode","signatures":[{"raw":"func (c *ControlMode) Read(ctx context.Context, data []byte) (int, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"data","type":"[]byte"}],"receiver":{"name":"c","type":"*ControlMode"},"returns":"(int, error)"}],"doc":{"summary":"Read reads control-protocol output within ctx. Exactly one caller may read at a time. After the client exits, callers may drain preserved output through [io.EOF]; after [ControlMode.Close], a non-empty Read returns [os.ErrClosed]. It returns ctx errors while waiting for output."},"source":{"file":"tmux/tmuxtest/control.go","line":106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ControlMode.Read","product":"core","slug":"tmuxtest-controlmode-read"},{"id":"tmuxtest.ControlMode.Wait","name":"Wait","kind":"method","modifiers":[],"parent":"tmuxtest.ControlMode","signatures":[{"raw":"func (c *ControlMode) Wait(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"*ControlMode"},"returns":"error"}],"doc":{"summary":"Wait blocks until the control client exits or ctx ends. It does not stop or close the client; use [ControlMode.Close] to release it."},"source":{"file":"tmux/tmuxtest/control.go","line":112,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ControlMode.Wait","product":"core","slug":"tmuxtest-controlmode-wait"},{"id":"tmuxtest.ControlMode.Close","name":"Close","kind":"method","modifiers":[],"parent":"tmuxtest.ControlMode","signatures":[{"raw":"func (c *ControlMode) Close() error","params":[],"receiver":{"name":"c","type":"*ControlMode"},"returns":"error"}],"doc":{"summary":"Close stops the control client and releases its output spool. It is safe to call concurrently and more than once."},"source":{"file":"tmux/tmuxtest/control.go","line":123,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ControlMode.Close","product":"core","slug":"tmuxtest-controlmode-close"},{"id":"tmuxtest.ServerOptions","name":"ServerOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ServerOptions configures a harness-owned [tmux.Server]. All inputs are copied before filesystem or process operations, so callers retain ownership."},"source":{"file":"tmux/tmuxtest/harness.go","line":97,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ServerOptions","product":"core","slug":"tmuxtest-serveroptions"},{"id":"tmuxtest.ServerOptions.Binary","name":"Binary","kind":"attribute","modifiers":[],"parent":"tmuxtest.ServerOptions","signatures":[],"type":"string","doc":{"summary":"Binary is the tmux executable. An empty value resolves tmux from PATH."},"source":{"file":"tmux/tmuxtest/harness.go","line":99,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ServerOptions.Binary","product":"core","slug":"tmuxtest-serveroptions-binary"},{"id":"tmuxtest.ServerOptions.Config","name":"Config","kind":"attribute","modifiers":[],"parent":"tmuxtest.ServerOptions","signatures":[],"type":"[]byte","doc":{"summary":"Config is appended to the harness-owned config file; it cannot replace the private file that prevents user configuration from loading."},"source":{"file":"tmux/tmuxtest/harness.go","line":102,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ServerOptions.Config","product":"core","slug":"tmuxtest-serveroptions-config"},{"id":"tmuxtest.ServerOptions.ProcessEnvironment","name":"ProcessEnvironment","kind":"attribute","modifiers":[],"parent":"tmuxtest.ServerOptions","signatures":[],"type":"[]string","doc":{"summary":"ProcessEnvironment supplies the server environment. Nil snapshots the current process environment, while a non-nil empty slice remains empty. Tmux targeting variables are removed in either case."},"source":{"file":"tmux/tmuxtest/harness.go","line":106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ServerOptions.ProcessEnvironment","product":"core","slug":"tmuxtest-serveroptions-processenvironment"},{"id":"tmuxtest.ServerOptions.InitialSession","name":"InitialSession","kind":"attribute","modifiers":[],"parent":"tmuxtest.ServerOptions","signatures":[],"type":"*tmux.NewSessionRequest","doc":{"summary":"InitialSession starts the daemon with this copied request. Nil returns a lazy bare server; a later tmux command may start it."},"source":{"file":"tmux/tmuxtest/harness.go","line":109,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ServerOptions.InitialSession","product":"core","slug":"tmuxtest-serveroptions-initialsession"},{"id":"tmuxtest.ServerOptions.FixedShell","name":"FixedShell","kind":"attribute","modifiers":[],"parent":"tmuxtest.ServerOptions","signatures":[],"type":"bool","doc":{"summary":"FixedShell gives panes without an explicit command a POSIX shell with no startup files and the prompt ShellPrompt. RunInPane sets it; the default preserves tmux process behavior for tests that need it."},"source":{"file":"tmux/tmuxtest/harness.go","line":113,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ServerOptions.FixedShell","product":"core","slug":"tmuxtest-serveroptions-fixedshell"},{"id":"tmuxtest.ShellPrompt","name":"ShellPrompt","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"ShellPrompt is the prompt drawn when [ServerOptions.FixedShell] is enabled."},"source":{"file":"tmux/tmuxtest/harness.go","line":117,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ShellPrompt","product":"core","slug":"tmuxtest-shellprompt"},{"id":"tmuxtest.SuiteRootTagVariable","name":"SuiteRootTagVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"SuiteRootTagVariable names the environment variable that tags a suite's temporary root. go test runs packages in parallel and every suite among them creates a root beside the others, so a test spawning a child suite sets this to tell its child's root from theirs."},"source":{"file":"tmux/tmuxtest/harness.go","line":224,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.SuiteRootTagVariable","product":"core","slug":"tmuxtest-suiteroottagvariable"},{"id":"tmuxtest.Main","name":"Main","kind":"function","modifiers":[],"signatures":[{"raw":"func Main(m *testing.M) int","params":[{"name":"m","type":"*testing.M"}],"returns":"int"}],"doc":{"summary":"Main runs the one-call package lifecycle for tmuxtest. It prepares short temporary paths, redirects [suiteEnvironment] into them, runs m, cleans registered servers, restores the environment, and returns the final status. TestMain should return its result through [os.Exit]."},"source":{"file":"tmux/tmuxtest/harness.go","line":237,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.Main","product":"core","slug":"tmuxtest-main"},{"id":"tmuxtest.NewServer","name":"NewServer","kind":"function","modifiers":[],"signatures":[{"raw":"func NewServer(ctx context.Context, t testing.TB) tmux.Server","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"}],"returns":"tmux.Server"}],"doc":{"summary":"NewServer starts an isolated [tmux.Server] with a session named \"work\". Startup uses ctx and the harness timeout, whichever ends first. It registers bounded cleanup with t; setup failures call [testing.TB.Fatal]. The context does not govern later server cleanup or daemon lifetime."},"source":{"file":"tmux/tmuxtest/harness.go","line":307,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.NewServer","product":"core","slug":"tmuxtest-newserver"},{"id":"tmuxtest.NewServerWithOptions","name":"NewServerWithOptions","kind":"function","modifiers":[],"signatures":[{"raw":"func NewServerWithOptions(\n\tctx context.Context,\n\tt testing.TB,\n\toptions ServerOptions,\n) tmux.Server","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"options","type":"ServerOptions"}],"returns":"tmux.Server"}],"doc":{"summary":"NewServerWithOptions prepares an isolated harness-owned [tmux.Server] from options. Initial startup uses ctx and the harness timeout, whichever ends first. The daemon starts only when [ServerOptions.InitialSession] is non-nil or a later tmux command starts it. It registers bounded cleanup with t; setup failures call [testing.TB.Fatal]. The context does not govern later cleanup or daemon lifetime."},"source":{"file":"tmux/tmuxtest/harness.go","line":320,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.NewServerWithOptions","product":"core","slug":"tmuxtest-newserverwithoptions"},{"id":"tmuxtest.PTYProcess","name":"PTYProcess","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PTYProcess is a test subprocess that owns an isolated controlling terminal and a memory-backed transcript. It comes from [StartPTYProcess]. Output may be read concurrently through [PTYProcess.Output]; writes are serialized."},"source":{"file":"tmux/tmuxtest/pty_process.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.PTYProcess","product":"core","slug":"tmuxtest-ptyprocess"},{"id":"tmuxtest.StartPTYProcess","name":"StartPTYProcess","kind":"function","modifiers":[],"signatures":[{"raw":"func StartPTYProcess(\n\tctx context.Context,\n\tt testing.TB,\n\tbinary string,\n\targuments []string,\n\tenvironment []string,\n) *PTYProcess","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"binary","type":"string"},{"name":"arguments","type":"[]string"},{"name":"environment","type":"[]string"}],"returns":"*PTYProcess"}],"doc":{"summary":"StartPTYProcess starts binary with a harness-owned controlling terminal and registers bounded cleanup with t. Its start context owns the child lifetime: canceling ctx terminates the child. Arguments and environment are copied. A nil environment inherits the current process environment; a non-nil empty environment remains empty. binary runs directly without a shell. The PTY backend is supported on Linux only; unsupported platforms call [testing.TB.Fatal]. Setup failures also call [testing.TB.Fatal]."},"source":{"file":"tmux/tmuxtest/pty_process.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.StartPTYProcess","product":"core","slug":"tmuxtest-startptyprocess"},{"id":"tmuxtest.PTYProcess.Done","name":"Done","kind":"method","modifiers":[],"parent":"tmuxtest.PTYProcess","signatures":[{"raw":"func (p *PTYProcess) Done() <-chan struct{}","params":[],"receiver":{"name":"p","type":"*PTYProcess"},"returns":"<-chan struct{}"}],"doc":{"summary":"Done is closed when the subprocess exits. It can close before the terminal reader has added the final bytes to [PTYProcess.Output]."},"source":{"file":"tmux/tmuxtest/pty_process.go","line":109,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.PTYProcess.Done","product":"core","slug":"tmuxtest-ptyprocess-done"},{"id":"tmuxtest.PTYProcess.Write","name":"Write","kind":"method","modifiers":[],"parent":"tmuxtest.PTYProcess","signatures":[{"raw":"func (p *PTYProcess) Write(ctx context.Context, input []byte) (int, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"input","type":"[]byte"}],"receiver":{"name":"p","type":"*PTYProcess"},"returns":"(int, error)"}],"doc":{"summary":"Write sends terminal input to the subprocess within ctx. Writes are serialized and can be partial. A waiting caller may cancel before acquiring the writer, and an active write observes ctx cancellation."},"source":{"file":"tmux/tmuxtest/pty_process.go","line":114,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.PTYProcess.Write","product":"core","slug":"tmuxtest-ptyprocess-write"},{"id":"tmuxtest.PTYProcess.Wait","name":"Wait","kind":"method","modifiers":[],"parent":"tmuxtest.PTYProcess","signatures":[{"raw":"func (p *PTYProcess) Wait(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"*PTYProcess"},"returns":"error"}],"doc":{"summary":"Wait waits for process completion and the final output drain, or ctx cancellation. A successful Wait guarantees that [PTYProcess.Output] contains the completed transcript."},"source":{"file":"tmux/tmuxtest/pty_process.go","line":156,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.PTYProcess.Wait","product":"core","slug":"tmuxtest-ptyprocess-wait"},{"id":"tmuxtest.PTYProcess.Output","name":"Output","kind":"method","modifiers":[],"parent":"tmuxtest.PTYProcess","signatures":[{"raw":"func (p *PTYProcess) Output() []byte","params":[],"receiver":{"name":"p","type":"*PTYProcess"},"returns":"[]byte"}],"doc":{"summary":"Output returns a fresh copy of terminal output collected so far. A successful [PTYProcess.Wait] guarantees that the returned transcript includes the final drain."},"source":{"file":"tmux/tmuxtest/pty_process.go","line":173,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.PTYProcess.Output","product":"core","slug":"tmuxtest-ptyprocess-output"},{"id":"tmuxtest.PTYProcess.Close","name":"Close","kind":"method","modifiers":[],"parent":"tmuxtest.PTYProcess","signatures":[{"raw":"func (p *PTYProcess) Close() error","params":[],"receiver":{"name":"p","type":"*PTYProcess"},"returns":"error"}],"doc":{"summary":"Close stops the subprocess if needed and releases the PTY master. It is safe to call concurrently and more than once."},"source":{"file":"tmux/tmuxtest/pty_process.go","line":177,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.PTYProcess.Close","product":"core","slug":"tmuxtest-ptyprocess-close"},{"id":"tmuxtest.PTYProcess.CloseContext","name":"CloseContext","kind":"method","modifiers":[],"parent":"tmuxtest.PTYProcess","signatures":[{"raw":"func (p *PTYProcess) CloseContext(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"*PTYProcess"},"returns":"error"}],"doc":{"summary":"CloseContext starts an idempotent shutdown and waits within ctx. Concurrent calls join the same shutdown. If ctx ends after shutdown starts, shutdown continues and a later call may wait for completion; an already-ended ctx does not start shutdown."},"source":{"file":"tmux/tmuxtest/pty_process.go","line":189,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.PTYProcess.CloseContext","product":"core","slug":"tmuxtest-ptyprocess-closecontext"},{"id":"tmuxtest.TemporaryNamePrefix","name":"TemporaryNamePrefix","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"TemporaryNamePrefix prefixes names generated by [NewSession] and [NewWindow]."},"source":{"file":"tmux/tmuxtest/resources.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.TemporaryNamePrefix","product":"core","slug":"tmuxtest-temporarynameprefix"},{"id":"tmuxtest.NewSession","name":"NewSession","kind":"function","modifiers":[],"signatures":[{"raw":"func NewSession(\n\tctx context.Context,\n\tt testing.TB,\n\tserver tmux.Server,\n\trequest tmux.NewSessionRequest,\n) tmux.Session","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"server","type":"tmux.Server"},{"name":"request","type":"tmux.NewSessionRequest"}],"returns":"tmux.Session"}],"doc":{"summary":"NewSession creates a test-owned [tmux.Session] and registers cleanup against its stable ID. An empty [tmux.NewSessionRequest.Name] receives a collision-checked temporary name. The request and referenced values are copied before tmux is called, and setup failures call [testing.TB.Fatal]. Cleanup belongs to t rather than ctx and continues to target the session if it is renamed."},"source":{"file":"tmux/tmuxtest/resources.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.NewSession","product":"core","slug":"tmuxtest-newsession"},{"id":"tmuxtest.NewWindow","name":"NewWindow","kind":"function","modifiers":[],"signatures":[{"raw":"func NewWindow(\n\tctx context.Context,\n\tt testing.TB,\n\tsession tmux.Session,\n\trequest tmux.NewWindowRequest,\n) tmux.Window","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"session","type":"tmux.Session"},{"name":"request","type":"tmux.NewWindowRequest"}],"returns":"tmux.Window"}],"doc":{"summary":"NewWindow creates a test-owned [tmux.Window] and registers cleanup against its stable ID. A nil [tmux.NewWindowRequest.Name] receives a collision-checked temporary name; an empty non-nil name remains explicit. The request and referenced values are copied before tmux is called, and setup failures call [testing.TB.Fatal]. Cleanup belongs to t rather than ctx and follows the window if it is moved."},"source":{"file":"tmux/tmuxtest/resources.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.NewWindow","product":"core","slug":"tmuxtest-newwindow"},{"id":"tmuxtest.Screen","name":"Screen","kind":"function","modifiers":[],"signatures":[{"raw":"func Screen(ctx context.Context, t testing.TB, pane tmux.Pane) []string","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"pane","type":"tmux.Pane"}],"returns":"[]string"}],"doc":{"summary":"Screen returns the pane's visible lines, top to bottom, with tmux's trailing blank lines removed.","body":"Scrolled-out output is excluded. Use [tmux.Pane.Capture] with\n[tmux.CaptureBoundary] to read scrollback.\n\nRead failures call [testing.TB.Fatal]."},"source":{"file":"tmux/tmuxtest/screen.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.Screen","product":"core","slug":"tmuxtest-screen"},{"id":"tmuxtest.WaitForText","name":"WaitForText","kind":"function","modifiers":[],"signatures":[{"raw":"func WaitForText(ctx context.Context, t testing.TB, pane tmux.Pane, text string)","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"pane","type":"tmux.Pane"},{"name":"text","type":"string"}]}],"doc":{"summary":"WaitForText blocks until some line of the pane's screen contains text.","body":"A pane that never shows text fails the test with the screen it last read."},"source":{"file":"tmux/tmuxtest/screen.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.WaitForText","product":"core","slug":"tmuxtest-waitfortext"},{"id":"tmuxtest.WaitForLine","name":"WaitForLine","kind":"function","modifiers":[],"signatures":[{"raw":"func WaitForLine(ctx context.Context, t testing.TB, pane tmux.Pane, line string)","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"pane","type":"tmux.Pane"},{"name":"line","type":"string"}]}],"doc":{"summary":"WaitForLine blocks until some line of the pane's screen is exactly line.","body":"A pane that never shows line fails the test with the screen it last read."},"source":{"file":"tmux/tmuxtest/screen.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.WaitForLine","product":"core","slug":"tmuxtest-waitforline"},{"id":"tmuxtest.WaitForScreen","name":"WaitForScreen","kind":"function","modifiers":[],"signatures":[{"raw":"func WaitForScreen(\n\tctx context.Context,\n\tt testing.TB,\n\tpane tmux.Pane,\n\twant string,\n\tmatch func(screen []string) bool,\n)","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"pane","type":"tmux.Pane"},{"name":"want","type":"string"},{"name":"match","type":"func(screen []string) bool"}]}],"doc":{"summary":"WaitForScreen blocks until the pane's screen satisfies match.","body":"want is the noun phrase used in the failure message.\n\nmatch receives a newly read screen and must not retain it."},"source":{"file":"tmux/tmuxtest/screen.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.WaitForScreen","product":"core","slug":"tmuxtest-waitforscreen"},{"id":"tmuxtest.WaitForShellReady","name":"WaitForShellReady","kind":"function","modifiers":[],"signatures":[{"raw":"func WaitForShellReady(ctx context.Context, t testing.TB, pane tmux.Pane)","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"pane","type":"tmux.Pane"}]}],"doc":{"summary":"WaitForShellReady blocks until the pane first shows output. With [ServerOptions.FixedShell], that expected first output is the harness prompt and serves as readiness evidence; custom shell startup output may not.","body":"[RunInPane] calls it, and a test building its own pane should too."},"source":{"file":"tmux/tmuxtest/screen.go","line":103,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.WaitForShellReady","product":"core","slug":"tmuxtest-waitforshellready"},{"id":"tmuxtest.Type","name":"Type","kind":"function","modifiers":[],"signatures":[{"raw":"func Type(ctx context.Context, t testing.TB, pane tmux.Pane, command string)","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"pane","type":"tmux.Pane"},{"name":"command","type":"string"}]}],"doc":{"summary":"Type sends command to the pane and submits it, as a person at the keyboard would.","body":"command is sent literally. Type returns when tmux accepts the keys, before the\nshell finishes; follow it with a wait when completion matters."},"source":{"file":"tmux/tmuxtest/screen.go","line":115,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.Type","product":"core","slug":"tmuxtest-type"},{"id":"tmuxtest.TypeAndWait","name":"TypeAndWait","kind":"function","modifiers":[],"signatures":[{"raw":"func TypeAndWait(ctx context.Context, t testing.TB, pane tmux.Pane, command string)","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"pane","type":"tmux.Pane"},{"name":"command","type":"string"}]}],"doc":{"summary":"TypeAndWait sends command to the pane and blocks until it has finished.","body":"It appends and waits for a unique marker whether the command succeeds or\nfails. It does not return the command's exit status."},"source":{"file":"tmux/tmuxtest/screen.go","line":129,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.TypeAndWait","product":"core","slug":"tmuxtest-typeandwait"},{"id":"tmuxtest.RunInPane","name":"RunInPane","kind":"function","modifiers":[],"signatures":[{"raw":"func RunInPane(ctx context.Context, t testing.TB, command string) tmux.Pane","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"command","type":"string"}],"returns":"tmux.Pane"}],"doc":{"summary":"RunInPane creates an isolated pane, waits for its startup-file-free POSIX shell, and submits command with [Type]. It does not wait for command to start or finish. Resources belong to t; setup failures call [testing.TB.Fatal]. Use [NewServerWithOptions] for custom topology or configuration."},"source":{"file":"tmux/tmuxtest/screen.go","line":155,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.RunInPane","product":"core","slug":"tmuxtest-runinpane"},{"id":"tmuxtest.ScriptedCommand","name":"ScriptedCommand","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ScriptedCommand is one answer a scripted tmux gives. The first matching entry wins, and an invocation nothing matches exits 1 saying so."},"source":{"file":"tmux/tmuxtest/scripted.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ScriptedCommand","product":"core","slug":"tmuxtest-scriptedcommand"},{"id":"tmuxtest.ScriptedCommand.Contains","name":"Contains","kind":"attribute","modifiers":[],"parent":"tmuxtest.ScriptedCommand","signatures":[],"type":"[]string","doc":{"summary":"Contains selects the invocations this entry answers: one matches when its arguments contain every string listed, so \"list-sessions\" answers that subcommand whatever flags surround it. Empty matches every invocation."},"source":{"file":"tmux/tmuxtest/scripted.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ScriptedCommand.Contains","product":"core","slug":"tmuxtest-scriptedcommand-contains"},{"id":"tmuxtest.ScriptedCommand.Stdout","name":"Stdout","kind":"attribute","modifiers":[],"parent":"tmuxtest.ScriptedCommand","signatures":[],"type":"string","doc":{"summary":"Stdout is written to standard output exactly, newlines included."},"source":{"file":"tmux/tmuxtest/scripted.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ScriptedCommand.Stdout","product":"core","slug":"tmuxtest-scriptedcommand-stdout"},{"id":"tmuxtest.ScriptedCommand.Stderr","name":"Stderr","kind":"attribute","modifiers":[],"parent":"tmuxtest.ScriptedCommand","signatures":[],"type":"string","doc":{"summary":"Stderr is written to standard error exactly, newlines included. This package reads a completed failure from stderr rather than from an exit code, so an entry standing in for one sets this."},"source":{"file":"tmux/tmuxtest/scripted.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ScriptedCommand.Stderr","product":"core","slug":"tmuxtest-scriptedcommand-stderr"},{"id":"tmuxtest.ScriptedCommand.ExitCode","name":"ExitCode","kind":"attribute","modifiers":[],"parent":"tmuxtest.ScriptedCommand","signatures":[],"type":"int","doc":{"summary":"ExitCode is the status the invocation exits with."},"source":{"file":"tmux/tmuxtest/scripted.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ScriptedCommand.ExitCode","product":"core","slug":"tmuxtest-scriptedcommand-exitcode"},{"id":"tmuxtest.ScriptedTmux","name":"ScriptedTmux","kind":"function","modifiers":[],"signatures":[{"raw":"func ScriptedTmux(t testing.TB, script ...ScriptedCommand) string","params":[{"name":"t","type":"testing.TB"},{"name":"script","type":"ScriptedCommand","variadic":"positional"}],"returns":"string"}],"doc":{"summary":"ScriptedTmux writes an executable that answers tmux invocations from script and returns its absolute path, for [tmux.ServerOptions.Binary]. It is how a test drives code that uses this package without a tmux to drive:","body":"```go\nserver, err := tmux.NewServer(tmux.ServerOptions{\n\tBinary: tmuxtest.ScriptedTmux(t,\n\t\ttmuxtest.ScriptedCommand{Contains: []string{\"-V\"}, Stdout: \"tmux 3.7\\n\"},\n\t\ttmuxtest.ScriptedCommand{\n\t\t\tContains: []string{\"kill-pane\"},\n\t\t\tStderr: \"can't find pane: %7\\n\",\n\t\t\tExitCode: 1,\n\t\t},\n\t),\n})\n```\n\nThe executable is removed with the test. It answers commands only: opening a\ncontrol connection or a notification stream speaks tmux's control protocol,\nwhich a script cannot, so code that opens one needs [NewServer] and a real\ntmux."},"source":{"file":"tmux/tmuxtest/scripted.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ScriptedTmux","product":"core","slug":"tmuxtest-scriptedtmux"},{"id":"tmuxtest.WaitFor","name":"WaitFor","kind":"function","modifiers":[],"signatures":[{"raw":"func WaitFor(\n\tctx context.Context,\n\tinterval time.Duration,\n\tcondition func(context.Context) (bool, error),\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"interval","type":"time.Duration"},{"name":"condition","type":"func(context.Context) (bool, error)"}],"returns":"error"}],"doc":{"summary":"WaitFor checks condition serially and immediately, then after each interval, until it succeeds, returns an error, or ctx ends. It validates interval, condition, and ctx in that order: interval must be positive, condition must be non-nil, and an already-ended context prevents every check. Condition errors and context errors are returned unchanged. A running condition receives ctx and must observe it itself; WaitFor cannot interrupt the condition."},"source":{"file":"tmux/tmuxtest/wait.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.WaitFor","product":"core","slug":"tmuxtest-waitfor"},{"id":"tmuxq.Filter","name":"Filter","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Filter is anything that compiles itself into a predicate over T, which is what the tmux package's generated model filters do. It exists so a filter and a query can meet without this package naming a model."},"source":{"file":"tmuxq/filter.go","line":8,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.Filter","product":"core","slug":"tmuxq-filter"},{"id":"tmuxq.Matching","name":"Matching","kind":"function","modifiers":[],"signatures":[{"raw":"func Matching[T any](values []T, filter Filter[T]) ([]T, error)","params":[{"name":"values","type":"[]T"},{"name":"filter","type":"Filter[T]"}],"returns":"([]T, error)","typeParams":["T any"]}],"doc":{"summary":"Matching returns a fresh slice of shallow copies for values that filter accepts, retaining their source order, and reports the one error a filter can have rather than leaving it for the caller to unpack first. It evaluates every input value, so a no-match result is an empty slice.","body":"```go\nactive, err := tmuxq.Matching(snapshot.Panes(), tmux.PaneActiveIs(true))\n```"},"source":{"file":"tmuxq/filter.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.Matching","product":"core","slug":"tmuxq-matching"},{"id":"tmuxq.MatchingSeq","name":"MatchingSeq","kind":"function","modifiers":[],"signatures":[{"raw":"func MatchingSeq[T any](values iter.Seq[T], filter Filter[T]) (iter.Seq[T], error)","params":[{"name":"values","type":"iter.Seq[T]"},{"name":"filter","type":"Filter[T]"}],"returns":"(iter.Seq[T], error)","typeParams":["T any"]}],"doc":{"summary":"MatchingSeq returns a lazy sequence of shallow copies for values that filter accepts, retaining source order. The filter is compiled before iteration begins, so an invalid filter is an error here rather than a sequence that yields nothing."},"source":{"file":"tmuxq/filter.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.MatchingSeq","product":"core","slug":"tmuxq-matchingseq"},{"id":"tmuxq.ErrNoMatch","name":"ErrNoMatch","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrNoMatch identifies an ExactlyOne or ExactlyOneSeq query with no matching value. Cardinality errors can be checked with errors.Is."},"source":{"file":"tmuxq/query.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.ErrNoMatch","product":"core","slug":"tmuxq-errnomatch"},{"id":"tmuxq.ErrMultipleMatches","name":"ErrMultipleMatches","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrMultipleMatches identifies an ExactlyOne or ExactlyOneSeq query with more than one matching value. The queries stop when they find the second match. Cardinality errors can be checked with errors.Is."},"source":{"file":"tmuxq/query.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.ErrMultipleMatches","product":"core","slug":"tmuxq-errmultiplematches"},{"id":"tmuxq.Where","name":"Where","kind":"function","modifiers":[],"signatures":[{"raw":"func Where[T any](values []T, predicate func(*T) bool) []T","params":[{"name":"values","type":"[]T"},{"name":"predicate","type":"func(*T) bool"}],"returns":"[]T","typeParams":["T any"]}],"doc":{"summary":"Where returns a fresh slice of shallow copies for values accepted by predicate, retaining their source order. It evaluates every input value, so a no-match result is an empty slice."},"source":{"file":"tmuxq/query.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.Where","product":"core","slug":"tmuxq-where"},{"id":"tmuxq.First","name":"First","kind":"function","modifiers":[],"signatures":[{"raw":"func First[T any](values []T, predicate func(*T) bool) (T, bool)","params":[{"name":"values","type":"[]T"},{"name":"predicate","type":"func(*T) bool"}],"returns":"(T, bool)","typeParams":["T any"]}],"doc":{"summary":"First returns a shallow copy of the first source-ordered value accepted by predicate and stops evaluating later values. If no value matches, it returns the zero value of T and false."},"source":{"file":"tmuxq/query.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.First","product":"core","slug":"tmuxq-first"},{"id":"tmuxq.ExactlyOne","name":"ExactlyOne","kind":"function","modifiers":[],"signatures":[{"raw":"func ExactlyOne[T any](values []T, predicate func(*T) bool) (T, error)","params":[{"name":"values","type":"[]T"},{"name":"predicate","type":"func(*T) bool"}],"returns":"(T, error)","typeParams":["T any"]}],"doc":{"summary":"ExactlyOne returns a shallow copy when exactly one source-ordered value is accepted by predicate. It examines values until source exhaustion confirms a sole match, or stops at the second match. It returns the zero value of T with [ErrNoMatch] for no matches or [ErrMultipleMatches] for multiple matches; callers can classify either error with [errors.Is]."},"source":{"file":"tmuxq/query.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.ExactlyOne","product":"core","slug":"tmuxq-exactlyone"},{"id":"tmuxq.WhereSeq","name":"WhereSeq","kind":"function","modifiers":[],"signatures":[{"raw":"func WhereSeq[T any](values iter.Seq[T], predicate func(*T) bool) iter.Seq[T]","params":[{"name":"values","type":"iter.Seq[T]"},{"name":"predicate","type":"func(*T) bool"}],"returns":"iter.Seq[T]","typeParams":["T any"]}],"doc":{"summary":"WhereSeq returns a lazy sequence of shallow copies for values accepted by predicate, retaining source order. It does not pull values until the result is iterated. When its consumer stops, WhereSeq stops pulling from values. For an infinite input, it runs until its consumer stops."},"source":{"file":"tmuxq/query.go","line":79,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.WhereSeq","product":"core","slug":"tmuxq-whereseq"},{"id":"tmuxq.FirstSeq","name":"FirstSeq","kind":"function","modifiers":[],"signatures":[{"raw":"func FirstSeq[T any](values iter.Seq[T], predicate func(*T) bool) (T, bool)","params":[{"name":"values","type":"iter.Seq[T]"},{"name":"predicate","type":"func(*T) bool"}],"returns":"(T, bool)","typeParams":["T any"]}],"doc":{"summary":"FirstSeq returns a shallow copy of the first source-ordered sequence value accepted by predicate and stops pulling later values. If no value matches, it returns the zero value of T and false. With an infinite input that never matches, FirstSeq does not return."},"source":{"file":"tmuxq/query.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.FirstSeq","product":"core","slug":"tmuxq-firstseq"},{"id":"tmuxq.ExactlyOneSeq","name":"ExactlyOneSeq","kind":"function","modifiers":[],"signatures":[{"raw":"func ExactlyOneSeq[T any](values iter.Seq[T], predicate func(*T) bool) (T, error)","params":[{"name":"values","type":"iter.Seq[T]"},{"name":"predicate","type":"func(*T) bool"}],"returns":"(T, error)","typeParams":["T any"]}],"doc":{"summary":"ExactlyOneSeq returns a shallow copy when exactly one source-ordered sequence value is accepted by predicate. It stops pulling at the second match. If input ends with no matches, it returns the zero value of T with [ErrNoMatch]; if it finds a second match, it returns the zero value of T with [ErrMultipleMatches]. Callers can classify either error with [errors.Is]. With an infinite input, ExactlyOneSeq returns only after a second match; it cannot confirm a no-match or exactly-one result without source exhaustion."},"source":{"file":"tmuxq/query.go","line":112,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.ExactlyOneSeq","product":"core","slug":"tmuxq-exactlyoneseq"},{"id":"workspace.Workspace.InitialSessionRequest","name":"InitialSessionRequest","kind":"method","modifiers":[],"parent":"workspace.Workspace","signatures":[{"raw":"func (w Workspace) InitialSessionRequest() (tmux.NewSessionRequest, error)","params":[],"receiver":{"name":"w","type":"Workspace"},"returns":"(tmux.NewSessionRequest, error)"}],"doc":{"summary":"InitialSessionRequest validates w and returns the request that creates its session and initial window. Use the resulting materialized session with [BuildInto] to continue the build over a caller-owned transport."},"source":{"file":"workspace/builder.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.InitialSessionRequest","product":"workspace","apiScope":"exported","slug":"workspace-workspace-initialsessionrequest"},{"id":"workspace.Build","name":"Build","kind":"function","modifiers":[],"signatures":[{"raw":"func Build(ctx context.Context, server tmux.Server, workspace Workspace) (tmux.Session, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"server","type":"tmux.Server"},{"name":"workspace","type":"Workspace"}],"returns":"(tmux.Session, error)"}],"doc":{"summary":"Build creates the workspace on server and returns the created session.","body":"Build is not atomic. A failure after session creation returns that session;\ncompleted mutations remain in tmux. Command failures are not normalized.\nEvery layout is checked against the selected daemon and desired pane count\nbefore session creation. tmux validates geometry when applying each layout.\n\nBuild creates the session and an attached control connection in one process,\nuses that connection for the build, and closes it before returning. The\nreturned Session is not bound to the closed connection. Build verifies that\nthe session remains reachable after closing it. An attached connection may\nfire client hooks and policies.\n\nEach pane receives workspace, window, and pane CommandsBefore, then its own\nCommands. Sleep values pause Build rather than the pane."},"source":{"file":"workspace/builder.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Build","product":"workspace","apiScope":"exported","slug":"workspace-build"},{"id":"workspace.BuildInto","name":"BuildInto","kind":"function","modifiers":[],"signatures":[{"raw":"func BuildInto(ctx context.Context, session tmux.Session, workspace Workspace) error","params":[{"name":"ctx","type":"context.Context"},{"name":"session","type":"tmux.Session"},{"name":"workspace","type":"Workspace"}],"returns":"error"}],"doc":{"summary":"BuildInto populates the initial session described by workspace. The session must already have been created from [Workspace.InitialSessionRequest]. BuildInto uses the session's existing server and transport; it neither creates a session nor opens or owns a connection.","body":"BuildInto is not atomic. A failure leaves completed mutations in tmux.\nEvery layout is checked before changing the initial session."},"source":{"file":"workspace/builder.go","line":87,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.BuildInto","product":"workspace","apiScope":"exported","slug":"workspace-buildinto"},{"id":"workspace.Command","name":"Command","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Command is one command to run in a pane. YAML accepts either a bare string or a mapping, so \"echo hi\" and {cmd: echo hi, sleep_before: 2} are both commands."},"source":{"file":"workspace/command.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Command","product":"workspace","apiScope":"exported","slug":"workspace-command"},{"id":"workspace.Command.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"workspace.Command","signatures":[],"type":"string","doc":{"summary":"Command is the text typed into the pane."},"source":{"file":"workspace/command.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Command.Command","product":"workspace","apiScope":"exported","slug":"workspace-command-command"},{"id":"workspace.Command.SleepBefore","name":"SleepBefore","kind":"attribute","modifiers":[],"parent":"workspace.Command","signatures":[],"type":"time.Duration","doc":{"summary":"SleepBefore delays this command. YAML expresses the duration in seconds, so 0.5 is half a second."},"source":{"file":"workspace/command.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Command.SleepBefore","product":"workspace","apiScope":"exported","slug":"workspace-command-sleepbefore"},{"id":"workspace.Command.SleepAfter","name":"SleepAfter","kind":"attribute","modifiers":[],"parent":"workspace.Command","signatures":[],"type":"time.Duration","doc":{"summary":"SleepAfter delays the commands that follow this one, in the same units."},"source":{"file":"workspace/command.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Command.SleepAfter","product":"workspace","apiScope":"exported","slug":"workspace-command-sleepafter"},{"id":"workspace.Command.Enter","name":"Enter","kind":"attribute","modifiers":[],"parent":"workspace.Command","signatures":[],"type":"*Bool","doc":{"summary":"Enter reports whether to press Enter after the command. Nil presses it, matching tmuxp, where omitting enter runs the command."},"source":{"file":"workspace/command.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Command.Enter","product":"workspace","apiScope":"exported","slug":"workspace-command-enter"},{"id":"workspace.Command.UnmarshalYAML","name":"UnmarshalYAML","kind":"method","modifiers":[],"parent":"workspace.Command","signatures":[{"raw":"func (c *Command) UnmarshalYAML(node *yaml.Node) error","params":[{"name":"node","type":"*yaml.Node"}],"receiver":{"name":"c","type":"*Command"},"returns":"error"}],"doc":{"summary":"UnmarshalYAML decodes a command written as a bare string or as a mapping."},"source":{"file":"workspace/command.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Command.UnmarshalYAML","product":"workspace","apiScope":"exported","slug":"workspace-command-unmarshalyaml"},{"id":"workspace.ErrInvalidWorkspace","name":"ErrInvalidWorkspace","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidWorkspace matches parse and validation failures, but not tmux command failures from [Build]."},"source":{"file":"workspace/workspace.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.ErrInvalidWorkspace","product":"workspace","apiScope":"exported","slug":"workspace-errinvalidworkspace"},{"id":"workspace.Workspace","name":"Workspace","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Workspace is one tmuxp-style session description."},"source":{"file":"workspace/workspace.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace","product":"workspace","apiScope":"exported","slug":"workspace-workspace"},{"id":"workspace.Workspace.SessionName","name":"SessionName","kind":"attribute","modifiers":[],"parent":"workspace.Workspace","signatures":[],"type":"string","doc":{"summary":"SessionName names the created session. It is required."},"source":{"file":"workspace/workspace.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.SessionName","product":"workspace","apiScope":"exported","slug":"workspace-workspace-sessionname"},{"id":"workspace.Workspace.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"workspace.Workspace","signatures":[],"type":"string","doc":{"summary":"StartDirectory is the default working directory for every window and pane that does not set its own."},"source":{"file":"workspace/workspace.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.StartDirectory","product":"workspace","apiScope":"exported","slug":"workspace-workspace-startdirectory"},{"id":"workspace.Workspace.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"workspace.Workspace","signatures":[],"type":"map[string]string","doc":{"summary":"Environment is written to the session after its initial pane exists and before later windows are created."},"source":{"file":"workspace/workspace.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.Environment","product":"workspace","apiScope":"exported","slug":"workspace-workspace-environment"},{"id":"workspace.Workspace.Options","name":"Options","kind":"attribute","modifiers":[],"parent":"workspace.Workspace","signatures":[],"type":"map[string]string","doc":{"summary":"Options are applied after session creation. tmux resolves window-option names against the session's current window."},"source":{"file":"workspace/workspace.go","line":59,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.Options","product":"workspace","apiScope":"exported","slug":"workspace-workspace-options"},{"id":"workspace.Workspace.GlobalOptions","name":"GlobalOptions","kind":"attribute","modifiers":[],"parent":"workspace.Workspace","signatures":[],"type":"map[string]string","doc":{"summary":"GlobalOptions are applied after the initial window exists and before later windows are created."},"source":{"file":"workspace/workspace.go","line":62,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.GlobalOptions","product":"workspace","apiScope":"exported","slug":"workspace-workspace-globaloptions"},{"id":"workspace.Workspace.CommandsBefore","name":"CommandsBefore","kind":"attribute","modifiers":[],"parent":"workspace.Workspace","signatures":[],"type":"[]Command","doc":{"summary":"CommandsBefore run in every pane before that pane's own commands. Window and pane entries add to this list rather than replacing it."},"source":{"file":"workspace/workspace.go","line":65,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.CommandsBefore","product":"workspace","apiScope":"exported","slug":"workspace-workspace-commandsbefore"},{"id":"workspace.Workspace.SuppressHistory","name":"SuppressHistory","kind":"attribute","modifiers":[],"parent":"workspace.Workspace","signatures":[],"type":"*Bool","doc":{"summary":"SuppressHistory prefixes commands with a space unless a window or pane overrides it. Nil suppresses history, matching tmuxp."},"source":{"file":"workspace/workspace.go","line":68,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.SuppressHistory","product":"workspace","apiScope":"exported","slug":"workspace-workspace-suppresshistory"},{"id":"workspace.Workspace.Windows","name":"Windows","kind":"attribute","modifiers":[],"parent":"workspace.Workspace","signatures":[],"type":"[]Window","doc":{"summary":"Windows are created in order. A workspace needs at least one."},"source":{"file":"workspace/workspace.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.Windows","product":"workspace","apiScope":"exported","slug":"workspace-workspace-windows"},{"id":"workspace.Window","name":"Window","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Window is one window in a workspace."},"source":{"file":"workspace/workspace.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window","product":"workspace","apiScope":"exported","slug":"workspace-window"},{"id":"workspace.Window.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"string","doc":{"summary":"Name is the window name. Empty lets tmux choose."},"source":{"file":"workspace/workspace.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.Name","product":"workspace","apiScope":"exported","slug":"workspace-window-name"},{"id":"workspace.Window.Index","name":"Index","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"*int","doc":{"summary":"Index requests an explicit winlink index. Nil uses the next free index."},"source":{"file":"workspace/workspace.go","line":78,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.Index","product":"workspace","apiScope":"exported","slug":"workspace-window-index"},{"id":"workspace.Window.Layout","name":"Layout","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"string","doc":{"summary":"Layout is a tmux layout name applied after the panes exist."},"source":{"file":"workspace/workspace.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.Layout","product":"workspace","apiScope":"exported","slug":"workspace-window-layout"},{"id":"workspace.Window.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"string","doc":{"summary":"StartDirectory overrides the workspace directory for this window."},"source":{"file":"workspace/workspace.go","line":82,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.StartDirectory","product":"workspace","apiScope":"exported","slug":"workspace-window-startdirectory"},{"id":"workspace.Window.Shell","name":"Shell","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"string","doc":{"summary":"Shell replaces the command the window's first pane runs."},"source":{"file":"workspace/workspace.go","line":84,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.Shell","product":"workspace","apiScope":"exported","slug":"workspace-window-shell"},{"id":"workspace.Window.Focus","name":"Focus","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"Bool","doc":{"summary":"Focus selects this window once the workspace is built."},"source":{"file":"workspace/workspace.go","line":86,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.Focus","product":"workspace","apiScope":"exported","slug":"workspace-window-focus"},{"id":"workspace.Window.SuppressHistory","name":"SuppressHistory","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"*Bool","doc":{"summary":"SuppressHistory overrides the workspace setting for this window's panes."},"source":{"file":"workspace/workspace.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.SuppressHistory","product":"workspace","apiScope":"exported","slug":"workspace-window-suppresshistory"},{"id":"workspace.Window.Options","name":"Options","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"map[string]string","doc":{"summary":"Options are applied after the window's initial pane exists and before additional panes are split."},"source":{"file":"workspace/workspace.go","line":91,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.Options","product":"workspace","apiScope":"exported","slug":"workspace-window-options"},{"id":"workspace.Window.OptionsAfter","name":"OptionsAfter","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"map[string]string","doc":{"summary":"OptionsAfter are window options applied once the panes exist, for settings that a later split would otherwise overwrite."},"source":{"file":"workspace/workspace.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.OptionsAfter","product":"workspace","apiScope":"exported","slug":"workspace-window-optionsafter"},{"id":"workspace.Window.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"map[string]string","doc":{"summary":"Environment is written to the session after this window's initial pane exists and before additional panes are split. Repeated names keep the last value written."},"source":{"file":"workspace/workspace.go","line":98,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.Environment","product":"workspace","apiScope":"exported","slug":"workspace-window-environment"},{"id":"workspace.Window.CommandsBefore","name":"CommandsBefore","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"[]Command","doc":{"summary":"CommandsBefore run in each of this window's panes before the pane's own commands, after the workspace's."},"source":{"file":"workspace/workspace.go","line":101,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.CommandsBefore","product":"workspace","apiScope":"exported","slug":"workspace-window-commandsbefore"},{"id":"workspace.Window.Panes","name":"Panes","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"[]Pane","doc":{"summary":"Panes are created in order. The first pane is the window's initial pane; each later one splits the window."},"source":{"file":"workspace/workspace.go","line":104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.Panes","product":"workspace","apiScope":"exported","slug":"workspace-window-panes"},{"id":"workspace.Pane","name":"Pane","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Pane is one pane in a window. YAML accepts either a bare command string or a mapping, so \"echo hello\" and {shell_command: echo hello} are equivalent."},"source":{"file":"workspace/workspace.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane","product":"workspace","apiScope":"exported","slug":"workspace-pane"},{"id":"workspace.Pane.Commands","name":"Commands","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"[]Command","doc":{"summary":"Commands run in the pane, in order."},"source":{"file":"workspace/workspace.go","line":113,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.Commands","product":"workspace","apiScope":"exported","slug":"workspace-pane-commands"},{"id":"workspace.Pane.CommandsBefore","name":"CommandsBefore","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"[]Command","doc":{"summary":"CommandsBefore run before Commands, after the window's."},"source":{"file":"workspace/workspace.go","line":115,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.CommandsBefore","product":"workspace","apiScope":"exported","slug":"workspace-pane-commandsbefore"},{"id":"workspace.Pane.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"string","doc":{"summary":"StartDirectory overrides the window directory for this pane."},"source":{"file":"workspace/workspace.go","line":117,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.StartDirectory","product":"workspace","apiScope":"exported","slug":"workspace-pane-startdirectory"},{"id":"workspace.Pane.Shell","name":"Shell","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"string","doc":{"summary":"Shell replaces this pane's command. On the first pane it conflicts with Window.Shell because tmux creates that pane with the window."},"source":{"file":"workspace/workspace.go","line":120,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.Shell","product":"workspace","apiScope":"exported","slug":"workspace-pane-shell"},{"id":"workspace.Pane.Focus","name":"Focus","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"Bool","doc":{"summary":"Focus selects this pane once its window is built."},"source":{"file":"workspace/workspace.go","line":122,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.Focus","product":"workspace","apiScope":"exported","slug":"workspace-pane-focus"},{"id":"workspace.Pane.SuppressHistory","name":"SuppressHistory","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"*Bool","doc":{"summary":"SuppressHistory overrides the window setting for this pane."},"source":{"file":"workspace/workspace.go","line":124,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.SuppressHistory","product":"workspace","apiScope":"exported","slug":"workspace-pane-suppresshistory"},{"id":"workspace.Pane.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"map[string]string","doc":{"summary":"Environment is written to the session after all panes in the window exist and before this pane's commands are sent. Pane entries are processed in order, so repeated names keep the last value written."},"source":{"file":"workspace/workspace.go","line":128,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.Environment","product":"workspace","apiScope":"exported","slug":"workspace-pane-environment"},{"id":"workspace.Pane.Enter","name":"Enter","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"*Bool","doc":{"summary":"Enter applies to every command in this pane unless the command sets its own. Nil presses Enter, matching tmuxp."},"source":{"file":"workspace/workspace.go","line":131,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.Enter","product":"workspace","apiScope":"exported","slug":"workspace-pane-enter"},{"id":"workspace.Pane.SleepBefore","name":"SleepBefore","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"time.Duration","doc":{"summary":"SleepBefore delays before each of this pane's commands. YAML writes it as a number of seconds, matching tmuxp, so 0.5 is half a second."},"source":{"file":"workspace/workspace.go","line":134,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.SleepBefore","product":"workspace","apiScope":"exported","slug":"workspace-pane-sleepbefore"},{"id":"workspace.Pane.SleepAfter","name":"SleepAfter","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"time.Duration","doc":{"summary":"SleepAfter delays after each of this pane's commands, in the same units."},"source":{"file":"workspace/workspace.go","line":136,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.SleepAfter","product":"workspace","apiScope":"exported","slug":"workspace-pane-sleepafter"},{"id":"workspace.Bool","name":"Bool","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Bool accepts YAML booleans and tmuxp's quoted spellings. It is exported so callers can construct optional *Bool fields."},"source":{"file":"workspace/workspace.go","line":141,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Bool","product":"workspace","apiScope":"exported","slug":"workspace-bool"},{"id":"workspace.Bool.UnmarshalYAML","name":"UnmarshalYAML","kind":"method","modifiers":[],"parent":"workspace.Bool","signatures":[{"raw":"func (f *Bool) UnmarshalYAML(node *yaml.Node) error","params":[{"name":"node","type":"*yaml.Node"}],"receiver":{"name":"f","type":"*Bool"},"returns":"error"}],"doc":{"summary":"UnmarshalYAML decodes a boolean written as a boolean or as a string."},"source":{"file":"workspace/workspace.go","line":144,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Bool.UnmarshalYAML","product":"workspace","apiScope":"exported","slug":"workspace-bool-unmarshalyaml"},{"id":"workspace.Workspace.UnmarshalYAML","name":"UnmarshalYAML","kind":"method","modifiers":[],"parent":"workspace.Workspace","signatures":[{"raw":"func (w *Workspace) UnmarshalYAML(node *yaml.Node) error","params":[{"name":"node","type":"*yaml.Node"}],"receiver":{"name":"w","type":"*Workspace"},"returns":"error"}],"doc":{"summary":"UnmarshalYAML decodes the workspace, then its shell_command_before, which accepts one command or a list."},"source":{"file":"workspace/workspace.go","line":167,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.UnmarshalYAML","product":"workspace","apiScope":"exported","slug":"workspace-workspace-unmarshalyaml"},{"id":"workspace.Window.UnmarshalYAML","name":"UnmarshalYAML","kind":"method","modifiers":[],"parent":"workspace.Window","signatures":[{"raw":"func (w *Window) UnmarshalYAML(node *yaml.Node) error","params":[{"name":"node","type":"*yaml.Node"}],"receiver":{"name":"w","type":"*Window"},"returns":"error"}],"doc":{"summary":"UnmarshalYAML decodes the window, then its shell_command_before."},"source":{"file":"workspace/workspace.go","line":192,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.UnmarshalYAML","product":"workspace","apiScope":"exported","slug":"workspace-window-unmarshalyaml"},{"id":"workspace.Pane.UnmarshalYAML","name":"UnmarshalYAML","kind":"method","modifiers":[],"parent":"workspace.Pane","signatures":[{"raw":"func (p *Pane) UnmarshalYAML(node *yaml.Node) error","params":[{"name":"node","type":"*yaml.Node"}],"receiver":{"name":"p","type":"*Pane"},"returns":"error"}],"doc":{"summary":"UnmarshalYAML decodes a pane written as a bare command or as a mapping."},"source":{"file":"workspace/workspace.go","line":219,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.UnmarshalYAML","product":"workspace","apiScope":"exported","slug":"workspace-pane-unmarshalyaml"},{"id":"workspace.Parse","name":"Parse","kind":"function","modifiers":[],"signatures":[{"raw":"func Parse(document []byte) (Workspace, error)","params":[{"name":"document","type":"[]byte"}],"returns":"(Workspace, error)"}],"doc":{"summary":"Parse decodes one workspace document. Unknown fields are rejected so a misspelled key fails loudly instead of being dropped."},"source":{"file":"workspace/workspace.go","line":276,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Parse","product":"workspace","apiScope":"exported","slug":"workspace-parse"},{"id":"workspace.Workspace.Validate","name":"Validate","kind":"method","modifiers":[],"parent":"workspace.Workspace","signatures":[{"raw":"func (w Workspace) Validate() error","params":[],"receiver":{"name":"w","type":"Workspace"},"returns":"error"}],"doc":{"summary":"Validate reports all problems joined under [ErrInvalidWorkspace]."},"source":{"file":"workspace/workspace.go","line":291,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.Validate","product":"workspace","apiScope":"exported","slug":"workspace-workspace-validate"},{"id":"workspace.Workspace.MissingDirectories","name":"MissingDirectories","kind":"method","modifiers":[],"parent":"workspace.Workspace","signatures":[{"raw":"func (w Workspace) MissingDirectories() []string","params":[],"receiver":{"name":"w","type":"Workspace"},"returns":"[]string"}],"doc":{"summary":"MissingDirectories returns absent start directories in document order. It is separate from [Workspace.Validate] because a prior command may create them. tmux otherwise falls back to the user's home directory without an error. Names beginning with ~ are resolved as tmux resolves them."},"source":{"file":"workspace/workspace.go","line":407,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.MissingDirectories","product":"workspace","apiScope":"exported","slug":"workspace-workspace-missingdirectories"},{"id":"mcp.AuditEnvironmentVariable","name":"AuditEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"AuditEnvironmentVariable names the variable that turns the record on and says where it goes: \"stderr\", or a path to append to."},"source":{"file":"mcp/audit.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.AuditEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-auditenvironmentvariable"},{"id":"mcp.HandshakeOrdered","name":"HandshakeOrdered","kind":"function","modifiers":[],"signatures":[{"raw":"func HandshakeOrdered(inner mcp.Transport) mcp.Transport","params":[{"name":"inner","type":"mcp.Transport"}],"returns":"mcp.Transport"}],"doc":{"summary":"HandshakeOrdered holds the SDK's early tool-list notification until notifications/initialized; strict legacy clients reject the earlier ordering."},"source":{"file":"mcp/handshake_transport.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.HandshakeOrdered","product":"mcp","apiScope":"exported","slug":"mcp-handshakeordered"},{"id":"mcp.ErrInstanceClosed","name":"ErrInstanceClosed","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInstanceClosed identifies work refused after instance shutdown starts."},"source":{"file":"mcp/instance.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ErrInstanceClosed","product":"mcp","apiScope":"exported","slug":"mcp-errinstanceclosed"},{"id":"mcp.ErrRequestCapacity","name":"ErrRequestCapacity","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrRequestCapacity identifies a client session closed after it exceeded the server's finite unsettled-call capacity."},"source":{"file":"mcp/instance.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ErrRequestCapacity","product":"mcp","apiScope":"exported","slug":"mcp-errrequestcapacity"},{"id":"mcp.Instance","name":"Instance","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Instance owns the SDK server, all connected client sessions, and every resource allocated on their behalf. The SDK server is composed so Connect and Run cannot bypass lifecycle tracking."},"source":{"file":"mcp/instance.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.Instance","product":"mcp","apiScope":"exported","slug":"mcp-instance"},{"id":"mcp.ServerSession","name":"ServerSession","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ServerSession owns one SDK session and the resources scoped to its client."},"source":{"file":"mcp/instance.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ServerSession","product":"mcp","apiScope":"exported","slug":"mcp-serversession"},{"id":"mcp.Instance.Connect","name":"Connect","kind":"method","modifiers":[],"parent":"mcp.Instance","signatures":[{"raw":"func (i *Instance) Connect(\n\tctx context.Context,\n\ttransport sdk.Transport,\n\toptions *sdk.ServerSessionOptions,\n) (*ServerSession, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"transport","type":"sdk.Transport"},{"name":"options","type":"*sdk.ServerSessionOptions"}],"receiver":{"name":"i","type":"*Instance"},"returns":"(*ServerSession, error)"}],"doc":{"summary":"Connect starts and tracks one client session. It requires tmux 3.2a or newer and rejects an opaque transport unless [AssumeResponseCommit] marks its response-write contract. Incoming messages remain gated until the SDK session has an installed scope."},"source":{"file":"mcp/instance_connect.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.Instance.Connect","product":"mcp","apiScope":"exported","slug":"mcp-instance-connect"},{"id":"mcp.Instance.Run","name":"Run","kind":"method","modifiers":[],"parent":"mcp.Instance","signatures":[{"raw":"func (i *Instance) Run(ctx context.Context, transport sdk.Transport) error","params":[{"name":"ctx","type":"context.Context"},{"name":"transport","type":"sdk.Transport"}],"receiver":{"name":"i","type":"*Instance"},"returns":"error"}],"doc":{"summary":"Run serves one tracked session until the client, context, or instance ends. Its transport requirements are the same as [Instance.Connect]."},"source":{"file":"mcp/instance_connect.go","line":102,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.Instance.Run","product":"mcp","apiScope":"exported","slug":"mcp-instance-run"},{"id":"mcp.Instance.Close","name":"Close","kind":"method","modifiers":[],"parent":"mcp.Instance","signatures":[{"raw":"func (i *Instance) Close() error","params":[],"receiver":{"name":"i","type":"*Instance"},"returns":"error"}],"doc":{"summary":"Close starts shutdown and waits on a bounded internal context."},"source":{"file":"mcp/instance_lifecycle.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.Instance.Close","product":"mcp","apiScope":"exported","slug":"mcp-instance-close"},{"id":"mcp.Instance.CloseContext","name":"CloseContext","kind":"method","modifiers":[],"parent":"mcp.Instance","signatures":[{"raw":"func (i *Instance) CloseContext(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"i","type":"*Instance"},"returns":"error"}],"doc":{"summary":"CloseContext starts shutdown unconditionally. ctx bounds only this call's wait; a later call can resume waiting for the same shutdown."},"source":{"file":"mcp/instance_lifecycle.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.Instance.CloseContext","product":"mcp","apiScope":"exported","slug":"mcp-instance-closecontext"},{"id":"mcp.ServerSession.Close","name":"Close","kind":"method","modifiers":[],"parent":"mcp.ServerSession","signatures":[{"raw":"func (s *ServerSession) Close() error","params":[],"receiver":{"name":"s","type":"*ServerSession"},"returns":"error"}],"doc":{"summary":"Close stops scoped work, closes the transport, and joins SDK session cleanup."},"source":{"file":"mcp/instance_lifecycle.go","line":128,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ServerSession.Close","product":"mcp","apiScope":"exported","slug":"mcp-serversession-close"},{"id":"mcp.ServerSession.Wait","name":"Wait","kind":"method","modifiers":[],"parent":"mcp.ServerSession","signatures":[{"raw":"func (s *ServerSession) Wait() error","params":[],"receiver":{"name":"s","type":"*ServerSession"},"returns":"error"}],"doc":{"summary":"Wait waits for client termination and session cleanup."},"source":{"file":"mcp/instance_lifecycle.go","line":143,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ServerSession.Wait","product":"mcp","apiScope":"exported","slug":"mcp-serversession-wait"},{"id":"mcp.MaterializeMinimalConfig","name":"MaterializeMinimalConfig","kind":"function","modifiers":[],"signatures":[{"raw":"func MaterializeMinimalConfig() (string, func() error, error)","params":[],"returns":"(string, func() error, error)"}],"doc":{"summary":"MaterializeMinimalConfig writes the embedded dedicated-server configuration for tmux's -f option. The caller keeps it until the MCP process stops."},"source":{"file":"mcp/minimal_config.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.MaterializeMinimalConfig","product":"mcp","apiScope":"exported","slug":"mcp-materializeminimalconfig"},{"id":"mcp.CapabilitiesResourceURI","name":"CapabilitiesResourceURI","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"CapabilitiesResourceURI is the only MCP resource exposed by this server."},"source":{"file":"mcp/resources.go","line":11,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.CapabilitiesResourceURI","product":"mcp","apiScope":"exported","slug":"mcp-capabilitiesresourceuri"},{"id":"mcp.ErrResponseCommitUnknown","name":"ErrResponseCommitUnknown","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrResponseCommitUnknown identifies a transport whose successful Write may leave one response buffered behind another response in a JSON-RPC batch."},"source":{"file":"mcp/response_transport.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ErrResponseCommitUnknown","product":"mcp","apiScope":"exported","slug":"mcp-errresponsecommitunknown"},{"id":"mcp.AssumeResponseCommit","name":"AssumeResponseCommit","kind":"function","modifiers":[],"signatures":[{"raw":"func AssumeResponseCommit(transport mcp.Transport) mcp.Transport","params":[{"name":"transport","type":"mcp.Transport"}],"returns":"mcp.Transport"}],"doc":{"summary":"AssumeResponseCommit marks transport as committing each response before its Connection.Write returns nil. It does not change transport behavior. Use it only for a transport that rejects JSON-RPC batches or writes every response independently; direct IO and stdio transports are handled automatically."},"source":{"file":"mcp/response_transport.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.AssumeResponseCommit","product":"mcp","apiScope":"exported","slug":"mcp-assumeresponsecommit"},{"id":"mcp.ErrRuntimeTargetBound","name":"ErrRuntimeTargetBound","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrRuntimeTargetBound identifies a target already bound to a terminal Connection. An MCP runtime must own the connection it creates."},"source":{"file":"mcp/runtime.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ErrRuntimeTargetBound","product":"mcp","apiScope":"exported","slug":"mcp-errruntimetargetbound"},{"id":"mcp.Version","name":"Version","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"Version is reported during MCP initialization. Installed binaries derive it from build metadata; source builds use fallbackVersion."},"source":{"file":"mcp/server.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.Version","product":"mcp","apiScope":"exported","slug":"mcp-version"},{"id":"mcp.NewServer","name":"NewServer","kind":"function","modifiers":[],"signatures":[{"raw":"func NewServer(target tmux.Server) (*Instance, error)","params":[{"name":"target","type":"tmux.Server"}],"returns":"(*Instance, error)"}],"doc":{"summary":"NewServer returns a closeable MCP instance exposing target. It rejects an invalid target before allocating instance-owned resources."},"source":{"file":"mcp/server.go","line":144,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.NewServer","product":"mcp","apiScope":"exported","slug":"mcp-newserver"},{"id":"mcp.Run","name":"Run","kind":"function","modifiers":[],"signatures":[{"raw":"func Run(ctx context.Context, target tmux.Server) error","params":[{"name":"ctx","type":"context.Context"},{"name":"target","type":"tmux.Server"}],"returns":"error"}],"doc":{"summary":"Run serves target over stdin and stdout until ctx is done."},"source":{"file":"mcp/server.go","line":251,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.Run","product":"mcp","apiScope":"exported","slug":"mcp-run"},{"id":"mcp.RunDefaultMinimal","name":"RunDefaultMinimal","kind":"function","modifiers":[],"signatures":[{"raw":"func RunDefaultMinimal(ctx context.Context, target tmux.Server) error","params":[{"name":"ctx","type":"context.Context"},{"name":"target","type":"tmux.Server"}],"returns":"error"}],"doc":{"summary":"RunDefaultMinimal serves a package-created default dedicated target. It starts or joins the daemon with a one-use owner marker and grants default teardown only when the marker proves this process created that daemon."},"source":{"file":"mcp/server.go","line":285,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.RunDefaultMinimal","product":"mcp","apiScope":"exported","slug":"mcp-rundefaultminimal"},{"id":"mcp.AdvertisedTools","name":"AdvertisedTools","kind":"function","modifiers":[],"signatures":[{"raw":"func AdvertisedTools(ctx context.Context) ([]*sdk.Tool, error)","params":[{"name":"ctx","type":"context.Context"}],"returns":"([]*sdk.Tool, error)"}],"doc":{"summary":"AdvertisedTools returns caller-owned descriptions of the startup-selected tools. It performs an in-memory MCP handshake without opening tmux or allocating runtime-owned audit resources.","body":"It describes a server that creates the default dedicated tmux server, the\nwidest default surface. [AdvertisedToolsFor] answers for a specific target."},"source":{"file":"mcp/tool_catalog.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.AdvertisedTools","product":"mcp","apiScope":"exported","slug":"mcp-advertisedtools"},{"id":"mcp.AdvertisedToolsFor","name":"AdvertisedToolsFor","kind":"function","modifiers":[],"signatures":[{"raw":"func AdvertisedToolsFor(\n\tctx context.Context,\n\ttarget tmux.Server,\n\tdefaultMinimal bool,\n) ([]*sdk.Tool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"target","type":"tmux.Server"},{"name":"defaultMinimal","type":"bool"}],"returns":"([]*sdk.Tool, error)"}],"doc":{"summary":"AdvertisedToolsFor returns the tools a server started now against target would advertise. defaultMinimal selects [RunDefaultMinimal]'s rule, which grants teardown tools only when that server creates the tmux server, so only when none is answering yet; [Run] never grants them by default. It asks whether a tmux server is answering and starts nothing."},"source":{"file":"mcp/tool_catalog.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.AdvertisedToolsFor","product":"mcp","apiScope":"exported","slug":"mcp-advertisedtoolsfor"},{"id":"mcp.ToolDetails","name":"ToolDetails","kind":"function","modifiers":[],"signatures":[{"raw":"func ToolDetails(name string) (string, bool)","params":[{"name":"name","type":"string"}],"returns":"(string, bool)"}],"doc":{"summary":"ToolDetails returns what the named tool does, without the capability disclosure every description opens with. The disclosure is shared across a toolset, so a listing that shows only a description's first sentence would otherwise show the same sentence for every tool in it."},"source":{"file":"mcp/tool_catalog.go","line":102,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ToolDetails","product":"mcp","apiScope":"exported","slug":"mcp-tooldetails"},{"id":"mcp.CapabilityMetaKey","name":"CapabilityMetaKey","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"CapabilityMetaKey is the MCP metadata key carrying the complete capability row that also drives registration and tmux://capabilities."},"source":{"file":"mcp/tool_manifest.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.CapabilityMetaKey","product":"mcp","apiScope":"exported","slug":"mcp-capabilitymetakey"},{"id":"mcp.SocketEnvironmentVariable","name":"SocketEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"SocketEnvironmentVariable selects one named tmux socket."},"source":{"file":"mcp/tool_surface.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.SocketEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-socketenvironmentvariable"},{"id":"mcp.SocketPathEnvironmentVariable","name":"SocketPathEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"SocketPathEnvironmentVariable selects one absolute tmux socket path."},"source":{"file":"mcp/tool_surface.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.SocketPathEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-socketpathenvironmentvariable"},{"id":"mcp.TmuxConfigEnvironmentVariable","name":"TmuxConfigEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"TmuxConfigEnvironmentVariable selects an absolute tmux config path."},"source":{"file":"mcp/tool_surface.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.TmuxConfigEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-tmuxconfigenvironmentvariable"},{"id":"mcp.BinaryEnvironmentVariable","name":"BinaryEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"BinaryEnvironmentVariable selects the tmux executable."},"source":{"file":"mcp/tool_surface.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.BinaryEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-binaryenvironmentvariable"},{"id":"mcp.ToolsetsEnvironmentVariable","name":"ToolsetsEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"ToolsetsEnvironmentVariable selects unordered inspect, manage, execute, and teardown groups. A present empty value selects no groups."},"source":{"file":"mcp/tool_surface.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ToolsetsEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-toolsetsenvironmentvariable"},{"id":"mcp.ToolsEnvironmentVariable","name":"ToolsEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"ToolsEnvironmentVariable adds exact tool names after toolset expansion."},"source":{"file":"mcp/tool_surface.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ToolsEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-toolsenvironmentvariable"},{"id":"mcp.ExcludeToolsEnvironmentVariable","name":"ExcludeToolsEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"ExcludeToolsEnvironmentVariable removes exact names after every inclusion."},"source":{"file":"mcp/tool_surface.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ExcludeToolsEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-excludetoolsenvironmentvariable"},{"id":"mcp.SafetyEnvironmentVariable","name":"SafetyEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"SafetyEnvironmentVariable is rejected because ordered safety tiers were retired."},"source":{"file":"mcp/tool_surface.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.SafetyEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-safetyenvironmentvariable"},{"id":"mcp.RecipeToolEnvironmentVariable","name":"RecipeToolEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"RecipeToolEnvironmentVariable is rejected because prompt exports were retired."},"source":{"file":"mcp/tool_surface.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.RecipeToolEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-recipetoolenvironmentvariable"},{"id":"mcp.WaitCeilingEnvironmentVariable","name":"WaitCeilingEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"WaitCeilingEnvironmentVariable names the variable that raises or lowers the longest wait this server will run, in seconds. It matches the Python server so an operator configuring both writes one thing."},"source":{"file":"mcp/wait_tools.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.WaitCeilingEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-waitceilingenvironmentvariable"}],"pruned":{"dropped":92,"kept":2817,"rules":["/^internal\\./","/^tmux\\.internal\\./"]},"sources":[{"product":"core","package":"github.com/libtmux/libtmux-go/tmux","repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},{"product":"workspace","package":"github.com/libtmux/libtmux-go/workspace","repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},{"product":"mcp","package":"github.com/libtmux/libtmux-go/mcp","repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"}],"repo":"libtmux/libtmux-go"} +{"port":"go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractor":"@libtmux/api-model@0.0.1","symbols":[{"id":"tmux.ModulePath","name":"ModulePath","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"ModulePath is the Go module this package belongs to. It is the module path rather than the package path, because that is what Go build metadata records."},"source":{"file":"tmux/build_info.go","line":7,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ModulePath","product":"core","slug":"tmux-modulepath"},{"id":"tmux.PackageVersion","name":"PackageVersion","kind":"function","modifiers":[],"signatures":[{"raw":"func PackageVersion() (string, bool)","params":[],"returns":"(string, bool)"}],"doc":{"summary":"PackageVersion returns the release version recorded in Go build metadata. Development builds and binaries without module metadata return \"\", false."},"source":{"file":"tmux/build_info.go","line":11,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PackageVersion","product":"core","slug":"tmux-packageversion"},{"id":"tmux.ClientAttachment","name":"ClientAttachment","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ClientAttachment is one immutable view of a client's live attachment. Session, Window, and Pane return values from the same observational Snapshot."},"source":{"file":"tmux/client_attachment.go","line":10,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientAttachment","product":"core","slug":"tmux-clientattachment"},{"id":"tmux.ClientAttachment.Session","name":"Session","kind":"method","modifiers":[],"parent":"tmux.ClientAttachment","signatures":[{"raw":"func (a ClientAttachment) Session() (Session, bool)","params":[],"receiver":{"name":"a","type":"ClientAttachment"},"returns":"(Session, bool)"}],"doc":{"summary":"Session returns the attached session, if it remained live in the snapshot."},"source":{"file":"tmux/client_attachment.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientAttachment.Session","product":"core","slug":"tmux-clientattachment-session"},{"id":"tmux.ClientAttachment.Window","name":"Window","kind":"method","modifiers":[],"parent":"tmux.ClientAttachment","signatures":[{"raw":"func (a ClientAttachment) Window() (Window, bool)","params":[],"receiver":{"name":"a","type":"ClientAttachment"},"returns":"(Window, bool)"}],"doc":{"summary":"Window returns the attached session's active winlink, if present."},"source":{"file":"tmux/client_attachment.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientAttachment.Window","product":"core","slug":"tmux-clientattachment-window"},{"id":"tmux.ClientAttachment.Pane","name":"Pane","kind":"method","modifiers":[],"parent":"tmux.ClientAttachment","signatures":[{"raw":"func (a ClientAttachment) Pane() (Pane, bool)","params":[],"receiver":{"name":"a","type":"ClientAttachment"},"returns":"(Pane, bool)"}],"doc":{"summary":"Pane returns the attached session's active window's active pane, if present."},"source":{"file":"tmux/client_attachment.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientAttachment.Pane","product":"core","slug":"tmux-clientattachment-pane"},{"id":"tmux.Client.ResolveAttachment","name":"ResolveAttachment","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) ResolveAttachment(ctx context.Context) (ClientAttachment, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"Client"},"returns":"(ClientAttachment, error)"}],"doc":{"summary":"ResolveAttachment re-reads the client's live attached hierarchy.","body":"One resolution materializes one strict Snapshot. Snapshot collection is a\nmulti-command observational read, so concurrent tmux changes may produce a\npartial hierarchy. A missing client, detached client, or stale session\nreturns an empty attachment without an error. Other collection, decoding,\nand cardinality errors remain visible."},"source":{"file":"tmux/client_attachment.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.ResolveAttachment","product":"core","slug":"tmux-client-resolveattachment"},{"id":"tmux.ErrUnknownColor","name":"ErrUnknownColor","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrUnknownColor identifies an unsupported tmux color mode. It is matched by errors.Is for [ColorError]."},"source":{"file":"tmux/command.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrUnknownColor","product":"core","slug":"tmux-errunknowncolor"},{"id":"tmux.ErrCommand","name":"ErrCommand","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrCommand identifies a failed high-level tmux command. It is matched by errors.Is for [CommandError]."},"source":{"file":"tmux/command.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrCommand","product":"core","slug":"tmux-errcommand"},{"id":"tmux.ErrNoServer","name":"ErrNoServer","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrNoServer identifies a command that no tmux server answered. A [CommandError] may match both ErrNoServer and [ErrCommand]. tmux cannot reliably distinguish an absent or unreachable server from one that exited during the command."},"source":{"file":"tmux/command.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrNoServer","product":"core","slug":"tmux-errnoserver"},{"id":"tmux.ErrNotFound","name":"ErrNotFound","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrNotFound identifies an operation naming a tmux object that does not exist. A lookup that found nothing matches it, and so does a command tmux refused because the target it named was gone — the same condition reached from either direction. [SnapshotLookupError] and [CommandError] match it through errors.Is.","body":"Only a claim of absence this package has not disproved matches. A lookup\nthat reaches a replaced daemon, or whose diagnostic names an object it did\nnot target, reports what it saw rather than an absence."},"source":{"file":"tmux/command.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrNotFound","product":"core","slug":"tmux-errnotfound"},{"id":"tmux.ColorMode","name":"ColorMode","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ColorMode selects a tmux color-capability override for [ServerOptions]."},"source":{"file":"tmux/command.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ColorMode","product":"core","slug":"tmux-colormode"},{"id":"tmux.ColorDefault","name":"ColorDefault","kind":"constant","modifiers":[],"signatures":[],"type":"ColorMode","doc":{"summary":"ColorDefault preserves tmux's detected color capability."},"source":{"file":"tmux/command.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ColorDefault","product":"core","slug":"tmux-colordefault"},{"id":"tmux.Color256","name":"Color256","kind":"constant","modifiers":[],"signatures":[],"type":"ColorMode","doc":{"summary":"Color256 requests tmux's 256-color capability mode."},"source":{"file":"tmux/command.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Color256","product":"core","slug":"tmux-color256"},{"id":"tmux.ColorError","name":"ColorError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ColorError reports an unsupported color mode. It matches [ErrUnknownColor] through errors.Is; callers can recover Mode with errors.As."},"source":{"file":"tmux/command.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ColorError","product":"core","slug":"tmux-colorerror"},{"id":"tmux.ColorError.Mode","name":"Mode","kind":"attribute","modifiers":[],"parent":"tmux.ColorError","signatures":[],"type":"ColorMode","doc":{"summary":"Mode is the rejected color-capability override."},"source":{"file":"tmux/command.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ColorError.Mode","product":"core","slug":"tmux-colorerror-mode"},{"id":"tmux.ColorError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.ColorError","signatures":[{"raw":"func (e *ColorError) Error() string","params":[],"receiver":{"name":"e","type":"*ColorError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/command.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ColorError.Error","product":"core","slug":"tmux-colorerror-error"},{"id":"tmux.ColorError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.ColorError","signatures":[{"raw":"func (e *ColorError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*ColorError"},"returns":"error"}],"doc":{"summary":"Unwrap makes ColorError compatible with ErrUnknownColor."},"source":{"file":"tmux/command.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ColorError.Unwrap","product":"core","slug":"tmux-colorerror-unwrap"},{"id":"tmux.CommandResult","name":"CommandResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CommandResult contains one completed tmux invocation. [Server.Cmd] returns it even when tmux exits nonzero. Library operations clone its slices before returning it, so the caller owns Command, Stdout, RawStdout, and Stderr."},"source":{"file":"tmux/command.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandResult","product":"core","slug":"tmux-commandresult"},{"id":"tmux.CommandResult.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.CommandResult","signatures":[],"type":"[]string","doc":{"summary":"Command is the executed tmux argument vector."},"source":{"file":"tmux/command.go","line":72,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandResult.Command","product":"core","slug":"tmux-commandresult-command"},{"id":"tmux.CommandResult.Stdout","name":"Stdout","kind":"attribute","modifiers":[],"parent":"tmux.CommandResult","signatures":[],"type":"[]string","doc":{"summary":"Stdout contains one decoded standard-output line per element."},"source":{"file":"tmux/command.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandResult.Stdout","product":"core","slug":"tmux-commandresult-stdout"},{"id":"tmux.CommandResult.RawStdout","name":"RawStdout","kind":"attribute","modifiers":[],"parent":"tmux.CommandResult","signatures":[],"type":"[]byte","doc":{"summary":"RawStdout contains exact captured standard-output bytes, including line delimiters and trailing newlines. It is nil when no output was captured."},"source":{"file":"tmux/command.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandResult.RawStdout","product":"core","slug":"tmux-commandresult-rawstdout"},{"id":"tmux.CommandResult.Stderr","name":"Stderr","kind":"attribute","modifiers":[],"parent":"tmux.CommandResult","signatures":[],"type":"[]string","doc":{"summary":"Stderr contains one decoded standard-error line per element."},"source":{"file":"tmux/command.go","line":79,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandResult.Stderr","product":"core","slug":"tmux-commandresult-stderr"},{"id":"tmux.CommandResult.ExitCode","name":"ExitCode","kind":"attribute","modifiers":[],"parent":"tmux.CommandResult","signatures":[],"type":"int","doc":{"summary":"ExitCode is tmux's completed process exit code, or -1 when no tmux command ran: this package refused the request, or a transport failed before tmux answered. A negative code is therefore never tmux's opinion of the request, and an error carrying one has a reason of its own."},"source":{"file":"tmux/command.go","line":84,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandResult.ExitCode","product":"core","slug":"tmux-commandresult-exitcode"},{"id":"tmux.CommandError","name":"CommandError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CommandError reports a completed failed high-level tmux operation. It matches [ErrCommand] through errors.Is; callers can recover its fields with errors.As. Generic library operations retain an owned copy of the completed command and output so tmux diagnostics remain available. Operations whose primary payload may contain secrets return an exit-code-only result instead. Callers must treat retained argv and output as potentially sensitive."},"source":{"file":"tmux/command.go","line":119,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandError","product":"core","slug":"tmux-commanderror"},{"id":"tmux.CommandError.Subcommand","name":"Subcommand","kind":"attribute","modifiers":[],"parent":"tmux.CommandError","signatures":[],"type":"string","doc":{"summary":"Subcommand is the failed tmux subcommand."},"source":{"file":"tmux/command.go","line":121,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandError.Subcommand","product":"core","slug":"tmux-commanderror-subcommand"},{"id":"tmux.CommandError.Result","name":"Result","kind":"attribute","modifiers":[],"parent":"tmux.CommandError","signatures":[],"type":"CommandResult","doc":{"summary":"Result is the owned completed result, or an exit-code-only redacted result for a secret-bearing operation."},"source":{"file":"tmux/command.go","line":124,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandError.Result","product":"core","slug":"tmux-commanderror-result"},{"id":"tmux.CommandError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.CommandError","signatures":[{"raw":"func (e *CommandError) Error() string","params":[],"receiver":{"name":"e","type":"*CommandError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/command.go","line":131,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandError.Error","product":"core","slug":"tmux-commanderror-error"},{"id":"tmux.CommandError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.CommandError","signatures":[{"raw":"func (e *CommandError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*CommandError"},"returns":"error"}],"doc":{"summary":"Unwrap makes CommandError compatible with ErrCommand."},"source":{"file":"tmux/command.go","line":140,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandError.Unwrap","product":"core","slug":"tmux-commanderror-unwrap"},{"id":"tmux.CommandError.Is","name":"Is","kind":"method","modifiers":[],"parent":"tmux.CommandError","signatures":[{"raw":"func (e *CommandError) Is(target error) bool","params":[{"name":"target","type":"error"}],"receiver":{"name":"e","type":"*CommandError"},"returns":"bool"}],"doc":{"summary":"Is reports [ErrNoServer] for a failure that means no tmux server answered — either the command never reached one, or the one it reached is gone — and [ErrNotFound] for one tmux refused because the object it named was absent."},"source":{"file":"tmux/command.go","line":147,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandError.Is","product":"core","slug":"tmux-commanderror-is"},{"id":"tmux.ErrMalformedComplexOption","name":"ErrMalformedComplexOption","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrMalformedComplexOption identifies an invalid entry in a parsed complex option."},"source":{"file":"tmux/complex_options.go","line":11,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrMalformedComplexOption","product":"core","slug":"tmux-errmalformedcomplexoption"},{"id":"tmux.ComplexOptionDecodeError","name":"ComplexOptionDecodeError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ComplexOptionDecodeError identifies one malformed sparse-array entry without retaining its raw value."},"source":{"file":"tmux/complex_options.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ComplexOptionDecodeError","product":"core","slug":"tmux-complexoptiondecodeerror"},{"id":"tmux.ComplexOptionDecodeError.Option","name":"Option","kind":"attribute","modifiers":[],"parent":"tmux.ComplexOptionDecodeError","signatures":[],"type":"string","doc":{"summary":"Option is the option name whose sparse-array entry was malformed."},"source":{"file":"tmux/complex_options.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ComplexOptionDecodeError.Option","product":"core","slug":"tmux-complexoptiondecodeerror-option"},{"id":"tmux.ComplexOptionDecodeError.Index","name":"Index","kind":"attribute","modifiers":[],"parent":"tmux.ComplexOptionDecodeError","signatures":[],"type":"int","doc":{"summary":"Index is the zero-based sparse-array entry index."},"source":{"file":"tmux/complex_options.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ComplexOptionDecodeError.Index","product":"core","slug":"tmux-complexoptiondecodeerror-index"},{"id":"tmux.ComplexOptionDecodeError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.ComplexOptionDecodeError","signatures":[],"type":"string","doc":{"summary":"Reason describes the syntax failure without retaining raw option contents."},"source":{"file":"tmux/complex_options.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ComplexOptionDecodeError.Reason","product":"core","slug":"tmux-complexoptiondecodeerror-reason"},{"id":"tmux.ComplexOptionDecodeError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.ComplexOptionDecodeError","signatures":[{"raw":"func (e *ComplexOptionDecodeError) Error() string","params":[],"receiver":{"name":"e","type":"*ComplexOptionDecodeError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/complex_options.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ComplexOptionDecodeError.Error","product":"core","slug":"tmux-complexoptiondecodeerror-error"},{"id":"tmux.ComplexOptionDecodeError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.ComplexOptionDecodeError","signatures":[{"raw":"func (e *ComplexOptionDecodeError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*ComplexOptionDecodeError"},"returns":"error"}],"doc":{"summary":"Unwrap makes ComplexOptionDecodeError compatible with ErrMalformedComplexOption."},"source":{"file":"tmux/complex_options.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ComplexOptionDecodeError.Unwrap","product":"core","slug":"tmux-complexoptiondecodeerror-unwrap"},{"id":"tmux.CommandAlias","name":"CommandAlias","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CommandAlias is one parsed command-alias entry."},"source":{"file":"tmux/complex_options.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandAlias","product":"core","slug":"tmux-commandalias"},{"id":"tmux.CommandAlias.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.CommandAlias","signatures":[],"type":"string","doc":{"summary":"Name is the alias name."},"source":{"file":"tmux/complex_options.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandAlias.Name","product":"core","slug":"tmux-commandalias-name"},{"id":"tmux.CommandAlias.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.CommandAlias","signatures":[],"type":"string","doc":{"summary":"Command is the tmux command text associated with Name."},"source":{"file":"tmux/complex_options.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandAlias.Command","product":"core","slug":"tmux-commandalias-command"},{"id":"tmux.CommandAliases","name":"CommandAliases","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CommandAliases is an immutable parsed command-alias option. Its zero value is an empty collection: Len is zero, Lookup reports false, and Entries returns a nonnil empty slice."},"source":{"file":"tmux/complex_options.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandAliases","product":"core","slug":"tmux-commandaliases"},{"id":"tmux.CommandAliases.Lookup","name":"Lookup","kind":"method","modifiers":[],"parent":"tmux.CommandAliases","signatures":[{"raw":"func (a CommandAliases) Lookup(name string) (string, bool)","params":[{"name":"name","type":"string"}],"receiver":{"name":"a","type":"CommandAliases"},"returns":"(string, bool)"}],"doc":{"summary":"Lookup returns the command registered for name."},"source":{"file":"tmux/complex_options.go","line":55,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandAliases.Lookup","product":"core","slug":"tmux-commandaliases-lookup"},{"id":"tmux.CommandAliases.Entries","name":"Entries","kind":"method","modifiers":[],"parent":"tmux.CommandAliases","signatures":[{"raw":"func (a CommandAliases) Entries() []CommandAlias","params":[],"receiver":{"name":"a","type":"CommandAliases"},"returns":"[]CommandAlias"}],"doc":{"summary":"Entries returns a fresh slice in first-definition order."},"source":{"file":"tmux/complex_options.go","line":64,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandAliases.Entries","product":"core","slug":"tmux-commandaliases-entries"},{"id":"tmux.CommandAliases.Len","name":"Len","kind":"method","modifiers":[],"parent":"tmux.CommandAliases","signatures":[{"raw":"func (a CommandAliases) Len() int","params":[],"receiver":{"name":"a","type":"CommandAliases"},"returns":"int"}],"doc":{"summary":"Len returns the number of distinct aliases."},"source":{"file":"tmux/complex_options.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandAliases.Len","product":"core","slug":"tmux-commandaliases-len"},{"id":"tmux.TerminalFeature","name":"TerminalFeature","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TerminalFeature is one terminal pattern and its enabled features."},"source":{"file":"tmux/complex_options.go","line":72,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalFeature","product":"core","slug":"tmux-terminalfeature"},{"id":"tmux.TerminalFeature.Terminal","name":"Terminal","kind":"attribute","modifiers":[],"parent":"tmux.TerminalFeature","signatures":[],"type":"string","doc":{"summary":"Terminal is the terminal pattern."},"source":{"file":"tmux/complex_options.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalFeature.Terminal","product":"core","slug":"tmux-terminalfeature-terminal"},{"id":"tmux.TerminalFeature.Features","name":"Features","kind":"attribute","modifiers":[],"parent":"tmux.TerminalFeature","signatures":[],"type":"[]string","doc":{"summary":"Features is an owned feature list for Terminal."},"source":{"file":"tmux/complex_options.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalFeature.Features","product":"core","slug":"tmux-terminalfeature-features"},{"id":"tmux.TerminalFeatures","name":"TerminalFeatures","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TerminalFeatures is an immutable parsed terminal-features option. Its zero value is an empty collection: Len is zero, Lookup reports false, and Entries returns a nonnil empty slice."},"source":{"file":"tmux/complex_options.go","line":82,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalFeatures","product":"core","slug":"tmux-terminalfeatures"},{"id":"tmux.TerminalFeatures.Lookup","name":"Lookup","kind":"method","modifiers":[],"parent":"tmux.TerminalFeatures","signatures":[{"raw":"func (f TerminalFeatures) Lookup(terminal string) ([]string, bool)","params":[{"name":"terminal","type":"string"}],"receiver":{"name":"f","type":"TerminalFeatures"},"returns":"([]string, bool)"}],"doc":{"summary":"Lookup returns a fresh feature slice for terminal."},"source":{"file":"tmux/complex_options.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalFeatures.Lookup","product":"core","slug":"tmux-terminalfeatures-lookup"},{"id":"tmux.TerminalFeatures.Entries","name":"Entries","kind":"method","modifiers":[],"parent":"tmux.TerminalFeatures","signatures":[{"raw":"func (f TerminalFeatures) Entries() []TerminalFeature","params":[],"receiver":{"name":"f","type":"TerminalFeatures"},"returns":"[]TerminalFeature"}],"doc":{"summary":"Entries returns a deep fresh copy in first-definition order."},"source":{"file":"tmux/complex_options.go","line":97,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalFeatures.Entries","product":"core","slug":"tmux-terminalfeatures-entries"},{"id":"tmux.TerminalFeatures.Len","name":"Len","kind":"method","modifiers":[],"parent":"tmux.TerminalFeatures","signatures":[{"raw":"func (f TerminalFeatures) Len() int","params":[],"receiver":{"name":"f","type":"TerminalFeatures"},"returns":"int"}],"doc":{"summary":"Len returns the number of distinct terminal patterns."},"source":{"file":"tmux/complex_options.go","line":109,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalFeatures.Len","product":"core","slug":"tmux-terminalfeatures-len"},{"id":"tmux.TerminalOverrideValueKind","name":"TerminalOverrideValueKind","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TerminalOverrideValueKind identifies one closed terminal capability value form."},"source":{"file":"tmux/complex_options.go","line":112,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideValueKind","product":"core","slug":"tmux-terminaloverridevaluekind"},{"id":"tmux.TerminalOverrideValueFlag","name":"TerminalOverrideValueFlag","kind":"constant","modifiers":[],"signatures":[],"type":"TerminalOverrideValueKind","doc":{"summary":"TerminalOverrideValueFlag identifies a capability without an assigned value."},"source":{"file":"tmux/complex_options.go","line":116,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideValueFlag","product":"core","slug":"tmux-terminaloverridevalueflag"},{"id":"tmux.TerminalOverrideValueInteger","name":"TerminalOverrideValueInteger","kind":"constant","modifiers":[],"signatures":[],"type":"TerminalOverrideValueKind","doc":{"summary":"TerminalOverrideValueInteger identifies an unsigned decimal integer."},"source":{"file":"tmux/complex_options.go","line":118,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideValueInteger","product":"core","slug":"tmux-terminaloverridevalueinteger"},{"id":"tmux.TerminalOverrideValueText","name":"TerminalOverrideValueText","kind":"constant","modifiers":[],"signatures":[],"type":"TerminalOverrideValueKind","doc":{"summary":"TerminalOverrideValueText identifies an assigned non-integer string."},"source":{"file":"tmux/complex_options.go","line":120,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideValueText","product":"core","slug":"tmux-terminaloverridevaluetext"},{"id":"tmux.TerminalOverrideValue","name":"TerminalOverrideValue","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TerminalOverrideValue is a flag, arbitrary-precision integer, or string. Its zero value has no recognized kind: IsFlag is false, Integer and Text report false, and it represents no parsed capability assignment."},"source":{"file":"tmux/complex_options.go","line":126,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideValue","product":"core","slug":"tmux-terminaloverridevalue"},{"id":"tmux.TerminalOverrideValue.Kind","name":"Kind","kind":"method","modifiers":[],"parent":"tmux.TerminalOverrideValue","signatures":[{"raw":"func (v TerminalOverrideValue) Kind() TerminalOverrideValueKind","params":[],"receiver":{"name":"v","type":"TerminalOverrideValue"},"returns":"TerminalOverrideValueKind"}],"doc":{"summary":"Kind returns the value's closed form."},"source":{"file":"tmux/complex_options.go","line":132,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideValue.Kind","product":"core","slug":"tmux-terminaloverridevalue-kind"},{"id":"tmux.TerminalOverrideValue.IsFlag","name":"IsFlag","kind":"method","modifiers":[],"parent":"tmux.TerminalOverrideValue","signatures":[{"raw":"func (v TerminalOverrideValue) IsFlag() bool","params":[],"receiver":{"name":"v","type":"TerminalOverrideValue"},"returns":"bool"}],"doc":{"summary":"IsFlag reports whether the capability has no assigned value."},"source":{"file":"tmux/complex_options.go","line":135,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideValue.IsFlag","product":"core","slug":"tmux-terminaloverridevalue-isflag"},{"id":"tmux.TerminalOverrideValue.Integer","name":"Integer","kind":"method","modifiers":[],"parent":"tmux.TerminalOverrideValue","signatures":[{"raw":"func (v TerminalOverrideValue) Integer() (*big.Int, bool)","params":[],"receiver":{"name":"v","type":"TerminalOverrideValue"},"returns":"(*big.Int, bool)"}],"doc":{"summary":"Integer returns a fresh arbitrary-precision integer when the value is numeric."},"source":{"file":"tmux/complex_options.go","line":140,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideValue.Integer","product":"core","slug":"tmux-terminaloverridevalue-integer"},{"id":"tmux.TerminalOverrideValue.Text","name":"Text","kind":"method","modifiers":[],"parent":"tmux.TerminalOverrideValue","signatures":[{"raw":"func (v TerminalOverrideValue) Text() (string, bool)","params":[],"receiver":{"name":"v","type":"TerminalOverrideValue"},"returns":"(string, bool)"}],"doc":{"summary":"Text returns the assigned string when the value is textual."},"source":{"file":"tmux/complex_options.go","line":149,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideValue.Text","product":"core","slug":"tmux-terminaloverridevalue-text"},{"id":"tmux.TerminalCapability","name":"TerminalCapability","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TerminalCapability is one parsed terminal override capability."},"source":{"file":"tmux/complex_options.go","line":157,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalCapability","product":"core","slug":"tmux-terminalcapability"},{"id":"tmux.TerminalCapability.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.TerminalCapability","signatures":[],"type":"string","doc":{"summary":"Name is the capability name."},"source":{"file":"tmux/complex_options.go","line":159,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalCapability.Name","product":"core","slug":"tmux-terminalcapability-name"},{"id":"tmux.TerminalCapability.Value","name":"Value","kind":"attribute","modifiers":[],"parent":"tmux.TerminalCapability","signatures":[],"type":"TerminalOverrideValue","doc":{"summary":"Value is the parsed capability value."},"source":{"file":"tmux/complex_options.go","line":161,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalCapability.Value","product":"core","slug":"tmux-terminalcapability-value"},{"id":"tmux.TerminalOverride","name":"TerminalOverride","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TerminalOverride is the immutable capability set for one terminal pattern. Its zero value is an empty immutable collection: Len is zero, Lookup reports false, and Entries returns a nonnil empty slice."},"source":{"file":"tmux/complex_options.go","line":167,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverride","product":"core","slug":"tmux-terminaloverride"},{"id":"tmux.TerminalOverride.Lookup","name":"Lookup","kind":"method","modifiers":[],"parent":"tmux.TerminalOverride","signatures":[{"raw":"func (o TerminalOverride) Lookup(name string) (TerminalOverrideValue, bool)","params":[{"name":"name","type":"string"}],"receiver":{"name":"o","type":"TerminalOverride"},"returns":"(TerminalOverrideValue, bool)"}],"doc":{"summary":"Lookup returns one capability value."},"source":{"file":"tmux/complex_options.go","line":173,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverride.Lookup","product":"core","slug":"tmux-terminaloverride-lookup"},{"id":"tmux.TerminalOverride.Entries","name":"Entries","kind":"method","modifiers":[],"parent":"tmux.TerminalOverride","signatures":[{"raw":"func (o TerminalOverride) Entries() []TerminalCapability","params":[],"receiver":{"name":"o","type":"TerminalOverride"},"returns":"[]TerminalCapability"}],"doc":{"summary":"Entries returns a fresh slice in first-definition order."},"source":{"file":"tmux/complex_options.go","line":182,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverride.Entries","product":"core","slug":"tmux-terminaloverride-entries"},{"id":"tmux.TerminalOverride.Len","name":"Len","kind":"method","modifiers":[],"parent":"tmux.TerminalOverride","signatures":[{"raw":"func (o TerminalOverride) Len() int","params":[],"receiver":{"name":"o","type":"TerminalOverride"},"returns":"int"}],"doc":{"summary":"Len returns the number of distinct capabilities."},"source":{"file":"tmux/complex_options.go","line":187,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverride.Len","product":"core","slug":"tmux-terminaloverride-len"},{"id":"tmux.TerminalOverrideEntry","name":"TerminalOverrideEntry","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TerminalOverrideEntry is one terminal pattern and its parsed capabilities."},"source":{"file":"tmux/complex_options.go","line":190,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideEntry","product":"core","slug":"tmux-terminaloverrideentry"},{"id":"tmux.TerminalOverrideEntry.Terminal","name":"Terminal","kind":"attribute","modifiers":[],"parent":"tmux.TerminalOverrideEntry","signatures":[],"type":"string","doc":{"summary":"Terminal is the terminal pattern."},"source":{"file":"tmux/complex_options.go","line":192,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideEntry.Terminal","product":"core","slug":"tmux-terminaloverrideentry-terminal"},{"id":"tmux.TerminalOverrideEntry.Capabilities","name":"Capabilities","kind":"attribute","modifiers":[],"parent":"tmux.TerminalOverrideEntry","signatures":[],"type":"TerminalOverride","doc":{"summary":"Capabilities is the immutable capability set for Terminal."},"source":{"file":"tmux/complex_options.go","line":194,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrideEntry.Capabilities","product":"core","slug":"tmux-terminaloverrideentry-capabilities"},{"id":"tmux.TerminalOverrides","name":"TerminalOverrides","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TerminalOverrides is an immutable parsed terminal-overrides option. Its zero value is an empty immutable collection: Len is zero, Lookup reports false, and Entries returns a nonnil empty slice."},"source":{"file":"tmux/complex_options.go","line":200,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrides","product":"core","slug":"tmux-terminaloverrides"},{"id":"tmux.TerminalOverrides.Lookup","name":"Lookup","kind":"method","modifiers":[],"parent":"tmux.TerminalOverrides","signatures":[{"raw":"func (o TerminalOverrides) Lookup(terminal string) (TerminalOverride, bool)","params":[{"name":"terminal","type":"string"}],"receiver":{"name":"o","type":"TerminalOverrides"},"returns":"(TerminalOverride, bool)"}],"doc":{"summary":"Lookup returns the capabilities for terminal."},"source":{"file":"tmux/complex_options.go","line":206,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrides.Lookup","product":"core","slug":"tmux-terminaloverrides-lookup"},{"id":"tmux.TerminalOverrides.Entries","name":"Entries","kind":"method","modifiers":[],"parent":"tmux.TerminalOverrides","signatures":[{"raw":"func (o TerminalOverrides) Entries() []TerminalOverrideEntry","params":[],"receiver":{"name":"o","type":"TerminalOverrides"},"returns":"[]TerminalOverrideEntry"}],"doc":{"summary":"Entries returns a fresh outer slice in first-definition order. Nested TerminalOverride values remain immutable."},"source":{"file":"tmux/complex_options.go","line":216,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrides.Entries","product":"core","slug":"tmux-terminaloverrides-entries"},{"id":"tmux.TerminalOverrides.Len","name":"Len","kind":"method","modifiers":[],"parent":"tmux.TerminalOverrides","signatures":[{"raw":"func (o TerminalOverrides) Len() int","params":[],"receiver":{"name":"o","type":"TerminalOverrides"},"returns":"int"}],"doc":{"summary":"Len returns the number of distinct terminal patterns."},"source":{"file":"tmux/complex_options.go","line":221,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TerminalOverrides.Len","product":"core","slug":"tmux-terminaloverrides-len"},{"id":"tmux.ServerOptionValues.CommandAliases","name":"CommandAliases","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) CommandAliases() (OptionValue[CommandAliases], error)","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"(OptionValue[CommandAliases], error)"}],"doc":{"summary":"CommandAliases parses command-alias while preserving option presence and origin. A nonnil joined error contains [ComplexOptionDecodeError] values, each usable with [errors.Is] or [errors.As]; the returned projection still contains every valid entry and is owned by the caller."},"source":{"file":"tmux/complex_options.go","line":227,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.CommandAliases","product":"core","slug":"tmux-serveroptionvalues-commandaliases"},{"id":"tmux.ServerOptionValues.ParsedTerminalFeatures","name":"ParsedTerminalFeatures","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) ParsedTerminalFeatures() (OptionValue[TerminalFeatures], error)","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"(OptionValue[TerminalFeatures], error)"}],"doc":{"summary":"ParsedTerminalFeatures parses terminal-features while preserving option presence and origin. A nonnil joined error contains [ComplexOptionDecodeError] values and the returned owned projection contains every valid entry."},"source":{"file":"tmux/complex_options.go","line":253,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.ParsedTerminalFeatures","product":"core","slug":"tmux-serveroptionvalues-parsedterminalfeatures"},{"id":"tmux.ServerOptionValues.ParsedTerminalOverrides","name":"ParsedTerminalOverrides","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) ParsedTerminalOverrides() (OptionValue[TerminalOverrides], error)","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"(OptionValue[TerminalOverrides], error)"}],"doc":{"summary":"ParsedTerminalOverrides parses terminal-overrides while preserving option presence and origin. Terminal-overrides syntax is permissive: no malformed entry error is returned, and the result owns its parsed projection."},"source":{"file":"tmux/complex_options.go","line":278,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.ParsedTerminalOverrides","product":"core","slug":"tmux-serveroptionvalues-parsedterminaloverrides"},{"id":"tmux.ErrConnectionRequiresProcess","name":"ErrConnectionRequiresProcess","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrConnectionRequiresProcess identifies an operation refused because a terminal [Connection] cannot start a tmux process outside its owned lanes."},"source":{"file":"tmux/connection.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrConnectionRequiresProcess","product":"core","slug":"tmux-errconnectionrequiresprocess"},{"id":"tmux.ConnectionOptions","name":"ConnectionOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ConnectionOptions configures the control-mode lanes owned by a [Connection]."},"source":{"file":"tmux/connection.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ConnectionOptions","product":"core","slug":"tmux-connectionoptions"},{"id":"tmux.ConnectionOptions.Lanes","name":"Lanes","kind":"attribute","modifiers":[],"parent":"tmux.ConnectionOptions","signatures":[],"type":"int","doc":{"summary":"Lanes is the number of concurrent command lanes. Zero opens one. Each lane is an attached tmux client and carries one command at a time."},"source":{"file":"tmux/connection.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ConnectionOptions.Lanes","product":"core","slug":"tmux-connectionoptions-lanes"},{"id":"tmux.Connection","name":"Connection","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Connection owns terminal control-mode transport to the exact daemon that materialized its session. Values obtained from Server or Session retain the connection. Closing is terminal: they neither reconnect nor fall back to a subprocess. Its lanes are attached tmux clients; closing the last client can trigger tmux's destroy-unattached or exit-unattached policy. On tmux 3.6 or later, destroying its initial session moves the clients to another session when one exists; the retained Session value keeps its original identity.","body":"It is what a record runs through. [Server.OpenControl] returns a\n[ControlClient] instead, one client carrying commands and notifications\nwith no record bound to it."},"source":{"file":"tmux/connection.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Connection","product":"core","slug":"tmux-connection"},{"id":"tmux.Server.ConnectionBound","name":"ConnectionBound","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ConnectionBound() bool","params":[],"receiver":{"name":"s","type":"Server"},"returns":"bool"}],"doc":{"summary":"ConnectionBound reports whether this handle retains terminal transport owned by a [Connection]. A bound handle never reconnects or falls back to a tmux subprocess after that connection closes."},"source":{"file":"tmux/connection.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ConnectionBound","product":"core","slug":"tmux-server-connectionbound"},{"id":"tmux.Session.OpenControl","name":"OpenControl","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) OpenControl(\n\tctx context.Context,\n\toptions ConnectionOptions,\n) (*Connection, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"options","type":"ConnectionOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"(*Connection, error)"}],"doc":{"summary":"OpenControl opens terminal control-mode transport to the receiver's daemon. The returned connection owns its lanes and must be closed. A receiver already bound to a connection cannot be rebound. Before tmux 3.6, destroying the attached session follows that session's detach-on-destroy policy and may end the connection."},"source":{"file":"tmux/connection.go","line":87,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.OpenControl","product":"core","slug":"tmux-session-opencontrol"},{"id":"tmux.Server.NewSessionConnection","name":"NewSessionConnection","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) NewSessionConnection(\n\tctx context.Context,\n\trequest NewSessionRequest,\n\toptions ConnectionOptions,\n) (Session, *Connection, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"NewSessionRequest"},{"name":"options","type":"ConnectionOptions"}],"receiver":{"name":"s","type":"Server"},"returns":"(Session, *Connection, error)"}],"doc":{"summary":"NewSessionConnection creates a session with a control-mode client and keeps that same process as the first terminal command lane. Unlike [Server.NewSession], it creates an attached session. If tmux reports a valid session ID before later setup fails, the returned partial session retains that ID and server. Cleanup closes the attached creator, so tmux policy may make the partial session no longer live. Before tmux 3.6, destroying the created session follows its detach-on-destroy policy and may end the connection. KillExisting is rejected because removing an existing session cannot be rolled back if later connection setup fails."},"source":{"file":"tmux/connection.go","line":124,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.NewSessionConnection","product":"core","slug":"tmux-server-newsessionconnection"},{"id":"tmux.Connection.Server","name":"Server","kind":"method","modifiers":[],"parent":"tmux.Connection","signatures":[{"raw":"func (c *Connection) Server() Server","params":[],"receiver":{"name":"c","type":"*Connection"},"returns":"Server"}],"doc":{"summary":"Server returns the ordinary server value bound to this connection."},"source":{"file":"tmux/connection.go","line":318,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Connection.Server","product":"core","slug":"tmux-connection-server"},{"id":"tmux.Connection.Session","name":"Session","kind":"method","modifiers":[],"parent":"tmux.Connection","signatures":[{"raw":"func (c *Connection) Session() Session","params":[],"receiver":{"name":"c","type":"*Connection"},"returns":"Session"}],"doc":{"summary":"Session returns the attached session value bound to this connection."},"source":{"file":"tmux/connection.go","line":321,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Connection.Session","product":"core","slug":"tmux-connection-session"},{"id":"tmux.Connection.Lanes","name":"Lanes","kind":"method","modifiers":[],"parent":"tmux.Connection","signatures":[{"raw":"func (c *Connection) Lanes() int","params":[],"receiver":{"name":"c","type":"*Connection"},"returns":"int"}],"doc":{"summary":"Lanes reports the number of owned control-mode command lanes."},"source":{"file":"tmux/connection.go","line":324,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Connection.Lanes","product":"core","slug":"tmux-connection-lanes"},{"id":"tmux.Connection.Call","name":"Call","kind":"method","modifiers":[],"parent":"tmux.Connection","signatures":[{"raw":"func (c *Connection) Call(\n\tctx context.Context,\n\targs ...string,\n) ([]ControlCommandResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"args","type":"string","variadic":"positional"}],"receiver":{"name":"c","type":"*Connection"},"returns":"([]ControlCommandResult, error)"}],"doc":{"summary":"Call executes one safely encoded tmux command on an owned lane and returns every reply frame in order. An alias may produce zero or multiple frames; a %error frame remains result data through [ControlCommandResult.Failed]. Args always describe one command, so a bare semicolon is quoted as an operand rather than interpreted as a command-list separator."},"source":{"file":"tmux/connection.go","line":336,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Connection.Call","product":"core","slug":"tmux-connection-call"},{"id":"tmux.Connection.CloseContext","name":"CloseContext","kind":"method","modifiers":[],"parent":"tmux.Connection","signatures":[{"raw":"func (c *Connection) CloseContext(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"*Connection"},"returns":"error"}],"doc":{"summary":"CloseContext starts terminal shutdown and waits within ctx. The context bounds only the wait; a later call may resume waiting for the same shutdown."},"source":{"file":"tmux/connection.go","line":359,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Connection.CloseContext","product":"core","slug":"tmux-connection-closecontext"},{"id":"tmux.Connection.Close","name":"Close","kind":"method","modifiers":[],"parent":"tmux.Connection","signatures":[{"raw":"func (c *Connection) Close() error","params":[],"receiver":{"name":"c","type":"*Connection"},"returns":"error"}],"doc":{"summary":"Close terminally closes every lane on bounded internal contexts. It is safe to call concurrently and more than once."},"source":{"file":"tmux/connection.go","line":368,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Connection.Close","product":"core","slug":"tmux-connection-close"},{"id":"tmux.ErrControlClosed","name":"ErrControlClosed","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrControlClosed identifies an operation attempted after a control client began closing or lost its protocol stream."},"source":{"file":"tmux/control_client.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrControlClosed","product":"core","slug":"tmux-errcontrolclosed"},{"id":"tmux.ErrControlStreamLost","name":"ErrControlStreamLost","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrControlStreamLost identifies a [ControlClient.NextNotification] stream that ended before the caller asked to close it, distinct from the clean end an explicit Close or CloseContext produces. It is most often the underlying tmux client process exiting because the server it was attached to did."},"source":{"file":"tmux/control_client.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrControlStreamLost","product":"core","slug":"tmux-errcontrolstreamlost"},{"id":"tmux.ErrOutcomeUnknown","name":"ErrOutcomeUnknown","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrOutcomeUnknown identifies a command whose write began but whose reply boundary was not observed. The operation may have changed tmux."},"source":{"file":"tmux/control_client.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrOutcomeUnknown","product":"core","slug":"tmux-erroutcomeunknown"},{"id":"tmux.ErrControlReplyCount","name":"ErrControlReplyCount","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrControlReplyCount identifies a call to [ControlClient.Cmd] for a command that produced zero or multiple reply frames."},"source":{"file":"tmux/control_client.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrControlReplyCount","product":"core","slug":"tmux-errcontrolreplycount"},{"id":"tmux.ControlClient","name":"ControlClient","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ControlClient is one attached tmux control-mode process. Create one with [Server.OpenControl]. Concurrent Cmd, Wait, and close calls are supported; exactly one caller may execute NextNotification at a time.","body":"It is the low-level handle: it carries commands and notifications on one\nclient and can [ControlClient.Reconnect], but records do not run through it.\n[Session.OpenControl] returns a [Connection] instead, whose lanes the\nsessions, windows and panes obtained from it use for their own commands."},"source":{"file":"tmux/control_client.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient","product":"core","slug":"tmux-controlclient"},{"id":"tmux.ControlClient.ClientName","name":"ClientName","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) ClientName() ClientName","params":[],"receiver":{"name":"c","type":"*ControlClient"},"returns":"ClientName"}],"doc":{"summary":"ClientName returns the tmux-assigned identity captured during registration."},"source":{"file":"tmux/control_client.go","line":101,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.ClientName","product":"core","slug":"tmux-controlclient-clientname"},{"id":"tmux.ControlClient.Server","name":"Server","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) Server() Server","params":[],"receiver":{"name":"c","type":"*ControlClient"},"returns":"Server"}],"doc":{"summary":"Server returns the server handle used to start the control client."},"source":{"file":"tmux/control_client.go","line":104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.Server","product":"core","slug":"tmux-controlclient-server"},{"id":"tmux.ControlClient.Session","name":"Session","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) Session() Session","params":[],"receiver":{"name":"c","type":"*ControlClient"},"returns":"Session"}],"doc":{"summary":"Session returns the materialized session selected during startup."},"source":{"file":"tmux/control_client.go","line":107,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.Session","product":"core","slug":"tmux-controlclient-session"},{"id":"tmux.ControlClient.Wait","name":"Wait","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) Wait(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"*ControlClient"},"returns":"error"}],"doc":{"summary":"Wait blocks until the control process exits or ctx ends. It does not close the notification queue; callers may drain final notifications before Close."},"source":{"file":"tmux/control_lifecycle.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.Wait","product":"core","slug":"tmux-controlclient-wait"},{"id":"tmux.ControlClient.CloseContext","name":"CloseContext","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) CloseContext(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"*ControlClient"},"returns":"error"}],"doc":{"summary":"CloseContext starts idempotent control-client shutdown and waits within ctx. The context bounds only the wait: an already-ended context still starts shutdown, and a later call may resume waiting for the same close."},"source":{"file":"tmux/control_lifecycle.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.CloseContext","product":"core","slug":"tmux-controlclient-closecontext"},{"id":"tmux.ControlClient.Close","name":"Close","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) Close() error","params":[],"receiver":{"name":"c","type":"*ControlClient"},"returns":"error"}],"doc":{"summary":"Close stops the control process and releases its notification queue. It is safe to call concurrently and more than once."},"source":{"file":"tmux/control_lifecycle.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.Close","product":"core","slug":"tmux-controlclient-close"},{"id":"tmux.ControlClient.Reconnect","name":"Reconnect","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) Reconnect(ctx context.Context) (*ControlClient, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"*ControlClient"},"returns":"(*ControlClient, error)"}],"doc":{"summary":"Reconnect registers a replacement on the last attached session observed at a reply boundary, then closes the receiver. Failed replacement setup does not initiate receiver shutdown. If shutdown fails, Reconnect returns the live replacement with that error; the caller owns every non-nil result. A receiver whose stream ended cleanly can recover from its last observation. Commands are never replayed."},"source":{"file":"tmux/control_lifecycle.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.Reconnect","product":"core","slug":"tmux-controlclient-reconnect"},{"id":"tmux.ErrMalformedControlNotification","name":"ErrMalformedControlNotification","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrMalformedControlNotification identifies a structurally invalid control-mode notification."},"source":{"file":"tmux/control_notification.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrMalformedControlNotification","product":"core","slug":"tmux-errmalformedcontrolnotification"},{"id":"tmux.ErrUnknownControlNotification","name":"ErrUnknownControlNotification","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrUnknownControlNotification identifies a well-framed notification kind outside the pinned control-mode vocabulary."},"source":{"file":"tmux/control_notification.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrUnknownControlNotification","product":"core","slug":"tmux-errunknowncontrolnotification"},{"id":"tmux.ControlNotificationError","name":"ControlNotificationError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ControlNotificationError reports where a control-mode notification failed validation without retaining or disclosing the notification contents. Callers can use [errors.Is] with Category or [errors.As] to inspect its secret-safe location metadata. Category is [ErrMalformedControlNotification] or [ErrUnknownControlNotification]."},"source":{"file":"tmux/control_notification.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationError","product":"core","slug":"tmux-controlnotificationerror"},{"id":"tmux.ControlNotificationError.Offset","name":"Offset","kind":"attribute","modifiers":[],"parent":"tmux.ControlNotificationError","signatures":[],"type":"int","doc":{"summary":"Offset is the byte offset of the malformed protocol element."},"source":{"file":"tmux/control_notification.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationError.Offset","product":"core","slug":"tmux-controlnotificationerror-offset"},{"id":"tmux.ControlNotificationError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.ControlNotificationError","signatures":[],"type":"string","doc":{"summary":"Reason describes the framing or vocabulary error without retaining input."},"source":{"file":"tmux/control_notification.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationError.Reason","product":"core","slug":"tmux-controlnotificationerror-reason"},{"id":"tmux.ControlNotificationError.Category","name":"Category","kind":"attribute","modifiers":[],"parent":"tmux.ControlNotificationError","signatures":[],"type":"error","doc":{"summary":"Category is ErrMalformedControlNotification or ErrUnknownControlNotification."},"source":{"file":"tmux/control_notification.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationError.Category","product":"core","slug":"tmux-controlnotificationerror-category"},{"id":"tmux.ControlNotificationError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.ControlNotificationError","signatures":[{"raw":"func (e *ControlNotificationError) Error() string","params":[],"receiver":{"name":"e","type":"*ControlNotificationError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/control_notification.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationError.Error","product":"core","slug":"tmux-controlnotificationerror-error"},{"id":"tmux.ControlNotificationError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.ControlNotificationError","signatures":[{"raw":"func (e *ControlNotificationError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*ControlNotificationError"},"returns":"error"}],"doc":{"summary":"Unwrap makes ControlNotificationError compatible with its Category."},"source":{"file":"tmux/control_notification.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationError.Unwrap","product":"core","slug":"tmux-controlnotificationerror-unwrap"},{"id":"tmux.ControlNotification","name":"ControlNotification","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ControlNotification is an immutable parsed tmux control-mode notification. Its zero value has an empty kind and no arguments. Values returned by [ParseControlNotification] own copied arguments and are safe to retain."},"source":{"file":"tmux/control_notification.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotification","product":"core","slug":"tmux-controlnotification"},{"id":"tmux.ControlNotification.Kind","name":"Kind","kind":"method","modifiers":[],"parent":"tmux.ControlNotification","signatures":[{"raw":"func (n ControlNotification) Kind() ControlNotificationKind","params":[],"receiver":{"name":"n","type":"ControlNotification"},"returns":"ControlNotificationKind"}],"doc":{"summary":"Kind returns the notification's protocol kind."},"source":{"file":"tmux/control_notification.go","line":55,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotification.Kind","product":"core","slug":"tmux-controlnotification-kind"},{"id":"tmux.ControlNotification.Arguments","name":"Arguments","kind":"method","modifiers":[],"parent":"tmux.ControlNotification","signatures":[{"raw":"func (n ControlNotification) Arguments() []string","params":[],"receiver":{"name":"n","type":"ControlNotification"},"returns":"[]string"}],"doc":{"summary":"Arguments returns an owned copy of the notification arguments. Arguments before a documented free-form tail are individual values; the tail is the final value and preserves its spacing and tmux escaping."},"source":{"file":"tmux/control_notification.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotification.Arguments","product":"core","slug":"tmux-controlnotification-arguments"},{"id":"tmux.ControlNotification.Output","name":"Output","kind":"method","modifiers":[],"parent":"tmux.ControlNotification","signatures":[{"raw":"func (n ControlNotification) Output() (PaneID, []byte, bool)","params":[],"receiver":{"name":"n","type":"ControlNotification"},"returns":"(PaneID, []byte, bool)"}],"doc":{"summary":"Output returns the pane identity and decoded caller-owned bytes carried by an output or extended-output notification. Other notification kinds return zero values and false."},"source":{"file":"tmux/control_notification.go","line":65,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotification.Output","product":"core","slug":"tmux-controlnotification-output"},{"id":"tmux.SubscriptionChange","name":"SubscriptionChange","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SubscriptionChange is one evaluated format value reported by a subscription armed with [NotificationStream.Subscribe]. The scope fields tmux did not evaluate against are zero: a session-scoped subscription reports no window or pane, and a window-scoped one reports no pane."},"source":{"file":"tmux/control_notification.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionChange","product":"core","slug":"tmux-subscriptionchange"},{"id":"tmux.SubscriptionChange.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionChange","signatures":[],"type":"string","doc":{"summary":"Name is the subscription name given when it was armed."},"source":{"file":"tmux/control_notification.go","line":78,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionChange.Name","product":"core","slug":"tmux-subscriptionchange-name"},{"id":"tmux.SubscriptionChange.Session","name":"Session","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionChange","signatures":[],"type":"SessionID","doc":{"summary":"Session is the session the value was evaluated for."},"source":{"file":"tmux/control_notification.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionChange.Session","product":"core","slug":"tmux-subscriptionchange-session"},{"id":"tmux.SubscriptionChange.Window","name":"Window","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionChange","signatures":[],"type":"WindowID","doc":{"summary":"Window is the window the value was evaluated for, when scoped to one."},"source":{"file":"tmux/control_notification.go","line":82,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionChange.Window","product":"core","slug":"tmux-subscriptionchange-window"},{"id":"tmux.SubscriptionChange.WindowIndex","name":"WindowIndex","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionChange","signatures":[],"type":"int","doc":{"summary":"WindowIndex is Window's index in Session. It means nothing when Window is zero."},"source":{"file":"tmux/control_notification.go","line":85,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionChange.WindowIndex","product":"core","slug":"tmux-subscriptionchange-windowindex"},{"id":"tmux.SubscriptionChange.Pane","name":"Pane","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionChange","signatures":[],"type":"PaneID","doc":{"summary":"Pane is the pane the value was evaluated for, when scoped to one."},"source":{"file":"tmux/control_notification.go","line":87,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionChange.Pane","product":"core","slug":"tmux-subscriptionchange-pane"},{"id":"tmux.SubscriptionChange.Value","name":"Value","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionChange","signatures":[],"type":"string","doc":{"summary":"Value is the format expanded by tmux."},"source":{"file":"tmux/control_notification.go","line":89,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionChange.Value","product":"core","slug":"tmux-subscriptionchange-value"},{"id":"tmux.ControlNotification.Subscription","name":"Subscription","kind":"method","modifiers":[],"parent":"tmux.ControlNotification","signatures":[{"raw":"func (n ControlNotification) Subscription() (SubscriptionChange, bool)","params":[],"receiver":{"name":"n","type":"ControlNotification"},"returns":"(SubscriptionChange, bool)"}],"doc":{"summary":"Subscription returns the change carried by a subscription-changed notification. Other notification kinds return a zero value and false."},"source":{"file":"tmux/control_notification.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotification.Subscription","product":"core","slug":"tmux-controlnotification-subscription"},{"id":"tmux.ParseControlNotification","name":"ParseControlNotification","kind":"function","modifiers":[],"signatures":[{"raw":"func ParseControlNotification(line []byte) (ControlNotification, error)","params":[{"name":"line","type":"[]byte"}],"returns":"(ControlNotification, error)"}],"doc":{"summary":"ParseControlNotification parses one newline-free tmux control-mode notification record. It requires exact control framing and a supported kind, returns errors compatible with [ErrMalformedControlNotification] or [ErrUnknownControlNotification], and copies all caller-owned input before returning. It never returns a partial notification."},"source":{"file":"tmux/control_notification.go","line":125,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ParseControlNotification","product":"core","slug":"tmux-parsecontrolnotification"},{"id":"tmux.ErrControlNotificationOverflow","name":"ErrControlNotificationOverflow","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrControlNotificationOverflow identifies a watcher that did not consume notifications before its bounded backlog filled."},"source":{"file":"tmux/control_notification_queue.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrControlNotificationOverflow","product":"core","slug":"tmux-errcontrolnotificationoverflow"},{"id":"tmux.ControlNotificationOverflowError","name":"ControlNotificationOverflowError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ControlNotificationOverflowError reports the backlog limit and the record that would have crossed it. The queued prefix remains available first."},"source":{"file":"tmux/control_notification_queue.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationOverflowError","product":"core","slug":"tmux-controlnotificationoverflowerror"},{"id":"tmux.ControlNotificationOverflowError.LimitBytes","name":"LimitBytes","kind":"attribute","modifiers":[],"parent":"tmux.ControlNotificationOverflowError","signatures":[],"type":"int","doc":{"summary":"LimitBytes is the maximum retained payload and queue framing."},"source":{"file":"tmux/control_notification_queue.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationOverflowError.LimitBytes","product":"core","slug":"tmux-controlnotificationoverflowerror-limitbytes"},{"id":"tmux.ControlNotificationOverflowError.PendingBytes","name":"PendingBytes","kind":"attribute","modifiers":[],"parent":"tmux.ControlNotificationOverflowError","signatures":[],"type":"int","doc":{"summary":"PendingBytes is the unread payload and queue framing retained at overflow."},"source":{"file":"tmux/control_notification_queue.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationOverflowError.PendingBytes","product":"core","slug":"tmux-controlnotificationoverflowerror-pendingbytes"},{"id":"tmux.ControlNotificationOverflowError.NotificationBytes","name":"NotificationBytes","kind":"attribute","modifiers":[],"parent":"tmux.ControlNotificationOverflowError","signatures":[],"type":"int","doc":{"summary":"NotificationBytes is the size of the first notification not retained."},"source":{"file":"tmux/control_notification_queue.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationOverflowError.NotificationBytes","product":"core","slug":"tmux-controlnotificationoverflowerror-notificationbytes"},{"id":"tmux.ControlNotificationOverflowError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.ControlNotificationOverflowError","signatures":[{"raw":"func (e *ControlNotificationOverflowError) Error() string","params":[],"receiver":{"name":"e","type":"*ControlNotificationOverflowError"},"returns":"string"}],"doc":{"summary":"Error describes the bounded backlog without disclosing notification data."},"source":{"file":"tmux/control_notification_queue.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationOverflowError.Error","product":"core","slug":"tmux-controlnotificationoverflowerror-error"},{"id":"tmux.ControlNotificationOverflowError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.ControlNotificationOverflowError","signatures":[{"raw":"func (e *ControlNotificationOverflowError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*ControlNotificationOverflowError"},"returns":"error"}],"doc":{"summary":"Unwrap makes ControlNotificationOverflowError compatible with ErrControlNotificationOverflow."},"source":{"file":"tmux/control_notification_queue.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationOverflowError.Unwrap","product":"core","slug":"tmux-controlnotificationoverflowerror-unwrap"},{"id":"tmux.ErrPaneObservationLost","name":"ErrPaneObservationLost","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrPaneObservationLost identifies a pane observation whose control client can no longer receive every byte after its baseline. Stream failures that wrap it also preserve their underlying cause."},"source":{"file":"tmux/control_observation.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrPaneObservationLost","product":"core","slug":"tmux-errpaneobservationlost"},{"id":"tmux.PaneObservation","name":"PaneObservation","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneObservation is one visible pane baseline followed by the exact control notification stream after that baseline. That stream is the observation's whole control connection, so a caller wanting only this pane's output selects it by identifier. Create one with [Pane.OpenObservation] and close it when finished. Copies share notification reader ownership, terminal loss, and client lifetime; closing one closes them all."},"source":{"file":"tmux/control_observation.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation","product":"core","slug":"tmux-paneobservation"},{"id":"tmux.PaneObservation.PaneID","name":"PaneID","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) PaneID() PaneID","params":[],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"PaneID"}],"doc":{"summary":"PaneID returns the pane selected at the observation boundary."},"source":{"file":"tmux/control_observation.go","line":55,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.PaneID","product":"core","slug":"tmux-paneobservation-paneid"},{"id":"tmux.PaneObservation.SessionID","name":"SessionID","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) SessionID() SessionID","params":[],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"SessionID"}],"doc":{"summary":"SessionID returns the session the observation's own control client attached to, resolved live when the observation opened - the session a listing must count this client's attachment against, not merely the pane's session at some other, possibly stale, snapshot."},"source":{"file":"tmux/control_observation.go","line":66,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.SessionID","product":"core","slug":"tmux-paneobservation-sessionid"},{"id":"tmux.PaneObservation.ClientName","name":"ClientName","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) ClientName() ClientName","params":[],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"ClientName"}],"doc":{"summary":"ClientName returns the observation's own control client identity - the name a listing of attached clients must exclude, the same way it already excludes a caller's long-lived command connection, so a caller's own stream never reads as another person watching."},"source":{"file":"tmux/control_observation.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.ClientName","product":"core","slug":"tmux-paneobservation-clientname"},{"id":"tmux.PaneObservation.Baseline","name":"Baseline","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) Baseline() []string","params":[],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"[]string"}],"doc":{"summary":"Baseline returns an owned copy of the pane's visible text at the observation boundary."},"source":{"file":"tmux/control_observation.go","line":86,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.Baseline","product":"core","slug":"tmux-paneobservation-baseline"},{"id":"tmux.PaneObservation.NextNotification","name":"NextNotification","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) NextNotification(\n\tctx context.Context,\n) (ControlNotification, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"(ControlNotification, error)"}],"doc":{"summary":"NextNotification returns the next notification strictly after the pane baseline, from the whole connection rather than this pane alone. Notifications queued before that boundary are discarded. Concurrent calls are serialized. Caller context errors and [ControlNotificationError] affect only one call. Explicit close returns an error matching [os.ErrClosed].","body":"Topology loss, natural stream EOF, and terminal reader errors return\n[ErrPaneObservationLost]. Stream failures preserve their cause. Later calls\nreturn that loss without consuming more notifications."},"source":{"file":"tmux/control_observation.go","line":103,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.NextNotification","product":"core","slug":"tmux-paneobservation-nextnotification"},{"id":"tmux.PaneObservation.Close","name":"Close","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) Close() error","params":[],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"error"}],"doc":{"summary":"Close stops the dedicated control client. It is safe to call more than once."},"source":{"file":"tmux/control_observation.go","line":271,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.Close","product":"core","slug":"tmux-paneobservation-close"},{"id":"tmux.PaneObservation.CloseContext","name":"CloseContext","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) CloseContext(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"error"}],"doc":{"summary":"CloseContext starts idempotent observation shutdown and waits within ctx."},"source":{"file":"tmux/control_observation.go","line":279,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.CloseContext","product":"core","slug":"tmux-paneobservation-closecontext"},{"id":"tmux.Pane.OpenObservation","name":"OpenObservation","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) OpenObservation(\n\tctx context.Context,\n) (*PaneObservation, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"(*PaneObservation, error)"}],"doc":{"summary":"OpenObservation captures the pane's visible text and returns an owned observation whose notifications begin at the capture's exact control-wire boundary. It resolves the pane's exact linked session before opening a dedicated control client. The caller must close the result."},"source":{"file":"tmux/control_observation.go","line":290,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.OpenObservation","product":"core","slug":"tmux-pane-openobservation"},{"id":"tmux.PaneObservation.Reader","name":"Reader","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) Reader(ctx context.Context) io.Reader","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"io.Reader"}],"doc":{"summary":"Reader returns the pane's output after the baseline as a byte stream: what the program in the pane writes to its terminal, in order, and nothing from any other pane on the connection. Reads block until the pane writes, ctx ends, or the observation closes. A lost observation ends the stream with [ErrPaneObservationLost] rather than [io.EOF]. The bytes are the terminal's: escape sequences and carriage returns arrive as written, and the echo of what is typed into the pane arrives before the reply, as it does on screen. Exactly one reader or direct notification read may run at a time.","body":"A malformed notification on the connection is skipped, as\n[PaneObservation.Notifications] skips it; every other error ends the stream."},"source":{"file":"tmux/control_observation.go","line":453,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.Reader","product":"core","slug":"tmux-paneobservation-reader"},{"id":"tmux.PaneObservation.Notifications","name":"Notifications","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) Notifications(\n\tctx context.Context,\n) iter.Seq2[ControlNotification, error]","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"iter.Seq2[ControlNotification, error]"}],"doc":{"summary":"Notifications returns [PaneObservation.NextNotification] as a range loop; exactly one iterator or direct read may run at a time. Malformed notifications yield their error and iteration continues; every other error ends the loop after being yielded."},"source":{"file":"tmux/control_observation.go","line":490,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.Notifications","product":"core","slug":"tmux-paneobservation-notifications"},{"id":"tmux.ErrControlProtocol","name":"ErrControlProtocol","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrControlProtocol identifies malformed tmux control-mode framing."},"source":{"file":"tmux/control_protocol.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrControlProtocol","product":"core","slug":"tmux-errcontrolprotocol"},{"id":"tmux.ControlProtocolError","name":"ControlProtocolError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ControlProtocolError reports a control-stream state violation without retaining or disclosing command output or notification contents. It matches [ErrControlProtocol] through errors.Is."},"source":{"file":"tmux/control_protocol.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlProtocolError","product":"core","slug":"tmux-controlprotocolerror"},{"id":"tmux.ControlProtocolError.State","name":"State","kind":"attribute","modifiers":[],"parent":"tmux.ControlProtocolError","signatures":[],"type":"string","doc":{"summary":"State is the parser state in which the violation occurred."},"source":{"file":"tmux/control_protocol.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlProtocolError.State","product":"core","slug":"tmux-controlprotocolerror-state"},{"id":"tmux.ControlProtocolError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.ControlProtocolError","signatures":[],"type":"string","doc":{"summary":"Reason describes the structural violation without quoting input."},"source":{"file":"tmux/control_protocol.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlProtocolError.Reason","product":"core","slug":"tmux-controlprotocolerror-reason"},{"id":"tmux.ControlProtocolError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.ControlProtocolError","signatures":[{"raw":"func (e *ControlProtocolError) Error() string","params":[],"receiver":{"name":"e","type":"*ControlProtocolError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/control_protocol.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlProtocolError.Error","product":"core","slug":"tmux-controlprotocolerror-error"},{"id":"tmux.ControlProtocolError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.ControlProtocolError","signatures":[{"raw":"func (e *ControlProtocolError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*ControlProtocolError"},"returns":"error"}],"doc":{"summary":"Unwrap makes ControlProtocolError compatible with ErrControlProtocol."},"source":{"file":"tmux/control_protocol.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlProtocolError.Unwrap","product":"core","slug":"tmux-controlprotocolerror-unwrap"},{"id":"tmux.ControlCommandResult","name":"ControlCommandResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ControlCommandResult is one completed control-mode command frame. A failed tmux command remains result data through Failed; local, protocol, transport, and context failures are returned separately by [Connection.Call], [ControlClient.Cmd], and [ControlClient.Call]. All slices are owned by the caller."},"source":{"file":"tmux/control_protocol.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlCommandResult","product":"core","slug":"tmux-controlcommandresult"},{"id":"tmux.ControlCommandResult.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.ControlCommandResult","signatures":[],"type":"[]string","doc":{"summary":"Command is the safely encoded command's original argument vector."},"source":{"file":"tmux/control_protocol.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlCommandResult.Command","product":"core","slug":"tmux-controlcommandresult-command"},{"id":"tmux.ControlCommandResult.RawStdout","name":"RawStdout","kind":"attribute","modifiers":[],"parent":"tmux.ControlCommandResult","signatures":[],"type":"[]byte","doc":{"summary":"RawStdout contains exact frame payload bytes, including each line's LF."},"source":{"file":"tmux/control_protocol.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlCommandResult.RawStdout","product":"core","slug":"tmux-controlcommandresult-rawstdout"},{"id":"tmux.ControlCommandResult.Timestamp","name":"Timestamp","kind":"attribute","modifiers":[],"parent":"tmux.ControlCommandResult","signatures":[],"type":"int64","doc":{"summary":"Timestamp is tmux's frame timestamp in Unix seconds."},"source":{"file":"tmux/control_protocol.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlCommandResult.Timestamp","product":"core","slug":"tmux-controlcommandresult-timestamp"},{"id":"tmux.ControlCommandResult.Number","name":"Number","kind":"attribute","modifiers":[],"parent":"tmux.ControlCommandResult","signatures":[],"type":"uint64","doc":{"summary":"Number is tmux's command number for the frame. tmux counts commands the server processed rather than commands this client sent, so a command from any other client advances it too and the gap between two frames is not a count of this client's work."},"source":{"file":"tmux/control_protocol.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlCommandResult.Number","product":"core","slug":"tmux-controlcommandresult-number"},{"id":"tmux.ControlCommandResult.Flags","name":"Flags","kind":"attribute","modifiers":[],"parent":"tmux.ControlCommandResult","signatures":[],"type":"int","doc":{"summary":"Flags contains tmux's frame flags."},"source":{"file":"tmux/control_protocol.go","line":51,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlCommandResult.Flags","product":"core","slug":"tmux-controlcommandresult-flags"},{"id":"tmux.ControlCommandResult.Failed","name":"Failed","kind":"attribute","modifiers":[],"parent":"tmux.ControlCommandResult","signatures":[],"type":"bool","doc":{"summary":"Failed reports whether tmux closed the frame with %error instead of %end."},"source":{"file":"tmux/control_protocol.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlCommandResult.Failed","product":"core","slug":"tmux-controlcommandresult-failed"},{"id":"tmux.ControlClient.Cmd","name":"Cmd","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) Cmd(\n\tctx context.Context,\n\targs ...string,\n) (ControlCommandResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"args","type":"string","variadic":"positional"}],"receiver":{"name":"c","type":"*ControlClient"},"returns":"(ControlCommandResult, error)"}],"doc":{"summary":"Cmd executes one safely encoded tmux command through the control client. It requires exactly one reply frame and returns [ErrControlReplyCount] otherwise. Use [ControlClient.Call] for aliases that may produce zero or multiple frames."},"source":{"file":"tmux/control_request.go","line":95,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.Cmd","product":"core","slug":"tmux-controlclient-cmd"},{"id":"tmux.ControlClient.Call","name":"Call","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) Call(\n\tctx context.Context,\n\targs ...string,\n) ([]ControlCommandResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"args","type":"string","variadic":"positional"}],"receiver":{"name":"c","type":"*ControlClient"},"returns":"([]ControlCommandResult, error)"}],"doc":{"summary":"Call executes one safely encoded tmux command and returns all its reply frames. Cancellation after writing returns [ErrOutcomeUnknown] with the context error while the client drains through the boundary before reuse. A transport failure returns any frames proven before the failure together with [ErrOutcomeUnknown]."},"source":{"file":"tmux/control_request.go","line":118,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.Call","product":"core","slug":"tmux-controlclient-call"},{"id":"tmux.Server.OpenControl","name":"OpenControl","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) OpenControl(\n\tctx context.Context,\n\tsession Session,\n) (*ControlClient, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"session","type":"Session"}],"receiver":{"name":"s","type":"Server"},"returns":"(*ControlClient, error)"}],"doc":{"summary":"OpenControl starts a control-mode client attached to session. The startup context bounds process start, attach framing, and client registration but does not own the returned client's lifetime. Session must belong to the same configured server selector."},"source":{"file":"tmux/control_startup.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.OpenControl","product":"core","slug":"tmux-server-opencontrol"},{"id":"tmux.ControlClient.NextNotification","name":"NextNotification","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) NextNotification(\n\tctx context.Context,\n) (ControlNotification, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"*ControlClient"},"returns":"(ControlNotification, error)"}],"doc":{"summary":"NextNotification returns the next ordered control-mode notification. Exactly one caller may execute it at a time. Close releases the queue and makes subsequent reads report os.ErrClosed, drained through queued notifications first. Natural process exit before a caller asked to close instead reports [ErrControlStreamLost] - most often because the server the underlying tmux client was attached to exited - naming the tmux exit reason when one was sent. A terminal reader error follows notifications queued before that failure. A full bounded queue likewise drains before reporting [ControlNotificationOverflowError]."},"source":{"file":"tmux/control_stream.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.NextNotification","product":"core","slug":"tmux-controlclient-nextnotification"},{"id":"tmux.ControlClient.Notifications","name":"Notifications","kind":"method","modifiers":[],"parent":"tmux.ControlClient","signatures":[{"raw":"func (c *ControlClient) Notifications(\n\tctx context.Context,\n) iter.Seq2[ControlNotification, error]","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"*ControlClient"},"returns":"iter.Seq2[ControlNotification, error]"}],"doc":{"summary":"Notifications returns an iterator over what tmux says without being asked: pane output, and the events behind [ControlNotification].","body":"It is [ControlClient.NextNotification] as a range loop; exactly one iterator\nor direct notification read may run at a time.\n\n```go\nfor notification, err := range client.Notifications(ctx) {\n\tif err != nil {\n\t\treturn err\n\t}\n\tif pane, output, ok := notification.Output(); ok {\n\t\thandle(pane, output)\n\t}\n}\n```\n\nMalformed or unknown notifications yield their error and iteration continues.\nEvery other error ends the stream after being yielded, including the\n[ErrControlStreamLost] or os.ErrClosed [ControlClient.NextNotification]\nreports at a natural end.\n\nLeaving early preserves queued notifications for the next read."},"source":{"file":"tmux/control_stream.go","line":89,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlClient.Notifications","product":"core","slug":"tmux-controlclient-notifications"},{"id":"tmux.DisplayMessageRequest","name":"DisplayMessageRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"DisplayMessageRequest configures display-message options shared by server, window, and pane scope. A zero request displays tmux's default message and returns nil. Print returns an owned stdout slice instead of displaying only to a client status line. Nil pointer fields omit their flags while pointers to empty values are explicit; a zero TargetClient omits its flag."},"source":{"file":"tmux/display_message.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest","product":"core","slug":"tmux-displaymessagerequest"},{"id":"tmux.DisplayMessageRequest.Message","name":"Message","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMessageRequest","signatures":[],"type":"string","doc":{"summary":"Message is the optional status message; an empty message leaves tmux's default behavior."},"source":{"file":"tmux/display_message.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest.Message","product":"core","slug":"tmux-displaymessagerequest-message"},{"id":"tmux.DisplayMessageRequest.Print","name":"Print","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"Print returns message output instead of only displaying it."},"source":{"file":"tmux/display_message.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest.Print","product":"core","slug":"tmux-displaymessagerequest-print"},{"id":"tmux.DisplayMessageRequest.Format","name":"Format","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMessageRequest","signatures":[],"type":"*string","doc":{"summary":"Format selects tmux output formatting."},"source":{"file":"tmux/display_message.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest.Format","product":"core","slug":"tmux-displaymessagerequest-format"},{"id":"tmux.DisplayMessageRequest.AllFormats","name":"AllFormats","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"AllFormats includes every available format value."},"source":{"file":"tmux/display_message.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest.AllFormats","product":"core","slug":"tmux-displaymessagerequest-allformats"},{"id":"tmux.DisplayMessageRequest.Verbose","name":"Verbose","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"Verbose requests verbose tmux output."},"source":{"file":"tmux/display_message.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest.Verbose","product":"core","slug":"tmux-displaymessagerequest-verbose"},{"id":"tmux.DisplayMessageRequest.NoExpand","name":"NoExpand","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"NoExpand disables format expansion and requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/display_message.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest.NoExpand","product":"core","slug":"tmux-displaymessagerequest-noexpand"},{"id":"tmux.DisplayMessageRequest.TargetClient","name":"TargetClient","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMessageRequest","signatures":[],"type":"ClientName","doc":{"summary":"TargetClient selects the stable client receiving the display; zero omits -c."},"source":{"file":"tmux/display_message.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest.TargetClient","product":"core","slug":"tmux-displaymessagerequest-targetclient"},{"id":"tmux.DisplayMessageRequest.Delay","name":"Delay","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMessageRequest","signatures":[],"type":"*time.Duration","doc":{"summary":"Delay sets the display duration. Nil uses tmux's display-time option; an explicit zero waits for a key press unless Notify is set. Values must be whole milliseconds from zero through 4294967295 milliseconds. Invalid values return ErrInvalidServerCommandRequest before tmux I/O."},"source":{"file":"tmux/display_message.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest.Delay","product":"core","slug":"tmux-displaymessagerequest-delay"},{"id":"tmux.DisplayMessageRequest.Notify","name":"Notify","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"Notify makes the status message ignore key presses, closing only once Delay elapses."},"source":{"file":"tmux/display_message.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMessageRequest.Notify","product":"core","slug":"tmux-displaymessagerequest-notify"},{"id":"tmux.PaneDisplayMessageRequest","name":"PaneDisplayMessageRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneDisplayMessageRequest adds the pane-only update behavior to the common display-message options."},"source":{"file":"tmux/display_message.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneDisplayMessageRequest","product":"core","slug":"tmux-panedisplaymessagerequest"},{"id":"tmux.PaneDisplayMessageRequest.UpdatePane","name":"UpdatePane","kind":"attribute","modifiers":[],"parent":"tmux.PaneDisplayMessageRequest","signatures":[],"type":"bool","doc":{"summary":"UpdatePane updates pane state and requires tmux 3.6; see UnsupportedPolicy."},"source":{"file":"tmux/display_message.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneDisplayMessageRequest.UpdatePane","product":"core","slug":"tmux-panedisplaymessagerequest-updatepane"},{"id":"tmux.Server.DisplayMessage","name":"DisplayMessage","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) DisplayMessage(\n\tctx context.Context,\n\trequest DisplayMessageRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"DisplayMessageRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"([]string, error)"}],"doc":{"summary":"DisplayMessage displays or prints a server-scoped tmux message. Print returns an owned stdout slice even when tmux exits nonzero; completed stderr is delivered synchronously through [WarningCommandStderr], not returned as a completed-error classification. Unsupported flags follow [UnsupportedPolicy]. Any warnings run on the caller goroutine before return. Cancellation does not prove display did not occur."},"source":{"file":"tmux/display_message.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.DisplayMessage","product":"core","slug":"tmux-server-displaymessage"},{"id":"tmux.Window.DisplayMessage","name":"DisplayMessage","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) DisplayMessage(\n\tctx context.Context,\n\trequest DisplayMessageRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"DisplayMessageRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"([]string, error)"}],"doc":{"summary":"DisplayMessage displays or prints a message at this window's exact target. Print returns an owned stdout slice even on a completed nonzero exit; completed stderr reaches [WarningHandler] as [WarningCommandStderr]. NoExpand follows [UnsupportedPolicy]. Warnings run synchronously before return; context cancellation does not prove display did not occur."},"source":{"file":"tmux/display_message.go","line":93,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.DisplayMessage","product":"core","slug":"tmux-window-displaymessage"},{"id":"tmux.Pane.DisplayMessage","name":"DisplayMessage","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) DisplayMessage(\n\tctx context.Context,\n\trequest PaneDisplayMessageRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"PaneDisplayMessageRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"([]string, error)"}],"doc":{"summary":"DisplayMessage displays or prints a message at this pane's exact target. Embedded NoExpand requires tmux 3.4 and UpdatePane requires tmux 3.6; each follows [UnsupportedPolicy]. Print returns an owned stdout slice even on a completed nonzero exit. Completed stderr synchronously reaches [WarningHandler] as [WarningCommandStderr], not an error; cancellation does not prove display or pane update did not occur."},"source":{"file":"tmux/display_message.go","line":114,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.DisplayMessage","product":"core","slug":"tmux-pane-displaymessage"},{"id":"tmux.ErrInvalidEnvironmentName","name":"ErrInvalidEnvironmentName","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidEnvironmentName identifies a name tmux cannot store."},"source":{"file":"tmux/environment.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidEnvironmentName","product":"core","slug":"tmux-errinvalidenvironmentname"},{"id":"tmux.ErrInvalidEnvironmentValue","name":"ErrInvalidEnvironmentValue","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidEnvironmentValue identifies a value the line-oriented read API cannot round-trip."},"source":{"file":"tmux/environment.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidEnvironmentValue","product":"core","slug":"tmux-errinvalidenvironmentvalue"},{"id":"tmux.ErrMalformedEnvironment","name":"ErrMalformedEnvironment","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrMalformedEnvironment identifies output that is not a tmux environment entry."},"source":{"file":"tmux/environment.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrMalformedEnvironment","product":"core","slug":"tmux-errmalformedenvironment"},{"id":"tmux.SetEnvironmentOptions","name":"SetEnvironmentOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SetEnvironmentOptions controls tmux's value expansion and visibility flags. Its zero value stores Value literally and exposes it to child processes."},"source":{"file":"tmux/environment.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetEnvironmentOptions","product":"core","slug":"tmux-setenvironmentoptions"},{"id":"tmux.SetEnvironmentOptions.ExpandFormat","name":"ExpandFormat","kind":"attribute","modifiers":[],"parent":"tmux.SetEnvironmentOptions","signatures":[],"type":"bool","doc":{"summary":"ExpandFormat expands tmux format expressions in Value before storing it."},"source":{"file":"tmux/environment.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetEnvironmentOptions.ExpandFormat","product":"core","slug":"tmux-setenvironmentoptions-expandformat"},{"id":"tmux.SetEnvironmentOptions.Hidden","name":"Hidden","kind":"attribute","modifiers":[],"parent":"tmux.SetEnvironmentOptions","signatures":[],"type":"bool","doc":{"summary":"Hidden keeps the value available to tmux but out of child environments."},"source":{"file":"tmux/environment.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetEnvironmentOptions.Hidden","product":"core","slug":"tmux-setenvironmentoptions-hidden"},{"id":"tmux.EnvironmentValue","name":"EnvironmentValue","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"EnvironmentValue is one tmux environment value or removal marker. Its zero value is an ordinary empty value, not a removal marker."},"source":{"file":"tmux/environment.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentValue","product":"core","slug":"tmux-environmentvalue"},{"id":"tmux.EnvironmentValue.Value","name":"Value","kind":"attribute","modifiers":[],"parent":"tmux.EnvironmentValue","signatures":[],"type":"string","doc":{"summary":"Value is the exact value after tmux format expansion, if any."},"source":{"file":"tmux/environment.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentValue.Value","product":"core","slug":"tmux-environmentvalue-value"},{"id":"tmux.EnvironmentValue.Removed","name":"Removed","kind":"attribute","modifiers":[],"parent":"tmux.EnvironmentValue","signatures":[],"type":"bool","doc":{"summary":"Removed reports that tmux will remove the variable from new processes."},"source":{"file":"tmux/environment.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentValue.Removed","product":"core","slug":"tmux-environmentvalue-removed"},{"id":"tmux.EnvironmentNameError","name":"EnvironmentNameError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"EnvironmentNameError reports a name that tmux cannot store."},"source":{"file":"tmux/environment.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentNameError","product":"core","slug":"tmux-environmentnameerror"},{"id":"tmux.EnvironmentNameError.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.EnvironmentNameError","signatures":[],"type":"string","doc":{"summary":"Name is the invalid environment variable name."},"source":{"file":"tmux/environment.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentNameError.Name","product":"core","slug":"tmux-environmentnameerror-name"},{"id":"tmux.EnvironmentNameError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.EnvironmentNameError","signatures":[{"raw":"func (e *EnvironmentNameError) Error() string","params":[],"receiver":{"name":"e","type":"*EnvironmentNameError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/environment.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentNameError.Error","product":"core","slug":"tmux-environmentnameerror-error"},{"id":"tmux.EnvironmentNameError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.EnvironmentNameError","signatures":[{"raw":"func (e *EnvironmentNameError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*EnvironmentNameError"},"returns":"error"}],"doc":{"summary":"Unwrap makes EnvironmentNameError compatible with ErrInvalidEnvironmentName."},"source":{"file":"tmux/environment.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentNameError.Unwrap","product":"core","slug":"tmux-environmentnameerror-unwrap"},{"id":"tmux.EnvironmentValueError","name":"EnvironmentValueError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"EnvironmentValueError reports a value that cannot round-trip through show-environment. It intentionally does not retain or print the environment value."},"source":{"file":"tmux/environment.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentValueError","product":"core","slug":"tmux-environmentvalueerror"},{"id":"tmux.EnvironmentValueError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.EnvironmentValueError","signatures":[{"raw":"func (*EnvironmentValueError) Error() string","params":[],"receiver":{"name":"","type":"*EnvironmentValueError"},"returns":"string"}],"doc":{"summary":"Error implements error without disclosing the environment value."},"source":{"file":"tmux/environment.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentValueError.Error","product":"core","slug":"tmux-environmentvalueerror-error"},{"id":"tmux.EnvironmentValueError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.EnvironmentValueError","signatures":[{"raw":"func (*EnvironmentValueError) Unwrap() error","params":[],"receiver":{"name":"","type":"*EnvironmentValueError"},"returns":"error"}],"doc":{"summary":"Unwrap makes EnvironmentValueError compatible with ErrInvalidEnvironmentValue."},"source":{"file":"tmux/environment.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentValueError.Unwrap","product":"core","slug":"tmux-environmentvalueerror-unwrap"},{"id":"tmux.EnvironmentDecodeError","name":"EnvironmentDecodeError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"EnvironmentDecodeError reports one malformed show-environment record. It never retains the record because environment output may contain secrets."},"source":{"file":"tmux/environment.go","line":65,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentDecodeError","product":"core","slug":"tmux-environmentdecodeerror"},{"id":"tmux.EnvironmentDecodeError.Record","name":"Record","kind":"attribute","modifiers":[],"parent":"tmux.EnvironmentDecodeError","signatures":[],"type":"int","doc":{"summary":"Record is the zero-based malformed output record number."},"source":{"file":"tmux/environment.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentDecodeError.Record","product":"core","slug":"tmux-environmentdecodeerror-record"},{"id":"tmux.EnvironmentDecodeError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.EnvironmentDecodeError","signatures":[],"type":"string","doc":{"summary":"Reason describes malformed framing without retaining the record value."},"source":{"file":"tmux/environment.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentDecodeError.Reason","product":"core","slug":"tmux-environmentdecodeerror-reason"},{"id":"tmux.EnvironmentDecodeError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.EnvironmentDecodeError","signatures":[{"raw":"func (e *EnvironmentDecodeError) Error() string","params":[],"receiver":{"name":"e","type":"*EnvironmentDecodeError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/environment.go","line":73,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentDecodeError.Error","product":"core","slug":"tmux-environmentdecodeerror-error"},{"id":"tmux.EnvironmentDecodeError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.EnvironmentDecodeError","signatures":[{"raw":"func (e *EnvironmentDecodeError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*EnvironmentDecodeError"},"returns":"error"}],"doc":{"summary":"Unwrap makes EnvironmentDecodeError compatible with ErrMalformedEnvironment."},"source":{"file":"tmux/environment.go","line":78,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.EnvironmentDecodeError.Unwrap","product":"core","slug":"tmux-environmentdecodeerror-unwrap"},{"id":"tmux.Server.SetEnvironment","name":"SetEnvironment","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetEnvironment(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetEnvironmentOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetEnvironmentOptions"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetEnvironment stores a value in the server's global tmux environment. ExpandFormat and Hidden select tmux flags; cancellation does not prove the value was not stored."},"source":{"file":"tmux/environment.go","line":83,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetEnvironment","product":"core","slug":"tmux-server-setenvironment"},{"id":"tmux.Server.UnsetEnvironment","name":"UnsetEnvironment","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) UnsetEnvironment(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"UnsetEnvironment deletes a value from the server's global tmux environment. Cancellation does not prove deletion did not occur."},"source":{"file":"tmux/environment.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.UnsetEnvironment","product":"core","slug":"tmux-server-unsetenvironment"},{"id":"tmux.Server.RemoveEnvironment","name":"RemoveEnvironment","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) RemoveEnvironment(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"RemoveEnvironment marks a variable for removal from new process environments."},"source":{"file":"tmux/environment.go","line":99,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.RemoveEnvironment","product":"core","slug":"tmux-server-removeenvironment"},{"id":"tmux.Server.ShowEnvironment","name":"ShowEnvironment","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ShowEnvironment(ctx context.Context) (map[string]EnvironmentValue, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"(map[string]EnvironmentValue, error)"}],"doc":{"summary":"ShowEnvironment returns an owned server-global non-hidden tmux environment. Completed command failures return an empty map unless strict errors are enabled. Externally injected multiline entries return ErrMalformedEnvironment because tmux's multi-entry output does not frame continuation lines. Decode errors are compatible with [ErrMalformedEnvironment] and return no partial map."},"source":{"file":"tmux/environment.go","line":108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ShowEnvironment","product":"core","slug":"tmux-server-showenvironment"},{"id":"tmux.Server.GetEnvironment","name":"GetEnvironment","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) GetEnvironment(\n\tctx context.Context,\n\tname string,\n) (EnvironmentValue, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"(EnvironmentValue, bool, error)"}],"doc":{"summary":"GetEnvironment returns one non-hidden global environment entry. A missing or hidden variable reports ok false."},"source":{"file":"tmux/environment.go","line":114,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.GetEnvironment","product":"core","slug":"tmux-server-getenvironment"},{"id":"tmux.Session.SetEnvironment","name":"SetEnvironment","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetEnvironment(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetEnvironmentOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetEnvironmentOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetEnvironment stores a value in this session's tmux environment, targeted by its stable SessionID."},"source":{"file":"tmux/environment.go","line":123,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetEnvironment","product":"core","slug":"tmux-session-setenvironment"},{"id":"tmux.Session.UnsetEnvironment","name":"UnsetEnvironment","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) UnsetEnvironment(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"UnsetEnvironment deletes a value from this session's tmux environment, targeted by its stable SessionID."},"source":{"file":"tmux/environment.go","line":138,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.UnsetEnvironment","product":"core","slug":"tmux-session-unsetenvironment"},{"id":"tmux.Session.RemoveEnvironment","name":"RemoveEnvironment","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) RemoveEnvironment(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"RemoveEnvironment marks a variable for removal from new process environments for this stable session target."},"source":{"file":"tmux/environment.go","line":148,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.RemoveEnvironment","product":"core","slug":"tmux-session-removeenvironment"},{"id":"tmux.Session.ShowEnvironment","name":"ShowEnvironment","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) ShowEnvironment(ctx context.Context) (map[string]EnvironmentValue, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"(map[string]EnvironmentValue, error)"}],"doc":{"summary":"ShowEnvironment returns an owned session-scoped non-hidden tmux environment. Completed command failures return an empty map unless strict errors are enabled. Externally injected multiline entries return ErrMalformedEnvironment because tmux's multi-entry output does not frame continuation lines. Decode errors are compatible with [ErrMalformedEnvironment] and return no partial map."},"source":{"file":"tmux/environment.go","line":161,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.ShowEnvironment","product":"core","slug":"tmux-session-showenvironment"},{"id":"tmux.Session.GetEnvironment","name":"GetEnvironment","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) GetEnvironment(\n\tctx context.Context,\n\tname string,\n) (EnvironmentValue, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"(EnvironmentValue, bool, error)"}],"doc":{"summary":"GetEnvironment returns one non-hidden session environment entry for this stable session target. A missing or hidden variable reports ok false."},"source":{"file":"tmux/environment.go","line":172,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.GetEnvironment","product":"core","slug":"tmux-session-getenvironment"},{"id":"tmux.ErrInvalidFilter","name":"ErrInvalidFilter","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidFilter reports a malformed or impossible generated filter. Filter validation, lookup parsing, predicates, and JSON methods wrap this error."},"source":{"file":"tmux/filter.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidFilter","product":"core","slug":"tmux-errinvalidfilter"},{"id":"tmux.Ptr","name":"Ptr","kind":"function","modifiers":[],"signatures":[{"raw":"func Ptr[T any](value T) *T","params":[{"name":"value","type":"T"}],"returns":"*T","typeParams":["T any"],"typeParameters":[{"name":"T","bound":"any"}]}],"doc":{"summary":"Ptr returns a distinct pointer to a shallow copy of value, including when T has zero size. Its nonzero holder prevents Go from coalescing zero-size addresses. Slices, maps, pointers, and other reference-bearing values still alias their referenced data. Ptr performs no validation or ownership transfer."},"source":{"file":"tmux/filter.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Ptr","product":"core","slug":"tmux-ptr"},{"id":"tmux.FilterSchemaVersion","name":"FilterSchemaVersion","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"FilterSchemaVersion identifies external metadata for the generated filter JSON wire schema. It is not embedded in JSON and is independent of the tmux [Version]."},"source":{"file":"tmux/filter_generated.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FilterSchemaVersion","product":"core","slug":"tmux-filterschemaversion"},{"id":"tmux.SessionFilter","name":"SessionFilter","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SessionFilter matches materialized [Session] values without tmux I/O. Its zero value matches every non-nil candidate. Criteria are ANDed; AnyOf adds an OR requirement and Not excludes. Field and relation criteria correspond to [Session.ID], [Session.Name], [Session.Attached], [Session.Windows], and [Session.Panes]. [SessionFilter.Validate] and methods that consume the filter reject invalid criteria with [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter","product":"core","slug":"tmux-sessionfilter"},{"id":"tmux.SessionFilter.ID","name":"ID","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"*SessionID","doc":{"summary":"ID exactly matches the stable tmux session identifier from Session.ID, including its $ sigil. A nil pointer leaves ID unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.ID","product":"core","slug":"tmux-sessionfilter-id"},{"id":"tmux.SessionFilter.IDIn","name":"IDIn","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"[]SessionID","doc":{"summary":"IDIn lists accepted values for the stable tmux session identifier from Session.ID, including its $ sigil. A candidate matches when its materialized value equals one listed value. A nil slice leaves IDIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.IDIn","product":"core","slug":"tmux-sessionfilter-idin"},{"id":"tmux.SessionFilter.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"*string","doc":{"summary":"Name exactly matches the materialized session name from Session.Name. A nil pointer leaves Name unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.Name","product":"core","slug":"tmux-sessionfilter-name"},{"id":"tmux.SessionFilter.NameIn","name":"NameIn","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"[]string","doc":{"summary":"NameIn lists accepted values for the materialized session name from Session.Name. A candidate matches when its materialized value equals one listed value. A nil slice leaves NameIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.NameIn","product":"core","slug":"tmux-sessionfilter-namein"},{"id":"tmux.SessionFilter.NameContains","name":"NameContains","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"*string","doc":{"summary":"NameContains requires the materialized session name from Session.Name to contain the pointed-to substring. A nil pointer leaves NameContains unset; a non-nil pointer applies it, and an empty string matches every available string."},"source":{"file":"tmux/filter_generated.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.NameContains","product":"core","slug":"tmux-sessionfilter-namecontains"},{"id":"tmux.SessionFilter.NameRegex","name":"NameRegex","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"string","doc":{"summary":"NameRegex requires the materialized session name from Session.Name to match Go regular expression syntax. An empty string leaves NameRegex unset."},"source":{"file":"tmux/filter_generated.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.NameRegex","product":"core","slug":"tmux-sessionfilter-nameregex"},{"id":"tmux.SessionFilter.Attached","name":"Attached","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"*bool","doc":{"summary":"Attached exactly matches the materialized attachment state from Session.Attached. A nil pointer leaves Attached unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.Attached","product":"core","slug":"tmux-sessionfilter-attached"},{"id":"tmux.SessionFilter.AnyOf","name":"AnyOf","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"[]SessionFilter","doc":{"summary":"AnyOf additionally requires at least one branch to match after ordinary criteria match. A nil slice leaves AnyOf unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.AnyOf","product":"core","slug":"tmux-sessionfilter-anyof"},{"id":"tmux.SessionFilter.Not","name":"Not","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"*SessionFilter","doc":{"summary":"Not excludes a candidate when its nested filter matches. A nil pointer leaves Not unset."},"source":{"file":"tmux/filter_generated.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.Not","product":"core","slug":"tmux-sessionfilter-not"},{"id":"tmux.SessionFilter.Windows","name":"Windows","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"*WindowRel","doc":{"summary":"Windows traverses the materialized window views returned by Session.Windows. A nil pointer leaves the relation criterion unset."},"source":{"file":"tmux/filter_generated.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.Windows","product":"core","slug":"tmux-sessionfilter-windows"},{"id":"tmux.SessionFilter.Panes","name":"Panes","kind":"attribute","modifiers":[],"parent":"tmux.SessionFilter","signatures":[],"type":"*PaneRel","doc":{"summary":"Panes traverses the materialized pane views returned by Session.Panes. A nil pointer leaves the relation criterion unset."},"source":{"file":"tmux/filter_generated.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.Panes","product":"core","slug":"tmux-sessionfilter-panes"},{"id":"tmux.WindowFilter","name":"WindowFilter","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WindowFilter matches materialized [Window] values without tmux I/O. Its zero value matches every non-nil candidate. Criteria are ANDed; AnyOf adds an OR requirement and Not excludes. Field and relation criteria correspond to [Window.SessionID], [Window.ID], [Window.Index], [Window.Name], [Window.Active], [Window.Session], and [Window.Panes]. [WindowFilter.Validate] and methods that consume the filter reject invalid criteria with [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter","product":"core","slug":"tmux-windowfilter"},{"id":"tmux.WindowFilter.SessionID","name":"SessionID","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*SessionID","doc":{"summary":"SessionID exactly matches the stable tmux session identifier from Window.SessionID, including its $ sigil. A nil pointer leaves SessionID unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.SessionID","product":"core","slug":"tmux-windowfilter-sessionid"},{"id":"tmux.WindowFilter.SessionIDIn","name":"SessionIDIn","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"[]SessionID","doc":{"summary":"SessionIDIn lists accepted values for the stable tmux session identifier from Window.SessionID, including its $ sigil. A candidate matches when its materialized value equals one listed value. A nil slice leaves SessionIDIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.SessionIDIn","product":"core","slug":"tmux-windowfilter-sessionidin"},{"id":"tmux.WindowFilter.ID","name":"ID","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*WindowID","doc":{"summary":"ID exactly matches the stable tmux window identifier from Window.ID, including its @ sigil. A nil pointer leaves ID unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.ID","product":"core","slug":"tmux-windowfilter-id"},{"id":"tmux.WindowFilter.IDIn","name":"IDIn","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"[]WindowID","doc":{"summary":"IDIn lists accepted values for the stable tmux window identifier from Window.ID, including its @ sigil. A candidate matches when its materialized value equals one listed value. A nil slice leaves IDIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.IDIn","product":"core","slug":"tmux-windowfilter-idin"},{"id":"tmux.WindowFilter.Index","name":"Index","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*int","doc":{"summary":"Index exactly matches the nonnegative winlink index from Window.Index. A nil pointer leaves Index unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.Index","product":"core","slug":"tmux-windowfilter-index"},{"id":"tmux.WindowFilter.IndexIn","name":"IndexIn","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"[]int","doc":{"summary":"IndexIn lists accepted values for the nonnegative winlink index from Window.Index. A candidate matches when its materialized value equals one listed value. A nil slice leaves IndexIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":62,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.IndexIn","product":"core","slug":"tmux-windowfilter-indexin"},{"id":"tmux.WindowFilter.IndexGT","name":"IndexGT","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*int","doc":{"summary":"IndexGT requires the nonnegative winlink index from Window.Index to be strictly greater than the pointed-to value. A nil pointer leaves IndexGT unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":64,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.IndexGT","product":"core","slug":"tmux-windowfilter-indexgt"},{"id":"tmux.WindowFilter.IndexGTE","name":"IndexGTE","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*int","doc":{"summary":"IndexGTE requires the nonnegative winlink index from Window.Index to be greater than or equal to the pointed-to value. A nil pointer leaves IndexGTE unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":66,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.IndexGTE","product":"core","slug":"tmux-windowfilter-indexgte"},{"id":"tmux.WindowFilter.IndexLT","name":"IndexLT","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*int","doc":{"summary":"IndexLT requires the nonnegative winlink index from Window.Index to be strictly less than the pointed-to value. A nil pointer leaves IndexLT unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":68,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.IndexLT","product":"core","slug":"tmux-windowfilter-indexlt"},{"id":"tmux.WindowFilter.IndexLTE","name":"IndexLTE","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*int","doc":{"summary":"IndexLTE requires the nonnegative winlink index from Window.Index to be less than or equal to the pointed-to value. A nil pointer leaves IndexLTE unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.IndexLTE","product":"core","slug":"tmux-windowfilter-indexlte"},{"id":"tmux.WindowFilter.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*string","doc":{"summary":"Name exactly matches the materialized window name from Window.Name. A nil pointer leaves Name unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":72,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.Name","product":"core","slug":"tmux-windowfilter-name"},{"id":"tmux.WindowFilter.NameIn","name":"NameIn","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"[]string","doc":{"summary":"NameIn lists accepted values for the materialized window name from Window.Name. A candidate matches when its materialized value equals one listed value. A nil slice leaves NameIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.NameIn","product":"core","slug":"tmux-windowfilter-namein"},{"id":"tmux.WindowFilter.NameContains","name":"NameContains","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*string","doc":{"summary":"NameContains requires the materialized window name from Window.Name to contain the pointed-to substring. A nil pointer leaves NameContains unset; a non-nil pointer applies it, and an empty string matches every available string."},"source":{"file":"tmux/filter_generated.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.NameContains","product":"core","slug":"tmux-windowfilter-namecontains"},{"id":"tmux.WindowFilter.NameRegex","name":"NameRegex","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"string","doc":{"summary":"NameRegex requires the materialized window name from Window.Name to match Go regular expression syntax. An empty string leaves NameRegex unset."},"source":{"file":"tmux/filter_generated.go","line":78,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.NameRegex","product":"core","slug":"tmux-windowfilter-nameregex"},{"id":"tmux.WindowFilter.Active","name":"Active","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*bool","doc":{"summary":"Active exactly matches the materialized active state from Window.Active. A nil pointer leaves Active unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.Active","product":"core","slug":"tmux-windowfilter-active"},{"id":"tmux.WindowFilter.AnyOf","name":"AnyOf","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"[]WindowFilter","doc":{"summary":"AnyOf additionally requires at least one branch to match after ordinary criteria match. A nil slice leaves AnyOf unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":82,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.AnyOf","product":"core","slug":"tmux-windowfilter-anyof"},{"id":"tmux.WindowFilter.Not","name":"Not","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*WindowFilter","doc":{"summary":"Not excludes a candidate when its nested filter matches. A nil pointer leaves Not unset."},"source":{"file":"tmux/filter_generated.go","line":84,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.Not","product":"core","slug":"tmux-windowfilter-not"},{"id":"tmux.WindowFilter.Session","name":"Session","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*SessionFilter","doc":{"summary":"Session traverses the materialized parent returned by Window.Session. A nil pointer leaves the relation criterion unset."},"source":{"file":"tmux/filter_generated.go","line":86,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.Session","product":"core","slug":"tmux-windowfilter-session"},{"id":"tmux.WindowFilter.Panes","name":"Panes","kind":"attribute","modifiers":[],"parent":"tmux.WindowFilter","signatures":[],"type":"*PaneRel","doc":{"summary":"Panes traverses the materialized pane views returned by Window.Panes. A nil pointer leaves the relation criterion unset."},"source":{"file":"tmux/filter_generated.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.Panes","product":"core","slug":"tmux-windowfilter-panes"},{"id":"tmux.PaneFilter","name":"PaneFilter","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneFilter matches materialized [Pane] values without tmux I/O. Its zero value matches every non-nil candidate. Criteria are ANDed; AnyOf adds an OR requirement and Not excludes. Field and relation criteria correspond to [Pane.SessionID], [Pane.WindowID], [Pane.ID], [Pane.WindowIndex], [Pane.Index], [Pane.CurrentCommand], [Pane.Active], [Pane.Title], [Pane.Session], and [Pane.Window]. [PaneFilter.Validate] and methods that consume the filter reject invalid criteria with [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":95,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter","product":"core","slug":"tmux-panefilter"},{"id":"tmux.PaneFilter.SessionID","name":"SessionID","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*SessionID","doc":{"summary":"SessionID exactly matches the stable tmux session identifier from Pane.SessionID, including its $ sigil. A nil pointer leaves SessionID unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":97,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.SessionID","product":"core","slug":"tmux-panefilter-sessionid"},{"id":"tmux.PaneFilter.SessionIDIn","name":"SessionIDIn","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"[]SessionID","doc":{"summary":"SessionIDIn lists accepted values for the stable tmux session identifier from Pane.SessionID, including its $ sigil. A candidate matches when its materialized value equals one listed value. A nil slice leaves SessionIDIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":99,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.SessionIDIn","product":"core","slug":"tmux-panefilter-sessionidin"},{"id":"tmux.PaneFilter.WindowID","name":"WindowID","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*WindowID","doc":{"summary":"WindowID exactly matches the stable tmux window identifier from Pane.WindowID, including its @ sigil. A nil pointer leaves WindowID unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":101,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.WindowID","product":"core","slug":"tmux-panefilter-windowid"},{"id":"tmux.PaneFilter.WindowIDIn","name":"WindowIDIn","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"[]WindowID","doc":{"summary":"WindowIDIn lists accepted values for the stable tmux window identifier from Pane.WindowID, including its @ sigil. A candidate matches when its materialized value equals one listed value. A nil slice leaves WindowIDIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":103,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.WindowIDIn","product":"core","slug":"tmux-panefilter-windowidin"},{"id":"tmux.PaneFilter.ID","name":"ID","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*PaneID","doc":{"summary":"ID exactly matches the stable tmux pane identifier from Pane.ID, including its % sigil. A nil pointer leaves ID unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":105,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.ID","product":"core","slug":"tmux-panefilter-id"},{"id":"tmux.PaneFilter.IDIn","name":"IDIn","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"[]PaneID","doc":{"summary":"IDIn lists accepted values for the stable tmux pane identifier from Pane.ID, including its % sigil. A candidate matches when its materialized value equals one listed value. A nil slice leaves IDIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":107,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.IDIn","product":"core","slug":"tmux-panefilter-idin"},{"id":"tmux.PaneFilter.WindowIndex","name":"WindowIndex","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"WindowIndex exactly matches the nonnegative winlink index from Pane.WindowIndex. A nil pointer leaves WindowIndex unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":109,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.WindowIndex","product":"core","slug":"tmux-panefilter-windowindex"},{"id":"tmux.PaneFilter.WindowIndexIn","name":"WindowIndexIn","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"[]int","doc":{"summary":"WindowIndexIn lists accepted values for the nonnegative winlink index from Pane.WindowIndex. A candidate matches when its materialized value equals one listed value. A nil slice leaves WindowIndexIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.WindowIndexIn","product":"core","slug":"tmux-panefilter-windowindexin"},{"id":"tmux.PaneFilter.WindowIndexGT","name":"WindowIndexGT","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"WindowIndexGT requires the nonnegative winlink index from Pane.WindowIndex to be strictly greater than the pointed-to value. A nil pointer leaves WindowIndexGT unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":113,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.WindowIndexGT","product":"core","slug":"tmux-panefilter-windowindexgt"},{"id":"tmux.PaneFilter.WindowIndexGTE","name":"WindowIndexGTE","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"WindowIndexGTE requires the nonnegative winlink index from Pane.WindowIndex to be greater than or equal to the pointed-to value. A nil pointer leaves WindowIndexGTE unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":115,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.WindowIndexGTE","product":"core","slug":"tmux-panefilter-windowindexgte"},{"id":"tmux.PaneFilter.WindowIndexLT","name":"WindowIndexLT","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"WindowIndexLT requires the nonnegative winlink index from Pane.WindowIndex to be strictly less than the pointed-to value. A nil pointer leaves WindowIndexLT unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":117,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.WindowIndexLT","product":"core","slug":"tmux-panefilter-windowindexlt"},{"id":"tmux.PaneFilter.WindowIndexLTE","name":"WindowIndexLTE","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"WindowIndexLTE requires the nonnegative winlink index from Pane.WindowIndex to be less than or equal to the pointed-to value. A nil pointer leaves WindowIndexLTE unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":119,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.WindowIndexLTE","product":"core","slug":"tmux-panefilter-windowindexlte"},{"id":"tmux.PaneFilter.Index","name":"Index","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"Index exactly matches the nonnegative pane index from Pane.Index. A nil pointer leaves Index unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":121,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.Index","product":"core","slug":"tmux-panefilter-index"},{"id":"tmux.PaneFilter.IndexIn","name":"IndexIn","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"[]int","doc":{"summary":"IndexIn lists accepted values for the nonnegative pane index from Pane.Index. A candidate matches when its materialized value equals one listed value. A nil slice leaves IndexIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":123,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.IndexIn","product":"core","slug":"tmux-panefilter-indexin"},{"id":"tmux.PaneFilter.IndexGT","name":"IndexGT","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"IndexGT requires the nonnegative pane index from Pane.Index to be strictly greater than the pointed-to value. A nil pointer leaves IndexGT unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":125,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.IndexGT","product":"core","slug":"tmux-panefilter-indexgt"},{"id":"tmux.PaneFilter.IndexGTE","name":"IndexGTE","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"IndexGTE requires the nonnegative pane index from Pane.Index to be greater than or equal to the pointed-to value. A nil pointer leaves IndexGTE unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":127,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.IndexGTE","product":"core","slug":"tmux-panefilter-indexgte"},{"id":"tmux.PaneFilter.IndexLT","name":"IndexLT","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"IndexLT requires the nonnegative pane index from Pane.Index to be strictly less than the pointed-to value. A nil pointer leaves IndexLT unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":129,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.IndexLT","product":"core","slug":"tmux-panefilter-indexlt"},{"id":"tmux.PaneFilter.IndexLTE","name":"IndexLTE","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*int","doc":{"summary":"IndexLTE requires the nonnegative pane index from Pane.Index to be less than or equal to the pointed-to value. A nil pointer leaves IndexLTE unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":131,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.IndexLTE","product":"core","slug":"tmux-panefilter-indexlte"},{"id":"tmux.PaneFilter.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*string","doc":{"summary":"Command exactly matches the materialized current command from Pane.CurrentCommand. A nil pointer leaves Command unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":133,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.Command","product":"core","slug":"tmux-panefilter-command"},{"id":"tmux.PaneFilter.CommandIn","name":"CommandIn","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"[]string","doc":{"summary":"CommandIn lists accepted values for the materialized current command from Pane.CurrentCommand. A candidate matches when its materialized value equals one listed value. A nil slice leaves CommandIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":135,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.CommandIn","product":"core","slug":"tmux-panefilter-commandin"},{"id":"tmux.PaneFilter.CommandContains","name":"CommandContains","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*string","doc":{"summary":"CommandContains requires the materialized current command from Pane.CurrentCommand to contain the pointed-to substring. A nil pointer leaves CommandContains unset; a non-nil pointer applies it, and an empty string matches every available string."},"source":{"file":"tmux/filter_generated.go","line":137,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.CommandContains","product":"core","slug":"tmux-panefilter-commandcontains"},{"id":"tmux.PaneFilter.CommandRegex","name":"CommandRegex","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"string","doc":{"summary":"CommandRegex requires the materialized current command from Pane.CurrentCommand to match Go regular expression syntax. An empty string leaves CommandRegex unset."},"source":{"file":"tmux/filter_generated.go","line":139,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.CommandRegex","product":"core","slug":"tmux-panefilter-commandregex"},{"id":"tmux.PaneFilter.Active","name":"Active","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*bool","doc":{"summary":"Active exactly matches the materialized active state from Pane.Active. A nil pointer leaves Active unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":141,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.Active","product":"core","slug":"tmux-panefilter-active"},{"id":"tmux.PaneFilter.Title","name":"Title","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*string","doc":{"summary":"Title exactly matches the materialized title from Pane.Title. A nil pointer leaves Title unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":143,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.Title","product":"core","slug":"tmux-panefilter-title"},{"id":"tmux.PaneFilter.TitleIn","name":"TitleIn","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"[]string","doc":{"summary":"TitleIn lists accepted values for the materialized title from Pane.Title. A candidate matches when its materialized value equals one listed value. A nil slice leaves TitleIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":145,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.TitleIn","product":"core","slug":"tmux-panefilter-titlein"},{"id":"tmux.PaneFilter.TitleContains","name":"TitleContains","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*string","doc":{"summary":"TitleContains requires the materialized title from Pane.Title to contain the pointed-to substring. A nil pointer leaves TitleContains unset; a non-nil pointer applies it, and an empty string matches every available string."},"source":{"file":"tmux/filter_generated.go","line":147,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.TitleContains","product":"core","slug":"tmux-panefilter-titlecontains"},{"id":"tmux.PaneFilter.TitleRegex","name":"TitleRegex","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"string","doc":{"summary":"TitleRegex requires the materialized title from Pane.Title to match Go regular expression syntax. An empty string leaves TitleRegex unset."},"source":{"file":"tmux/filter_generated.go","line":149,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.TitleRegex","product":"core","slug":"tmux-panefilter-titleregex"},{"id":"tmux.PaneFilter.AnyOf","name":"AnyOf","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"[]PaneFilter","doc":{"summary":"AnyOf additionally requires at least one branch to match after ordinary criteria match. A nil slice leaves AnyOf unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":151,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.AnyOf","product":"core","slug":"tmux-panefilter-anyof"},{"id":"tmux.PaneFilter.Not","name":"Not","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*PaneFilter","doc":{"summary":"Not excludes a candidate when its nested filter matches. A nil pointer leaves Not unset."},"source":{"file":"tmux/filter_generated.go","line":153,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.Not","product":"core","slug":"tmux-panefilter-not"},{"id":"tmux.PaneFilter.Session","name":"Session","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*SessionFilter","doc":{"summary":"Session traverses the materialized parent returned by Pane.Session. A nil pointer leaves the relation criterion unset."},"source":{"file":"tmux/filter_generated.go","line":155,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.Session","product":"core","slug":"tmux-panefilter-session"},{"id":"tmux.PaneFilter.Window","name":"Window","kind":"attribute","modifiers":[],"parent":"tmux.PaneFilter","signatures":[],"type":"*WindowFilter","doc":{"summary":"Window traverses the materialized parent returned by Pane.Window. A nil pointer leaves the relation criterion unset."},"source":{"file":"tmux/filter_generated.go","line":157,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.Window","product":"core","slug":"tmux-panefilter-window"},{"id":"tmux.ClientFilter","name":"ClientFilter","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ClientFilter matches materialized [Client] values without tmux I/O. Its zero value matches every non-nil candidate. Criteria are ANDed; AnyOf adds an OR requirement and Not excludes. Field and relation criteria correspond to [Client.Name], [Client.ReadOnly], [Client.AttachedSession], [Client.AttachedWindow], and [Client.AttachedPane]. [ClientFilter.Validate] and methods that consume the filter reject invalid criteria with [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":164,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter","product":"core","slug":"tmux-clientfilter"},{"id":"tmux.ClientFilter.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"*ClientName","doc":{"summary":"Name exactly matches the stable tmux client name from Client.Name. A nil pointer leaves Name unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":166,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.Name","product":"core","slug":"tmux-clientfilter-name"},{"id":"tmux.ClientFilter.NameIn","name":"NameIn","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"[]ClientName","doc":{"summary":"NameIn lists accepted values for the stable tmux client name from Client.Name. A candidate matches when its materialized value equals one listed value. A nil slice leaves NameIn unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":168,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.NameIn","product":"core","slug":"tmux-clientfilter-namein"},{"id":"tmux.ClientFilter.NameContains","name":"NameContains","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"*string","doc":{"summary":"NameContains requires the stable tmux client name from Client.Name to contain the pointed-to substring. A nil pointer leaves NameContains unset; a non-nil pointer applies it, and an empty string matches every available string."},"source":{"file":"tmux/filter_generated.go","line":170,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.NameContains","product":"core","slug":"tmux-clientfilter-namecontains"},{"id":"tmux.ClientFilter.NameRegex","name":"NameRegex","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"string","doc":{"summary":"NameRegex requires the stable tmux client name from Client.Name to match Go regular expression syntax. An empty string leaves NameRegex unset."},"source":{"file":"tmux/filter_generated.go","line":172,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.NameRegex","product":"core","slug":"tmux-clientfilter-nameregex"},{"id":"tmux.ClientFilter.ReadOnly","name":"ReadOnly","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"*bool","doc":{"summary":"ReadOnly exactly matches the materialized read-only state from Client.ReadOnly. A nil pointer leaves ReadOnly unset; a non-nil pointer applies it, including when it points to the zero value."},"source":{"file":"tmux/filter_generated.go","line":174,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.ReadOnly","product":"core","slug":"tmux-clientfilter-readonly"},{"id":"tmux.ClientFilter.AnyOf","name":"AnyOf","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"[]ClientFilter","doc":{"summary":"AnyOf additionally requires at least one branch to match after ordinary criteria match. A nil slice leaves AnyOf unset; a non-nil empty slice is invalid."},"source":{"file":"tmux/filter_generated.go","line":176,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.AnyOf","product":"core","slug":"tmux-clientfilter-anyof"},{"id":"tmux.ClientFilter.Not","name":"Not","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"*ClientFilter","doc":{"summary":"Not excludes a candidate when its nested filter matches. A nil pointer leaves Not unset."},"source":{"file":"tmux/filter_generated.go","line":178,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.Not","product":"core","slug":"tmux-clientfilter-not"},{"id":"tmux.ClientFilter.Session","name":"Session","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"*SessionFilter","doc":{"summary":"Session traverses the materialized attachment returned by Client.AttachedSession. A nil pointer leaves the relation criterion unset."},"source":{"file":"tmux/filter_generated.go","line":180,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.Session","product":"core","slug":"tmux-clientfilter-session"},{"id":"tmux.ClientFilter.Window","name":"Window","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"*WindowFilter","doc":{"summary":"Window traverses the materialized attachment returned by Client.AttachedWindow. A nil pointer leaves the relation criterion unset."},"source":{"file":"tmux/filter_generated.go","line":182,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.Window","product":"core","slug":"tmux-clientfilter-window"},{"id":"tmux.ClientFilter.Pane","name":"Pane","kind":"attribute","modifiers":[],"parent":"tmux.ClientFilter","signatures":[],"type":"*PaneFilter","doc":{"summary":"Pane traverses the materialized attachment returned by Client.AttachedPane. A nil pointer leaves the relation criterion unset."},"source":{"file":"tmux/filter_generated.go","line":184,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.Pane","product":"core","slug":"tmux-clientfilter-pane"},{"id":"tmux.SessionIDIs","name":"SessionIDIs","kind":"function","modifiers":[],"signatures":[{"raw":"func SessionIDIs(value SessionID) SessionFilter","params":[{"name":"value","type":"SessionID"}],"returns":"SessionFilter"}],"doc":{"summary":"SessionIDIs returns a [SessionFilter] that exactly matches the stable tmux session identifier from Session.ID, including its $ sigil. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":188,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionIDIs","product":"core","slug":"tmux-sessionidis"},{"id":"tmux.SessionNameIs","name":"SessionNameIs","kind":"function","modifiers":[],"signatures":[{"raw":"func SessionNameIs(value string) SessionFilter","params":[{"name":"value","type":"string"}],"returns":"SessionFilter"}],"doc":{"summary":"SessionNameIs returns a [SessionFilter] that exactly matches the materialized session name from Session.Name. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":193,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionNameIs","product":"core","slug":"tmux-sessionnameis"},{"id":"tmux.SessionAttachedIs","name":"SessionAttachedIs","kind":"function","modifiers":[],"signatures":[{"raw":"func SessionAttachedIs(value bool) SessionFilter","params":[{"name":"value","type":"bool"}],"returns":"SessionFilter"}],"doc":{"summary":"SessionAttachedIs returns a [SessionFilter] that exactly matches the materialized attachment state from Session.Attached. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":198,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionAttachedIs","product":"core","slug":"tmux-sessionattachedis"},{"id":"tmux.WindowSessionIDIs","name":"WindowSessionIDIs","kind":"function","modifiers":[],"signatures":[{"raw":"func WindowSessionIDIs(value SessionID) WindowFilter","params":[{"name":"value","type":"SessionID"}],"returns":"WindowFilter"}],"doc":{"summary":"WindowSessionIDIs returns a [WindowFilter] that exactly matches the stable tmux session identifier from Window.SessionID, including its $ sigil. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":203,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSessionIDIs","product":"core","slug":"tmux-windowsessionidis"},{"id":"tmux.WindowIDIs","name":"WindowIDIs","kind":"function","modifiers":[],"signatures":[{"raw":"func WindowIDIs(value WindowID) WindowFilter","params":[{"name":"value","type":"WindowID"}],"returns":"WindowFilter"}],"doc":{"summary":"WindowIDIs returns a [WindowFilter] that exactly matches the stable tmux window identifier from Window.ID, including its @ sigil. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":208,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowIDIs","product":"core","slug":"tmux-windowidis"},{"id":"tmux.WindowIndexIs","name":"WindowIndexIs","kind":"function","modifiers":[],"signatures":[{"raw":"func WindowIndexIs(value int) WindowFilter","params":[{"name":"value","type":"int"}],"returns":"WindowFilter"}],"doc":{"summary":"WindowIndexIs returns a [WindowFilter] that exactly matches the nonnegative winlink index from Window.Index. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":213,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowIndexIs","product":"core","slug":"tmux-windowindexis"},{"id":"tmux.WindowNameIs","name":"WindowNameIs","kind":"function","modifiers":[],"signatures":[{"raw":"func WindowNameIs(value string) WindowFilter","params":[{"name":"value","type":"string"}],"returns":"WindowFilter"}],"doc":{"summary":"WindowNameIs returns a [WindowFilter] that exactly matches the materialized window name from Window.Name. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":218,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowNameIs","product":"core","slug":"tmux-windownameis"},{"id":"tmux.WindowActiveIs","name":"WindowActiveIs","kind":"function","modifiers":[],"signatures":[{"raw":"func WindowActiveIs(value bool) WindowFilter","params":[{"name":"value","type":"bool"}],"returns":"WindowFilter"}],"doc":{"summary":"WindowActiveIs returns a [WindowFilter] that exactly matches the materialized active state from Window.Active. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":223,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowActiveIs","product":"core","slug":"tmux-windowactiveis"},{"id":"tmux.PaneSessionIDIs","name":"PaneSessionIDIs","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneSessionIDIs(value SessionID) PaneFilter","params":[{"name":"value","type":"SessionID"}],"returns":"PaneFilter"}],"doc":{"summary":"PaneSessionIDIs returns a [PaneFilter] that exactly matches the stable tmux session identifier from Pane.SessionID, including its $ sigil. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":228,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSessionIDIs","product":"core","slug":"tmux-panesessionidis"},{"id":"tmux.PaneWindowIDIs","name":"PaneWindowIDIs","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneWindowIDIs(value WindowID) PaneFilter","params":[{"name":"value","type":"WindowID"}],"returns":"PaneFilter"}],"doc":{"summary":"PaneWindowIDIs returns a [PaneFilter] that exactly matches the stable tmux window identifier from Pane.WindowID, including its @ sigil. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":233,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneWindowIDIs","product":"core","slug":"tmux-panewindowidis"},{"id":"tmux.PaneIDIs","name":"PaneIDIs","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneIDIs(value PaneID) PaneFilter","params":[{"name":"value","type":"PaneID"}],"returns":"PaneFilter"}],"doc":{"summary":"PaneIDIs returns a [PaneFilter] that exactly matches the stable tmux pane identifier from Pane.ID, including its % sigil. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":238,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneIDIs","product":"core","slug":"tmux-paneidis"},{"id":"tmux.PaneWindowIndexIs","name":"PaneWindowIndexIs","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneWindowIndexIs(value int) PaneFilter","params":[{"name":"value","type":"int"}],"returns":"PaneFilter"}],"doc":{"summary":"PaneWindowIndexIs returns a [PaneFilter] that exactly matches the nonnegative winlink index from Pane.WindowIndex. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":243,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneWindowIndexIs","product":"core","slug":"tmux-panewindowindexis"},{"id":"tmux.PaneIndexIs","name":"PaneIndexIs","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneIndexIs(value int) PaneFilter","params":[{"name":"value","type":"int"}],"returns":"PaneFilter"}],"doc":{"summary":"PaneIndexIs returns a [PaneFilter] that exactly matches the nonnegative pane index from Pane.Index. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":248,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneIndexIs","product":"core","slug":"tmux-paneindexis"},{"id":"tmux.PaneCommandIs","name":"PaneCommandIs","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneCommandIs(value string) PaneFilter","params":[{"name":"value","type":"string"}],"returns":"PaneFilter"}],"doc":{"summary":"PaneCommandIs returns a [PaneFilter] that exactly matches the materialized current command from Pane.CurrentCommand. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":253,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneCommandIs","product":"core","slug":"tmux-panecommandis"},{"id":"tmux.PaneActiveIs","name":"PaneActiveIs","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneActiveIs(value bool) PaneFilter","params":[{"name":"value","type":"bool"}],"returns":"PaneFilter"}],"doc":{"summary":"PaneActiveIs returns a [PaneFilter] that exactly matches the materialized active state from Pane.Active. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":258,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneActiveIs","product":"core","slug":"tmux-paneactiveis"},{"id":"tmux.PaneTitleIs","name":"PaneTitleIs","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneTitleIs(value string) PaneFilter","params":[{"name":"value","type":"string"}],"returns":"PaneFilter"}],"doc":{"summary":"PaneTitleIs returns a [PaneFilter] that exactly matches the materialized title from Pane.Title. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":263,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneTitleIs","product":"core","slug":"tmux-panetitleis"},{"id":"tmux.ClientNameIs","name":"ClientNameIs","kind":"function","modifiers":[],"signatures":[{"raw":"func ClientNameIs(value ClientName) ClientFilter","params":[{"name":"value","type":"ClientName"}],"returns":"ClientFilter"}],"doc":{"summary":"ClientNameIs returns a [ClientFilter] that exactly matches the stable tmux client name from Client.Name. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":268,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientNameIs","product":"core","slug":"tmux-clientnameis"},{"id":"tmux.ClientReadOnlyIs","name":"ClientReadOnlyIs","kind":"function","modifiers":[],"signatures":[{"raw":"func ClientReadOnlyIs(value bool) ClientFilter","params":[{"name":"value","type":"bool"}],"returns":"ClientFilter"}],"doc":{"summary":"ClientReadOnlyIs returns a [ClientFilter] that exactly matches the materialized read-only state from Client.ReadOnly. It sets no other criteria and does not validate value."},"source":{"file":"tmux/filter_generated.go","line":273,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientReadOnlyIs","product":"core","slug":"tmux-clientreadonlyis"},{"id":"tmux.WindowRel","name":"WindowRel","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WindowRel applies quantifiers to a materialized [Window] relation; its zero value is invalid. Some is existential, Every is universal and vacuously true for an empty relation, and None excludes; enabled quantifiers are conjunctive."},"source":{"file":"tmux/filter_generated.go","line":279,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowRel","product":"core","slug":"tmux-windowrel"},{"id":"tmux.WindowRel.Some","name":"Some","kind":"attribute","modifiers":[],"parent":"tmux.WindowRel","signatures":[],"type":"*WindowFilter","doc":{"summary":"Some requires an existential match: at least one related value must match."},"source":{"file":"tmux/filter_generated.go","line":281,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowRel.Some","product":"core","slug":"tmux-windowrel-some"},{"id":"tmux.WindowRel.Every","name":"Every","kind":"attribute","modifiers":[],"parent":"tmux.WindowRel","signatures":[],"type":"*WindowFilter","doc":{"summary":"Every requires a universal match and is vacuously true for an empty relation."},"source":{"file":"tmux/filter_generated.go","line":283,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowRel.Every","product":"core","slug":"tmux-windowrel-every"},{"id":"tmux.WindowRel.None","name":"None","kind":"attribute","modifiers":[],"parent":"tmux.WindowRel","signatures":[],"type":"*WindowFilter","doc":{"summary":"None excludes the candidate when any related value matches."},"source":{"file":"tmux/filter_generated.go","line":285,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowRel.None","product":"core","slug":"tmux-windowrel-none"},{"id":"tmux.PaneRel","name":"PaneRel","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneRel applies quantifiers to a materialized [Pane] relation; its zero value is invalid. Some is existential, Every is universal and vacuously true for an empty relation, and None excludes; enabled quantifiers are conjunctive."},"source":{"file":"tmux/filter_generated.go","line":290,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneRel","product":"core","slug":"tmux-panerel"},{"id":"tmux.PaneRel.Some","name":"Some","kind":"attribute","modifiers":[],"parent":"tmux.PaneRel","signatures":[],"type":"*PaneFilter","doc":{"summary":"Some requires an existential match: at least one related value must match."},"source":{"file":"tmux/filter_generated.go","line":292,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneRel.Some","product":"core","slug":"tmux-panerel-some"},{"id":"tmux.PaneRel.Every","name":"Every","kind":"attribute","modifiers":[],"parent":"tmux.PaneRel","signatures":[],"type":"*PaneFilter","doc":{"summary":"Every requires a universal match and is vacuously true for an empty relation."},"source":{"file":"tmux/filter_generated.go","line":294,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneRel.Every","product":"core","slug":"tmux-panerel-every"},{"id":"tmux.PaneRel.None","name":"None","kind":"attribute","modifiers":[],"parent":"tmux.PaneRel","signatures":[],"type":"*PaneFilter","doc":{"summary":"None excludes the candidate when any related value matches."},"source":{"file":"tmux/filter_generated.go","line":296,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneRel.None","product":"core","slug":"tmux-panerel-none"},{"id":"tmux.ParseSessionLookup","name":"ParseSessionLookup","kind":"function","modifiers":[],"signatures":[{"raw":"func ParseSessionLookup(lookup string, values ...string) (SessionFilter, error)","params":[{"name":"lookup","type":"string"},{"name":"values","type":"string","variadic":"positional"}],"returns":"(SessionFilter, error)"}],"doc":{"summary":"ParseSessionLookup converts a lookup path into a concrete session filter. Paths traverse generated JSON relation names and separate segments with double underscores. The default operator is exact. Accepted suffixes are eq, exact, iexact, contains, icontains, startswith, istartswith, endswith, iendswith, in, nin, regex, and iregex; availability is field-specific. The eq suffix aliases exact, nin negates in, scalar operators require one value, and in and nin require one or more. Invalid paths, operators, values, or results wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":666,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ParseSessionLookup","product":"core","slug":"tmux-parsesessionlookup"},{"id":"tmux.ParseWindowLookup","name":"ParseWindowLookup","kind":"function","modifiers":[],"signatures":[{"raw":"func ParseWindowLookup(lookup string, values ...string) (WindowFilter, error)","params":[{"name":"lookup","type":"string"},{"name":"values","type":"string","variadic":"positional"}],"returns":"(WindowFilter, error)"}],"doc":{"summary":"ParseWindowLookup converts a lookup path into a concrete window filter. Paths traverse generated JSON relation names and separate segments with double underscores. The default operator is exact. Accepted suffixes are eq, exact, iexact, contains, icontains, startswith, istartswith, endswith, iendswith, in, nin, regex, and iregex; availability is field-specific. The eq suffix aliases exact, nin negates in, scalar operators require one value, and in and nin require one or more. Invalid paths, operators, values, or results wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":690,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ParseWindowLookup","product":"core","slug":"tmux-parsewindowlookup"},{"id":"tmux.ParsePaneLookup","name":"ParsePaneLookup","kind":"function","modifiers":[],"signatures":[{"raw":"func ParsePaneLookup(lookup string, values ...string) (PaneFilter, error)","params":[{"name":"lookup","type":"string"},{"name":"values","type":"string","variadic":"positional"}],"returns":"(PaneFilter, error)"}],"doc":{"summary":"ParsePaneLookup converts a lookup path into a concrete pane filter. Paths traverse generated JSON relation names and separate segments with double underscores. The default operator is exact. Accepted suffixes are eq, exact, iexact, contains, icontains, startswith, istartswith, endswith, iendswith, in, nin, regex, and iregex; availability is field-specific. The eq suffix aliases exact, nin negates in, scalar operators require one value, and in and nin require one or more. Invalid paths, operators, values, or results wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":714,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ParsePaneLookup","product":"core","slug":"tmux-parsepanelookup"},{"id":"tmux.ParseClientLookup","name":"ParseClientLookup","kind":"function","modifiers":[],"signatures":[{"raw":"func ParseClientLookup(lookup string, values ...string) (ClientFilter, error)","params":[{"name":"lookup","type":"string"},{"name":"values","type":"string","variadic":"positional"}],"returns":"(ClientFilter, error)"}],"doc":{"summary":"ParseClientLookup converts a lookup path into a concrete client filter. Paths traverse generated JSON relation names and separate segments with double underscores. The default operator is exact. Accepted suffixes are eq, exact, iexact, contains, icontains, startswith, istartswith, endswith, iendswith, in, nin, regex, and iregex; availability is field-specific. The eq suffix aliases exact, nin negates in, scalar operators require one value, and in and nin require one or more. Invalid paths, operators, values, or results wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":738,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ParseClientLookup","product":"core","slug":"tmux-parseclientlookup"},{"id":"tmux.SessionFilter.Validate","name":"Validate","kind":"method","modifiers":[],"parent":"tmux.SessionFilter","signatures":[{"raw":"func (filter SessionFilter) Validate() error","params":[],"receiver":{"name":"filter","type":"SessionFilter"},"returns":"error"}],"doc":{"summary":"Validate checks structure, regular expressions, and contradictory criteria; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":1687,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.Validate","product":"core","slug":"tmux-sessionfilter-validate"},{"id":"tmux.WindowFilter.Validate","name":"Validate","kind":"method","modifiers":[],"parent":"tmux.WindowFilter","signatures":[{"raw":"func (filter WindowFilter) Validate() error","params":[],"receiver":{"name":"filter","type":"WindowFilter"},"returns":"error"}],"doc":{"summary":"Validate checks structure, regular expressions, and contradictory criteria; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":1907,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.Validate","product":"core","slug":"tmux-windowfilter-validate"},{"id":"tmux.PaneFilter.Validate","name":"Validate","kind":"method","modifiers":[],"parent":"tmux.PaneFilter","signatures":[{"raw":"func (filter PaneFilter) Validate() error","params":[],"receiver":{"name":"filter","type":"PaneFilter"},"returns":"error"}],"doc":{"summary":"Validate checks structure, regular expressions, and contradictory criteria; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":2093,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.Validate","product":"core","slug":"tmux-panefilter-validate"},{"id":"tmux.ClientFilter.Validate","name":"Validate","kind":"method","modifiers":[],"parent":"tmux.ClientFilter","signatures":[{"raw":"func (filter ClientFilter) Validate() error","params":[],"receiver":{"name":"filter","type":"ClientFilter"},"returns":"error"}],"doc":{"summary":"Validate checks structure, regular expressions, and contradictory criteria; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":2256,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.Validate","product":"core","slug":"tmux-clientfilter-validate"},{"id":"tmux.SessionFilter.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.SessionFilter","signatures":[{"raw":"func (filter SessionFilter) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"filter","type":"SessionFilter"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON validates and encodes the session filter; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":2387,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.MarshalJSON","product":"core","slug":"tmux-sessionfilter-marshaljson"},{"id":"tmux.WindowFilter.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.WindowFilter","signatures":[{"raw":"func (filter WindowFilter) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"filter","type":"WindowFilter"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON validates and encodes the window filter; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":2396,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.MarshalJSON","product":"core","slug":"tmux-windowfilter-marshaljson"},{"id":"tmux.PaneFilter.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.PaneFilter","signatures":[{"raw":"func (filter PaneFilter) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"filter","type":"PaneFilter"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON validates and encodes the pane filter; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":2405,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.MarshalJSON","product":"core","slug":"tmux-panefilter-marshaljson"},{"id":"tmux.ClientFilter.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.ClientFilter","signatures":[{"raw":"func (filter ClientFilter) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"filter","type":"ClientFilter"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON validates and encodes the client filter; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":2414,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.MarshalJSON","product":"core","slug":"tmux-clientfilter-marshaljson"},{"id":"tmux.WindowRel.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.WindowRel","signatures":[{"raw":"func (relation WindowRel) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"relation","type":"WindowRel"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON validates and encodes the window relation; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":2445,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowRel.MarshalJSON","product":"core","slug":"tmux-windowrel-marshaljson"},{"id":"tmux.PaneRel.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.PaneRel","signatures":[{"raw":"func (relation PaneRel) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"relation","type":"PaneRel"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON validates and encodes the pane relation; failures wrap [ErrInvalidFilter]."},"source":{"file":"tmux/filter_generated.go","line":2476,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneRel.MarshalJSON","product":"core","slug":"tmux-panerel-marshaljson"},{"id":"tmux.SessionFilter.Predicate","name":"Predicate","kind":"method","modifiers":[],"parent":"tmux.SessionFilter","signatures":[{"raw":"func (filter SessionFilter) Predicate() (func(*Session) bool, error)","params":[],"receiver":{"name":"filter","type":"SessionFilter"},"returns":"(func(*Session) bool, error)"}],"doc":{"summary":"Predicate validates the session filter and returns a local predicate for [Session] values materialized by a [Snapshot]; it never runs tmux. It traverses only loaded relations and returns false for a nil candidate."},"source":{"file":"tmux/filter_generated.go","line":2486,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.Predicate","product":"core","slug":"tmux-sessionfilter-predicate"},{"id":"tmux.WindowFilter.Predicate","name":"Predicate","kind":"method","modifiers":[],"parent":"tmux.WindowFilter","signatures":[{"raw":"func (filter WindowFilter) Predicate() (func(*Window) bool, error)","params":[],"receiver":{"name":"filter","type":"WindowFilter"},"returns":"(func(*Window) bool, error)"}],"doc":{"summary":"Predicate validates the window filter and returns a local predicate for [Window] values materialized by a [Snapshot]; it never runs tmux. It traverses only loaded relations and returns false for a nil candidate."},"source":{"file":"tmux/filter_generated.go","line":2720,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.Predicate","product":"core","slug":"tmux-windowfilter-predicate"},{"id":"tmux.PaneFilter.Predicate","name":"Predicate","kind":"method","modifiers":[],"parent":"tmux.PaneFilter","signatures":[{"raw":"func (filter PaneFilter) Predicate() (func(*Pane) bool, error)","params":[],"receiver":{"name":"filter","type":"PaneFilter"},"returns":"(func(*Pane) bool, error)"}],"doc":{"summary":"Predicate validates the pane filter and returns a local predicate for [Pane] values materialized by a [Snapshot]; it never runs tmux. It traverses only loaded relations and returns false for a nil candidate."},"source":{"file":"tmux/filter_generated.go","line":2979,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.Predicate","product":"core","slug":"tmux-panefilter-predicate"},{"id":"tmux.ClientFilter.Predicate","name":"Predicate","kind":"method","modifiers":[],"parent":"tmux.ClientFilter","signatures":[{"raw":"func (filter ClientFilter) Predicate() (func(*Client) bool, error)","params":[],"receiver":{"name":"filter","type":"ClientFilter"},"returns":"(func(*Client) bool, error)"}],"doc":{"summary":"Predicate validates the client filter and returns a local predicate for [Client] values materialized by a [Snapshot]; it never runs tmux. It traverses only loaded relations and returns false for a nil candidate."},"source":{"file":"tmux/filter_generated.go","line":3304,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.Predicate","product":"core","slug":"tmux-clientfilter-predicate"},{"id":"tmux.SessionFilter.UnmarshalJSON","name":"UnmarshalJSON","kind":"method","modifiers":[],"parent":"tmux.SessionFilter","signatures":[{"raw":"func (filter *SessionFilter) UnmarshalJSON(data []byte) error","params":[{"name":"data","type":"[]byte"}],"receiver":{"name":"filter","type":"*SessionFilter"},"returns":"error"}],"doc":{"summary":"UnmarshalJSON clears the receiver, strictly decodes a session filter, then validates it. Unknown or duplicate fields, trailing data, and semantic failures wrap [ErrInvalidFilter]; the receiver may retain decoded state on error."},"source":{"file":"tmux/filter_generated.go","line":3446,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFilter.UnmarshalJSON","product":"core","slug":"tmux-sessionfilter-unmarshaljson"},{"id":"tmux.WindowFilter.UnmarshalJSON","name":"UnmarshalJSON","kind":"method","modifiers":[],"parent":"tmux.WindowFilter","signatures":[{"raw":"func (filter *WindowFilter) UnmarshalJSON(data []byte) error","params":[{"name":"data","type":"[]byte"}],"receiver":{"name":"filter","type":"*WindowFilter"},"returns":"error"}],"doc":{"summary":"UnmarshalJSON clears the receiver, strictly decodes a window filter, then validates it. Unknown or duplicate fields, trailing data, and semantic failures wrap [ErrInvalidFilter]; the receiver may retain decoded state on error."},"source":{"file":"tmux/filter_generated.go","line":3471,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFilter.UnmarshalJSON","product":"core","slug":"tmux-windowfilter-unmarshaljson"},{"id":"tmux.PaneFilter.UnmarshalJSON","name":"UnmarshalJSON","kind":"method","modifiers":[],"parent":"tmux.PaneFilter","signatures":[{"raw":"func (filter *PaneFilter) UnmarshalJSON(data []byte) error","params":[{"name":"data","type":"[]byte"}],"receiver":{"name":"filter","type":"*PaneFilter"},"returns":"error"}],"doc":{"summary":"UnmarshalJSON clears the receiver, strictly decodes a pane filter, then validates it. Unknown or duplicate fields, trailing data, and semantic failures wrap [ErrInvalidFilter]; the receiver may retain decoded state on error."},"source":{"file":"tmux/filter_generated.go","line":3504,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFilter.UnmarshalJSON","product":"core","slug":"tmux-panefilter-unmarshaljson"},{"id":"tmux.ClientFilter.UnmarshalJSON","name":"UnmarshalJSON","kind":"method","modifiers":[],"parent":"tmux.ClientFilter","signatures":[{"raw":"func (filter *ClientFilter) UnmarshalJSON(data []byte) error","params":[{"name":"data","type":"[]byte"}],"receiver":{"name":"filter","type":"*ClientFilter"},"returns":"error"}],"doc":{"summary":"UnmarshalJSON clears the receiver, strictly decodes a client filter, then validates it. Unknown or duplicate fields, trailing data, and semantic failures wrap [ErrInvalidFilter]; the receiver may retain decoded state on error."},"source":{"file":"tmux/filter_generated.go","line":3549,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientFilter.UnmarshalJSON","product":"core","slug":"tmux-clientfilter-unmarshaljson"},{"id":"tmux.WindowRel.UnmarshalJSON","name":"UnmarshalJSON","kind":"method","modifiers":[],"parent":"tmux.WindowRel","signatures":[{"raw":"func (relation *WindowRel) UnmarshalJSON(data []byte) error","params":[{"name":"data","type":"[]byte"}],"receiver":{"name":"relation","type":"*WindowRel"},"returns":"error"}],"doc":{"summary":"UnmarshalJSON clears the receiver, strictly decodes a window relation, then validates it. Unknown or duplicate fields, trailing data, and semantic failures wrap [ErrInvalidFilter]; the receiver may retain decoded state on error."},"source":{"file":"tmux/filter_generated.go","line":3573,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowRel.UnmarshalJSON","product":"core","slug":"tmux-windowrel-unmarshaljson"},{"id":"tmux.PaneRel.UnmarshalJSON","name":"UnmarshalJSON","kind":"method","modifiers":[],"parent":"tmux.PaneRel","signatures":[{"raw":"func (relation *PaneRel) UnmarshalJSON(data []byte) error","params":[{"name":"data","type":"[]byte"}],"receiver":{"name":"relation","type":"*PaneRel"},"returns":"error"}],"doc":{"summary":"UnmarshalJSON clears the receiver, strictly decodes a pane relation, then validates it. Unknown or duplicate fields, trailing data, and semantic failures wrap [ErrInvalidFilter]; the receiver may retain decoded state on error."},"source":{"file":"tmux/filter_generated.go","line":3590,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneRel.UnmarshalJSON","product":"core","slug":"tmux-panerel-unmarshaljson"},{"id":"tmux.ErrMalformedFormatOutput","name":"ErrMalformedFormatOutput","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrMalformedFormatOutput identifies invalid escaped tmux format output. It is matched by errors.Is for [FormatDecodeError]."},"source":{"file":"tmux/format.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrMalformedFormatOutput","product":"core","slug":"tmux-errmalformedformatoutput"},{"id":"tmux.FormatDecodeError","name":"FormatDecodeError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"FormatDecodeError identifies a malformed escaped tmux format record. It matches [ErrMalformedFormatOutput] through errors.Is; callers can recover its location fields with errors.As. Library-created errors do not retain decoded record values, which may contain caller data."},"source":{"file":"tmux/format.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatDecodeError","product":"core","slug":"tmux-formatdecodeerror"},{"id":"tmux.FormatDecodeError.Record","name":"Record","kind":"attribute","modifiers":[],"parent":"tmux.FormatDecodeError","signatures":[],"type":"int","doc":{"summary":"Record is the one-based physical record number."},"source":{"file":"tmux/format.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatDecodeError.Record","product":"core","slug":"tmux-formatdecodeerror-record"},{"id":"tmux.FormatDecodeError.Field","name":"Field","kind":"attribute","modifiers":[],"parent":"tmux.FormatDecodeError","signatures":[],"type":"string","doc":{"summary":"Field names the format field that could not be decoded."},"source":{"file":"tmux/format.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatDecodeError.Field","product":"core","slug":"tmux-formatdecodeerror-field"},{"id":"tmux.FormatDecodeError.Offset","name":"Offset","kind":"attribute","modifiers":[],"parent":"tmux.FormatDecodeError","signatures":[],"type":"int","doc":{"summary":"Offset is the zero-based byte offset within Field's encoded value."},"source":{"file":"tmux/format.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatDecodeError.Offset","product":"core","slug":"tmux-formatdecodeerror-offset"},{"id":"tmux.FormatDecodeError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.FormatDecodeError","signatures":[],"type":"string","doc":{"summary":"Reason describes the malformed encoding."},"source":{"file":"tmux/format.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatDecodeError.Reason","product":"core","slug":"tmux-formatdecodeerror-reason"},{"id":"tmux.FormatDecodeError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.FormatDecodeError","signatures":[{"raw":"func (e *FormatDecodeError) Error() string","params":[],"receiver":{"name":"e","type":"*FormatDecodeError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/format.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatDecodeError.Error","product":"core","slug":"tmux-formatdecodeerror-error"},{"id":"tmux.FormatDecodeError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.FormatDecodeError","signatures":[{"raw":"func (e *FormatDecodeError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*FormatDecodeError"},"returns":"error"}],"doc":{"summary":"Unwrap makes FormatDecodeError compatible with ErrMalformedFormatOutput."},"source":{"file":"tmux/format.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatDecodeError.Unwrap","product":"core","slug":"tmux-formatdecodeerror-unwrap"},{"id":"tmux.FormatValues","name":"FormatValues","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"FormatValues is a read-only view of format expansions materialized with a Session, Window, Pane, or Client. Its methods do not query tmux. Projected cross-scope fields do not imply that the referenced record was materialized.","body":"Typed accessors return ok == false for an absent, empty, or malformed value;\n[FormatValues.Raw] distinguishes absent from present empty expansions. The\nzero value reports every field as absent."},"source":{"file":"tmux/format.go","line":97,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues","product":"core","slug":"tmux-formatvalues"},{"id":"tmux.FormatValues.Raw","name":"Raw","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) Raw(name string) (string, bool)","params":[{"name":"name","type":"string"}],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"Raw returns the exact materialized tmux format expansion for name. It never queries tmux; ok distinguishes an absent field from a present empty value."},"source":{"file":"tmux/format.go","line":226,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.Raw","product":"core","slug":"tmux-formatvalues-raw"},{"id":"tmux.Session.Formats","name":"Formats","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Formats() FormatValues","params":[],"receiver":{"name":"s","type":"Session"},"returns":"FormatValues"}],"doc":{"summary":"Formats returns this Session's read-only materialized tmux format values. It does not query tmux; use [Server.Snapshot] to obtain a fresh record."},"source":{"file":"tmux/format.go","line":232,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Formats","product":"core","slug":"tmux-session-formats"},{"id":"tmux.Window.Formats","name":"Formats","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Formats() FormatValues","params":[],"receiver":{"name":"w","type":"Window"},"returns":"FormatValues"}],"doc":{"summary":"Formats returns this Window's read-only materialized tmux format values. It does not query tmux; use [Server.Snapshot] to obtain a fresh record."},"source":{"file":"tmux/format.go","line":238,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Formats","product":"core","slug":"tmux-window-formats"},{"id":"tmux.Pane.Formats","name":"Formats","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Formats() FormatValues","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"FormatValues"}],"doc":{"summary":"Formats returns this Pane's read-only materialized tmux format values. It does not query tmux; use [Server.Snapshot] to obtain a fresh record."},"source":{"file":"tmux/format.go","line":244,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Formats","product":"core","slug":"tmux-pane-formats"},{"id":"tmux.Client.Formats","name":"Formats","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Formats() FormatValues","params":[],"receiver":{"name":"c","type":"Client"},"returns":"FormatValues"}],"doc":{"summary":"Formats returns this Client's read-only materialized tmux format values. It does not query tmux; use [Server.Snapshot] to obtain a fresh record."},"source":{"file":"tmux/format.go","line":250,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Formats","product":"core","slug":"tmux-client-formats"},{"id":"tmux.FormatValues.ActiveWindowIndex","name":"ActiveWindowIndex","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ActiveWindowIndex() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ActiveWindowIndex returns tmux #{active_window_index} as int from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":223,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ActiveWindowIndex","product":"core","slug":"tmux-formatvalues-activewindowindex"},{"id":"tmux.FormatValues.AlternateOn","name":"AlternateOn","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) AlternateOn() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"AlternateOn returns tmux #{alternate_on} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":226,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.AlternateOn","product":"core","slug":"tmux-formatvalues-alternateon"},{"id":"tmux.FormatValues.AlternateSavedX","name":"AlternateSavedX","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) AlternateSavedX() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"AlternateSavedX returns tmux #{alternate_saved_x} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":229,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.AlternateSavedX","product":"core","slug":"tmux-formatvalues-alternatesavedx"},{"id":"tmux.FormatValues.AlternateSavedY","name":"AlternateSavedY","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) AlternateSavedY() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"AlternateSavedY returns tmux #{alternate_saved_y} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":232,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.AlternateSavedY","product":"core","slug":"tmux-formatvalues-alternatesavedy"},{"id":"tmux.FormatValues.BracketPasteFlag","name":"BracketPasteFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) BracketPasteFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"BracketPasteFlag returns tmux #{bracket_paste_flag} as bool from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":235,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.BracketPasteFlag","product":"core","slug":"tmux-formatvalues-bracketpasteflag"},{"id":"tmux.FormatValues.BufferModeFormat","name":"BufferModeFormat","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) BufferModeFormat() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"BufferModeFormat returns tmux #{buffer_mode_format} as string from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":238,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.BufferModeFormat","product":"core","slug":"tmux-formatvalues-buffermodeformat"},{"id":"tmux.FormatValues.ClientActivity","name":"ClientActivity","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientActivity() (time.Time, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(time.Time, bool)"}],"doc":{"summary":"ClientActivity returns tmux #{client_activity} as time.Time from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":243,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientActivity","product":"core","slug":"tmux-formatvalues-clientactivity"},{"id":"tmux.FormatValues.ClientCellHeight","name":"ClientCellHeight","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientCellHeight() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ClientCellHeight returns tmux #{client_cell_height} as int from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":246,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientCellHeight","product":"core","slug":"tmux-formatvalues-clientcellheight"},{"id":"tmux.FormatValues.ClientCellWidth","name":"ClientCellWidth","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientCellWidth() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ClientCellWidth returns tmux #{client_cell_width} as int from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":249,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientCellWidth","product":"core","slug":"tmux-formatvalues-clientcellwidth"},{"id":"tmux.FormatValues.ClientControlMode","name":"ClientControlMode","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientControlMode() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"ClientControlMode returns tmux #{client_control_mode} as bool from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":252,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientControlMode","product":"core","slug":"tmux-formatvalues-clientcontrolmode"},{"id":"tmux.FormatValues.ClientCreated","name":"ClientCreated","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientCreated() (time.Time, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(time.Time, bool)"}],"doc":{"summary":"ClientCreated returns tmux #{client_created} as time.Time from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":257,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientCreated","product":"core","slug":"tmux-formatvalues-clientcreated"},{"id":"tmux.FormatValues.ClientDiscarded","name":"ClientDiscarded","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientDiscarded() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ClientDiscarded returns tmux #{client_discarded} as int from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":260,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientDiscarded","product":"core","slug":"tmux-formatvalues-clientdiscarded"},{"id":"tmux.FormatValues.ClientFlags","name":"ClientFlags","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientFlags() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientFlags returns tmux #{client_flags} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":263,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientFlags","product":"core","slug":"tmux-formatvalues-clientflags"},{"id":"tmux.FormatValues.ClientHeight","name":"ClientHeight","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientHeight() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ClientHeight returns tmux #{client_height} as int from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":266,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientHeight","product":"core","slug":"tmux-formatvalues-clientheight"},{"id":"tmux.FormatValues.ClientKeyTable","name":"ClientKeyTable","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientKeyTable() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientKeyTable returns tmux #{client_key_table} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":269,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientKeyTable","product":"core","slug":"tmux-formatvalues-clientkeytable"},{"id":"tmux.FormatValues.ClientLastSession","name":"ClientLastSession","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientLastSession() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientLastSession returns tmux #{client_last_session} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":272,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientLastSession","product":"core","slug":"tmux-formatvalues-clientlastsession"},{"id":"tmux.FormatValues.ClientModeFormat","name":"ClientModeFormat","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientModeFormat() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientModeFormat returns tmux #{client_mode_format} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":277,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientModeFormat","product":"core","slug":"tmux-formatvalues-clientmodeformat"},{"id":"tmux.FormatValues.ClientName","name":"ClientName","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientName() (ClientName, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(ClientName, bool)"}],"doc":{"summary":"ClientName returns tmux #{client_name} as ClientName from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":282,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientName","product":"core","slug":"tmux-formatvalues-clientname"},{"id":"tmux.FormatValues.ClientPID","name":"ClientPID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientPID() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ClientPID returns tmux #{client_pid} as int from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":285,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientPID","product":"core","slug":"tmux-formatvalues-clientpid"},{"id":"tmux.FormatValues.ClientPrefix","name":"ClientPrefix","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientPrefix() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"ClientPrefix returns tmux #{client_prefix} as bool from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":288,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientPrefix","product":"core","slug":"tmux-formatvalues-clientprefix"},{"id":"tmux.FormatValues.ClientReadOnly","name":"ClientReadOnly","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientReadOnly() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"ClientReadOnly returns tmux #{client_readonly} as bool from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":291,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientReadOnly","product":"core","slug":"tmux-formatvalues-clientreadonly"},{"id":"tmux.FormatValues.ClientSession","name":"ClientSession","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientSession() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientSession returns tmux #{client_session} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":294,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientSession","product":"core","slug":"tmux-formatvalues-clientsession"},{"id":"tmux.FormatValues.ClientTermFeatures","name":"ClientTermFeatures","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientTermFeatures() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientTermFeatures returns tmux #{client_termfeatures} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":297,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientTermFeatures","product":"core","slug":"tmux-formatvalues-clienttermfeatures"},{"id":"tmux.FormatValues.ClientTermName","name":"ClientTermName","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientTermName() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientTermName returns tmux #{client_termname} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":302,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientTermName","product":"core","slug":"tmux-formatvalues-clienttermname"},{"id":"tmux.FormatValues.ClientTermType","name":"ClientTermType","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientTermType() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientTermType returns tmux #{client_termtype} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":305,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientTermType","product":"core","slug":"tmux-formatvalues-clienttermtype"},{"id":"tmux.FormatValues.ClientTTY","name":"ClientTTY","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientTTY() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientTTY returns tmux #{client_tty} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":308,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientTTY","product":"core","slug":"tmux-formatvalues-clienttty"},{"id":"tmux.FormatValues.ClientUID","name":"ClientUID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientUID() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ClientUID returns tmux #{client_uid} as int from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":311,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientUID","product":"core","slug":"tmux-formatvalues-clientuid"},{"id":"tmux.FormatValues.ClientUser","name":"ClientUser","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientUser() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ClientUser returns tmux #{client_user} as string from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":314,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientUser","product":"core","slug":"tmux-formatvalues-clientuser"},{"id":"tmux.FormatValues.ClientUTF8","name":"ClientUTF8","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientUTF8() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"ClientUTF8 returns tmux #{client_utf8} as bool from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":317,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientUTF8","product":"core","slug":"tmux-formatvalues-clientutf8"},{"id":"tmux.FormatValues.ClientWidth","name":"ClientWidth","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientWidth() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ClientWidth returns tmux #{client_width} as int from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":320,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientWidth","product":"core","slug":"tmux-formatvalues-clientwidth"},{"id":"tmux.FormatValues.ClientWritten","name":"ClientWritten","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ClientWritten() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ClientWritten returns tmux #{client_written} as int from materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":323,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ClientWritten","product":"core","slug":"tmux-formatvalues-clientwritten"},{"id":"tmux.FormatValues.ConfigFiles","name":"ConfigFiles","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ConfigFiles() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"ConfigFiles returns tmux #{config_files} as string from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":326,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ConfigFiles","product":"core","slug":"tmux-formatvalues-configfiles"},{"id":"tmux.FormatValues.CursorBlinking","name":"CursorBlinking","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) CursorBlinking() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"CursorBlinking returns tmux #{cursor_blinking} as bool from materialized pane-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":329,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.CursorBlinking","product":"core","slug":"tmux-formatvalues-cursorblinking"},{"id":"tmux.FormatValues.CursorCharacter","name":"CursorCharacter","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) CursorCharacter() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"CursorCharacter returns tmux #{cursor_character} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":332,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.CursorCharacter","product":"core","slug":"tmux-formatvalues-cursorcharacter"},{"id":"tmux.FormatValues.CursorColour","name":"CursorColour","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) CursorColour() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"CursorColour returns tmux #{cursor_colour} as string from materialized pane-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":335,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.CursorColour","product":"core","slug":"tmux-formatvalues-cursorcolour"},{"id":"tmux.FormatValues.CursorFlag","name":"CursorFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) CursorFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"CursorFlag returns tmux #{cursor_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":338,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.CursorFlag","product":"core","slug":"tmux-formatvalues-cursorflag"},{"id":"tmux.FormatValues.CursorShape","name":"CursorShape","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) CursorShape() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"CursorShape returns tmux #{cursor_shape} as string from materialized pane-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":341,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.CursorShape","product":"core","slug":"tmux-formatvalues-cursorshape"},{"id":"tmux.FormatValues.CursorVeryVisible","name":"CursorVeryVisible","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) CursorVeryVisible() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"CursorVeryVisible returns tmux #{cursor_very_visible} as bool from materialized pane-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":344,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.CursorVeryVisible","product":"core","slug":"tmux-formatvalues-cursorveryvisible"},{"id":"tmux.FormatValues.CursorX","name":"CursorX","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) CursorX() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"CursorX returns tmux #{cursor_x} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":349,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.CursorX","product":"core","slug":"tmux-formatvalues-cursorx"},{"id":"tmux.FormatValues.CursorY","name":"CursorY","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) CursorY() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"CursorY returns tmux #{cursor_y} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":352,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.CursorY","product":"core","slug":"tmux-formatvalues-cursory"},{"id":"tmux.FormatValues.HistoryAdded","name":"HistoryAdded","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) HistoryAdded() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryAdded returns tmux #{history_added} as int from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":355,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.HistoryAdded","product":"core","slug":"tmux-formatvalues-historyadded"},{"id":"tmux.FormatValues.HistoryAllBytes","name":"HistoryAllBytes","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) HistoryAllBytes() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"HistoryAllBytes returns tmux #{history_all_bytes} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":358,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.HistoryAllBytes","product":"core","slug":"tmux-formatvalues-historyallbytes"},{"id":"tmux.FormatValues.HistoryBytes","name":"HistoryBytes","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) HistoryBytes() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryBytes returns tmux #{history_bytes} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":363,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.HistoryBytes","product":"core","slug":"tmux-formatvalues-historybytes"},{"id":"tmux.FormatValues.HistoryCollected","name":"HistoryCollected","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) HistoryCollected() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryCollected returns tmux #{history_collected} as int from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":366,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.HistoryCollected","product":"core","slug":"tmux-formatvalues-historycollected"},{"id":"tmux.FormatValues.HistoryGeneration","name":"HistoryGeneration","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) HistoryGeneration() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryGeneration returns tmux #{history_generation} as int from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":369,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.HistoryGeneration","product":"core","slug":"tmux-formatvalues-historygeneration"},{"id":"tmux.FormatValues.HistoryLimit","name":"HistoryLimit","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) HistoryLimit() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryLimit returns tmux #{history_limit} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":372,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.HistoryLimit","product":"core","slug":"tmux-formatvalues-historylimit"},{"id":"tmux.FormatValues.HistorySize","name":"HistorySize","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) HistorySize() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"HistorySize returns tmux #{history_size} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":375,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.HistorySize","product":"core","slug":"tmux-formatvalues-historysize"},{"id":"tmux.FormatValues.Host","name":"Host","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) Host() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"Host returns tmux #{host} as string from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":378,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.Host","product":"core","slug":"tmux-formatvalues-host"},{"id":"tmux.FormatValues.HostShort","name":"HostShort","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) HostShort() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"HostShort returns tmux #{host_short} as string from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":381,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.HostShort","product":"core","slug":"tmux-formatvalues-hostshort"},{"id":"tmux.FormatValues.InsertFlag","name":"InsertFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) InsertFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"InsertFlag returns tmux #{insert_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":384,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.InsertFlag","product":"core","slug":"tmux-formatvalues-insertflag"},{"id":"tmux.FormatValues.KeypadCursorFlag","name":"KeypadCursorFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) KeypadCursorFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"KeypadCursorFlag returns tmux #{keypad_cursor_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":387,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.KeypadCursorFlag","product":"core","slug":"tmux-formatvalues-keypadcursorflag"},{"id":"tmux.FormatValues.KeypadFlag","name":"KeypadFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) KeypadFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"KeypadFlag returns tmux #{keypad_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":390,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.KeypadFlag","product":"core","slug":"tmux-formatvalues-keypadflag"},{"id":"tmux.FormatValues.LastWindowIndex","name":"LastWindowIndex","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) LastWindowIndex() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"LastWindowIndex returns tmux #{last_window_index} as int from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":393,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.LastWindowIndex","product":"core","slug":"tmux-formatvalues-lastwindowindex"},{"id":"tmux.FormatValues.Line","name":"Line","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) Line() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"Line returns tmux #{line} as int from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":396,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.Line","product":"core","slug":"tmux-formatvalues-line"},{"id":"tmux.FormatValues.MouseAllFlag","name":"MouseAllFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) MouseAllFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseAllFlag returns tmux #{mouse_all_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":399,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.MouseAllFlag","product":"core","slug":"tmux-formatvalues-mouseallflag"},{"id":"tmux.FormatValues.MouseAnyFlag","name":"MouseAnyFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) MouseAnyFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseAnyFlag returns tmux #{mouse_any_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":402,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.MouseAnyFlag","product":"core","slug":"tmux-formatvalues-mouseanyflag"},{"id":"tmux.FormatValues.MouseButtonFlag","name":"MouseButtonFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) MouseButtonFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseButtonFlag returns tmux #{mouse_button_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":405,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.MouseButtonFlag","product":"core","slug":"tmux-formatvalues-mousebuttonflag"},{"id":"tmux.FormatValues.MouseSGRFlag","name":"MouseSGRFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) MouseSGRFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseSGRFlag returns tmux #{mouse_sgr_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":408,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.MouseSGRFlag","product":"core","slug":"tmux-formatvalues-mousesgrflag"},{"id":"tmux.FormatValues.MouseStandardFlag","name":"MouseStandardFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) MouseStandardFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseStandardFlag returns tmux #{mouse_standard_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":411,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.MouseStandardFlag","product":"core","slug":"tmux-formatvalues-mousestandardflag"},{"id":"tmux.FormatValues.MouseUTF8Flag","name":"MouseUTF8Flag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) MouseUTF8Flag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseUTF8Flag returns tmux #{mouse_utf8_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":416,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.MouseUTF8Flag","product":"core","slug":"tmux-formatvalues-mouseutf8flag"},{"id":"tmux.FormatValues.NextSessionID","name":"NextSessionID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) NextSessionID() (SessionID, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(SessionID, bool)"}],"doc":{"summary":"NextSessionID returns tmux #{next_session_id} as SessionID from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":419,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.NextSessionID","product":"core","slug":"tmux-formatvalues-nextsessionid"},{"id":"tmux.FormatValues.OriginFlag","name":"OriginFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) OriginFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"OriginFlag returns tmux #{origin_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":424,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.OriginFlag","product":"core","slug":"tmux-formatvalues-originflag"},{"id":"tmux.FormatValues.PaneActive","name":"PaneActive","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneActive() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneActive returns tmux #{pane_active} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":427,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneActive","product":"core","slug":"tmux-formatvalues-paneactive"},{"id":"tmux.FormatValues.PaneAtBottom","name":"PaneAtBottom","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneAtBottom() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneAtBottom returns tmux #{pane_at_bottom} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":430,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneAtBottom","product":"core","slug":"tmux-formatvalues-paneatbottom"},{"id":"tmux.FormatValues.PaneAtLeft","name":"PaneAtLeft","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneAtLeft() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneAtLeft returns tmux #{pane_at_left} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":433,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneAtLeft","product":"core","slug":"tmux-formatvalues-paneatleft"},{"id":"tmux.FormatValues.PaneAtRight","name":"PaneAtRight","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneAtRight() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneAtRight returns tmux #{pane_at_right} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":436,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneAtRight","product":"core","slug":"tmux-formatvalues-paneatright"},{"id":"tmux.FormatValues.PaneAtTop","name":"PaneAtTop","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneAtTop() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneAtTop returns tmux #{pane_at_top} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":439,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneAtTop","product":"core","slug":"tmux-formatvalues-paneattop"},{"id":"tmux.FormatValues.PaneBG","name":"PaneBG","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneBG() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneBG returns tmux #{pane_bg} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":442,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneBG","product":"core","slug":"tmux-formatvalues-panebg"},{"id":"tmux.FormatValues.PaneBottom","name":"PaneBottom","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneBottom() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneBottom returns tmux #{pane_bottom} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":445,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneBottom","product":"core","slug":"tmux-formatvalues-panebottom"},{"id":"tmux.FormatValues.PaneCommandRunning","name":"PaneCommandRunning","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneCommandRunning() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneCommandRunning returns tmux #{pane_command_running} as bool from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":448,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneCommandRunning","product":"core","slug":"tmux-formatvalues-panecommandrunning"},{"id":"tmux.FormatValues.PaneCurrentCommand","name":"PaneCurrentCommand","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneCurrentCommand() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneCurrentCommand returns tmux #{pane_current_command} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":453,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneCurrentCommand","product":"core","slug":"tmux-formatvalues-panecurrentcommand"},{"id":"tmux.FormatValues.PaneCurrentPath","name":"PaneCurrentPath","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneCurrentPath() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneCurrentPath returns tmux #{pane_current_path} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":458,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneCurrentPath","product":"core","slug":"tmux-formatvalues-panecurrentpath"},{"id":"tmux.FormatValues.PaneDead","name":"PaneDead","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneDead() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneDead returns tmux #{pane_dead} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":463,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneDead","product":"core","slug":"tmux-formatvalues-panedead"},{"id":"tmux.FormatValues.PaneDeadSignal","name":"PaneDeadSignal","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneDeadSignal() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneDeadSignal returns tmux #{pane_dead_signal} as string from materialized pane-scoped fields (tmux 3.3 or later)."},"source":{"file":"tmux/format_generated.go","line":466,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneDeadSignal","product":"core","slug":"tmux-formatvalues-panedeadsignal"},{"id":"tmux.FormatValues.PaneDeadStatus","name":"PaneDeadStatus","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneDeadStatus() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneDeadStatus returns tmux #{pane_dead_status} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":469,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneDeadStatus","product":"core","slug":"tmux-formatvalues-panedeadstatus"},{"id":"tmux.FormatValues.PaneDeadTime","name":"PaneDeadTime","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneDeadTime() (time.Time, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(time.Time, bool)"}],"doc":{"summary":"PaneDeadTime returns tmux #{pane_dead_time} as time.Time from materialized pane-scoped fields (tmux 3.3 or later)."},"source":{"file":"tmux/format_generated.go","line":472,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneDeadTime","product":"core","slug":"tmux-formatvalues-panedeadtime"},{"id":"tmux.FormatValues.PaneFG","name":"PaneFG","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneFG() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneFG returns tmux #{pane_fg} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":475,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneFG","product":"core","slug":"tmux-formatvalues-panefg"},{"id":"tmux.FormatValues.PaneFlags","name":"PaneFlags","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneFlags() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneFlags returns tmux #{pane_flags} as string from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":478,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneFlags","product":"core","slug":"tmux-formatvalues-paneflags"},{"id":"tmux.FormatValues.PaneFloatingFlag","name":"PaneFloatingFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneFloatingFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneFloatingFlag returns tmux #{pane_floating_flag} as bool from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":481,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneFloatingFlag","product":"core","slug":"tmux-formatvalues-panefloatingflag"},{"id":"tmux.FormatValues.PaneFormat","name":"PaneFormat","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneFormat() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneFormat returns tmux #{pane_format} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":484,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneFormat","product":"core","slug":"tmux-formatvalues-paneformat"},{"id":"tmux.FormatValues.PaneHeight","name":"PaneHeight","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneHeight() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneHeight returns tmux #{pane_height} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":487,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneHeight","product":"core","slug":"tmux-formatvalues-paneheight"},{"id":"tmux.FormatValues.PaneID","name":"PaneID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneID() (PaneID, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(PaneID, bool)"}],"doc":{"summary":"PaneID returns tmux #{pane_id} as PaneID from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":490,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneID","product":"core","slug":"tmux-formatvalues-paneid"},{"id":"tmux.FormatValues.PaneInMode","name":"PaneInMode","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneInMode() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneInMode returns tmux #{pane_in_mode} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":493,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneInMode","product":"core","slug":"tmux-formatvalues-paneinmode"},{"id":"tmux.FormatValues.PaneIndex","name":"PaneIndex","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneIndex() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneIndex returns tmux #{pane_index} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":496,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneIndex","product":"core","slug":"tmux-formatvalues-paneindex"},{"id":"tmux.FormatValues.PaneInputOff","name":"PaneInputOff","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneInputOff() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneInputOff returns tmux #{pane_input_off} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":499,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneInputOff","product":"core","slug":"tmux-formatvalues-paneinputoff"},{"id":"tmux.FormatValues.PaneKeyMode","name":"PaneKeyMode","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneKeyMode() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneKeyMode returns tmux #{pane_key_mode} as string from materialized pane-scoped fields (tmux 3.5 or later)."},"source":{"file":"tmux/format_generated.go","line":502,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneKeyMode","product":"core","slug":"tmux-formatvalues-panekeymode"},{"id":"tmux.FormatValues.PaneLast","name":"PaneLast","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneLast() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneLast returns tmux #{pane_last} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":505,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneLast","product":"core","slug":"tmux-formatvalues-panelast"},{"id":"tmux.FormatValues.PaneLeft","name":"PaneLeft","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneLeft() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneLeft returns tmux #{pane_left} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":508,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneLeft","product":"core","slug":"tmux-formatvalues-paneleft"},{"id":"tmux.FormatValues.PaneMarked","name":"PaneMarked","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneMarked() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneMarked returns tmux #{pane_marked} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":511,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneMarked","product":"core","slug":"tmux-formatvalues-panemarked"},{"id":"tmux.FormatValues.PaneMarkedSet","name":"PaneMarkedSet","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneMarkedSet() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneMarkedSet returns tmux #{pane_marked_set} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":514,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneMarkedSet","product":"core","slug":"tmux-formatvalues-panemarkedset"},{"id":"tmux.FormatValues.PaneModalFlag","name":"PaneModalFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneModalFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneModalFlag returns tmux #{pane_modal_flag} as bool from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":517,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneModalFlag","product":"core","slug":"tmux-formatvalues-panemodalflag"},{"id":"tmux.FormatValues.PaneMode","name":"PaneMode","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneMode() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneMode returns tmux #{pane_mode} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":520,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneMode","product":"core","slug":"tmux-formatvalues-panemode"},{"id":"tmux.FormatValues.PaneOutputGeneration","name":"PaneOutputGeneration","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneOutputGeneration() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneOutputGeneration returns tmux #{pane_output_generation} as int from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":523,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneOutputGeneration","product":"core","slug":"tmux-formatvalues-paneoutputgeneration"},{"id":"tmux.FormatValues.PanePath","name":"PanePath","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PanePath() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PanePath returns tmux #{pane_path} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":528,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PanePath","product":"core","slug":"tmux-formatvalues-panepath"},{"id":"tmux.FormatValues.PanePBProgress","name":"PanePBProgress","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PanePBProgress() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PanePBProgress returns tmux #{pane_pb_progress} as int from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":531,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PanePBProgress","product":"core","slug":"tmux-formatvalues-panepbprogress"},{"id":"tmux.FormatValues.PanePBState","name":"PanePBState","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PanePBState() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PanePBState returns tmux #{pane_pb_state} as string from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":534,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PanePBState","product":"core","slug":"tmux-formatvalues-panepbstate"},{"id":"tmux.FormatValues.PanePID","name":"PanePID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PanePID() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PanePID returns tmux #{pane_pid} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":537,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PanePID","product":"core","slug":"tmux-formatvalues-panepid"},{"id":"tmux.FormatValues.PanePipe","name":"PanePipe","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PanePipe() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PanePipe returns tmux #{pane_pipe} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":540,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PanePipe","product":"core","slug":"tmux-formatvalues-panepipe"},{"id":"tmux.FormatValues.PanePipePID","name":"PanePipePID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PanePipePID() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PanePipePID returns tmux #{pane_pipe_pid} as int from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":543,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PanePipePID","product":"core","slug":"tmux-formatvalues-panepipepid"},{"id":"tmux.FormatValues.PanePrivateModes","name":"PanePrivateModes","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PanePrivateModes() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PanePrivateModes returns tmux #{pane_private_modes} as string from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":546,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PanePrivateModes","product":"core","slug":"tmux-formatvalues-paneprivatemodes"},{"id":"tmux.FormatValues.PaneRight","name":"PaneRight","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneRight() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneRight returns tmux #{pane_right} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":551,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneRight","product":"core","slug":"tmux-formatvalues-paneright"},{"id":"tmux.FormatValues.PaneSearchString","name":"PaneSearchString","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneSearchString() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneSearchString returns tmux #{pane_search_string} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":554,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneSearchString","product":"core","slug":"tmux-formatvalues-panesearchstring"},{"id":"tmux.FormatValues.PaneStartCommand","name":"PaneStartCommand","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneStartCommand() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneStartCommand returns tmux #{pane_start_command} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":559,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneStartCommand","product":"core","slug":"tmux-formatvalues-panestartcommand"},{"id":"tmux.FormatValues.PaneStartCommandList","name":"PaneStartCommandList","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneStartCommandList() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneStartCommandList returns tmux #{pane_start_command_list} as string from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":564,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneStartCommandList","product":"core","slug":"tmux-formatvalues-panestartcommandlist"},{"id":"tmux.FormatValues.PaneStartPath","name":"PaneStartPath","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneStartPath() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneStartPath returns tmux #{pane_start_path} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":569,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneStartPath","product":"core","slug":"tmux-formatvalues-panestartpath"},{"id":"tmux.FormatValues.PaneSynchronized","name":"PaneSynchronized","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneSynchronized() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneSynchronized returns tmux #{pane_synchronized} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":572,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneSynchronized","product":"core","slug":"tmux-formatvalues-panesynchronized"},{"id":"tmux.FormatValues.PaneTabs","name":"PaneTabs","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneTabs() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneTabs returns tmux #{pane_tabs} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":575,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneTabs","product":"core","slug":"tmux-formatvalues-panetabs"},{"id":"tmux.FormatValues.PaneTitle","name":"PaneTitle","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneTitle() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneTitle returns tmux #{pane_title} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":578,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneTitle","product":"core","slug":"tmux-formatvalues-panetitle"},{"id":"tmux.FormatValues.PaneTop","name":"PaneTop","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneTop() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneTop returns tmux #{pane_top} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":581,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneTop","product":"core","slug":"tmux-formatvalues-panetop"},{"id":"tmux.FormatValues.PaneTTY","name":"PaneTTY","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneTTY() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"PaneTTY returns tmux #{pane_tty} as string from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":584,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneTTY","product":"core","slug":"tmux-formatvalues-panetty"},{"id":"tmux.FormatValues.PaneUnseenChanges","name":"PaneUnseenChanges","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneUnseenChanges() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneUnseenChanges returns tmux #{pane_unseen_changes} as bool from materialized pane-scoped fields (tmux 3.4 or later)."},"source":{"file":"tmux/format_generated.go","line":587,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneUnseenChanges","product":"core","slug":"tmux-formatvalues-paneunseenchanges"},{"id":"tmux.FormatValues.PaneUnzoomedHeight","name":"PaneUnzoomedHeight","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneUnzoomedHeight() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneUnzoomedHeight returns tmux #{pane_unzoomed_height} as int from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":592,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneUnzoomedHeight","product":"core","slug":"tmux-formatvalues-paneunzoomedheight"},{"id":"tmux.FormatValues.PaneUnzoomedWidth","name":"PaneUnzoomedWidth","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneUnzoomedWidth() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneUnzoomedWidth returns tmux #{pane_unzoomed_width} as int from materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":597,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneUnzoomedWidth","product":"core","slug":"tmux-formatvalues-paneunzoomedwidth"},{"id":"tmux.FormatValues.PaneWidth","name":"PaneWidth","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneWidth() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneWidth returns tmux #{pane_width} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":600,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneWidth","product":"core","slug":"tmux-formatvalues-panewidth"},{"id":"tmux.FormatValues.PaneX","name":"PaneX","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneX() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneX returns tmux #{pane_x} as int from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":603,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneX","product":"core","slug":"tmux-formatvalues-panex"},{"id":"tmux.FormatValues.PaneY","name":"PaneY","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneY() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneY returns tmux #{pane_y} as int from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":606,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneY","product":"core","slug":"tmux-formatvalues-paney"},{"id":"tmux.FormatValues.PaneZ","name":"PaneZ","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneZ() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PaneZ returns tmux #{pane_z} as int from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":609,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneZ","product":"core","slug":"tmux-formatvalues-panez"},{"id":"tmux.FormatValues.PaneZoomedFlag","name":"PaneZoomedFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PaneZoomedFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"PaneZoomedFlag returns tmux #{pane_zoomed_flag} as bool from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":612,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PaneZoomedFlag","product":"core","slug":"tmux-formatvalues-panezoomedflag"},{"id":"tmux.FormatValues.PID","name":"PID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) PID() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"PID returns tmux #{pid} as int from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":615,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.PID","product":"core","slug":"tmux-formatvalues-pid"},{"id":"tmux.FormatValues.ScrollRegionLower","name":"ScrollRegionLower","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ScrollRegionLower() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ScrollRegionLower returns tmux #{scroll_region_lower} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":618,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ScrollRegionLower","product":"core","slug":"tmux-formatvalues-scrollregionlower"},{"id":"tmux.FormatValues.ScrollRegionUpper","name":"ScrollRegionUpper","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ScrollRegionUpper() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ScrollRegionUpper returns tmux #{scroll_region_upper} as int from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":621,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ScrollRegionUpper","product":"core","slug":"tmux-formatvalues-scrollregionupper"},{"id":"tmux.FormatValues.ServerSessions","name":"ServerSessions","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) ServerSessions() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"ServerSessions returns tmux #{server_sessions} as int from materialized universal-scoped fields (tmux 3.4 or later)."},"source":{"file":"tmux/format_generated.go","line":624,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.ServerSessions","product":"core","slug":"tmux-formatvalues-serversessions"},{"id":"tmux.FormatValues.SessionActive","name":"SessionActive","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionActive() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SessionActive returns tmux #{session_active} as bool from materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":627,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionActive","product":"core","slug":"tmux-formatvalues-sessionactive"},{"id":"tmux.FormatValues.SessionActivity","name":"SessionActivity","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionActivity() (time.Time, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(time.Time, bool)"}],"doc":{"summary":"SessionActivity returns tmux #{session_activity} as time.Time from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":630,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionActivity","product":"core","slug":"tmux-formatvalues-sessionactivity"},{"id":"tmux.FormatValues.SessionActivityFlag","name":"SessionActivityFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionActivityFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SessionActivityFlag returns tmux #{session_activity_flag} as bool from materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":635,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionActivityFlag","product":"core","slug":"tmux-formatvalues-sessionactivityflag"},{"id":"tmux.FormatValues.SessionAlert","name":"SessionAlert","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionAlert() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SessionAlert returns tmux #{session_alert} as string from materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":640,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionAlert","product":"core","slug":"tmux-formatvalues-sessionalert"},{"id":"tmux.FormatValues.SessionAlerts","name":"SessionAlerts","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionAlerts() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SessionAlerts returns tmux #{session_alerts} as string from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":643,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionAlerts","product":"core","slug":"tmux-formatvalues-sessionalerts"},{"id":"tmux.FormatValues.SessionAttached","name":"SessionAttached","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionAttached() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"SessionAttached returns tmux #{session_attached} as int from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":646,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionAttached","product":"core","slug":"tmux-formatvalues-sessionattached"},{"id":"tmux.FormatValues.SessionAttachedList","name":"SessionAttachedList","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionAttachedList() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SessionAttachedList returns tmux #{session_attached_list} as string from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":649,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionAttachedList","product":"core","slug":"tmux-formatvalues-sessionattachedlist"},{"id":"tmux.FormatValues.SessionBellFlag","name":"SessionBellFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionBellFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SessionBellFlag returns tmux #{session_bell_flag} as bool from materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":654,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionBellFlag","product":"core","slug":"tmux-formatvalues-sessionbellflag"},{"id":"tmux.FormatValues.SessionCreated","name":"SessionCreated","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionCreated() (time.Time, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(time.Time, bool)"}],"doc":{"summary":"SessionCreated returns tmux #{session_created} as time.Time from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":657,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionCreated","product":"core","slug":"tmux-formatvalues-sessioncreated"},{"id":"tmux.FormatValues.SessionFormat","name":"SessionFormat","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionFormat() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SessionFormat returns tmux #{session_format} as bool from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":660,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionFormat","product":"core","slug":"tmux-formatvalues-sessionformat"},{"id":"tmux.FormatValues.SessionGroup","name":"SessionGroup","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionGroup() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SessionGroup returns tmux #{session_group} as string from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":663,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionGroup","product":"core","slug":"tmux-formatvalues-sessiongroup"},{"id":"tmux.FormatValues.SessionGroupAttached","name":"SessionGroupAttached","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionGroupAttached() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"SessionGroupAttached returns tmux #{session_group_attached} as int from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":666,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionGroupAttached","product":"core","slug":"tmux-formatvalues-sessiongroupattached"},{"id":"tmux.FormatValues.SessionGroupAttachedList","name":"SessionGroupAttachedList","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionGroupAttachedList() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SessionGroupAttachedList returns tmux #{session_group_attached_list} as string from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":671,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionGroupAttachedList","product":"core","slug":"tmux-formatvalues-sessiongroupattachedlist"},{"id":"tmux.FormatValues.SessionGroupList","name":"SessionGroupList","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionGroupList() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SessionGroupList returns tmux #{session_group_list} as string from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":676,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionGroupList","product":"core","slug":"tmux-formatvalues-sessiongrouplist"},{"id":"tmux.FormatValues.SessionGroupManyAttached","name":"SessionGroupManyAttached","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionGroupManyAttached() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SessionGroupManyAttached returns tmux #{session_group_many_attached} as bool from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":681,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionGroupManyAttached","product":"core","slug":"tmux-formatvalues-sessiongroupmanyattached"},{"id":"tmux.FormatValues.SessionGroupSize","name":"SessionGroupSize","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionGroupSize() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"SessionGroupSize returns tmux #{session_group_size} as int from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":686,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionGroupSize","product":"core","slug":"tmux-formatvalues-sessiongroupsize"},{"id":"tmux.FormatValues.SessionGrouped","name":"SessionGrouped","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionGrouped() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SessionGrouped returns tmux #{session_grouped} as bool from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":689,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionGrouped","product":"core","slug":"tmux-formatvalues-sessiongrouped"},{"id":"tmux.FormatValues.SessionID","name":"SessionID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionID() (SessionID, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(SessionID, bool)"}],"doc":{"summary":"SessionID returns tmux #{session_id} as SessionID from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":692,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionID","product":"core","slug":"tmux-formatvalues-sessionid"},{"id":"tmux.FormatValues.SessionLastAttached","name":"SessionLastAttached","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionLastAttached() (time.Time, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(time.Time, bool)"}],"doc":{"summary":"SessionLastAttached returns tmux #{session_last_attached} as time.Time from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":695,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionLastAttached","product":"core","slug":"tmux-formatvalues-sessionlastattached"},{"id":"tmux.FormatValues.SessionManyAttached","name":"SessionManyAttached","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionManyAttached() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SessionManyAttached returns tmux #{session_many_attached} as bool from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":700,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionManyAttached","product":"core","slug":"tmux-formatvalues-sessionmanyattached"},{"id":"tmux.FormatValues.SessionMarked","name":"SessionMarked","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionMarked() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SessionMarked returns tmux #{session_marked} as bool from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":705,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionMarked","product":"core","slug":"tmux-formatvalues-sessionmarked"},{"id":"tmux.FormatValues.SessionName","name":"SessionName","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionName() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SessionName returns tmux #{session_name} as string from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":708,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionName","product":"core","slug":"tmux-formatvalues-sessionname"},{"id":"tmux.FormatValues.SessionPath","name":"SessionPath","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionPath() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SessionPath returns tmux #{session_path} as string from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":711,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionPath","product":"core","slug":"tmux-formatvalues-sessionpath"},{"id":"tmux.FormatValues.SessionSilenceFlag","name":"SessionSilenceFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionSilenceFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SessionSilenceFlag returns tmux #{session_silence_flag} as bool from materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":714,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionSilenceFlag","product":"core","slug":"tmux-formatvalues-sessionsilenceflag"},{"id":"tmux.FormatValues.SessionStack","name":"SessionStack","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionStack() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SessionStack returns tmux #{session_stack} as string from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":719,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionStack","product":"core","slug":"tmux-formatvalues-sessionstack"},{"id":"tmux.FormatValues.SessionWindows","name":"SessionWindows","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SessionWindows() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"SessionWindows returns tmux #{session_windows} as int from materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":722,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SessionWindows","product":"core","slug":"tmux-formatvalues-sessionwindows"},{"id":"tmux.FormatValues.SixelSupport","name":"SixelSupport","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SixelSupport() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SixelSupport returns tmux #{sixel_support} as bool from materialized universal-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":725,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SixelSupport","product":"core","slug":"tmux-formatvalues-sixelsupport"},{"id":"tmux.FormatValues.SocketPath","name":"SocketPath","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SocketPath() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"SocketPath returns tmux #{socket_path} as string from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":728,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SocketPath","product":"core","slug":"tmux-formatvalues-socketpath"},{"id":"tmux.FormatValues.StartTime","name":"StartTime","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) StartTime() (time.Time, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(time.Time, bool)"}],"doc":{"summary":"StartTime returns tmux #{start_time} as time.Time from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":731,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.StartTime","product":"core","slug":"tmux-formatvalues-starttime"},{"id":"tmux.FormatValues.SynchronizedOutputFlag","name":"SynchronizedOutputFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) SynchronizedOutputFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"SynchronizedOutputFlag returns tmux #{synchronized_output_flag} as bool from materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":734,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.SynchronizedOutputFlag","product":"core","slug":"tmux-formatvalues-synchronizedoutputflag"},{"id":"tmux.FormatValues.TreeModeFormat","name":"TreeModeFormat","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) TreeModeFormat() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"TreeModeFormat returns tmux #{tree_mode_format} as string from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":739,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.TreeModeFormat","product":"core","slug":"tmux-formatvalues-treemodeformat"},{"id":"tmux.FormatValues.UID","name":"UID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) UID() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"UID returns tmux #{uid} as int from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":742,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.UID","product":"core","slug":"tmux-formatvalues-uid"},{"id":"tmux.FormatValues.User","name":"User","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) User() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"User returns tmux #{user} as string from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":745,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.User","product":"core","slug":"tmux-formatvalues-user"},{"id":"tmux.FormatValues.Version","name":"Version","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) Version() (Version, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(Version, bool)"}],"doc":{"summary":"Version returns tmux #{version} as Version from materialized universal-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":748,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.Version","product":"core","slug":"tmux-formatvalues-version"},{"id":"tmux.FormatValues.WindowActive","name":"WindowActive","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowActive() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowActive returns tmux #{window_active} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":751,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowActive","product":"core","slug":"tmux-formatvalues-windowactive"},{"id":"tmux.FormatValues.WindowActiveClients","name":"WindowActiveClients","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowActiveClients() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowActiveClients returns tmux #{window_active_clients} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":754,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowActiveClients","product":"core","slug":"tmux-formatvalues-windowactiveclients"},{"id":"tmux.FormatValues.WindowActiveClientsList","name":"WindowActiveClientsList","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowActiveClientsList() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"WindowActiveClientsList returns tmux #{window_active_clients_list} as string from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":759,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowActiveClientsList","product":"core","slug":"tmux-formatvalues-windowactiveclientslist"},{"id":"tmux.FormatValues.WindowActiveSessions","name":"WindowActiveSessions","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowActiveSessions() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowActiveSessions returns tmux #{window_active_sessions} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":764,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowActiveSessions","product":"core","slug":"tmux-formatvalues-windowactivesessions"},{"id":"tmux.FormatValues.WindowActiveSessionsList","name":"WindowActiveSessionsList","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowActiveSessionsList() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"WindowActiveSessionsList returns tmux #{window_active_sessions_list} as string from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":769,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowActiveSessionsList","product":"core","slug":"tmux-formatvalues-windowactivesessionslist"},{"id":"tmux.FormatValues.WindowActivity","name":"WindowActivity","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowActivity() (time.Time, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(time.Time, bool)"}],"doc":{"summary":"WindowActivity returns tmux #{window_activity} as time.Time from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":774,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowActivity","product":"core","slug":"tmux-formatvalues-windowactivity"},{"id":"tmux.FormatValues.WindowActivityFlag","name":"WindowActivityFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowActivityFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowActivityFlag returns tmux #{window_activity_flag} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":777,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowActivityFlag","product":"core","slug":"tmux-formatvalues-windowactivityflag"},{"id":"tmux.FormatValues.WindowBellFlag","name":"WindowBellFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowBellFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowBellFlag returns tmux #{window_bell_flag} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":782,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowBellFlag","product":"core","slug":"tmux-formatvalues-windowbellflag"},{"id":"tmux.FormatValues.WindowBigger","name":"WindowBigger","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowBigger() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowBigger returns tmux #{window_bigger} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":785,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowBigger","product":"core","slug":"tmux-formatvalues-windowbigger"},{"id":"tmux.FormatValues.WindowCellHeight","name":"WindowCellHeight","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowCellHeight() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowCellHeight returns tmux #{window_cell_height} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":788,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowCellHeight","product":"core","slug":"tmux-formatvalues-windowcellheight"},{"id":"tmux.FormatValues.WindowCellWidth","name":"WindowCellWidth","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowCellWidth() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowCellWidth returns tmux #{window_cell_width} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":791,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowCellWidth","product":"core","slug":"tmux-formatvalues-windowcellwidth"},{"id":"tmux.FormatValues.WindowEndFlag","name":"WindowEndFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowEndFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowEndFlag returns tmux #{window_end_flag} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":794,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowEndFlag","product":"core","slug":"tmux-formatvalues-windowendflag"},{"id":"tmux.FormatValues.WindowFlags","name":"WindowFlags","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowFlags() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"WindowFlags returns tmux #{window_flags} as string from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":797,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowFlags","product":"core","slug":"tmux-formatvalues-windowflags"},{"id":"tmux.FormatValues.WindowFormat","name":"WindowFormat","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowFormat() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowFormat returns tmux #{window_format} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":800,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowFormat","product":"core","slug":"tmux-formatvalues-windowformat"},{"id":"tmux.FormatValues.WindowHeight","name":"WindowHeight","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowHeight() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowHeight returns tmux #{window_height} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":803,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowHeight","product":"core","slug":"tmux-formatvalues-windowheight"},{"id":"tmux.FormatValues.WindowID","name":"WindowID","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowID() (WindowID, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(WindowID, bool)"}],"doc":{"summary":"WindowID returns tmux #{window_id} as WindowID from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":806,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowID","product":"core","slug":"tmux-formatvalues-windowid"},{"id":"tmux.FormatValues.WindowIndex","name":"WindowIndex","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowIndex() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowIndex returns tmux #{window_index} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":809,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowIndex","product":"core","slug":"tmux-formatvalues-windowindex"},{"id":"tmux.FormatValues.WindowLastFlag","name":"WindowLastFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowLastFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowLastFlag returns tmux #{window_last_flag} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":812,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowLastFlag","product":"core","slug":"tmux-formatvalues-windowlastflag"},{"id":"tmux.FormatValues.WindowLayout","name":"WindowLayout","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowLayout() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"WindowLayout returns tmux #{window_layout} as string from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":815,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowLayout","product":"core","slug":"tmux-formatvalues-windowlayout"},{"id":"tmux.FormatValues.WindowLinked","name":"WindowLinked","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowLinked() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowLinked returns tmux #{window_linked} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":818,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowLinked","product":"core","slug":"tmux-formatvalues-windowlinked"},{"id":"tmux.FormatValues.WindowLinkedSessions","name":"WindowLinkedSessions","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowLinkedSessions() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowLinkedSessions returns tmux #{window_linked_sessions} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":821,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowLinkedSessions","product":"core","slug":"tmux-formatvalues-windowlinkedsessions"},{"id":"tmux.FormatValues.WindowLinkedSessionsList","name":"WindowLinkedSessionsList","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowLinkedSessionsList() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"WindowLinkedSessionsList returns tmux #{window_linked_sessions_list} as string from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":826,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowLinkedSessionsList","product":"core","slug":"tmux-formatvalues-windowlinkedsessionslist"},{"id":"tmux.FormatValues.WindowManualHeight","name":"WindowManualHeight","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowManualHeight() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowManualHeight returns tmux #{window_manual_height} as int from materialized window-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":831,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowManualHeight","product":"core","slug":"tmux-formatvalues-windowmanualheight"},{"id":"tmux.FormatValues.WindowManualWidth","name":"WindowManualWidth","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowManualWidth() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowManualWidth returns tmux #{window_manual_width} as int from materialized window-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":836,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowManualWidth","product":"core","slug":"tmux-formatvalues-windowmanualwidth"},{"id":"tmux.FormatValues.WindowMarkedFlag","name":"WindowMarkedFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowMarkedFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowMarkedFlag returns tmux #{window_marked_flag} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":839,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowMarkedFlag","product":"core","slug":"tmux-formatvalues-windowmarkedflag"},{"id":"tmux.FormatValues.WindowName","name":"WindowName","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowName() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"WindowName returns tmux #{window_name} as string from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":842,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowName","product":"core","slug":"tmux-formatvalues-windowname"},{"id":"tmux.FormatValues.WindowOffsetX","name":"WindowOffsetX","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowOffsetX() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowOffsetX returns tmux #{window_offset_x} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":845,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowOffsetX","product":"core","slug":"tmux-formatvalues-windowoffsetx"},{"id":"tmux.FormatValues.WindowOffsetY","name":"WindowOffsetY","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowOffsetY() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowOffsetY returns tmux #{window_offset_y} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":848,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowOffsetY","product":"core","slug":"tmux-formatvalues-windowoffsety"},{"id":"tmux.FormatValues.WindowPanes","name":"WindowPanes","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowPanes() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowPanes returns tmux #{window_panes} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":851,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowPanes","product":"core","slug":"tmux-formatvalues-windowpanes"},{"id":"tmux.FormatValues.WindowRawFlags","name":"WindowRawFlags","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowRawFlags() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"WindowRawFlags returns tmux #{window_raw_flags} as string from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":854,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowRawFlags","product":"core","slug":"tmux-formatvalues-windowrawflags"},{"id":"tmux.FormatValues.WindowSilenceFlag","name":"WindowSilenceFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowSilenceFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowSilenceFlag returns tmux #{window_silence_flag} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":857,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowSilenceFlag","product":"core","slug":"tmux-formatvalues-windowsilenceflag"},{"id":"tmux.FormatValues.WindowStackIndex","name":"WindowStackIndex","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowStackIndex() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowStackIndex returns tmux #{window_stack_index} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":862,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowStackIndex","product":"core","slug":"tmux-formatvalues-windowstackindex"},{"id":"tmux.FormatValues.WindowStartFlag","name":"WindowStartFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowStartFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowStartFlag returns tmux #{window_start_flag} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":865,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowStartFlag","product":"core","slug":"tmux-formatvalues-windowstartflag"},{"id":"tmux.FormatValues.WindowVisibleLayout","name":"WindowVisibleLayout","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowVisibleLayout() (string, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(string, bool)"}],"doc":{"summary":"WindowVisibleLayout returns tmux #{window_visible_layout} as string from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":868,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowVisibleLayout","product":"core","slug":"tmux-formatvalues-windowvisiblelayout"},{"id":"tmux.FormatValues.WindowWidth","name":"WindowWidth","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowWidth() (int, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(int, bool)"}],"doc":{"summary":"WindowWidth returns tmux #{window_width} as int from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":873,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowWidth","product":"core","slug":"tmux-formatvalues-windowwidth"},{"id":"tmux.FormatValues.WindowZoomedFlag","name":"WindowZoomedFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WindowZoomedFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WindowZoomedFlag returns tmux #{window_zoomed_flag} as bool from materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":876,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WindowZoomedFlag","product":"core","slug":"tmux-formatvalues-windowzoomedflag"},{"id":"tmux.FormatValues.WrapFlag","name":"WrapFlag","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) WrapFlag() (bool, bool)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"(bool, bool)"}],"doc":{"summary":"WrapFlag returns tmux #{wrap_flag} as bool from materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":879,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.WrapFlag","product":"core","slug":"tmux-formatvalues-wrapflag"},{"id":"tmux.Session.ActiveWindowIndex","name":"ActiveWindowIndex","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) ActiveWindowIndex() (int, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(int, bool)"}],"doc":{"summary":"ActiveWindowIndex returns tmux #{active_window_index} as int from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":882,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.ActiveWindowIndex","product":"core","slug":"tmux-session-activewindowindex"},{"id":"tmux.Session.LastWindowIndex","name":"LastWindowIndex","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) LastWindowIndex() (int, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(int, bool)"}],"doc":{"summary":"LastWindowIndex returns tmux #{last_window_index} as int from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":885,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.LastWindowIndex","product":"core","slug":"tmux-session-lastwindowindex"},{"id":"tmux.Session.Active","name":"Active","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Active() (bool, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(bool, bool)"}],"doc":{"summary":"Active returns tmux #{session_active} as bool from this Session's materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":888,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Active","product":"core","slug":"tmux-session-active"},{"id":"tmux.Session.Activity","name":"Activity","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Activity() (time.Time, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(time.Time, bool)"}],"doc":{"summary":"Activity returns tmux #{session_activity} as time.Time from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":891,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Activity","product":"core","slug":"tmux-session-activity"},{"id":"tmux.Session.ActivityFlag","name":"ActivityFlag","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) ActivityFlag() (bool, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(bool, bool)"}],"doc":{"summary":"ActivityFlag returns tmux #{session_activity_flag} as bool from this Session's materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":894,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.ActivityFlag","product":"core","slug":"tmux-session-activityflag"},{"id":"tmux.Session.Alert","name":"Alert","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Alert() (string, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool)"}],"doc":{"summary":"Alert returns tmux #{session_alert} as string from this Session's materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":897,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Alert","product":"core","slug":"tmux-session-alert"},{"id":"tmux.Session.Alerts","name":"Alerts","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Alerts() (string, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool)"}],"doc":{"summary":"Alerts returns tmux #{session_alerts} as string from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":900,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Alerts","product":"core","slug":"tmux-session-alerts"},{"id":"tmux.Session.Attached","name":"Attached","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Attached() (int, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(int, bool)"}],"doc":{"summary":"Attached returns tmux #{session_attached} as int from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":903,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Attached","product":"core","slug":"tmux-session-attached"},{"id":"tmux.Session.AttachedList","name":"AttachedList","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) AttachedList() (string, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool)"}],"doc":{"summary":"AttachedList returns tmux #{session_attached_list} as string from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":906,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.AttachedList","product":"core","slug":"tmux-session-attachedlist"},{"id":"tmux.Session.BellFlag","name":"BellFlag","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) BellFlag() (bool, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(bool, bool)"}],"doc":{"summary":"BellFlag returns tmux #{session_bell_flag} as bool from this Session's materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":909,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.BellFlag","product":"core","slug":"tmux-session-bellflag"},{"id":"tmux.Session.Created","name":"Created","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Created() (time.Time, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(time.Time, bool)"}],"doc":{"summary":"Created returns tmux #{session_created} as time.Time from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":912,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Created","product":"core","slug":"tmux-session-created"},{"id":"tmux.Session.Format","name":"Format","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Format() (bool, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(bool, bool)"}],"doc":{"summary":"Format returns tmux #{session_format} as bool from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":915,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Format","product":"core","slug":"tmux-session-format"},{"id":"tmux.Session.Group","name":"Group","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Group() (string, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool)"}],"doc":{"summary":"Group returns tmux #{session_group} as string from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":918,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Group","product":"core","slug":"tmux-session-group"},{"id":"tmux.Session.GroupAttached","name":"GroupAttached","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) GroupAttached() (int, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(int, bool)"}],"doc":{"summary":"GroupAttached returns tmux #{session_group_attached} as int from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":921,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.GroupAttached","product":"core","slug":"tmux-session-groupattached"},{"id":"tmux.Session.GroupAttachedList","name":"GroupAttachedList","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) GroupAttachedList() (string, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool)"}],"doc":{"summary":"GroupAttachedList returns tmux #{session_group_attached_list} as string from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":924,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.GroupAttachedList","product":"core","slug":"tmux-session-groupattachedlist"},{"id":"tmux.Session.GroupList","name":"GroupList","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) GroupList() (string, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool)"}],"doc":{"summary":"GroupList returns tmux #{session_group_list} as string from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":929,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.GroupList","product":"core","slug":"tmux-session-grouplist"},{"id":"tmux.Session.GroupManyAttached","name":"GroupManyAttached","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) GroupManyAttached() (bool, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(bool, bool)"}],"doc":{"summary":"GroupManyAttached returns tmux #{session_group_many_attached} as bool from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":932,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.GroupManyAttached","product":"core","slug":"tmux-session-groupmanyattached"},{"id":"tmux.Session.GroupSize","name":"GroupSize","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) GroupSize() (int, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(int, bool)"}],"doc":{"summary":"GroupSize returns tmux #{session_group_size} as int from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":937,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.GroupSize","product":"core","slug":"tmux-session-groupsize"},{"id":"tmux.Session.Grouped","name":"Grouped","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Grouped() (bool, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(bool, bool)"}],"doc":{"summary":"Grouped returns tmux #{session_grouped} as bool from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":940,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Grouped","product":"core","slug":"tmux-session-grouped"},{"id":"tmux.Session.LastAttached","name":"LastAttached","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) LastAttached() (time.Time, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(time.Time, bool)"}],"doc":{"summary":"LastAttached returns tmux #{session_last_attached} as time.Time from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":943,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.LastAttached","product":"core","slug":"tmux-session-lastattached"},{"id":"tmux.Session.ManyAttached","name":"ManyAttached","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) ManyAttached() (bool, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(bool, bool)"}],"doc":{"summary":"ManyAttached returns tmux #{session_many_attached} as bool from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":946,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.ManyAttached","product":"core","slug":"tmux-session-manyattached"},{"id":"tmux.Session.Marked","name":"Marked","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Marked() (bool, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(bool, bool)"}],"doc":{"summary":"Marked returns tmux #{session_marked} as bool from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":949,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Marked","product":"core","slug":"tmux-session-marked"},{"id":"tmux.Session.Name","name":"Name","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Name() (string, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool)"}],"doc":{"summary":"Name returns tmux #{session_name} as string from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":952,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Name","product":"core","slug":"tmux-session-name"},{"id":"tmux.Session.Path","name":"Path","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Path() (string, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool)"}],"doc":{"summary":"Path returns tmux #{session_path} as string from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":955,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Path","product":"core","slug":"tmux-session-path"},{"id":"tmux.Session.SilenceFlag","name":"SilenceFlag","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SilenceFlag() (bool, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(bool, bool)"}],"doc":{"summary":"SilenceFlag returns tmux #{session_silence_flag} as bool from this Session's materialized session-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":958,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SilenceFlag","product":"core","slug":"tmux-session-silenceflag"},{"id":"tmux.Session.Stack","name":"Stack","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Stack() (string, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool)"}],"doc":{"summary":"Stack returns tmux #{session_stack} as string from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":961,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Stack","product":"core","slug":"tmux-session-stack"},{"id":"tmux.Session.WindowCount","name":"WindowCount","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) WindowCount() (int, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(int, bool)"}],"doc":{"summary":"WindowCount returns tmux #{session_windows} as int from this Session's materialized session-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":964,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.WindowCount","product":"core","slug":"tmux-session-windowcount"},{"id":"tmux.Window.Active","name":"Active","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Active() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"Active returns tmux #{window_active} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":967,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Active","product":"core","slug":"tmux-window-active"},{"id":"tmux.Window.ActiveClients","name":"ActiveClients","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ActiveClients() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"ActiveClients returns tmux #{window_active_clients} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":970,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ActiveClients","product":"core","slug":"tmux-window-activeclients"},{"id":"tmux.Window.ActiveClientsList","name":"ActiveClientsList","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ActiveClientsList() (string, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool)"}],"doc":{"summary":"ActiveClientsList returns tmux #{window_active_clients_list} as string from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":973,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ActiveClientsList","product":"core","slug":"tmux-window-activeclientslist"},{"id":"tmux.Window.ActiveSessions","name":"ActiveSessions","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ActiveSessions() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"ActiveSessions returns tmux #{window_active_sessions} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":978,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ActiveSessions","product":"core","slug":"tmux-window-activesessions"},{"id":"tmux.Window.ActiveSessionsList","name":"ActiveSessionsList","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ActiveSessionsList() (string, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool)"}],"doc":{"summary":"ActiveSessionsList returns tmux #{window_active_sessions_list} as string from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":981,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ActiveSessionsList","product":"core","slug":"tmux-window-activesessionslist"},{"id":"tmux.Window.Activity","name":"Activity","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Activity() (time.Time, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(time.Time, bool)"}],"doc":{"summary":"Activity returns tmux #{window_activity} as time.Time from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":986,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Activity","product":"core","slug":"tmux-window-activity"},{"id":"tmux.Window.ActivityFlag","name":"ActivityFlag","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ActivityFlag() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"ActivityFlag returns tmux #{window_activity_flag} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":989,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ActivityFlag","product":"core","slug":"tmux-window-activityflag"},{"id":"tmux.Window.BellFlag","name":"BellFlag","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) BellFlag() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"BellFlag returns tmux #{window_bell_flag} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":992,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.BellFlag","product":"core","slug":"tmux-window-bellflag"},{"id":"tmux.Window.Bigger","name":"Bigger","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Bigger() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"Bigger returns tmux #{window_bigger} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":995,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Bigger","product":"core","slug":"tmux-window-bigger"},{"id":"tmux.Window.CellHeight","name":"CellHeight","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) CellHeight() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"CellHeight returns tmux #{window_cell_height} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":998,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.CellHeight","product":"core","slug":"tmux-window-cellheight"},{"id":"tmux.Window.CellWidth","name":"CellWidth","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) CellWidth() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"CellWidth returns tmux #{window_cell_width} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1001,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.CellWidth","product":"core","slug":"tmux-window-cellwidth"},{"id":"tmux.Window.EndFlag","name":"EndFlag","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) EndFlag() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"EndFlag returns tmux #{window_end_flag} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1004,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.EndFlag","product":"core","slug":"tmux-window-endflag"},{"id":"tmux.Window.Flags","name":"Flags","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Flags() (string, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool)"}],"doc":{"summary":"Flags returns tmux #{window_flags} as string from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1007,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Flags","product":"core","slug":"tmux-window-flags"},{"id":"tmux.Window.Format","name":"Format","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Format() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"Format returns tmux #{window_format} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1010,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Format","product":"core","slug":"tmux-window-format"},{"id":"tmux.Window.Height","name":"Height","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Height() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"Height returns tmux #{window_height} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1013,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Height","product":"core","slug":"tmux-window-height"},{"id":"tmux.Window.LastFlag","name":"LastFlag","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) LastFlag() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"LastFlag returns tmux #{window_last_flag} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1016,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.LastFlag","product":"core","slug":"tmux-window-lastflag"},{"id":"tmux.Window.Layout","name":"Layout","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Layout() (string, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool)"}],"doc":{"summary":"Layout returns tmux #{window_layout} as string from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1019,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Layout","product":"core","slug":"tmux-window-layout"},{"id":"tmux.Window.Linked","name":"Linked","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Linked() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"Linked returns tmux #{window_linked} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1022,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Linked","product":"core","slug":"tmux-window-linked"},{"id":"tmux.Window.LinkedSessionCount","name":"LinkedSessionCount","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) LinkedSessionCount() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"LinkedSessionCount returns tmux #{window_linked_sessions} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1025,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.LinkedSessionCount","product":"core","slug":"tmux-window-linkedsessioncount"},{"id":"tmux.Window.LinkedSessionsList","name":"LinkedSessionsList","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) LinkedSessionsList() (string, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool)"}],"doc":{"summary":"LinkedSessionsList returns tmux #{window_linked_sessions_list} as string from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1028,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.LinkedSessionsList","product":"core","slug":"tmux-window-linkedsessionslist"},{"id":"tmux.Window.ManualHeight","name":"ManualHeight","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ManualHeight() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"ManualHeight returns tmux #{window_manual_height} as int from this Window's materialized window-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1033,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ManualHeight","product":"core","slug":"tmux-window-manualheight"},{"id":"tmux.Window.ManualWidth","name":"ManualWidth","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ManualWidth() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"ManualWidth returns tmux #{window_manual_width} as int from this Window's materialized window-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1036,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ManualWidth","product":"core","slug":"tmux-window-manualwidth"},{"id":"tmux.Window.MarkedFlag","name":"MarkedFlag","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) MarkedFlag() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"MarkedFlag returns tmux #{window_marked_flag} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1039,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.MarkedFlag","product":"core","slug":"tmux-window-markedflag"},{"id":"tmux.Window.Name","name":"Name","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Name() (string, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool)"}],"doc":{"summary":"Name returns tmux #{window_name} as string from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1042,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Name","product":"core","slug":"tmux-window-name"},{"id":"tmux.Window.OffsetX","name":"OffsetX","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) OffsetX() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"OffsetX returns tmux #{window_offset_x} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1045,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.OffsetX","product":"core","slug":"tmux-window-offsetx"},{"id":"tmux.Window.OffsetY","name":"OffsetY","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) OffsetY() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"OffsetY returns tmux #{window_offset_y} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1048,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.OffsetY","product":"core","slug":"tmux-window-offsety"},{"id":"tmux.Window.PaneCount","name":"PaneCount","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) PaneCount() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"PaneCount returns tmux #{window_panes} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1051,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.PaneCount","product":"core","slug":"tmux-window-panecount"},{"id":"tmux.Window.RawFlags","name":"RawFlags","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) RawFlags() (string, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool)"}],"doc":{"summary":"RawFlags returns tmux #{window_raw_flags} as string from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1054,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.RawFlags","product":"core","slug":"tmux-window-rawflags"},{"id":"tmux.Window.SilenceFlag","name":"SilenceFlag","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SilenceFlag() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"SilenceFlag returns tmux #{window_silence_flag} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1057,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SilenceFlag","product":"core","slug":"tmux-window-silenceflag"},{"id":"tmux.Window.StackIndex","name":"StackIndex","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) StackIndex() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"StackIndex returns tmux #{window_stack_index} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1060,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.StackIndex","product":"core","slug":"tmux-window-stackindex"},{"id":"tmux.Window.StartFlag","name":"StartFlag","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) StartFlag() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"StartFlag returns tmux #{window_start_flag} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1063,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.StartFlag","product":"core","slug":"tmux-window-startflag"},{"id":"tmux.Window.VisibleLayout","name":"VisibleLayout","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) VisibleLayout() (string, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool)"}],"doc":{"summary":"VisibleLayout returns tmux #{window_visible_layout} as string from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1066,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.VisibleLayout","product":"core","slug":"tmux-window-visiblelayout"},{"id":"tmux.Window.Width","name":"Width","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Width() (int, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(int, bool)"}],"doc":{"summary":"Width returns tmux #{window_width} as int from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1069,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Width","product":"core","slug":"tmux-window-width"},{"id":"tmux.Window.ZoomedFlag","name":"ZoomedFlag","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ZoomedFlag() (bool, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(bool, bool)"}],"doc":{"summary":"ZoomedFlag returns tmux #{window_zoomed_flag} as bool from this Window's materialized window-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1072,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ZoomedFlag","product":"core","slug":"tmux-window-zoomedflag"},{"id":"tmux.Pane.AlternateOn","name":"AlternateOn","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) AlternateOn() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"AlternateOn returns tmux #{alternate_on} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1075,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.AlternateOn","product":"core","slug":"tmux-pane-alternateon"},{"id":"tmux.Pane.AlternateSavedX","name":"AlternateSavedX","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) AlternateSavedX() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"AlternateSavedX returns tmux #{alternate_saved_x} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1078,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.AlternateSavedX","product":"core","slug":"tmux-pane-alternatesavedx"},{"id":"tmux.Pane.AlternateSavedY","name":"AlternateSavedY","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) AlternateSavedY() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"AlternateSavedY returns tmux #{alternate_saved_y} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1081,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.AlternateSavedY","product":"core","slug":"tmux-pane-alternatesavedy"},{"id":"tmux.Pane.BracketPasteFlag","name":"BracketPasteFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) BracketPasteFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"BracketPasteFlag returns tmux #{bracket_paste_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1084,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.BracketPasteFlag","product":"core","slug":"tmux-pane-bracketpasteflag"},{"id":"tmux.Pane.CursorBlinking","name":"CursorBlinking","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CursorBlinking() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"CursorBlinking returns tmux #{cursor_blinking} as bool from this Pane's materialized pane-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":1087,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CursorBlinking","product":"core","slug":"tmux-pane-cursorblinking"},{"id":"tmux.Pane.CursorCharacter","name":"CursorCharacter","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CursorCharacter() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"CursorCharacter returns tmux #{cursor_character} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1090,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CursorCharacter","product":"core","slug":"tmux-pane-cursorcharacter"},{"id":"tmux.Pane.CursorColour","name":"CursorColour","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CursorColour() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"CursorColour returns tmux #{cursor_colour} as string from this Pane's materialized pane-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":1093,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CursorColour","product":"core","slug":"tmux-pane-cursorcolour"},{"id":"tmux.Pane.CursorFlag","name":"CursorFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CursorFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"CursorFlag returns tmux #{cursor_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1096,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CursorFlag","product":"core","slug":"tmux-pane-cursorflag"},{"id":"tmux.Pane.CursorShape","name":"CursorShape","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CursorShape() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"CursorShape returns tmux #{cursor_shape} as string from this Pane's materialized pane-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":1099,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CursorShape","product":"core","slug":"tmux-pane-cursorshape"},{"id":"tmux.Pane.CursorVeryVisible","name":"CursorVeryVisible","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CursorVeryVisible() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"CursorVeryVisible returns tmux #{cursor_very_visible} as bool from this Pane's materialized pane-scoped fields (tmux 3.6 or later)."},"source":{"file":"tmux/format_generated.go","line":1102,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CursorVeryVisible","product":"core","slug":"tmux-pane-cursorveryvisible"},{"id":"tmux.Pane.CursorX","name":"CursorX","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CursorX() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"CursorX returns tmux #{cursor_x} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1105,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CursorX","product":"core","slug":"tmux-pane-cursorx"},{"id":"tmux.Pane.CursorY","name":"CursorY","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CursorY() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"CursorY returns tmux #{cursor_y} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CursorY","product":"core","slug":"tmux-pane-cursory"},{"id":"tmux.Pane.HistoryAdded","name":"HistoryAdded","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) HistoryAdded() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryAdded returns tmux #{history_added} as int from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.HistoryAdded","product":"core","slug":"tmux-pane-historyadded"},{"id":"tmux.Pane.HistoryAllBytes","name":"HistoryAllBytes","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) HistoryAllBytes() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"HistoryAllBytes returns tmux #{history_all_bytes} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1114,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.HistoryAllBytes","product":"core","slug":"tmux-pane-historyallbytes"},{"id":"tmux.Pane.HistoryBytes","name":"HistoryBytes","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) HistoryBytes() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryBytes returns tmux #{history_bytes} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1117,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.HistoryBytes","product":"core","slug":"tmux-pane-historybytes"},{"id":"tmux.Pane.HistoryCollected","name":"HistoryCollected","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) HistoryCollected() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryCollected returns tmux #{history_collected} as int from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1120,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.HistoryCollected","product":"core","slug":"tmux-pane-historycollected"},{"id":"tmux.Pane.HistoryGeneration","name":"HistoryGeneration","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) HistoryGeneration() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryGeneration returns tmux #{history_generation} as int from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1123,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.HistoryGeneration","product":"core","slug":"tmux-pane-historygeneration"},{"id":"tmux.Pane.HistoryLimit","name":"HistoryLimit","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) HistoryLimit() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"HistoryLimit returns tmux #{history_limit} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1126,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.HistoryLimit","product":"core","slug":"tmux-pane-historylimit"},{"id":"tmux.Pane.HistorySize","name":"HistorySize","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) HistorySize() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"HistorySize returns tmux #{history_size} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1129,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.HistorySize","product":"core","slug":"tmux-pane-historysize"},{"id":"tmux.Pane.InsertFlag","name":"InsertFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) InsertFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"InsertFlag returns tmux #{insert_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1132,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.InsertFlag","product":"core","slug":"tmux-pane-insertflag"},{"id":"tmux.Pane.KeypadCursorFlag","name":"KeypadCursorFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) KeypadCursorFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"KeypadCursorFlag returns tmux #{keypad_cursor_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1135,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.KeypadCursorFlag","product":"core","slug":"tmux-pane-keypadcursorflag"},{"id":"tmux.Pane.KeypadFlag","name":"KeypadFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) KeypadFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"KeypadFlag returns tmux #{keypad_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1138,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.KeypadFlag","product":"core","slug":"tmux-pane-keypadflag"},{"id":"tmux.Pane.MouseAllFlag","name":"MouseAllFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) MouseAllFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseAllFlag returns tmux #{mouse_all_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1141,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.MouseAllFlag","product":"core","slug":"tmux-pane-mouseallflag"},{"id":"tmux.Pane.MouseAnyFlag","name":"MouseAnyFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) MouseAnyFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseAnyFlag returns tmux #{mouse_any_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1144,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.MouseAnyFlag","product":"core","slug":"tmux-pane-mouseanyflag"},{"id":"tmux.Pane.MouseButtonFlag","name":"MouseButtonFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) MouseButtonFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseButtonFlag returns tmux #{mouse_button_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1147,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.MouseButtonFlag","product":"core","slug":"tmux-pane-mousebuttonflag"},{"id":"tmux.Pane.MouseSGRFlag","name":"MouseSGRFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) MouseSGRFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseSGRFlag returns tmux #{mouse_sgr_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1150,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.MouseSGRFlag","product":"core","slug":"tmux-pane-mousesgrflag"},{"id":"tmux.Pane.MouseStandardFlag","name":"MouseStandardFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) MouseStandardFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseStandardFlag returns tmux #{mouse_standard_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1153,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.MouseStandardFlag","product":"core","slug":"tmux-pane-mousestandardflag"},{"id":"tmux.Pane.MouseUTF8Flag","name":"MouseUTF8Flag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) MouseUTF8Flag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"MouseUTF8Flag returns tmux #{mouse_utf8_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1156,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.MouseUTF8Flag","product":"core","slug":"tmux-pane-mouseutf8flag"},{"id":"tmux.Pane.OriginFlag","name":"OriginFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) OriginFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"OriginFlag returns tmux #{origin_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1159,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.OriginFlag","product":"core","slug":"tmux-pane-originflag"},{"id":"tmux.Pane.Active","name":"Active","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Active() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"Active returns tmux #{pane_active} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1162,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Active","product":"core","slug":"tmux-pane-active"},{"id":"tmux.Pane.AtBottom","name":"AtBottom","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) AtBottom() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"AtBottom returns tmux #{pane_at_bottom} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1165,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.AtBottom","product":"core","slug":"tmux-pane-atbottom"},{"id":"tmux.Pane.AtLeft","name":"AtLeft","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) AtLeft() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"AtLeft returns tmux #{pane_at_left} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1168,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.AtLeft","product":"core","slug":"tmux-pane-atleft"},{"id":"tmux.Pane.AtRight","name":"AtRight","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) AtRight() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"AtRight returns tmux #{pane_at_right} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1171,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.AtRight","product":"core","slug":"tmux-pane-atright"},{"id":"tmux.Pane.AtTop","name":"AtTop","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) AtTop() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"AtTop returns tmux #{pane_at_top} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1174,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.AtTop","product":"core","slug":"tmux-pane-attop"},{"id":"tmux.Pane.BG","name":"BG","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) BG() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"BG returns tmux #{pane_bg} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1177,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.BG","product":"core","slug":"tmux-pane-bg"},{"id":"tmux.Pane.Bottom","name":"Bottom","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Bottom() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"Bottom returns tmux #{pane_bottom} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1180,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Bottom","product":"core","slug":"tmux-pane-bottom"},{"id":"tmux.Pane.CommandRunning","name":"CommandRunning","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CommandRunning() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"CommandRunning returns tmux #{pane_command_running} as bool from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1183,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CommandRunning","product":"core","slug":"tmux-pane-commandrunning"},{"id":"tmux.Pane.CurrentCommand","name":"CurrentCommand","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CurrentCommand() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"CurrentCommand returns tmux #{pane_current_command} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1186,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CurrentCommand","product":"core","slug":"tmux-pane-currentcommand"},{"id":"tmux.Pane.CurrentPath","name":"CurrentPath","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CurrentPath() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"CurrentPath returns tmux #{pane_current_path} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1189,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CurrentPath","product":"core","slug":"tmux-pane-currentpath"},{"id":"tmux.Pane.Dead","name":"Dead","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Dead() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"Dead returns tmux #{pane_dead} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1192,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Dead","product":"core","slug":"tmux-pane-dead"},{"id":"tmux.Pane.DeadSignal","name":"DeadSignal","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) DeadSignal() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"DeadSignal returns tmux #{pane_dead_signal} as string from this Pane's materialized pane-scoped fields (tmux 3.3 or later)."},"source":{"file":"tmux/format_generated.go","line":1195,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.DeadSignal","product":"core","slug":"tmux-pane-deadsignal"},{"id":"tmux.Pane.DeadStatus","name":"DeadStatus","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) DeadStatus() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"DeadStatus returns tmux #{pane_dead_status} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1198,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.DeadStatus","product":"core","slug":"tmux-pane-deadstatus"},{"id":"tmux.Pane.DeadTime","name":"DeadTime","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) DeadTime() (time.Time, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(time.Time, bool)"}],"doc":{"summary":"DeadTime returns tmux #{pane_dead_time} as time.Time from this Pane's materialized pane-scoped fields (tmux 3.3 or later)."},"source":{"file":"tmux/format_generated.go","line":1201,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.DeadTime","product":"core","slug":"tmux-pane-deadtime"},{"id":"tmux.Pane.FG","name":"FG","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) FG() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"FG returns tmux #{pane_fg} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1204,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.FG","product":"core","slug":"tmux-pane-fg"},{"id":"tmux.Pane.Flags","name":"Flags","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Flags() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"Flags returns tmux #{pane_flags} as string from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1207,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Flags","product":"core","slug":"tmux-pane-flags"},{"id":"tmux.Pane.FloatingFlag","name":"FloatingFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) FloatingFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"FloatingFlag returns tmux #{pane_floating_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1210,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.FloatingFlag","product":"core","slug":"tmux-pane-floatingflag"},{"id":"tmux.Pane.Format","name":"Format","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Format() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"Format returns tmux #{pane_format} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1213,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Format","product":"core","slug":"tmux-pane-format"},{"id":"tmux.Pane.Height","name":"Height","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Height() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"Height returns tmux #{pane_height} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1216,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Height","product":"core","slug":"tmux-pane-height"},{"id":"tmux.Pane.InMode","name":"InMode","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) InMode() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"InMode returns tmux #{pane_in_mode} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1219,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.InMode","product":"core","slug":"tmux-pane-inmode"},{"id":"tmux.Pane.InputOff","name":"InputOff","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) InputOff() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"InputOff returns tmux #{pane_input_off} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1222,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.InputOff","product":"core","slug":"tmux-pane-inputoff"},{"id":"tmux.Pane.KeyMode","name":"KeyMode","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) KeyMode() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"KeyMode returns tmux #{pane_key_mode} as string from this Pane's materialized pane-scoped fields (tmux 3.5 or later)."},"source":{"file":"tmux/format_generated.go","line":1225,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.KeyMode","product":"core","slug":"tmux-pane-keymode"},{"id":"tmux.Pane.Last","name":"Last","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Last() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"Last returns tmux #{pane_last} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1228,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Last","product":"core","slug":"tmux-pane-last"},{"id":"tmux.Pane.Left","name":"Left","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Left() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"Left returns tmux #{pane_left} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1231,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Left","product":"core","slug":"tmux-pane-left"},{"id":"tmux.Pane.Marked","name":"Marked","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Marked() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"Marked returns tmux #{pane_marked} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1234,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Marked","product":"core","slug":"tmux-pane-marked"},{"id":"tmux.Pane.MarkedSet","name":"MarkedSet","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) MarkedSet() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"MarkedSet returns tmux #{pane_marked_set} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1237,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.MarkedSet","product":"core","slug":"tmux-pane-markedset"},{"id":"tmux.Pane.ModalFlag","name":"ModalFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ModalFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"ModalFlag returns tmux #{pane_modal_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1240,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ModalFlag","product":"core","slug":"tmux-pane-modalflag"},{"id":"tmux.Pane.Mode","name":"Mode","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Mode() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"Mode returns tmux #{pane_mode} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1243,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Mode","product":"core","slug":"tmux-pane-mode"},{"id":"tmux.Pane.OutputGeneration","name":"OutputGeneration","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) OutputGeneration() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"OutputGeneration returns tmux #{pane_output_generation} as int from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1246,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.OutputGeneration","product":"core","slug":"tmux-pane-outputgeneration"},{"id":"tmux.Pane.Path","name":"Path","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Path() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"Path returns tmux #{pane_path} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1249,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Path","product":"core","slug":"tmux-pane-path"},{"id":"tmux.Pane.PBProgress","name":"PBProgress","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) PBProgress() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"PBProgress returns tmux #{pane_pb_progress} as int from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1252,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.PBProgress","product":"core","slug":"tmux-pane-pbprogress"},{"id":"tmux.Pane.PBState","name":"PBState","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) PBState() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"PBState returns tmux #{pane_pb_state} as string from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1255,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.PBState","product":"core","slug":"tmux-pane-pbstate"},{"id":"tmux.Pane.ProcessPID","name":"ProcessPID","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ProcessPID() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"ProcessPID returns tmux #{pane_pid} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1258,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ProcessPID","product":"core","slug":"tmux-pane-processpid"},{"id":"tmux.Pane.Piping","name":"Piping","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Piping() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"Piping returns tmux #{pane_pipe} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1261,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Piping","product":"core","slug":"tmux-pane-piping"},{"id":"tmux.Pane.PipePID","name":"PipePID","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) PipePID() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"PipePID returns tmux #{pane_pipe_pid} as int from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1264,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.PipePID","product":"core","slug":"tmux-pane-pipepid"},{"id":"tmux.Pane.PrivateModes","name":"PrivateModes","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) PrivateModes() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"PrivateModes returns tmux #{pane_private_modes} as string from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1267,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.PrivateModes","product":"core","slug":"tmux-pane-privatemodes"},{"id":"tmux.Pane.Right","name":"Right","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Right() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"Right returns tmux #{pane_right} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1270,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Right","product":"core","slug":"tmux-pane-right"},{"id":"tmux.Pane.SearchString","name":"SearchString","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SearchString() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"SearchString returns tmux #{pane_search_string} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1273,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SearchString","product":"core","slug":"tmux-pane-searchstring"},{"id":"tmux.Pane.StartCommand","name":"StartCommand","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) StartCommand() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"StartCommand returns tmux #{pane_start_command} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1276,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.StartCommand","product":"core","slug":"tmux-pane-startcommand"},{"id":"tmux.Pane.StartCommandList","name":"StartCommandList","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) StartCommandList() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"StartCommandList returns tmux #{pane_start_command_list} as string from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1279,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.StartCommandList","product":"core","slug":"tmux-pane-startcommandlist"},{"id":"tmux.Pane.StartPath","name":"StartPath","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) StartPath() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"StartPath returns tmux #{pane_start_path} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1284,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.StartPath","product":"core","slug":"tmux-pane-startpath"},{"id":"tmux.Pane.Synchronized","name":"Synchronized","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Synchronized() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"Synchronized returns tmux #{pane_synchronized} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1287,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Synchronized","product":"core","slug":"tmux-pane-synchronized"},{"id":"tmux.Pane.Tabs","name":"Tabs","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Tabs() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"Tabs returns tmux #{pane_tabs} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1290,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Tabs","product":"core","slug":"tmux-pane-tabs"},{"id":"tmux.Pane.Title","name":"Title","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Title() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"Title returns tmux #{pane_title} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1293,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Title","product":"core","slug":"tmux-pane-title"},{"id":"tmux.Pane.Top","name":"Top","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Top() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"Top returns tmux #{pane_top} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1296,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Top","product":"core","slug":"tmux-pane-top"},{"id":"tmux.Pane.TTY","name":"TTY","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) TTY() (string, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool)"}],"doc":{"summary":"TTY returns tmux #{pane_tty} as string from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1299,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.TTY","product":"core","slug":"tmux-pane-tty"},{"id":"tmux.Pane.UnseenChanges","name":"UnseenChanges","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) UnseenChanges() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"UnseenChanges returns tmux #{pane_unseen_changes} as bool from this Pane's materialized pane-scoped fields (tmux 3.4 or later)."},"source":{"file":"tmux/format_generated.go","line":1302,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.UnseenChanges","product":"core","slug":"tmux-pane-unseenchanges"},{"id":"tmux.Pane.UnzoomedHeight","name":"UnzoomedHeight","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) UnzoomedHeight() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"UnzoomedHeight returns tmux #{pane_unzoomed_height} as int from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1305,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.UnzoomedHeight","product":"core","slug":"tmux-pane-unzoomedheight"},{"id":"tmux.Pane.UnzoomedWidth","name":"UnzoomedWidth","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) UnzoomedWidth() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"UnzoomedWidth returns tmux #{pane_unzoomed_width} as int from this Pane's materialized pane-scoped fields (tmux 3.8 or later)."},"source":{"file":"tmux/format_generated.go","line":1308,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.UnzoomedWidth","product":"core","slug":"tmux-pane-unzoomedwidth"},{"id":"tmux.Pane.Width","name":"Width","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Width() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"Width returns tmux #{pane_width} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1311,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Width","product":"core","slug":"tmux-pane-width"},{"id":"tmux.Pane.X","name":"X","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) X() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"X returns tmux #{pane_x} as int from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1314,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.X","product":"core","slug":"tmux-pane-x"},{"id":"tmux.Pane.Y","name":"Y","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Y() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"Y returns tmux #{pane_y} as int from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1317,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Y","product":"core","slug":"tmux-pane-y"},{"id":"tmux.Pane.Z","name":"Z","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Z() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"Z returns tmux #{pane_z} as int from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1320,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Z","product":"core","slug":"tmux-pane-z"},{"id":"tmux.Pane.ZoomedFlag","name":"ZoomedFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ZoomedFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"ZoomedFlag returns tmux #{pane_zoomed_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1323,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ZoomedFlag","product":"core","slug":"tmux-pane-zoomedflag"},{"id":"tmux.Pane.ScrollRegionLower","name":"ScrollRegionLower","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ScrollRegionLower() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"ScrollRegionLower returns tmux #{scroll_region_lower} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1326,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ScrollRegionLower","product":"core","slug":"tmux-pane-scrollregionlower"},{"id":"tmux.Pane.ScrollRegionUpper","name":"ScrollRegionUpper","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ScrollRegionUpper() (int, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(int, bool)"}],"doc":{"summary":"ScrollRegionUpper returns tmux #{scroll_region_upper} as int from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1329,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ScrollRegionUpper","product":"core","slug":"tmux-pane-scrollregionupper"},{"id":"tmux.Pane.SynchronizedOutputFlag","name":"SynchronizedOutputFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SynchronizedOutputFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"SynchronizedOutputFlag returns tmux #{synchronized_output_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.7 or later)."},"source":{"file":"tmux/format_generated.go","line":1332,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SynchronizedOutputFlag","product":"core","slug":"tmux-pane-synchronizedoutputflag"},{"id":"tmux.Pane.WrapFlag","name":"WrapFlag","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) WrapFlag() (bool, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(bool, bool)"}],"doc":{"summary":"WrapFlag returns tmux #{wrap_flag} as bool from this Pane's materialized pane-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1337,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.WrapFlag","product":"core","slug":"tmux-pane-wrapflag"},{"id":"tmux.Client.Activity","name":"Activity","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Activity() (time.Time, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(time.Time, bool)"}],"doc":{"summary":"Activity returns tmux #{client_activity} as time.Time from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1340,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Activity","product":"core","slug":"tmux-client-activity"},{"id":"tmux.Client.CellHeight","name":"CellHeight","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) CellHeight() (int, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(int, bool)"}],"doc":{"summary":"CellHeight returns tmux #{client_cell_height} as int from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1343,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.CellHeight","product":"core","slug":"tmux-client-cellheight"},{"id":"tmux.Client.CellWidth","name":"CellWidth","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) CellWidth() (int, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(int, bool)"}],"doc":{"summary":"CellWidth returns tmux #{client_cell_width} as int from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1346,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.CellWidth","product":"core","slug":"tmux-client-cellwidth"},{"id":"tmux.Client.ControlMode","name":"ControlMode","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) ControlMode() (bool, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(bool, bool)"}],"doc":{"summary":"ControlMode returns tmux #{client_control_mode} as bool from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1349,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.ControlMode","product":"core","slug":"tmux-client-controlmode"},{"id":"tmux.Client.Created","name":"Created","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Created() (time.Time, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(time.Time, bool)"}],"doc":{"summary":"Created returns tmux #{client_created} as time.Time from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1352,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Created","product":"core","slug":"tmux-client-created"},{"id":"tmux.Client.Discarded","name":"Discarded","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Discarded() (int, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(int, bool)"}],"doc":{"summary":"Discarded returns tmux #{client_discarded} as int from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1355,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Discarded","product":"core","slug":"tmux-client-discarded"},{"id":"tmux.Client.Flags","name":"Flags","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Flags() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"Flags returns tmux #{client_flags} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1358,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Flags","product":"core","slug":"tmux-client-flags"},{"id":"tmux.Client.Height","name":"Height","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Height() (int, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(int, bool)"}],"doc":{"summary":"Height returns tmux #{client_height} as int from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1361,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Height","product":"core","slug":"tmux-client-height"},{"id":"tmux.Client.KeyTable","name":"KeyTable","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) KeyTable() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"KeyTable returns tmux #{client_key_table} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1364,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.KeyTable","product":"core","slug":"tmux-client-keytable"},{"id":"tmux.Client.LastSession","name":"LastSession","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) LastSession() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"LastSession returns tmux #{client_last_session} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1367,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.LastSession","product":"core","slug":"tmux-client-lastsession"},{"id":"tmux.Client.ModeFormat","name":"ModeFormat","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) ModeFormat() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"ModeFormat returns tmux #{client_mode_format} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1370,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.ModeFormat","product":"core","slug":"tmux-client-modeformat"},{"id":"tmux.Client.ProcessPID","name":"ProcessPID","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) ProcessPID() (int, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(int, bool)"}],"doc":{"summary":"ProcessPID returns tmux #{client_pid} as int from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1373,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.ProcessPID","product":"core","slug":"tmux-client-processpid"},{"id":"tmux.Client.Prefix","name":"Prefix","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Prefix() (bool, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(bool, bool)"}],"doc":{"summary":"Prefix returns tmux #{client_prefix} as bool from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1376,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Prefix","product":"core","slug":"tmux-client-prefix"},{"id":"tmux.Client.ReadOnly","name":"ReadOnly","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) ReadOnly() (bool, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(bool, bool)"}],"doc":{"summary":"ReadOnly returns tmux #{client_readonly} as bool from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1379,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.ReadOnly","product":"core","slug":"tmux-client-readonly"},{"id":"tmux.Client.Session","name":"Session","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Session() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"Session returns tmux #{client_session} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1382,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Session","product":"core","slug":"tmux-client-session"},{"id":"tmux.Client.TermFeatures","name":"TermFeatures","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) TermFeatures() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"TermFeatures returns tmux #{client_termfeatures} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1385,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.TermFeatures","product":"core","slug":"tmux-client-termfeatures"},{"id":"tmux.Client.TermName","name":"TermName","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) TermName() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"TermName returns tmux #{client_termname} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1388,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.TermName","product":"core","slug":"tmux-client-termname"},{"id":"tmux.Client.TermType","name":"TermType","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) TermType() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"TermType returns tmux #{client_termtype} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1391,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.TermType","product":"core","slug":"tmux-client-termtype"},{"id":"tmux.Client.TTY","name":"TTY","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) TTY() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"TTY returns tmux #{client_tty} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1394,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.TTY","product":"core","slug":"tmux-client-tty"},{"id":"tmux.Client.ProcessUID","name":"ProcessUID","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) ProcessUID() (int, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(int, bool)"}],"doc":{"summary":"ProcessUID returns tmux #{client_uid} as int from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1397,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.ProcessUID","product":"core","slug":"tmux-client-processuid"},{"id":"tmux.Client.ProcessUser","name":"ProcessUser","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) ProcessUser() (string, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(string, bool)"}],"doc":{"summary":"ProcessUser returns tmux #{client_user} as string from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1400,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.ProcessUser","product":"core","slug":"tmux-client-processuser"},{"id":"tmux.Client.UTF8","name":"UTF8","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) UTF8() (bool, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(bool, bool)"}],"doc":{"summary":"UTF8 returns tmux #{client_utf8} as bool from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1403,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.UTF8","product":"core","slug":"tmux-client-utf8"},{"id":"tmux.Client.Width","name":"Width","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Width() (int, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(int, bool)"}],"doc":{"summary":"Width returns tmux #{client_width} as int from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1406,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Width","product":"core","slug":"tmux-client-width"},{"id":"tmux.Client.Written","name":"Written","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Written() (int, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(int, bool)"}],"doc":{"summary":"Written returns tmux #{client_written} as int from this Client's materialized client-scoped fields (tmux 3.2a or later)."},"source":{"file":"tmux/format_generated.go","line":1409,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Written","product":"core","slug":"tmux-client-written"},{"id":"tmux.ErrNotInsideTmux","name":"ErrNotInsideTmux","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrNotInsideTmux identifies missing or malformed tmux discovery variables."},"source":{"file":"tmux/from_env.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrNotInsideTmux","product":"core","slug":"tmux-errnotinsidetmux"},{"id":"tmux.FromEnvError","name":"FromEnvError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"FromEnvError reports which tmux discovery variable was missing or malformed. It never retains or prints the variable's value."},"source":{"file":"tmux/from_env.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FromEnvError","product":"core","slug":"tmux-fromenverror"},{"id":"tmux.FromEnvError.Variable","name":"Variable","kind":"attribute","modifiers":[],"parent":"tmux.FromEnvError","signatures":[],"type":"string","doc":{"summary":"Variable is the discovery variable name, never its value."},"source":{"file":"tmux/from_env.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FromEnvError.Variable","product":"core","slug":"tmux-fromenverror-variable"},{"id":"tmux.FromEnvError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.FromEnvError","signatures":[],"type":"string","doc":{"summary":"Reason describes why the variable cannot identify a tmux resource."},"source":{"file":"tmux/from_env.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FromEnvError.Reason","product":"core","slug":"tmux-fromenverror-reason"},{"id":"tmux.FromEnvError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.FromEnvError","signatures":[{"raw":"func (e *FromEnvError) Error() string","params":[],"receiver":{"name":"e","type":"*FromEnvError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/from_env.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FromEnvError.Error","product":"core","slug":"tmux-fromenverror-error"},{"id":"tmux.FromEnvError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.FromEnvError","signatures":[{"raw":"func (e *FromEnvError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*FromEnvError"},"returns":"error"}],"doc":{"summary":"Unwrap makes FromEnvError compatible with ErrNotInsideTmux."},"source":{"file":"tmux/from_env.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FromEnvError.Unwrap","product":"core","slug":"tmux-fromenverror-unwrap"},{"id":"tmux.NewServerFromEnv","name":"NewServerFromEnv","kind":"function","modifiers":[],"signatures":[{"raw":"func NewServerFromEnv(environment map[string]string) (Server, error)","params":[{"name":"environment","type":"map[string]string"}],"returns":"(Server, error)"}],"doc":{"summary":"NewServerFromEnv returns a server configured from TMUX without starting tmux. It snapshots the process environment once. A nonnil environment supplies discovery values and overrides that snapshot for later tmux processes; an empty map therefore has no TMUX discovery value. Names follow the platform's environment rules and are case-insensitive on Windows."},"source":{"file":"tmux/from_env.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewServerFromEnv","product":"core","slug":"tmux-newserverfromenv"},{"id":"tmux.PaneFromEnv","name":"PaneFromEnv","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneFromEnv(ctx context.Context, environment map[string]string) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"environment","type":"map[string]string"}],"returns":"(Pane, error)"}],"doc":{"summary":"PaneFromEnv returns the pane identified by TMUX and TMUX_PANE. Nil reads the process environment; a nonnil empty map does not. Environment names are case-insensitive on Windows. It resolves the live hierarchy later through identity-checked tmux queries."},"source":{"file":"tmux/from_env.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneFromEnv","product":"core","slug":"tmux-panefromenv"},{"id":"tmux.WindowFromEnv","name":"WindowFromEnv","kind":"function","modifiers":[],"signatures":[{"raw":"func WindowFromEnv(ctx context.Context, environment map[string]string) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"environment","type":"map[string]string"}],"returns":"(Window, error)"}],"doc":{"summary":"WindowFromEnv returns the window containing the pane identified by the environment. Nil reads the process environment; a nonnil empty map does not."},"source":{"file":"tmux/from_env.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowFromEnv","product":"core","slug":"tmux-windowfromenv"},{"id":"tmux.SessionFromEnv","name":"SessionFromEnv","kind":"function","modifiers":[],"signatures":[{"raw":"func SessionFromEnv(ctx context.Context, environment map[string]string) (Session, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"environment","type":"map[string]string"}],"returns":"(Session, error)"}],"doc":{"summary":"SessionFromEnv returns the canonical session containing the environment's pane. Nil reads the process environment; a nonnil empty map does not."},"source":{"file":"tmux/from_env.go","line":84,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionFromEnv","product":"core","slug":"tmux-sessionfromenv"},{"id":"tmux.Server.Sessions","name":"Sessions","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Sessions(ctx context.Context) ([]Session, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"([]Session, error)"}],"doc":{"summary":"Sessions materializes the server's sessions. Failures, including [ErrNoServer], remain errors rather than empty results.","examples":[{"lang":"console","intro":"List all sessions on a private server. Sessions reads a fresh snapshot; an absent daemon is an error, not an empty list. Names are sorted here only to make the example output independent of tmux ordering. Use Go 1.26.0 or newer and tmux 3.3a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-go.git libtmux-source && \\\n git -C libtmux-source checkout 6f3df55f8a41999e41225eefb3940545b834e6a2\n"},{"lang":"go","intro":"Save this dependency file as go.mod:","code":"module example.com/libtmux-api\n\ngo 1.26.0\n\nrequire github.com/libtmux/libtmux-go v0.0.0\n\nreplace github.com/libtmux/libtmux-go => ./libtmux-source\n"},{"lang":"go","intro":"Save this complete example as example_test.go. It creates a private temporary socket and stops its server before removing the directory. Cleanup failure fails the example and retains the socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-go/blob/6f3df55f8a41999e41225eefb3940545b834e6a2/tmux/api_server_sessions_example_test.go","code":"package tmux_test\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"slices\"\n\t\"time\"\n\n\t\"github.com/libtmux/libtmux-go/tmux\"\n)\n\n// List all sessions on a private server. Sessions reads a fresh snapshot;\n// an absent daemon is an error, not an empty list. Names are sorted here\n// only to make the example output independent of tmux ordering.\nfunc ExampleServer_Sessions_complete() {\n\trun := func() (runErr error) {\n\t\tdirectory, err := os.MkdirTemp(\"\", \"libtmux-go-api-\")\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create socket directory: %w\", err)\n\t\t}\n\t\tserver, err := tmux.NewServer(tmux.ServerOptions{\n\t\t\tSocketPath: filepath.Join(directory, \"tmux.sock\"),\n\t\t\tConfigFile: \"/dev/null\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errors.Join(err, os.RemoveAll(directory))\n\t\t}\n\t\tdefer func() {\n\t\t\t// Cleanup has its own deadline because the operation may have timed out.\n\t\t\tcleanup, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\t\t\tdefer cancel()\n\t\t\tif err := server.Kill(cleanup); err != nil && !errors.Is(err, tmux.ErrNoServer) {\n\t\t\t\trunErr = errors.Join(runErr, fmt.Errorf(\"stop server at %s: %w\", directory, err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\trunErr = errors.Join(runErr, os.RemoveAll(directory))\n\t\t}()\n\t\tctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)\n\t\tdefer cancel()\n\t\tfor _, name := range []string{\"work\", \"docs\"} {\n\t\t\tif _, err = server.NewSession(ctx, tmux.NewSessionRequest{\n\t\t\t\tName: name, WindowName: name + \"-editor\", Command: \"cat\", Width: 100, Height: 30,\n\t\t\t}); err != nil {\n\t\t\t\treturn fmt.Errorf(\"create %s session: %w\", name, err)\n\t\t\t}\n\t\t}\n\t\tsessions, err := server.Sessions(ctx)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"list sessions: %w\", err)\n\t\t}\n\t\tnames := make([]string, 0, len(sessions))\n\t\tfor _, session := range sessions {\n\t\t\tname, ok := session.Name()\n\t\t\tif !ok {\n\t\t\t\treturn fmt.Errorf(\"session %s has no name\", session.ID())\n\t\t\t}\n\t\t\tnames = append(names, name)\n\t\t}\n\t\tslices.Sort(names)\n\t\tfmt.Println(names)\n\t\treturn nil\n\t}\n\tif err := run(); err != nil {\n\t\tpanic(err)\n\t}\n\t// Output:\n\t// [docs work]\n}\n"},{"lang":"console","intro":"Run the saved file. Go checks the Output comment and fails on different output or an operation or cleanup error:","code":"$ GOWORK=off go test -count=1 -v example_test.go\n"}]},"source":{"file":"tmux/hierarchy.go","line":7,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Sessions","product":"core","slug":"tmux-server-sessions"},{"id":"tmux.Server.Windows","name":"Windows","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Windows(ctx context.Context) ([]Window, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"([]Window, error)"}],"doc":{"summary":"Windows materializes one record per winlink. Failures, including [ErrNoServer], remain errors rather than empty results.","examples":[{"lang":"console","intro":"List windows across every session on a private server. Each record is a winlink: linking one window into two sessions produces two records. This example gives each session one independently created window. Use Go 1.26.0 or newer and tmux 3.3a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-go.git libtmux-source && \\\n git -C libtmux-source checkout 6f3df55f8a41999e41225eefb3940545b834e6a2\n"},{"lang":"go","intro":"Save this dependency file as go.mod:","code":"module example.com/libtmux-api\n\ngo 1.26.0\n\nrequire github.com/libtmux/libtmux-go v0.0.0\n\nreplace github.com/libtmux/libtmux-go => ./libtmux-source\n"},{"lang":"go","intro":"Save this complete example as example_test.go. It creates a private temporary socket and stops its server before removing the directory. Cleanup failure fails the example and retains the socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-go/blob/6f3df55f8a41999e41225eefb3940545b834e6a2/tmux/api_server_windows_example_test.go","code":"package tmux_test\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"slices\"\n\t\"time\"\n\n\t\"github.com/libtmux/libtmux-go/tmux\"\n)\n\n// List windows across every session on a private server. Each record is a\n// winlink: linking one window into two sessions produces two records.\n// This example gives each session one independently created window.\nfunc ExampleServer_Windows_complete() {\n\trun := func() (runErr error) {\n\t\tdirectory, err := os.MkdirTemp(\"\", \"libtmux-go-api-\")\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create socket directory: %w\", err)\n\t\t}\n\t\tserver, err := tmux.NewServer(tmux.ServerOptions{\n\t\t\tSocketPath: filepath.Join(directory, \"tmux.sock\"),\n\t\t\tConfigFile: \"/dev/null\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errors.Join(err, os.RemoveAll(directory))\n\t\t}\n\t\tdefer func() {\n\t\t\t// Cleanup has its own deadline because the operation may have timed out.\n\t\t\tcleanup, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\t\t\tdefer cancel()\n\t\t\tif err := server.Kill(cleanup); err != nil && !errors.Is(err, tmux.ErrNoServer) {\n\t\t\t\trunErr = errors.Join(runErr, fmt.Errorf(\"stop server at %s: %w\", directory, err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\trunErr = errors.Join(runErr, os.RemoveAll(directory))\n\t\t}()\n\t\tctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)\n\t\tdefer cancel()\n\t\tfor _, name := range []string{\"work\", \"docs\"} {\n\t\t\tif _, err = server.NewSession(ctx, tmux.NewSessionRequest{\n\t\t\t\tName: name, WindowName: name + \"-editor\", Command: \"cat\", Width: 100, Height: 30,\n\t\t\t}); err != nil {\n\t\t\t\treturn fmt.Errorf(\"create %s session: %w\", name, err)\n\t\t\t}\n\t\t}\n\t\twindows, err := server.Windows(ctx)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"list windows: %w\", err)\n\t\t}\n\t\tnames := make([]string, 0, len(windows))\n\t\tfor _, window := range windows {\n\t\t\tname, ok := window.Name()\n\t\t\tif !ok {\n\t\t\t\treturn fmt.Errorf(\"window %s has no name\", window.ID())\n\t\t\t}\n\t\t\tnames = append(names, name)\n\t\t}\n\t\tslices.Sort(names)\n\t\tfmt.Println(names)\n\t\treturn nil\n\t}\n\tif err := run(); err != nil {\n\t\tpanic(err)\n\t}\n\t// Output:\n\t// [docs-editor work-editor]\n}\n"},{"lang":"console","intro":"Run the saved file. Go checks the Output comment and fails on different output or an operation or cleanup error:","code":"$ GOWORK=off go test -count=1 -v example_test.go\n"}]},"source":{"file":"tmux/hierarchy.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Windows","product":"core","slug":"tmux-server-windows"},{"id":"tmux.Server.Panes","name":"Panes","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Panes(ctx context.Context) ([]Pane, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"([]Pane, error)"}],"doc":{"summary":"Panes materializes pane records for every winlink. Failures, including [ErrNoServer], remain errors rather than empty results.","examples":[{"lang":"console","intro":"List pane records across every session and window on a private server. Panes materializes each linked view, so callers that link windows may see the same underlying pane ID in more than one session. Use Go 1.26.0 or newer and tmux 3.3a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-go.git libtmux-source && \\\n git -C libtmux-source checkout 6f3df55f8a41999e41225eefb3940545b834e6a2\n"},{"lang":"go","intro":"Save this dependency file as go.mod:","code":"module example.com/libtmux-api\n\ngo 1.26.0\n\nrequire github.com/libtmux/libtmux-go v0.0.0\n\nreplace github.com/libtmux/libtmux-go => ./libtmux-source\n"},{"lang":"go","intro":"Save this complete example as example_test.go. It creates a private temporary socket and stops its server before removing the directory. Cleanup failure fails the example and retains the socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-go/blob/6f3df55f8a41999e41225eefb3940545b834e6a2/tmux/api_server_panes_example_test.go","code":"package tmux_test\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"time\"\n\n\t\"github.com/libtmux/libtmux-go/tmux\"\n)\n\n// List pane records across every session and window on a private server.\n// Panes materializes each linked view, so callers that link windows may see\n// the same underlying pane ID in more than one session.\nfunc ExampleServer_Panes_complete() {\n\trun := func() (runErr error) {\n\t\tdirectory, err := os.MkdirTemp(\"\", \"libtmux-go-api-\")\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create socket directory: %w\", err)\n\t\t}\n\t\tserver, err := tmux.NewServer(tmux.ServerOptions{\n\t\t\tSocketPath: filepath.Join(directory, \"tmux.sock\"),\n\t\t\tConfigFile: \"/dev/null\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errors.Join(err, os.RemoveAll(directory))\n\t\t}\n\t\tdefer func() {\n\t\t\t// Cleanup has its own deadline because the operation may have timed out.\n\t\t\tcleanup, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\t\t\tdefer cancel()\n\t\t\tif err := server.Kill(cleanup); err != nil && !errors.Is(err, tmux.ErrNoServer) {\n\t\t\t\trunErr = errors.Join(runErr, fmt.Errorf(\"stop server at %s: %w\", directory, err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\trunErr = errors.Join(runErr, os.RemoveAll(directory))\n\t\t}()\n\t\tctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)\n\t\tdefer cancel()\n\t\tfor _, name := range []string{\"work\", \"docs\"} {\n\t\t\tif _, err = server.NewSession(ctx, tmux.NewSessionRequest{\n\t\t\t\tName: name, WindowName: name + \"-editor\", Command: \"cat\", Width: 100, Height: 30,\n\t\t\t}); err != nil {\n\t\t\t\treturn fmt.Errorf(\"create %s session: %w\", name, err)\n\t\t\t}\n\t\t}\n\t\tpanes, err := server.Panes(ctx)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"list panes: %w\", err)\n\t\t}\n\t\tfor _, pane := range panes {\n\t\t\tif pane.ID() == \"\" {\n\t\t\t\treturn errors.New(\"pane has no stable ID\")\n\t\t\t}\n\t\t}\n\t\tfmt.Println(\"panes:\", len(panes))\n\t\treturn nil\n\t}\n\tif err := run(); err != nil {\n\t\tpanic(err)\n\t}\n\t// Output:\n\t// panes: 2\n}\n"},{"lang":"console","intro":"Run the saved file. Go checks the Output comment and fails on different output or an operation or cleanup error:","code":"$ GOWORK=off go test -count=1 -v example_test.go\n"}]},"source":{"file":"tmux/hierarchy.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Panes","product":"core","slug":"tmux-server-panes"},{"id":"tmux.Server.Clients","name":"Clients","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Clients(ctx context.Context) ([]Client, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"([]Client, error)"}],"doc":{"summary":"Clients materializes attached clients. Failures, including [ErrNoServer], remain errors rather than empty results."},"source":{"file":"tmux/hierarchy.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Clients","product":"core","slug":"tmux-server-clients"},{"id":"tmux.SetHooksOptions","name":"SetHooksOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SetHooksOptions controls a bulk hook replacement. Its zero value preserves existing indices before applying the supplied sparse values."},"source":{"file":"tmux/hook_runtime.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetHooksOptions","product":"core","slug":"tmux-sethooksoptions"},{"id":"tmux.SetHooksOptions.ClearExisting","name":"ClearExisting","kind":"attribute","modifiers":[],"parent":"tmux.SetHooksOptions","signatures":[],"type":"bool","doc":{"summary":"ClearExisting unsets every existing index before applying Values."},"source":{"file":"tmux/hook_runtime.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetHooksOptions.ClearExisting","product":"core","slug":"tmux-sethooksoptions-clearexisting"},{"id":"tmux.SetHooksResult","name":"SetHooksResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SetHooksResult reports only side effects confirmed before return."},"source":{"file":"tmux/hook_runtime.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetHooksResult","product":"core","slug":"tmux-sethooksresult"},{"id":"tmux.SetHooksResult.Cleared","name":"Cleared","kind":"attribute","modifiers":[],"parent":"tmux.SetHooksResult","signatures":[],"type":"bool","doc":{"summary":"Cleared reports that all existing hook indices were confirmed cleared."},"source":{"file":"tmux/hook_runtime.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetHooksResult.Cleared","product":"core","slug":"tmux-sethooksresult-cleared"},{"id":"tmux.SetHooksResult.AppliedIndices","name":"AppliedIndices","kind":"attribute","modifiers":[],"parent":"tmux.SetHooksResult","signatures":[],"type":"[]int","doc":{"summary":"AppliedIndices is an owned ascending list of indices confirmed applied."},"source":{"file":"tmux/hook_runtime.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetHooksResult.AppliedIndices","product":"core","slug":"tmux-sethooksresult-appliedindices"},{"id":"tmux.GlobalSessionScope.Hooks","name":"Hooks","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) Hooks(ctx context.Context) (ServerHookValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"(ServerHookValues, error)"}],"doc":{"summary":"Hooks returns a freshly decoded, caller-owned view of known global session-scope hooks, including inherited values. A read failure is returned rather than answered with zero values."},"source":{"file":"tmux/hook_runtime.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.Hooks","product":"core","slug":"tmux-globalsessionscope-hooks"},{"id":"tmux.GlobalWindowScope.Hooks","name":"Hooks","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) Hooks(ctx context.Context) (WindowHookValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"(WindowHookValues, error)"}],"doc":{"summary":"Hooks returns a freshly decoded, caller-owned view of known global window hooks, including defaults. A read failure is returned rather than answered with zero values; context errors propagate."},"source":{"file":"tmux/hook_runtime.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.Hooks","product":"core","slug":"tmux-globalwindowscope-hooks"},{"id":"tmux.Session.Hooks","name":"Hooks","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Hooks(ctx context.Context) (SessionHookValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"(SessionHookValues, error)"}],"doc":{"summary":"Hooks returns a freshly decoded, caller-owned view of known hooks at this stable session target, including inherited values. A read failure is returned rather than answered with zero values."},"source":{"file":"tmux/hook_runtime.go","line":65,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Hooks","product":"core","slug":"tmux-session-hooks"},{"id":"tmux.Window.Hooks","name":"Hooks","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Hooks(ctx context.Context) (WindowHookValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"(WindowHookValues, error)"}],"doc":{"summary":"Hooks returns a freshly decoded, caller-owned view of known hooks at this exact window target, including inherited values. The receiver's exact linked session context controls tmux format evaluation. A read failure is returned rather than answered with zero values."},"source":{"file":"tmux/hook_runtime.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Hooks","product":"core","slug":"tmux-window-hooks"},{"id":"tmux.Pane.Hooks","name":"Hooks","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Hooks(ctx context.Context) (PaneHookValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"(PaneHookValues, error)"}],"doc":{"summary":"Hooks returns a freshly decoded, caller-owned view of known hooks at this exact pane target, including inherited values. The receiver's exact linked session context controls tmux format evaluation. A read failure is returned rather than answered with zero values."},"source":{"file":"tmux/hook_runtime.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Hooks","product":"core","slug":"tmux-pane-hooks"},{"id":"tmux.GlobalSessionScope.RawHook","name":"RawHook","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) RawHook(ctx context.Context, name string) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawHook returns one exact global session-scope hook value. A successful string is caller-owned; ok reports presence. Targeted reads do not use list leniency, and completed failures return a secret-safe option error. An unindexed empty hook array is ambiguous; use Hooks for typed presence."},"source":{"file":"tmux/hook_runtime.go","line":134,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.RawHook","product":"core","slug":"tmux-globalsessionscope-rawhook"},{"id":"tmux.GlobalWindowScope.RawHook","name":"RawHook","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) RawHook(\n\tctx context.Context,\n\tname string,\n) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawHook returns one exact global window-hook value. A successful string is caller-owned; ok reports presence and completed failures are returned. An unindexed empty hook array is ambiguous; use Hooks for typed presence."},"source":{"file":"tmux/hook_runtime.go","line":142,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.RawHook","product":"core","slug":"tmux-globalwindowscope-rawhook"},{"id":"tmux.Session.RawHook","name":"RawHook","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) RawHook(ctx context.Context, name string) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawHook returns one exact session hook value at this stable session target. A successful string is caller-owned; ok reports presence and completed failures are returned. An unindexed empty hook array is ambiguous; use Hooks for typed presence."},"source":{"file":"tmux/hook_runtime.go","line":153,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.RawHook","product":"core","slug":"tmux-session-rawhook"},{"id":"tmux.Window.RawHook","name":"RawHook","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) RawHook(ctx context.Context, name string) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawHook returns one exact window hook value at this exact window target. A successful string is caller-owned; the receiver's exact linked session context controls tmux format evaluation, and completed failures are returned."},"source":{"file":"tmux/hook_runtime.go","line":164,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.RawHook","product":"core","slug":"tmux-window-rawhook"},{"id":"tmux.Pane.RawHook","name":"RawHook","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) RawHook(ctx context.Context, name string) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawHook returns one exact pane hook value at this exact pane target. A successful string is caller-owned; the receiver's exact linked session context controls tmux format evaluation, and completed failures are returned."},"source":{"file":"tmux/hook_runtime.go","line":175,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.RawHook","product":"core","slug":"tmux-pane-rawhook"},{"id":"tmux.GlobalSessionScope.SetHook","name":"SetHook","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetHook stores a global session-scope hook without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/hook_runtime.go","line":186,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetHook","product":"core","slug":"tmux-globalsessionscope-sethook"},{"id":"tmux.GlobalWindowScope.SetHook","name":"SetHook","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetHook stores a global window hook without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/hook_runtime.go","line":193,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetHook","product":"core","slug":"tmux-globalwindowscope-sethook"},{"id":"tmux.Session.SetHook","name":"SetHook","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetHook stores a session hook at this stable session target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/hook_runtime.go","line":208,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetHook","product":"core","slug":"tmux-session-sethook"},{"id":"tmux.Window.SetHook","name":"SetHook","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetHook stores a window hook at this exact window target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/hook_runtime.go","line":219,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetHook","product":"core","slug":"tmux-window-sethook"},{"id":"tmux.Pane.SetHook","name":"SetHook","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetHook stores a pane hook at this exact pane target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/hook_runtime.go","line":230,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetHook","product":"core","slug":"tmux-pane-sethook"},{"id":"tmux.GlobalSessionScope.AppendHook","name":"AppendHook","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) AppendHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"AppendHook appends a global session-scope hook without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the append."},"source":{"file":"tmux/hook_runtime.go","line":241,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.AppendHook","product":"core","slug":"tmux-globalsessionscope-appendhook"},{"id":"tmux.GlobalWindowScope.AppendHook","name":"AppendHook","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) AppendHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"AppendHook appends a command to a global window hook without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the append."},"source":{"file":"tmux/hook_runtime.go","line":248,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.AppendHook","product":"core","slug":"tmux-globalwindowscope-appendhook"},{"id":"tmux.Session.AppendHook","name":"AppendHook","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) AppendHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"AppendHook appends a session hook at this stable session target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the append."},"source":{"file":"tmux/hook_runtime.go","line":263,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.AppendHook","product":"core","slug":"tmux-session-appendhook"},{"id":"tmux.Window.AppendHook","name":"AppendHook","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) AppendHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"AppendHook appends a window hook at this exact window target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the append."},"source":{"file":"tmux/hook_runtime.go","line":274,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.AppendHook","product":"core","slug":"tmux-window-appendhook"},{"id":"tmux.Pane.AppendHook","name":"AppendHook","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) AppendHook(ctx context.Context, name string, command string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"command","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"AppendHook appends a pane hook at this exact pane target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the append."},"source":{"file":"tmux/hook_runtime.go","line":285,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.AppendHook","product":"core","slug":"tmux-pane-appendhook"},{"id":"tmux.GlobalSessionScope.UnsetHook","name":"UnsetHook","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) UnsetHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"UnsetHook removes every matching global session-scope hook index without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the unset."},"source":{"file":"tmux/hook_runtime.go","line":296,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.UnsetHook","product":"core","slug":"tmux-globalsessionscope-unsethook"},{"id":"tmux.GlobalWindowScope.UnsetHook","name":"UnsetHook","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) UnsetHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"UnsetHook removes every matching global window-hook index without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the unset."},"source":{"file":"tmux/hook_runtime.go","line":303,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.UnsetHook","product":"core","slug":"tmux-globalwindowscope-unsethook"},{"id":"tmux.Session.UnsetHook","name":"UnsetHook","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) UnsetHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"UnsetHook removes every matching session hook index at this stable session target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove the unset was accepted."},"source":{"file":"tmux/hook_runtime.go","line":318,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.UnsetHook","product":"core","slug":"tmux-session-unsethook"},{"id":"tmux.Window.UnsetHook","name":"UnsetHook","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) UnsetHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"UnsetHook removes every matching window hook index at this exact window target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove the unset was accepted."},"source":{"file":"tmux/hook_runtime.go","line":329,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.UnsetHook","product":"core","slug":"tmux-window-unsethook"},{"id":"tmux.Pane.UnsetHook","name":"UnsetHook","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) UnsetHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"UnsetHook removes every matching pane hook index at this exact pane target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove the unset was accepted."},"source":{"file":"tmux/hook_runtime.go","line":340,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.UnsetHook","product":"core","slug":"tmux-pane-unsethook"},{"id":"tmux.GlobalSessionScope.RunHook","name":"RunHook","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) RunHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"RunHook asks tmux to run one global hook directly. It intentionally performs no racy target preflight; stale targets and global execution context remain tmux-defined. Completed failures are secret-safe option errors; cancellation does not prove hook delivery or execution did not occur."},"source":{"file":"tmux/hook_runtime.go","line":352,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.RunHook","product":"core","slug":"tmux-globalsessionscope-runhook"},{"id":"tmux.GlobalWindowScope.RunHook","name":"RunHook","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) RunHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"RunHook asks tmux to run one global window hook directly. It targets global window scope rather than a receiver, returns secret-safe option errors for completed failures, and cancellation does not prove hook delivery or execution did not occur."},"source":{"file":"tmux/hook_runtime.go","line":360,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.RunHook","product":"core","slug":"tmux-globalwindowscope-runhook"},{"id":"tmux.Session.RunHook","name":"RunHook","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) RunHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"RunHook asks tmux to run one session hook directly at this stable target. It intentionally performs no racy liveness preflight after validation. Completed failures are secret-safe option errors; cancellation does not prove execution did not occur."},"source":{"file":"tmux/hook_runtime.go","line":376,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.RunHook","product":"core","slug":"tmux-session-runhook"},{"id":"tmux.Window.RunHook","name":"RunHook","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) RunHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"RunHook asks tmux to run one window hook directly at this exact target. The receiver's exact linked session context controls tmux format evaluation; no racy preflight is issued. Completed failures are secret-safe option errors; cancellation does not prove execution did not occur."},"source":{"file":"tmux/hook_runtime.go","line":388,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.RunHook","product":"core","slug":"tmux-window-runhook"},{"id":"tmux.Pane.RunHook","name":"RunHook","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) RunHook(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"RunHook asks tmux to run one pane hook directly at this exact target. The receiver's exact linked session context controls tmux format evaluation; no racy preflight is issued. Completed failures are secret-safe option errors; cancellation does not prove execution did not occur."},"source":{"file":"tmux/hook_runtime.go","line":400,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.RunHook","product":"core","slug":"tmux-pane-runhook"},{"id":"tmux.GlobalSessionScope.SetHooks","name":"SetHooks","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetHooks(\n\tctx context.Context,\n\tname string,\n\tvalues SparseArray[string],\n\toptions SetHooksOptions,\n) (SetHooksResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"values","type":"SparseArray[string]"},{"name":"options","type":"SetHooksOptions"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"(SetHooksResult, error)"}],"doc":{"summary":"SetHooks applies indexed global session-scope hook commands in ascending order. With ClearExisting it confirms clearing before applying sparse Values. It stops at the first failure without rollback; the returned result reports only confirmed partial progress and owns AppliedIndices. Cancellation may follow accepted commands and cannot disprove their delivery."},"source":{"file":"tmux/hook_runtime.go","line":413,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetHooks","product":"core","slug":"tmux-globalsessionscope-sethooks"},{"id":"tmux.GlobalWindowScope.SetHooks","name":"SetHooks","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetHooks(\n\tctx context.Context,\n\tname string,\n\tvalues SparseArray[string],\n\toptions SetHooksOptions,\n) (SetHooksResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"values","type":"SparseArray[string]"},{"name":"options","type":"SetHooksOptions"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"(SetHooksResult, error)"}],"doc":{"summary":"SetHooks applies indexed global window-hook commands in ascending order. With ClearExisting it confirms clearing before applying sparse Values, stops at the first failure without rollback, and reports confirmed progress. Cancellation may follow accepted commands and cannot disprove their delivery."},"source":{"file":"tmux/hook_runtime.go","line":426,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetHooks","product":"core","slug":"tmux-globalwindowscope-sethooks"},{"id":"tmux.Session.SetHooks","name":"SetHooks","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetHooks(\n\tctx context.Context,\n\tname string,\n\tvalues SparseArray[string],\n\toptions SetHooksOptions,\n) (SetHooksResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"values","type":"SparseArray[string]"},{"name":"options","type":"SetHooksOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"(SetHooksResult, error)"}],"doc":{"summary":"SetHooks applies indexed session hook commands in ascending order at this handle's stable session target. With ClearExisting it confirms clearing first, stops at the first failure without rollback, and reports confirmed partial progress. Cancellation may follow accepted commands and cannot disprove their delivery."},"source":{"file":"tmux/hook_runtime.go","line":448,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetHooks","product":"core","slug":"tmux-session-sethooks"},{"id":"tmux.Window.SetHooks","name":"SetHooks","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetHooks(\n\tctx context.Context,\n\tname string,\n\tvalues SparseArray[string],\n\toptions SetHooksOptions,\n) (SetHooksResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"values","type":"SparseArray[string]"},{"name":"options","type":"SetHooksOptions"}],"receiver":{"name":"w","type":"Window"},"returns":"(SetHooksResult, error)"}],"doc":{"summary":"SetHooks applies indexed window hook commands in ascending order at this handle's exact window target. With ClearExisting it confirms clearing first, stops at the first failure without rollback, and reports confirmed progress. Cancellation may follow accepted commands and cannot disprove their delivery."},"source":{"file":"tmux/hook_runtime.go","line":465,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetHooks","product":"core","slug":"tmux-window-sethooks"},{"id":"tmux.Pane.SetHooks","name":"SetHooks","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetHooks(\n\tctx context.Context,\n\tname string,\n\tvalues SparseArray[string],\n\toptions SetHooksOptions,\n) (SetHooksResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"values","type":"SparseArray[string]"},{"name":"options","type":"SetHooksOptions"}],"receiver":{"name":"p","type":"Pane"},"returns":"(SetHooksResult, error)"}],"doc":{"summary":"SetHooks applies indexed pane hook commands in ascending order at this handle's exact pane target. With ClearExisting it confirms clearing first, stops at the first failure without rollback, and reports confirmed progress. Cancellation may follow accepted commands and cannot disprove their delivery."},"source":{"file":"tmux/hook_runtime.go","line":482,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetHooks","product":"core","slug":"tmux-pane-sethooks"},{"id":"tmux.ErrDaemonReplaced","name":"ErrDaemonReplaced","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrDaemonReplaced identifies an operation refused because the tmux server instance that produced a materialized value no longer occupies its socket."},"source":{"file":"tmux/identity.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrDaemonReplaced","product":"core","slug":"tmux-errdaemonreplaced"},{"id":"tmux.Server.Equal","name":"Equal","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Equal(other Server) bool","params":[{"name":"other","type":"Server"}],"receiver":{"name":"s","type":"Server"},"returns":"bool"}],"doc":{"summary":"Equal reports whether both handles currently select the same socket path. It evaluates relative paths and environment-dependent named and default sockets against each handle's frozen binding."},"source":{"file":"tmux/identity.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Equal","product":"core","slug":"tmux-server-equal"},{"id":"tmux.Server.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) String() string","params":[],"receiver":{"name":"s","type":"Server"},"returns":"string"}],"doc":{"summary":"String returns a concise representation of the server selector."},"source":{"file":"tmux/identity.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.String","product":"core","slug":"tmux-server-string"},{"id":"tmux.Session.Equal","name":"Equal","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Equal(other Session) bool","params":[{"name":"other","type":"Session"}],"receiver":{"name":"s","type":"Session"},"returns":"bool"}],"doc":{"summary":"Equal reports whether two session records carry the same stable ID and tmux server provenance."},"source":{"file":"tmux/identity.go","line":59,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Equal","product":"core","slug":"tmux-session-equal"},{"id":"tmux.Session.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) String() string","params":[],"receiver":{"name":"s","type":"Session"},"returns":"string"}],"doc":{"summary":"String returns the session's stable ID and queried name."},"source":{"file":"tmux/identity.go","line":64,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.String","product":"core","slug":"tmux-session-string"},{"id":"tmux.Window.Equal","name":"Equal","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Equal(other Window) bool","params":[{"name":"other","type":"Window"}],"receiver":{"name":"w","type":"Window"},"returns":"bool"}],"doc":{"summary":"Equal reports whether two window records carry the same stable window ID. It intentionally collapses linked-session views with different sessions or indexes; use SessionID, WindowID, and WindowIndex for exact view identity."},"source":{"file":"tmux/identity.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Equal","product":"core","slug":"tmux-window-equal"},{"id":"tmux.Window.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) String() string","params":[],"receiver":{"name":"w","type":"Window"},"returns":"string"}],"doc":{"summary":"String returns the winlink identity and its materialized parent, when present."},"source":{"file":"tmux/identity.go","line":79,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.String","product":"core","slug":"tmux-window-string"},{"id":"tmux.Pane.Equal","name":"Equal","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Equal(other Pane) bool","params":[{"name":"other","type":"Pane"}],"receiver":{"name":"p","type":"Pane"},"returns":"bool"}],"doc":{"summary":"Equal reports whether two pane records carry the same stable pane ID. It intentionally collapses linked-session views; a pane's exact view identity includes SessionID, WindowID, WindowIndex, and PaneID."},"source":{"file":"tmux/identity.go","line":91,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Equal","product":"core","slug":"tmux-pane-equal"},{"id":"tmux.Pane.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) String() string","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"string"}],"doc":{"summary":"String returns the pane identity and its materialized parent, when present."},"source":{"file":"tmux/identity.go","line":96,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.String","product":"core","slug":"tmux-pane-string"},{"id":"tmux.Client.Equal","name":"Equal","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Equal(other Client) bool","params":[{"name":"other","type":"Client"}],"receiver":{"name":"c","type":"Client"},"returns":"bool"}],"doc":{"summary":"Equal reports whether two clients carry the same stable client name and tmux server provenance."},"source":{"file":"tmux/identity.go","line":106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Equal","product":"core","slug":"tmux-client-equal"},{"id":"tmux.Client.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) String() string","params":[],"receiver":{"name":"c","type":"Client"},"returns":"string"}],"doc":{"summary":"String returns the client's stable name."},"source":{"file":"tmux/identity.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.String","product":"core","slug":"tmux-client-string"},{"id":"tmux.ErrInvalidRequest","name":"ErrInvalidRequest","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidRequest identifies lifecycle options rejected before execution."},"source":{"file":"tmux/lifecycle.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidRequest","product":"core","slug":"tmux-errinvalidrequest"},{"id":"tmux.ErrInvalidCommandOutput","name":"ErrInvalidCommandOutput","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidCommandOutput identifies malformed identity output from tmux."},"source":{"file":"tmux/lifecycle.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidCommandOutput","product":"core","slug":"tmux-errinvalidcommandoutput"},{"id":"tmux.PaneDirection","name":"PaneDirection","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneDirection selects where a tiled pane is created or moved on tmux 3.2a or later. Its zero value places the pane below the target."},"source":{"file":"tmux/lifecycle.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneDirection","product":"core","slug":"tmux-panedirection"},{"id":"tmux.PaneDirectionBelow","name":"PaneDirectionBelow","kind":"constant","modifiers":[],"signatures":[],"type":"PaneDirection","doc":{"summary":"PaneDirectionBelow places the pane below the target."},"source":{"file":"tmux/lifecycle.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneDirectionBelow","product":"core","slug":"tmux-panedirectionbelow"},{"id":"tmux.PaneDirectionAbove","name":"PaneDirectionAbove","kind":"constant","modifiers":[],"signatures":[],"type":"PaneDirection","doc":{"summary":"PaneDirectionAbove places the pane above the target."},"source":{"file":"tmux/lifecycle.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneDirectionAbove","product":"core","slug":"tmux-panedirectionabove"},{"id":"tmux.PaneDirectionRight","name":"PaneDirectionRight","kind":"constant","modifiers":[],"signatures":[],"type":"PaneDirection","doc":{"summary":"PaneDirectionRight places the pane to the right of the target."},"source":{"file":"tmux/lifecycle.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneDirectionRight","product":"core","slug":"tmux-panedirectionright"},{"id":"tmux.PaneDirectionLeft","name":"PaneDirectionLeft","kind":"constant","modifiers":[],"signatures":[],"type":"PaneDirection","doc":{"summary":"PaneDirectionLeft places the pane to the left of the target."},"source":{"file":"tmux/lifecycle.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneDirectionLeft","product":"core","slug":"tmux-panedirectionleft"},{"id":"tmux.SessionKillRequest","name":"SessionKillRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SessionKillRequest configures kill-session on tmux 3.2a or later. Its zero value destroys the receiver session. AllExcept destroys other sessions instead, while ClearAlerts is non-destructive. AllExcept, ClearAlerts, and Group are mutually exclusive because tmux applies a hidden precedence when more than one mode is supplied; the package rejects those combinations before execution. Group's compatibility behavior is documented on that field."},"source":{"file":"tmux/lifecycle_kill.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionKillRequest","product":"core","slug":"tmux-sessionkillrequest"},{"id":"tmux.SessionKillRequest.AllExcept","name":"AllExcept","kind":"attribute","modifiers":[],"parent":"tmux.SessionKillRequest","signatures":[],"type":"bool","doc":{"summary":"AllExcept terminates every other session and detaches their clients while preserving the receiver session."},"source":{"file":"tmux/lifecycle_kill.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionKillRequest.AllExcept","product":"core","slug":"tmux-sessionkillrequest-allexcept"},{"id":"tmux.SessionKillRequest.ClearAlerts","name":"ClearAlerts","kind":"attribute","modifiers":[],"parent":"tmux.SessionKillRequest","signatures":[],"type":"bool","doc":{"summary":"ClearAlerts clears bell, activity, and silence alerts in every window linked to the receiver without destroying a session or detaching its clients."},"source":{"file":"tmux/lifecycle_kill.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionKillRequest.ClearAlerts","product":"core","slug":"tmux-sessionkillrequest-clearalerts"},{"id":"tmux.SessionKillRequest.Group","name":"Group","kind":"attribute","modifiers":[],"parent":"tmux.SessionKillRequest","signatures":[],"type":"bool","doc":{"summary":"Group terminates every session in the receiver's group and detaches their clients. It requires tmux 3.7; see UnsupportedPolicy."},"source":{"file":"tmux/lifecycle_kill.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionKillRequest.Group","product":"core","slug":"tmux-sessionkillrequest-group"},{"id":"tmux.KillWindowRequest","name":"KillWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"KillWindowRequest selects a window for [Session.KillWindow] on tmux 3.2a or later. A zero request kills the receiver session's current window, and Index is scoped to that session. Target is unrestricted tmux target syntax and may select a window in another session. Target and Index are mutually exclusive and are checked before execution. Pointer values are read during the call and are not retained; callers must not mutate them concurrently. A nil pointer omits its selector, while a nonnil pointer is explicit even when Target points to an empty string."},"source":{"file":"tmux/lifecycle_kill.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.KillWindowRequest","product":"core","slug":"tmux-killwindowrequest"},{"id":"tmux.KillWindowRequest.Target","name":"Target","kind":"attribute","modifiers":[],"parent":"tmux.KillWindowRequest","signatures":[],"type":"*string","doc":{"summary":"Target is passed through as unrestricted tmux target syntax when nonnil."},"source":{"file":"tmux/lifecycle_kill.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.KillWindowRequest.Target","product":"core","slug":"tmux-killwindowrequest-target"},{"id":"tmux.KillWindowRequest.Index","name":"Index","kind":"attribute","modifiers":[],"parent":"tmux.KillWindowRequest","signatures":[],"type":"*int","doc":{"summary":"Index selects a winlink index within the receiver session when nonnil."},"source":{"file":"tmux/lifecycle_kill.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.KillWindowRequest.Index","product":"core","slug":"tmux-killwindowrequest-index"},{"id":"tmux.Server.Kill","name":"Kill","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Kill(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"Kill terminates the configured tmux server and all of its sessions, windows, panes, and clients. After a completed failed kill, a liveness probe makes repeated calls harmless when no daemon answers. Transport or context errors can be delivery-ambiguous; no rollback is attempted.","body":"tmux leaves the socket file in place, so cleanup that waits for the path to\ndisappear does not finish. Use [Server.IsAlive] to observe the daemon, and\nremove a socket path this process chose itself."},"source":{"file":"tmux/lifecycle_kill.go","line":51,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Kill","product":"core","slug":"tmux-server-kill"},{"id":"tmux.Server.KillSession","name":"KillSession","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) KillSession(ctx context.Context, target string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"target","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"KillSession terminates the session selected by tmux target syntax. Pattern and prefix matching are deliberately left to tmux. Completed nonzero exits without stderr are ignored. Transport and context errors are delivery-ambiguous."},"source":{"file":"tmux/lifecycle_kill.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.KillSession","product":"core","slug":"tmux-server-killsession"},{"id":"tmux.Session.Kill","name":"Kill","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Kill(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"Kill destroys the receiver session and removes its winlinks. Ordinary attached clients detach; on tmux 3.6 or later, clients carrying no-detach-on-destroy move to another session when one exists. A window with no remaining links and all of that window's panes are also destroyed. The materialized receiver is not refreshed. Only stderr makes a completed command a [CommandError]; nonzero exits without stderr are ignored. Transport errors are delivery-ambiguous. Kill is equivalent to [Session.KillWith] with a zero [SessionKillRequest]."},"source":{"file":"tmux/lifecycle_kill.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Kill","product":"core","slug":"tmux-session-kill"},{"id":"tmux.Session.KillWith","name":"KillWith","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) KillWith(ctx context.Context, request SessionKillRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SessionKillRequest"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"KillWith applies one kill-session mode without refreshing the materialized receiver. The zero request destroys the receiver; AllExcept destroys every other session while preserving the receiver and its current window; ClearAlerts only clears alerts in windows linked to the receiver and leaves sessions, winlinks, panes, client attachments, and current-window selections unchanged. Destroying a session handles clients as [Session.Kill] describes and removes its winlinks; windows left without links and their panes are also destroyed. Group destroys the receiver's group and requires tmux 3.7; on older versions it follows [UnsupportedPolicy].","body":"The three modes are mutually exclusive. Only stderr makes a completed command\na [CommandError]; nonzero exits without stderr are ignored. Transport errors\nare delivery-ambiguous."},"source":{"file":"tmux/lifecycle_kill.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.KillWith","product":"core","slug":"tmux-session-killwith"},{"id":"tmux.Session.KillWindow","name":"KillWindow","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) KillWindow(ctx context.Context, request KillWindowRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"KillWindowRequest"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"KillWindow destroys one stable window. When Target and Index are nil it selects the receiver session's current window, and Index selects a winlink in that session. A nonnil Target is forwarded as unrestricted tmux target syntax and may select a window in another session. The selected stable window is removed from every session and its panes are destroyed. Affected sessions preserve their current selection unless this window was current, in which case they select another. A session left without windows is destroyed; [Session.Kill] describes how tmux handles its clients.","body":"Target and Index are mutually exclusive. The receiver is not refreshed. Only\nstderr makes a completed command a [CommandError]; nonzero exits without\nstderr are ignored. Transport errors are delivery-ambiguous."},"source":{"file":"tmux/lifecycle_kill.go","line":169,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.KillWindow","product":"core","slug":"tmux-session-killwindow"},{"id":"tmux.Window.Kill","name":"Kill","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Kill(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"Kill destroys the stable window selected by the receiver's WindowID, removes all of its winlinks, and destroys its panes. Affected sessions preserve their current selection unless this window was current, in which case they select another. A session left without windows is destroyed; [Session.Kill] describes how tmux handles its clients. The receiver is not refreshed. Only stderr makes a completed command a [CommandError]; nonzero exits without stderr are ignored."},"source":{"file":"tmux/lifecycle_kill.go","line":205,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Kill","product":"core","slug":"tmux-window-kill"},{"id":"tmux.Window.KillOthers","name":"KillOthers","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) KillOthers(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"KillOthers destroys every other stable window selected through the receiver's exact session and leaves the receiver as that session's current and only window. Links in other sessions are not selected merely because they share the receiver's [WindowID], but every selected stable window is removed from all sessions. Other affected sessions preserve their current selection unless a destroyed window was current, in which case they select another. A session left without windows is destroyed; [Session.Kill] describes how tmux handles its clients. The receiver is not refreshed. Only stderr makes a completed command a [CommandError]; nonzero exits without stderr are ignored."},"source":{"file":"tmux/lifecycle_kill.go","line":220,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.KillOthers","product":"core","slug":"tmux-window-killothers"},{"id":"tmux.Pane.Kill","name":"Kill","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Kill(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"Kill destroys the receiver pane through its exact linked-pane target. If panes remain and the receiver was active, tmux selects another active pane. If this was the last pane, tmux also destroys the window and removes all of its winlinks. Affected sessions preserve their current selection unless the destroyed window was current, in which case they select another. A session left without windows is destroyed; [Session.Kill] describes how tmux handles its clients. The receiver is not refreshed. Only stderr makes a completed command a [CommandError]; nonzero exits without stderr are ignored."},"source":{"file":"tmux/lifecycle_kill.go","line":237,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Kill","product":"core","slug":"tmux-pane-kill"},{"id":"tmux.Pane.KillOthers","name":"KillOthers","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) KillOthers(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"KillOthers destroys every other pane in the receiver's stable window and leaves the receiver as its sole active pane. It does not select the exact winlink as its session's current window or promise client focus, and it does not destroy a window or session. The receiver is not refreshed. Only stderr makes a completed command a [CommandError]; nonzero exits without stderr are ignored."},"source":{"file":"tmux/lifecycle_kill.go","line":247,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.KillOthers","product":"core","slug":"tmux-pane-killothers"},{"id":"tmux.Server.Session","name":"Session","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Session(ctx context.Context, id SessionID) (Session, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"id","type":"SessionID"}],"receiver":{"name":"s","type":"Server"},"returns":"(Session, error)"}],"doc":{"summary":"Session performs a canonical live lookup of id and returns a newly materialized record. Use [Session.Refresh] when beginning from a record."},"source":{"file":"tmux/lookup.go","line":10,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Session","product":"core","slug":"tmux-server-session"},{"id":"tmux.Server.SessionByName","name":"SessionByName","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SessionByName(ctx context.Context, name string) (Session, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"(Session, error)"}],"doc":{"summary":"SessionByName performs a live lookup of the session tmux knows by name and returns a newly materialized record. A name no session holds reports [ErrNotFound].","body":"tmux keeps session names unique, so a name identifies one session for as\nlong as it keeps it. A [SessionID] does not change, which is why the records\nthis package hands back carry one and [Server.Session] takes one; a name is\nwhat a person types and what a workspace file records."},"source":{"file":"tmux/lookup.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SessionByName","product":"core","slug":"tmux-server-sessionbyname"},{"id":"tmux.Server.Window","name":"Window","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Window(ctx context.Context, id WindowID) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"id","type":"WindowID"}],"receiver":{"name":"s","type":"Server"},"returns":"(Window, error)"}],"doc":{"summary":"Window performs a canonical live lookup of id using tmux's canonical session and returns a newly materialized record. It does not preserve a linked-session view; use [Window.ResolveSession] for that exact relationship."},"source":{"file":"tmux/lookup.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Window","product":"core","slug":"tmux-server-window"},{"id":"tmux.Server.Pane","name":"Pane","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Pane(ctx context.Context, id PaneID) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"id","type":"PaneID"}],"receiver":{"name":"s","type":"Server"},"returns":"(Pane, error)"}],"doc":{"summary":"Pane performs a canonical live lookup of id using tmux's canonical session and returns a newly materialized record. It does not preserve a linked-session view; use [Pane.ResolveWindow] for that exact relationship."},"source":{"file":"tmux/lookup.go","line":78,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Pane","product":"core","slug":"tmux-server-pane"},{"id":"tmux.Server.Client","name":"Client","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Client(ctx context.Context, name ClientName) (Client, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"ClientName"}],"receiver":{"name":"s","type":"Server"},"returns":"(Client, error)"}],"doc":{"summary":"Client performs a canonical live lookup of name and returns a new record."},"source":{"file":"tmux/lookup.go","line":93,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Client","product":"core","slug":"tmux-server-client"},{"id":"tmux.Session.Refresh","name":"Refresh","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Refresh(ctx context.Context) (Session, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"(Session, error)"}],"doc":{"summary":"Refresh performs a canonical live lookup without mutating the receiver."},"source":{"file":"tmux/lookup.go","line":108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Refresh","product":"core","slug":"tmux-session-refresh"},{"id":"tmux.Window.Refresh","name":"Refresh","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Refresh(ctx context.Context) (Window, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"(Window, error)"}],"doc":{"summary":"Refresh performs a canonical live lookup for the window's stable ID and returns a new record without mutating the receiver. It does not preserve a linked-session view; use [Window.ResolveSession] for exact relationships."},"source":{"file":"tmux/lookup.go","line":115,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Refresh","product":"core","slug":"tmux-window-refresh"},{"id":"tmux.Pane.Refresh","name":"Refresh","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Refresh(ctx context.Context) (Pane, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"Refresh performs a canonical live lookup for the pane's stable ID and returns a new record without mutating the receiver. It does not preserve a linked-session view; use [Pane.ResolveWindow] for exact relationships."},"source":{"file":"tmux/lookup.go","line":122,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Refresh","product":"core","slug":"tmux-pane-refresh"},{"id":"tmux.Client.Refresh","name":"Refresh","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Refresh(ctx context.Context) (Client, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"Client"},"returns":"(Client, error)"}],"doc":{"summary":"Refresh performs a canonical live lookup without mutating the receiver."},"source":{"file":"tmux/lookup.go","line":127,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Refresh","product":"core","slug":"tmux-client-refresh"},{"id":"tmux.FormatValues.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.FormatValues","signatures":[{"raw":"func (v FormatValues) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"v","type":"FormatValues"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON encodes the format expansions as tmux returned them. Nothing decodes: [json.Unmarshal] into this type reports no error and changes nothing, because every field is unexported."},"source":{"file":"tmux/marshal.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FormatValues.MarshalJSON","product":"core","slug":"tmux-formatvalues-marshaljson"},{"id":"tmux.Session.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON encodes the session's identity and the format expansions tmux returned for it, under \"formats\". Nothing decodes: a decoded record would carry no [Server], so it could name a session it could never act on, and [json.Unmarshal] into this type reports no error and changes nothing."},"source":{"file":"tmux/marshal.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.MarshalJSON","product":"core","slug":"tmux-session-marshaljson"},{"id":"tmux.Window.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON encodes the window's identity, its place in the hierarchy, and the format expansions tmux returned for it. Nothing decodes; see [Session.MarshalJSON]."},"source":{"file":"tmux/marshal.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.MarshalJSON","product":"core","slug":"tmux-window-marshaljson"},{"id":"tmux.Pane.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON encodes the pane's identity, its place in the hierarchy, and the format expansions tmux returned for it. Nothing decodes; see [Session.MarshalJSON]."},"source":{"file":"tmux/marshal.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.MarshalJSON","product":"core","slug":"tmux-pane-marshaljson"},{"id":"tmux.Client.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON encodes the client's name and the format expansions tmux returned for it. Nothing decodes; see [Session.MarshalJSON]."},"source":{"file":"tmux/marshal.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.MarshalJSON","product":"core","slug":"tmux-client-marshaljson"},{"id":"tmux.Snapshot.MarshalJSON","name":"MarshalJSON","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) MarshalJSON() ([]byte, error)","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"([]byte, error)"}],"doc":{"summary":"MarshalJSON encodes the snapshot's tmux version and the records it holds. A kind it listed encodes as an array, empty when tmux reported none; a kind it never listed is absent. Those are different answers, and one field cannot spell both, which is why the arrays are pointers here. Nothing decodes; see [Session.MarshalJSON]."},"source":{"file":"tmux/marshal.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.MarshalJSON","product":"core","slug":"tmux-snapshot-marshaljson"},{"id":"tmux.SessionID","name":"SessionID","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SessionID is tmux's stable session identifier, including its $ sigil. The zero value is not a usable tmux target."},"source":{"file":"tmux/model.go","line":5,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionID","product":"core","slug":"tmux-sessionid"},{"id":"tmux.SessionID.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.SessionID","signatures":[{"raw":"func (id SessionID) String() string","params":[],"receiver":{"name":"id","type":"SessionID"},"returns":"string"}],"doc":{"summary":"String returns the tmux identifier verbatim."},"source":{"file":"tmux/model.go","line":8,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionID.String","product":"core","slug":"tmux-sessionid-string"},{"id":"tmux.WindowID","name":"WindowID","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WindowID is tmux's stable window identifier, including its @ sigil. It does not distinguish linked-session views; the zero value is not a usable target."},"source":{"file":"tmux/model.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowID","product":"core","slug":"tmux-windowid"},{"id":"tmux.WindowID.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.WindowID","signatures":[{"raw":"func (id WindowID) String() string","params":[],"receiver":{"name":"id","type":"WindowID"},"returns":"string"}],"doc":{"summary":"String returns the tmux identifier verbatim."},"source":{"file":"tmux/model.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowID.String","product":"core","slug":"tmux-windowid-string"},{"id":"tmux.PaneID","name":"PaneID","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneID is tmux's stable pane identifier, including its % sigil. It does not distinguish linked-session views; the zero value is not a usable target."},"source":{"file":"tmux/model.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneID","product":"core","slug":"tmux-paneid"},{"id":"tmux.PaneID.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.PaneID","signatures":[{"raw":"func (id PaneID) String() string","params":[],"receiver":{"name":"id","type":"PaneID"},"returns":"string"}],"doc":{"summary":"String returns the tmux identifier verbatim."},"source":{"file":"tmux/model.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneID.String","product":"core","slug":"tmux-paneid-string"},{"id":"tmux.ClientName","name":"ClientName","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ClientName is tmux's stable client name, normally its terminal path. The zero value is not a usable tmux target."},"source":{"file":"tmux/model.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientName","product":"core","slug":"tmux-clientname"},{"id":"tmux.ClientName.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.ClientName","signatures":[{"raw":"func (name ClientName) String() string","params":[],"receiver":{"name":"name","type":"ClientName"},"returns":"string"}],"doc":{"summary":"String returns the tmux client name verbatim."},"source":{"file":"tmux/model.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClientName.String","product":"core","slug":"tmux-clientname-string"},{"id":"tmux.Session","name":"Session","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Session is one materialized tmux session record. It is normally returned by [Server.Snapshot], [Server.Session], or [Session.Refresh]. A zero Session is not a usable tmux target."},"source":{"file":"tmux/model.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session","product":"core","slug":"tmux-session"},{"id":"tmux.Session.ID","name":"ID","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) ID() SessionID","params":[],"receiver":{"name":"s","type":"Session"},"returns":"SessionID"}],"doc":{"summary":"ID returns the stable tmux identity of this session."},"source":{"file":"tmux/model.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.ID","product":"core","slug":"tmux-session-id"},{"id":"tmux.Session.Server","name":"Server","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Server() Server","params":[],"receiver":{"name":"s","type":"Session"},"returns":"Server"}],"doc":{"summary":"Server returns the immutable configured handle that produced the session."},"source":{"file":"tmux/model.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Server","product":"core","slug":"tmux-session-server"},{"id":"tmux.Session.Windows","name":"Windows","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Windows() ([]Window, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"([]Window, bool)"}],"doc":{"summary":"Windows returns newly allocated shallow copies of this snapshot record's winlink views, and reports whether the receiver carries relations at all.","body":"It never queries tmux. [Server.Snapshot] and the resolvers carry relations; a\ntargeted lookup, refresh, or creation reports false rather than an empty\nrelation. Use [Session.SearchWindows] for current live windows."},"source":{"file":"tmux/model.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Windows","product":"core","slug":"tmux-session-windows"},{"id":"tmux.Session.Panes","name":"Panes","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Panes() ([]Pane, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"([]Pane, bool)"}],"doc":{"summary":"Panes returns newly allocated shallow copies of this snapshot record's pane views, and reports whether the receiver carries relations at all.","body":"It never queries tmux. [Server.Snapshot] and the resolvers carry relations; a\ntargeted lookup, refresh, or creation reports false rather than an empty\nrelation. Use [Session.SearchPanes] for current live panes."},"source":{"file":"tmux/model.go","line":75,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Panes","product":"core","slug":"tmux-session-panes"},{"id":"tmux.Window","name":"Window","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Window is one materialized (session, index, window) winlink record. It is normally returned by [Server.Snapshot], [Server.Window], or [Window.Refresh]. A zero Window is not a usable tmux target."},"source":{"file":"tmux/model.go","line":89,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window","product":"core","slug":"tmux-window"},{"id":"tmux.Window.SessionID","name":"SessionID","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SessionID() SessionID","params":[],"receiver":{"name":"w","type":"Window"},"returns":"SessionID"}],"doc":{"summary":"SessionID returns the linked session containing this view."},"source":{"file":"tmux/model.go","line":99,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SessionID","product":"core","slug":"tmux-window-sessionid"},{"id":"tmux.Window.ID","name":"ID","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ID() WindowID","params":[],"receiver":{"name":"w","type":"Window"},"returns":"WindowID"}],"doc":{"summary":"ID returns the underlying stable tmux window identity."},"source":{"file":"tmux/model.go","line":102,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ID","product":"core","slug":"tmux-window-id"},{"id":"tmux.Window.Index","name":"Index","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Index() int","params":[],"receiver":{"name":"w","type":"Window"},"returns":"int"}],"doc":{"summary":"Index returns this window's index in its linked session. It returns -1 for a partial Window whose exact winlink has not been materialized."},"source":{"file":"tmux/model.go","line":106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Index","product":"core","slug":"tmux-window-index"},{"id":"tmux.Window.Server","name":"Server","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Server() Server","params":[],"receiver":{"name":"w","type":"Window"},"returns":"Server"}],"doc":{"summary":"Server returns the configured handle that produced the window."},"source":{"file":"tmux/model.go","line":109,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Server","product":"core","slug":"tmux-window-server"},{"id":"tmux.Window.Session","name":"Session","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Session() (Session, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(Session, bool)"}],"doc":{"summary":"Session returns this view's parent record when it remains in the same snapshot. It never queries tmux."},"source":{"file":"tmux/model.go","line":118,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Session","product":"core","slug":"tmux-window-session"},{"id":"tmux.Window.Panes","name":"Panes","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Panes() ([]Pane, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"([]Pane, bool)"}],"doc":{"summary":"Panes returns newly allocated shallow copies of panes for this exact winlink, and reports whether the receiver carries relations at all.","body":"It never queries tmux. [Server.Snapshot], the resolvers, and\n[Session.NewWindow] carry relations; a targeted lookup or refresh reports\nfalse instead. Use [Window.SearchPanes] for current live panes."},"source":{"file":"tmux/model.go","line":135,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Panes","product":"core","slug":"tmux-window-panes"},{"id":"tmux.Pane","name":"Pane","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Pane is one materialized pane record within a specific winlink. It is normally returned by [Server.Snapshot], [Server.Pane], or [Pane.Refresh]. A zero Pane is not a usable tmux target."},"source":{"file":"tmux/model.go","line":150,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane","product":"core","slug":"tmux-pane"},{"id":"tmux.Pane.SessionID","name":"SessionID","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SessionID() SessionID","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"SessionID"}],"doc":{"summary":"SessionID returns the linked session containing this pane view."},"source":{"file":"tmux/model.go","line":162,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SessionID","product":"core","slug":"tmux-pane-sessionid"},{"id":"tmux.Pane.WindowID","name":"WindowID","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) WindowID() WindowID","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"WindowID"}],"doc":{"summary":"WindowID returns the underlying stable tmux window identity."},"source":{"file":"tmux/model.go","line":165,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.WindowID","product":"core","slug":"tmux-pane-windowid"},{"id":"tmux.Pane.WindowIndex","name":"WindowIndex","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) WindowIndex() int","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"int"}],"doc":{"summary":"WindowIndex returns this pane view's window index in its linked session."},"source":{"file":"tmux/model.go","line":168,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.WindowIndex","product":"core","slug":"tmux-pane-windowindex"},{"id":"tmux.Pane.ID","name":"ID","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ID() PaneID","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"PaneID"}],"doc":{"summary":"ID returns the stable tmux pane identity."},"source":{"file":"tmux/model.go","line":171,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ID","product":"core","slug":"tmux-pane-id"},{"id":"tmux.Pane.Index","name":"Index","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Index() int","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"int"}],"doc":{"summary":"Index returns the pane's index in its exact window view. Unlike the materialized format accessors it sits beside, it returns a plain int, because a pane record always carries the index tmux placed it at."},"source":{"file":"tmux/model.go","line":176,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Index","product":"core","slug":"tmux-pane-index"},{"id":"tmux.Pane.Server","name":"Server","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Server() Server","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"Server"}],"doc":{"summary":"Server returns the configured handle that produced the pane."},"source":{"file":"tmux/model.go","line":179,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Server","product":"core","slug":"tmux-pane-server"},{"id":"tmux.Pane.Session","name":"Session","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Session() (Session, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(Session, bool)"}],"doc":{"summary":"Session returns this view's parent record when it remains in the same snapshot. It never queries tmux."},"source":{"file":"tmux/model.go","line":188,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Session","product":"core","slug":"tmux-pane-session"},{"id":"tmux.Pane.Window","name":"Window","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Window() (Window, bool)","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"(Window, bool)"}],"doc":{"summary":"Window returns this pane's exact winlink record when it remains in the same snapshot. It never queries tmux."},"source":{"file":"tmux/model.go","line":201,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Window","product":"core","slug":"tmux-pane-window"},{"id":"tmux.Client","name":"Client","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Client is one materialized tmux client record. It is normally returned by [Server.Snapshot], [Server.Client], or [Client.Refresh]. A zero Client is not a usable tmux target."},"source":{"file":"tmux/model.go","line":216,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client","product":"core","slug":"tmux-client"},{"id":"tmux.Client.Server","name":"Server","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Server() Server","params":[],"receiver":{"name":"c","type":"Client"},"returns":"Server"}],"doc":{"summary":"Server returns the configured handle that produced the client."},"source":{"file":"tmux/model.go","line":235,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Server","product":"core","slug":"tmux-client-server"},{"id":"tmux.Client.Name","name":"Name","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) Name() ClientName","params":[],"receiver":{"name":"c","type":"Client"},"returns":"ClientName"}],"doc":{"summary":"Name returns the stable tmux name of this client."},"source":{"file":"tmux/model.go","line":238,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.Name","product":"core","slug":"tmux-client-name"},{"id":"tmux.Client.AttachedSession","name":"AttachedSession","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) AttachedSession() (Session, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(Session, bool)"}],"doc":{"summary":"AttachedSession returns the materialized attached session, if present in the same snapshot. It never queries tmux."},"source":{"file":"tmux/model.go","line":242,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.AttachedSession","product":"core","slug":"tmux-client-attachedsession"},{"id":"tmux.Client.AttachedWindow","name":"AttachedWindow","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) AttachedWindow() (Window, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(Window, bool)"}],"doc":{"summary":"AttachedWindow returns the client's exact materialized winlink, if present in the same snapshot. It never queries tmux."},"source":{"file":"tmux/model.go","line":255,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.AttachedWindow","product":"core","slug":"tmux-client-attachedwindow"},{"id":"tmux.Client.AttachedPane","name":"AttachedPane","kind":"method","modifiers":[],"parent":"tmux.Client","signatures":[{"raw":"func (c Client) AttachedPane() (Pane, bool)","params":[],"receiver":{"name":"c","type":"Client"},"returns":"(Pane, bool)"}],"doc":{"summary":"AttachedPane returns the client's exact materialized pane view, if present in the same snapshot. It never queries tmux."},"source":{"file":"tmux/model.go","line":273,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Client.AttachedPane","product":"core","slug":"tmux-client-attachedpane"},{"id":"tmux.NotificationStream","name":"NotificationStream","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"NotificationStream owns one observation-only control client attached to a session. It yields tmux notifications in wire order and must be closed. Before tmux 3.6, destroying the attached session follows that session's detach-on-destroy policy and may end the stream."},"source":{"file":"tmux/notification_stream.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationStream","product":"core","slug":"tmux-notificationstream"},{"id":"tmux.NotificationOptions","name":"NotificationOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"NotificationOptions configures which notifications a stream receives. The zero value retains notifications other than pane output."},"source":{"file":"tmux/notification_stream.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationOptions","product":"core","slug":"tmux-notificationoptions"},{"id":"tmux.NotificationOptions.IncludePaneOutput","name":"IncludePaneOutput","kind":"attribute","modifiers":[],"parent":"tmux.NotificationOptions","signatures":[],"type":"bool","doc":{"summary":"IncludePaneOutput includes output and extended-output notifications."},"source":{"file":"tmux/notification_stream.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationOptions.IncludePaneOutput","product":"core","slug":"tmux-notificationoptions-includepaneoutput"},{"id":"tmux.NotificationOptions.PauseAfter","name":"PauseAfter","kind":"attribute","modifiers":[],"parent":"tmux.NotificationOptions","signatures":[],"type":"time.Duration","doc":{"summary":"PauseAfter asks tmux to hold a pane's output once this stream is that far behind on it, and to say so with a pause notification. Zero leaves tmux's own behavior, which ends a stream that falls five minutes behind rather than pausing it. tmux resolves this to whole seconds, and it governs pane output, so it requires IncludePaneOutput."},"source":{"file":"tmux/notification_stream.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationOptions.PauseAfter","product":"core","slug":"tmux-notificationoptions-pauseafter"},{"id":"tmux.Server.OpenNotifications","name":"OpenNotifications","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) OpenNotifications(\n\tctx context.Context,\n\tsession Session,\n\toptions NotificationOptions,\n) (*NotificationStream, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"session","type":"Session"},{"name":"options","type":"NotificationOptions"}],"receiver":{"name":"s","type":"Server"},"returns":"(*NotificationStream, error)"}],"doc":{"summary":"OpenNotifications starts an owned observation-only stream attached to session. Session must belong to the same configured server selector. A connection-bound server returns [ErrConnectionRequiresProcess]."},"source":{"file":"tmux/notification_stream.go","line":55,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.OpenNotifications","product":"core","slug":"tmux-server-opennotifications"},{"id":"tmux.NotificationStream.ContinuePane","name":"ContinuePane","kind":"method","modifiers":[],"parent":"tmux.NotificationStream","signatures":[{"raw":"func (s *NotificationStream) ContinuePane(ctx context.Context, pane PaneID) error","params":[{"name":"ctx","type":"context.Context"},{"name":"pane","type":"PaneID"}],"receiver":{"name":"s","type":"*NotificationStream"},"returns":"error"}],"doc":{"summary":"ContinuePane resumes pane output tmux held after this stream fell behind on it. tmux does not replay what it held, so read the pane to recover that span rather than waiting for it. Resuming a pane tmux never paused does nothing and reports nothing, because tmux answers neither."},"source":{"file":"tmux/notification_stream.go","line":91,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationStream.ContinuePane","product":"core","slug":"tmux-notificationstream-continuepane"},{"id":"tmux.SubscriptionRequest","name":"SubscriptionRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SubscriptionRequest names a format for tmux to evaluate and report on this stream whenever its value changes. Its zero value is invalid because Name and Format are required. At most one of Session, Window, and Pane scopes the evaluation; none evaluates against the stream's attached session.","body":"tmux stops evaluating a pane-scoped subscription once that pane's process has\nexited, so a subscription that must observe pane death is scoped to the\nwindow and reads the pane from the change it reports."},"source":{"file":"tmux/notification_stream.go","line":115,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionRequest","product":"core","slug":"tmux-subscriptionrequest"},{"id":"tmux.SubscriptionRequest.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionRequest","signatures":[],"type":"string","doc":{"summary":"Name identifies the subscription in each change and to Unsubscribe. It may not contain a colon or a space."},"source":{"file":"tmux/notification_stream.go","line":118,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionRequest.Name","product":"core","slug":"tmux-subscriptionrequest-name"},{"id":"tmux.SubscriptionRequest.Format","name":"Format","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionRequest","signatures":[],"type":"string","doc":{"summary":"Format is the tmux format to evaluate, such as #{pane_current_command}."},"source":{"file":"tmux/notification_stream.go","line":120,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionRequest.Format","product":"core","slug":"tmux-subscriptionrequest-format"},{"id":"tmux.SubscriptionRequest.Session","name":"Session","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionRequest","signatures":[],"type":"SessionID","doc":{"summary":"Session scopes evaluation to the stream's attached session. tmux always evaluates a session-scoped subscription against the control client's own session, so this only requests that scope; it is not a selector, and any value is equivalent to the stream's own session."},"source":{"file":"tmux/notification_stream.go","line":125,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionRequest.Session","product":"core","slug":"tmux-subscriptionrequest-session"},{"id":"tmux.SubscriptionRequest.Window","name":"Window","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionRequest","signatures":[],"type":"WindowID","doc":{"summary":"Window scopes evaluation to one window."},"source":{"file":"tmux/notification_stream.go","line":127,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionRequest.Window","product":"core","slug":"tmux-subscriptionrequest-window"},{"id":"tmux.SubscriptionRequest.Pane","name":"Pane","kind":"attribute","modifiers":[],"parent":"tmux.SubscriptionRequest","signatures":[],"type":"PaneID","doc":{"summary":"Pane scopes evaluation to one pane."},"source":{"file":"tmux/notification_stream.go","line":129,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SubscriptionRequest.Pane","product":"core","slug":"tmux-subscriptionrequest-pane"},{"id":"tmux.NotificationStream.Subscribe","name":"Subscribe","kind":"method","modifiers":[],"parent":"tmux.NotificationStream","signatures":[{"raw":"func (s *NotificationStream) Subscribe(ctx context.Context, request SubscriptionRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SubscriptionRequest"}],"receiver":{"name":"s","type":"*NotificationStream"},"returns":"error"}],"doc":{"summary":"Subscribe asks tmux to evaluate request's format and report it on this stream as a subscription-changed notification, read with [ControlNotification.Subscription]. tmux reports the value at its next evaluation, about a second later, and then each time it changes. Arming a name already armed replaces its format."},"source":{"file":"tmux/notification_stream.go","line":189,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationStream.Subscribe","product":"core","slug":"tmux-notificationstream-subscribe"},{"id":"tmux.NotificationStream.Unsubscribe","name":"Unsubscribe","kind":"method","modifiers":[],"parent":"tmux.NotificationStream","signatures":[{"raw":"func (s *NotificationStream) Unsubscribe(ctx context.Context, name string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"*NotificationStream"},"returns":"error"}],"doc":{"summary":"Unsubscribe stops the subscription armed under name. Stopping a name that was never armed does nothing and reports nothing, because tmux answers neither."},"source":{"file":"tmux/notification_stream.go","line":204,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationStream.Unsubscribe","product":"core","slug":"tmux-notificationstream-unsubscribe"},{"id":"tmux.Session.OpenNotifications","name":"OpenNotifications","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) OpenNotifications(\n\tctx context.Context,\n\toptions NotificationOptions,\n) (*NotificationStream, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"options","type":"NotificationOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"(*NotificationStream, error)"}],"doc":{"summary":"OpenNotifications starts an owned notification stream attached to the receiver. It does not change the receiver's transport or expose control commands. A connection-bound receiver returns [ErrConnectionRequiresProcess]."},"source":{"file":"tmux/notification_stream.go","line":233,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.OpenNotifications","product":"core","slug":"tmux-session-opennotifications"},{"id":"tmux.NotificationStream.Next","name":"Next","kind":"method","modifiers":[],"parent":"tmux.NotificationStream","signatures":[{"raw":"func (s *NotificationStream) Next(\n\tctx context.Context,\n) (ControlNotification, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"*NotificationStream"},"returns":"(ControlNotification, error)"}],"doc":{"summary":"Next returns the next ordered control-mode notification. Exactly one caller may use Next at a time."},"source":{"file":"tmux/notification_stream.go","line":242,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationStream.Next","product":"core","slug":"tmux-notificationstream-next"},{"id":"tmux.NotificationStream.Notifications","name":"Notifications","kind":"method","modifiers":[],"parent":"tmux.NotificationStream","signatures":[{"raw":"func (s *NotificationStream) Notifications(\n\tctx context.Context,\n) iter.Seq2[ControlNotification, error]","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"*NotificationStream"},"returns":"iter.Seq2[ControlNotification, error]"}],"doc":{"summary":"Notifications returns [NotificationStream.Next] as a range loop; exactly one iterator or direct read may run at a time. Malformed notifications yield their error and iteration continues; every other error ends the loop after being yielded."},"source":{"file":"tmux/notification_stream.go","line":255,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationStream.Notifications","product":"core","slug":"tmux-notificationstream-notifications"},{"id":"tmux.NotificationStream.CloseContext","name":"CloseContext","kind":"method","modifiers":[],"parent":"tmux.NotificationStream","signatures":[{"raw":"func (s *NotificationStream) CloseContext(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"*NotificationStream"},"returns":"error"}],"doc":{"summary":"CloseContext starts idempotent stream shutdown and waits within ctx. The context bounds only the wait; a later call may resume waiting for shutdown."},"source":{"file":"tmux/notification_stream.go","line":263,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationStream.CloseContext","product":"core","slug":"tmux-notificationstream-closecontext"},{"id":"tmux.NotificationStream.Close","name":"Close","kind":"method","modifiers":[],"parent":"tmux.NotificationStream","signatures":[{"raw":"func (s *NotificationStream) Close() error","params":[],"receiver":{"name":"s","type":"*NotificationStream"},"returns":"error"}],"doc":{"summary":"Close stops the notification stream. It is safe to call concurrently and more than once."},"source":{"file":"tmux/notification_stream.go","line":272,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NotificationStream.Close","product":"core","slug":"tmux-notificationstream-close"},{"id":"tmux.CommandTransport","name":"CommandTransport","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CommandTransport names how one tmux command reached tmux."},"source":{"file":"tmux/observer.go","line":9,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTransport","product":"core","slug":"tmux-commandtransport"},{"id":"tmux.CommandTransportProcess","name":"CommandTransportProcess","kind":"constant","modifiers":[],"signatures":[],"type":"CommandTransport","doc":{"summary":"CommandTransportProcess ran the command as its own tmux process."},"source":{"file":"tmux/observer.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTransportProcess","product":"core","slug":"tmux-commandtransportprocess"},{"id":"tmux.CommandTransportConnection","name":"CommandTransportConnection","kind":"constant","modifiers":[],"signatures":[],"type":"CommandTransport","doc":{"summary":"CommandTransportConnection carried the command over a control-mode connection opened earlier."},"source":{"file":"tmux/observer.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTransportConnection","product":"core","slug":"tmux-commandtransportconnection"},{"id":"tmux.CommandTransport.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.CommandTransport","signatures":[{"raw":"func (t CommandTransport) String() string","params":[],"receiver":{"name":"t","type":"CommandTransport"},"returns":"string"}],"doc":{"summary":"String implements fmt.Stringer."},"source":{"file":"tmux/observer.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTransport.String","product":"core","slug":"tmux-commandtransport-string"},{"id":"tmux.CommandTrace","name":"CommandTrace","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CommandTrace records one completed attempt to run a tmux command. It carries neither the argument vector nor tmux's output, both of which may hold passwords, tokens, or pane contents; [CommandError] is where a caller that accepts that reads them."},"source":{"file":"tmux/observer.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTrace","product":"core","slug":"tmux-commandtrace"},{"id":"tmux.CommandTrace.Subcommand","name":"Subcommand","kind":"attribute","modifiers":[],"parent":"tmux.CommandTrace","signatures":[],"type":"string","doc":{"summary":"Subcommand is the tmux subcommand, such as \"list-sessions\". A raw command list reports its first subcommand."},"source":{"file":"tmux/observer.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTrace.Subcommand","product":"core","slug":"tmux-commandtrace-subcommand"},{"id":"tmux.CommandTrace.Transport","name":"Transport","kind":"attribute","modifiers":[],"parent":"tmux.CommandTrace","signatures":[],"type":"CommandTransport","doc":{"summary":"Transport names how the command reached tmux."},"source":{"file":"tmux/observer.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTrace.Transport","product":"core","slug":"tmux-commandtrace-transport"},{"id":"tmux.CommandTrace.Duration","name":"Duration","kind":"attribute","modifiers":[],"parent":"tmux.CommandTrace","signatures":[],"type":"time.Duration","doc":{"summary":"Duration is how long the attempt took."},"source":{"file":"tmux/observer.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTrace.Duration","product":"core","slug":"tmux-commandtrace-duration"},{"id":"tmux.CommandTrace.ExitCode","name":"ExitCode","kind":"attribute","modifiers":[],"parent":"tmux.CommandTrace","signatures":[],"type":"int","doc":{"summary":"ExitCode is tmux's exit code, or -1 when no tmux command ran."},"source":{"file":"tmux/observer.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTrace.ExitCode","product":"core","slug":"tmux-commandtrace-exitcode"},{"id":"tmux.CommandTrace.Err","name":"Err","kind":"attribute","modifiers":[],"parent":"tmux.CommandTrace","signatures":[],"type":"error","doc":{"summary":"Err is the transport or validation failure, if any. A completed tmux command that failed leaves this nil and reports through ExitCode."},"source":{"file":"tmux/observer.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTrace.Err","product":"core","slug":"tmux-commandtrace-err"},{"id":"tmux.CommandTrace.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.CommandTrace","signatures":[{"raw":"func (t CommandTrace) String() string","params":[],"receiver":{"name":"t","type":"CommandTrace"},"returns":"string"}],"doc":{"summary":"String implements fmt.Stringer."},"source":{"file":"tmux/observer.go","line":51,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandTrace.String","product":"core","slug":"tmux-commandtrace-string"},{"id":"tmux.CommandObserver","name":"CommandObserver","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CommandObserver receives one [CommandTrace] per tmux command a [Server] and the values derived from it run:","body":"```go\nserver, err := tmux.NewServer(tmux.ServerOptions{\n\tCommandObserver: func(trace tmux.CommandTrace) {\n\t\tslog.Info(\"tmux\", \"command\", trace.Subcommand,\n\t\t\t\"transport\", trace.Transport.String(),\n\t\t\t\"duration\", trace.Duration, \"exit\", trace.ExitCode)\n\t},\n})\nif err != nil {\n\tlog.Fatal(err)\n}\n```\n\nIt is called synchronously on the goroutine that ran the command, after the\ncommand finishes and before its result is returned, so a slow observer slows\nevery command. Operations may invoke it concurrently; synchronize shared\nstate. A nil observer costs nothing, not even the clock reads.\n\nIt sees the version probes this package runs on its own behalf, and the\nidentity probe a daemon guard runs to decide whether a failure was a\nreplaced daemon, so one call can produce more than one trace."},"source":{"file":"tmux/observer.go","line":82,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandObserver","product":"core","slug":"tmux-commandobserver"},{"id":"tmux.ErrMalformedOptionOutput","name":"ErrMalformedOptionOutput","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrMalformedOptionOutput identifies a recognized option or hook record that cannot be decoded without ambiguity. It is matched by errors.Is for OptionDecodeError."},"source":{"file":"tmux/option_decode.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrMalformedOptionOutput","product":"core","slug":"tmux-errmalformedoptionoutput"},{"id":"tmux.OptionDecodeError","name":"OptionDecodeError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"OptionDecodeError reports a malformed recognized record without retaining its value. It matches [ErrMalformedOptionOutput] through errors.Is; callers can recover Record and Reason with errors.As. Record is the zero-based physical output line."},"source":{"file":"tmux/option_decode.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionDecodeError","product":"core","slug":"tmux-optiondecodeerror"},{"id":"tmux.OptionDecodeError.Record","name":"Record","kind":"attribute","modifiers":[],"parent":"tmux.OptionDecodeError","signatures":[],"type":"int","doc":{"summary":"Record is the zero-based physical output line."},"source":{"file":"tmux/option_decode.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionDecodeError.Record","product":"core","slug":"tmux-optiondecodeerror-record"},{"id":"tmux.OptionDecodeError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.OptionDecodeError","signatures":[],"type":"string","doc":{"summary":"Reason describes the malformed record without retaining its value."},"source":{"file":"tmux/option_decode.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionDecodeError.Reason","product":"core","slug":"tmux-optiondecodeerror-reason"},{"id":"tmux.OptionDecodeError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.OptionDecodeError","signatures":[{"raw":"func (e *OptionDecodeError) Error() string","params":[],"receiver":{"name":"e","type":"*OptionDecodeError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/option_decode.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionDecodeError.Error","product":"core","slug":"tmux-optiondecodeerror-error"},{"id":"tmux.OptionDecodeError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.OptionDecodeError","signatures":[{"raw":"func (e *OptionDecodeError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*OptionDecodeError"},"returns":"error"}],"doc":{"summary":"Unwrap makes OptionDecodeError compatible with ErrMalformedOptionOutput."},"source":{"file":"tmux/option_decode.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionDecodeError.Unwrap","product":"core","slug":"tmux-optiondecodeerror-unwrap"},{"id":"tmux.ErrOption","name":"ErrOption","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrOption identifies a failed high-level option or hook operation. It is matched by errors.Is for OptionError."},"source":{"file":"tmux/option_error.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrOption","product":"core","slug":"tmux-erroption"},{"id":"tmux.ErrUnknownOption","name":"ErrUnknownOption","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrUnknownOption identifies tmux's case-sensitive unknown-option diagnostic."},"source":{"file":"tmux/option_error.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrUnknownOption","product":"core","slug":"tmux-errunknownoption"},{"id":"tmux.ErrInvalidOption","name":"ErrInvalidOption","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidOption identifies tmux's case-sensitive invalid-option diagnostic."},"source":{"file":"tmux/option_error.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidOption","product":"core","slug":"tmux-errinvalidoption"},{"id":"tmux.ErrInvalidOptionValue","name":"ErrInvalidOptionValue","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidOptionValue identifies a typed option value outside its active tmux-version domain."},"source":{"file":"tmux/option_error.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidOptionValue","product":"core","slug":"tmux-errinvalidoptionvalue"},{"id":"tmux.ErrAmbiguousOption","name":"ErrAmbiguousOption","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrAmbiguousOption identifies tmux's case-sensitive ambiguous-option diagnostic."},"source":{"file":"tmux/option_error.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrAmbiguousOption","product":"core","slug":"tmux-errambiguousoption"},{"id":"tmux.ErrOptionTarget","name":"ErrOptionTarget","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrOptionTarget identifies an option or hook operation whose target did not resolve, which is the failure an unknown name is most easily mistaken for. Classifying it discloses nothing that redaction protects: which kind of failure occurred is not one of the values or hook commands an option error withholds."},"source":{"file":"tmux/option_error.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrOptionTarget","product":"core","slug":"tmux-erroptiontarget"},{"id":"tmux.OptionValueError","name":"OptionValueError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"OptionValueError reports a rejected typed option value without retaining or rendering that value. It matches [ErrInvalidOptionValue] and [ErrOption]."},"source":{"file":"tmux/option_error.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionValueError","product":"core","slug":"tmux-optionvalueerror"},{"id":"tmux.OptionValueError.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.OptionValueError","signatures":[],"type":"string","doc":{"summary":"Name is the safe, generated tmux option name."},"source":{"file":"tmux/option_error.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionValueError.Name","product":"core","slug":"tmux-optionvalueerror-name"},{"id":"tmux.OptionValueError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.OptionValueError","signatures":[{"raw":"func (e *OptionValueError) Error() string","params":[],"receiver":{"name":"e","type":"*OptionValueError"},"returns":"string"}],"doc":{"summary":"Error implements error without disclosing the attempted value."},"source":{"file":"tmux/option_error.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionValueError.Error","product":"core","slug":"tmux-optionvalueerror-error"},{"id":"tmux.OptionValueError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.OptionValueError","signatures":[{"raw":"func (e *OptionValueError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*OptionValueError"},"returns":"error"}],"doc":{"summary":"Unwrap makes OptionValueError compatible with ErrInvalidOptionValue."},"source":{"file":"tmux/option_error.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionValueError.Unwrap","product":"core","slug":"tmux-optionvalueerror-unwrap"},{"id":"tmux.OptionError","name":"OptionError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"OptionError reports a completed high-level option or hook failure. It matches [ErrOption] and a specific option sentinel through errors.Is; callers can recover its fields with errors.As. Library-created errors retain only Result.ExitCode. Error never renders command output because option values and hook commands may be secret; callers may construct exported values with other contents."},"source":{"file":"tmux/option_error.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionError","product":"core","slug":"tmux-optionerror"},{"id":"tmux.OptionError.Subcommand","name":"Subcommand","kind":"attribute","modifiers":[],"parent":"tmux.OptionError","signatures":[],"type":"string","doc":{"summary":"Subcommand is the failed tmux option or hook subcommand."},"source":{"file":"tmux/option_error.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionError.Subcommand","product":"core","slug":"tmux-optionerror-subcommand"},{"id":"tmux.OptionError.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.OptionError","signatures":[],"type":"string","doc":{"summary":"Name is the option or hook name, when available."},"source":{"file":"tmux/option_error.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionError.Name","product":"core","slug":"tmux-optionerror-name"},{"id":"tmux.OptionError.Result","name":"Result","kind":"attribute","modifiers":[],"parent":"tmux.OptionError","signatures":[],"type":"CommandResult","doc":{"summary":"Result contains the library-created error's exit code and no diagnostics."},"source":{"file":"tmux/option_error.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionError.Result","product":"core","slug":"tmux-optionerror-result"},{"id":"tmux.OptionError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.OptionError","signatures":[{"raw":"func (e *OptionError) Error() string","params":[],"receiver":{"name":"e","type":"*OptionError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/option_error.go","line":72,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionError.Error","product":"core","slug":"tmux-optionerror-error"},{"id":"tmux.OptionError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.OptionError","signatures":[{"raw":"func (e *OptionError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*OptionError"},"returns":"error"}],"doc":{"summary":"Unwrap makes OptionError compatible with ErrOption and its specific kinds."},"source":{"file":"tmux/option_error.go","line":102,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionError.Unwrap","product":"core","slug":"tmux-optionerror-unwrap"},{"id":"tmux.ActivityAction","name":"ActivityAction","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ActivityAction is a typed value for the \"activity-action\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":11,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ActivityAction","product":"core","slug":"tmux-activityaction"},{"id":"tmux.ActivityActionNone","name":"ActivityActionNone","kind":"constant","modifiers":[],"signatures":[],"type":"ActivityAction","doc":{"summary":"ActivityActionNone selects \"none\"."},"source":{"file":"tmux/option_generated.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ActivityActionNone","product":"core","slug":"tmux-activityactionnone"},{"id":"tmux.ActivityActionAny","name":"ActivityActionAny","kind":"constant","modifiers":[],"signatures":[],"type":"ActivityAction","doc":{"summary":"ActivityActionAny selects \"any\"."},"source":{"file":"tmux/option_generated.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ActivityActionAny","product":"core","slug":"tmux-activityactionany"},{"id":"tmux.ActivityActionCurrent","name":"ActivityActionCurrent","kind":"constant","modifiers":[],"signatures":[],"type":"ActivityAction","doc":{"summary":"ActivityActionCurrent selects \"current\"."},"source":{"file":"tmux/option_generated.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ActivityActionCurrent","product":"core","slug":"tmux-activityactioncurrent"},{"id":"tmux.ActivityActionOther","name":"ActivityActionOther","kind":"constant","modifiers":[],"signatures":[],"type":"ActivityAction","doc":{"summary":"ActivityActionOther selects \"other\"."},"source":{"file":"tmux/option_generated.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ActivityActionOther","product":"core","slug":"tmux-activityactionother"},{"id":"tmux.ActivityAction.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.ActivityAction","signatures":[{"raw":"func (v ActivityAction) String() string","params":[],"receiver":{"name":"v","type":"ActivityAction"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ActivityAction.String","product":"core","slug":"tmux-activityaction-string"},{"id":"tmux.ActivityAction.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.ActivityAction","signatures":[{"raw":"func (v ActivityAction) Valid() bool","params":[],"receiver":{"name":"v","type":"ActivityAction"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ActivityAction.Valid","product":"core","slug":"tmux-activityaction-valid"},{"id":"tmux.AllowPassthrough","name":"AllowPassthrough","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"AllowPassthrough is a typed value for the \"allow-passthrough\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AllowPassthrough","product":"core","slug":"tmux-allowpassthrough"},{"id":"tmux.AllowPassthroughOff","name":"AllowPassthroughOff","kind":"constant","modifiers":[],"signatures":[],"type":"AllowPassthrough","doc":{"summary":"AllowPassthroughOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AllowPassthroughOff","product":"core","slug":"tmux-allowpassthroughoff"},{"id":"tmux.AllowPassthroughOn","name":"AllowPassthroughOn","kind":"constant","modifiers":[],"signatures":[],"type":"AllowPassthrough","doc":{"summary":"AllowPassthroughOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AllowPassthroughOn","product":"core","slug":"tmux-allowpassthroughon"},{"id":"tmux.AllowPassthroughAll","name":"AllowPassthroughAll","kind":"constant","modifiers":[],"signatures":[],"type":"AllowPassthrough","doc":{"summary":"AllowPassthroughAll selects \"all\"."},"source":{"file":"tmux/option_generated.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AllowPassthroughAll","product":"core","slug":"tmux-allowpassthroughall"},{"id":"tmux.AllowPassthrough.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.AllowPassthrough","signatures":[{"raw":"func (v AllowPassthrough) String() string","params":[],"receiver":{"name":"v","type":"AllowPassthrough"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AllowPassthrough.String","product":"core","slug":"tmux-allowpassthrough-string"},{"id":"tmux.AllowPassthrough.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.AllowPassthrough","signatures":[{"raw":"func (v AllowPassthrough) Valid() bool","params":[],"receiver":{"name":"v","type":"AllowPassthrough"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AllowPassthrough.Valid","product":"core","slug":"tmux-allowpassthrough-valid"},{"id":"tmux.BellAction","name":"BellAction","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"BellAction is a typed value for the \"bell-action\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BellAction","product":"core","slug":"tmux-bellaction"},{"id":"tmux.BellActionNone","name":"BellActionNone","kind":"constant","modifiers":[],"signatures":[],"type":"BellAction","doc":{"summary":"BellActionNone selects \"none\"."},"source":{"file":"tmux/option_generated.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BellActionNone","product":"core","slug":"tmux-bellactionnone"},{"id":"tmux.BellActionAny","name":"BellActionAny","kind":"constant","modifiers":[],"signatures":[],"type":"BellAction","doc":{"summary":"BellActionAny selects \"any\"."},"source":{"file":"tmux/option_generated.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BellActionAny","product":"core","slug":"tmux-bellactionany"},{"id":"tmux.BellActionCurrent","name":"BellActionCurrent","kind":"constant","modifiers":[],"signatures":[],"type":"BellAction","doc":{"summary":"BellActionCurrent selects \"current\"."},"source":{"file":"tmux/option_generated.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BellActionCurrent","product":"core","slug":"tmux-bellactioncurrent"},{"id":"tmux.BellActionOther","name":"BellActionOther","kind":"constant","modifiers":[],"signatures":[],"type":"BellAction","doc":{"summary":"BellActionOther selects \"other\"."},"source":{"file":"tmux/option_generated.go","line":73,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BellActionOther","product":"core","slug":"tmux-bellactionother"},{"id":"tmux.BellAction.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.BellAction","signatures":[{"raw":"func (v BellAction) String() string","params":[],"receiver":{"name":"v","type":"BellAction"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BellAction.String","product":"core","slug":"tmux-bellaction-string"},{"id":"tmux.BellAction.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.BellAction","signatures":[{"raw":"func (v BellAction) Valid() bool","params":[],"receiver":{"name":"v","type":"BellAction"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BellAction.Valid","product":"core","slug":"tmux-bellaction-valid"},{"id":"tmux.ClockModeStyle","name":"ClockModeStyle","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ClockModeStyle is a typed value for the \"clock-mode-style\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":90,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClockModeStyle","product":"core","slug":"tmux-clockmodestyle"},{"id":"tmux.ClockModeStyle12","name":"ClockModeStyle12","kind":"constant","modifiers":[],"signatures":[],"type":"ClockModeStyle","doc":{"summary":"ClockModeStyle12 selects \"12\"."},"source":{"file":"tmux/option_generated.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClockModeStyle12","product":"core","slug":"tmux-clockmodestyle12"},{"id":"tmux.ClockModeStyle24","name":"ClockModeStyle24","kind":"constant","modifiers":[],"signatures":[],"type":"ClockModeStyle","doc":{"summary":"ClockModeStyle24 selects \"24\"."},"source":{"file":"tmux/option_generated.go","line":96,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClockModeStyle24","product":"core","slug":"tmux-clockmodestyle24"},{"id":"tmux.ClockModeStyle12WithSeconds","name":"ClockModeStyle12WithSeconds","kind":"constant","modifiers":[],"signatures":[],"type":"ClockModeStyle","doc":{"summary":"ClockModeStyle12WithSeconds selects \"12-with-seconds\"."},"source":{"file":"tmux/option_generated.go","line":98,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClockModeStyle12WithSeconds","product":"core","slug":"tmux-clockmodestyle12withseconds"},{"id":"tmux.ClockModeStyle24WithSeconds","name":"ClockModeStyle24WithSeconds","kind":"constant","modifiers":[],"signatures":[],"type":"ClockModeStyle","doc":{"summary":"ClockModeStyle24WithSeconds selects \"24-with-seconds\"."},"source":{"file":"tmux/option_generated.go","line":100,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClockModeStyle24WithSeconds","product":"core","slug":"tmux-clockmodestyle24withseconds"},{"id":"tmux.ClockModeStyle.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.ClockModeStyle","signatures":[{"raw":"func (v ClockModeStyle) String() string","params":[],"receiver":{"name":"v","type":"ClockModeStyle"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClockModeStyle.String","product":"core","slug":"tmux-clockmodestyle-string"},{"id":"tmux.ClockModeStyle.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.ClockModeStyle","signatures":[{"raw":"func (v ClockModeStyle) Valid() bool","params":[],"receiver":{"name":"v","type":"ClockModeStyle"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":107,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClockModeStyle.Valid","product":"core","slug":"tmux-clockmodestyle-valid"},{"id":"tmux.CopyModeLineNumbers","name":"CopyModeLineNumbers","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CopyModeLineNumbers is a typed value for the \"copy-mode-line-numbers\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":117,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeLineNumbers","product":"core","slug":"tmux-copymodelinenumbers"},{"id":"tmux.CopyModeLineNumbersOff","name":"CopyModeLineNumbersOff","kind":"constant","modifiers":[],"signatures":[],"type":"CopyModeLineNumbers","doc":{"summary":"CopyModeLineNumbersOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":121,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeLineNumbersOff","product":"core","slug":"tmux-copymodelinenumbersoff"},{"id":"tmux.CopyModeLineNumbersDefault","name":"CopyModeLineNumbersDefault","kind":"constant","modifiers":[],"signatures":[],"type":"CopyModeLineNumbers","doc":{"summary":"CopyModeLineNumbersDefault selects \"default\"."},"source":{"file":"tmux/option_generated.go","line":123,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeLineNumbersDefault","product":"core","slug":"tmux-copymodelinenumbersdefault"},{"id":"tmux.CopyModeLineNumbersAbsolute","name":"CopyModeLineNumbersAbsolute","kind":"constant","modifiers":[],"signatures":[],"type":"CopyModeLineNumbers","doc":{"summary":"CopyModeLineNumbersAbsolute selects \"absolute\"."},"source":{"file":"tmux/option_generated.go","line":125,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeLineNumbersAbsolute","product":"core","slug":"tmux-copymodelinenumbersabsolute"},{"id":"tmux.CopyModeLineNumbersRelative","name":"CopyModeLineNumbersRelative","kind":"constant","modifiers":[],"signatures":[],"type":"CopyModeLineNumbers","doc":{"summary":"CopyModeLineNumbersRelative selects \"relative\"."},"source":{"file":"tmux/option_generated.go","line":127,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeLineNumbersRelative","product":"core","slug":"tmux-copymodelinenumbersrelative"},{"id":"tmux.CopyModeLineNumbersHybrid","name":"CopyModeLineNumbersHybrid","kind":"constant","modifiers":[],"signatures":[],"type":"CopyModeLineNumbers","doc":{"summary":"CopyModeLineNumbersHybrid selects \"hybrid\"."},"source":{"file":"tmux/option_generated.go","line":129,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeLineNumbersHybrid","product":"core","slug":"tmux-copymodelinenumbershybrid"},{"id":"tmux.CopyModeLineNumbers.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.CopyModeLineNumbers","signatures":[{"raw":"func (v CopyModeLineNumbers) String() string","params":[],"receiver":{"name":"v","type":"CopyModeLineNumbers"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":133,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeLineNumbers.String","product":"core","slug":"tmux-copymodelinenumbers-string"},{"id":"tmux.CopyModeLineNumbers.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.CopyModeLineNumbers","signatures":[{"raw":"func (v CopyModeLineNumbers) Valid() bool","params":[],"receiver":{"name":"v","type":"CopyModeLineNumbers"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":136,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeLineNumbers.Valid","product":"core","slug":"tmux-copymodelinenumbers-valid"},{"id":"tmux.CursorStyle","name":"CursorStyle","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CursorStyle is a typed value for the \"cursor-style\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":146,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyle","product":"core","slug":"tmux-cursorstyle"},{"id":"tmux.CursorStyleDefault","name":"CursorStyleDefault","kind":"constant","modifiers":[],"signatures":[],"type":"CursorStyle","doc":{"summary":"CursorStyleDefault selects \"default\"."},"source":{"file":"tmux/option_generated.go","line":150,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyleDefault","product":"core","slug":"tmux-cursorstyledefault"},{"id":"tmux.CursorStyleBlinkingBlock","name":"CursorStyleBlinkingBlock","kind":"constant","modifiers":[],"signatures":[],"type":"CursorStyle","doc":{"summary":"CursorStyleBlinkingBlock selects \"blinking-block\"."},"source":{"file":"tmux/option_generated.go","line":152,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyleBlinkingBlock","product":"core","slug":"tmux-cursorstyleblinkingblock"},{"id":"tmux.CursorStyleBlock","name":"CursorStyleBlock","kind":"constant","modifiers":[],"signatures":[],"type":"CursorStyle","doc":{"summary":"CursorStyleBlock selects \"block\"."},"source":{"file":"tmux/option_generated.go","line":154,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyleBlock","product":"core","slug":"tmux-cursorstyleblock"},{"id":"tmux.CursorStyleBlinkingUnderline","name":"CursorStyleBlinkingUnderline","kind":"constant","modifiers":[],"signatures":[],"type":"CursorStyle","doc":{"summary":"CursorStyleBlinkingUnderline selects \"blinking-underline\"."},"source":{"file":"tmux/option_generated.go","line":156,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyleBlinkingUnderline","product":"core","slug":"tmux-cursorstyleblinkingunderline"},{"id":"tmux.CursorStyleUnderline","name":"CursorStyleUnderline","kind":"constant","modifiers":[],"signatures":[],"type":"CursorStyle","doc":{"summary":"CursorStyleUnderline selects \"underline\"."},"source":{"file":"tmux/option_generated.go","line":158,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyleUnderline","product":"core","slug":"tmux-cursorstyleunderline"},{"id":"tmux.CursorStyleBlinkingBar","name":"CursorStyleBlinkingBar","kind":"constant","modifiers":[],"signatures":[],"type":"CursorStyle","doc":{"summary":"CursorStyleBlinkingBar selects \"blinking-bar\"."},"source":{"file":"tmux/option_generated.go","line":160,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyleBlinkingBar","product":"core","slug":"tmux-cursorstyleblinkingbar"},{"id":"tmux.CursorStyleBar","name":"CursorStyleBar","kind":"constant","modifiers":[],"signatures":[],"type":"CursorStyle","doc":{"summary":"CursorStyleBar selects \"bar\"."},"source":{"file":"tmux/option_generated.go","line":162,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyleBar","product":"core","slug":"tmux-cursorstylebar"},{"id":"tmux.CursorStyle.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.CursorStyle","signatures":[{"raw":"func (v CursorStyle) String() string","params":[],"receiver":{"name":"v","type":"CursorStyle"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":166,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyle.String","product":"core","slug":"tmux-cursorstyle-string"},{"id":"tmux.CursorStyle.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.CursorStyle","signatures":[{"raw":"func (v CursorStyle) Valid() bool","params":[],"receiver":{"name":"v","type":"CursorStyle"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":169,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CursorStyle.Valid","product":"core","slug":"tmux-cursorstyle-valid"},{"id":"tmux.DestroyUnattached","name":"DestroyUnattached","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"DestroyUnattached is a typed value for the \"destroy-unattached\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":179,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DestroyUnattached","product":"core","slug":"tmux-destroyunattached"},{"id":"tmux.DestroyUnattachedOff","name":"DestroyUnattachedOff","kind":"constant","modifiers":[],"signatures":[],"type":"DestroyUnattached","doc":{"summary":"DestroyUnattachedOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":183,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DestroyUnattachedOff","product":"core","slug":"tmux-destroyunattachedoff"},{"id":"tmux.DestroyUnattachedOn","name":"DestroyUnattachedOn","kind":"constant","modifiers":[],"signatures":[],"type":"DestroyUnattached","doc":{"summary":"DestroyUnattachedOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":185,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DestroyUnattachedOn","product":"core","slug":"tmux-destroyunattachedon"},{"id":"tmux.DestroyUnattachedKeepLast","name":"DestroyUnattachedKeepLast","kind":"constant","modifiers":[],"signatures":[],"type":"DestroyUnattached","doc":{"summary":"DestroyUnattachedKeepLast selects \"keep-last\"."},"source":{"file":"tmux/option_generated.go","line":187,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DestroyUnattachedKeepLast","product":"core","slug":"tmux-destroyunattachedkeeplast"},{"id":"tmux.DestroyUnattachedKeepGroup","name":"DestroyUnattachedKeepGroup","kind":"constant","modifiers":[],"signatures":[],"type":"DestroyUnattached","doc":{"summary":"DestroyUnattachedKeepGroup selects \"keep-group\"."},"source":{"file":"tmux/option_generated.go","line":189,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DestroyUnattachedKeepGroup","product":"core","slug":"tmux-destroyunattachedkeepgroup"},{"id":"tmux.DestroyUnattached.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.DestroyUnattached","signatures":[{"raw":"func (v DestroyUnattached) String() string","params":[],"receiver":{"name":"v","type":"DestroyUnattached"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":193,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DestroyUnattached.String","product":"core","slug":"tmux-destroyunattached-string"},{"id":"tmux.DestroyUnattached.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.DestroyUnattached","signatures":[{"raw":"func (v DestroyUnattached) Valid() bool","params":[],"receiver":{"name":"v","type":"DestroyUnattached"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":196,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DestroyUnattached.Valid","product":"core","slug":"tmux-destroyunattached-valid"},{"id":"tmux.DetachOnDestroy","name":"DetachOnDestroy","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"DetachOnDestroy is a typed value for the \"detach-on-destroy\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":206,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachOnDestroy","product":"core","slug":"tmux-detachondestroy"},{"id":"tmux.DetachOnDestroyOff","name":"DetachOnDestroyOff","kind":"constant","modifiers":[],"signatures":[],"type":"DetachOnDestroy","doc":{"summary":"DetachOnDestroyOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":210,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachOnDestroyOff","product":"core","slug":"tmux-detachondestroyoff"},{"id":"tmux.DetachOnDestroyOn","name":"DetachOnDestroyOn","kind":"constant","modifiers":[],"signatures":[],"type":"DetachOnDestroy","doc":{"summary":"DetachOnDestroyOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":212,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachOnDestroyOn","product":"core","slug":"tmux-detachondestroyon"},{"id":"tmux.DetachOnDestroyNoDetached","name":"DetachOnDestroyNoDetached","kind":"constant","modifiers":[],"signatures":[],"type":"DetachOnDestroy","doc":{"summary":"DetachOnDestroyNoDetached selects \"no-detached\"."},"source":{"file":"tmux/option_generated.go","line":214,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachOnDestroyNoDetached","product":"core","slug":"tmux-detachondestroynodetached"},{"id":"tmux.DetachOnDestroyPrevious","name":"DetachOnDestroyPrevious","kind":"constant","modifiers":[],"signatures":[],"type":"DetachOnDestroy","doc":{"summary":"DetachOnDestroyPrevious selects \"previous\"."},"source":{"file":"tmux/option_generated.go","line":216,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachOnDestroyPrevious","product":"core","slug":"tmux-detachondestroyprevious"},{"id":"tmux.DetachOnDestroyNext","name":"DetachOnDestroyNext","kind":"constant","modifiers":[],"signatures":[],"type":"DetachOnDestroy","doc":{"summary":"DetachOnDestroyNext selects \"next\"."},"source":{"file":"tmux/option_generated.go","line":218,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachOnDestroyNext","product":"core","slug":"tmux-detachondestroynext"},{"id":"tmux.DetachOnDestroy.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.DetachOnDestroy","signatures":[{"raw":"func (v DetachOnDestroy) String() string","params":[],"receiver":{"name":"v","type":"DetachOnDestroy"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":222,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachOnDestroy.String","product":"core","slug":"tmux-detachondestroy-string"},{"id":"tmux.DetachOnDestroy.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.DetachOnDestroy","signatures":[{"raw":"func (v DetachOnDestroy) Valid() bool","params":[],"receiver":{"name":"v","type":"DetachOnDestroy"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":225,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachOnDestroy.Valid","product":"core","slug":"tmux-detachondestroy-valid"},{"id":"tmux.ExtendedKeys","name":"ExtendedKeys","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ExtendedKeys is a typed value for the \"extended-keys\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":235,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeys","product":"core","slug":"tmux-extendedkeys"},{"id":"tmux.ExtendedKeysOff","name":"ExtendedKeysOff","kind":"constant","modifiers":[],"signatures":[],"type":"ExtendedKeys","doc":{"summary":"ExtendedKeysOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":239,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeysOff","product":"core","slug":"tmux-extendedkeysoff"},{"id":"tmux.ExtendedKeysOn","name":"ExtendedKeysOn","kind":"constant","modifiers":[],"signatures":[],"type":"ExtendedKeys","doc":{"summary":"ExtendedKeysOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":241,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeysOn","product":"core","slug":"tmux-extendedkeyson"},{"id":"tmux.ExtendedKeysAlways","name":"ExtendedKeysAlways","kind":"constant","modifiers":[],"signatures":[],"type":"ExtendedKeys","doc":{"summary":"ExtendedKeysAlways selects \"always\"."},"source":{"file":"tmux/option_generated.go","line":243,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeysAlways","product":"core","slug":"tmux-extendedkeysalways"},{"id":"tmux.ExtendedKeys.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.ExtendedKeys","signatures":[{"raw":"func (v ExtendedKeys) String() string","params":[],"receiver":{"name":"v","type":"ExtendedKeys"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":247,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeys.String","product":"core","slug":"tmux-extendedkeys-string"},{"id":"tmux.ExtendedKeys.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.ExtendedKeys","signatures":[{"raw":"func (v ExtendedKeys) Valid() bool","params":[],"receiver":{"name":"v","type":"ExtendedKeys"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":250,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeys.Valid","product":"core","slug":"tmux-extendedkeys-valid"},{"id":"tmux.ExtendedKeysFormat","name":"ExtendedKeysFormat","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ExtendedKeysFormat is a typed value for the \"extended-keys-format\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":260,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeysFormat","product":"core","slug":"tmux-extendedkeysformat"},{"id":"tmux.ExtendedKeysFormatCSIU","name":"ExtendedKeysFormatCSIU","kind":"constant","modifiers":[],"signatures":[],"type":"ExtendedKeysFormat","doc":{"summary":"ExtendedKeysFormatCSIU selects \"csi-u\"."},"source":{"file":"tmux/option_generated.go","line":264,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeysFormatCSIU","product":"core","slug":"tmux-extendedkeysformatcsiu"},{"id":"tmux.ExtendedKeysFormatXTerm","name":"ExtendedKeysFormatXTerm","kind":"constant","modifiers":[],"signatures":[],"type":"ExtendedKeysFormat","doc":{"summary":"ExtendedKeysFormatXTerm selects \"xterm\"."},"source":{"file":"tmux/option_generated.go","line":266,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeysFormatXTerm","product":"core","slug":"tmux-extendedkeysformatxterm"},{"id":"tmux.ExtendedKeysFormat.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.ExtendedKeysFormat","signatures":[{"raw":"func (v ExtendedKeysFormat) String() string","params":[],"receiver":{"name":"v","type":"ExtendedKeysFormat"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":270,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeysFormat.String","product":"core","slug":"tmux-extendedkeysformat-string"},{"id":"tmux.ExtendedKeysFormat.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.ExtendedKeysFormat","signatures":[{"raw":"func (v ExtendedKeysFormat) Valid() bool","params":[],"receiver":{"name":"v","type":"ExtendedKeysFormat"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":273,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ExtendedKeysFormat.Valid","product":"core","slug":"tmux-extendedkeysformat-valid"},{"id":"tmux.GetClipboard","name":"GetClipboard","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"GetClipboard is a typed value for the \"get-clipboard\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":283,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GetClipboard","product":"core","slug":"tmux-getclipboard"},{"id":"tmux.GetClipboardOff","name":"GetClipboardOff","kind":"constant","modifiers":[],"signatures":[],"type":"GetClipboard","doc":{"summary":"GetClipboardOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":287,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GetClipboardOff","product":"core","slug":"tmux-getclipboardoff"},{"id":"tmux.GetClipboardBuffer","name":"GetClipboardBuffer","kind":"constant","modifiers":[],"signatures":[],"type":"GetClipboard","doc":{"summary":"GetClipboardBuffer selects \"buffer\"."},"source":{"file":"tmux/option_generated.go","line":289,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GetClipboardBuffer","product":"core","slug":"tmux-getclipboardbuffer"},{"id":"tmux.GetClipboardRequest","name":"GetClipboardRequest","kind":"constant","modifiers":[],"signatures":[],"type":"GetClipboard","doc":{"summary":"GetClipboardRequest selects \"request\"."},"source":{"file":"tmux/option_generated.go","line":291,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GetClipboardRequest","product":"core","slug":"tmux-getclipboardrequest"},{"id":"tmux.GetClipboardBoth","name":"GetClipboardBoth","kind":"constant","modifiers":[],"signatures":[],"type":"GetClipboard","doc":{"summary":"GetClipboardBoth selects \"both\"."},"source":{"file":"tmux/option_generated.go","line":293,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GetClipboardBoth","product":"core","slug":"tmux-getclipboardboth"},{"id":"tmux.GetClipboard.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.GetClipboard","signatures":[{"raw":"func (v GetClipboard) String() string","params":[],"receiver":{"name":"v","type":"GetClipboard"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":297,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GetClipboard.String","product":"core","slug":"tmux-getclipboard-string"},{"id":"tmux.GetClipboard.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.GetClipboard","signatures":[{"raw":"func (v GetClipboard) Valid() bool","params":[],"receiver":{"name":"v","type":"GetClipboard"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":300,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GetClipboard.Valid","product":"core","slug":"tmux-getclipboard-valid"},{"id":"tmux.MenuBorderLines","name":"MenuBorderLines","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"MenuBorderLines is a typed value for the \"menu-border-lines\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":310,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLines","product":"core","slug":"tmux-menuborderlines"},{"id":"tmux.MenuBorderLinesSingle","name":"MenuBorderLinesSingle","kind":"constant","modifiers":[],"signatures":[],"type":"MenuBorderLines","doc":{"summary":"MenuBorderLinesSingle selects \"single\"."},"source":{"file":"tmux/option_generated.go","line":314,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLinesSingle","product":"core","slug":"tmux-menuborderlinessingle"},{"id":"tmux.MenuBorderLinesDouble","name":"MenuBorderLinesDouble","kind":"constant","modifiers":[],"signatures":[],"type":"MenuBorderLines","doc":{"summary":"MenuBorderLinesDouble selects \"double\"."},"source":{"file":"tmux/option_generated.go","line":316,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLinesDouble","product":"core","slug":"tmux-menuborderlinesdouble"},{"id":"tmux.MenuBorderLinesHeavy","name":"MenuBorderLinesHeavy","kind":"constant","modifiers":[],"signatures":[],"type":"MenuBorderLines","doc":{"summary":"MenuBorderLinesHeavy selects \"heavy\"."},"source":{"file":"tmux/option_generated.go","line":318,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLinesHeavy","product":"core","slug":"tmux-menuborderlinesheavy"},{"id":"tmux.MenuBorderLinesSimple","name":"MenuBorderLinesSimple","kind":"constant","modifiers":[],"signatures":[],"type":"MenuBorderLines","doc":{"summary":"MenuBorderLinesSimple selects \"simple\"."},"source":{"file":"tmux/option_generated.go","line":320,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLinesSimple","product":"core","slug":"tmux-menuborderlinessimple"},{"id":"tmux.MenuBorderLinesRounded","name":"MenuBorderLinesRounded","kind":"constant","modifiers":[],"signatures":[],"type":"MenuBorderLines","doc":{"summary":"MenuBorderLinesRounded selects \"rounded\"."},"source":{"file":"tmux/option_generated.go","line":322,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLinesRounded","product":"core","slug":"tmux-menuborderlinesrounded"},{"id":"tmux.MenuBorderLinesPadded","name":"MenuBorderLinesPadded","kind":"constant","modifiers":[],"signatures":[],"type":"MenuBorderLines","doc":{"summary":"MenuBorderLinesPadded selects \"padded\"."},"source":{"file":"tmux/option_generated.go","line":324,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLinesPadded","product":"core","slug":"tmux-menuborderlinespadded"},{"id":"tmux.MenuBorderLinesNone","name":"MenuBorderLinesNone","kind":"constant","modifiers":[],"signatures":[],"type":"MenuBorderLines","doc":{"summary":"MenuBorderLinesNone selects \"none\"."},"source":{"file":"tmux/option_generated.go","line":326,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLinesNone","product":"core","slug":"tmux-menuborderlinesnone"},{"id":"tmux.MenuBorderLines.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.MenuBorderLines","signatures":[{"raw":"func (v MenuBorderLines) String() string","params":[],"receiver":{"name":"v","type":"MenuBorderLines"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":330,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLines.String","product":"core","slug":"tmux-menuborderlines-string"},{"id":"tmux.MenuBorderLines.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.MenuBorderLines","signatures":[{"raw":"func (v MenuBorderLines) Valid() bool","params":[],"receiver":{"name":"v","type":"MenuBorderLines"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":333,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuBorderLines.Valid","product":"core","slug":"tmux-menuborderlines-valid"},{"id":"tmux.MessageLine","name":"MessageLine","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"MessageLine is a typed value for the \"message-line\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":343,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MessageLine","product":"core","slug":"tmux-messageline"},{"id":"tmux.MessageLine0","name":"MessageLine0","kind":"constant","modifiers":[],"signatures":[],"type":"MessageLine","doc":{"summary":"MessageLine0 selects \"0\"."},"source":{"file":"tmux/option_generated.go","line":347,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MessageLine0","product":"core","slug":"tmux-messageline0"},{"id":"tmux.MessageLine1","name":"MessageLine1","kind":"constant","modifiers":[],"signatures":[],"type":"MessageLine","doc":{"summary":"MessageLine1 selects \"1\"."},"source":{"file":"tmux/option_generated.go","line":349,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MessageLine1","product":"core","slug":"tmux-messageline1"},{"id":"tmux.MessageLine2","name":"MessageLine2","kind":"constant","modifiers":[],"signatures":[],"type":"MessageLine","doc":{"summary":"MessageLine2 selects \"2\"."},"source":{"file":"tmux/option_generated.go","line":351,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MessageLine2","product":"core","slug":"tmux-messageline2"},{"id":"tmux.MessageLine3","name":"MessageLine3","kind":"constant","modifiers":[],"signatures":[],"type":"MessageLine","doc":{"summary":"MessageLine3 selects \"3\"."},"source":{"file":"tmux/option_generated.go","line":353,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MessageLine3","product":"core","slug":"tmux-messageline3"},{"id":"tmux.MessageLine4","name":"MessageLine4","kind":"constant","modifiers":[],"signatures":[],"type":"MessageLine","doc":{"summary":"MessageLine4 selects \"4\"."},"source":{"file":"tmux/option_generated.go","line":355,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MessageLine4","product":"core","slug":"tmux-messageline4"},{"id":"tmux.MessageLine.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.MessageLine","signatures":[{"raw":"func (v MessageLine) String() string","params":[],"receiver":{"name":"v","type":"MessageLine"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":359,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MessageLine.String","product":"core","slug":"tmux-messageline-string"},{"id":"tmux.MessageLine.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.MessageLine","signatures":[{"raw":"func (v MessageLine) Valid() bool","params":[],"receiver":{"name":"v","type":"MessageLine"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":362,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MessageLine.Valid","product":"core","slug":"tmux-messageline-valid"},{"id":"tmux.ModeKeys","name":"ModeKeys","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ModeKeys is a typed value for the \"mode-keys\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":372,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ModeKeys","product":"core","slug":"tmux-modekeys"},{"id":"tmux.ModeKeysEmacs","name":"ModeKeysEmacs","kind":"constant","modifiers":[],"signatures":[],"type":"ModeKeys","doc":{"summary":"ModeKeysEmacs selects \"emacs\"."},"source":{"file":"tmux/option_generated.go","line":376,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ModeKeysEmacs","product":"core","slug":"tmux-modekeysemacs"},{"id":"tmux.ModeKeysVi","name":"ModeKeysVi","kind":"constant","modifiers":[],"signatures":[],"type":"ModeKeys","doc":{"summary":"ModeKeysVi selects \"vi\"."},"source":{"file":"tmux/option_generated.go","line":378,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ModeKeysVi","product":"core","slug":"tmux-modekeysvi"},{"id":"tmux.ModeKeys.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.ModeKeys","signatures":[{"raw":"func (v ModeKeys) String() string","params":[],"receiver":{"name":"v","type":"ModeKeys"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":382,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ModeKeys.String","product":"core","slug":"tmux-modekeys-string"},{"id":"tmux.ModeKeys.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.ModeKeys","signatures":[{"raw":"func (v ModeKeys) Valid() bool","params":[],"receiver":{"name":"v","type":"ModeKeys"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":385,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ModeKeys.Valid","product":"core","slug":"tmux-modekeys-valid"},{"id":"tmux.PaneBorderIndicators","name":"PaneBorderIndicators","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneBorderIndicators is a typed value for the \"pane-border-indicators\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":395,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderIndicators","product":"core","slug":"tmux-paneborderindicators"},{"id":"tmux.PaneBorderIndicatorsOff","name":"PaneBorderIndicatorsOff","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderIndicators","doc":{"summary":"PaneBorderIndicatorsOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":399,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderIndicatorsOff","product":"core","slug":"tmux-paneborderindicatorsoff"},{"id":"tmux.PaneBorderIndicatorsColour","name":"PaneBorderIndicatorsColour","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderIndicators","doc":{"summary":"PaneBorderIndicatorsColour selects \"colour\"."},"source":{"file":"tmux/option_generated.go","line":401,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderIndicatorsColour","product":"core","slug":"tmux-paneborderindicatorscolour"},{"id":"tmux.PaneBorderIndicatorsArrows","name":"PaneBorderIndicatorsArrows","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderIndicators","doc":{"summary":"PaneBorderIndicatorsArrows selects \"arrows\"."},"source":{"file":"tmux/option_generated.go","line":403,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderIndicatorsArrows","product":"core","slug":"tmux-paneborderindicatorsarrows"},{"id":"tmux.PaneBorderIndicatorsBoth","name":"PaneBorderIndicatorsBoth","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderIndicators","doc":{"summary":"PaneBorderIndicatorsBoth selects \"both\"."},"source":{"file":"tmux/option_generated.go","line":405,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderIndicatorsBoth","product":"core","slug":"tmux-paneborderindicatorsboth"},{"id":"tmux.PaneBorderIndicators.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.PaneBorderIndicators","signatures":[{"raw":"func (v PaneBorderIndicators) String() string","params":[],"receiver":{"name":"v","type":"PaneBorderIndicators"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":409,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderIndicators.String","product":"core","slug":"tmux-paneborderindicators-string"},{"id":"tmux.PaneBorderIndicators.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.PaneBorderIndicators","signatures":[{"raw":"func (v PaneBorderIndicators) Valid() bool","params":[],"receiver":{"name":"v","type":"PaneBorderIndicators"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":412,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderIndicators.Valid","product":"core","slug":"tmux-paneborderindicators-valid"},{"id":"tmux.PaneBorderLines","name":"PaneBorderLines","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneBorderLines is a typed value for the \"pane-border-lines\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":422,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderLines","product":"core","slug":"tmux-paneborderlines"},{"id":"tmux.PaneBorderLinesSingle","name":"PaneBorderLinesSingle","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderLines","doc":{"summary":"PaneBorderLinesSingle selects \"single\"."},"source":{"file":"tmux/option_generated.go","line":426,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderLinesSingle","product":"core","slug":"tmux-paneborderlinessingle"},{"id":"tmux.PaneBorderLinesDouble","name":"PaneBorderLinesDouble","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderLines","doc":{"summary":"PaneBorderLinesDouble selects \"double\"."},"source":{"file":"tmux/option_generated.go","line":428,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderLinesDouble","product":"core","slug":"tmux-paneborderlinesdouble"},{"id":"tmux.PaneBorderLinesHeavy","name":"PaneBorderLinesHeavy","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderLines","doc":{"summary":"PaneBorderLinesHeavy selects \"heavy\"."},"source":{"file":"tmux/option_generated.go","line":430,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderLinesHeavy","product":"core","slug":"tmux-paneborderlinesheavy"},{"id":"tmux.PaneBorderLinesSimple","name":"PaneBorderLinesSimple","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderLines","doc":{"summary":"PaneBorderLinesSimple selects \"simple\"."},"source":{"file":"tmux/option_generated.go","line":432,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderLinesSimple","product":"core","slug":"tmux-paneborderlinessimple"},{"id":"tmux.PaneBorderLinesNumber","name":"PaneBorderLinesNumber","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderLines","doc":{"summary":"PaneBorderLinesNumber selects \"number\"."},"source":{"file":"tmux/option_generated.go","line":434,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderLinesNumber","product":"core","slug":"tmux-paneborderlinesnumber"},{"id":"tmux.PaneBorderLinesSpaces","name":"PaneBorderLinesSpaces","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderLines","doc":{"summary":"PaneBorderLinesSpaces selects \"spaces\"."},"source":{"file":"tmux/option_generated.go","line":436,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderLinesSpaces","product":"core","slug":"tmux-paneborderlinesspaces"},{"id":"tmux.PaneBorderLines.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.PaneBorderLines","signatures":[{"raw":"func (v PaneBorderLines) String() string","params":[],"receiver":{"name":"v","type":"PaneBorderLines"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":440,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderLines.String","product":"core","slug":"tmux-paneborderlines-string"},{"id":"tmux.PaneBorderLines.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.PaneBorderLines","signatures":[{"raw":"func (v PaneBorderLines) Valid() bool","params":[],"receiver":{"name":"v","type":"PaneBorderLines"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":443,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderLines.Valid","product":"core","slug":"tmux-paneborderlines-valid"},{"id":"tmux.PaneBorderStatus","name":"PaneBorderStatus","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneBorderStatus is a typed value for the \"pane-border-status\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":453,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderStatus","product":"core","slug":"tmux-paneborderstatus"},{"id":"tmux.PaneBorderStatusOff","name":"PaneBorderStatusOff","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderStatus","doc":{"summary":"PaneBorderStatusOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":457,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderStatusOff","product":"core","slug":"tmux-paneborderstatusoff"},{"id":"tmux.PaneBorderStatusTop","name":"PaneBorderStatusTop","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderStatus","doc":{"summary":"PaneBorderStatusTop selects \"top\"."},"source":{"file":"tmux/option_generated.go","line":459,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderStatusTop","product":"core","slug":"tmux-paneborderstatustop"},{"id":"tmux.PaneBorderStatusBottom","name":"PaneBorderStatusBottom","kind":"constant","modifiers":[],"signatures":[],"type":"PaneBorderStatus","doc":{"summary":"PaneBorderStatusBottom selects \"bottom\"."},"source":{"file":"tmux/option_generated.go","line":461,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderStatusBottom","product":"core","slug":"tmux-paneborderstatusbottom"},{"id":"tmux.PaneBorderStatus.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.PaneBorderStatus","signatures":[{"raw":"func (v PaneBorderStatus) String() string","params":[],"receiver":{"name":"v","type":"PaneBorderStatus"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":465,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderStatus.String","product":"core","slug":"tmux-paneborderstatus-string"},{"id":"tmux.PaneBorderStatus.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.PaneBorderStatus","signatures":[{"raw":"func (v PaneBorderStatus) Valid() bool","params":[],"receiver":{"name":"v","type":"PaneBorderStatus"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":468,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneBorderStatus.Valid","product":"core","slug":"tmux-paneborderstatus-valid"},{"id":"tmux.PaneScrollbars","name":"PaneScrollbars","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneScrollbars is a typed value for the \"pane-scrollbars\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":478,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbars","product":"core","slug":"tmux-panescrollbars"},{"id":"tmux.PaneScrollbarsOff","name":"PaneScrollbarsOff","kind":"constant","modifiers":[],"signatures":[],"type":"PaneScrollbars","doc":{"summary":"PaneScrollbarsOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":482,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbarsOff","product":"core","slug":"tmux-panescrollbarsoff"},{"id":"tmux.PaneScrollbarsModal","name":"PaneScrollbarsModal","kind":"constant","modifiers":[],"signatures":[],"type":"PaneScrollbars","doc":{"summary":"PaneScrollbarsModal selects \"modal\"."},"source":{"file":"tmux/option_generated.go","line":484,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbarsModal","product":"core","slug":"tmux-panescrollbarsmodal"},{"id":"tmux.PaneScrollbarsOn","name":"PaneScrollbarsOn","kind":"constant","modifiers":[],"signatures":[],"type":"PaneScrollbars","doc":{"summary":"PaneScrollbarsOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":486,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbarsOn","product":"core","slug":"tmux-panescrollbarson"},{"id":"tmux.PaneScrollbars.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.PaneScrollbars","signatures":[{"raw":"func (v PaneScrollbars) String() string","params":[],"receiver":{"name":"v","type":"PaneScrollbars"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":490,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbars.String","product":"core","slug":"tmux-panescrollbars-string"},{"id":"tmux.PaneScrollbars.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.PaneScrollbars","signatures":[{"raw":"func (v PaneScrollbars) Valid() bool","params":[],"receiver":{"name":"v","type":"PaneScrollbars"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":493,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbars.Valid","product":"core","slug":"tmux-panescrollbars-valid"},{"id":"tmux.PaneScrollbarsPosition","name":"PaneScrollbarsPosition","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneScrollbarsPosition is a typed value for the \"pane-scrollbars-position\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":503,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbarsPosition","product":"core","slug":"tmux-panescrollbarsposition"},{"id":"tmux.PaneScrollbarsPositionRight","name":"PaneScrollbarsPositionRight","kind":"constant","modifiers":[],"signatures":[],"type":"PaneScrollbarsPosition","doc":{"summary":"PaneScrollbarsPositionRight selects \"right\"."},"source":{"file":"tmux/option_generated.go","line":507,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbarsPositionRight","product":"core","slug":"tmux-panescrollbarspositionright"},{"id":"tmux.PaneScrollbarsPositionLeft","name":"PaneScrollbarsPositionLeft","kind":"constant","modifiers":[],"signatures":[],"type":"PaneScrollbarsPosition","doc":{"summary":"PaneScrollbarsPositionLeft selects \"left\"."},"source":{"file":"tmux/option_generated.go","line":509,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbarsPositionLeft","product":"core","slug":"tmux-panescrollbarspositionleft"},{"id":"tmux.PaneScrollbarsPosition.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.PaneScrollbarsPosition","signatures":[{"raw":"func (v PaneScrollbarsPosition) String() string","params":[],"receiver":{"name":"v","type":"PaneScrollbarsPosition"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":513,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbarsPosition.String","product":"core","slug":"tmux-panescrollbarsposition-string"},{"id":"tmux.PaneScrollbarsPosition.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.PaneScrollbarsPosition","signatures":[{"raw":"func (v PaneScrollbarsPosition) Valid() bool","params":[],"receiver":{"name":"v","type":"PaneScrollbarsPosition"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":516,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneScrollbarsPosition.Valid","product":"core","slug":"tmux-panescrollbarsposition-valid"},{"id":"tmux.PopupBorderLines","name":"PopupBorderLines","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PopupBorderLines is a typed value for the \"popup-border-lines\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":526,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLines","product":"core","slug":"tmux-popupborderlines"},{"id":"tmux.PopupBorderLinesSingle","name":"PopupBorderLinesSingle","kind":"constant","modifiers":[],"signatures":[],"type":"PopupBorderLines","doc":{"summary":"PopupBorderLinesSingle selects \"single\"."},"source":{"file":"tmux/option_generated.go","line":530,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLinesSingle","product":"core","slug":"tmux-popupborderlinessingle"},{"id":"tmux.PopupBorderLinesDouble","name":"PopupBorderLinesDouble","kind":"constant","modifiers":[],"signatures":[],"type":"PopupBorderLines","doc":{"summary":"PopupBorderLinesDouble selects \"double\"."},"source":{"file":"tmux/option_generated.go","line":532,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLinesDouble","product":"core","slug":"tmux-popupborderlinesdouble"},{"id":"tmux.PopupBorderLinesHeavy","name":"PopupBorderLinesHeavy","kind":"constant","modifiers":[],"signatures":[],"type":"PopupBorderLines","doc":{"summary":"PopupBorderLinesHeavy selects \"heavy\"."},"source":{"file":"tmux/option_generated.go","line":534,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLinesHeavy","product":"core","slug":"tmux-popupborderlinesheavy"},{"id":"tmux.PopupBorderLinesSimple","name":"PopupBorderLinesSimple","kind":"constant","modifiers":[],"signatures":[],"type":"PopupBorderLines","doc":{"summary":"PopupBorderLinesSimple selects \"simple\"."},"source":{"file":"tmux/option_generated.go","line":536,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLinesSimple","product":"core","slug":"tmux-popupborderlinessimple"},{"id":"tmux.PopupBorderLinesRounded","name":"PopupBorderLinesRounded","kind":"constant","modifiers":[],"signatures":[],"type":"PopupBorderLines","doc":{"summary":"PopupBorderLinesRounded selects \"rounded\"."},"source":{"file":"tmux/option_generated.go","line":538,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLinesRounded","product":"core","slug":"tmux-popupborderlinesrounded"},{"id":"tmux.PopupBorderLinesPadded","name":"PopupBorderLinesPadded","kind":"constant","modifiers":[],"signatures":[],"type":"PopupBorderLines","doc":{"summary":"PopupBorderLinesPadded selects \"padded\"."},"source":{"file":"tmux/option_generated.go","line":540,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLinesPadded","product":"core","slug":"tmux-popupborderlinespadded"},{"id":"tmux.PopupBorderLinesNone","name":"PopupBorderLinesNone","kind":"constant","modifiers":[],"signatures":[],"type":"PopupBorderLines","doc":{"summary":"PopupBorderLinesNone selects \"none\"."},"source":{"file":"tmux/option_generated.go","line":542,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLinesNone","product":"core","slug":"tmux-popupborderlinesnone"},{"id":"tmux.PopupBorderLines.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.PopupBorderLines","signatures":[{"raw":"func (v PopupBorderLines) String() string","params":[],"receiver":{"name":"v","type":"PopupBorderLines"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":546,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLines.String","product":"core","slug":"tmux-popupborderlines-string"},{"id":"tmux.PopupBorderLines.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.PopupBorderLines","signatures":[{"raw":"func (v PopupBorderLines) Valid() bool","params":[],"receiver":{"name":"v","type":"PopupBorderLines"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":549,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PopupBorderLines.Valid","product":"core","slug":"tmux-popupborderlines-valid"},{"id":"tmux.PromptCommandCursorStyle","name":"PromptCommandCursorStyle","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PromptCommandCursorStyle is a typed value for the \"prompt-command-cursor-style\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":559,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyle","product":"core","slug":"tmux-promptcommandcursorstyle"},{"id":"tmux.PromptCommandCursorStyleDefault","name":"PromptCommandCursorStyleDefault","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCommandCursorStyle","doc":{"summary":"PromptCommandCursorStyleDefault selects \"default\"."},"source":{"file":"tmux/option_generated.go","line":563,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyleDefault","product":"core","slug":"tmux-promptcommandcursorstyledefault"},{"id":"tmux.PromptCommandCursorStyleBlinkingBlock","name":"PromptCommandCursorStyleBlinkingBlock","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCommandCursorStyle","doc":{"summary":"PromptCommandCursorStyleBlinkingBlock selects \"blinking-block\"."},"source":{"file":"tmux/option_generated.go","line":565,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyleBlinkingBlock","product":"core","slug":"tmux-promptcommandcursorstyleblinkingblock"},{"id":"tmux.PromptCommandCursorStyleBlock","name":"PromptCommandCursorStyleBlock","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCommandCursorStyle","doc":{"summary":"PromptCommandCursorStyleBlock selects \"block\"."},"source":{"file":"tmux/option_generated.go","line":567,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyleBlock","product":"core","slug":"tmux-promptcommandcursorstyleblock"},{"id":"tmux.PromptCommandCursorStyleBlinkingUnderline","name":"PromptCommandCursorStyleBlinkingUnderline","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCommandCursorStyle","doc":{"summary":"PromptCommandCursorStyleBlinkingUnderline selects \"blinking-underline\"."},"source":{"file":"tmux/option_generated.go","line":569,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyleBlinkingUnderline","product":"core","slug":"tmux-promptcommandcursorstyleblinkingunderline"},{"id":"tmux.PromptCommandCursorStyleUnderline","name":"PromptCommandCursorStyleUnderline","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCommandCursorStyle","doc":{"summary":"PromptCommandCursorStyleUnderline selects \"underline\"."},"source":{"file":"tmux/option_generated.go","line":571,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyleUnderline","product":"core","slug":"tmux-promptcommandcursorstyleunderline"},{"id":"tmux.PromptCommandCursorStyleBlinkingBar","name":"PromptCommandCursorStyleBlinkingBar","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCommandCursorStyle","doc":{"summary":"PromptCommandCursorStyleBlinkingBar selects \"blinking-bar\"."},"source":{"file":"tmux/option_generated.go","line":573,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyleBlinkingBar","product":"core","slug":"tmux-promptcommandcursorstyleblinkingbar"},{"id":"tmux.PromptCommandCursorStyleBar","name":"PromptCommandCursorStyleBar","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCommandCursorStyle","doc":{"summary":"PromptCommandCursorStyleBar selects \"bar\"."},"source":{"file":"tmux/option_generated.go","line":575,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyleBar","product":"core","slug":"tmux-promptcommandcursorstylebar"},{"id":"tmux.PromptCommandCursorStyle.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.PromptCommandCursorStyle","signatures":[{"raw":"func (v PromptCommandCursorStyle) String() string","params":[],"receiver":{"name":"v","type":"PromptCommandCursorStyle"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":579,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyle.String","product":"core","slug":"tmux-promptcommandcursorstyle-string"},{"id":"tmux.PromptCommandCursorStyle.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.PromptCommandCursorStyle","signatures":[{"raw":"func (v PromptCommandCursorStyle) Valid() bool","params":[],"receiver":{"name":"v","type":"PromptCommandCursorStyle"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":582,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCommandCursorStyle.Valid","product":"core","slug":"tmux-promptcommandcursorstyle-valid"},{"id":"tmux.PromptCursorStyle","name":"PromptCursorStyle","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PromptCursorStyle is a typed value for the \"prompt-cursor-style\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":592,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyle","product":"core","slug":"tmux-promptcursorstyle"},{"id":"tmux.PromptCursorStyleDefault","name":"PromptCursorStyleDefault","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCursorStyle","doc":{"summary":"PromptCursorStyleDefault selects \"default\"."},"source":{"file":"tmux/option_generated.go","line":596,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyleDefault","product":"core","slug":"tmux-promptcursorstyledefault"},{"id":"tmux.PromptCursorStyleBlinkingBlock","name":"PromptCursorStyleBlinkingBlock","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCursorStyle","doc":{"summary":"PromptCursorStyleBlinkingBlock selects \"blinking-block\"."},"source":{"file":"tmux/option_generated.go","line":598,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyleBlinkingBlock","product":"core","slug":"tmux-promptcursorstyleblinkingblock"},{"id":"tmux.PromptCursorStyleBlock","name":"PromptCursorStyleBlock","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCursorStyle","doc":{"summary":"PromptCursorStyleBlock selects \"block\"."},"source":{"file":"tmux/option_generated.go","line":600,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyleBlock","product":"core","slug":"tmux-promptcursorstyleblock"},{"id":"tmux.PromptCursorStyleBlinkingUnderline","name":"PromptCursorStyleBlinkingUnderline","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCursorStyle","doc":{"summary":"PromptCursorStyleBlinkingUnderline selects \"blinking-underline\"."},"source":{"file":"tmux/option_generated.go","line":602,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyleBlinkingUnderline","product":"core","slug":"tmux-promptcursorstyleblinkingunderline"},{"id":"tmux.PromptCursorStyleUnderline","name":"PromptCursorStyleUnderline","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCursorStyle","doc":{"summary":"PromptCursorStyleUnderline selects \"underline\"."},"source":{"file":"tmux/option_generated.go","line":604,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyleUnderline","product":"core","slug":"tmux-promptcursorstyleunderline"},{"id":"tmux.PromptCursorStyleBlinkingBar","name":"PromptCursorStyleBlinkingBar","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCursorStyle","doc":{"summary":"PromptCursorStyleBlinkingBar selects \"blinking-bar\"."},"source":{"file":"tmux/option_generated.go","line":606,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyleBlinkingBar","product":"core","slug":"tmux-promptcursorstyleblinkingbar"},{"id":"tmux.PromptCursorStyleBar","name":"PromptCursorStyleBar","kind":"constant","modifiers":[],"signatures":[],"type":"PromptCursorStyle","doc":{"summary":"PromptCursorStyleBar selects \"bar\"."},"source":{"file":"tmux/option_generated.go","line":608,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyleBar","product":"core","slug":"tmux-promptcursorstylebar"},{"id":"tmux.PromptCursorStyle.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.PromptCursorStyle","signatures":[{"raw":"func (v PromptCursorStyle) String() string","params":[],"receiver":{"name":"v","type":"PromptCursorStyle"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":612,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyle.String","product":"core","slug":"tmux-promptcursorstyle-string"},{"id":"tmux.PromptCursorStyle.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.PromptCursorStyle","signatures":[{"raw":"func (v PromptCursorStyle) Valid() bool","params":[],"receiver":{"name":"v","type":"PromptCursorStyle"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":615,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptCursorStyle.Valid","product":"core","slug":"tmux-promptcursorstyle-valid"},{"id":"tmux.RemainOnExit","name":"RemainOnExit","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"RemainOnExit is a typed value for the \"remain-on-exit\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":625,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RemainOnExit","product":"core","slug":"tmux-remainonexit"},{"id":"tmux.RemainOnExitOff","name":"RemainOnExitOff","kind":"constant","modifiers":[],"signatures":[],"type":"RemainOnExit","doc":{"summary":"RemainOnExitOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":629,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RemainOnExitOff","product":"core","slug":"tmux-remainonexitoff"},{"id":"tmux.RemainOnExitOn","name":"RemainOnExitOn","kind":"constant","modifiers":[],"signatures":[],"type":"RemainOnExit","doc":{"summary":"RemainOnExitOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":631,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RemainOnExitOn","product":"core","slug":"tmux-remainonexiton"},{"id":"tmux.RemainOnExitFailed","name":"RemainOnExitFailed","kind":"constant","modifiers":[],"signatures":[],"type":"RemainOnExit","doc":{"summary":"RemainOnExitFailed selects \"failed\"."},"source":{"file":"tmux/option_generated.go","line":633,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RemainOnExitFailed","product":"core","slug":"tmux-remainonexitfailed"},{"id":"tmux.RemainOnExitKey","name":"RemainOnExitKey","kind":"constant","modifiers":[],"signatures":[],"type":"RemainOnExit","doc":{"summary":"RemainOnExitKey selects \"key\"."},"source":{"file":"tmux/option_generated.go","line":635,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RemainOnExitKey","product":"core","slug":"tmux-remainonexitkey"},{"id":"tmux.RemainOnExit.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.RemainOnExit","signatures":[{"raw":"func (v RemainOnExit) String() string","params":[],"receiver":{"name":"v","type":"RemainOnExit"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":639,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RemainOnExit.String","product":"core","slug":"tmux-remainonexit-string"},{"id":"tmux.RemainOnExit.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.RemainOnExit","signatures":[{"raw":"func (v RemainOnExit) Valid() bool","params":[],"receiver":{"name":"v","type":"RemainOnExit"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":642,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RemainOnExit.Valid","product":"core","slug":"tmux-remainonexit-valid"},{"id":"tmux.SetClipboard","name":"SetClipboard","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SetClipboard is a typed value for the \"set-clipboard\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":652,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetClipboard","product":"core","slug":"tmux-setclipboard"},{"id":"tmux.SetClipboardOff","name":"SetClipboardOff","kind":"constant","modifiers":[],"signatures":[],"type":"SetClipboard","doc":{"summary":"SetClipboardOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":656,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetClipboardOff","product":"core","slug":"tmux-setclipboardoff"},{"id":"tmux.SetClipboardExternal","name":"SetClipboardExternal","kind":"constant","modifiers":[],"signatures":[],"type":"SetClipboard","doc":{"summary":"SetClipboardExternal selects \"external\"."},"source":{"file":"tmux/option_generated.go","line":658,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetClipboardExternal","product":"core","slug":"tmux-setclipboardexternal"},{"id":"tmux.SetClipboardOn","name":"SetClipboardOn","kind":"constant","modifiers":[],"signatures":[],"type":"SetClipboard","doc":{"summary":"SetClipboardOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":660,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetClipboardOn","product":"core","slug":"tmux-setclipboardon"},{"id":"tmux.SetClipboard.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.SetClipboard","signatures":[{"raw":"func (v SetClipboard) String() string","params":[],"receiver":{"name":"v","type":"SetClipboard"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":664,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetClipboard.String","product":"core","slug":"tmux-setclipboard-string"},{"id":"tmux.SetClipboard.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.SetClipboard","signatures":[{"raw":"func (v SetClipboard) Valid() bool","params":[],"receiver":{"name":"v","type":"SetClipboard"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":667,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetClipboard.Valid","product":"core","slug":"tmux-setclipboard-valid"},{"id":"tmux.SilenceAction","name":"SilenceAction","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SilenceAction is a typed value for the \"silence-action\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":677,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SilenceAction","product":"core","slug":"tmux-silenceaction"},{"id":"tmux.SilenceActionNone","name":"SilenceActionNone","kind":"constant","modifiers":[],"signatures":[],"type":"SilenceAction","doc":{"summary":"SilenceActionNone selects \"none\"."},"source":{"file":"tmux/option_generated.go","line":681,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SilenceActionNone","product":"core","slug":"tmux-silenceactionnone"},{"id":"tmux.SilenceActionAny","name":"SilenceActionAny","kind":"constant","modifiers":[],"signatures":[],"type":"SilenceAction","doc":{"summary":"SilenceActionAny selects \"any\"."},"source":{"file":"tmux/option_generated.go","line":683,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SilenceActionAny","product":"core","slug":"tmux-silenceactionany"},{"id":"tmux.SilenceActionCurrent","name":"SilenceActionCurrent","kind":"constant","modifiers":[],"signatures":[],"type":"SilenceAction","doc":{"summary":"SilenceActionCurrent selects \"current\"."},"source":{"file":"tmux/option_generated.go","line":685,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SilenceActionCurrent","product":"core","slug":"tmux-silenceactioncurrent"},{"id":"tmux.SilenceActionOther","name":"SilenceActionOther","kind":"constant","modifiers":[],"signatures":[],"type":"SilenceAction","doc":{"summary":"SilenceActionOther selects \"other\"."},"source":{"file":"tmux/option_generated.go","line":687,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SilenceActionOther","product":"core","slug":"tmux-silenceactionother"},{"id":"tmux.SilenceAction.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.SilenceAction","signatures":[{"raw":"func (v SilenceAction) String() string","params":[],"receiver":{"name":"v","type":"SilenceAction"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":691,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SilenceAction.String","product":"core","slug":"tmux-silenceaction-string"},{"id":"tmux.SilenceAction.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.SilenceAction","signatures":[{"raw":"func (v SilenceAction) Valid() bool","params":[],"receiver":{"name":"v","type":"SilenceAction"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":694,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SilenceAction.Valid","product":"core","slug":"tmux-silenceaction-valid"},{"id":"tmux.Status","name":"Status","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Status is a typed value for the \"status\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":704,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Status","product":"core","slug":"tmux-status"},{"id":"tmux.StatusOff","name":"StatusOff","kind":"constant","modifiers":[],"signatures":[],"type":"Status","doc":{"summary":"StatusOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":708,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusOff","product":"core","slug":"tmux-statusoff"},{"id":"tmux.StatusOn","name":"StatusOn","kind":"constant","modifiers":[],"signatures":[],"type":"Status","doc":{"summary":"StatusOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":710,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusOn","product":"core","slug":"tmux-statuson"},{"id":"tmux.Status2","name":"Status2","kind":"constant","modifiers":[],"signatures":[],"type":"Status","doc":{"summary":"Status2 selects \"2\"."},"source":{"file":"tmux/option_generated.go","line":712,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Status2","product":"core","slug":"tmux-status2"},{"id":"tmux.Status3","name":"Status3","kind":"constant","modifiers":[],"signatures":[],"type":"Status","doc":{"summary":"Status3 selects \"3\"."},"source":{"file":"tmux/option_generated.go","line":714,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Status3","product":"core","slug":"tmux-status3"},{"id":"tmux.Status4","name":"Status4","kind":"constant","modifiers":[],"signatures":[],"type":"Status","doc":{"summary":"Status4 selects \"4\"."},"source":{"file":"tmux/option_generated.go","line":716,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Status4","product":"core","slug":"tmux-status4"},{"id":"tmux.Status5","name":"Status5","kind":"constant","modifiers":[],"signatures":[],"type":"Status","doc":{"summary":"Status5 selects \"5\"."},"source":{"file":"tmux/option_generated.go","line":718,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Status5","product":"core","slug":"tmux-status5"},{"id":"tmux.Status.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.Status","signatures":[{"raw":"func (v Status) String() string","params":[],"receiver":{"name":"v","type":"Status"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":722,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Status.String","product":"core","slug":"tmux-status-string"},{"id":"tmux.Status.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.Status","signatures":[{"raw":"func (v Status) Valid() bool","params":[],"receiver":{"name":"v","type":"Status"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":725,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Status.Valid","product":"core","slug":"tmux-status-valid"},{"id":"tmux.StatusJustify","name":"StatusJustify","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"StatusJustify is a typed value for the \"status-justify\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":735,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusJustify","product":"core","slug":"tmux-statusjustify"},{"id":"tmux.StatusJustifyLeft","name":"StatusJustifyLeft","kind":"constant","modifiers":[],"signatures":[],"type":"StatusJustify","doc":{"summary":"StatusJustifyLeft selects \"left\"."},"source":{"file":"tmux/option_generated.go","line":739,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusJustifyLeft","product":"core","slug":"tmux-statusjustifyleft"},{"id":"tmux.StatusJustifyCentre","name":"StatusJustifyCentre","kind":"constant","modifiers":[],"signatures":[],"type":"StatusJustify","doc":{"summary":"StatusJustifyCentre selects \"centre\"."},"source":{"file":"tmux/option_generated.go","line":741,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusJustifyCentre","product":"core","slug":"tmux-statusjustifycentre"},{"id":"tmux.StatusJustifyRight","name":"StatusJustifyRight","kind":"constant","modifiers":[],"signatures":[],"type":"StatusJustify","doc":{"summary":"StatusJustifyRight selects \"right\"."},"source":{"file":"tmux/option_generated.go","line":743,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusJustifyRight","product":"core","slug":"tmux-statusjustifyright"},{"id":"tmux.StatusJustifyAbsoluteCentre","name":"StatusJustifyAbsoluteCentre","kind":"constant","modifiers":[],"signatures":[],"type":"StatusJustify","doc":{"summary":"StatusJustifyAbsoluteCentre selects \"absolute-centre\"."},"source":{"file":"tmux/option_generated.go","line":745,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusJustifyAbsoluteCentre","product":"core","slug":"tmux-statusjustifyabsolutecentre"},{"id":"tmux.StatusJustify.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.StatusJustify","signatures":[{"raw":"func (v StatusJustify) String() string","params":[],"receiver":{"name":"v","type":"StatusJustify"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":749,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusJustify.String","product":"core","slug":"tmux-statusjustify-string"},{"id":"tmux.StatusJustify.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.StatusJustify","signatures":[{"raw":"func (v StatusJustify) Valid() bool","params":[],"receiver":{"name":"v","type":"StatusJustify"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":752,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusJustify.Valid","product":"core","slug":"tmux-statusjustify-valid"},{"id":"tmux.StatusKeys","name":"StatusKeys","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"StatusKeys is a typed value for the \"status-keys\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":762,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusKeys","product":"core","slug":"tmux-statuskeys"},{"id":"tmux.StatusKeysEmacs","name":"StatusKeysEmacs","kind":"constant","modifiers":[],"signatures":[],"type":"StatusKeys","doc":{"summary":"StatusKeysEmacs selects \"emacs\"."},"source":{"file":"tmux/option_generated.go","line":766,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusKeysEmacs","product":"core","slug":"tmux-statuskeysemacs"},{"id":"tmux.StatusKeysVi","name":"StatusKeysVi","kind":"constant","modifiers":[],"signatures":[],"type":"StatusKeys","doc":{"summary":"StatusKeysVi selects \"vi\"."},"source":{"file":"tmux/option_generated.go","line":768,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusKeysVi","product":"core","slug":"tmux-statuskeysvi"},{"id":"tmux.StatusKeys.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.StatusKeys","signatures":[{"raw":"func (v StatusKeys) String() string","params":[],"receiver":{"name":"v","type":"StatusKeys"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":772,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusKeys.String","product":"core","slug":"tmux-statuskeys-string"},{"id":"tmux.StatusKeys.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.StatusKeys","signatures":[{"raw":"func (v StatusKeys) Valid() bool","params":[],"receiver":{"name":"v","type":"StatusKeys"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":775,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusKeys.Valid","product":"core","slug":"tmux-statuskeys-valid"},{"id":"tmux.StatusPosition","name":"StatusPosition","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"StatusPosition is a typed value for the \"status-position\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":785,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusPosition","product":"core","slug":"tmux-statusposition"},{"id":"tmux.StatusPositionTop","name":"StatusPositionTop","kind":"constant","modifiers":[],"signatures":[],"type":"StatusPosition","doc":{"summary":"StatusPositionTop selects \"top\"."},"source":{"file":"tmux/option_generated.go","line":789,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusPositionTop","product":"core","slug":"tmux-statuspositiontop"},{"id":"tmux.StatusPositionBottom","name":"StatusPositionBottom","kind":"constant","modifiers":[],"signatures":[],"type":"StatusPosition","doc":{"summary":"StatusPositionBottom selects \"bottom\"."},"source":{"file":"tmux/option_generated.go","line":791,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusPositionBottom","product":"core","slug":"tmux-statuspositionbottom"},{"id":"tmux.StatusPosition.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.StatusPosition","signatures":[{"raw":"func (v StatusPosition) String() string","params":[],"receiver":{"name":"v","type":"StatusPosition"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":795,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusPosition.String","product":"core","slug":"tmux-statusposition-string"},{"id":"tmux.StatusPosition.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.StatusPosition","signatures":[{"raw":"func (v StatusPosition) Valid() bool","params":[],"receiver":{"name":"v","type":"StatusPosition"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":798,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.StatusPosition.Valid","product":"core","slug":"tmux-statusposition-valid"},{"id":"tmux.VisualActivity","name":"VisualActivity","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"VisualActivity is a typed value for the \"visual-activity\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":808,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualActivity","product":"core","slug":"tmux-visualactivity"},{"id":"tmux.VisualActivityOff","name":"VisualActivityOff","kind":"constant","modifiers":[],"signatures":[],"type":"VisualActivity","doc":{"summary":"VisualActivityOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":812,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualActivityOff","product":"core","slug":"tmux-visualactivityoff"},{"id":"tmux.VisualActivityOn","name":"VisualActivityOn","kind":"constant","modifiers":[],"signatures":[],"type":"VisualActivity","doc":{"summary":"VisualActivityOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":814,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualActivityOn","product":"core","slug":"tmux-visualactivityon"},{"id":"tmux.VisualActivityBoth","name":"VisualActivityBoth","kind":"constant","modifiers":[],"signatures":[],"type":"VisualActivity","doc":{"summary":"VisualActivityBoth selects \"both\"."},"source":{"file":"tmux/option_generated.go","line":816,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualActivityBoth","product":"core","slug":"tmux-visualactivityboth"},{"id":"tmux.VisualActivity.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.VisualActivity","signatures":[{"raw":"func (v VisualActivity) String() string","params":[],"receiver":{"name":"v","type":"VisualActivity"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":820,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualActivity.String","product":"core","slug":"tmux-visualactivity-string"},{"id":"tmux.VisualActivity.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.VisualActivity","signatures":[{"raw":"func (v VisualActivity) Valid() bool","params":[],"receiver":{"name":"v","type":"VisualActivity"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":823,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualActivity.Valid","product":"core","slug":"tmux-visualactivity-valid"},{"id":"tmux.VisualBell","name":"VisualBell","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"VisualBell is a typed value for the \"visual-bell\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":833,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualBell","product":"core","slug":"tmux-visualbell"},{"id":"tmux.VisualBellOff","name":"VisualBellOff","kind":"constant","modifiers":[],"signatures":[],"type":"VisualBell","doc":{"summary":"VisualBellOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":837,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualBellOff","product":"core","slug":"tmux-visualbelloff"},{"id":"tmux.VisualBellOn","name":"VisualBellOn","kind":"constant","modifiers":[],"signatures":[],"type":"VisualBell","doc":{"summary":"VisualBellOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":839,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualBellOn","product":"core","slug":"tmux-visualbellon"},{"id":"tmux.VisualBellBoth","name":"VisualBellBoth","kind":"constant","modifiers":[],"signatures":[],"type":"VisualBell","doc":{"summary":"VisualBellBoth selects \"both\"."},"source":{"file":"tmux/option_generated.go","line":841,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualBellBoth","product":"core","slug":"tmux-visualbellboth"},{"id":"tmux.VisualBell.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.VisualBell","signatures":[{"raw":"func (v VisualBell) String() string","params":[],"receiver":{"name":"v","type":"VisualBell"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":845,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualBell.String","product":"core","slug":"tmux-visualbell-string"},{"id":"tmux.VisualBell.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.VisualBell","signatures":[{"raw":"func (v VisualBell) Valid() bool","params":[],"receiver":{"name":"v","type":"VisualBell"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":848,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualBell.Valid","product":"core","slug":"tmux-visualbell-valid"},{"id":"tmux.VisualSilence","name":"VisualSilence","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"VisualSilence is a typed value for the \"visual-silence\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":858,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualSilence","product":"core","slug":"tmux-visualsilence"},{"id":"tmux.VisualSilenceOff","name":"VisualSilenceOff","kind":"constant","modifiers":[],"signatures":[],"type":"VisualSilence","doc":{"summary":"VisualSilenceOff selects \"off\"."},"source":{"file":"tmux/option_generated.go","line":862,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualSilenceOff","product":"core","slug":"tmux-visualsilenceoff"},{"id":"tmux.VisualSilenceOn","name":"VisualSilenceOn","kind":"constant","modifiers":[],"signatures":[],"type":"VisualSilence","doc":{"summary":"VisualSilenceOn selects \"on\"."},"source":{"file":"tmux/option_generated.go","line":864,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualSilenceOn","product":"core","slug":"tmux-visualsilenceon"},{"id":"tmux.VisualSilenceBoth","name":"VisualSilenceBoth","kind":"constant","modifiers":[],"signatures":[],"type":"VisualSilence","doc":{"summary":"VisualSilenceBoth selects \"both\"."},"source":{"file":"tmux/option_generated.go","line":866,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualSilenceBoth","product":"core","slug":"tmux-visualsilenceboth"},{"id":"tmux.VisualSilence.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.VisualSilence","signatures":[{"raw":"func (v VisualSilence) String() string","params":[],"receiver":{"name":"v","type":"VisualSilence"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":870,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualSilence.String","product":"core","slug":"tmux-visualsilence-string"},{"id":"tmux.VisualSilence.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.VisualSilence","signatures":[{"raw":"func (v VisualSilence) Valid() bool","params":[],"receiver":{"name":"v","type":"VisualSilence"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":873,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VisualSilence.Valid","product":"core","slug":"tmux-visualsilence-valid"},{"id":"tmux.WindowSize","name":"WindowSize","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WindowSize is a typed value for the \"window-size\" tmux option. Its zero value is invalid."},"source":{"file":"tmux/option_generated.go","line":883,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSize","product":"core","slug":"tmux-windowsize"},{"id":"tmux.WindowSizeLargest","name":"WindowSizeLargest","kind":"constant","modifiers":[],"signatures":[],"type":"WindowSize","doc":{"summary":"WindowSizeLargest selects \"largest\"."},"source":{"file":"tmux/option_generated.go","line":887,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSizeLargest","product":"core","slug":"tmux-windowsizelargest"},{"id":"tmux.WindowSizeSmallest","name":"WindowSizeSmallest","kind":"constant","modifiers":[],"signatures":[],"type":"WindowSize","doc":{"summary":"WindowSizeSmallest selects \"smallest\"."},"source":{"file":"tmux/option_generated.go","line":889,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSizeSmallest","product":"core","slug":"tmux-windowsizesmallest"},{"id":"tmux.WindowSizeManual","name":"WindowSizeManual","kind":"constant","modifiers":[],"signatures":[],"type":"WindowSize","doc":{"summary":"WindowSizeManual selects \"manual\"."},"source":{"file":"tmux/option_generated.go","line":891,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSizeManual","product":"core","slug":"tmux-windowsizemanual"},{"id":"tmux.WindowSizeLatest","name":"WindowSizeLatest","kind":"constant","modifiers":[],"signatures":[],"type":"WindowSize","doc":{"summary":"WindowSizeLatest selects \"latest\"."},"source":{"file":"tmux/option_generated.go","line":893,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSizeLatest","product":"core","slug":"tmux-windowsizelatest"},{"id":"tmux.WindowSize.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.WindowSize","signatures":[{"raw":"func (v WindowSize) String() string","params":[],"receiver":{"name":"v","type":"WindowSize"},"returns":"string"}],"doc":{"summary":"String returns the exact tmux spelling of v."},"source":{"file":"tmux/option_generated.go","line":897,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSize.String","product":"core","slug":"tmux-windowsize-string"},{"id":"tmux.WindowSize.Valid","name":"Valid","kind":"method","modifiers":[],"parent":"tmux.WindowSize","signatures":[{"raw":"func (v WindowSize) Valid() bool","params":[],"receiver":{"name":"v","type":"WindowSize"},"returns":"bool"}],"doc":{"summary":"Valid reports whether v belongs to the supported tmux-version union."},"source":{"file":"tmux/option_generated.go","line":900,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSize.Valid","product":"core","slug":"tmux-windowsize-valid"},{"id":"tmux.ControlNotificationKind","name":"ControlNotificationKind","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ControlNotificationKind identifies a tmux control-mode notification record. Its zero value is unknown and is not emitted by tmux. [ParseControlNotification] returns known values for the pinned wire vocabulary and rejects unknown notification records."},"source":{"file":"tmux/option_generated.go","line":963,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationKind","product":"core","slug":"tmux-controlnotificationkind"},{"id":"tmux.ControlNotificationClientDetached","name":"ControlNotificationClientDetached","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationClientDetached identifies the %client-detached notification, available since tmux 3.2a. Its wire grammar is %client-detached . ParseControlNotification returns its arguments as client tail."},"source":{"file":"tmux/option_generated.go","line":1683,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationClientDetached","product":"core","slug":"tmux-controlnotificationclientdetached"},{"id":"tmux.ControlNotificationClientSessionChanged","name":"ControlNotificationClientSessionChanged","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationClientSessionChanged identifies the %client-session-changed notification, available since tmux 3.2a. Its wire grammar is %client-session-changed . ParseControlNotification returns its arguments as client, session ID, session name tail."},"source":{"file":"tmux/option_generated.go","line":1686,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationClientSessionChanged","product":"core","slug":"tmux-controlnotificationclientsessionchanged"},{"id":"tmux.ControlNotificationConfigError","name":"ControlNotificationConfigError","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationConfigError identifies the %config-error notification, available since tmux 3.4. Its wire grammar is %config-error . ParseControlNotification returns its arguments as text tail."},"source":{"file":"tmux/option_generated.go","line":1689,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationConfigError","product":"core","slug":"tmux-controlnotificationconfigerror"},{"id":"tmux.ControlNotificationContinue","name":"ControlNotificationContinue","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationContinue identifies the %continue notification, available since tmux 3.2a. Its wire grammar is %continue . ParseControlNotification returns its arguments as pane ID."},"source":{"file":"tmux/option_generated.go","line":1692,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationContinue","product":"core","slug":"tmux-controlnotificationcontinue"},{"id":"tmux.ControlNotificationExit","name":"ControlNotificationExit","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationExit identifies the %exit notification, available since tmux 3.2a. Its wire grammar is %exit or %exit . ParseControlNotification returns its arguments as reason tail."},"source":{"file":"tmux/option_generated.go","line":1695,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationExit","product":"core","slug":"tmux-controlnotificationexit"},{"id":"tmux.ControlNotificationExtendedOutput","name":"ControlNotificationExtendedOutput","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationExtendedOutput identifies the %extended-output notification, available since tmux 3.2a. Its wire grammar is %extended-output { zero or more } : . ParseControlNotification returns its arguments as the prefix arguments, then zero or more reserved arguments, then the data tail; the prefix arguments are pane ID, age. Its tail may be empty."},"source":{"file":"tmux/option_generated.go","line":1699,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationExtendedOutput","product":"core","slug":"tmux-controlnotificationextendedoutput"},{"id":"tmux.ControlNotificationLayoutChange","name":"ControlNotificationLayoutChange","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationLayoutChange identifies the %layout-change notification, available since tmux 3.2a. Its wire grammar is %layout-change . ParseControlNotification returns its arguments as window ID, layout, visible layout, flags tail. Its tail may be empty."},"source":{"file":"tmux/option_generated.go","line":1703,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationLayoutChange","product":"core","slug":"tmux-controlnotificationlayoutchange"},{"id":"tmux.ControlNotificationMessage","name":"ControlNotificationMessage","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationMessage identifies the %message notification, available since tmux 3.4. Its wire grammar is %message . ParseControlNotification returns its arguments as text tail. Its tail may be empty."},"source":{"file":"tmux/option_generated.go","line":1707,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationMessage","product":"core","slug":"tmux-controlnotificationmessage"},{"id":"tmux.ControlNotificationOutput","name":"ControlNotificationOutput","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationOutput identifies the %output notification, available since tmux 3.2a. Its wire grammar is %output . ParseControlNotification returns its arguments as pane ID, data tail. Its tail may be empty."},"source":{"file":"tmux/option_generated.go","line":1711,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationOutput","product":"core","slug":"tmux-controlnotificationoutput"},{"id":"tmux.ControlNotificationPaneModeChanged","name":"ControlNotificationPaneModeChanged","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationPaneModeChanged identifies the %pane-mode-changed notification, available since tmux 3.2a. Its wire grammar is %pane-mode-changed . ParseControlNotification returns its arguments as pane ID."},"source":{"file":"tmux/option_generated.go","line":1714,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationPaneModeChanged","product":"core","slug":"tmux-controlnotificationpanemodechanged"},{"id":"tmux.ControlNotificationPasteBufferChanged","name":"ControlNotificationPasteBufferChanged","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationPasteBufferChanged identifies the %paste-buffer-changed notification, available since tmux 3.4. Its wire grammar is %paste-buffer-changed . ParseControlNotification returns its arguments as name tail."},"source":{"file":"tmux/option_generated.go","line":1717,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationPasteBufferChanged","product":"core","slug":"tmux-controlnotificationpastebufferchanged"},{"id":"tmux.ControlNotificationPasteBufferDeleted","name":"ControlNotificationPasteBufferDeleted","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationPasteBufferDeleted identifies the %paste-buffer-deleted notification, available since tmux 3.4. Its wire grammar is %paste-buffer-deleted . ParseControlNotification returns its arguments as name tail."},"source":{"file":"tmux/option_generated.go","line":1720,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationPasteBufferDeleted","product":"core","slug":"tmux-controlnotificationpastebufferdeleted"},{"id":"tmux.ControlNotificationPause","name":"ControlNotificationPause","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationPause identifies the %pause notification, available since tmux 3.2a. Its wire grammar is %pause . ParseControlNotification returns its arguments as pane ID."},"source":{"file":"tmux/option_generated.go","line":1723,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationPause","product":"core","slug":"tmux-controlnotificationpause"},{"id":"tmux.ControlNotificationSessionChanged","name":"ControlNotificationSessionChanged","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationSessionChanged identifies the %session-changed notification, available since tmux 3.2a. Its wire grammar is %session-changed . ParseControlNotification returns its arguments as session ID, session name tail."},"source":{"file":"tmux/option_generated.go","line":1726,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationSessionChanged","product":"core","slug":"tmux-controlnotificationsessionchanged"},{"id":"tmux.ControlNotificationSessionRenamed","name":"ControlNotificationSessionRenamed","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationSessionRenamed identifies the %session-renamed notification, available since tmux 3.2a. Its wire grammar is %session-renamed . ParseControlNotification returns its arguments as session ID, session name tail."},"source":{"file":"tmux/option_generated.go","line":1729,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationSessionRenamed","product":"core","slug":"tmux-controlnotificationsessionrenamed"},{"id":"tmux.ControlNotificationSessionWindowChanged","name":"ControlNotificationSessionWindowChanged","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationSessionWindowChanged identifies the %session-window-changed notification, available since tmux 3.2a. Its wire grammar is %session-window-changed . ParseControlNotification returns its arguments as session ID, window ID."},"source":{"file":"tmux/option_generated.go","line":1732,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationSessionWindowChanged","product":"core","slug":"tmux-controlnotificationsessionwindowchanged"},{"id":"tmux.ControlNotificationSessionsChanged","name":"ControlNotificationSessionsChanged","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationSessionsChanged identifies the %sessions-changed notification, available since tmux 3.2a. Its wire grammar is %sessions-changed. ParseControlNotification returns its arguments as no arguments."},"source":{"file":"tmux/option_generated.go","line":1735,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationSessionsChanged","product":"core","slug":"tmux-controlnotificationsessionschanged"},{"id":"tmux.ControlNotificationSubscriptionChanged","name":"ControlNotificationSubscriptionChanged","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationSubscriptionChanged identifies the %subscription-changed notification, available since tmux 3.2a. Its wire grammar is %subscription-changed { zero or more } : . ParseControlNotification returns its arguments as the prefix arguments, then zero or more reserved arguments, then the value tail; the prefix arguments are name, session ID, window ID, window index, pane ID. Its tail may be empty."},"source":{"file":"tmux/option_generated.go","line":1739,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationSubscriptionChanged","product":"core","slug":"tmux-controlnotificationsubscriptionchanged"},{"id":"tmux.ControlNotificationUnlinkedWindowAdd","name":"ControlNotificationUnlinkedWindowAdd","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationUnlinkedWindowAdd identifies the %unlinked-window-add notification, available since tmux 3.2a. Its wire grammar is %unlinked-window-add . ParseControlNotification returns its arguments as window ID."},"source":{"file":"tmux/option_generated.go","line":1742,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationUnlinkedWindowAdd","product":"core","slug":"tmux-controlnotificationunlinkedwindowadd"},{"id":"tmux.ControlNotificationUnlinkedWindowClose","name":"ControlNotificationUnlinkedWindowClose","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationUnlinkedWindowClose identifies the %unlinked-window-close notification, available since tmux 3.2a. Its wire grammar is %unlinked-window-close . ParseControlNotification returns its arguments as window ID."},"source":{"file":"tmux/option_generated.go","line":1745,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationUnlinkedWindowClose","product":"core","slug":"tmux-controlnotificationunlinkedwindowclose"},{"id":"tmux.ControlNotificationUnlinkedWindowRenamed","name":"ControlNotificationUnlinkedWindowRenamed","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationUnlinkedWindowRenamed identifies the %unlinked-window-renamed notification, available since tmux 3.2a. Its wire grammar is %unlinked-window-renamed . ParseControlNotification returns its arguments as window ID, name tail."},"source":{"file":"tmux/option_generated.go","line":1748,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationUnlinkedWindowRenamed","product":"core","slug":"tmux-controlnotificationunlinkedwindowrenamed"},{"id":"tmux.ControlNotificationWindowAdd","name":"ControlNotificationWindowAdd","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationWindowAdd identifies the %window-add notification, available since tmux 3.2a. Its wire grammar is %window-add . ParseControlNotification returns its arguments as window ID."},"source":{"file":"tmux/option_generated.go","line":1751,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationWindowAdd","product":"core","slug":"tmux-controlnotificationwindowadd"},{"id":"tmux.ControlNotificationWindowClose","name":"ControlNotificationWindowClose","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationWindowClose identifies the %window-close notification, available since tmux 3.2a. Its wire grammar is %window-close . ParseControlNotification returns its arguments as window ID."},"source":{"file":"tmux/option_generated.go","line":1754,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationWindowClose","product":"core","slug":"tmux-controlnotificationwindowclose"},{"id":"tmux.ControlNotificationWindowPaneChanged","name":"ControlNotificationWindowPaneChanged","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationWindowPaneChanged identifies the %window-pane-changed notification, available since tmux 3.2a. Its wire grammar is %window-pane-changed . ParseControlNotification returns its arguments as window ID, pane ID."},"source":{"file":"tmux/option_generated.go","line":1757,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationWindowPaneChanged","product":"core","slug":"tmux-controlnotificationwindowpanechanged"},{"id":"tmux.ControlNotificationWindowRenamed","name":"ControlNotificationWindowRenamed","kind":"constant","modifiers":[],"signatures":[],"type":"ControlNotificationKind","doc":{"summary":"ControlNotificationWindowRenamed identifies the %window-renamed notification, available since tmux 3.2a. Its wire grammar is %window-renamed . ParseControlNotification returns its arguments as window ID, name tail."},"source":{"file":"tmux/option_generated.go","line":1760,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationWindowRenamed","product":"core","slug":"tmux-controlnotificationwindowrenamed"},{"id":"tmux.ControlNotificationKind.MinimumVersion","name":"MinimumVersion","kind":"method","modifiers":[],"parent":"tmux.ControlNotificationKind","signatures":[{"raw":"func (k ControlNotificationKind) MinimumVersion() (Version, bool)","params":[],"receiver":{"name":"k","type":"ControlNotificationKind"},"returns":"(Version, bool)"}],"doc":{"summary":"MinimumVersion returns the oldest [Version] that emits k. It returns ok == false for the zero value and unknown kinds."},"source":{"file":"tmux/option_generated.go","line":1793,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ControlNotificationKind.MinimumVersion","product":"core","slug":"tmux-controlnotificationkind-minimumversion"},{"id":"tmux.ServerOptionValues","name":"ServerOptionValues","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ServerOptionValues is an immutable materialized view of known server option values; its zero value is empty and it does not refresh. Obtain it with [Server.Options]. [OptionValue.Get] reports presence and [OptionValue.Origin] reports inheritance. Use [Server.RawOption] for caller-named or undecoded values."},"source":{"file":"tmux/option_generated.go","line":1816,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues","product":"core","slug":"tmux-serveroptionvalues"},{"id":"tmux.ServerOptionValues.Backspace","name":"Backspace","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) Backspace() OptionValue[string]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"Backspace returns materialized \"backspace\" as [OptionValue] with value type OptionValue[string] from server option values; it does not query tmux. Available as KEY since tmux 3.2a; set it with [Server.SetBackspace]."},"source":{"file":"tmux/option_generated.go","line":1846,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.Backspace","product":"core","slug":"tmux-serveroptionvalues-backspace"},{"id":"tmux.ServerOptionValues.BufferLimit","name":"BufferLimit","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) BufferLimit() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"BufferLimit returns materialized \"buffer-limit\" as [OptionValue] with value type OptionValue[int64] from server option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Server.SetBufferLimit]."},"source":{"file":"tmux/option_generated.go","line":1850,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.BufferLimit","product":"core","slug":"tmux-serveroptionvalues-bufferlimit"},{"id":"tmux.ServerOptionValues.CodepointWidths","name":"CodepointWidths","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) CodepointWidths() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"CodepointWidths returns materialized \"codepoint-widths\" as [OptionValue] with value type OptionValue[SparseArray[string]] from server option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Server.SetCodepointWidths]. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":1855,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.CodepointWidths","product":"core","slug":"tmux-serveroptionvalues-codepointwidths"},{"id":"tmux.ServerOptionValues.CommandAlias","name":"CommandAlias","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) CommandAlias() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"CommandAlias returns materialized \"command-alias\" as [OptionValue] with value type OptionValue[SparseArray[string]] from server option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Server.SetCommandAlias]. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":1862,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.CommandAlias","product":"core","slug":"tmux-serveroptionvalues-commandalias"},{"id":"tmux.ServerOptionValues.CopyCommand","name":"CopyCommand","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) CopyCommand() OptionValue[string]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyCommand returns materialized \"copy-command\" as [OptionValue] with value type OptionValue[string] from server option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Server.SetCopyCommand]."},"source":{"file":"tmux/option_generated.go","line":1866,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.CopyCommand","product":"core","slug":"tmux-serveroptionvalues-copycommand"},{"id":"tmux.ServerOptionValues.DefaultClientCommand","name":"DefaultClientCommand","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) DefaultClientCommand() OptionValue[string]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"DefaultClientCommand returns materialized \"default-client-command\" as [OptionValue] with value type OptionValue[string] from server option values; it does not query tmux. Available as COMMAND since tmux 3.6; set it with [Server.SetDefaultClientCommand]."},"source":{"file":"tmux/option_generated.go","line":1870,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.DefaultClientCommand","product":"core","slug":"tmux-serveroptionvalues-defaultclientcommand"},{"id":"tmux.ServerOptionValues.DefaultTerminal","name":"DefaultTerminal","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) DefaultTerminal() OptionValue[string]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"DefaultTerminal returns materialized \"default-terminal\" as [OptionValue] with value type OptionValue[string] from server option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Server.SetDefaultTerminal]."},"source":{"file":"tmux/option_generated.go","line":1874,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.DefaultTerminal","product":"core","slug":"tmux-serveroptionvalues-defaultterminal"},{"id":"tmux.ServerOptionValues.Editor","name":"Editor","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) Editor() OptionValue[string]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"Editor returns materialized \"editor\" as [OptionValue] with value type OptionValue[string] from server option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Server.SetEditor]."},"source":{"file":"tmux/option_generated.go","line":1878,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.Editor","product":"core","slug":"tmux-serveroptionvalues-editor"},{"id":"tmux.ServerOptionValues.EscapeTime","name":"EscapeTime","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) EscapeTime() OptionValue[time.Duration]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[time.Duration]"}],"doc":{"summary":"EscapeTime returns materialized \"escape-time\" as [OptionValue] with value type OptionValue[time.Duration] from server option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Server.SetEscapeTime]."},"source":{"file":"tmux/option_generated.go","line":1882,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.EscapeTime","product":"core","slug":"tmux-serveroptionvalues-escapetime"},{"id":"tmux.ServerOptionValues.ExitEmpty","name":"ExitEmpty","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) ExitEmpty() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"ExitEmpty returns materialized \"exit-empty\" as [OptionValue] with value type OptionValue[bool] from server option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Server.SetExitEmpty]."},"source":{"file":"tmux/option_generated.go","line":1886,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.ExitEmpty","product":"core","slug":"tmux-serveroptionvalues-exitempty"},{"id":"tmux.ServerOptionValues.ExitUnattached","name":"ExitUnattached","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) ExitUnattached() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"ExitUnattached returns materialized \"exit-unattached\" as [OptionValue] with value type OptionValue[bool] from server option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Server.SetExitUnattached]."},"source":{"file":"tmux/option_generated.go","line":1890,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.ExitUnattached","product":"core","slug":"tmux-serveroptionvalues-exitunattached"},{"id":"tmux.ServerOptionValues.ExtendedKeys","name":"ExtendedKeys","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) ExtendedKeys() OptionValue[ExtendedKeys]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[ExtendedKeys]"}],"doc":{"summary":"ExtendedKeys returns materialized \"extended-keys\" as [OptionValue] with value type OptionValue[ExtendedKeys] from server option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"on\", \"always\"); set it with [Server.SetExtendedKeys]."},"source":{"file":"tmux/option_generated.go","line":1894,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.ExtendedKeys","product":"core","slug":"tmux-serveroptionvalues-extendedkeys"},{"id":"tmux.ServerOptionValues.ExtendedKeysFormat","name":"ExtendedKeysFormat","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) ExtendedKeysFormat() OptionValue[ExtendedKeysFormat]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[ExtendedKeysFormat]"}],"doc":{"summary":"ExtendedKeysFormat returns materialized \"extended-keys-format\" as [OptionValue] with value type OptionValue[ExtendedKeysFormat] from server option values; it does not query tmux. Available as CHOICE since tmux 3.5 (choices: \"csi-u\", \"xterm\"); set it with [Server.SetExtendedKeysFormat]."},"source":{"file":"tmux/option_generated.go","line":1898,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.ExtendedKeysFormat","product":"core","slug":"tmux-serveroptionvalues-extendedkeysformat"},{"id":"tmux.ServerOptionValues.FocusEvents","name":"FocusEvents","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) FocusEvents() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"FocusEvents returns materialized \"focus-events\" as [OptionValue] with value type OptionValue[bool] from server option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Server.SetFocusEvents]."},"source":{"file":"tmux/option_generated.go","line":1904,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.FocusEvents","product":"core","slug":"tmux-serveroptionvalues-focusevents"},{"id":"tmux.ServerOptionValues.GetClipboard","name":"GetClipboard","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) GetClipboard() OptionValue[GetClipboard]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[GetClipboard]"}],"doc":{"summary":"GetClipboard returns materialized \"get-clipboard\" as [OptionValue] with value type OptionValue[GetClipboard] from server option values; it does not query tmux. Available as CHOICE since tmux 3.7 (choices: \"off\", \"buffer\", \"request\", \"both\"); set it with [Server.SetGetClipboard]."},"source":{"file":"tmux/option_generated.go","line":1908,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.GetClipboard","product":"core","slug":"tmux-serveroptionvalues-getclipboard"},{"id":"tmux.ServerOptionValues.HistoryFile","name":"HistoryFile","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) HistoryFile() OptionValue[string]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"HistoryFile returns materialized \"history-file\" as [OptionValue] with value type OptionValue[string] from server option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Server.SetHistoryFile]."},"source":{"file":"tmux/option_generated.go","line":1912,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.HistoryFile","product":"core","slug":"tmux-serveroptionvalues-historyfile"},{"id":"tmux.ServerOptionValues.InputBufferSize","name":"InputBufferSize","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) InputBufferSize() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"InputBufferSize returns materialized \"input-buffer-size\" as [OptionValue] with value type OptionValue[int64] from server option values; it does not query tmux. Available as NUMBER since tmux 3.6; set it with [Server.SetInputBufferSize]."},"source":{"file":"tmux/option_generated.go","line":1916,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.InputBufferSize","product":"core","slug":"tmux-serveroptionvalues-inputbuffersize"},{"id":"tmux.ServerOptionValues.MessageLimit","name":"MessageLimit","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) MessageLimit() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"MessageLimit returns materialized \"message-limit\" as [OptionValue] with value type OptionValue[int64] from server option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Server.SetMessageLimit]."},"source":{"file":"tmux/option_generated.go","line":1920,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.MessageLimit","product":"core","slug":"tmux-serveroptionvalues-messagelimit"},{"id":"tmux.ServerOptionValues.PrefixTimeout","name":"PrefixTimeout","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) PrefixTimeout() OptionValue[time.Duration]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[time.Duration]"}],"doc":{"summary":"PrefixTimeout returns materialized \"prefix-timeout\" as [OptionValue] with value type OptionValue[time.Duration] from server option values; it does not query tmux. Available as NUMBER since tmux 3.5; set it with [Server.SetPrefixTimeout]."},"source":{"file":"tmux/option_generated.go","line":1924,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.PrefixTimeout","product":"core","slug":"tmux-serveroptionvalues-prefixtimeout"},{"id":"tmux.ServerOptionValues.PromptHistoryLimit","name":"PromptHistoryLimit","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) PromptHistoryLimit() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"PromptHistoryLimit returns materialized \"prompt-history-limit\" as [OptionValue] with value type OptionValue[int64] from server option values; it does not query tmux. Available as NUMBER since tmux 3.3; set it with [Server.SetPromptHistoryLimit]."},"source":{"file":"tmux/option_generated.go","line":1928,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.PromptHistoryLimit","product":"core","slug":"tmux-serveroptionvalues-prompthistorylimit"},{"id":"tmux.ServerOptionValues.SetClipboard","name":"SetClipboard","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) SetClipboard() OptionValue[SetClipboard]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[SetClipboard]"}],"doc":{"summary":"SetClipboard returns materialized \"set-clipboard\" as [OptionValue] with value type OptionValue[SetClipboard] from server option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"external\", \"on\"); set it with [Server.SetClipboard]."},"source":{"file":"tmux/option_generated.go","line":1932,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.SetClipboard","product":"core","slug":"tmux-serveroptionvalues-setclipboard"},{"id":"tmux.ServerOptionValues.TerminalFeatures","name":"TerminalFeatures","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) TerminalFeatures() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"TerminalFeatures returns materialized \"terminal-features\" as [OptionValue] with value type OptionValue[SparseArray[string]] from server option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Server.SetTerminalFeatures]. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":1937,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.TerminalFeatures","product":"core","slug":"tmux-serveroptionvalues-terminalfeatures"},{"id":"tmux.ServerOptionValues.TerminalOverrides","name":"TerminalOverrides","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) TerminalOverrides() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"TerminalOverrides returns materialized \"terminal-overrides\" as [OptionValue] with value type OptionValue[SparseArray[string]] from server option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Server.SetTerminalOverrides]. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":1944,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.TerminalOverrides","product":"core","slug":"tmux-serveroptionvalues-terminaloverrides"},{"id":"tmux.ServerOptionValues.UserKeys","name":"UserKeys","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) UserKeys() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"UserKeys returns materialized \"user-keys\" as [OptionValue] with value type OptionValue[SparseArray[string]] from server option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Server.SetUserKeys]. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":1951,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.UserKeys","product":"core","slug":"tmux-serveroptionvalues-userkeys"},{"id":"tmux.ServerOptionValues.VariationSelectorAlwaysWide","name":"VariationSelectorAlwaysWide","kind":"method","modifiers":[],"parent":"tmux.ServerOptionValues","signatures":[{"raw":"func (v ServerOptionValues) VariationSelectorAlwaysWide() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"ServerOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"VariationSelectorAlwaysWide returns materialized \"variation-selector-always-wide\" as [OptionValue] with value type OptionValue[bool] from server option values; it does not query tmux. Available as FLAG since tmux 3.6; set it with [Server.SetVariationSelectorAlwaysWide]."},"source":{"file":"tmux/option_generated.go","line":1955,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptionValues.VariationSelectorAlwaysWide","product":"core","slug":"tmux-serveroptionvalues-variationselectoralwayswide"},{"id":"tmux.SessionOptionValues","name":"SessionOptionValues","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SessionOptionValues is an immutable materialized view of known session option values; its zero value is empty and it does not refresh. Obtain it with [Session.Options] or [GlobalSessionScope.Options]. [OptionValue.Get] reports presence and [OptionValue.Origin] reports inheritance. Use [Session.RawOption] or [GlobalSessionScope.RawOption] for caller-named or undecoded values."},"source":{"file":"tmux/option_generated.go","line":2021,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues","product":"core","slug":"tmux-sessionoptionvalues"},{"id":"tmux.SessionOptionValues.ActivityAction","name":"ActivityAction","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) ActivityAction() OptionValue[ActivityAction]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[ActivityAction]"}],"doc":{"summary":"ActivityAction returns materialized \"activity-action\" as [OptionValue] with value type OptionValue[ActivityAction] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"none\", \"any\", \"current\", \"other\"); set it with [Session.SetActivityAction] or [GlobalSessionScope.SetActivityAction]."},"source":{"file":"tmux/option_generated.go","line":2080,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.ActivityAction","product":"core","slug":"tmux-sessionoptionvalues-activityaction"},{"id":"tmux.SessionOptionValues.AssumePasteTime","name":"AssumePasteTime","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) AssumePasteTime() OptionValue[time.Duration]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[time.Duration]"}],"doc":{"summary":"AssumePasteTime returns materialized \"assume-paste-time\" as [OptionValue] with value type OptionValue[time.Duration] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetAssumePasteTime] or [GlobalSessionScope.SetAssumePasteTime]."},"source":{"file":"tmux/option_generated.go","line":2084,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.AssumePasteTime","product":"core","slug":"tmux-sessionoptionvalues-assumepastetime"},{"id":"tmux.SessionOptionValues.BaseIndex","name":"BaseIndex","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) BaseIndex() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"BaseIndex returns materialized \"base-index\" as [OptionValue] with value type OptionValue[int64] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetBaseIndex] or [GlobalSessionScope.SetBaseIndex]."},"source":{"file":"tmux/option_generated.go","line":2088,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.BaseIndex","product":"core","slug":"tmux-sessionoptionvalues-baseindex"},{"id":"tmux.SessionOptionValues.BellAction","name":"BellAction","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) BellAction() OptionValue[BellAction]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[BellAction]"}],"doc":{"summary":"BellAction returns materialized \"bell-action\" as [OptionValue] with value type OptionValue[BellAction] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"none\", \"any\", \"current\", \"other\"); set it with [Session.SetBellAction] or [GlobalSessionScope.SetBellAction]."},"source":{"file":"tmux/option_generated.go","line":2092,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.BellAction","product":"core","slug":"tmux-sessionoptionvalues-bellaction"},{"id":"tmux.SessionOptionValues.DefaultCommand","name":"DefaultCommand","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) DefaultCommand() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"DefaultCommand returns materialized \"default-command\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetDefaultCommand] or [GlobalSessionScope.SetDefaultCommand]."},"source":{"file":"tmux/option_generated.go","line":2096,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.DefaultCommand","product":"core","slug":"tmux-sessionoptionvalues-defaultcommand"},{"id":"tmux.SessionOptionValues.DefaultShell","name":"DefaultShell","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) DefaultShell() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"DefaultShell returns materialized \"default-shell\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetDefaultShell] or [GlobalSessionScope.SetDefaultShell]."},"source":{"file":"tmux/option_generated.go","line":2100,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.DefaultShell","product":"core","slug":"tmux-sessionoptionvalues-defaultshell"},{"id":"tmux.SessionOptionValues.DefaultSize","name":"DefaultSize","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) DefaultSize() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"DefaultSize returns materialized \"default-size\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetDefaultSize] or [GlobalSessionScope.SetDefaultSize]."},"source":{"file":"tmux/option_generated.go","line":2104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.DefaultSize","product":"core","slug":"tmux-sessionoptionvalues-defaultsize"},{"id":"tmux.SessionOptionValues.DestroyUnattached","name":"DestroyUnattached","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) DestroyUnattached() OptionValue[DestroyUnattached]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[DestroyUnattached]"}],"doc":{"summary":"DestroyUnattached returns materialized \"destroy-unattached\" as [OptionValue] with value type OptionValue[DestroyUnattached] from session option values; it does not query tmux. Available as FLAG since tmux 3.2a; CHOICE since tmux 3.4 (choices: \"off\", \"on\", \"keep-last\", \"keep-group\"); set it with [Session.SetDestroyUnattached] or [GlobalSessionScope.SetDestroyUnattached]."},"source":{"file":"tmux/option_generated.go","line":2108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.DestroyUnattached","product":"core","slug":"tmux-sessionoptionvalues-destroyunattached"},{"id":"tmux.SessionOptionValues.DetachOnDestroy","name":"DetachOnDestroy","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) DetachOnDestroy() OptionValue[DetachOnDestroy]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[DetachOnDestroy]"}],"doc":{"summary":"DetachOnDestroy returns materialized \"detach-on-destroy\" as [OptionValue] with value type OptionValue[DetachOnDestroy] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"on\", \"no-detached\"); CHOICE since tmux 3.4 (choices: \"off\", \"on\", \"no-detached\", \"previous\", \"next\"); set it with [Session.SetDetachOnDestroy] or [GlobalSessionScope.SetDetachOnDestroy]."},"source":{"file":"tmux/option_generated.go","line":2114,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.DetachOnDestroy","product":"core","slug":"tmux-sessionoptionvalues-detachondestroy"},{"id":"tmux.SessionOptionValues.DisplayPanesActiveColour","name":"DisplayPanesActiveColour","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) DisplayPanesActiveColour() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"DisplayPanesActiveColour returns materialized \"display-panes-active-colour\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as COLOUR since tmux 3.2a; set it with [Session.SetDisplayPanesActiveColour] or [GlobalSessionScope.SetDisplayPanesActiveColour]."},"source":{"file":"tmux/option_generated.go","line":2118,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.DisplayPanesActiveColour","product":"core","slug":"tmux-sessionoptionvalues-displaypanesactivecolour"},{"id":"tmux.SessionOptionValues.DisplayPanesColour","name":"DisplayPanesColour","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) DisplayPanesColour() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"DisplayPanesColour returns materialized \"display-panes-colour\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as COLOUR since tmux 3.2a; set it with [Session.SetDisplayPanesColour] or [GlobalSessionScope.SetDisplayPanesColour]."},"source":{"file":"tmux/option_generated.go","line":2124,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.DisplayPanesColour","product":"core","slug":"tmux-sessionoptionvalues-displaypanescolour"},{"id":"tmux.SessionOptionValues.DisplayPanesTime","name":"DisplayPanesTime","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) DisplayPanesTime() OptionValue[time.Duration]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[time.Duration]"}],"doc":{"summary":"DisplayPanesTime returns materialized \"display-panes-time\" as [OptionValue] with value type OptionValue[time.Duration] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetDisplayPanesTime] or [GlobalSessionScope.SetDisplayPanesTime]."},"source":{"file":"tmux/option_generated.go","line":2128,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.DisplayPanesTime","product":"core","slug":"tmux-sessionoptionvalues-displaypanestime"},{"id":"tmux.SessionOptionValues.DisplayTime","name":"DisplayTime","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) DisplayTime() OptionValue[time.Duration]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[time.Duration]"}],"doc":{"summary":"DisplayTime returns materialized \"display-time\" as [OptionValue] with value type OptionValue[time.Duration] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetDisplayTime] or [GlobalSessionScope.SetDisplayTime]."},"source":{"file":"tmux/option_generated.go","line":2132,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.DisplayTime","product":"core","slug":"tmux-sessionoptionvalues-displaytime"},{"id":"tmux.SessionOptionValues.FocusFollowsMouse","name":"FocusFollowsMouse","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) FocusFollowsMouse() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"FocusFollowsMouse returns materialized \"focus-follows-mouse\" as [OptionValue] with value type OptionValue[bool] from session option values; it does not query tmux. Available as FLAG since tmux 3.7; set it with [Session.SetFocusFollowsMouse] or [GlobalSessionScope.SetFocusFollowsMouse]."},"source":{"file":"tmux/option_generated.go","line":2136,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.FocusFollowsMouse","product":"core","slug":"tmux-sessionoptionvalues-focusfollowsmouse"},{"id":"tmux.SessionOptionValues.HistoryLimit","name":"HistoryLimit","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) HistoryLimit() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"HistoryLimit returns materialized \"history-limit\" as [OptionValue] with value type OptionValue[int64] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetHistoryLimit] or [GlobalSessionScope.SetHistoryLimit]."},"source":{"file":"tmux/option_generated.go","line":2140,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.HistoryLimit","product":"core","slug":"tmux-sessionoptionvalues-historylimit"},{"id":"tmux.SessionOptionValues.InitialRepeatTime","name":"InitialRepeatTime","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) InitialRepeatTime() OptionValue[time.Duration]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[time.Duration]"}],"doc":{"summary":"InitialRepeatTime returns materialized \"initial-repeat-time\" as [OptionValue] with value type OptionValue[time.Duration] from session option values; it does not query tmux. Available as NUMBER since tmux 3.6; set it with [Session.SetInitialRepeatTime] or [GlobalSessionScope.SetInitialRepeatTime]."},"source":{"file":"tmux/option_generated.go","line":2144,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.InitialRepeatTime","product":"core","slug":"tmux-sessionoptionvalues-initialrepeattime"},{"id":"tmux.SessionOptionValues.KeyTable","name":"KeyTable","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) KeyTable() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"KeyTable returns materialized \"key-table\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetKeyTable] or [GlobalSessionScope.SetKeyTable]."},"source":{"file":"tmux/option_generated.go","line":2150,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.KeyTable","product":"core","slug":"tmux-sessionoptionvalues-keytable"},{"id":"tmux.SessionOptionValues.LockAfterTime","name":"LockAfterTime","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) LockAfterTime() OptionValue[time.Duration]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[time.Duration]"}],"doc":{"summary":"LockAfterTime returns materialized \"lock-after-time\" as [OptionValue] with value type OptionValue[time.Duration] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetLockAfterTime] or [GlobalSessionScope.SetLockAfterTime]."},"source":{"file":"tmux/option_generated.go","line":2154,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.LockAfterTime","product":"core","slug":"tmux-sessionoptionvalues-lockaftertime"},{"id":"tmux.SessionOptionValues.LockCommand","name":"LockCommand","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) LockCommand() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"LockCommand returns materialized \"lock-command\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetLockCommand] or [GlobalSessionScope.SetLockCommand]."},"source":{"file":"tmux/option_generated.go","line":2158,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.LockCommand","product":"core","slug":"tmux-sessionoptionvalues-lockcommand"},{"id":"tmux.SessionOptionValues.MessageCommandStyle","name":"MessageCommandStyle","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) MessageCommandStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"MessageCommandStyle returns materialized \"message-command-style\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetMessageCommandStyle] or [GlobalSessionScope.SetMessageCommandStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2163,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.MessageCommandStyle","product":"core","slug":"tmux-sessionoptionvalues-messagecommandstyle"},{"id":"tmux.SessionOptionValues.MessageFormat","name":"MessageFormat","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) MessageFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"MessageFormat returns materialized \"message-format\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Session.SetMessageFormat] or [GlobalSessionScope.SetMessageFormat]."},"source":{"file":"tmux/option_generated.go","line":2167,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.MessageFormat","product":"core","slug":"tmux-sessionoptionvalues-messageformat"},{"id":"tmux.SessionOptionValues.MessageLine","name":"MessageLine","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) MessageLine() OptionValue[MessageLine]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[MessageLine]"}],"doc":{"summary":"MessageLine returns materialized \"message-line\" as [OptionValue] with value type OptionValue[MessageLine] from session option values; it does not query tmux. Available as CHOICE since tmux 3.4 (choices: \"0\", \"1\", \"2\", \"3\", \"4\"); set it with [Session.SetMessageLine] or [GlobalSessionScope.SetMessageLine]."},"source":{"file":"tmux/option_generated.go","line":2171,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.MessageLine","product":"core","slug":"tmux-sessionoptionvalues-messageline"},{"id":"tmux.SessionOptionValues.MessageStyle","name":"MessageStyle","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) MessageStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"MessageStyle returns materialized \"message-style\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetMessageStyle] or [GlobalSessionScope.SetMessageStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2176,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.MessageStyle","product":"core","slug":"tmux-sessionoptionvalues-messagestyle"},{"id":"tmux.SessionOptionValues.Mouse","name":"Mouse","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) Mouse() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"Mouse returns materialized \"mouse\" as [OptionValue] with value type OptionValue[bool] from session option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Session.SetMouse] or [GlobalSessionScope.SetMouse]."},"source":{"file":"tmux/option_generated.go","line":2180,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.Mouse","product":"core","slug":"tmux-sessionoptionvalues-mouse"},{"id":"tmux.SessionOptionValues.Prefix","name":"Prefix","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) Prefix() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"Prefix returns materialized \"prefix\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as KEY since tmux 3.2a; set it with [Session.SetPrefix] or [GlobalSessionScope.SetPrefix]."},"source":{"file":"tmux/option_generated.go","line":2184,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.Prefix","product":"core","slug":"tmux-sessionoptionvalues-prefix"},{"id":"tmux.SessionOptionValues.Prefix2","name":"Prefix2","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) Prefix2() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"Prefix2 returns materialized \"prefix2\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as KEY since tmux 3.2a; set it with [Session.SetPrefix2] or [GlobalSessionScope.SetPrefix2]."},"source":{"file":"tmux/option_generated.go","line":2188,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.Prefix2","product":"core","slug":"tmux-sessionoptionvalues-prefix2"},{"id":"tmux.SessionOptionValues.PromptCommandCursorStyle","name":"PromptCommandCursorStyle","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) PromptCommandCursorStyle() OptionValue[PromptCommandCursorStyle]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[PromptCommandCursorStyle]"}],"doc":{"summary":"PromptCommandCursorStyle returns materialized \"prompt-command-cursor-style\" as [OptionValue] with value type OptionValue[PromptCommandCursorStyle] from session option values; it does not query tmux. Available as CHOICE since tmux 3.7 (choices: \"default\", \"blinking-block\", \"block\", \"blinking-underline\", \"underline\", \"blinking-bar\", \"bar\"); set it with [Session.SetPromptCommandCursorStyle] or [GlobalSessionScope.SetPromptCommandCursorStyle]."},"source":{"file":"tmux/option_generated.go","line":2192,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.PromptCommandCursorStyle","product":"core","slug":"tmux-sessionoptionvalues-promptcommandcursorstyle"},{"id":"tmux.SessionOptionValues.PromptCursorColour","name":"PromptCursorColour","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) PromptCursorColour() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PromptCursorColour returns materialized \"prompt-cursor-colour\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as COLOUR since tmux 3.6; set it with [Session.SetPromptCursorColour] or [GlobalSessionScope.SetPromptCursorColour]."},"source":{"file":"tmux/option_generated.go","line":2198,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.PromptCursorColour","product":"core","slug":"tmux-sessionoptionvalues-promptcursorcolour"},{"id":"tmux.SessionOptionValues.PromptCursorStyle","name":"PromptCursorStyle","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) PromptCursorStyle() OptionValue[PromptCursorStyle]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[PromptCursorStyle]"}],"doc":{"summary":"PromptCursorStyle returns materialized \"prompt-cursor-style\" as [OptionValue] with value type OptionValue[PromptCursorStyle] from session option values; it does not query tmux. Available as CHOICE since tmux 3.6 (choices: \"default\", \"blinking-block\", \"block\", \"blinking-underline\", \"underline\", \"blinking-bar\", \"bar\"); set it with [Session.SetPromptCursorStyle] or [GlobalSessionScope.SetPromptCursorStyle]."},"source":{"file":"tmux/option_generated.go","line":2202,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.PromptCursorStyle","product":"core","slug":"tmux-sessionoptionvalues-promptcursorstyle"},{"id":"tmux.SessionOptionValues.RenumberWindows","name":"RenumberWindows","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) RenumberWindows() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"RenumberWindows returns materialized \"renumber-windows\" as [OptionValue] with value type OptionValue[bool] from session option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Session.SetRenumberWindows] or [GlobalSessionScope.SetRenumberWindows]."},"source":{"file":"tmux/option_generated.go","line":2208,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.RenumberWindows","product":"core","slug":"tmux-sessionoptionvalues-renumberwindows"},{"id":"tmux.SessionOptionValues.RepeatTime","name":"RepeatTime","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) RepeatTime() OptionValue[time.Duration]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[time.Duration]"}],"doc":{"summary":"RepeatTime returns materialized \"repeat-time\" as [OptionValue] with value type OptionValue[time.Duration] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetRepeatTime] or [GlobalSessionScope.SetRepeatTime]."},"source":{"file":"tmux/option_generated.go","line":2212,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.RepeatTime","product":"core","slug":"tmux-sessionoptionvalues-repeattime"},{"id":"tmux.SessionOptionValues.SetTitles","name":"SetTitles","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) SetTitles() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"SetTitles returns materialized \"set-titles\" as [OptionValue] with value type OptionValue[bool] from session option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Session.SetTitles] or [GlobalSessionScope.SetTitles]."},"source":{"file":"tmux/option_generated.go","line":2216,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.SetTitles","product":"core","slug":"tmux-sessionoptionvalues-settitles"},{"id":"tmux.SessionOptionValues.SetTitlesString","name":"SetTitlesString","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) SetTitlesString() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"SetTitlesString returns materialized \"set-titles-string\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetTitlesString] or [GlobalSessionScope.SetTitlesString]."},"source":{"file":"tmux/option_generated.go","line":2220,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.SetTitlesString","product":"core","slug":"tmux-sessionoptionvalues-settitlesstring"},{"id":"tmux.SessionOptionValues.SilenceAction","name":"SilenceAction","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) SilenceAction() OptionValue[SilenceAction]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[SilenceAction]"}],"doc":{"summary":"SilenceAction returns materialized \"silence-action\" as [OptionValue] with value type OptionValue[SilenceAction] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"none\", \"any\", \"current\", \"other\"); set it with [Session.SetSilenceAction] or [GlobalSessionScope.SetSilenceAction]."},"source":{"file":"tmux/option_generated.go","line":2224,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.SilenceAction","product":"core","slug":"tmux-sessionoptionvalues-silenceaction"},{"id":"tmux.SessionOptionValues.Status","name":"Status","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) Status() OptionValue[Status]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[Status]"}],"doc":{"summary":"Status returns materialized \"status\" as [OptionValue] with value type OptionValue[Status] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"on\", \"2\", \"3\", \"4\", \"5\"); set it with [Session.SetStatus] or [GlobalSessionScope.SetStatus]."},"source":{"file":"tmux/option_generated.go","line":2228,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.Status","product":"core","slug":"tmux-sessionoptionvalues-status"},{"id":"tmux.SessionOptionValues.StatusBG","name":"StatusBG","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusBG() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"StatusBG returns materialized \"status-bg\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as COLOUR since tmux 3.2a; set it with [Session.SetStatusBG] or [GlobalSessionScope.SetStatusBG]."},"source":{"file":"tmux/option_generated.go","line":2232,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusBG","product":"core","slug":"tmux-sessionoptionvalues-statusbg"},{"id":"tmux.SessionOptionValues.StatusFG","name":"StatusFG","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusFG() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"StatusFG returns materialized \"status-fg\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as COLOUR since tmux 3.2a; set it with [Session.SetStatusFG] or [GlobalSessionScope.SetStatusFG]."},"source":{"file":"tmux/option_generated.go","line":2236,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusFG","product":"core","slug":"tmux-sessionoptionvalues-statusfg"},{"id":"tmux.SessionOptionValues.StatusFormat","name":"StatusFormat","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusFormat() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"StatusFormat returns materialized \"status-format\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetStatusFormat] or [GlobalSessionScope.SetStatusFormat]. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":2241,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusFormat","product":"core","slug":"tmux-sessionoptionvalues-statusformat"},{"id":"tmux.SessionOptionValues.StatusInterval","name":"StatusInterval","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusInterval() OptionValue[time.Duration]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[time.Duration]"}],"doc":{"summary":"StatusInterval returns materialized \"status-interval\" as [OptionValue] with value type OptionValue[time.Duration] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetStatusInterval] or [GlobalSessionScope.SetStatusInterval]."},"source":{"file":"tmux/option_generated.go","line":2245,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusInterval","product":"core","slug":"tmux-sessionoptionvalues-statusinterval"},{"id":"tmux.SessionOptionValues.StatusJustify","name":"StatusJustify","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusJustify() OptionValue[StatusJustify]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[StatusJustify]"}],"doc":{"summary":"StatusJustify returns materialized \"status-justify\" as [OptionValue] with value type OptionValue[StatusJustify] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"left\", \"centre\", \"right\", \"absolute-centre\"); set it with [Session.SetStatusJustify] or [GlobalSessionScope.SetStatusJustify]."},"source":{"file":"tmux/option_generated.go","line":2249,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusJustify","product":"core","slug":"tmux-sessionoptionvalues-statusjustify"},{"id":"tmux.SessionOptionValues.StatusKeys","name":"StatusKeys","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusKeys() OptionValue[StatusKeys]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[StatusKeys]"}],"doc":{"summary":"StatusKeys returns materialized \"status-keys\" as [OptionValue] with value type OptionValue[StatusKeys] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"emacs\", \"vi\"); set it with [Session.SetStatusKeys] or [GlobalSessionScope.SetStatusKeys]."},"source":{"file":"tmux/option_generated.go","line":2253,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusKeys","product":"core","slug":"tmux-sessionoptionvalues-statuskeys"},{"id":"tmux.SessionOptionValues.StatusLeft","name":"StatusLeft","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusLeft() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"StatusLeft returns materialized \"status-left\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetStatusLeft] or [GlobalSessionScope.SetStatusLeft]."},"source":{"file":"tmux/option_generated.go","line":2257,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusLeft","product":"core","slug":"tmux-sessionoptionvalues-statusleft"},{"id":"tmux.SessionOptionValues.StatusLeftLength","name":"StatusLeftLength","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusLeftLength() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"StatusLeftLength returns materialized \"status-left-length\" as [OptionValue] with value type OptionValue[int64] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetStatusLeftLength] or [GlobalSessionScope.SetStatusLeftLength]."},"source":{"file":"tmux/option_generated.go","line":2261,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusLeftLength","product":"core","slug":"tmux-sessionoptionvalues-statusleftlength"},{"id":"tmux.SessionOptionValues.StatusLeftStyle","name":"StatusLeftStyle","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusLeftStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"StatusLeftStyle returns materialized \"status-left-style\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetStatusLeftStyle] or [GlobalSessionScope.SetStatusLeftStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2266,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusLeftStyle","product":"core","slug":"tmux-sessionoptionvalues-statusleftstyle"},{"id":"tmux.SessionOptionValues.StatusPosition","name":"StatusPosition","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusPosition() OptionValue[StatusPosition]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[StatusPosition]"}],"doc":{"summary":"StatusPosition returns materialized \"status-position\" as [OptionValue] with value type OptionValue[StatusPosition] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"top\", \"bottom\"); set it with [Session.SetStatusPosition] or [GlobalSessionScope.SetStatusPosition]."},"source":{"file":"tmux/option_generated.go","line":2270,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusPosition","product":"core","slug":"tmux-sessionoptionvalues-statusposition"},{"id":"tmux.SessionOptionValues.StatusRight","name":"StatusRight","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusRight() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"StatusRight returns materialized \"status-right\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetStatusRight] or [GlobalSessionScope.SetStatusRight]."},"source":{"file":"tmux/option_generated.go","line":2274,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusRight","product":"core","slug":"tmux-sessionoptionvalues-statusright"},{"id":"tmux.SessionOptionValues.StatusRightLength","name":"StatusRightLength","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusRightLength() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"StatusRightLength returns materialized \"status-right-length\" as [OptionValue] with value type OptionValue[int64] from session option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Session.SetStatusRightLength] or [GlobalSessionScope.SetStatusRightLength]."},"source":{"file":"tmux/option_generated.go","line":2278,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusRightLength","product":"core","slug":"tmux-sessionoptionvalues-statusrightlength"},{"id":"tmux.SessionOptionValues.StatusRightStyle","name":"StatusRightStyle","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusRightStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"StatusRightStyle returns materialized \"status-right-style\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetStatusRightStyle] or [GlobalSessionScope.SetStatusRightStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2283,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusRightStyle","product":"core","slug":"tmux-sessionoptionvalues-statusrightstyle"},{"id":"tmux.SessionOptionValues.StatusStyle","name":"StatusStyle","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) StatusStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"StatusStyle returns materialized \"status-style\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetStatusStyle] or [GlobalSessionScope.SetStatusStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2288,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.StatusStyle","product":"core","slug":"tmux-sessionoptionvalues-statusstyle"},{"id":"tmux.SessionOptionValues.UpdateEnvironment","name":"UpdateEnvironment","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) UpdateEnvironment() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"UpdateEnvironment returns materialized \"update-environment\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetUpdateEnvironment] or [GlobalSessionScope.SetUpdateEnvironment]. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":2293,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.UpdateEnvironment","product":"core","slug":"tmux-sessionoptionvalues-updateenvironment"},{"id":"tmux.SessionOptionValues.VisualActivity","name":"VisualActivity","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) VisualActivity() OptionValue[VisualActivity]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[VisualActivity]"}],"doc":{"summary":"VisualActivity returns materialized \"visual-activity\" as [OptionValue] with value type OptionValue[VisualActivity] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"on\", \"both\"); set it with [Session.SetVisualActivity] or [GlobalSessionScope.SetVisualActivity]."},"source":{"file":"tmux/option_generated.go","line":2299,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.VisualActivity","product":"core","slug":"tmux-sessionoptionvalues-visualactivity"},{"id":"tmux.SessionOptionValues.VisualBell","name":"VisualBell","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) VisualBell() OptionValue[VisualBell]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[VisualBell]"}],"doc":{"summary":"VisualBell returns materialized \"visual-bell\" as [OptionValue] with value type OptionValue[VisualBell] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"on\", \"both\"); set it with [Session.SetVisualBell] or [GlobalSessionScope.SetVisualBell]."},"source":{"file":"tmux/option_generated.go","line":2303,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.VisualBell","product":"core","slug":"tmux-sessionoptionvalues-visualbell"},{"id":"tmux.SessionOptionValues.VisualSilence","name":"VisualSilence","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) VisualSilence() OptionValue[VisualSilence]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[VisualSilence]"}],"doc":{"summary":"VisualSilence returns materialized \"visual-silence\" as [OptionValue] with value type OptionValue[VisualSilence] from session option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"on\", \"both\"); set it with [Session.SetVisualSilence] or [GlobalSessionScope.SetVisualSilence]."},"source":{"file":"tmux/option_generated.go","line":2307,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.VisualSilence","product":"core","slug":"tmux-sessionoptionvalues-visualsilence"},{"id":"tmux.SessionOptionValues.WordSeparators","name":"WordSeparators","kind":"method","modifiers":[],"parent":"tmux.SessionOptionValues","signatures":[{"raw":"func (v SessionOptionValues) WordSeparators() OptionValue[string]","params":[],"receiver":{"name":"v","type":"SessionOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WordSeparators returns materialized \"word-separators\" as [OptionValue] with value type OptionValue[string] from session option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Session.SetWordSeparators] or [GlobalSessionScope.SetWordSeparators]."},"source":{"file":"tmux/option_generated.go","line":2311,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionOptionValues.WordSeparators","product":"core","slug":"tmux-sessionoptionvalues-wordseparators"},{"id":"tmux.WindowOptionValues","name":"WindowOptionValues","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WindowOptionValues is an immutable materialized view of known window option values; its zero value is empty and it does not refresh. Obtain it with [Window.Options] or [GlobalWindowScope.Options]. [OptionValue.Get] reports presence and [OptionValue.Origin] reports inheritance. Use [Window.RawOption] or [GlobalWindowScope.RawOption] for caller-named or undecoded values."},"source":{"file":"tmux/option_generated.go","line":2433,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues","product":"core","slug":"tmux-windowoptionvalues"},{"id":"tmux.WindowOptionValues.AggressiveResize","name":"AggressiveResize","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) AggressiveResize() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"AggressiveResize returns materialized \"aggressive-resize\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Window.SetAggressiveResize] or [GlobalWindowScope.SetAggressiveResize]."},"source":{"file":"tmux/option_generated.go","line":2512,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.AggressiveResize","product":"core","slug":"tmux-windowoptionvalues-aggressiveresize"},{"id":"tmux.WindowOptionValues.AllowPassthrough","name":"AllowPassthrough","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) AllowPassthrough() OptionValue[AllowPassthrough]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[AllowPassthrough]"}],"doc":{"summary":"AllowPassthrough returns materialized \"allow-passthrough\" as [OptionValue] with value type OptionValue[AllowPassthrough] from window option values; it does not query tmux. Available as FLAG since tmux 3.3; CHOICE since tmux 3.4 (choices: \"off\", \"on\", \"all\"); set it with [Window.SetAllowPassthrough] or [GlobalWindowScope.SetAllowPassthrough]."},"source":{"file":"tmux/option_generated.go","line":2516,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.AllowPassthrough","product":"core","slug":"tmux-windowoptionvalues-allowpassthrough"},{"id":"tmux.WindowOptionValues.AllowRename","name":"AllowRename","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) AllowRename() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"AllowRename returns materialized \"allow-rename\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Window.SetAllowRename] or [GlobalWindowScope.SetAllowRename]."},"source":{"file":"tmux/option_generated.go","line":2522,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.AllowRename","product":"core","slug":"tmux-windowoptionvalues-allowrename"},{"id":"tmux.WindowOptionValues.AllowSetTitle","name":"AllowSetTitle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) AllowSetTitle() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"AllowSetTitle returns materialized \"allow-set-title\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.5; set it with [Window.SetAllowSetTitle] or [GlobalWindowScope.SetAllowSetTitle]."},"source":{"file":"tmux/option_generated.go","line":2526,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.AllowSetTitle","product":"core","slug":"tmux-windowoptionvalues-allowsettitle"},{"id":"tmux.WindowOptionValues.AlternateScreen","name":"AlternateScreen","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) AlternateScreen() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"AlternateScreen returns materialized \"alternate-screen\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Window.SetAlternateScreen] or [GlobalWindowScope.SetAlternateScreen]."},"source":{"file":"tmux/option_generated.go","line":2530,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.AlternateScreen","product":"core","slug":"tmux-windowoptionvalues-alternatescreen"},{"id":"tmux.WindowOptionValues.AutomaticRename","name":"AutomaticRename","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) AutomaticRename() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"AutomaticRename returns materialized \"automatic-rename\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Window.SetAutomaticRename] or [GlobalWindowScope.SetAutomaticRename]."},"source":{"file":"tmux/option_generated.go","line":2534,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.AutomaticRename","product":"core","slug":"tmux-windowoptionvalues-automaticrename"},{"id":"tmux.WindowOptionValues.AutomaticRenameFormat","name":"AutomaticRenameFormat","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) AutomaticRenameFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"AutomaticRenameFormat returns materialized \"automatic-rename-format\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetAutomaticRenameFormat] or [GlobalWindowScope.SetAutomaticRenameFormat]."},"source":{"file":"tmux/option_generated.go","line":2538,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.AutomaticRenameFormat","product":"core","slug":"tmux-windowoptionvalues-automaticrenameformat"},{"id":"tmux.WindowOptionValues.ClockModeColour","name":"ClockModeColour","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) ClockModeColour() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"ClockModeColour returns materialized \"clock-mode-colour\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as COLOUR since tmux 3.2a; set it with [Window.SetClockModeColour] or [GlobalWindowScope.SetClockModeColour]."},"source":{"file":"tmux/option_generated.go","line":2544,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.ClockModeColour","product":"core","slug":"tmux-windowoptionvalues-clockmodecolour"},{"id":"tmux.WindowOptionValues.ClockModeStyle","name":"ClockModeStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) ClockModeStyle() OptionValue[ClockModeStyle]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[ClockModeStyle]"}],"doc":{"summary":"ClockModeStyle returns materialized \"clock-mode-style\" as [OptionValue] with value type OptionValue[ClockModeStyle] from window option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"12\", \"24\"); CHOICE since tmux 3.6 (choices: \"12\", \"24\", \"12-with-seconds\", \"24-with-seconds\"); set it with [Window.SetClockModeStyle] or [GlobalWindowScope.SetClockModeStyle]."},"source":{"file":"tmux/option_generated.go","line":2548,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.ClockModeStyle","product":"core","slug":"tmux-windowoptionvalues-clockmodestyle"},{"id":"tmux.WindowOptionValues.CopyModeCurrentLineNumberStyle","name":"CopyModeCurrentLineNumberStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CopyModeCurrentLineNumberStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyModeCurrentLineNumberStyle returns materialized \"copy-mode-current-line-number-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Window.SetCopyModeCurrentLineNumberStyle] or [GlobalWindowScope.SetCopyModeCurrentLineNumberStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2553,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CopyModeCurrentLineNumberStyle","product":"core","slug":"tmux-windowoptionvalues-copymodecurrentlinenumberstyle"},{"id":"tmux.WindowOptionValues.CopyModeCurrentMatchStyle","name":"CopyModeCurrentMatchStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CopyModeCurrentMatchStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyModeCurrentMatchStyle returns materialized \"copy-mode-current-match-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetCopyModeCurrentMatchStyle] or [GlobalWindowScope.SetCopyModeCurrentMatchStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2560,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CopyModeCurrentMatchStyle","product":"core","slug":"tmux-windowoptionvalues-copymodecurrentmatchstyle"},{"id":"tmux.WindowOptionValues.CopyModeLineNumberStyle","name":"CopyModeLineNumberStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CopyModeLineNumberStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyModeLineNumberStyle returns materialized \"copy-mode-line-number-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Window.SetCopyModeLineNumberStyle] or [GlobalWindowScope.SetCopyModeLineNumberStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2567,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CopyModeLineNumberStyle","product":"core","slug":"tmux-windowoptionvalues-copymodelinenumberstyle"},{"id":"tmux.WindowOptionValues.CopyModeLineNumbers","name":"CopyModeLineNumbers","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CopyModeLineNumbers() OptionValue[CopyModeLineNumbers]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[CopyModeLineNumbers]"}],"doc":{"summary":"CopyModeLineNumbers returns materialized \"copy-mode-line-numbers\" as [OptionValue] with value type OptionValue[CopyModeLineNumbers] from window option values; it does not query tmux. Available as CHOICE since tmux 3.7 (choices: \"off\", \"default\", \"absolute\", \"relative\", \"hybrid\"); set it with [Window.SetCopyModeLineNumbers] or [GlobalWindowScope.SetCopyModeLineNumbers]."},"source":{"file":"tmux/option_generated.go","line":2573,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CopyModeLineNumbers","product":"core","slug":"tmux-windowoptionvalues-copymodelinenumbers"},{"id":"tmux.WindowOptionValues.CopyModeMarkStyle","name":"CopyModeMarkStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CopyModeMarkStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyModeMarkStyle returns materialized \"copy-mode-mark-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetCopyModeMarkStyle] or [GlobalWindowScope.SetCopyModeMarkStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2580,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CopyModeMarkStyle","product":"core","slug":"tmux-windowoptionvalues-copymodemarkstyle"},{"id":"tmux.WindowOptionValues.CopyModeMatchStyle","name":"CopyModeMatchStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CopyModeMatchStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyModeMatchStyle returns materialized \"copy-mode-match-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetCopyModeMatchStyle] or [GlobalWindowScope.SetCopyModeMatchStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2585,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CopyModeMatchStyle","product":"core","slug":"tmux-windowoptionvalues-copymodematchstyle"},{"id":"tmux.WindowOptionValues.CopyModePositionFormat","name":"CopyModePositionFormat","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CopyModePositionFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyModePositionFormat returns materialized \"copy-mode-position-format\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Window.SetCopyModePositionFormat] or [GlobalWindowScope.SetCopyModePositionFormat]."},"source":{"file":"tmux/option_generated.go","line":2589,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CopyModePositionFormat","product":"core","slug":"tmux-windowoptionvalues-copymodepositionformat"},{"id":"tmux.WindowOptionValues.CopyModePositionStyle","name":"CopyModePositionStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CopyModePositionStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyModePositionStyle returns materialized \"copy-mode-position-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Window.SetCopyModePositionStyle] or [GlobalWindowScope.SetCopyModePositionStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2596,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CopyModePositionStyle","product":"core","slug":"tmux-windowoptionvalues-copymodepositionstyle"},{"id":"tmux.WindowOptionValues.CopyModeSelectionStyle","name":"CopyModeSelectionStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CopyModeSelectionStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyModeSelectionStyle returns materialized \"copy-mode-selection-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Window.SetCopyModeSelectionStyle] or [GlobalWindowScope.SetCopyModeSelectionStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2603,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CopyModeSelectionStyle","product":"core","slug":"tmux-windowoptionvalues-copymodeselectionstyle"},{"id":"tmux.WindowOptionValues.CursorColour","name":"CursorColour","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CursorColour() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CursorColour returns materialized \"cursor-colour\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as COLOUR since tmux 3.3; set it with [Window.SetCursorColour] or [GlobalWindowScope.SetCursorColour]."},"source":{"file":"tmux/option_generated.go","line":2609,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CursorColour","product":"core","slug":"tmux-windowoptionvalues-cursorcolour"},{"id":"tmux.WindowOptionValues.CursorStyle","name":"CursorStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) CursorStyle() OptionValue[CursorStyle]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[CursorStyle]"}],"doc":{"summary":"CursorStyle returns materialized \"cursor-style\" as [OptionValue] with value type OptionValue[CursorStyle] from window option values; it does not query tmux. Available as CHOICE since tmux 3.3 (choices: \"default\", \"blinking-block\", \"block\", \"blinking-underline\", \"underline\", \"blinking-bar\", \"bar\"); set it with [Window.SetCursorStyle] or [GlobalWindowScope.SetCursorStyle]."},"source":{"file":"tmux/option_generated.go","line":2613,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.CursorStyle","product":"core","slug":"tmux-windowoptionvalues-cursorstyle"},{"id":"tmux.WindowOptionValues.FillCharacter","name":"FillCharacter","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) FillCharacter() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"FillCharacter returns materialized \"fill-character\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.3; set it with [Window.SetFillCharacter] or [GlobalWindowScope.SetFillCharacter]."},"source":{"file":"tmux/option_generated.go","line":2617,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.FillCharacter","product":"core","slug":"tmux-windowoptionvalues-fillcharacter"},{"id":"tmux.WindowOptionValues.MainPaneHeight","name":"MainPaneHeight","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) MainPaneHeight() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"MainPaneHeight returns materialized \"main-pane-height\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetMainPaneHeight] or [GlobalWindowScope.SetMainPaneHeight]."},"source":{"file":"tmux/option_generated.go","line":2621,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.MainPaneHeight","product":"core","slug":"tmux-windowoptionvalues-mainpaneheight"},{"id":"tmux.WindowOptionValues.MainPaneWidth","name":"MainPaneWidth","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) MainPaneWidth() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"MainPaneWidth returns materialized \"main-pane-width\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetMainPaneWidth] or [GlobalWindowScope.SetMainPaneWidth]."},"source":{"file":"tmux/option_generated.go","line":2625,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.MainPaneWidth","product":"core","slug":"tmux-windowoptionvalues-mainpanewidth"},{"id":"tmux.WindowOptionValues.MenuBorderLines","name":"MenuBorderLines","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) MenuBorderLines() OptionValue[MenuBorderLines]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[MenuBorderLines]"}],"doc":{"summary":"MenuBorderLines returns materialized \"menu-border-lines\" as [OptionValue] with value type OptionValue[MenuBorderLines] from window option values; it does not query tmux. Available as CHOICE since tmux 3.4 (choices: \"single\", \"double\", \"heavy\", \"simple\", \"rounded\", \"padded\", \"none\"); set it with [Window.SetMenuBorderLines] or [GlobalWindowScope.SetMenuBorderLines]."},"source":{"file":"tmux/option_generated.go","line":2629,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.MenuBorderLines","product":"core","slug":"tmux-windowoptionvalues-menuborderlines"},{"id":"tmux.WindowOptionValues.MenuBorderStyle","name":"MenuBorderStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) MenuBorderStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"MenuBorderStyle returns materialized \"menu-border-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.4; set it with [Window.SetMenuBorderStyle] or [GlobalWindowScope.SetMenuBorderStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2634,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.MenuBorderStyle","product":"core","slug":"tmux-windowoptionvalues-menuborderstyle"},{"id":"tmux.WindowOptionValues.MenuSelectedStyle","name":"MenuSelectedStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) MenuSelectedStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"MenuSelectedStyle returns materialized \"menu-selected-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.4; set it with [Window.SetMenuSelectedStyle] or [GlobalWindowScope.SetMenuSelectedStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2639,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.MenuSelectedStyle","product":"core","slug":"tmux-windowoptionvalues-menuselectedstyle"},{"id":"tmux.WindowOptionValues.MenuStyle","name":"MenuStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) MenuStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"MenuStyle returns materialized \"menu-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.4; set it with [Window.SetMenuStyle] or [GlobalWindowScope.SetMenuStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2644,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.MenuStyle","product":"core","slug":"tmux-windowoptionvalues-menustyle"},{"id":"tmux.WindowOptionValues.ModeKeys","name":"ModeKeys","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) ModeKeys() OptionValue[ModeKeys]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[ModeKeys]"}],"doc":{"summary":"ModeKeys returns materialized \"mode-keys\" as [OptionValue] with value type OptionValue[ModeKeys] from window option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"emacs\", \"vi\"); set it with [Window.SetModeKeys] or [GlobalWindowScope.SetModeKeys]."},"source":{"file":"tmux/option_generated.go","line":2648,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.ModeKeys","product":"core","slug":"tmux-windowoptionvalues-modekeys"},{"id":"tmux.WindowOptionValues.ModeStyle","name":"ModeStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) ModeStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"ModeStyle returns materialized \"mode-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetModeStyle] or [GlobalWindowScope.SetModeStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2653,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.ModeStyle","product":"core","slug":"tmux-windowoptionvalues-modestyle"},{"id":"tmux.WindowOptionValues.MonitorActivity","name":"MonitorActivity","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) MonitorActivity() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"MonitorActivity returns materialized \"monitor-activity\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Window.SetMonitorActivity] or [GlobalWindowScope.SetMonitorActivity]."},"source":{"file":"tmux/option_generated.go","line":2657,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.MonitorActivity","product":"core","slug":"tmux-windowoptionvalues-monitoractivity"},{"id":"tmux.WindowOptionValues.MonitorBell","name":"MonitorBell","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) MonitorBell() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"MonitorBell returns materialized \"monitor-bell\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Window.SetMonitorBell] or [GlobalWindowScope.SetMonitorBell]."},"source":{"file":"tmux/option_generated.go","line":2661,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.MonitorBell","product":"core","slug":"tmux-windowoptionvalues-monitorbell"},{"id":"tmux.WindowOptionValues.MonitorSilence","name":"MonitorSilence","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) MonitorSilence() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"MonitorSilence returns materialized \"monitor-silence\" as [OptionValue] with value type OptionValue[int64] from window option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Window.SetMonitorSilence] or [GlobalWindowScope.SetMonitorSilence]."},"source":{"file":"tmux/option_generated.go","line":2665,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.MonitorSilence","product":"core","slug":"tmux-windowoptionvalues-monitorsilence"},{"id":"tmux.WindowOptionValues.OtherPaneHeight","name":"OtherPaneHeight","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) OtherPaneHeight() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"OtherPaneHeight returns materialized \"other-pane-height\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetOtherPaneHeight] or [GlobalWindowScope.SetOtherPaneHeight]."},"source":{"file":"tmux/option_generated.go","line":2669,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.OtherPaneHeight","product":"core","slug":"tmux-windowoptionvalues-otherpaneheight"},{"id":"tmux.WindowOptionValues.OtherPaneWidth","name":"OtherPaneWidth","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) OtherPaneWidth() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"OtherPaneWidth returns materialized \"other-pane-width\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetOtherPaneWidth] or [GlobalWindowScope.SetOtherPaneWidth]."},"source":{"file":"tmux/option_generated.go","line":2673,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.OtherPaneWidth","product":"core","slug":"tmux-windowoptionvalues-otherpanewidth"},{"id":"tmux.WindowOptionValues.PaneActiveBorderStyle","name":"PaneActiveBorderStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneActiveBorderStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneActiveBorderStyle returns materialized \"pane-active-border-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; STRING since tmux 3.7; set it with [Window.SetPaneActiveBorderStyle] or [GlobalWindowScope.SetPaneActiveBorderStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2678,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneActiveBorderStyle","product":"core","slug":"tmux-windowoptionvalues-paneactiveborderstyle"},{"id":"tmux.WindowOptionValues.PaneBaseIndex","name":"PaneBaseIndex","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneBaseIndex() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"PaneBaseIndex returns materialized \"pane-base-index\" as [OptionValue] with value type OptionValue[int64] from window option values; it does not query tmux. Available as NUMBER since tmux 3.2a; set it with [Window.SetPaneBaseIndex] or [GlobalWindowScope.SetPaneBaseIndex]."},"source":{"file":"tmux/option_generated.go","line":2684,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneBaseIndex","product":"core","slug":"tmux-windowoptionvalues-panebaseindex"},{"id":"tmux.WindowOptionValues.PaneBorderFormat","name":"PaneBorderFormat","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneBorderFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneBorderFormat returns materialized \"pane-border-format\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; STRING since tmux 3.3; set it with [Window.SetPaneBorderFormat] or [GlobalWindowScope.SetPaneBorderFormat]."},"source":{"file":"tmux/option_generated.go","line":2688,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneBorderFormat","product":"core","slug":"tmux-windowoptionvalues-paneborderformat"},{"id":"tmux.WindowOptionValues.PaneBorderIndicators","name":"PaneBorderIndicators","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneBorderIndicators() OptionValue[PaneBorderIndicators]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[PaneBorderIndicators]"}],"doc":{"summary":"PaneBorderIndicators returns materialized \"pane-border-indicators\" as [OptionValue] with value type OptionValue[PaneBorderIndicators] from window option values; it does not query tmux. Available as CHOICE since tmux 3.3 (choices: \"off\", \"colour\", \"arrows\", \"both\"); set it with [Window.SetPaneBorderIndicators] or [GlobalWindowScope.SetPaneBorderIndicators]."},"source":{"file":"tmux/option_generated.go","line":2692,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneBorderIndicators","product":"core","slug":"tmux-windowoptionvalues-paneborderindicators"},{"id":"tmux.WindowOptionValues.PaneBorderLines","name":"PaneBorderLines","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneBorderLines() OptionValue[PaneBorderLines]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[PaneBorderLines]"}],"doc":{"summary":"PaneBorderLines returns materialized \"pane-border-lines\" as [OptionValue] with value type OptionValue[PaneBorderLines] from window option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"single\", \"double\", \"heavy\", \"simple\", \"number\"); CHOICE since tmux 3.6 (choices: \"single\", \"double\", \"heavy\", \"simple\", \"number\", \"spaces\"); set it with [Window.SetPaneBorderLines] or [GlobalWindowScope.SetPaneBorderLines]."},"source":{"file":"tmux/option_generated.go","line":2698,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneBorderLines","product":"core","slug":"tmux-windowoptionvalues-paneborderlines"},{"id":"tmux.WindowOptionValues.PaneBorderStatus","name":"PaneBorderStatus","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneBorderStatus() OptionValue[PaneBorderStatus]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[PaneBorderStatus]"}],"doc":{"summary":"PaneBorderStatus returns materialized \"pane-border-status\" as [OptionValue] with value type OptionValue[PaneBorderStatus] from window option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"top\", \"bottom\"); set it with [Window.SetPaneBorderStatus] or [GlobalWindowScope.SetPaneBorderStatus]."},"source":{"file":"tmux/option_generated.go","line":2702,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneBorderStatus","product":"core","slug":"tmux-windowoptionvalues-paneborderstatus"},{"id":"tmux.WindowOptionValues.PaneBorderStyle","name":"PaneBorderStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneBorderStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneBorderStyle returns materialized \"pane-border-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; STRING since tmux 3.7; set it with [Window.SetPaneBorderStyle] or [GlobalWindowScope.SetPaneBorderStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2709,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneBorderStyle","product":"core","slug":"tmux-windowoptionvalues-paneborderstyle"},{"id":"tmux.WindowOptionValues.PaneColours","name":"PaneColours","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneColours() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneColours returns materialized \"pane-colours\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window option values; it does not query tmux. Available as COLOUR since tmux 3.3; set it with [Window.SetPaneColours] or [GlobalWindowScope.SetPaneColours]. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":2714,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneColours","product":"core","slug":"tmux-windowoptionvalues-panecolours"},{"id":"tmux.WindowOptionValues.PaneScrollbars","name":"PaneScrollbars","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneScrollbars() OptionValue[PaneScrollbars]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[PaneScrollbars]"}],"doc":{"summary":"PaneScrollbars returns materialized \"pane-scrollbars\" as [OptionValue] with value type OptionValue[PaneScrollbars] from window option values; it does not query tmux. Available as CHOICE since tmux 3.6 (choices: \"off\", \"modal\", \"on\"); set it with [Window.SetPaneScrollbars] or [GlobalWindowScope.SetPaneScrollbars]."},"source":{"file":"tmux/option_generated.go","line":2718,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneScrollbars","product":"core","slug":"tmux-windowoptionvalues-panescrollbars"},{"id":"tmux.WindowOptionValues.PaneScrollbarsPosition","name":"PaneScrollbarsPosition","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneScrollbarsPosition() OptionValue[PaneScrollbarsPosition]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[PaneScrollbarsPosition]"}],"doc":{"summary":"PaneScrollbarsPosition returns materialized \"pane-scrollbars-position\" as [OptionValue] with value type OptionValue[PaneScrollbarsPosition] from window option values; it does not query tmux. Available as CHOICE since tmux 3.6 (choices: \"right\", \"left\"); set it with [Window.SetPaneScrollbarsPosition] or [GlobalWindowScope.SetPaneScrollbarsPosition]."},"source":{"file":"tmux/option_generated.go","line":2722,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneScrollbarsPosition","product":"core","slug":"tmux-windowoptionvalues-panescrollbarsposition"},{"id":"tmux.WindowOptionValues.PaneScrollbarsStyle","name":"PaneScrollbarsStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneScrollbarsStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneScrollbarsStyle returns materialized \"pane-scrollbars-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Window.SetPaneScrollbarsStyle] or [GlobalWindowScope.SetPaneScrollbarsStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2729,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneScrollbarsStyle","product":"core","slug":"tmux-windowoptionvalues-panescrollbarsstyle"},{"id":"tmux.WindowOptionValues.PaneStatusCurrentStyle","name":"PaneStatusCurrentStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneStatusCurrentStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneStatusCurrentStyle returns materialized \"pane-status-current-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Window.SetPaneStatusCurrentStyle] or [GlobalWindowScope.SetPaneStatusCurrentStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2734,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneStatusCurrentStyle","product":"core","slug":"tmux-windowoptionvalues-panestatuscurrentstyle"},{"id":"tmux.WindowOptionValues.PaneStatusStyle","name":"PaneStatusStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PaneStatusStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneStatusStyle returns materialized \"pane-status-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Window.SetPaneStatusStyle] or [GlobalWindowScope.SetPaneStatusStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2741,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PaneStatusStyle","product":"core","slug":"tmux-windowoptionvalues-panestatusstyle"},{"id":"tmux.WindowOptionValues.PopupBorderLines","name":"PopupBorderLines","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PopupBorderLines() OptionValue[PopupBorderLines]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[PopupBorderLines]"}],"doc":{"summary":"PopupBorderLines returns materialized \"popup-border-lines\" as [OptionValue] with value type OptionValue[PopupBorderLines] from window option values; it does not query tmux. Available as CHOICE since tmux 3.3 (choices: \"single\", \"double\", \"heavy\", \"simple\", \"rounded\", \"padded\", \"none\"); set it with [Window.SetPopupBorderLines] or [GlobalWindowScope.SetPopupBorderLines]."},"source":{"file":"tmux/option_generated.go","line":2745,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PopupBorderLines","product":"core","slug":"tmux-windowoptionvalues-popupborderlines"},{"id":"tmux.WindowOptionValues.PopupBorderStyle","name":"PopupBorderStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PopupBorderStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PopupBorderStyle returns materialized \"popup-border-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.3; set it with [Window.SetPopupBorderStyle] or [GlobalWindowScope.SetPopupBorderStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2752,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PopupBorderStyle","product":"core","slug":"tmux-windowoptionvalues-popupborderstyle"},{"id":"tmux.WindowOptionValues.PopupStyle","name":"PopupStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) PopupStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PopupStyle returns materialized \"popup-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.3; set it with [Window.SetPopupStyle] or [GlobalWindowScope.SetPopupStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2757,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.PopupStyle","product":"core","slug":"tmux-windowoptionvalues-popupstyle"},{"id":"tmux.WindowOptionValues.RemainOnExit","name":"RemainOnExit","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) RemainOnExit() OptionValue[RemainOnExit]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[RemainOnExit]"}],"doc":{"summary":"RemainOnExit returns materialized \"remain-on-exit\" as [OptionValue] with value type OptionValue[RemainOnExit] from window option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"on\", \"failed\"); CHOICE since tmux 3.7 (choices: \"off\", \"on\", \"failed\", \"key\"); set it with [Window.SetRemainOnExit] or [GlobalWindowScope.SetRemainOnExit]."},"source":{"file":"tmux/option_generated.go","line":2761,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.RemainOnExit","product":"core","slug":"tmux-windowoptionvalues-remainonexit"},{"id":"tmux.WindowOptionValues.RemainOnExitFormat","name":"RemainOnExitFormat","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) RemainOnExitFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"RemainOnExitFormat returns materialized \"remain-on-exit-format\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.3; set it with [Window.SetRemainOnExitFormat] or [GlobalWindowScope.SetRemainOnExitFormat]."},"source":{"file":"tmux/option_generated.go","line":2765,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.RemainOnExitFormat","product":"core","slug":"tmux-windowoptionvalues-remainonexitformat"},{"id":"tmux.WindowOptionValues.ScrollOnClear","name":"ScrollOnClear","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) ScrollOnClear() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"ScrollOnClear returns materialized \"scroll-on-clear\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.3; set it with [Window.SetScrollOnClear] or [GlobalWindowScope.SetScrollOnClear]."},"source":{"file":"tmux/option_generated.go","line":2769,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.ScrollOnClear","product":"core","slug":"tmux-windowoptionvalues-scrollonclear"},{"id":"tmux.WindowOptionValues.SessionStatusCurrentStyle","name":"SessionStatusCurrentStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) SessionStatusCurrentStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"SessionStatusCurrentStyle returns materialized \"session-status-current-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Window.SetSessionStatusCurrentStyle] or [GlobalWindowScope.SetSessionStatusCurrentStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2774,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.SessionStatusCurrentStyle","product":"core","slug":"tmux-windowoptionvalues-sessionstatuscurrentstyle"},{"id":"tmux.WindowOptionValues.SessionStatusStyle","name":"SessionStatusStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) SessionStatusStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"SessionStatusStyle returns materialized \"session-status-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Window.SetSessionStatusStyle] or [GlobalWindowScope.SetSessionStatusStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2781,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.SessionStatusStyle","product":"core","slug":"tmux-windowoptionvalues-sessionstatusstyle"},{"id":"tmux.WindowOptionValues.SynchronizePanes","name":"SynchronizePanes","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) SynchronizePanes() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"SynchronizePanes returns materialized \"synchronize-panes\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Window.SetSynchronizePanes] or [GlobalWindowScope.SetSynchronizePanes]."},"source":{"file":"tmux/option_generated.go","line":2785,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.SynchronizePanes","product":"core","slug":"tmux-windowoptionvalues-synchronizepanes"},{"id":"tmux.WindowOptionValues.TiledLayoutMaxColumns","name":"TiledLayoutMaxColumns","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) TiledLayoutMaxColumns() OptionValue[int64]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[int64]"}],"doc":{"summary":"TiledLayoutMaxColumns returns materialized \"tiled-layout-max-columns\" as [OptionValue] with value type OptionValue[int64] from window option values; it does not query tmux. Available as NUMBER since tmux 3.6; set it with [Window.SetTiledLayoutMaxColumns] or [GlobalWindowScope.SetTiledLayoutMaxColumns]."},"source":{"file":"tmux/option_generated.go","line":2789,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.TiledLayoutMaxColumns","product":"core","slug":"tmux-windowoptionvalues-tiledlayoutmaxcolumns"},{"id":"tmux.WindowOptionValues.TreeModePreviewFormat","name":"TreeModePreviewFormat","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) TreeModePreviewFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"TreeModePreviewFormat returns materialized \"tree-mode-preview-format\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Window.SetTreeModePreviewFormat] or [GlobalWindowScope.SetTreeModePreviewFormat]."},"source":{"file":"tmux/option_generated.go","line":2795,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.TreeModePreviewFormat","product":"core","slug":"tmux-windowoptionvalues-treemodepreviewformat"},{"id":"tmux.WindowOptionValues.TreeModePreviewStyle","name":"TreeModePreviewStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) TreeModePreviewStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"TreeModePreviewStyle returns materialized \"tree-mode-preview-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Window.SetTreeModePreviewStyle] or [GlobalWindowScope.SetTreeModePreviewStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2802,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.TreeModePreviewStyle","product":"core","slug":"tmux-windowoptionvalues-treemodepreviewstyle"},{"id":"tmux.WindowOptionValues.WindowActiveStyle","name":"WindowActiveStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowActiveStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowActiveStyle returns materialized \"window-active-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowActiveStyle] or [GlobalWindowScope.SetWindowActiveStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2807,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowActiveStyle","product":"core","slug":"tmux-windowoptionvalues-windowactivestyle"},{"id":"tmux.WindowOptionValues.WindowPaneCurrentStatusFormat","name":"WindowPaneCurrentStatusFormat","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowPaneCurrentStatusFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowPaneCurrentStatusFormat returns materialized \"window-pane-current-status-format\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Window.SetWindowPaneCurrentStatusFormat] or [GlobalWindowScope.SetWindowPaneCurrentStatusFormat]."},"source":{"file":"tmux/option_generated.go","line":2811,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowPaneCurrentStatusFormat","product":"core","slug":"tmux-windowoptionvalues-windowpanecurrentstatusformat"},{"id":"tmux.WindowOptionValues.WindowPaneStatusFormat","name":"WindowPaneStatusFormat","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowPaneStatusFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowPaneStatusFormat returns materialized \"window-pane-status-format\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Window.SetWindowPaneStatusFormat] or [GlobalWindowScope.SetWindowPaneStatusFormat]."},"source":{"file":"tmux/option_generated.go","line":2817,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowPaneStatusFormat","product":"core","slug":"tmux-windowoptionvalues-windowpanestatusformat"},{"id":"tmux.WindowOptionValues.WindowSize","name":"WindowSize","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowSize() OptionValue[WindowSize]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[WindowSize]"}],"doc":{"summary":"WindowSize returns materialized \"window-size\" as [OptionValue] with value type OptionValue[WindowSize] from window option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"largest\", \"smallest\", \"manual\", \"latest\"); set it with [Window.SetWindowSize] or [GlobalWindowScope.SetWindowSize]."},"source":{"file":"tmux/option_generated.go","line":2823,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowSize","product":"core","slug":"tmux-windowoptionvalues-windowsize"},{"id":"tmux.WindowOptionValues.WindowStatusActivityStyle","name":"WindowStatusActivityStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowStatusActivityStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStatusActivityStyle returns materialized \"window-status-activity-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowStatusActivityStyle] or [GlobalWindowScope.SetWindowStatusActivityStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2828,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowStatusActivityStyle","product":"core","slug":"tmux-windowoptionvalues-windowstatusactivitystyle"},{"id":"tmux.WindowOptionValues.WindowStatusBellStyle","name":"WindowStatusBellStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowStatusBellStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStatusBellStyle returns materialized \"window-status-bell-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowStatusBellStyle] or [GlobalWindowScope.SetWindowStatusBellStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2835,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowStatusBellStyle","product":"core","slug":"tmux-windowoptionvalues-windowstatusbellstyle"},{"id":"tmux.WindowOptionValues.WindowStatusCurrentFormat","name":"WindowStatusCurrentFormat","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowStatusCurrentFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStatusCurrentFormat returns materialized \"window-status-current-format\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowStatusCurrentFormat] or [GlobalWindowScope.SetWindowStatusCurrentFormat]."},"source":{"file":"tmux/option_generated.go","line":2841,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowStatusCurrentFormat","product":"core","slug":"tmux-windowoptionvalues-windowstatuscurrentformat"},{"id":"tmux.WindowOptionValues.WindowStatusCurrentStyle","name":"WindowStatusCurrentStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowStatusCurrentStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStatusCurrentStyle returns materialized \"window-status-current-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowStatusCurrentStyle] or [GlobalWindowScope.SetWindowStatusCurrentStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2848,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowStatusCurrentStyle","product":"core","slug":"tmux-windowoptionvalues-windowstatuscurrentstyle"},{"id":"tmux.WindowOptionValues.WindowStatusFormat","name":"WindowStatusFormat","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowStatusFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStatusFormat returns materialized \"window-status-format\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowStatusFormat] or [GlobalWindowScope.SetWindowStatusFormat]."},"source":{"file":"tmux/option_generated.go","line":2854,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowStatusFormat","product":"core","slug":"tmux-windowoptionvalues-windowstatusformat"},{"id":"tmux.WindowOptionValues.WindowStatusLastStyle","name":"WindowStatusLastStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowStatusLastStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStatusLastStyle returns materialized \"window-status-last-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowStatusLastStyle] or [GlobalWindowScope.SetWindowStatusLastStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2859,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowStatusLastStyle","product":"core","slug":"tmux-windowoptionvalues-windowstatuslaststyle"},{"id":"tmux.WindowOptionValues.WindowStatusSeparator","name":"WindowStatusSeparator","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowStatusSeparator() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStatusSeparator returns materialized \"window-status-separator\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowStatusSeparator] or [GlobalWindowScope.SetWindowStatusSeparator]."},"source":{"file":"tmux/option_generated.go","line":2865,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowStatusSeparator","product":"core","slug":"tmux-windowoptionvalues-windowstatusseparator"},{"id":"tmux.WindowOptionValues.WindowStatusStyle","name":"WindowStatusStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowStatusStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStatusStyle returns materialized \"window-status-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowStatusStyle] or [GlobalWindowScope.SetWindowStatusStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2872,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowStatusStyle","product":"core","slug":"tmux-windowoptionvalues-windowstatusstyle"},{"id":"tmux.WindowOptionValues.WindowStyle","name":"WindowStyle","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WindowStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStyle returns materialized \"window-style\" as [OptionValue] with value type OptionValue[string] from window option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Window.SetWindowStyle] or [GlobalWindowScope.SetWindowStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":2877,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WindowStyle","product":"core","slug":"tmux-windowoptionvalues-windowstyle"},{"id":"tmux.WindowOptionValues.WrapSearch","name":"WrapSearch","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) WrapSearch() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"WrapSearch returns materialized \"wrap-search\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Window.SetWrapSearch] or [GlobalWindowScope.SetWrapSearch]."},"source":{"file":"tmux/option_generated.go","line":2881,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.WrapSearch","product":"core","slug":"tmux-windowoptionvalues-wrapsearch"},{"id":"tmux.WindowOptionValues.XTermKeys","name":"XTermKeys","kind":"method","modifiers":[],"parent":"tmux.WindowOptionValues","signatures":[{"raw":"func (v WindowOptionValues) XTermKeys() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"WindowOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"XTermKeys returns materialized \"xterm-keys\" as [OptionValue] with value type OptionValue[bool] from window option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Window.SetXTermKeys] or [GlobalWindowScope.SetXTermKeys]."},"source":{"file":"tmux/option_generated.go","line":2885,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowOptionValues.XTermKeys","product":"core","slug":"tmux-windowoptionvalues-xtermkeys"},{"id":"tmux.PaneOptionValues","name":"PaneOptionValues","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneOptionValues is an immutable materialized view of known pane option values; its zero value is empty and it does not refresh. Obtain it with [Pane.Options]. [OptionValue.Get] reports presence and [OptionValue.Origin] reports inheritance. Use [Pane.RawOption] for caller-named or undecoded values."},"source":{"file":"tmux/option_generated.go","line":3047,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues","product":"core","slug":"tmux-paneoptionvalues"},{"id":"tmux.PaneOptionValues.AllowPassthrough","name":"AllowPassthrough","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) AllowPassthrough() OptionValue[AllowPassthrough]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[AllowPassthrough]"}],"doc":{"summary":"AllowPassthrough returns materialized \"allow-passthrough\" as [OptionValue] with value type OptionValue[AllowPassthrough] from pane option values; it does not query tmux. Available as FLAG since tmux 3.3; CHOICE since tmux 3.4 (choices: \"off\", \"on\", \"all\"); set it with [Pane.SetAllowPassthrough]."},"source":{"file":"tmux/option_generated.go","line":3071,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.AllowPassthrough","product":"core","slug":"tmux-paneoptionvalues-allowpassthrough"},{"id":"tmux.PaneOptionValues.AllowRename","name":"AllowRename","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) AllowRename() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"AllowRename returns materialized \"allow-rename\" as [OptionValue] with value type OptionValue[bool] from pane option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Pane.SetAllowRename]."},"source":{"file":"tmux/option_generated.go","line":3075,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.AllowRename","product":"core","slug":"tmux-paneoptionvalues-allowrename"},{"id":"tmux.PaneOptionValues.AllowSetTitle","name":"AllowSetTitle","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) AllowSetTitle() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"AllowSetTitle returns materialized \"allow-set-title\" as [OptionValue] with value type OptionValue[bool] from pane option values; it does not query tmux. Available as FLAG since tmux 3.5; set it with [Pane.SetAllowSetTitle]."},"source":{"file":"tmux/option_generated.go","line":3079,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.AllowSetTitle","product":"core","slug":"tmux-paneoptionvalues-allowsettitle"},{"id":"tmux.PaneOptionValues.AlternateScreen","name":"AlternateScreen","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) AlternateScreen() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"AlternateScreen returns materialized \"alternate-screen\" as [OptionValue] with value type OptionValue[bool] from pane option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Pane.SetAlternateScreen]."},"source":{"file":"tmux/option_generated.go","line":3083,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.AlternateScreen","product":"core","slug":"tmux-paneoptionvalues-alternatescreen"},{"id":"tmux.PaneOptionValues.CopyModePositionFormat","name":"CopyModePositionFormat","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) CopyModePositionFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CopyModePositionFormat returns materialized \"copy-mode-position-format\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Pane.SetCopyModePositionFormat]."},"source":{"file":"tmux/option_generated.go","line":3087,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.CopyModePositionFormat","product":"core","slug":"tmux-paneoptionvalues-copymodepositionformat"},{"id":"tmux.PaneOptionValues.CursorColour","name":"CursorColour","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) CursorColour() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"CursorColour returns materialized \"cursor-colour\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as COLOUR since tmux 3.3; set it with [Pane.SetCursorColour]."},"source":{"file":"tmux/option_generated.go","line":3093,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.CursorColour","product":"core","slug":"tmux-paneoptionvalues-cursorcolour"},{"id":"tmux.PaneOptionValues.CursorStyle","name":"CursorStyle","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) CursorStyle() OptionValue[CursorStyle]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[CursorStyle]"}],"doc":{"summary":"CursorStyle returns materialized \"cursor-style\" as [OptionValue] with value type OptionValue[CursorStyle] from pane option values; it does not query tmux. Available as CHOICE since tmux 3.3 (choices: \"default\", \"blinking-block\", \"block\", \"blinking-underline\", \"underline\", \"blinking-bar\", \"bar\"); set it with [Pane.SetCursorStyle]."},"source":{"file":"tmux/option_generated.go","line":3097,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.CursorStyle","product":"core","slug":"tmux-paneoptionvalues-cursorstyle"},{"id":"tmux.PaneOptionValues.PaneActiveBorderStyle","name":"PaneActiveBorderStyle","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) PaneActiveBorderStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneActiveBorderStyle returns materialized \"pane-active-border-style\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Pane.SetPaneActiveBorderStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":3102,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.PaneActiveBorderStyle","product":"core","slug":"tmux-paneoptionvalues-paneactiveborderstyle"},{"id":"tmux.PaneOptionValues.PaneBorderFormat","name":"PaneBorderFormat","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) PaneBorderFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneBorderFormat returns materialized \"pane-border-format\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as STRING since tmux 3.3; set it with [Pane.SetPaneBorderFormat]."},"source":{"file":"tmux/option_generated.go","line":3106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.PaneBorderFormat","product":"core","slug":"tmux-paneoptionvalues-paneborderformat"},{"id":"tmux.PaneOptionValues.PaneBorderStyle","name":"PaneBorderStyle","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) PaneBorderStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneBorderStyle returns materialized \"pane-border-style\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Pane.SetPaneBorderStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":3111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.PaneBorderStyle","product":"core","slug":"tmux-paneoptionvalues-paneborderstyle"},{"id":"tmux.PaneOptionValues.PaneColours","name":"PaneColours","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) PaneColours() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneColours returns materialized \"pane-colours\" as [OptionValue] with value type OptionValue[SparseArray[string]] from pane option values; it does not query tmux. Available as COLOUR since tmux 3.3; set it with [Pane.SetPaneColours]. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3116,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.PaneColours","product":"core","slug":"tmux-paneoptionvalues-panecolours"},{"id":"tmux.PaneOptionValues.PaneScrollbarsStyle","name":"PaneScrollbarsStyle","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) PaneScrollbarsStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"PaneScrollbarsStyle returns materialized \"pane-scrollbars-style\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as STRING since tmux 3.6; set it with [Pane.SetPaneScrollbarsStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":3121,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.PaneScrollbarsStyle","product":"core","slug":"tmux-paneoptionvalues-panescrollbarsstyle"},{"id":"tmux.PaneOptionValues.RemainOnExit","name":"RemainOnExit","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) RemainOnExit() OptionValue[RemainOnExit]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[RemainOnExit]"}],"doc":{"summary":"RemainOnExit returns materialized \"remain-on-exit\" as [OptionValue] with value type OptionValue[RemainOnExit] from pane option values; it does not query tmux. Available as CHOICE since tmux 3.2a (choices: \"off\", \"on\", \"failed\"); CHOICE since tmux 3.7 (choices: \"off\", \"on\", \"failed\", \"key\"); set it with [Pane.SetRemainOnExit]."},"source":{"file":"tmux/option_generated.go","line":3125,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.RemainOnExit","product":"core","slug":"tmux-paneoptionvalues-remainonexit"},{"id":"tmux.PaneOptionValues.RemainOnExitFormat","name":"RemainOnExitFormat","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) RemainOnExitFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"RemainOnExitFormat returns materialized \"remain-on-exit-format\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as STRING since tmux 3.3; set it with [Pane.SetRemainOnExitFormat]."},"source":{"file":"tmux/option_generated.go","line":3129,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.RemainOnExitFormat","product":"core","slug":"tmux-paneoptionvalues-remainonexitformat"},{"id":"tmux.PaneOptionValues.ScrollOnClear","name":"ScrollOnClear","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) ScrollOnClear() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"ScrollOnClear returns materialized \"scroll-on-clear\" as [OptionValue] with value type OptionValue[bool] from pane option values; it does not query tmux. Available as FLAG since tmux 3.3; set it with [Pane.SetScrollOnClear]."},"source":{"file":"tmux/option_generated.go","line":3133,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.ScrollOnClear","product":"core","slug":"tmux-paneoptionvalues-scrollonclear"},{"id":"tmux.PaneOptionValues.SynchronizePanes","name":"SynchronizePanes","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) SynchronizePanes() OptionValue[bool]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[bool]"}],"doc":{"summary":"SynchronizePanes returns materialized \"synchronize-panes\" as [OptionValue] with value type OptionValue[bool] from pane option values; it does not query tmux. Available as FLAG since tmux 3.2a; set it with [Pane.SetSynchronizePanes]."},"source":{"file":"tmux/option_generated.go","line":3137,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.SynchronizePanes","product":"core","slug":"tmux-paneoptionvalues-synchronizepanes"},{"id":"tmux.PaneOptionValues.TreeModePreviewFormat","name":"TreeModePreviewFormat","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) TreeModePreviewFormat() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"TreeModePreviewFormat returns materialized \"tree-mode-preview-format\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as STRING since tmux 3.7; set it with [Pane.SetTreeModePreviewFormat]."},"source":{"file":"tmux/option_generated.go","line":3141,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.TreeModePreviewFormat","product":"core","slug":"tmux-paneoptionvalues-treemodepreviewformat"},{"id":"tmux.PaneOptionValues.WindowActiveStyle","name":"WindowActiveStyle","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) WindowActiveStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowActiveStyle returns materialized \"window-active-style\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Pane.SetWindowActiveStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":3146,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.WindowActiveStyle","product":"core","slug":"tmux-paneoptionvalues-windowactivestyle"},{"id":"tmux.PaneOptionValues.WindowStyle","name":"WindowStyle","kind":"method","modifiers":[],"parent":"tmux.PaneOptionValues","signatures":[{"raw":"func (v PaneOptionValues) WindowStyle() OptionValue[string]","params":[],"receiver":{"name":"v","type":"PaneOptionValues"},"returns":"OptionValue[string]"}],"doc":{"summary":"WindowStyle returns materialized \"window-style\" as [OptionValue] with value type OptionValue[string] from pane option values; it does not query tmux. Available as STRING since tmux 3.2a; set it with [Pane.SetWindowStyle]. It is a style option."},"source":{"file":"tmux/option_generated.go","line":3151,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneOptionValues.WindowStyle","product":"core","slug":"tmux-paneoptionvalues-windowstyle"},{"id":"tmux.ServerHookValues","name":"ServerHookValues","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ServerHookValues is an immutable materialized view of known global session-scope hook values; its zero value is empty and it does not refresh. Obtain it with [GlobalSessionScope.Hooks]. [OptionValue.Get] reports presence and [OptionValue.Origin] reports inheritance. Use [GlobalSessionScope.RawHook] for caller-named or undecoded values."},"source":{"file":"tmux/option_generated.go","line":3203,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues","product":"core","slug":"tmux-serverhookvalues"},{"id":"tmux.ServerHookValues.AfterBindKey","name":"AfterBindKey","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterBindKey() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterBindKey returns materialized \"after-bind-key\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3266,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterBindKey","product":"core","slug":"tmux-serverhookvalues-afterbindkey"},{"id":"tmux.ServerHookValues.AfterCapturePane","name":"AfterCapturePane","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterCapturePane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterCapturePane returns materialized \"after-capture-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3271,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterCapturePane","product":"core","slug":"tmux-serverhookvalues-aftercapturepane"},{"id":"tmux.ServerHookValues.AfterCopyMode","name":"AfterCopyMode","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterCopyMode() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterCopyMode returns materialized \"after-copy-mode\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3278,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterCopyMode","product":"core","slug":"tmux-serverhookvalues-aftercopymode"},{"id":"tmux.ServerHookValues.AfterDisplayMessage","name":"AfterDisplayMessage","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterDisplayMessage() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterDisplayMessage returns materialized \"after-display-message\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3283,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterDisplayMessage","product":"core","slug":"tmux-serverhookvalues-afterdisplaymessage"},{"id":"tmux.ServerHookValues.AfterDisplayPanes","name":"AfterDisplayPanes","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterDisplayPanes() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterDisplayPanes returns materialized \"after-display-panes\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3290,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterDisplayPanes","product":"core","slug":"tmux-serverhookvalues-afterdisplaypanes"},{"id":"tmux.ServerHookValues.AfterKillPane","name":"AfterKillPane","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterKillPane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterKillPane returns materialized \"after-kill-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3297,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterKillPane","product":"core","slug":"tmux-serverhookvalues-afterkillpane"},{"id":"tmux.ServerHookValues.AfterListBuffers","name":"AfterListBuffers","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterListBuffers() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListBuffers returns materialized \"after-list-buffers\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3302,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterListBuffers","product":"core","slug":"tmux-serverhookvalues-afterlistbuffers"},{"id":"tmux.ServerHookValues.AfterListClients","name":"AfterListClients","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterListClients() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListClients returns materialized \"after-list-clients\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3309,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterListClients","product":"core","slug":"tmux-serverhookvalues-afterlistclients"},{"id":"tmux.ServerHookValues.AfterListKeys","name":"AfterListKeys","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterListKeys() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListKeys returns materialized \"after-list-keys\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3316,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterListKeys","product":"core","slug":"tmux-serverhookvalues-afterlistkeys"},{"id":"tmux.ServerHookValues.AfterListPanes","name":"AfterListPanes","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterListPanes() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListPanes returns materialized \"after-list-panes\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3321,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterListPanes","product":"core","slug":"tmux-serverhookvalues-afterlistpanes"},{"id":"tmux.ServerHookValues.AfterListSessions","name":"AfterListSessions","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterListSessions() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListSessions returns materialized \"after-list-sessions\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3326,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterListSessions","product":"core","slug":"tmux-serverhookvalues-afterlistsessions"},{"id":"tmux.ServerHookValues.AfterListWindows","name":"AfterListWindows","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterListWindows() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListWindows returns materialized \"after-list-windows\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3333,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterListWindows","product":"core","slug":"tmux-serverhookvalues-afterlistwindows"},{"id":"tmux.ServerHookValues.AfterLoadBuffer","name":"AfterLoadBuffer","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterLoadBuffer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterLoadBuffer returns materialized \"after-load-buffer\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3340,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterLoadBuffer","product":"core","slug":"tmux-serverhookvalues-afterloadbuffer"},{"id":"tmux.ServerHookValues.AfterLockServer","name":"AfterLockServer","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterLockServer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterLockServer returns materialized \"after-lock-server\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3347,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterLockServer","product":"core","slug":"tmux-serverhookvalues-afterlockserver"},{"id":"tmux.ServerHookValues.AfterNewSession","name":"AfterNewSession","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterNewSession() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterNewSession returns materialized \"after-new-session\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3354,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterNewSession","product":"core","slug":"tmux-serverhookvalues-afternewsession"},{"id":"tmux.ServerHookValues.AfterNewWindow","name":"AfterNewWindow","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterNewWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterNewWindow returns materialized \"after-new-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3361,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterNewWindow","product":"core","slug":"tmux-serverhookvalues-afternewwindow"},{"id":"tmux.ServerHookValues.AfterPasteBuffer","name":"AfterPasteBuffer","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterPasteBuffer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterPasteBuffer returns materialized \"after-paste-buffer\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3366,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterPasteBuffer","product":"core","slug":"tmux-serverhookvalues-afterpastebuffer"},{"id":"tmux.ServerHookValues.AfterPipePane","name":"AfterPipePane","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterPipePane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterPipePane returns materialized \"after-pipe-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3373,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterPipePane","product":"core","slug":"tmux-serverhookvalues-afterpipepane"},{"id":"tmux.ServerHookValues.AfterQueue","name":"AfterQueue","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterQueue() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterQueue returns materialized \"after-queue\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3378,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterQueue","product":"core","slug":"tmux-serverhookvalues-afterqueue"},{"id":"tmux.ServerHookValues.AfterRefreshClient","name":"AfterRefreshClient","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterRefreshClient() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterRefreshClient returns materialized \"after-refresh-client\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3383,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterRefreshClient","product":"core","slug":"tmux-serverhookvalues-afterrefreshclient"},{"id":"tmux.ServerHookValues.AfterRenameSession","name":"AfterRenameSession","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterRenameSession() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterRenameSession returns materialized \"after-rename-session\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3390,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterRenameSession","product":"core","slug":"tmux-serverhookvalues-afterrenamesession"},{"id":"tmux.ServerHookValues.AfterRenameWindow","name":"AfterRenameWindow","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterRenameWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterRenameWindow returns materialized \"after-rename-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3397,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterRenameWindow","product":"core","slug":"tmux-serverhookvalues-afterrenamewindow"},{"id":"tmux.ServerHookValues.AfterResizePane","name":"AfterResizePane","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterResizePane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterResizePane returns materialized \"after-resize-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3404,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterResizePane","product":"core","slug":"tmux-serverhookvalues-afterresizepane"},{"id":"tmux.ServerHookValues.AfterResizeWindow","name":"AfterResizeWindow","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterResizeWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterResizeWindow returns materialized \"after-resize-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3411,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterResizeWindow","product":"core","slug":"tmux-serverhookvalues-afterresizewindow"},{"id":"tmux.ServerHookValues.AfterSaveBuffer","name":"AfterSaveBuffer","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSaveBuffer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSaveBuffer returns materialized \"after-save-buffer\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3418,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSaveBuffer","product":"core","slug":"tmux-serverhookvalues-aftersavebuffer"},{"id":"tmux.ServerHookValues.AfterSelectLayout","name":"AfterSelectLayout","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSelectLayout() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSelectLayout returns materialized \"after-select-layout\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3425,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSelectLayout","product":"core","slug":"tmux-serverhookvalues-afterselectlayout"},{"id":"tmux.ServerHookValues.AfterSelectPane","name":"AfterSelectPane","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSelectPane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSelectPane returns materialized \"after-select-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3432,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSelectPane","product":"core","slug":"tmux-serverhookvalues-afterselectpane"},{"id":"tmux.ServerHookValues.AfterSelectWindow","name":"AfterSelectWindow","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSelectWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSelectWindow returns materialized \"after-select-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3439,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSelectWindow","product":"core","slug":"tmux-serverhookvalues-afterselectwindow"},{"id":"tmux.ServerHookValues.AfterSendKeys","name":"AfterSendKeys","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSendKeys() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSendKeys returns materialized \"after-send-keys\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3446,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSendKeys","product":"core","slug":"tmux-serverhookvalues-aftersendkeys"},{"id":"tmux.ServerHookValues.AfterSetBuffer","name":"AfterSetBuffer","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSetBuffer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSetBuffer returns materialized \"after-set-buffer\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3451,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSetBuffer","product":"core","slug":"tmux-serverhookvalues-aftersetbuffer"},{"id":"tmux.ServerHookValues.AfterSetEnvironment","name":"AfterSetEnvironment","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSetEnvironment() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSetEnvironment returns materialized \"after-set-environment\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3456,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSetEnvironment","product":"core","slug":"tmux-serverhookvalues-aftersetenvironment"},{"id":"tmux.ServerHookValues.AfterSetHook","name":"AfterSetHook","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSetHook() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSetHook returns materialized \"after-set-hook\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3463,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSetHook","product":"core","slug":"tmux-serverhookvalues-aftersethook"},{"id":"tmux.ServerHookValues.AfterSetOption","name":"AfterSetOption","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSetOption() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSetOption returns materialized \"after-set-option\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3468,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSetOption","product":"core","slug":"tmux-serverhookvalues-aftersetoption"},{"id":"tmux.ServerHookValues.AfterShowEnvironment","name":"AfterShowEnvironment","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterShowEnvironment() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterShowEnvironment returns materialized \"after-show-environment\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3473,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterShowEnvironment","product":"core","slug":"tmux-serverhookvalues-aftershowenvironment"},{"id":"tmux.ServerHookValues.AfterShowMessages","name":"AfterShowMessages","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterShowMessages() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterShowMessages returns materialized \"after-show-messages\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3480,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterShowMessages","product":"core","slug":"tmux-serverhookvalues-aftershowmessages"},{"id":"tmux.ServerHookValues.AfterShowOptions","name":"AfterShowOptions","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterShowOptions() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterShowOptions returns materialized \"after-show-options\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3487,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterShowOptions","product":"core","slug":"tmux-serverhookvalues-aftershowoptions"},{"id":"tmux.ServerHookValues.AfterSplitWindow","name":"AfterSplitWindow","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterSplitWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSplitWindow returns materialized \"after-split-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3494,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterSplitWindow","product":"core","slug":"tmux-serverhookvalues-aftersplitwindow"},{"id":"tmux.ServerHookValues.AfterUnbindKey","name":"AfterUnbindKey","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AfterUnbindKey() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterUnbindKey returns materialized \"after-unbind-key\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3501,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AfterUnbindKey","product":"core","slug":"tmux-serverhookvalues-afterunbindkey"},{"id":"tmux.ServerHookValues.AlertActivity","name":"AlertActivity","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AlertActivity() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AlertActivity returns materialized \"alert-activity\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3506,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AlertActivity","product":"core","slug":"tmux-serverhookvalues-alertactivity"},{"id":"tmux.ServerHookValues.AlertBell","name":"AlertBell","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AlertBell() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AlertBell returns materialized \"alert-bell\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3511,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AlertBell","product":"core","slug":"tmux-serverhookvalues-alertbell"},{"id":"tmux.ServerHookValues.AlertSilence","name":"AlertSilence","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) AlertSilence() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AlertSilence returns materialized \"alert-silence\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3516,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.AlertSilence","product":"core","slug":"tmux-serverhookvalues-alertsilence"},{"id":"tmux.ServerHookValues.ClientActive","name":"ClientActive","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) ClientActive() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientActive returns materialized \"client-active\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3521,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.ClientActive","product":"core","slug":"tmux-serverhookvalues-clientactive"},{"id":"tmux.ServerHookValues.ClientAttached","name":"ClientAttached","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) ClientAttached() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientAttached returns materialized \"client-attached\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3526,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.ClientAttached","product":"core","slug":"tmux-serverhookvalues-clientattached"},{"id":"tmux.ServerHookValues.ClientDarkTheme","name":"ClientDarkTheme","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) ClientDarkTheme() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientDarkTheme returns materialized \"client-dark-theme\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.6. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3531,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.ClientDarkTheme","product":"core","slug":"tmux-serverhookvalues-clientdarktheme"},{"id":"tmux.ServerHookValues.ClientDetached","name":"ClientDetached","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) ClientDetached() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientDetached returns materialized \"client-detached\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3538,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.ClientDetached","product":"core","slug":"tmux-serverhookvalues-clientdetached"},{"id":"tmux.ServerHookValues.ClientFocusIn","name":"ClientFocusIn","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) ClientFocusIn() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientFocusIn returns materialized \"client-focus-in\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3543,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.ClientFocusIn","product":"core","slug":"tmux-serverhookvalues-clientfocusin"},{"id":"tmux.ServerHookValues.ClientFocusOut","name":"ClientFocusOut","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) ClientFocusOut() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientFocusOut returns materialized \"client-focus-out\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3548,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.ClientFocusOut","product":"core","slug":"tmux-serverhookvalues-clientfocusout"},{"id":"tmux.ServerHookValues.ClientLightTheme","name":"ClientLightTheme","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) ClientLightTheme() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientLightTheme returns materialized \"client-light-theme\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.6. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3553,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.ClientLightTheme","product":"core","slug":"tmux-serverhookvalues-clientlighttheme"},{"id":"tmux.ServerHookValues.ClientResized","name":"ClientResized","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) ClientResized() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientResized returns materialized \"client-resized\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3560,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.ClientResized","product":"core","slug":"tmux-serverhookvalues-clientresized"},{"id":"tmux.ServerHookValues.ClientSessionChanged","name":"ClientSessionChanged","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) ClientSessionChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientSessionChanged returns materialized \"client-session-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3565,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.ClientSessionChanged","product":"core","slug":"tmux-serverhookvalues-clientsessionchanged"},{"id":"tmux.ServerHookValues.CommandError","name":"CommandError","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) CommandError() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"CommandError returns materialized \"command-error\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.5. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3572,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.CommandError","product":"core","slug":"tmux-serverhookvalues-commanderror"},{"id":"tmux.ServerHookValues.SessionClosed","name":"SessionClosed","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) SessionClosed() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"SessionClosed returns materialized \"session-closed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3577,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.SessionClosed","product":"core","slug":"tmux-serverhookvalues-sessionclosed"},{"id":"tmux.ServerHookValues.SessionCreated","name":"SessionCreated","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) SessionCreated() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"SessionCreated returns materialized \"session-created\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3582,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.SessionCreated","product":"core","slug":"tmux-serverhookvalues-sessioncreated"},{"id":"tmux.ServerHookValues.SessionRenamed","name":"SessionRenamed","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) SessionRenamed() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"SessionRenamed returns materialized \"session-renamed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3587,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.SessionRenamed","product":"core","slug":"tmux-serverhookvalues-sessionrenamed"},{"id":"tmux.ServerHookValues.SessionWindowChanged","name":"SessionWindowChanged","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) SessionWindowChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"SessionWindowChanged returns materialized \"session-window-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3592,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.SessionWindowChanged","product":"core","slug":"tmux-serverhookvalues-sessionwindowchanged"},{"id":"tmux.ServerHookValues.WindowLinked","name":"WindowLinked","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) WindowLinked() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowLinked returns materialized \"window-linked\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3599,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.WindowLinked","product":"core","slug":"tmux-serverhookvalues-windowlinked"},{"id":"tmux.ServerHookValues.WindowUnlinked","name":"WindowUnlinked","kind":"method","modifiers":[],"parent":"tmux.ServerHookValues","signatures":[{"raw":"func (v ServerHookValues) WindowUnlinked() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"ServerHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowUnlinked returns materialized \"window-unlinked\" as [OptionValue] with value type OptionValue[SparseArray[string]] from global session-scope hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3604,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerHookValues.WindowUnlinked","product":"core","slug":"tmux-serverhookvalues-windowunlinked"},{"id":"tmux.SessionHookValues","name":"SessionHookValues","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SessionHookValues is an immutable materialized view of known session hook values; its zero value is empty and it does not refresh. Obtain it with [Session.Hooks]. [OptionValue.Get] reports presence and [OptionValue.Origin] reports inheritance. Use [Session.RawHook] for caller-named or undecoded values."},"source":{"file":"tmux/option_generated.go","line":3732,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues","product":"core","slug":"tmux-sessionhookvalues"},{"id":"tmux.SessionHookValues.AfterBindKey","name":"AfterBindKey","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterBindKey() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterBindKey returns materialized \"after-bind-key\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3795,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterBindKey","product":"core","slug":"tmux-sessionhookvalues-afterbindkey"},{"id":"tmux.SessionHookValues.AfterCapturePane","name":"AfterCapturePane","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterCapturePane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterCapturePane returns materialized \"after-capture-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3800,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterCapturePane","product":"core","slug":"tmux-sessionhookvalues-aftercapturepane"},{"id":"tmux.SessionHookValues.AfterCopyMode","name":"AfterCopyMode","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterCopyMode() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterCopyMode returns materialized \"after-copy-mode\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3807,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterCopyMode","product":"core","slug":"tmux-sessionhookvalues-aftercopymode"},{"id":"tmux.SessionHookValues.AfterDisplayMessage","name":"AfterDisplayMessage","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterDisplayMessage() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterDisplayMessage returns materialized \"after-display-message\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3812,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterDisplayMessage","product":"core","slug":"tmux-sessionhookvalues-afterdisplaymessage"},{"id":"tmux.SessionHookValues.AfterDisplayPanes","name":"AfterDisplayPanes","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterDisplayPanes() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterDisplayPanes returns materialized \"after-display-panes\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3819,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterDisplayPanes","product":"core","slug":"tmux-sessionhookvalues-afterdisplaypanes"},{"id":"tmux.SessionHookValues.AfterKillPane","name":"AfterKillPane","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterKillPane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterKillPane returns materialized \"after-kill-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3826,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterKillPane","product":"core","slug":"tmux-sessionhookvalues-afterkillpane"},{"id":"tmux.SessionHookValues.AfterListBuffers","name":"AfterListBuffers","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterListBuffers() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListBuffers returns materialized \"after-list-buffers\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3831,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterListBuffers","product":"core","slug":"tmux-sessionhookvalues-afterlistbuffers"},{"id":"tmux.SessionHookValues.AfterListClients","name":"AfterListClients","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterListClients() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListClients returns materialized \"after-list-clients\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3838,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterListClients","product":"core","slug":"tmux-sessionhookvalues-afterlistclients"},{"id":"tmux.SessionHookValues.AfterListKeys","name":"AfterListKeys","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterListKeys() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListKeys returns materialized \"after-list-keys\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3845,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterListKeys","product":"core","slug":"tmux-sessionhookvalues-afterlistkeys"},{"id":"tmux.SessionHookValues.AfterListPanes","name":"AfterListPanes","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterListPanes() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListPanes returns materialized \"after-list-panes\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3850,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterListPanes","product":"core","slug":"tmux-sessionhookvalues-afterlistpanes"},{"id":"tmux.SessionHookValues.AfterListSessions","name":"AfterListSessions","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterListSessions() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListSessions returns materialized \"after-list-sessions\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3855,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterListSessions","product":"core","slug":"tmux-sessionhookvalues-afterlistsessions"},{"id":"tmux.SessionHookValues.AfterListWindows","name":"AfterListWindows","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterListWindows() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterListWindows returns materialized \"after-list-windows\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3862,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterListWindows","product":"core","slug":"tmux-sessionhookvalues-afterlistwindows"},{"id":"tmux.SessionHookValues.AfterLoadBuffer","name":"AfterLoadBuffer","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterLoadBuffer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterLoadBuffer returns materialized \"after-load-buffer\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3869,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterLoadBuffer","product":"core","slug":"tmux-sessionhookvalues-afterloadbuffer"},{"id":"tmux.SessionHookValues.AfterLockServer","name":"AfterLockServer","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterLockServer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterLockServer returns materialized \"after-lock-server\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3876,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterLockServer","product":"core","slug":"tmux-sessionhookvalues-afterlockserver"},{"id":"tmux.SessionHookValues.AfterNewSession","name":"AfterNewSession","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterNewSession() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterNewSession returns materialized \"after-new-session\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3883,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterNewSession","product":"core","slug":"tmux-sessionhookvalues-afternewsession"},{"id":"tmux.SessionHookValues.AfterNewWindow","name":"AfterNewWindow","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterNewWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterNewWindow returns materialized \"after-new-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3890,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterNewWindow","product":"core","slug":"tmux-sessionhookvalues-afternewwindow"},{"id":"tmux.SessionHookValues.AfterPasteBuffer","name":"AfterPasteBuffer","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterPasteBuffer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterPasteBuffer returns materialized \"after-paste-buffer\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3895,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterPasteBuffer","product":"core","slug":"tmux-sessionhookvalues-afterpastebuffer"},{"id":"tmux.SessionHookValues.AfterPipePane","name":"AfterPipePane","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterPipePane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterPipePane returns materialized \"after-pipe-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3902,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterPipePane","product":"core","slug":"tmux-sessionhookvalues-afterpipepane"},{"id":"tmux.SessionHookValues.AfterQueue","name":"AfterQueue","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterQueue() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterQueue returns materialized \"after-queue\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3907,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterQueue","product":"core","slug":"tmux-sessionhookvalues-afterqueue"},{"id":"tmux.SessionHookValues.AfterRefreshClient","name":"AfterRefreshClient","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterRefreshClient() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterRefreshClient returns materialized \"after-refresh-client\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3912,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterRefreshClient","product":"core","slug":"tmux-sessionhookvalues-afterrefreshclient"},{"id":"tmux.SessionHookValues.AfterRenameSession","name":"AfterRenameSession","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterRenameSession() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterRenameSession returns materialized \"after-rename-session\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3919,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterRenameSession","product":"core","slug":"tmux-sessionhookvalues-afterrenamesession"},{"id":"tmux.SessionHookValues.AfterRenameWindow","name":"AfterRenameWindow","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterRenameWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterRenameWindow returns materialized \"after-rename-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3926,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterRenameWindow","product":"core","slug":"tmux-sessionhookvalues-afterrenamewindow"},{"id":"tmux.SessionHookValues.AfterResizePane","name":"AfterResizePane","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterResizePane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterResizePane returns materialized \"after-resize-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3933,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterResizePane","product":"core","slug":"tmux-sessionhookvalues-afterresizepane"},{"id":"tmux.SessionHookValues.AfterResizeWindow","name":"AfterResizeWindow","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterResizeWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterResizeWindow returns materialized \"after-resize-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3940,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterResizeWindow","product":"core","slug":"tmux-sessionhookvalues-afterresizewindow"},{"id":"tmux.SessionHookValues.AfterSaveBuffer","name":"AfterSaveBuffer","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSaveBuffer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSaveBuffer returns materialized \"after-save-buffer\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3947,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSaveBuffer","product":"core","slug":"tmux-sessionhookvalues-aftersavebuffer"},{"id":"tmux.SessionHookValues.AfterSelectLayout","name":"AfterSelectLayout","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSelectLayout() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSelectLayout returns materialized \"after-select-layout\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3954,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSelectLayout","product":"core","slug":"tmux-sessionhookvalues-afterselectlayout"},{"id":"tmux.SessionHookValues.AfterSelectPane","name":"AfterSelectPane","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSelectPane() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSelectPane returns materialized \"after-select-pane\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3961,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSelectPane","product":"core","slug":"tmux-sessionhookvalues-afterselectpane"},{"id":"tmux.SessionHookValues.AfterSelectWindow","name":"AfterSelectWindow","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSelectWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSelectWindow returns materialized \"after-select-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3968,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSelectWindow","product":"core","slug":"tmux-sessionhookvalues-afterselectwindow"},{"id":"tmux.SessionHookValues.AfterSendKeys","name":"AfterSendKeys","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSendKeys() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSendKeys returns materialized \"after-send-keys\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3975,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSendKeys","product":"core","slug":"tmux-sessionhookvalues-aftersendkeys"},{"id":"tmux.SessionHookValues.AfterSetBuffer","name":"AfterSetBuffer","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSetBuffer() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSetBuffer returns materialized \"after-set-buffer\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3980,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSetBuffer","product":"core","slug":"tmux-sessionhookvalues-aftersetbuffer"},{"id":"tmux.SessionHookValues.AfterSetEnvironment","name":"AfterSetEnvironment","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSetEnvironment() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSetEnvironment returns materialized \"after-set-environment\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3985,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSetEnvironment","product":"core","slug":"tmux-sessionhookvalues-aftersetenvironment"},{"id":"tmux.SessionHookValues.AfterSetHook","name":"AfterSetHook","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSetHook() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSetHook returns materialized \"after-set-hook\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3992,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSetHook","product":"core","slug":"tmux-sessionhookvalues-aftersethook"},{"id":"tmux.SessionHookValues.AfterSetOption","name":"AfterSetOption","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSetOption() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSetOption returns materialized \"after-set-option\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":3997,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSetOption","product":"core","slug":"tmux-sessionhookvalues-aftersetoption"},{"id":"tmux.SessionHookValues.AfterShowEnvironment","name":"AfterShowEnvironment","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterShowEnvironment() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterShowEnvironment returns materialized \"after-show-environment\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4002,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterShowEnvironment","product":"core","slug":"tmux-sessionhookvalues-aftershowenvironment"},{"id":"tmux.SessionHookValues.AfterShowMessages","name":"AfterShowMessages","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterShowMessages() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterShowMessages returns materialized \"after-show-messages\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4009,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterShowMessages","product":"core","slug":"tmux-sessionhookvalues-aftershowmessages"},{"id":"tmux.SessionHookValues.AfterShowOptions","name":"AfterShowOptions","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterShowOptions() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterShowOptions returns materialized \"after-show-options\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4016,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterShowOptions","product":"core","slug":"tmux-sessionhookvalues-aftershowoptions"},{"id":"tmux.SessionHookValues.AfterSplitWindow","name":"AfterSplitWindow","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterSplitWindow() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterSplitWindow returns materialized \"after-split-window\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4023,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterSplitWindow","product":"core","slug":"tmux-sessionhookvalues-aftersplitwindow"},{"id":"tmux.SessionHookValues.AfterUnbindKey","name":"AfterUnbindKey","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AfterUnbindKey() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AfterUnbindKey returns materialized \"after-unbind-key\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4030,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AfterUnbindKey","product":"core","slug":"tmux-sessionhookvalues-afterunbindkey"},{"id":"tmux.SessionHookValues.AlertActivity","name":"AlertActivity","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AlertActivity() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AlertActivity returns materialized \"alert-activity\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4035,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AlertActivity","product":"core","slug":"tmux-sessionhookvalues-alertactivity"},{"id":"tmux.SessionHookValues.AlertBell","name":"AlertBell","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AlertBell() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AlertBell returns materialized \"alert-bell\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4040,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AlertBell","product":"core","slug":"tmux-sessionhookvalues-alertbell"},{"id":"tmux.SessionHookValues.AlertSilence","name":"AlertSilence","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) AlertSilence() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"AlertSilence returns materialized \"alert-silence\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4045,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.AlertSilence","product":"core","slug":"tmux-sessionhookvalues-alertsilence"},{"id":"tmux.SessionHookValues.ClientActive","name":"ClientActive","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) ClientActive() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientActive returns materialized \"client-active\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4050,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.ClientActive","product":"core","slug":"tmux-sessionhookvalues-clientactive"},{"id":"tmux.SessionHookValues.ClientAttached","name":"ClientAttached","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) ClientAttached() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientAttached returns materialized \"client-attached\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4055,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.ClientAttached","product":"core","slug":"tmux-sessionhookvalues-clientattached"},{"id":"tmux.SessionHookValues.ClientDarkTheme","name":"ClientDarkTheme","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) ClientDarkTheme() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientDarkTheme returns materialized \"client-dark-theme\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.6. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4060,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.ClientDarkTheme","product":"core","slug":"tmux-sessionhookvalues-clientdarktheme"},{"id":"tmux.SessionHookValues.ClientDetached","name":"ClientDetached","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) ClientDetached() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientDetached returns materialized \"client-detached\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4067,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.ClientDetached","product":"core","slug":"tmux-sessionhookvalues-clientdetached"},{"id":"tmux.SessionHookValues.ClientFocusIn","name":"ClientFocusIn","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) ClientFocusIn() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientFocusIn returns materialized \"client-focus-in\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4072,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.ClientFocusIn","product":"core","slug":"tmux-sessionhookvalues-clientfocusin"},{"id":"tmux.SessionHookValues.ClientFocusOut","name":"ClientFocusOut","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) ClientFocusOut() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientFocusOut returns materialized \"client-focus-out\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4077,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.ClientFocusOut","product":"core","slug":"tmux-sessionhookvalues-clientfocusout"},{"id":"tmux.SessionHookValues.ClientLightTheme","name":"ClientLightTheme","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) ClientLightTheme() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientLightTheme returns materialized \"client-light-theme\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.6. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4082,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.ClientLightTheme","product":"core","slug":"tmux-sessionhookvalues-clientlighttheme"},{"id":"tmux.SessionHookValues.ClientResized","name":"ClientResized","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) ClientResized() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientResized returns materialized \"client-resized\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4089,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.ClientResized","product":"core","slug":"tmux-sessionhookvalues-clientresized"},{"id":"tmux.SessionHookValues.ClientSessionChanged","name":"ClientSessionChanged","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) ClientSessionChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"ClientSessionChanged returns materialized \"client-session-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4094,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.ClientSessionChanged","product":"core","slug":"tmux-sessionhookvalues-clientsessionchanged"},{"id":"tmux.SessionHookValues.CommandError","name":"CommandError","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) CommandError() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"CommandError returns materialized \"command-error\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.5. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4101,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.CommandError","product":"core","slug":"tmux-sessionhookvalues-commanderror"},{"id":"tmux.SessionHookValues.SessionClosed","name":"SessionClosed","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) SessionClosed() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"SessionClosed returns materialized \"session-closed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.SessionClosed","product":"core","slug":"tmux-sessionhookvalues-sessionclosed"},{"id":"tmux.SessionHookValues.SessionCreated","name":"SessionCreated","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) SessionCreated() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"SessionCreated returns materialized \"session-created\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.SessionCreated","product":"core","slug":"tmux-sessionhookvalues-sessioncreated"},{"id":"tmux.SessionHookValues.SessionRenamed","name":"SessionRenamed","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) SessionRenamed() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"SessionRenamed returns materialized \"session-renamed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4116,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.SessionRenamed","product":"core","slug":"tmux-sessionhookvalues-sessionrenamed"},{"id":"tmux.SessionHookValues.SessionWindowChanged","name":"SessionWindowChanged","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) SessionWindowChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"SessionWindowChanged returns materialized \"session-window-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4121,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.SessionWindowChanged","product":"core","slug":"tmux-sessionhookvalues-sessionwindowchanged"},{"id":"tmux.SessionHookValues.WindowLinked","name":"WindowLinked","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) WindowLinked() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowLinked returns materialized \"window-linked\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4128,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.WindowLinked","product":"core","slug":"tmux-sessionhookvalues-windowlinked"},{"id":"tmux.SessionHookValues.WindowUnlinked","name":"WindowUnlinked","kind":"method","modifiers":[],"parent":"tmux.SessionHookValues","signatures":[{"raw":"func (v SessionHookValues) WindowUnlinked() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"SessionHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowUnlinked returns materialized \"window-unlinked\" as [OptionValue] with value type OptionValue[SparseArray[string]] from session hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4133,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionHookValues.WindowUnlinked","product":"core","slug":"tmux-sessionhookvalues-windowunlinked"},{"id":"tmux.WindowHookValues","name":"WindowHookValues","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WindowHookValues is an immutable materialized view of known window hook values; its zero value is empty and it does not refresh. Obtain it with [Window.Hooks] or [GlobalWindowScope.Hooks]. [OptionValue.Get] reports presence and [OptionValue.Origin] reports inheritance. Use [Window.RawHook] or [GlobalWindowScope.RawHook] for caller-named or undecoded values."},"source":{"file":"tmux/option_generated.go","line":4261,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues","product":"core","slug":"tmux-windowhookvalues"},{"id":"tmux.WindowHookValues.PaneDied","name":"PaneDied","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) PaneDied() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneDied returns materialized \"pane-died\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4280,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.PaneDied","product":"core","slug":"tmux-windowhookvalues-panedied"},{"id":"tmux.WindowHookValues.PaneExited","name":"PaneExited","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) PaneExited() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneExited returns materialized \"pane-exited\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4285,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.PaneExited","product":"core","slug":"tmux-windowhookvalues-paneexited"},{"id":"tmux.WindowHookValues.PaneFocusIn","name":"PaneFocusIn","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) PaneFocusIn() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneFocusIn returns materialized \"pane-focus-in\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4290,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.PaneFocusIn","product":"core","slug":"tmux-windowhookvalues-panefocusin"},{"id":"tmux.WindowHookValues.PaneFocusOut","name":"PaneFocusOut","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) PaneFocusOut() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneFocusOut returns materialized \"pane-focus-out\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4295,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.PaneFocusOut","product":"core","slug":"tmux-windowhookvalues-panefocusout"},{"id":"tmux.WindowHookValues.PaneModeChanged","name":"PaneModeChanged","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) PaneModeChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneModeChanged returns materialized \"pane-mode-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4300,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.PaneModeChanged","product":"core","slug":"tmux-windowhookvalues-panemodechanged"},{"id":"tmux.WindowHookValues.PaneSetClipboard","name":"PaneSetClipboard","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) PaneSetClipboard() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneSetClipboard returns materialized \"pane-set-clipboard\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4307,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.PaneSetClipboard","product":"core","slug":"tmux-windowhookvalues-panesetclipboard"},{"id":"tmux.WindowHookValues.PaneTitleChanged","name":"PaneTitleChanged","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) PaneTitleChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneTitleChanged returns materialized \"pane-title-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4314,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.PaneTitleChanged","product":"core","slug":"tmux-windowhookvalues-panetitlechanged"},{"id":"tmux.WindowHookValues.WindowLayoutChanged","name":"WindowLayoutChanged","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) WindowLayoutChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowLayoutChanged returns materialized \"window-layout-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4321,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.WindowLayoutChanged","product":"core","slug":"tmux-windowhookvalues-windowlayoutchanged"},{"id":"tmux.WindowHookValues.WindowLinked","name":"WindowLinked","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) WindowLinked() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowLinked returns materialized \"window-linked\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4328,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.WindowLinked","product":"core","slug":"tmux-windowhookvalues-windowlinked"},{"id":"tmux.WindowHookValues.WindowPaneChanged","name":"WindowPaneChanged","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) WindowPaneChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowPaneChanged returns materialized \"window-pane-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4333,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.WindowPaneChanged","product":"core","slug":"tmux-windowhookvalues-windowpanechanged"},{"id":"tmux.WindowHookValues.WindowRenamed","name":"WindowRenamed","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) WindowRenamed() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowRenamed returns materialized \"window-renamed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4340,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.WindowRenamed","product":"core","slug":"tmux-windowhookvalues-windowrenamed"},{"id":"tmux.WindowHookValues.WindowResized","name":"WindowResized","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) WindowResized() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowResized returns materialized \"window-resized\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.3. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4345,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.WindowResized","product":"core","slug":"tmux-windowhookvalues-windowresized"},{"id":"tmux.WindowHookValues.WindowUnlinked","name":"WindowUnlinked","kind":"method","modifiers":[],"parent":"tmux.WindowHookValues","signatures":[{"raw":"func (v WindowHookValues) WindowUnlinked() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"WindowHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"WindowUnlinked returns materialized \"window-unlinked\" as [OptionValue] with value type OptionValue[SparseArray[string]] from window hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4350,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowHookValues.WindowUnlinked","product":"core","slug":"tmux-windowhookvalues-windowunlinked"},{"id":"tmux.PaneHookValues","name":"PaneHookValues","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneHookValues is an immutable materialized view of known pane hook values; its zero value is empty and it does not refresh. Obtain it with [Pane.Hooks]. [OptionValue.Get] reports presence and [OptionValue.Origin] reports inheritance. Use [Pane.RawHook] for caller-named or undecoded values."},"source":{"file":"tmux/option_generated.go","line":4390,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneHookValues","product":"core","slug":"tmux-panehookvalues"},{"id":"tmux.PaneHookValues.PaneDied","name":"PaneDied","kind":"method","modifiers":[],"parent":"tmux.PaneHookValues","signatures":[{"raw":"func (v PaneHookValues) PaneDied() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"PaneHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneDied returns materialized \"pane-died\" as [OptionValue] with value type OptionValue[SparseArray[string]] from pane hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4403,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneHookValues.PaneDied","product":"core","slug":"tmux-panehookvalues-panedied"},{"id":"tmux.PaneHookValues.PaneExited","name":"PaneExited","kind":"method","modifiers":[],"parent":"tmux.PaneHookValues","signatures":[{"raw":"func (v PaneHookValues) PaneExited() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"PaneHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneExited returns materialized \"pane-exited\" as [OptionValue] with value type OptionValue[SparseArray[string]] from pane hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4408,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneHookValues.PaneExited","product":"core","slug":"tmux-panehookvalues-paneexited"},{"id":"tmux.PaneHookValues.PaneFocusIn","name":"PaneFocusIn","kind":"method","modifiers":[],"parent":"tmux.PaneHookValues","signatures":[{"raw":"func (v PaneHookValues) PaneFocusIn() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"PaneHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneFocusIn returns materialized \"pane-focus-in\" as [OptionValue] with value type OptionValue[SparseArray[string]] from pane hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4413,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneHookValues.PaneFocusIn","product":"core","slug":"tmux-panehookvalues-panefocusin"},{"id":"tmux.PaneHookValues.PaneFocusOut","name":"PaneFocusOut","kind":"method","modifiers":[],"parent":"tmux.PaneHookValues","signatures":[{"raw":"func (v PaneHookValues) PaneFocusOut() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"PaneHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneFocusOut returns materialized \"pane-focus-out\" as [OptionValue] with value type OptionValue[SparseArray[string]] from pane hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4418,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneHookValues.PaneFocusOut","product":"core","slug":"tmux-panehookvalues-panefocusout"},{"id":"tmux.PaneHookValues.PaneModeChanged","name":"PaneModeChanged","kind":"method","modifiers":[],"parent":"tmux.PaneHookValues","signatures":[{"raw":"func (v PaneHookValues) PaneModeChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"PaneHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneModeChanged returns materialized \"pane-mode-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from pane hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4423,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneHookValues.PaneModeChanged","product":"core","slug":"tmux-panehookvalues-panemodechanged"},{"id":"tmux.PaneHookValues.PaneSetClipboard","name":"PaneSetClipboard","kind":"method","modifiers":[],"parent":"tmux.PaneHookValues","signatures":[{"raw":"func (v PaneHookValues) PaneSetClipboard() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"PaneHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneSetClipboard returns materialized \"pane-set-clipboard\" as [OptionValue] with value type OptionValue[SparseArray[string]] from pane hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4428,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneHookValues.PaneSetClipboard","product":"core","slug":"tmux-panehookvalues-panesetclipboard"},{"id":"tmux.PaneHookValues.PaneTitleChanged","name":"PaneTitleChanged","kind":"method","modifiers":[],"parent":"tmux.PaneHookValues","signatures":[{"raw":"func (v PaneHookValues) PaneTitleChanged() OptionValue[SparseArray[string]]","params":[],"receiver":{"name":"v","type":"PaneHookValues"},"returns":"OptionValue[SparseArray[string]]"}],"doc":{"summary":"PaneTitleChanged returns materialized \"pane-title-changed\" as [OptionValue] with value type OptionValue[SparseArray[string]] from pane hook values; it does not query tmux. Available as COMMAND since tmux 3.2a. Its present SparseArray value preserves assigned tmux indexes, including gaps."},"source":{"file":"tmux/option_generated.go","line":4435,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneHookValues.PaneTitleChanged","product":"core","slug":"tmux-panehookvalues-panetitlechanged"},{"id":"tmux.Session.SetActivityAction","name":"SetActivityAction","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetActivityAction(ctx context.Context, value ActivityAction) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"ActivityAction"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetActivityAction stores the \"activity-action\" session option as ActivityAction (tmux 3.2a or later). Read it with [SessionOptionValues.ActivityAction] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4464,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetActivityAction","product":"core","slug":"tmux-session-setactivityaction"},{"id":"tmux.GlobalSessionScope.SetActivityAction","name":"SetActivityAction","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetActivityAction(ctx context.Context, value ActivityAction) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"ActivityAction"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetActivityAction stores the \"activity-action\" session option as ActivityAction (tmux 3.2a or later). Read it with [SessionOptionValues.ActivityAction] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4474,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetActivityAction","product":"core","slug":"tmux-globalsessionscope-setactivityaction"},{"id":"tmux.Window.SetAggressiveResize","name":"SetAggressiveResize","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetAggressiveResize(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetAggressiveResize stores the \"aggressive-resize\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.AggressiveResize] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4482,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetAggressiveResize","product":"core","slug":"tmux-window-setaggressiveresize"},{"id":"tmux.GlobalWindowScope.SetAggressiveResize","name":"SetAggressiveResize","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetAggressiveResize(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetAggressiveResize stores the \"aggressive-resize\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.AggressiveResize] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4492,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetAggressiveResize","product":"core","slug":"tmux-globalwindowscope-setaggressiveresize"},{"id":"tmux.Window.SetAllowPassthrough","name":"SetAllowPassthrough","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetAllowPassthrough(ctx context.Context, value AllowPassthrough) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"AllowPassthrough"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetAllowPassthrough stores the \"allow-passthrough\" window option as AllowPassthrough (tmux 3.3 or later). Read it with [WindowOptionValues.AllowPassthrough] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4500,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetAllowPassthrough","product":"core","slug":"tmux-window-setallowpassthrough"},{"id":"tmux.GlobalWindowScope.SetAllowPassthrough","name":"SetAllowPassthrough","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetAllowPassthrough(ctx context.Context, value AllowPassthrough) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"AllowPassthrough"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetAllowPassthrough stores the \"allow-passthrough\" window option as AllowPassthrough (tmux 3.3 or later). Read it with [WindowOptionValues.AllowPassthrough] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4510,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetAllowPassthrough","product":"core","slug":"tmux-globalwindowscope-setallowpassthrough"},{"id":"tmux.Pane.SetAllowPassthrough","name":"SetAllowPassthrough","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetAllowPassthrough(ctx context.Context, value AllowPassthrough) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"AllowPassthrough"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetAllowPassthrough stores the \"allow-passthrough\" pane option as AllowPassthrough (tmux 3.3 or later). Read it with [PaneOptionValues.AllowPassthrough] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4518,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetAllowPassthrough","product":"core","slug":"tmux-pane-setallowpassthrough"},{"id":"tmux.Window.SetAllowRename","name":"SetAllowRename","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetAllowRename(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetAllowRename stores the \"allow-rename\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.AllowRename] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4528,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetAllowRename","product":"core","slug":"tmux-window-setallowrename"},{"id":"tmux.GlobalWindowScope.SetAllowRename","name":"SetAllowRename","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetAllowRename(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetAllowRename stores the \"allow-rename\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.AllowRename] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4538,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetAllowRename","product":"core","slug":"tmux-globalwindowscope-setallowrename"},{"id":"tmux.Pane.SetAllowRename","name":"SetAllowRename","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetAllowRename(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetAllowRename stores the \"allow-rename\" pane option as bool (tmux 3.2a or later). Read it with [PaneOptionValues.AllowRename] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4546,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetAllowRename","product":"core","slug":"tmux-pane-setallowrename"},{"id":"tmux.Window.SetAllowSetTitle","name":"SetAllowSetTitle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetAllowSetTitle(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetAllowSetTitle stores the \"allow-set-title\" window option as bool (tmux 3.5 or later). Read it with [WindowOptionValues.AllowSetTitle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4556,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetAllowSetTitle","product":"core","slug":"tmux-window-setallowsettitle"},{"id":"tmux.GlobalWindowScope.SetAllowSetTitle","name":"SetAllowSetTitle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetAllowSetTitle(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetAllowSetTitle stores the \"allow-set-title\" window option as bool (tmux 3.5 or later). Read it with [WindowOptionValues.AllowSetTitle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4566,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetAllowSetTitle","product":"core","slug":"tmux-globalwindowscope-setallowsettitle"},{"id":"tmux.Pane.SetAllowSetTitle","name":"SetAllowSetTitle","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetAllowSetTitle(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetAllowSetTitle stores the \"allow-set-title\" pane option as bool (tmux 3.5 or later). Read it with [PaneOptionValues.AllowSetTitle] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4574,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetAllowSetTitle","product":"core","slug":"tmux-pane-setallowsettitle"},{"id":"tmux.Window.SetAlternateScreen","name":"SetAlternateScreen","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetAlternateScreen(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetAlternateScreen stores the \"alternate-screen\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.AlternateScreen] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4584,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetAlternateScreen","product":"core","slug":"tmux-window-setalternatescreen"},{"id":"tmux.GlobalWindowScope.SetAlternateScreen","name":"SetAlternateScreen","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetAlternateScreen(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetAlternateScreen stores the \"alternate-screen\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.AlternateScreen] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4594,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetAlternateScreen","product":"core","slug":"tmux-globalwindowscope-setalternatescreen"},{"id":"tmux.Pane.SetAlternateScreen","name":"SetAlternateScreen","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetAlternateScreen(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetAlternateScreen stores the \"alternate-screen\" pane option as bool (tmux 3.2a or later). Read it with [PaneOptionValues.AlternateScreen] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4602,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetAlternateScreen","product":"core","slug":"tmux-pane-setalternatescreen"},{"id":"tmux.Session.SetAssumePasteTime","name":"SetAssumePasteTime","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetAssumePasteTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetAssumePasteTime stores the \"assume-paste-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.AssumePasteTime] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4612,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetAssumePasteTime","product":"core","slug":"tmux-session-setassumepastetime"},{"id":"tmux.GlobalSessionScope.SetAssumePasteTime","name":"SetAssumePasteTime","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetAssumePasteTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetAssumePasteTime stores the \"assume-paste-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.AssumePasteTime] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4626,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetAssumePasteTime","product":"core","slug":"tmux-globalsessionscope-setassumepastetime"},{"id":"tmux.Window.SetAutomaticRename","name":"SetAutomaticRename","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetAutomaticRename(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetAutomaticRename stores the \"automatic-rename\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.AutomaticRename] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4638,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetAutomaticRename","product":"core","slug":"tmux-window-setautomaticrename"},{"id":"tmux.GlobalWindowScope.SetAutomaticRename","name":"SetAutomaticRename","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetAutomaticRename(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetAutomaticRename stores the \"automatic-rename\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.AutomaticRename] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4648,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetAutomaticRename","product":"core","slug":"tmux-globalwindowscope-setautomaticrename"},{"id":"tmux.Window.SetAutomaticRenameFormat","name":"SetAutomaticRenameFormat","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetAutomaticRenameFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetAutomaticRenameFormat stores the \"automatic-rename-format\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.AutomaticRenameFormat] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4656,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetAutomaticRenameFormat","product":"core","slug":"tmux-window-setautomaticrenameformat"},{"id":"tmux.GlobalWindowScope.SetAutomaticRenameFormat","name":"SetAutomaticRenameFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetAutomaticRenameFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetAutomaticRenameFormat stores the \"automatic-rename-format\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.AutomaticRenameFormat] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4666,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetAutomaticRenameFormat","product":"core","slug":"tmux-globalwindowscope-setautomaticrenameformat"},{"id":"tmux.Server.SetBackspace","name":"SetBackspace","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetBackspace(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetBackspace stores the \"backspace\" server option as string (tmux 3.2a or later). Read it with [ServerOptionValues.Backspace] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4674,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetBackspace","product":"core","slug":"tmux-server-setbackspace"},{"id":"tmux.Session.SetBaseIndex","name":"SetBaseIndex","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetBaseIndex(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetBaseIndex stores the \"base-index\" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.BaseIndex] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4682,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetBaseIndex","product":"core","slug":"tmux-session-setbaseindex"},{"id":"tmux.GlobalSessionScope.SetBaseIndex","name":"SetBaseIndex","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetBaseIndex(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetBaseIndex stores the \"base-index\" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.BaseIndex] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4692,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetBaseIndex","product":"core","slug":"tmux-globalsessionscope-setbaseindex"},{"id":"tmux.Session.SetBellAction","name":"SetBellAction","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetBellAction(ctx context.Context, value BellAction) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"BellAction"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetBellAction stores the \"bell-action\" session option as BellAction (tmux 3.2a or later). Read it with [SessionOptionValues.BellAction] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4700,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetBellAction","product":"core","slug":"tmux-session-setbellaction"},{"id":"tmux.GlobalSessionScope.SetBellAction","name":"SetBellAction","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetBellAction(ctx context.Context, value BellAction) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"BellAction"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetBellAction stores the \"bell-action\" session option as BellAction (tmux 3.2a or later). Read it with [SessionOptionValues.BellAction] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4710,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetBellAction","product":"core","slug":"tmux-globalsessionscope-setbellaction"},{"id":"tmux.Server.SetBufferLimit","name":"SetBufferLimit","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetBufferLimit(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetBufferLimit stores the \"buffer-limit\" server option as int64 (tmux 3.2a or later). Read it with [ServerOptionValues.BufferLimit] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4718,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetBufferLimit","product":"core","slug":"tmux-server-setbufferlimit"},{"id":"tmux.Window.SetClockModeColour","name":"SetClockModeColour","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetClockModeColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetClockModeColour stores the \"clock-mode-colour\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.ClockModeColour] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4726,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetClockModeColour","product":"core","slug":"tmux-window-setclockmodecolour"},{"id":"tmux.GlobalWindowScope.SetClockModeColour","name":"SetClockModeColour","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetClockModeColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetClockModeColour stores the \"clock-mode-colour\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.ClockModeColour] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4736,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetClockModeColour","product":"core","slug":"tmux-globalwindowscope-setclockmodecolour"},{"id":"tmux.Window.SetClockModeStyle","name":"SetClockModeStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetClockModeStyle(ctx context.Context, value ClockModeStyle) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"ClockModeStyle"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetClockModeStyle stores the \"clock-mode-style\" window option as ClockModeStyle (tmux 3.2a or later). Read it with [WindowOptionValues.ClockModeStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4744,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetClockModeStyle","product":"core","slug":"tmux-window-setclockmodestyle"},{"id":"tmux.GlobalWindowScope.SetClockModeStyle","name":"SetClockModeStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetClockModeStyle(ctx context.Context, value ClockModeStyle) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"ClockModeStyle"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetClockModeStyle stores the \"clock-mode-style\" window option as ClockModeStyle (tmux 3.2a or later). Read it with [WindowOptionValues.ClockModeStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4754,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetClockModeStyle","product":"core","slug":"tmux-globalwindowscope-setclockmodestyle"},{"id":"tmux.Server.SetCopyCommand","name":"SetCopyCommand","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetCopyCommand(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetCopyCommand stores the \"copy-command\" server option as string (tmux 3.2a or later). Read it with [ServerOptionValues.CopyCommand] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4762,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetCopyCommand","product":"core","slug":"tmux-server-setcopycommand"},{"id":"tmux.Window.SetCopyModeCurrentLineNumberStyle","name":"SetCopyModeCurrentLineNumberStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCopyModeCurrentLineNumberStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCopyModeCurrentLineNumberStyle stores the \"copy-mode-current-line-number-style\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.CopyModeCurrentLineNumberStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4770,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCopyModeCurrentLineNumberStyle","product":"core","slug":"tmux-window-setcopymodecurrentlinenumberstyle"},{"id":"tmux.GlobalWindowScope.SetCopyModeCurrentLineNumberStyle","name":"SetCopyModeCurrentLineNumberStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCopyModeCurrentLineNumberStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCopyModeCurrentLineNumberStyle stores the \"copy-mode-current-line-number-style\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.CopyModeCurrentLineNumberStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4780,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCopyModeCurrentLineNumberStyle","product":"core","slug":"tmux-globalwindowscope-setcopymodecurrentlinenumberstyle"},{"id":"tmux.Window.SetCopyModeCurrentMatchStyle","name":"SetCopyModeCurrentMatchStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCopyModeCurrentMatchStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCopyModeCurrentMatchStyle stores the \"copy-mode-current-match-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.CopyModeCurrentMatchStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4788,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCopyModeCurrentMatchStyle","product":"core","slug":"tmux-window-setcopymodecurrentmatchstyle"},{"id":"tmux.GlobalWindowScope.SetCopyModeCurrentMatchStyle","name":"SetCopyModeCurrentMatchStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCopyModeCurrentMatchStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCopyModeCurrentMatchStyle stores the \"copy-mode-current-match-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.CopyModeCurrentMatchStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4798,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCopyModeCurrentMatchStyle","product":"core","slug":"tmux-globalwindowscope-setcopymodecurrentmatchstyle"},{"id":"tmux.Window.SetCopyModeLineNumberStyle","name":"SetCopyModeLineNumberStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCopyModeLineNumberStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCopyModeLineNumberStyle stores the \"copy-mode-line-number-style\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.CopyModeLineNumberStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4806,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCopyModeLineNumberStyle","product":"core","slug":"tmux-window-setcopymodelinenumberstyle"},{"id":"tmux.GlobalWindowScope.SetCopyModeLineNumberStyle","name":"SetCopyModeLineNumberStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCopyModeLineNumberStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCopyModeLineNumberStyle stores the \"copy-mode-line-number-style\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.CopyModeLineNumberStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4816,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCopyModeLineNumberStyle","product":"core","slug":"tmux-globalwindowscope-setcopymodelinenumberstyle"},{"id":"tmux.Window.SetCopyModeLineNumbers","name":"SetCopyModeLineNumbers","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCopyModeLineNumbers(ctx context.Context, value CopyModeLineNumbers) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"CopyModeLineNumbers"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCopyModeLineNumbers stores the \"copy-mode-line-numbers\" window option as CopyModeLineNumbers (tmux 3.7 or later). Read it with [WindowOptionValues.CopyModeLineNumbers] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4824,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCopyModeLineNumbers","product":"core","slug":"tmux-window-setcopymodelinenumbers"},{"id":"tmux.GlobalWindowScope.SetCopyModeLineNumbers","name":"SetCopyModeLineNumbers","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCopyModeLineNumbers(ctx context.Context, value CopyModeLineNumbers) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"CopyModeLineNumbers"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCopyModeLineNumbers stores the \"copy-mode-line-numbers\" window option as CopyModeLineNumbers (tmux 3.7 or later). Read it with [WindowOptionValues.CopyModeLineNumbers] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4834,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCopyModeLineNumbers","product":"core","slug":"tmux-globalwindowscope-setcopymodelinenumbers"},{"id":"tmux.Window.SetCopyModeMarkStyle","name":"SetCopyModeMarkStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCopyModeMarkStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCopyModeMarkStyle stores the \"copy-mode-mark-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.CopyModeMarkStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4842,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCopyModeMarkStyle","product":"core","slug":"tmux-window-setcopymodemarkstyle"},{"id":"tmux.GlobalWindowScope.SetCopyModeMarkStyle","name":"SetCopyModeMarkStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCopyModeMarkStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCopyModeMarkStyle stores the \"copy-mode-mark-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.CopyModeMarkStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4852,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCopyModeMarkStyle","product":"core","slug":"tmux-globalwindowscope-setcopymodemarkstyle"},{"id":"tmux.Window.SetCopyModeMatchStyle","name":"SetCopyModeMatchStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCopyModeMatchStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCopyModeMatchStyle stores the \"copy-mode-match-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.CopyModeMatchStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4860,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCopyModeMatchStyle","product":"core","slug":"tmux-window-setcopymodematchstyle"},{"id":"tmux.GlobalWindowScope.SetCopyModeMatchStyle","name":"SetCopyModeMatchStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCopyModeMatchStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCopyModeMatchStyle stores the \"copy-mode-match-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.CopyModeMatchStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4870,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCopyModeMatchStyle","product":"core","slug":"tmux-globalwindowscope-setcopymodematchstyle"},{"id":"tmux.Window.SetCopyModePositionFormat","name":"SetCopyModePositionFormat","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCopyModePositionFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCopyModePositionFormat stores the \"copy-mode-position-format\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.CopyModePositionFormat] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4878,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCopyModePositionFormat","product":"core","slug":"tmux-window-setcopymodepositionformat"},{"id":"tmux.GlobalWindowScope.SetCopyModePositionFormat","name":"SetCopyModePositionFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCopyModePositionFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCopyModePositionFormat stores the \"copy-mode-position-format\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.CopyModePositionFormat] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4888,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCopyModePositionFormat","product":"core","slug":"tmux-globalwindowscope-setcopymodepositionformat"},{"id":"tmux.Pane.SetCopyModePositionFormat","name":"SetCopyModePositionFormat","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetCopyModePositionFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetCopyModePositionFormat stores the \"copy-mode-position-format\" pane option as string (tmux 3.6 or later). Read it with [PaneOptionValues.CopyModePositionFormat] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4896,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetCopyModePositionFormat","product":"core","slug":"tmux-pane-setcopymodepositionformat"},{"id":"tmux.Window.SetCopyModePositionStyle","name":"SetCopyModePositionStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCopyModePositionStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCopyModePositionStyle stores the \"copy-mode-position-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.CopyModePositionStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4906,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCopyModePositionStyle","product":"core","slug":"tmux-window-setcopymodepositionstyle"},{"id":"tmux.GlobalWindowScope.SetCopyModePositionStyle","name":"SetCopyModePositionStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCopyModePositionStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCopyModePositionStyle stores the \"copy-mode-position-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.CopyModePositionStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4916,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCopyModePositionStyle","product":"core","slug":"tmux-globalwindowscope-setcopymodepositionstyle"},{"id":"tmux.Window.SetCopyModeSelectionStyle","name":"SetCopyModeSelectionStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCopyModeSelectionStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCopyModeSelectionStyle stores the \"copy-mode-selection-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.CopyModeSelectionStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4924,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCopyModeSelectionStyle","product":"core","slug":"tmux-window-setcopymodeselectionstyle"},{"id":"tmux.GlobalWindowScope.SetCopyModeSelectionStyle","name":"SetCopyModeSelectionStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCopyModeSelectionStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCopyModeSelectionStyle stores the \"copy-mode-selection-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.CopyModeSelectionStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4934,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCopyModeSelectionStyle","product":"core","slug":"tmux-globalwindowscope-setcopymodeselectionstyle"},{"id":"tmux.Window.SetCursorColour","name":"SetCursorColour","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCursorColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCursorColour stores the \"cursor-colour\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.CursorColour] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4942,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCursorColour","product":"core","slug":"tmux-window-setcursorcolour"},{"id":"tmux.GlobalWindowScope.SetCursorColour","name":"SetCursorColour","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCursorColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCursorColour stores the \"cursor-colour\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.CursorColour] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4952,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCursorColour","product":"core","slug":"tmux-globalwindowscope-setcursorcolour"},{"id":"tmux.Pane.SetCursorColour","name":"SetCursorColour","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetCursorColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetCursorColour stores the \"cursor-colour\" pane option as string (tmux 3.3 or later). Read it with [PaneOptionValues.CursorColour] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4960,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetCursorColour","product":"core","slug":"tmux-pane-setcursorcolour"},{"id":"tmux.Window.SetCursorStyle","name":"SetCursorStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetCursorStyle(ctx context.Context, value CursorStyle) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"CursorStyle"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetCursorStyle stores the \"cursor-style\" window option as CursorStyle (tmux 3.3 or later). Read it with [WindowOptionValues.CursorStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4970,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetCursorStyle","product":"core","slug":"tmux-window-setcursorstyle"},{"id":"tmux.GlobalWindowScope.SetCursorStyle","name":"SetCursorStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetCursorStyle(ctx context.Context, value CursorStyle) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"CursorStyle"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetCursorStyle stores the \"cursor-style\" window option as CursorStyle (tmux 3.3 or later). Read it with [WindowOptionValues.CursorStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4980,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetCursorStyle","product":"core","slug":"tmux-globalwindowscope-setcursorstyle"},{"id":"tmux.Pane.SetCursorStyle","name":"SetCursorStyle","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetCursorStyle(ctx context.Context, value CursorStyle) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"CursorStyle"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetCursorStyle stores the \"cursor-style\" pane option as CursorStyle (tmux 3.3 or later). Read it with [PaneOptionValues.CursorStyle] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4988,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetCursorStyle","product":"core","slug":"tmux-pane-setcursorstyle"},{"id":"tmux.Server.SetDefaultClientCommand","name":"SetDefaultClientCommand","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetDefaultClientCommand(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetDefaultClientCommand stores the \"default-client-command\" server option as string (tmux 3.6 or later). Read it with [ServerOptionValues.DefaultClientCommand] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":4998,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetDefaultClientCommand","product":"core","slug":"tmux-server-setdefaultclientcommand"},{"id":"tmux.Session.SetDefaultCommand","name":"SetDefaultCommand","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetDefaultCommand(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetDefaultCommand stores the \"default-command\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DefaultCommand] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5006,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetDefaultCommand","product":"core","slug":"tmux-session-setdefaultcommand"},{"id":"tmux.GlobalSessionScope.SetDefaultCommand","name":"SetDefaultCommand","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetDefaultCommand(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetDefaultCommand stores the \"default-command\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DefaultCommand] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5016,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetDefaultCommand","product":"core","slug":"tmux-globalsessionscope-setdefaultcommand"},{"id":"tmux.Session.SetDefaultShell","name":"SetDefaultShell","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetDefaultShell(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetDefaultShell stores the \"default-shell\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DefaultShell] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5024,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetDefaultShell","product":"core","slug":"tmux-session-setdefaultshell"},{"id":"tmux.GlobalSessionScope.SetDefaultShell","name":"SetDefaultShell","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetDefaultShell(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetDefaultShell stores the \"default-shell\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DefaultShell] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5034,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetDefaultShell","product":"core","slug":"tmux-globalsessionscope-setdefaultshell"},{"id":"tmux.Session.SetDefaultSize","name":"SetDefaultSize","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetDefaultSize(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetDefaultSize stores the \"default-size\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DefaultSize] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5042,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetDefaultSize","product":"core","slug":"tmux-session-setdefaultsize"},{"id":"tmux.GlobalSessionScope.SetDefaultSize","name":"SetDefaultSize","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetDefaultSize(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetDefaultSize stores the \"default-size\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DefaultSize] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5052,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetDefaultSize","product":"core","slug":"tmux-globalsessionscope-setdefaultsize"},{"id":"tmux.Server.SetDefaultTerminal","name":"SetDefaultTerminal","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetDefaultTerminal(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetDefaultTerminal stores the \"default-terminal\" server option as string (tmux 3.2a or later). Read it with [ServerOptionValues.DefaultTerminal] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5060,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetDefaultTerminal","product":"core","slug":"tmux-server-setdefaultterminal"},{"id":"tmux.Session.SetDestroyUnattached","name":"SetDestroyUnattached","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetDestroyUnattached(ctx context.Context, value DestroyUnattached) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"DestroyUnattached"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetDestroyUnattached stores the \"destroy-unattached\" session option as DestroyUnattached (tmux 3.2a or later). Read it with [SessionOptionValues.DestroyUnattached] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5068,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetDestroyUnattached","product":"core","slug":"tmux-session-setdestroyunattached"},{"id":"tmux.GlobalSessionScope.SetDestroyUnattached","name":"SetDestroyUnattached","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetDestroyUnattached(ctx context.Context, value DestroyUnattached) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"DestroyUnattached"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetDestroyUnattached stores the \"destroy-unattached\" session option as DestroyUnattached (tmux 3.2a or later). Read it with [SessionOptionValues.DestroyUnattached] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5078,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetDestroyUnattached","product":"core","slug":"tmux-globalsessionscope-setdestroyunattached"},{"id":"tmux.Session.SetDetachOnDestroy","name":"SetDetachOnDestroy","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetDetachOnDestroy(ctx context.Context, value DetachOnDestroy) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"DetachOnDestroy"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetDetachOnDestroy stores the \"detach-on-destroy\" session option as DetachOnDestroy (tmux 3.2a or later). Read it with [SessionOptionValues.DetachOnDestroy] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5086,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetDetachOnDestroy","product":"core","slug":"tmux-session-setdetachondestroy"},{"id":"tmux.GlobalSessionScope.SetDetachOnDestroy","name":"SetDetachOnDestroy","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetDetachOnDestroy(ctx context.Context, value DetachOnDestroy) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"DetachOnDestroy"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetDetachOnDestroy stores the \"detach-on-destroy\" session option as DetachOnDestroy (tmux 3.2a or later). Read it with [SessionOptionValues.DetachOnDestroy] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5096,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetDetachOnDestroy","product":"core","slug":"tmux-globalsessionscope-setdetachondestroy"},{"id":"tmux.Session.SetDisplayPanesActiveColour","name":"SetDisplayPanesActiveColour","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetDisplayPanesActiveColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetDisplayPanesActiveColour stores the \"display-panes-active-colour\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayPanesActiveColour] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetDisplayPanesActiveColour","product":"core","slug":"tmux-session-setdisplaypanesactivecolour"},{"id":"tmux.GlobalSessionScope.SetDisplayPanesActiveColour","name":"SetDisplayPanesActiveColour","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetDisplayPanesActiveColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetDisplayPanesActiveColour stores the \"display-panes-active-colour\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayPanesActiveColour] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5114,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetDisplayPanesActiveColour","product":"core","slug":"tmux-globalsessionscope-setdisplaypanesactivecolour"},{"id":"tmux.Session.SetDisplayPanesColour","name":"SetDisplayPanesColour","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetDisplayPanesColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetDisplayPanesColour stores the \"display-panes-colour\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayPanesColour] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5122,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetDisplayPanesColour","product":"core","slug":"tmux-session-setdisplaypanescolour"},{"id":"tmux.GlobalSessionScope.SetDisplayPanesColour","name":"SetDisplayPanesColour","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetDisplayPanesColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetDisplayPanesColour stores the \"display-panes-colour\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayPanesColour] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5132,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetDisplayPanesColour","product":"core","slug":"tmux-globalsessionscope-setdisplaypanescolour"},{"id":"tmux.Session.SetDisplayPanesTime","name":"SetDisplayPanesTime","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetDisplayPanesTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetDisplayPanesTime stores the \"display-panes-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayPanesTime] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5140,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetDisplayPanesTime","product":"core","slug":"tmux-session-setdisplaypanestime"},{"id":"tmux.GlobalSessionScope.SetDisplayPanesTime","name":"SetDisplayPanesTime","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetDisplayPanesTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetDisplayPanesTime stores the \"display-panes-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayPanesTime] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5154,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetDisplayPanesTime","product":"core","slug":"tmux-globalsessionscope-setdisplaypanestime"},{"id":"tmux.Session.SetDisplayTime","name":"SetDisplayTime","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetDisplayTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetDisplayTime stores the \"display-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayTime] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5166,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetDisplayTime","product":"core","slug":"tmux-session-setdisplaytime"},{"id":"tmux.GlobalSessionScope.SetDisplayTime","name":"SetDisplayTime","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetDisplayTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetDisplayTime stores the \"display-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.DisplayTime] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5180,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetDisplayTime","product":"core","slug":"tmux-globalsessionscope-setdisplaytime"},{"id":"tmux.Server.SetEditor","name":"SetEditor","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetEditor(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetEditor stores the \"editor\" server option as string (tmux 3.2a or later). Read it with [ServerOptionValues.Editor] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5192,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetEditor","product":"core","slug":"tmux-server-seteditor"},{"id":"tmux.Server.SetEscapeTime","name":"SetEscapeTime","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetEscapeTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetEscapeTime stores the \"escape-time\" server option as time.Duration (tmux 3.2a or later). Read it with [ServerOptionValues.EscapeTime] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5200,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetEscapeTime","product":"core","slug":"tmux-server-setescapetime"},{"id":"tmux.Server.SetExitEmpty","name":"SetExitEmpty","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetExitEmpty(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetExitEmpty stores the \"exit-empty\" server option as bool (tmux 3.2a or later). Read it with [ServerOptionValues.ExitEmpty] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5212,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetExitEmpty","product":"core","slug":"tmux-server-setexitempty"},{"id":"tmux.Server.SetExitUnattached","name":"SetExitUnattached","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetExitUnattached(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetExitUnattached stores the \"exit-unattached\" server option as bool (tmux 3.2a or later). Read it with [ServerOptionValues.ExitUnattached] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5220,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetExitUnattached","product":"core","slug":"tmux-server-setexitunattached"},{"id":"tmux.Server.SetExtendedKeys","name":"SetExtendedKeys","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetExtendedKeys(ctx context.Context, value ExtendedKeys) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"ExtendedKeys"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetExtendedKeys stores the \"extended-keys\" server option as ExtendedKeys (tmux 3.2a or later). Read it with [ServerOptionValues.ExtendedKeys] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5228,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetExtendedKeys","product":"core","slug":"tmux-server-setextendedkeys"},{"id":"tmux.Server.SetExtendedKeysFormat","name":"SetExtendedKeysFormat","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetExtendedKeysFormat(ctx context.Context, value ExtendedKeysFormat) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"ExtendedKeysFormat"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetExtendedKeysFormat stores the \"extended-keys-format\" server option as ExtendedKeysFormat (tmux 3.5 or later). Read it with [ServerOptionValues.ExtendedKeysFormat] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5236,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetExtendedKeysFormat","product":"core","slug":"tmux-server-setextendedkeysformat"},{"id":"tmux.Window.SetFillCharacter","name":"SetFillCharacter","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetFillCharacter(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetFillCharacter stores the \"fill-character\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.FillCharacter] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5244,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetFillCharacter","product":"core","slug":"tmux-window-setfillcharacter"},{"id":"tmux.GlobalWindowScope.SetFillCharacter","name":"SetFillCharacter","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetFillCharacter(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetFillCharacter stores the \"fill-character\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.FillCharacter] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5254,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetFillCharacter","product":"core","slug":"tmux-globalwindowscope-setfillcharacter"},{"id":"tmux.Server.SetFocusEvents","name":"SetFocusEvents","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetFocusEvents(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetFocusEvents stores the \"focus-events\" server option as bool (tmux 3.2a or later). Read it with [ServerOptionValues.FocusEvents] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5262,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetFocusEvents","product":"core","slug":"tmux-server-setfocusevents"},{"id":"tmux.Session.SetFocusFollowsMouse","name":"SetFocusFollowsMouse","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetFocusFollowsMouse(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetFocusFollowsMouse stores the \"focus-follows-mouse\" session option as bool (tmux 3.7 or later). Read it with [SessionOptionValues.FocusFollowsMouse] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5270,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetFocusFollowsMouse","product":"core","slug":"tmux-session-setfocusfollowsmouse"},{"id":"tmux.GlobalSessionScope.SetFocusFollowsMouse","name":"SetFocusFollowsMouse","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetFocusFollowsMouse(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetFocusFollowsMouse stores the \"focus-follows-mouse\" session option as bool (tmux 3.7 or later). Read it with [SessionOptionValues.FocusFollowsMouse] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5280,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetFocusFollowsMouse","product":"core","slug":"tmux-globalsessionscope-setfocusfollowsmouse"},{"id":"tmux.Server.SetGetClipboard","name":"SetGetClipboard","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetGetClipboard(ctx context.Context, value GetClipboard) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"GetClipboard"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetGetClipboard stores the \"get-clipboard\" server option as GetClipboard (tmux 3.7 or later). Read it with [ServerOptionValues.GetClipboard] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5288,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetGetClipboard","product":"core","slug":"tmux-server-setgetclipboard"},{"id":"tmux.Server.SetHistoryFile","name":"SetHistoryFile","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetHistoryFile(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetHistoryFile stores the \"history-file\" server option as string (tmux 3.2a or later). Read it with [ServerOptionValues.HistoryFile] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5296,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetHistoryFile","product":"core","slug":"tmux-server-sethistoryfile"},{"id":"tmux.Session.SetHistoryLimit","name":"SetHistoryLimit","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetHistoryLimit(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetHistoryLimit stores the \"history-limit\" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.HistoryLimit] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5304,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetHistoryLimit","product":"core","slug":"tmux-session-sethistorylimit"},{"id":"tmux.GlobalSessionScope.SetHistoryLimit","name":"SetHistoryLimit","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetHistoryLimit(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetHistoryLimit stores the \"history-limit\" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.HistoryLimit] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5314,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetHistoryLimit","product":"core","slug":"tmux-globalsessionscope-sethistorylimit"},{"id":"tmux.Session.SetInitialRepeatTime","name":"SetInitialRepeatTime","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetInitialRepeatTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetInitialRepeatTime stores the \"initial-repeat-time\" session option as time.Duration (tmux 3.6 or later). Read it with [SessionOptionValues.InitialRepeatTime] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5322,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetInitialRepeatTime","product":"core","slug":"tmux-session-setinitialrepeattime"},{"id":"tmux.GlobalSessionScope.SetInitialRepeatTime","name":"SetInitialRepeatTime","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetInitialRepeatTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetInitialRepeatTime stores the \"initial-repeat-time\" session option as time.Duration (tmux 3.6 or later). Read it with [SessionOptionValues.InitialRepeatTime] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5336,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetInitialRepeatTime","product":"core","slug":"tmux-globalsessionscope-setinitialrepeattime"},{"id":"tmux.Server.SetInputBufferSize","name":"SetInputBufferSize","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetInputBufferSize(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetInputBufferSize stores the \"input-buffer-size\" server option as int64 (tmux 3.6 or later). Read it with [ServerOptionValues.InputBufferSize] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5348,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetInputBufferSize","product":"core","slug":"tmux-server-setinputbuffersize"},{"id":"tmux.Session.SetKeyTable","name":"SetKeyTable","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetKeyTable(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetKeyTable stores the \"key-table\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.KeyTable] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5356,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetKeyTable","product":"core","slug":"tmux-session-setkeytable"},{"id":"tmux.GlobalSessionScope.SetKeyTable","name":"SetKeyTable","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetKeyTable(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetKeyTable stores the \"key-table\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.KeyTable] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5366,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetKeyTable","product":"core","slug":"tmux-globalsessionscope-setkeytable"},{"id":"tmux.Session.SetLockAfterTime","name":"SetLockAfterTime","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetLockAfterTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetLockAfterTime stores the \"lock-after-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.LockAfterTime] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5374,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetLockAfterTime","product":"core","slug":"tmux-session-setlockaftertime"},{"id":"tmux.GlobalSessionScope.SetLockAfterTime","name":"SetLockAfterTime","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetLockAfterTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetLockAfterTime stores the \"lock-after-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.LockAfterTime] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5388,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetLockAfterTime","product":"core","slug":"tmux-globalsessionscope-setlockaftertime"},{"id":"tmux.Session.SetLockCommand","name":"SetLockCommand","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetLockCommand(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetLockCommand stores the \"lock-command\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.LockCommand] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5400,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetLockCommand","product":"core","slug":"tmux-session-setlockcommand"},{"id":"tmux.GlobalSessionScope.SetLockCommand","name":"SetLockCommand","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetLockCommand(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetLockCommand stores the \"lock-command\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.LockCommand] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5410,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetLockCommand","product":"core","slug":"tmux-globalsessionscope-setlockcommand"},{"id":"tmux.Window.SetMainPaneHeight","name":"SetMainPaneHeight","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetMainPaneHeight(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetMainPaneHeight stores the \"main-pane-height\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.MainPaneHeight] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5418,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetMainPaneHeight","product":"core","slug":"tmux-window-setmainpaneheight"},{"id":"tmux.GlobalWindowScope.SetMainPaneHeight","name":"SetMainPaneHeight","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetMainPaneHeight(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetMainPaneHeight stores the \"main-pane-height\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.MainPaneHeight] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5428,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetMainPaneHeight","product":"core","slug":"tmux-globalwindowscope-setmainpaneheight"},{"id":"tmux.Window.SetMainPaneWidth","name":"SetMainPaneWidth","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetMainPaneWidth(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetMainPaneWidth stores the \"main-pane-width\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.MainPaneWidth] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5436,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetMainPaneWidth","product":"core","slug":"tmux-window-setmainpanewidth"},{"id":"tmux.GlobalWindowScope.SetMainPaneWidth","name":"SetMainPaneWidth","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetMainPaneWidth(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetMainPaneWidth stores the \"main-pane-width\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.MainPaneWidth] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5446,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetMainPaneWidth","product":"core","slug":"tmux-globalwindowscope-setmainpanewidth"},{"id":"tmux.Window.SetMenuBorderLines","name":"SetMenuBorderLines","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetMenuBorderLines(ctx context.Context, value MenuBorderLines) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"MenuBorderLines"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetMenuBorderLines stores the \"menu-border-lines\" window option as MenuBorderLines (tmux 3.4 or later). Read it with [WindowOptionValues.MenuBorderLines] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5454,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetMenuBorderLines","product":"core","slug":"tmux-window-setmenuborderlines"},{"id":"tmux.GlobalWindowScope.SetMenuBorderLines","name":"SetMenuBorderLines","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetMenuBorderLines(ctx context.Context, value MenuBorderLines) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"MenuBorderLines"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetMenuBorderLines stores the \"menu-border-lines\" window option as MenuBorderLines (tmux 3.4 or later). Read it with [WindowOptionValues.MenuBorderLines] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5464,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetMenuBorderLines","product":"core","slug":"tmux-globalwindowscope-setmenuborderlines"},{"id":"tmux.Window.SetMenuBorderStyle","name":"SetMenuBorderStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetMenuBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetMenuBorderStyle stores the \"menu-border-style\" window option as string (tmux 3.4 or later). Read it with [WindowOptionValues.MenuBorderStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5472,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetMenuBorderStyle","product":"core","slug":"tmux-window-setmenuborderstyle"},{"id":"tmux.GlobalWindowScope.SetMenuBorderStyle","name":"SetMenuBorderStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetMenuBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetMenuBorderStyle stores the \"menu-border-style\" window option as string (tmux 3.4 or later). Read it with [WindowOptionValues.MenuBorderStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5482,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetMenuBorderStyle","product":"core","slug":"tmux-globalwindowscope-setmenuborderstyle"},{"id":"tmux.Window.SetMenuSelectedStyle","name":"SetMenuSelectedStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetMenuSelectedStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetMenuSelectedStyle stores the \"menu-selected-style\" window option as string (tmux 3.4 or later). Read it with [WindowOptionValues.MenuSelectedStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5490,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetMenuSelectedStyle","product":"core","slug":"tmux-window-setmenuselectedstyle"},{"id":"tmux.GlobalWindowScope.SetMenuSelectedStyle","name":"SetMenuSelectedStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetMenuSelectedStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetMenuSelectedStyle stores the \"menu-selected-style\" window option as string (tmux 3.4 or later). Read it with [WindowOptionValues.MenuSelectedStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5500,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetMenuSelectedStyle","product":"core","slug":"tmux-globalwindowscope-setmenuselectedstyle"},{"id":"tmux.Window.SetMenuStyle","name":"SetMenuStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetMenuStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetMenuStyle stores the \"menu-style\" window option as string (tmux 3.4 or later). Read it with [WindowOptionValues.MenuStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5508,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetMenuStyle","product":"core","slug":"tmux-window-setmenustyle"},{"id":"tmux.GlobalWindowScope.SetMenuStyle","name":"SetMenuStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetMenuStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetMenuStyle stores the \"menu-style\" window option as string (tmux 3.4 or later). Read it with [WindowOptionValues.MenuStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5518,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetMenuStyle","product":"core","slug":"tmux-globalwindowscope-setmenustyle"},{"id":"tmux.Session.SetMessageCommandStyle","name":"SetMessageCommandStyle","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetMessageCommandStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetMessageCommandStyle stores the \"message-command-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.MessageCommandStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5526,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetMessageCommandStyle","product":"core","slug":"tmux-session-setmessagecommandstyle"},{"id":"tmux.GlobalSessionScope.SetMessageCommandStyle","name":"SetMessageCommandStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetMessageCommandStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetMessageCommandStyle stores the \"message-command-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.MessageCommandStyle] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5536,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetMessageCommandStyle","product":"core","slug":"tmux-globalsessionscope-setmessagecommandstyle"},{"id":"tmux.Session.SetMessageFormat","name":"SetMessageFormat","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetMessageFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetMessageFormat stores the \"message-format\" session option as string (tmux 3.7 or later). Read it with [SessionOptionValues.MessageFormat] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5544,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetMessageFormat","product":"core","slug":"tmux-session-setmessageformat"},{"id":"tmux.GlobalSessionScope.SetMessageFormat","name":"SetMessageFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetMessageFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetMessageFormat stores the \"message-format\" session option as string (tmux 3.7 or later). Read it with [SessionOptionValues.MessageFormat] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5554,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetMessageFormat","product":"core","slug":"tmux-globalsessionscope-setmessageformat"},{"id":"tmux.Server.SetMessageLimit","name":"SetMessageLimit","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetMessageLimit(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetMessageLimit stores the \"message-limit\" server option as int64 (tmux 3.2a or later). Read it with [ServerOptionValues.MessageLimit] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5562,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetMessageLimit","product":"core","slug":"tmux-server-setmessagelimit"},{"id":"tmux.Session.SetMessageLine","name":"SetMessageLine","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetMessageLine(ctx context.Context, value MessageLine) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"MessageLine"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetMessageLine stores the \"message-line\" session option as MessageLine (tmux 3.4 or later). Read it with [SessionOptionValues.MessageLine] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5570,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetMessageLine","product":"core","slug":"tmux-session-setmessageline"},{"id":"tmux.GlobalSessionScope.SetMessageLine","name":"SetMessageLine","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetMessageLine(ctx context.Context, value MessageLine) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"MessageLine"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetMessageLine stores the \"message-line\" session option as MessageLine (tmux 3.4 or later). Read it with [SessionOptionValues.MessageLine] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5580,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetMessageLine","product":"core","slug":"tmux-globalsessionscope-setmessageline"},{"id":"tmux.Session.SetMessageStyle","name":"SetMessageStyle","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetMessageStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetMessageStyle stores the \"message-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.MessageStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5588,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetMessageStyle","product":"core","slug":"tmux-session-setmessagestyle"},{"id":"tmux.GlobalSessionScope.SetMessageStyle","name":"SetMessageStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetMessageStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetMessageStyle stores the \"message-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.MessageStyle] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5598,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetMessageStyle","product":"core","slug":"tmux-globalsessionscope-setmessagestyle"},{"id":"tmux.Window.SetModeKeys","name":"SetModeKeys","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetModeKeys(ctx context.Context, value ModeKeys) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"ModeKeys"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetModeKeys stores the \"mode-keys\" window option as ModeKeys (tmux 3.2a or later). Read it with [WindowOptionValues.ModeKeys] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5606,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetModeKeys","product":"core","slug":"tmux-window-setmodekeys"},{"id":"tmux.GlobalWindowScope.SetModeKeys","name":"SetModeKeys","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetModeKeys(ctx context.Context, value ModeKeys) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"ModeKeys"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetModeKeys stores the \"mode-keys\" window option as ModeKeys (tmux 3.2a or later). Read it with [WindowOptionValues.ModeKeys] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5616,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetModeKeys","product":"core","slug":"tmux-globalwindowscope-setmodekeys"},{"id":"tmux.Window.SetModeStyle","name":"SetModeStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetModeStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetModeStyle stores the \"mode-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.ModeStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5624,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetModeStyle","product":"core","slug":"tmux-window-setmodestyle"},{"id":"tmux.GlobalWindowScope.SetModeStyle","name":"SetModeStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetModeStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetModeStyle stores the \"mode-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.ModeStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5634,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetModeStyle","product":"core","slug":"tmux-globalwindowscope-setmodestyle"},{"id":"tmux.Window.SetMonitorActivity","name":"SetMonitorActivity","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetMonitorActivity(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetMonitorActivity stores the \"monitor-activity\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.MonitorActivity] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5642,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetMonitorActivity","product":"core","slug":"tmux-window-setmonitoractivity"},{"id":"tmux.GlobalWindowScope.SetMonitorActivity","name":"SetMonitorActivity","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetMonitorActivity(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetMonitorActivity stores the \"monitor-activity\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.MonitorActivity] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5652,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetMonitorActivity","product":"core","slug":"tmux-globalwindowscope-setmonitoractivity"},{"id":"tmux.Window.SetMonitorBell","name":"SetMonitorBell","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetMonitorBell(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetMonitorBell stores the \"monitor-bell\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.MonitorBell] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5660,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetMonitorBell","product":"core","slug":"tmux-window-setmonitorbell"},{"id":"tmux.GlobalWindowScope.SetMonitorBell","name":"SetMonitorBell","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetMonitorBell(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetMonitorBell stores the \"monitor-bell\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.MonitorBell] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5670,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetMonitorBell","product":"core","slug":"tmux-globalwindowscope-setmonitorbell"},{"id":"tmux.Window.SetMonitorSilence","name":"SetMonitorSilence","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetMonitorSilence(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetMonitorSilence stores the \"monitor-silence\" window option as int64 (tmux 3.2a or later). Read it with [WindowOptionValues.MonitorSilence] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5678,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetMonitorSilence","product":"core","slug":"tmux-window-setmonitorsilence"},{"id":"tmux.GlobalWindowScope.SetMonitorSilence","name":"SetMonitorSilence","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetMonitorSilence(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetMonitorSilence stores the \"monitor-silence\" window option as int64 (tmux 3.2a or later). Read it with [WindowOptionValues.MonitorSilence] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5688,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetMonitorSilence","product":"core","slug":"tmux-globalwindowscope-setmonitorsilence"},{"id":"tmux.Session.SetMouse","name":"SetMouse","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetMouse(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetMouse stores the \"mouse\" session option as bool (tmux 3.2a or later). Read it with [SessionOptionValues.Mouse] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5696,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetMouse","product":"core","slug":"tmux-session-setmouse"},{"id":"tmux.GlobalSessionScope.SetMouse","name":"SetMouse","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetMouse(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetMouse stores the \"mouse\" session option as bool (tmux 3.2a or later). Read it with [SessionOptionValues.Mouse] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5706,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetMouse","product":"core","slug":"tmux-globalsessionscope-setmouse"},{"id":"tmux.Window.SetOtherPaneHeight","name":"SetOtherPaneHeight","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetOtherPaneHeight(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetOtherPaneHeight stores the \"other-pane-height\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.OtherPaneHeight] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5714,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetOtherPaneHeight","product":"core","slug":"tmux-window-setotherpaneheight"},{"id":"tmux.GlobalWindowScope.SetOtherPaneHeight","name":"SetOtherPaneHeight","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetOtherPaneHeight(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetOtherPaneHeight stores the \"other-pane-height\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.OtherPaneHeight] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5724,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetOtherPaneHeight","product":"core","slug":"tmux-globalwindowscope-setotherpaneheight"},{"id":"tmux.Window.SetOtherPaneWidth","name":"SetOtherPaneWidth","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetOtherPaneWidth(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetOtherPaneWidth stores the \"other-pane-width\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.OtherPaneWidth] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5732,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetOtherPaneWidth","product":"core","slug":"tmux-window-setotherpanewidth"},{"id":"tmux.GlobalWindowScope.SetOtherPaneWidth","name":"SetOtherPaneWidth","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetOtherPaneWidth(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetOtherPaneWidth stores the \"other-pane-width\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.OtherPaneWidth] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5742,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetOtherPaneWidth","product":"core","slug":"tmux-globalwindowscope-setotherpanewidth"},{"id":"tmux.Window.SetPaneActiveBorderStyle","name":"SetPaneActiveBorderStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneActiveBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneActiveBorderStyle stores the \"pane-active-border-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.PaneActiveBorderStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5750,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneActiveBorderStyle","product":"core","slug":"tmux-window-setpaneactiveborderstyle"},{"id":"tmux.GlobalWindowScope.SetPaneActiveBorderStyle","name":"SetPaneActiveBorderStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneActiveBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneActiveBorderStyle stores the \"pane-active-border-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.PaneActiveBorderStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5760,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneActiveBorderStyle","product":"core","slug":"tmux-globalwindowscope-setpaneactiveborderstyle"},{"id":"tmux.Pane.SetPaneActiveBorderStyle","name":"SetPaneActiveBorderStyle","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetPaneActiveBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetPaneActiveBorderStyle stores the \"pane-active-border-style\" pane option as string (tmux 3.7 or later). Read it with [PaneOptionValues.PaneActiveBorderStyle] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5768,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetPaneActiveBorderStyle","product":"core","slug":"tmux-pane-setpaneactiveborderstyle"},{"id":"tmux.Window.SetPaneBaseIndex","name":"SetPaneBaseIndex","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneBaseIndex(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneBaseIndex stores the \"pane-base-index\" window option as int64 (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBaseIndex] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5778,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneBaseIndex","product":"core","slug":"tmux-window-setpanebaseindex"},{"id":"tmux.GlobalWindowScope.SetPaneBaseIndex","name":"SetPaneBaseIndex","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneBaseIndex(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneBaseIndex stores the \"pane-base-index\" window option as int64 (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBaseIndex] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5788,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneBaseIndex","product":"core","slug":"tmux-globalwindowscope-setpanebaseindex"},{"id":"tmux.Window.SetPaneBorderFormat","name":"SetPaneBorderFormat","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneBorderFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneBorderFormat stores the \"pane-border-format\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBorderFormat] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5796,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneBorderFormat","product":"core","slug":"tmux-window-setpaneborderformat"},{"id":"tmux.GlobalWindowScope.SetPaneBorderFormat","name":"SetPaneBorderFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneBorderFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneBorderFormat stores the \"pane-border-format\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBorderFormat] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5806,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneBorderFormat","product":"core","slug":"tmux-globalwindowscope-setpaneborderformat"},{"id":"tmux.Pane.SetPaneBorderFormat","name":"SetPaneBorderFormat","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetPaneBorderFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetPaneBorderFormat stores the \"pane-border-format\" pane option as string (tmux 3.3 or later). Read it with [PaneOptionValues.PaneBorderFormat] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5814,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetPaneBorderFormat","product":"core","slug":"tmux-pane-setpaneborderformat"},{"id":"tmux.Window.SetPaneBorderIndicators","name":"SetPaneBorderIndicators","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneBorderIndicators(ctx context.Context, value PaneBorderIndicators) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneBorderIndicators"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneBorderIndicators stores the \"pane-border-indicators\" window option as PaneBorderIndicators (tmux 3.3 or later). Read it with [WindowOptionValues.PaneBorderIndicators] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5824,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneBorderIndicators","product":"core","slug":"tmux-window-setpaneborderindicators"},{"id":"tmux.GlobalWindowScope.SetPaneBorderIndicators","name":"SetPaneBorderIndicators","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneBorderIndicators(ctx context.Context, value PaneBorderIndicators) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneBorderIndicators"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneBorderIndicators stores the \"pane-border-indicators\" window option as PaneBorderIndicators (tmux 3.3 or later). Read it with [WindowOptionValues.PaneBorderIndicators] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5834,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneBorderIndicators","product":"core","slug":"tmux-globalwindowscope-setpaneborderindicators"},{"id":"tmux.Window.SetPaneBorderLines","name":"SetPaneBorderLines","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneBorderLines(ctx context.Context, value PaneBorderLines) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneBorderLines"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneBorderLines stores the \"pane-border-lines\" window option as PaneBorderLines (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBorderLines] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5842,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneBorderLines","product":"core","slug":"tmux-window-setpaneborderlines"},{"id":"tmux.GlobalWindowScope.SetPaneBorderLines","name":"SetPaneBorderLines","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneBorderLines(ctx context.Context, value PaneBorderLines) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneBorderLines"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneBorderLines stores the \"pane-border-lines\" window option as PaneBorderLines (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBorderLines] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5852,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneBorderLines","product":"core","slug":"tmux-globalwindowscope-setpaneborderlines"},{"id":"tmux.Window.SetPaneBorderStatus","name":"SetPaneBorderStatus","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneBorderStatus(ctx context.Context, value PaneBorderStatus) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneBorderStatus"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneBorderStatus stores the \"pane-border-status\" window option as PaneBorderStatus (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBorderStatus] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5860,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneBorderStatus","product":"core","slug":"tmux-window-setpaneborderstatus"},{"id":"tmux.GlobalWindowScope.SetPaneBorderStatus","name":"SetPaneBorderStatus","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneBorderStatus(ctx context.Context, value PaneBorderStatus) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneBorderStatus"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneBorderStatus stores the \"pane-border-status\" window option as PaneBorderStatus (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBorderStatus] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5870,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneBorderStatus","product":"core","slug":"tmux-globalwindowscope-setpaneborderstatus"},{"id":"tmux.Window.SetPaneBorderStyle","name":"SetPaneBorderStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneBorderStyle stores the \"pane-border-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBorderStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5878,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneBorderStyle","product":"core","slug":"tmux-window-setpaneborderstyle"},{"id":"tmux.GlobalWindowScope.SetPaneBorderStyle","name":"SetPaneBorderStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneBorderStyle stores the \"pane-border-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.PaneBorderStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5888,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneBorderStyle","product":"core","slug":"tmux-globalwindowscope-setpaneborderstyle"},{"id":"tmux.Pane.SetPaneBorderStyle","name":"SetPaneBorderStyle","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetPaneBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetPaneBorderStyle stores the \"pane-border-style\" pane option as string (tmux 3.7 or later). Read it with [PaneOptionValues.PaneBorderStyle] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5896,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetPaneBorderStyle","product":"core","slug":"tmux-pane-setpaneborderstyle"},{"id":"tmux.Window.SetPaneScrollbars","name":"SetPaneScrollbars","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneScrollbars(ctx context.Context, value PaneScrollbars) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneScrollbars"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneScrollbars stores the \"pane-scrollbars\" window option as PaneScrollbars (tmux 3.6 or later). Read it with [WindowOptionValues.PaneScrollbars] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5906,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneScrollbars","product":"core","slug":"tmux-window-setpanescrollbars"},{"id":"tmux.GlobalWindowScope.SetPaneScrollbars","name":"SetPaneScrollbars","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneScrollbars(ctx context.Context, value PaneScrollbars) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneScrollbars"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneScrollbars stores the \"pane-scrollbars\" window option as PaneScrollbars (tmux 3.6 or later). Read it with [WindowOptionValues.PaneScrollbars] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5916,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneScrollbars","product":"core","slug":"tmux-globalwindowscope-setpanescrollbars"},{"id":"tmux.Window.SetPaneScrollbarsPosition","name":"SetPaneScrollbarsPosition","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneScrollbarsPosition(ctx context.Context, value PaneScrollbarsPosition) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneScrollbarsPosition"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneScrollbarsPosition stores the \"pane-scrollbars-position\" window option as PaneScrollbarsPosition (tmux 3.6 or later). Read it with [WindowOptionValues.PaneScrollbarsPosition] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5924,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneScrollbarsPosition","product":"core","slug":"tmux-window-setpanescrollbarsposition"},{"id":"tmux.GlobalWindowScope.SetPaneScrollbarsPosition","name":"SetPaneScrollbarsPosition","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneScrollbarsPosition(ctx context.Context, value PaneScrollbarsPosition) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PaneScrollbarsPosition"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneScrollbarsPosition stores the \"pane-scrollbars-position\" window option as PaneScrollbarsPosition (tmux 3.6 or later). Read it with [WindowOptionValues.PaneScrollbarsPosition] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5934,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneScrollbarsPosition","product":"core","slug":"tmux-globalwindowscope-setpanescrollbarsposition"},{"id":"tmux.Window.SetPaneScrollbarsStyle","name":"SetPaneScrollbarsStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneScrollbarsStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneScrollbarsStyle stores the \"pane-scrollbars-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.PaneScrollbarsStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5942,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneScrollbarsStyle","product":"core","slug":"tmux-window-setpanescrollbarsstyle"},{"id":"tmux.GlobalWindowScope.SetPaneScrollbarsStyle","name":"SetPaneScrollbarsStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneScrollbarsStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneScrollbarsStyle stores the \"pane-scrollbars-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.PaneScrollbarsStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5952,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneScrollbarsStyle","product":"core","slug":"tmux-globalwindowscope-setpanescrollbarsstyle"},{"id":"tmux.Pane.SetPaneScrollbarsStyle","name":"SetPaneScrollbarsStyle","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetPaneScrollbarsStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetPaneScrollbarsStyle stores the \"pane-scrollbars-style\" pane option as string (tmux 3.6 or later). Read it with [PaneOptionValues.PaneScrollbarsStyle] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5960,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetPaneScrollbarsStyle","product":"core","slug":"tmux-pane-setpanescrollbarsstyle"},{"id":"tmux.Window.SetPaneStatusCurrentStyle","name":"SetPaneStatusCurrentStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneStatusCurrentStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneStatusCurrentStyle stores the \"pane-status-current-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.PaneStatusCurrentStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5970,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneStatusCurrentStyle","product":"core","slug":"tmux-window-setpanestatuscurrentstyle"},{"id":"tmux.GlobalWindowScope.SetPaneStatusCurrentStyle","name":"SetPaneStatusCurrentStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneStatusCurrentStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneStatusCurrentStyle stores the \"pane-status-current-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.PaneStatusCurrentStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5980,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneStatusCurrentStyle","product":"core","slug":"tmux-globalwindowscope-setpanestatuscurrentstyle"},{"id":"tmux.Window.SetPaneStatusStyle","name":"SetPaneStatusStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneStatusStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPaneStatusStyle stores the \"pane-status-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.PaneStatusStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5988,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneStatusStyle","product":"core","slug":"tmux-window-setpanestatusstyle"},{"id":"tmux.GlobalWindowScope.SetPaneStatusStyle","name":"SetPaneStatusStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneStatusStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPaneStatusStyle stores the \"pane-status-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.PaneStatusStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":5998,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneStatusStyle","product":"core","slug":"tmux-globalwindowscope-setpanestatusstyle"},{"id":"tmux.Window.SetPopupBorderLines","name":"SetPopupBorderLines","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPopupBorderLines(ctx context.Context, value PopupBorderLines) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PopupBorderLines"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPopupBorderLines stores the \"popup-border-lines\" window option as PopupBorderLines (tmux 3.3 or later). Read it with [WindowOptionValues.PopupBorderLines] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6006,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPopupBorderLines","product":"core","slug":"tmux-window-setpopupborderlines"},{"id":"tmux.GlobalWindowScope.SetPopupBorderLines","name":"SetPopupBorderLines","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPopupBorderLines(ctx context.Context, value PopupBorderLines) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PopupBorderLines"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPopupBorderLines stores the \"popup-border-lines\" window option as PopupBorderLines (tmux 3.3 or later). Read it with [WindowOptionValues.PopupBorderLines] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6016,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPopupBorderLines","product":"core","slug":"tmux-globalwindowscope-setpopupborderlines"},{"id":"tmux.Window.SetPopupBorderStyle","name":"SetPopupBorderStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPopupBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPopupBorderStyle stores the \"popup-border-style\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.PopupBorderStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6024,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPopupBorderStyle","product":"core","slug":"tmux-window-setpopupborderstyle"},{"id":"tmux.GlobalWindowScope.SetPopupBorderStyle","name":"SetPopupBorderStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPopupBorderStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPopupBorderStyle stores the \"popup-border-style\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.PopupBorderStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6034,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPopupBorderStyle","product":"core","slug":"tmux-globalwindowscope-setpopupborderstyle"},{"id":"tmux.Window.SetPopupStyle","name":"SetPopupStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPopupStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetPopupStyle stores the \"popup-style\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.PopupStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6042,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPopupStyle","product":"core","slug":"tmux-window-setpopupstyle"},{"id":"tmux.GlobalWindowScope.SetPopupStyle","name":"SetPopupStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPopupStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetPopupStyle stores the \"popup-style\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.PopupStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6052,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPopupStyle","product":"core","slug":"tmux-globalwindowscope-setpopupstyle"},{"id":"tmux.Session.SetPrefix","name":"SetPrefix","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetPrefix(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetPrefix stores the \"prefix\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.Prefix] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6060,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetPrefix","product":"core","slug":"tmux-session-setprefix"},{"id":"tmux.GlobalSessionScope.SetPrefix","name":"SetPrefix","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetPrefix(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetPrefix stores the \"prefix\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.Prefix] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6070,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetPrefix","product":"core","slug":"tmux-globalsessionscope-setprefix"},{"id":"tmux.Server.SetPrefixTimeout","name":"SetPrefixTimeout","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetPrefixTimeout(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetPrefixTimeout stores the \"prefix-timeout\" server option as time.Duration (tmux 3.5 or later). Read it with [ServerOptionValues.PrefixTimeout] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6078,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetPrefixTimeout","product":"core","slug":"tmux-server-setprefixtimeout"},{"id":"tmux.Session.SetPrefix2","name":"SetPrefix2","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetPrefix2(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetPrefix2 stores the \"prefix2\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.Prefix2] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6090,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetPrefix2","product":"core","slug":"tmux-session-setprefix2"},{"id":"tmux.GlobalSessionScope.SetPrefix2","name":"SetPrefix2","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetPrefix2(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetPrefix2 stores the \"prefix2\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.Prefix2] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6100,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetPrefix2","product":"core","slug":"tmux-globalsessionscope-setprefix2"},{"id":"tmux.Session.SetPromptCommandCursorStyle","name":"SetPromptCommandCursorStyle","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetPromptCommandCursorStyle(ctx context.Context, value PromptCommandCursorStyle) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PromptCommandCursorStyle"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetPromptCommandCursorStyle stores the \"prompt-command-cursor-style\" session option as PromptCommandCursorStyle (tmux 3.7 or later). Read it with [SessionOptionValues.PromptCommandCursorStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetPromptCommandCursorStyle","product":"core","slug":"tmux-session-setpromptcommandcursorstyle"},{"id":"tmux.GlobalSessionScope.SetPromptCommandCursorStyle","name":"SetPromptCommandCursorStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetPromptCommandCursorStyle(ctx context.Context, value PromptCommandCursorStyle) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PromptCommandCursorStyle"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetPromptCommandCursorStyle stores the \"prompt-command-cursor-style\" session option as PromptCommandCursorStyle (tmux 3.7 or later). Read it with [SessionOptionValues.PromptCommandCursorStyle] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6118,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetPromptCommandCursorStyle","product":"core","slug":"tmux-globalsessionscope-setpromptcommandcursorstyle"},{"id":"tmux.Session.SetPromptCursorColour","name":"SetPromptCursorColour","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetPromptCursorColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetPromptCursorColour stores the \"prompt-cursor-colour\" session option as string (tmux 3.6 or later). Read it with [SessionOptionValues.PromptCursorColour] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6126,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetPromptCursorColour","product":"core","slug":"tmux-session-setpromptcursorcolour"},{"id":"tmux.GlobalSessionScope.SetPromptCursorColour","name":"SetPromptCursorColour","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetPromptCursorColour(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetPromptCursorColour stores the \"prompt-cursor-colour\" session option as string (tmux 3.6 or later). Read it with [SessionOptionValues.PromptCursorColour] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6136,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetPromptCursorColour","product":"core","slug":"tmux-globalsessionscope-setpromptcursorcolour"},{"id":"tmux.Session.SetPromptCursorStyle","name":"SetPromptCursorStyle","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetPromptCursorStyle(ctx context.Context, value PromptCursorStyle) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PromptCursorStyle"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetPromptCursorStyle stores the \"prompt-cursor-style\" session option as PromptCursorStyle (tmux 3.6 or later). Read it with [SessionOptionValues.PromptCursorStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6144,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetPromptCursorStyle","product":"core","slug":"tmux-session-setpromptcursorstyle"},{"id":"tmux.GlobalSessionScope.SetPromptCursorStyle","name":"SetPromptCursorStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetPromptCursorStyle(ctx context.Context, value PromptCursorStyle) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"PromptCursorStyle"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetPromptCursorStyle stores the \"prompt-cursor-style\" session option as PromptCursorStyle (tmux 3.6 or later). Read it with [SessionOptionValues.PromptCursorStyle] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6154,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetPromptCursorStyle","product":"core","slug":"tmux-globalsessionscope-setpromptcursorstyle"},{"id":"tmux.Server.SetPromptHistoryLimit","name":"SetPromptHistoryLimit","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetPromptHistoryLimit(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetPromptHistoryLimit stores the \"prompt-history-limit\" server option as int64 (tmux 3.3 or later). Read it with [ServerOptionValues.PromptHistoryLimit] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6162,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetPromptHistoryLimit","product":"core","slug":"tmux-server-setprompthistorylimit"},{"id":"tmux.Window.SetRemainOnExit","name":"SetRemainOnExit","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetRemainOnExit(ctx context.Context, value RemainOnExit) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"RemainOnExit"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetRemainOnExit stores the \"remain-on-exit\" window option as RemainOnExit (tmux 3.2a or later). Read it with [WindowOptionValues.RemainOnExit] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6170,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetRemainOnExit","product":"core","slug":"tmux-window-setremainonexit"},{"id":"tmux.GlobalWindowScope.SetRemainOnExit","name":"SetRemainOnExit","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetRemainOnExit(ctx context.Context, value RemainOnExit) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"RemainOnExit"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetRemainOnExit stores the \"remain-on-exit\" window option as RemainOnExit (tmux 3.2a or later). Read it with [WindowOptionValues.RemainOnExit] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6180,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetRemainOnExit","product":"core","slug":"tmux-globalwindowscope-setremainonexit"},{"id":"tmux.Pane.SetRemainOnExit","name":"SetRemainOnExit","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetRemainOnExit(ctx context.Context, value RemainOnExit) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"RemainOnExit"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetRemainOnExit stores the \"remain-on-exit\" pane option as RemainOnExit (tmux 3.2a or later). Read it with [PaneOptionValues.RemainOnExit] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6188,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetRemainOnExit","product":"core","slug":"tmux-pane-setremainonexit"},{"id":"tmux.Window.SetRemainOnExitFormat","name":"SetRemainOnExitFormat","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetRemainOnExitFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetRemainOnExitFormat stores the \"remain-on-exit-format\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.RemainOnExitFormat] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6198,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetRemainOnExitFormat","product":"core","slug":"tmux-window-setremainonexitformat"},{"id":"tmux.GlobalWindowScope.SetRemainOnExitFormat","name":"SetRemainOnExitFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetRemainOnExitFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetRemainOnExitFormat stores the \"remain-on-exit-format\" window option as string (tmux 3.3 or later). Read it with [WindowOptionValues.RemainOnExitFormat] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6208,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetRemainOnExitFormat","product":"core","slug":"tmux-globalwindowscope-setremainonexitformat"},{"id":"tmux.Pane.SetRemainOnExitFormat","name":"SetRemainOnExitFormat","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetRemainOnExitFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetRemainOnExitFormat stores the \"remain-on-exit-format\" pane option as string (tmux 3.3 or later). Read it with [PaneOptionValues.RemainOnExitFormat] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6216,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetRemainOnExitFormat","product":"core","slug":"tmux-pane-setremainonexitformat"},{"id":"tmux.Session.SetRenumberWindows","name":"SetRenumberWindows","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetRenumberWindows(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetRenumberWindows stores the \"renumber-windows\" session option as bool (tmux 3.2a or later). Read it with [SessionOptionValues.RenumberWindows] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6226,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetRenumberWindows","product":"core","slug":"tmux-session-setrenumberwindows"},{"id":"tmux.GlobalSessionScope.SetRenumberWindows","name":"SetRenumberWindows","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetRenumberWindows(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetRenumberWindows stores the \"renumber-windows\" session option as bool (tmux 3.2a or later). Read it with [SessionOptionValues.RenumberWindows] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6236,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetRenumberWindows","product":"core","slug":"tmux-globalsessionscope-setrenumberwindows"},{"id":"tmux.Session.SetRepeatTime","name":"SetRepeatTime","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetRepeatTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetRepeatTime stores the \"repeat-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.RepeatTime] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6244,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetRepeatTime","product":"core","slug":"tmux-session-setrepeattime"},{"id":"tmux.GlobalSessionScope.SetRepeatTime","name":"SetRepeatTime","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetRepeatTime(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetRepeatTime stores the \"repeat-time\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.RepeatTime] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6258,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetRepeatTime","product":"core","slug":"tmux-globalsessionscope-setrepeattime"},{"id":"tmux.Window.SetScrollOnClear","name":"SetScrollOnClear","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetScrollOnClear(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetScrollOnClear stores the \"scroll-on-clear\" window option as bool (tmux 3.3 or later). Read it with [WindowOptionValues.ScrollOnClear] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6270,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetScrollOnClear","product":"core","slug":"tmux-window-setscrollonclear"},{"id":"tmux.GlobalWindowScope.SetScrollOnClear","name":"SetScrollOnClear","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetScrollOnClear(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetScrollOnClear stores the \"scroll-on-clear\" window option as bool (tmux 3.3 or later). Read it with [WindowOptionValues.ScrollOnClear] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6280,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetScrollOnClear","product":"core","slug":"tmux-globalwindowscope-setscrollonclear"},{"id":"tmux.Pane.SetScrollOnClear","name":"SetScrollOnClear","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetScrollOnClear(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetScrollOnClear stores the \"scroll-on-clear\" pane option as bool (tmux 3.3 or later). Read it with [PaneOptionValues.ScrollOnClear] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6288,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetScrollOnClear","product":"core","slug":"tmux-pane-setscrollonclear"},{"id":"tmux.Window.SetSessionStatusCurrentStyle","name":"SetSessionStatusCurrentStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetSessionStatusCurrentStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetSessionStatusCurrentStyle stores the \"session-status-current-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.SessionStatusCurrentStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6298,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetSessionStatusCurrentStyle","product":"core","slug":"tmux-window-setsessionstatuscurrentstyle"},{"id":"tmux.GlobalWindowScope.SetSessionStatusCurrentStyle","name":"SetSessionStatusCurrentStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetSessionStatusCurrentStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetSessionStatusCurrentStyle stores the \"session-status-current-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.SessionStatusCurrentStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6308,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetSessionStatusCurrentStyle","product":"core","slug":"tmux-globalwindowscope-setsessionstatuscurrentstyle"},{"id":"tmux.Window.SetSessionStatusStyle","name":"SetSessionStatusStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetSessionStatusStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetSessionStatusStyle stores the \"session-status-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.SessionStatusStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6316,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetSessionStatusStyle","product":"core","slug":"tmux-window-setsessionstatusstyle"},{"id":"tmux.GlobalWindowScope.SetSessionStatusStyle","name":"SetSessionStatusStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetSessionStatusStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetSessionStatusStyle stores the \"session-status-style\" window option as string (tmux 3.6 or later). Read it with [WindowOptionValues.SessionStatusStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6326,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetSessionStatusStyle","product":"core","slug":"tmux-globalwindowscope-setsessionstatusstyle"},{"id":"tmux.Server.SetClipboard","name":"SetClipboard","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetClipboard(ctx context.Context, value SetClipboard) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SetClipboard"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetClipboard stores the \"set-clipboard\" server option as SetClipboard (tmux 3.2a or later). Read it with [ServerOptionValues.SetClipboard] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6334,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetClipboard","product":"core","slug":"tmux-server-setclipboard"},{"id":"tmux.Session.SetTitles","name":"SetTitles","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetTitles(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetTitles stores the \"set-titles\" session option as bool (tmux 3.2a or later). Read it with [SessionOptionValues.SetTitles] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6342,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetTitles","product":"core","slug":"tmux-session-settitles"},{"id":"tmux.GlobalSessionScope.SetTitles","name":"SetTitles","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetTitles(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetTitles stores the \"set-titles\" session option as bool (tmux 3.2a or later). Read it with [SessionOptionValues.SetTitles] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6352,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetTitles","product":"core","slug":"tmux-globalsessionscope-settitles"},{"id":"tmux.Session.SetTitlesString","name":"SetTitlesString","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetTitlesString(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetTitlesString stores the \"set-titles-string\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.SetTitlesString] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6360,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetTitlesString","product":"core","slug":"tmux-session-settitlesstring"},{"id":"tmux.GlobalSessionScope.SetTitlesString","name":"SetTitlesString","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetTitlesString(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetTitlesString stores the \"set-titles-string\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.SetTitlesString] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6370,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetTitlesString","product":"core","slug":"tmux-globalsessionscope-settitlesstring"},{"id":"tmux.Session.SetSilenceAction","name":"SetSilenceAction","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetSilenceAction(ctx context.Context, value SilenceAction) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SilenceAction"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetSilenceAction stores the \"silence-action\" session option as SilenceAction (tmux 3.2a or later). Read it with [SessionOptionValues.SilenceAction] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6378,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetSilenceAction","product":"core","slug":"tmux-session-setsilenceaction"},{"id":"tmux.GlobalSessionScope.SetSilenceAction","name":"SetSilenceAction","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetSilenceAction(ctx context.Context, value SilenceAction) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SilenceAction"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetSilenceAction stores the \"silence-action\" session option as SilenceAction (tmux 3.2a or later). Read it with [SessionOptionValues.SilenceAction] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6388,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetSilenceAction","product":"core","slug":"tmux-globalsessionscope-setsilenceaction"},{"id":"tmux.Session.SetStatus","name":"SetStatus","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatus(ctx context.Context, value Status) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"Status"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatus stores the \"status\" session option as Status (tmux 3.2a or later). Read it with [SessionOptionValues.Status] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6396,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatus","product":"core","slug":"tmux-session-setstatus"},{"id":"tmux.GlobalSessionScope.SetStatus","name":"SetStatus","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatus(ctx context.Context, value Status) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"Status"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatus stores the \"status\" session option as Status (tmux 3.2a or later). Read it with [SessionOptionValues.Status] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6406,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatus","product":"core","slug":"tmux-globalsessionscope-setstatus"},{"id":"tmux.Session.SetStatusBG","name":"SetStatusBG","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusBG(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusBG stores the \"status-bg\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusBG] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6414,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusBG","product":"core","slug":"tmux-session-setstatusbg"},{"id":"tmux.GlobalSessionScope.SetStatusBG","name":"SetStatusBG","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusBG(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusBG stores the \"status-bg\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusBG] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6424,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusBG","product":"core","slug":"tmux-globalsessionscope-setstatusbg"},{"id":"tmux.Session.SetStatusFG","name":"SetStatusFG","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusFG(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusFG stores the \"status-fg\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusFG] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6432,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusFG","product":"core","slug":"tmux-session-setstatusfg"},{"id":"tmux.GlobalSessionScope.SetStatusFG","name":"SetStatusFG","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusFG(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusFG stores the \"status-fg\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusFG] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6442,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusFG","product":"core","slug":"tmux-globalsessionscope-setstatusfg"},{"id":"tmux.Session.SetStatusInterval","name":"SetStatusInterval","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusInterval(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusInterval stores the \"status-interval\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.StatusInterval] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6450,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusInterval","product":"core","slug":"tmux-session-setstatusinterval"},{"id":"tmux.GlobalSessionScope.SetStatusInterval","name":"SetStatusInterval","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusInterval(ctx context.Context, value time.Duration) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"time.Duration"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusInterval stores the \"status-interval\" session option as time.Duration (tmux 3.2a or later). Read it with [SessionOptionValues.StatusInterval] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6464,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusInterval","product":"core","slug":"tmux-globalsessionscope-setstatusinterval"},{"id":"tmux.Session.SetStatusJustify","name":"SetStatusJustify","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusJustify(ctx context.Context, value StatusJustify) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"StatusJustify"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusJustify stores the \"status-justify\" session option as StatusJustify (tmux 3.2a or later). Read it with [SessionOptionValues.StatusJustify] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6476,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusJustify","product":"core","slug":"tmux-session-setstatusjustify"},{"id":"tmux.GlobalSessionScope.SetStatusJustify","name":"SetStatusJustify","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusJustify(ctx context.Context, value StatusJustify) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"StatusJustify"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusJustify stores the \"status-justify\" session option as StatusJustify (tmux 3.2a or later). Read it with [SessionOptionValues.StatusJustify] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6486,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusJustify","product":"core","slug":"tmux-globalsessionscope-setstatusjustify"},{"id":"tmux.Session.SetStatusKeys","name":"SetStatusKeys","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusKeys(ctx context.Context, value StatusKeys) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"StatusKeys"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusKeys stores the \"status-keys\" session option as StatusKeys (tmux 3.2a or later). Read it with [SessionOptionValues.StatusKeys] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6494,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusKeys","product":"core","slug":"tmux-session-setstatuskeys"},{"id":"tmux.GlobalSessionScope.SetStatusKeys","name":"SetStatusKeys","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusKeys(ctx context.Context, value StatusKeys) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"StatusKeys"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusKeys stores the \"status-keys\" session option as StatusKeys (tmux 3.2a or later). Read it with [SessionOptionValues.StatusKeys] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6504,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusKeys","product":"core","slug":"tmux-globalsessionscope-setstatuskeys"},{"id":"tmux.Session.SetStatusLeft","name":"SetStatusLeft","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusLeft(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusLeft stores the \"status-left\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusLeft] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6512,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusLeft","product":"core","slug":"tmux-session-setstatusleft"},{"id":"tmux.GlobalSessionScope.SetStatusLeft","name":"SetStatusLeft","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusLeft(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusLeft stores the \"status-left\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusLeft] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6522,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusLeft","product":"core","slug":"tmux-globalsessionscope-setstatusleft"},{"id":"tmux.Session.SetStatusLeftLength","name":"SetStatusLeftLength","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusLeftLength(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusLeftLength stores the \"status-left-length\" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.StatusLeftLength] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6530,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusLeftLength","product":"core","slug":"tmux-session-setstatusleftlength"},{"id":"tmux.GlobalSessionScope.SetStatusLeftLength","name":"SetStatusLeftLength","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusLeftLength(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusLeftLength stores the \"status-left-length\" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.StatusLeftLength] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6540,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusLeftLength","product":"core","slug":"tmux-globalsessionscope-setstatusleftlength"},{"id":"tmux.Session.SetStatusLeftStyle","name":"SetStatusLeftStyle","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusLeftStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusLeftStyle stores the \"status-left-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusLeftStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6548,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusLeftStyle","product":"core","slug":"tmux-session-setstatusleftstyle"},{"id":"tmux.GlobalSessionScope.SetStatusLeftStyle","name":"SetStatusLeftStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusLeftStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusLeftStyle stores the \"status-left-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusLeftStyle] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6558,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusLeftStyle","product":"core","slug":"tmux-globalsessionscope-setstatusleftstyle"},{"id":"tmux.Session.SetStatusPosition","name":"SetStatusPosition","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusPosition(ctx context.Context, value StatusPosition) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"StatusPosition"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusPosition stores the \"status-position\" session option as StatusPosition (tmux 3.2a or later). Read it with [SessionOptionValues.StatusPosition] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6566,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusPosition","product":"core","slug":"tmux-session-setstatusposition"},{"id":"tmux.GlobalSessionScope.SetStatusPosition","name":"SetStatusPosition","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusPosition(ctx context.Context, value StatusPosition) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"StatusPosition"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusPosition stores the \"status-position\" session option as StatusPosition (tmux 3.2a or later). Read it with [SessionOptionValues.StatusPosition] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6576,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusPosition","product":"core","slug":"tmux-globalsessionscope-setstatusposition"},{"id":"tmux.Session.SetStatusRight","name":"SetStatusRight","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusRight(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusRight stores the \"status-right\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusRight] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6584,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusRight","product":"core","slug":"tmux-session-setstatusright"},{"id":"tmux.GlobalSessionScope.SetStatusRight","name":"SetStatusRight","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusRight(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusRight stores the \"status-right\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusRight] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6594,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusRight","product":"core","slug":"tmux-globalsessionscope-setstatusright"},{"id":"tmux.Session.SetStatusRightLength","name":"SetStatusRightLength","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusRightLength(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusRightLength stores the \"status-right-length\" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.StatusRightLength] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6602,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusRightLength","product":"core","slug":"tmux-session-setstatusrightlength"},{"id":"tmux.GlobalSessionScope.SetStatusRightLength","name":"SetStatusRightLength","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusRightLength(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusRightLength stores the \"status-right-length\" session option as int64 (tmux 3.2a or later). Read it with [SessionOptionValues.StatusRightLength] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6612,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusRightLength","product":"core","slug":"tmux-globalsessionscope-setstatusrightlength"},{"id":"tmux.Session.SetStatusRightStyle","name":"SetStatusRightStyle","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusRightStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusRightStyle stores the \"status-right-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusRightStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6620,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusRightStyle","product":"core","slug":"tmux-session-setstatusrightstyle"},{"id":"tmux.GlobalSessionScope.SetStatusRightStyle","name":"SetStatusRightStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusRightStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusRightStyle stores the \"status-right-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusRightStyle] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6630,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusRightStyle","product":"core","slug":"tmux-globalsessionscope-setstatusrightstyle"},{"id":"tmux.Session.SetStatusStyle","name":"SetStatusStyle","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetStatusStyle stores the \"status-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusStyle] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6638,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusStyle","product":"core","slug":"tmux-session-setstatusstyle"},{"id":"tmux.GlobalSessionScope.SetStatusStyle","name":"SetStatusStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetStatusStyle stores the \"status-style\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.StatusStyle] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6648,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusStyle","product":"core","slug":"tmux-globalsessionscope-setstatusstyle"},{"id":"tmux.Window.SetSynchronizePanes","name":"SetSynchronizePanes","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetSynchronizePanes(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetSynchronizePanes stores the \"synchronize-panes\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.SynchronizePanes] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6656,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetSynchronizePanes","product":"core","slug":"tmux-window-setsynchronizepanes"},{"id":"tmux.GlobalWindowScope.SetSynchronizePanes","name":"SetSynchronizePanes","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetSynchronizePanes(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetSynchronizePanes stores the \"synchronize-panes\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.SynchronizePanes] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6666,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetSynchronizePanes","product":"core","slug":"tmux-globalwindowscope-setsynchronizepanes"},{"id":"tmux.Pane.SetSynchronizePanes","name":"SetSynchronizePanes","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetSynchronizePanes(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetSynchronizePanes stores the \"synchronize-panes\" pane option as bool (tmux 3.2a or later). Read it with [PaneOptionValues.SynchronizePanes] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6674,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetSynchronizePanes","product":"core","slug":"tmux-pane-setsynchronizepanes"},{"id":"tmux.Window.SetTiledLayoutMaxColumns","name":"SetTiledLayoutMaxColumns","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetTiledLayoutMaxColumns(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetTiledLayoutMaxColumns stores the \"tiled-layout-max-columns\" window option as int64 (tmux 3.6 or later). Read it with [WindowOptionValues.TiledLayoutMaxColumns] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6684,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetTiledLayoutMaxColumns","product":"core","slug":"tmux-window-settiledlayoutmaxcolumns"},{"id":"tmux.GlobalWindowScope.SetTiledLayoutMaxColumns","name":"SetTiledLayoutMaxColumns","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetTiledLayoutMaxColumns(ctx context.Context, value int64) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"int64"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetTiledLayoutMaxColumns stores the \"tiled-layout-max-columns\" window option as int64 (tmux 3.6 or later). Read it with [WindowOptionValues.TiledLayoutMaxColumns] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6694,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetTiledLayoutMaxColumns","product":"core","slug":"tmux-globalwindowscope-settiledlayoutmaxcolumns"},{"id":"tmux.Window.SetTreeModePreviewFormat","name":"SetTreeModePreviewFormat","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetTreeModePreviewFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetTreeModePreviewFormat stores the \"tree-mode-preview-format\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.TreeModePreviewFormat] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6702,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetTreeModePreviewFormat","product":"core","slug":"tmux-window-settreemodepreviewformat"},{"id":"tmux.GlobalWindowScope.SetTreeModePreviewFormat","name":"SetTreeModePreviewFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetTreeModePreviewFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetTreeModePreviewFormat stores the \"tree-mode-preview-format\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.TreeModePreviewFormat] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6712,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetTreeModePreviewFormat","product":"core","slug":"tmux-globalwindowscope-settreemodepreviewformat"},{"id":"tmux.Pane.SetTreeModePreviewFormat","name":"SetTreeModePreviewFormat","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetTreeModePreviewFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetTreeModePreviewFormat stores the \"tree-mode-preview-format\" pane option as string (tmux 3.7 or later). Read it with [PaneOptionValues.TreeModePreviewFormat] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6720,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetTreeModePreviewFormat","product":"core","slug":"tmux-pane-settreemodepreviewformat"},{"id":"tmux.Window.SetTreeModePreviewStyle","name":"SetTreeModePreviewStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetTreeModePreviewStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetTreeModePreviewStyle stores the \"tree-mode-preview-style\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.TreeModePreviewStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6730,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetTreeModePreviewStyle","product":"core","slug":"tmux-window-settreemodepreviewstyle"},{"id":"tmux.GlobalWindowScope.SetTreeModePreviewStyle","name":"SetTreeModePreviewStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetTreeModePreviewStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetTreeModePreviewStyle stores the \"tree-mode-preview-style\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.TreeModePreviewStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6740,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetTreeModePreviewStyle","product":"core","slug":"tmux-globalwindowscope-settreemodepreviewstyle"},{"id":"tmux.Server.SetVariationSelectorAlwaysWide","name":"SetVariationSelectorAlwaysWide","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetVariationSelectorAlwaysWide(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetVariationSelectorAlwaysWide stores the \"variation-selector-always-wide\" server option as bool (tmux 3.6 or later). Read it with [ServerOptionValues.VariationSelectorAlwaysWide] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6748,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetVariationSelectorAlwaysWide","product":"core","slug":"tmux-server-setvariationselectoralwayswide"},{"id":"tmux.Session.SetVisualActivity","name":"SetVisualActivity","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetVisualActivity(ctx context.Context, value VisualActivity) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"VisualActivity"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetVisualActivity stores the \"visual-activity\" session option as VisualActivity (tmux 3.2a or later). Read it with [SessionOptionValues.VisualActivity] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6756,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetVisualActivity","product":"core","slug":"tmux-session-setvisualactivity"},{"id":"tmux.GlobalSessionScope.SetVisualActivity","name":"SetVisualActivity","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetVisualActivity(ctx context.Context, value VisualActivity) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"VisualActivity"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetVisualActivity stores the \"visual-activity\" session option as VisualActivity (tmux 3.2a or later). Read it with [SessionOptionValues.VisualActivity] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6766,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetVisualActivity","product":"core","slug":"tmux-globalsessionscope-setvisualactivity"},{"id":"tmux.Session.SetVisualBell","name":"SetVisualBell","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetVisualBell(ctx context.Context, value VisualBell) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"VisualBell"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetVisualBell stores the \"visual-bell\" session option as VisualBell (tmux 3.2a or later). Read it with [SessionOptionValues.VisualBell] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6774,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetVisualBell","product":"core","slug":"tmux-session-setvisualbell"},{"id":"tmux.GlobalSessionScope.SetVisualBell","name":"SetVisualBell","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetVisualBell(ctx context.Context, value VisualBell) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"VisualBell"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetVisualBell stores the \"visual-bell\" session option as VisualBell (tmux 3.2a or later). Read it with [SessionOptionValues.VisualBell] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6784,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetVisualBell","product":"core","slug":"tmux-globalsessionscope-setvisualbell"},{"id":"tmux.Session.SetVisualSilence","name":"SetVisualSilence","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetVisualSilence(ctx context.Context, value VisualSilence) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"VisualSilence"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetVisualSilence stores the \"visual-silence\" session option as VisualSilence (tmux 3.2a or later). Read it with [SessionOptionValues.VisualSilence] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6792,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetVisualSilence","product":"core","slug":"tmux-session-setvisualsilence"},{"id":"tmux.GlobalSessionScope.SetVisualSilence","name":"SetVisualSilence","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetVisualSilence(ctx context.Context, value VisualSilence) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"VisualSilence"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetVisualSilence stores the \"visual-silence\" session option as VisualSilence (tmux 3.2a or later). Read it with [SessionOptionValues.VisualSilence] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6802,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetVisualSilence","product":"core","slug":"tmux-globalsessionscope-setvisualsilence"},{"id":"tmux.Window.SetWindowActiveStyle","name":"SetWindowActiveStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowActiveStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowActiveStyle stores the \"window-active-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowActiveStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6810,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowActiveStyle","product":"core","slug":"tmux-window-setwindowactivestyle"},{"id":"tmux.GlobalWindowScope.SetWindowActiveStyle","name":"SetWindowActiveStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowActiveStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowActiveStyle stores the \"window-active-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowActiveStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6820,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowActiveStyle","product":"core","slug":"tmux-globalwindowscope-setwindowactivestyle"},{"id":"tmux.Pane.SetWindowActiveStyle","name":"SetWindowActiveStyle","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetWindowActiveStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetWindowActiveStyle stores the \"window-active-style\" pane option as string (tmux 3.2a or later). Read it with [PaneOptionValues.WindowActiveStyle] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6828,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetWindowActiveStyle","product":"core","slug":"tmux-pane-setwindowactivestyle"},{"id":"tmux.Window.SetWindowPaneCurrentStatusFormat","name":"SetWindowPaneCurrentStatusFormat","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowPaneCurrentStatusFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowPaneCurrentStatusFormat stores the \"window-pane-current-status-format\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.WindowPaneCurrentStatusFormat] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6838,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowPaneCurrentStatusFormat","product":"core","slug":"tmux-window-setwindowpanecurrentstatusformat"},{"id":"tmux.GlobalWindowScope.SetWindowPaneCurrentStatusFormat","name":"SetWindowPaneCurrentStatusFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowPaneCurrentStatusFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowPaneCurrentStatusFormat stores the \"window-pane-current-status-format\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.WindowPaneCurrentStatusFormat] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6848,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowPaneCurrentStatusFormat","product":"core","slug":"tmux-globalwindowscope-setwindowpanecurrentstatusformat"},{"id":"tmux.Window.SetWindowPaneStatusFormat","name":"SetWindowPaneStatusFormat","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowPaneStatusFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowPaneStatusFormat stores the \"window-pane-status-format\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.WindowPaneStatusFormat] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6856,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowPaneStatusFormat","product":"core","slug":"tmux-window-setwindowpanestatusformat"},{"id":"tmux.GlobalWindowScope.SetWindowPaneStatusFormat","name":"SetWindowPaneStatusFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowPaneStatusFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowPaneStatusFormat stores the \"window-pane-status-format\" window option as string (tmux 3.7 or later). Read it with [WindowOptionValues.WindowPaneStatusFormat] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6866,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowPaneStatusFormat","product":"core","slug":"tmux-globalwindowscope-setwindowpanestatusformat"},{"id":"tmux.Window.SetWindowSize","name":"SetWindowSize","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowSize(ctx context.Context, value WindowSize) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"WindowSize"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowSize stores the \"window-size\" window option as WindowSize (tmux 3.2a or later). Read it with [WindowOptionValues.WindowSize] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6874,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowSize","product":"core","slug":"tmux-window-setwindowsize"},{"id":"tmux.GlobalWindowScope.SetWindowSize","name":"SetWindowSize","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowSize(ctx context.Context, value WindowSize) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"WindowSize"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowSize stores the \"window-size\" window option as WindowSize (tmux 3.2a or later). Read it with [WindowOptionValues.WindowSize] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6884,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowSize","product":"core","slug":"tmux-globalwindowscope-setwindowsize"},{"id":"tmux.Window.SetWindowStatusActivityStyle","name":"SetWindowStatusActivityStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowStatusActivityStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowStatusActivityStyle stores the \"window-status-activity-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusActivityStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6892,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowStatusActivityStyle","product":"core","slug":"tmux-window-setwindowstatusactivitystyle"},{"id":"tmux.GlobalWindowScope.SetWindowStatusActivityStyle","name":"SetWindowStatusActivityStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowStatusActivityStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowStatusActivityStyle stores the \"window-status-activity-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusActivityStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6902,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowStatusActivityStyle","product":"core","slug":"tmux-globalwindowscope-setwindowstatusactivitystyle"},{"id":"tmux.Window.SetWindowStatusBellStyle","name":"SetWindowStatusBellStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowStatusBellStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowStatusBellStyle stores the \"window-status-bell-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusBellStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6910,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowStatusBellStyle","product":"core","slug":"tmux-window-setwindowstatusbellstyle"},{"id":"tmux.GlobalWindowScope.SetWindowStatusBellStyle","name":"SetWindowStatusBellStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowStatusBellStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowStatusBellStyle stores the \"window-status-bell-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusBellStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6920,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowStatusBellStyle","product":"core","slug":"tmux-globalwindowscope-setwindowstatusbellstyle"},{"id":"tmux.Window.SetWindowStatusCurrentFormat","name":"SetWindowStatusCurrentFormat","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowStatusCurrentFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowStatusCurrentFormat stores the \"window-status-current-format\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusCurrentFormat] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6928,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowStatusCurrentFormat","product":"core","slug":"tmux-window-setwindowstatuscurrentformat"},{"id":"tmux.GlobalWindowScope.SetWindowStatusCurrentFormat","name":"SetWindowStatusCurrentFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowStatusCurrentFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowStatusCurrentFormat stores the \"window-status-current-format\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusCurrentFormat] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6938,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowStatusCurrentFormat","product":"core","slug":"tmux-globalwindowscope-setwindowstatuscurrentformat"},{"id":"tmux.Window.SetWindowStatusCurrentStyle","name":"SetWindowStatusCurrentStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowStatusCurrentStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowStatusCurrentStyle stores the \"window-status-current-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusCurrentStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6946,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowStatusCurrentStyle","product":"core","slug":"tmux-window-setwindowstatuscurrentstyle"},{"id":"tmux.GlobalWindowScope.SetWindowStatusCurrentStyle","name":"SetWindowStatusCurrentStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowStatusCurrentStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowStatusCurrentStyle stores the \"window-status-current-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusCurrentStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6956,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowStatusCurrentStyle","product":"core","slug":"tmux-globalwindowscope-setwindowstatuscurrentstyle"},{"id":"tmux.Window.SetWindowStatusFormat","name":"SetWindowStatusFormat","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowStatusFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowStatusFormat stores the \"window-status-format\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusFormat] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6964,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowStatusFormat","product":"core","slug":"tmux-window-setwindowstatusformat"},{"id":"tmux.GlobalWindowScope.SetWindowStatusFormat","name":"SetWindowStatusFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowStatusFormat(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowStatusFormat stores the \"window-status-format\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusFormat] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6974,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowStatusFormat","product":"core","slug":"tmux-globalwindowscope-setwindowstatusformat"},{"id":"tmux.Window.SetWindowStatusLastStyle","name":"SetWindowStatusLastStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowStatusLastStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowStatusLastStyle stores the \"window-status-last-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusLastStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6982,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowStatusLastStyle","product":"core","slug":"tmux-window-setwindowstatuslaststyle"},{"id":"tmux.GlobalWindowScope.SetWindowStatusLastStyle","name":"SetWindowStatusLastStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowStatusLastStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowStatusLastStyle stores the \"window-status-last-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusLastStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":6992,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowStatusLastStyle","product":"core","slug":"tmux-globalwindowscope-setwindowstatuslaststyle"},{"id":"tmux.Window.SetWindowStatusSeparator","name":"SetWindowStatusSeparator","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowStatusSeparator(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowStatusSeparator stores the \"window-status-separator\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusSeparator] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7000,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowStatusSeparator","product":"core","slug":"tmux-window-setwindowstatusseparator"},{"id":"tmux.GlobalWindowScope.SetWindowStatusSeparator","name":"SetWindowStatusSeparator","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowStatusSeparator(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowStatusSeparator stores the \"window-status-separator\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusSeparator] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7010,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowStatusSeparator","product":"core","slug":"tmux-globalwindowscope-setwindowstatusseparator"},{"id":"tmux.Window.SetWindowStatusStyle","name":"SetWindowStatusStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowStatusStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowStatusStyle stores the \"window-status-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7018,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowStatusStyle","product":"core","slug":"tmux-window-setwindowstatusstyle"},{"id":"tmux.GlobalWindowScope.SetWindowStatusStyle","name":"SetWindowStatusStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowStatusStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowStatusStyle stores the \"window-status-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStatusStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7028,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowStatusStyle","product":"core","slug":"tmux-globalwindowscope-setwindowstatusstyle"},{"id":"tmux.Window.SetWindowStyle","name":"SetWindowStyle","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWindowStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWindowStyle stores the \"window-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStyle] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7036,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWindowStyle","product":"core","slug":"tmux-window-setwindowstyle"},{"id":"tmux.GlobalWindowScope.SetWindowStyle","name":"SetWindowStyle","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWindowStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWindowStyle stores the \"window-style\" window option as string (tmux 3.2a or later). Read it with [WindowOptionValues.WindowStyle] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7046,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWindowStyle","product":"core","slug":"tmux-globalwindowscope-setwindowstyle"},{"id":"tmux.Pane.SetWindowStyle","name":"SetWindowStyle","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetWindowStyle(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetWindowStyle stores the \"window-style\" pane option as string (tmux 3.2a or later). Read it with [PaneOptionValues.WindowStyle] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7054,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetWindowStyle","product":"core","slug":"tmux-pane-setwindowstyle"},{"id":"tmux.Session.SetWordSeparators","name":"SetWordSeparators","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetWordSeparators(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetWordSeparators stores the \"word-separators\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.WordSeparators] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7064,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetWordSeparators","product":"core","slug":"tmux-session-setwordseparators"},{"id":"tmux.GlobalSessionScope.SetWordSeparators","name":"SetWordSeparators","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetWordSeparators(ctx context.Context, value string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetWordSeparators stores the \"word-separators\" session option as string (tmux 3.2a or later). Read it with [SessionOptionValues.WordSeparators] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7074,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetWordSeparators","product":"core","slug":"tmux-globalsessionscope-setwordseparators"},{"id":"tmux.Window.SetWrapSearch","name":"SetWrapSearch","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetWrapSearch(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetWrapSearch stores the \"wrap-search\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.WrapSearch] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7082,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetWrapSearch","product":"core","slug":"tmux-window-setwrapsearch"},{"id":"tmux.GlobalWindowScope.SetWrapSearch","name":"SetWrapSearch","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetWrapSearch(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetWrapSearch stores the \"wrap-search\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.WrapSearch] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7092,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetWrapSearch","product":"core","slug":"tmux-globalwindowscope-setwrapsearch"},{"id":"tmux.Window.SetXTermKeys","name":"SetXTermKeys","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetXTermKeys(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetXTermKeys stores the \"xterm-keys\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.XTermKeys] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7100,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetXTermKeys","product":"core","slug":"tmux-window-setxtermkeys"},{"id":"tmux.GlobalWindowScope.SetXTermKeys","name":"SetXTermKeys","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetXTermKeys(ctx context.Context, value bool) error","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"bool"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetXTermKeys stores the \"xterm-keys\" window option as bool (tmux 3.2a or later). Read it with [WindowOptionValues.XTermKeys] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default."},"source":{"file":"tmux/option_generated.go","line":7110,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetXTermKeys","product":"core","slug":"tmux-globalwindowscope-setxtermkeys"},{"id":"tmux.Server.SetCodepointWidths","name":"SetCodepointWidths","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetCodepointWidths(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"Server"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetCodepointWidths replaces the complete \"codepoint-widths\" server option array with SparseArray[string], preserving holes and empty values (tmux 3.6 or later). Read it with [ServerOptionValues.CodepointWidths] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7119,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetCodepointWidths","product":"core","slug":"tmux-server-setcodepointwidths"},{"id":"tmux.Server.SetCommandAlias","name":"SetCommandAlias","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetCommandAlias(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"Server"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetCommandAlias replaces the complete \"command-alias\" server option array with SparseArray[string], preserving holes and empty values (tmux 3.2a or later). Read it with [ServerOptionValues.CommandAlias] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7128,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetCommandAlias","product":"core","slug":"tmux-server-setcommandalias"},{"id":"tmux.Window.SetPaneColours","name":"SetPaneColours","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetPaneColours(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"w","type":"Window"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetPaneColours replaces the complete \"pane-colours\" window option array with SparseArray[string], preserving holes and empty values (tmux 3.3 or later). Read it with [WindowOptionValues.PaneColours] from [Window.Options]; [Window.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7137,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetPaneColours","product":"core","slug":"tmux-window-setpanecolours"},{"id":"tmux.GlobalWindowScope.SetPaneColours","name":"SetPaneColours","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetPaneColours(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetPaneColours replaces the complete \"pane-colours\" window option array with SparseArray[string], preserving holes and empty values (tmux 3.3 or later). Read it with [WindowOptionValues.PaneColours] from [GlobalWindowScope.Options]; [GlobalWindowScope.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7148,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetPaneColours","product":"core","slug":"tmux-globalwindowscope-setpanecolours"},{"id":"tmux.Pane.SetPaneColours","name":"SetPaneColours","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetPaneColours(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"p","type":"Pane"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetPaneColours replaces the complete \"pane-colours\" pane option array with SparseArray[string], preserving holes and empty values (tmux 3.3 or later). Read it with [PaneOptionValues.PaneColours] from [Pane.Options]; [Pane.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7157,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetPaneColours","product":"core","slug":"tmux-pane-setpanecolours"},{"id":"tmux.Session.SetStatusFormat","name":"SetStatusFormat","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetStatusFormat(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"Session"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetStatusFormat replaces the complete \"status-format\" session option array with SparseArray[string], preserving holes and empty values (tmux 3.2a or later). Read it with [SessionOptionValues.StatusFormat] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7168,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetStatusFormat","product":"core","slug":"tmux-session-setstatusformat"},{"id":"tmux.GlobalSessionScope.SetStatusFormat","name":"SetStatusFormat","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetStatusFormat(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetStatusFormat replaces the complete \"status-format\" session option array with SparseArray[string], preserving holes and empty values (tmux 3.2a or later). Read it with [SessionOptionValues.StatusFormat] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7179,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetStatusFormat","product":"core","slug":"tmux-globalsessionscope-setstatusformat"},{"id":"tmux.Server.SetTerminalFeatures","name":"SetTerminalFeatures","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetTerminalFeatures(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"Server"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetTerminalFeatures replaces the complete \"terminal-features\" server option array with SparseArray[string], preserving holes and empty values (tmux 3.2a or later). Read it with [ServerOptionValues.TerminalFeatures] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7188,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetTerminalFeatures","product":"core","slug":"tmux-server-setterminalfeatures"},{"id":"tmux.Server.SetTerminalOverrides","name":"SetTerminalOverrides","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetTerminalOverrides(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"Server"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetTerminalOverrides replaces the complete \"terminal-overrides\" server option array with SparseArray[string], preserving holes and empty values (tmux 3.2a or later). Read it with [ServerOptionValues.TerminalOverrides] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7197,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetTerminalOverrides","product":"core","slug":"tmux-server-setterminaloverrides"},{"id":"tmux.Session.SetUpdateEnvironment","name":"SetUpdateEnvironment","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetUpdateEnvironment(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"Session"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetUpdateEnvironment replaces the complete \"update-environment\" session option array with SparseArray[string], preserving holes and empty values (tmux 3.2a or later). Read it with [SessionOptionValues.UpdateEnvironment] from [Session.Options]; [Session.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7206,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetUpdateEnvironment","product":"core","slug":"tmux-session-setupdateenvironment"},{"id":"tmux.GlobalSessionScope.SetUpdateEnvironment","name":"SetUpdateEnvironment","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetUpdateEnvironment(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetUpdateEnvironment replaces the complete \"update-environment\" session option array with SparseArray[string], preserving holes and empty values (tmux 3.2a or later). Read it with [SessionOptionValues.UpdateEnvironment] from [GlobalSessionScope.Options]; [GlobalSessionScope.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7217,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetUpdateEnvironment","product":"core","slug":"tmux-globalsessionscope-setupdateenvironment"},{"id":"tmux.Server.SetUserKeys","name":"SetUserKeys","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetUserKeys(ctx context.Context, value SparseArray[string]) (SetArrayResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"value","type":"SparseArray[string]"}],"receiver":{"name":"s","type":"Server"},"returns":"(SetArrayResult, error)"}],"doc":{"summary":"SetUserKeys replaces the complete \"user-keys\" server option array with SparseArray[string], preserving holes and empty values (tmux 3.2a or later). Read it with [ServerOptionValues.UserKeys] from [Server.Options]; [Server.UnsetOption] restores inheritance or the global default. Replacement is not atomic: the result reports confirmed writes, and failures stop without rollback. Serialize concurrent replacement of the same target and option."},"source":{"file":"tmux/option_generated.go","line":7226,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetUserKeys","product":"core","slug":"tmux-server-setuserkeys"},{"id":"tmux.SetOptionOptions","name":"SetOptionOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SetOptionOptions controls set-option mutation flags. Its zero value sends no optional mutation flags."},"source":{"file":"tmux/option_mutation.go","line":7,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetOptionOptions","product":"core","slug":"tmux-setoptionoptions"},{"id":"tmux.SetOptionOptions.ExpandFormat","name":"ExpandFormat","kind":"attribute","modifiers":[],"parent":"tmux.SetOptionOptions","signatures":[],"type":"bool","doc":{"summary":"ExpandFormat expands tmux formats in the value before storing it."},"source":{"file":"tmux/option_mutation.go","line":9,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetOptionOptions.ExpandFormat","product":"core","slug":"tmux-setoptionoptions-expandformat"},{"id":"tmux.SetOptionOptions.PreventOverwrite","name":"PreventOverwrite","kind":"attribute","modifiers":[],"parent":"tmux.SetOptionOptions","signatures":[],"type":"bool","doc":{"summary":"PreventOverwrite leaves an existing option unchanged."},"source":{"file":"tmux/option_mutation.go","line":11,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetOptionOptions.PreventOverwrite","product":"core","slug":"tmux-setoptionoptions-preventoverwrite"},{"id":"tmux.SetOptionOptions.Quiet","name":"Quiet","kind":"attribute","modifiers":[],"parent":"tmux.SetOptionOptions","signatures":[],"type":"bool","doc":{"summary":"Quiet suppresses tmux's missing-option diagnostic."},"source":{"file":"tmux/option_mutation.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetOptionOptions.Quiet","product":"core","slug":"tmux-setoptionoptions-quiet"},{"id":"tmux.UnsetOptionOptions","name":"UnsetOptionOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"UnsetOptionOptions controls set-option unset behavior. Its zero value unsets only the selected option."},"source":{"file":"tmux/option_mutation.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnsetOptionOptions","product":"core","slug":"tmux-unsetoptionoptions"},{"id":"tmux.UnsetOptionOptions.UnsetPanes","name":"UnsetPanes","kind":"attribute","modifiers":[],"parent":"tmux.UnsetOptionOptions","signatures":[],"type":"bool","doc":{"summary":"UnsetPanes unsets a window option on every pane in a Window receiver."},"source":{"file":"tmux/option_mutation.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnsetOptionOptions.UnsetPanes","product":"core","slug":"tmux-unsetoptionoptions-unsetpanes"},{"id":"tmux.UnsetOptionOptions.Quiet","name":"Quiet","kind":"attribute","modifiers":[],"parent":"tmux.UnsetOptionOptions","signatures":[],"type":"bool","doc":{"summary":"Quiet suppresses tmux's missing-option diagnostic."},"source":{"file":"tmux/option_mutation.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnsetOptionOptions.Quiet","product":"core","slug":"tmux-unsetoptionoptions-quiet"},{"id":"tmux.Server.SetOption","name":"SetOption","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetOption stores a server-scope option without refreshing existing models. It may validate a known option against the live version. Completed failures return secret-safe option errors; cancellation does not prove the mutation was not accepted by tmux."},"source":{"file":"tmux/option_mutation.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetOption","product":"core","slug":"tmux-server-setoption"},{"id":"tmux.GlobalSessionScope.SetOption","name":"SetOption","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) SetOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"SetOption stores a global session option without refreshing existing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/option_mutation.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.SetOption","product":"core","slug":"tmux-globalsessionscope-setoption"},{"id":"tmux.GlobalWindowScope.SetOption","name":"SetOption","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) SetOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"SetOption stores a global window option without refreshing existing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/option_mutation.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.SetOption","product":"core","slug":"tmux-globalwindowscope-setoption"},{"id":"tmux.Session.SetOption","name":"SetOption","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SetOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SetOption stores a session option at this stable session target without refreshing existing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/option_mutation.go","line":92,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SetOption","product":"core","slug":"tmux-session-setoption"},{"id":"tmux.Window.SetOption","name":"SetOption","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SetOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SetOption stores a window option at this exact window target without refreshing existing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/option_mutation.go","line":108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SetOption","product":"core","slug":"tmux-window-setoption"},{"id":"tmux.Pane.SetOption","name":"SetOption","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SetOption stores a pane option at this exact pane target without refreshing existing models. Completed failures are secret-safe option errors; cancellation does not prove tmux did not accept the mutation."},"source":{"file":"tmux/option_mutation.go","line":128,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetOption","product":"core","slug":"tmux-pane-setoption"},{"id":"tmux.Server.AppendOption","name":"AppendOption","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) AppendOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"AppendOption appends to a server-scope option without refreshing existing models. Completed failures are secret-safe option errors; cancellation does not prove the append was not accepted."},"source":{"file":"tmux/option_mutation.go","line":144,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.AppendOption","product":"core","slug":"tmux-server-appendoption"},{"id":"tmux.GlobalSessionScope.AppendOption","name":"AppendOption","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) AppendOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"AppendOption appends to a global session option without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove the append was not accepted."},"source":{"file":"tmux/option_mutation.go","line":165,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.AppendOption","product":"core","slug":"tmux-globalsessionscope-appendoption"},{"id":"tmux.GlobalWindowScope.AppendOption","name":"AppendOption","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) AppendOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"AppendOption appends to a global window option without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove the append was not accepted."},"source":{"file":"tmux/option_mutation.go","line":186,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.AppendOption","product":"core","slug":"tmux-globalwindowscope-appendoption"},{"id":"tmux.Session.AppendOption","name":"AppendOption","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) AppendOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"AppendOption appends to a session option at this stable session target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove the append was not accepted."},"source":{"file":"tmux/option_mutation.go","line":207,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.AppendOption","product":"core","slug":"tmux-session-appendoption"},{"id":"tmux.Window.AppendOption","name":"AppendOption","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) AppendOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"AppendOption appends to a window option at this exact window target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove the append was not accepted."},"source":{"file":"tmux/option_mutation.go","line":223,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.AppendOption","product":"core","slug":"tmux-window-appendoption"},{"id":"tmux.Pane.AppendOption","name":"AppendOption","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) AppendOption(\n\tctx context.Context,\n\tname string,\n\tvalue string,\n\toptions SetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"SetOptionOptions"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"AppendOption appends to a pane option at this exact pane target without refreshing models. Completed failures are secret-safe option errors; cancellation does not prove the append was not accepted."},"source":{"file":"tmux/option_mutation.go","line":243,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.AppendOption","product":"core","slug":"tmux-pane-appendoption"},{"id":"tmux.Server.UnsetOption","name":"UnsetOption","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) UnsetOption(\n\tctx context.Context,\n\tname string,\n\toptions UnsetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"options","type":"UnsetOptionOptions"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"UnsetOption unsets a server-scope option without refreshing existing models. UnsetPanes is invalid at server scope. Completed failures are secret-safe option errors; cancellation does not prove the unset was not accepted."},"source":{"file":"tmux/option_mutation.go","line":259,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.UnsetOption","product":"core","slug":"tmux-server-unsetoption"},{"id":"tmux.GlobalSessionScope.UnsetOption","name":"UnsetOption","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) UnsetOption(\n\tctx context.Context,\n\tname string,\n\toptions UnsetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"options","type":"UnsetOptionOptions"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"error"}],"doc":{"summary":"UnsetOption unsets a global session option without refreshing models. UnsetPanes is invalid at this scope; cancellation does not prove the unset was not accepted."},"source":{"file":"tmux/option_mutation.go","line":273,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.UnsetOption","product":"core","slug":"tmux-globalsessionscope-unsetoption"},{"id":"tmux.GlobalWindowScope.UnsetOption","name":"UnsetOption","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) UnsetOption(\n\tctx context.Context,\n\tname string,\n\toptions UnsetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"options","type":"UnsetOptionOptions"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"error"}],"doc":{"summary":"UnsetOption unsets a global window option without refreshing models. UnsetPanes is invalid at this scope; cancellation does not prove the unset was not accepted."},"source":{"file":"tmux/option_mutation.go","line":295,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.UnsetOption","product":"core","slug":"tmux-globalwindowscope-unsetoption"},{"id":"tmux.Session.UnsetOption","name":"UnsetOption","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) UnsetOption(\n\tctx context.Context,\n\tname string,\n\toptions UnsetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"options","type":"UnsetOptionOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"UnsetOption unsets a session option at this stable session target without refreshing models. UnsetPanes is invalid at this scope; cancellation does not prove the unset was not accepted."},"source":{"file":"tmux/option_mutation.go","line":317,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.UnsetOption","product":"core","slug":"tmux-session-unsetoption"},{"id":"tmux.Window.UnsetOption","name":"UnsetOption","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) UnsetOption(\n\tctx context.Context,\n\tname string,\n\toptions UnsetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"options","type":"UnsetOptionOptions"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"UnsetOption unsets a window option at this exact window target, or its pane copies with UnsetPanes, without refreshing models. Cancellation does not prove the unset was not accepted."},"source":{"file":"tmux/option_mutation.go","line":335,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.UnsetOption","product":"core","slug":"tmux-window-unsetoption"},{"id":"tmux.Pane.UnsetOption","name":"UnsetOption","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) UnsetOption(\n\tctx context.Context,\n\tname string,\n\toptions UnsetOptionOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"},{"name":"options","type":"UnsetOptionOptions"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"UnsetOption unsets a pane option at this exact pane target without refreshing models. UnsetPanes is invalid at this scope; cancellation does not prove the unset was not accepted."},"source":{"file":"tmux/option_mutation.go","line":358,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.UnsetOption","product":"core","slug":"tmux-pane-unsetoption"},{"id":"tmux.Server.Options","name":"Options","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Options(ctx context.Context) (ServerOptionValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"(ServerOptionValues, error)"}],"doc":{"summary":"Options returns a freshly decoded, caller-owned view of known server options, including inherited values. A read or transport failure is returned rather than answered with zero values; context errors propagate. Each returned accessor names the setter that writes it, so [ServerOptionValues.BufferLimit] pairs with [Server.SetBufferLimit]."},"source":{"file":"tmux/option_read.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Options","product":"core","slug":"tmux-server-options"},{"id":"tmux.GlobalSessionScope.Options","name":"Options","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) Options(ctx context.Context) (SessionOptionValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"(SessionOptionValues, error)"}],"doc":{"summary":"Options returns a freshly decoded, caller-owned view of known global session options, including defaults. A read failure is returned rather than answered with zero values; context errors propagate. Each returned accessor names the setter that writes it, so [SessionOptionValues.Status] pairs with [GlobalSessionScope.SetStatus]."},"source":{"file":"tmux/option_read.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.Options","product":"core","slug":"tmux-globalsessionscope-options"},{"id":"tmux.GlobalWindowScope.Options","name":"Options","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) Options(ctx context.Context) (WindowOptionValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"(WindowOptionValues, error)"}],"doc":{"summary":"Options returns a freshly decoded, caller-owned view of known global window options, including defaults. A read failure is returned rather than answered with zero values; context errors propagate. Each returned accessor names the setter that writes it, so [WindowOptionValues.MainPaneWidth] pairs with [GlobalWindowScope.SetMainPaneWidth]."},"source":{"file":"tmux/option_read.go","line":55,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.Options","product":"core","slug":"tmux-globalwindowscope-options"},{"id":"tmux.Session.Options","name":"Options","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Options(ctx context.Context) (SessionOptionValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"(SessionOptionValues, error)"}],"doc":{"summary":"Options returns a freshly decoded, caller-owned view of known options at this stable session target, including inherited values. A read failure is returned rather than answered with zero values; context errors propagate. Each returned accessor names the setter that writes it, so [SessionOptionValues.Mouse] pairs with [Session.SetMouse]."},"source":{"file":"tmux/option_read.go","line":75,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Options","product":"core","slug":"tmux-session-options"},{"id":"tmux.Window.Options","name":"Options","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Options(ctx context.Context) (WindowOptionValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"(WindowOptionValues, error)"}],"doc":{"summary":"Options returns a freshly decoded, caller-owned view of known options at this exact window target, including inherited values. The receiver's exact linked session context controls tmux format evaluation. A read failure is returned rather than answered with zero values. Each returned accessor names the setter that writes it, so [WindowOptionValues.MainPaneWidth] pairs with [Window.SetMainPaneWidth]."},"source":{"file":"tmux/option_read.go","line":100,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Options","product":"core","slug":"tmux-window-options"},{"id":"tmux.Pane.Options","name":"Options","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Options(ctx context.Context) (PaneOptionValues, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"(PaneOptionValues, error)"}],"doc":{"summary":"Options returns a freshly decoded, caller-owned view of known options at this exact pane target, including inherited values. The receiver's exact linked session context controls tmux format evaluation. A read failure is returned rather than answered with zero values. Each returned accessor names the setter that writes it, so [PaneOptionValues.WindowStyle] pairs with [Pane.SetWindowStyle]."},"source":{"file":"tmux/option_read.go","line":125,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Options","product":"core","slug":"tmux-pane-options"},{"id":"tmux.Server.RawOption","name":"RawOption","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) RawOption(ctx context.Context, name string) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawOption returns one exact server-scope option value. A successful string is caller-owned; ok reports presence. Targeted reads do not use list leniency, and completed failures return a secret-safe option error. An unindexed empty array is indistinguishable from an empty scalar; use Options for typed array presence."},"source":{"file":"tmux/option_read.go","line":149,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.RawOption","product":"core","slug":"tmux-server-rawoption"},{"id":"tmux.GlobalSessionScope.RawOption","name":"RawOption","kind":"method","modifiers":[],"parent":"tmux.GlobalSessionScope","signatures":[{"raw":"func (s GlobalSessionScope) RawOption(\n\tctx context.Context,\n\tname string,\n) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"GlobalSessionScope"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawOption returns one exact global session-option value. A successful string is caller-owned, and ok reports presence. An unindexed empty array is indistinguishable from an empty scalar; use Options for typed array presence."},"source":{"file":"tmux/option_read.go","line":157,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope.RawOption","product":"core","slug":"tmux-globalsessionscope-rawoption"},{"id":"tmux.GlobalWindowScope.RawOption","name":"RawOption","kind":"method","modifiers":[],"parent":"tmux.GlobalWindowScope","signatures":[{"raw":"func (s GlobalWindowScope) RawOption(\n\tctx context.Context,\n\tname string,\n) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"GlobalWindowScope"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawOption returns one exact global window-option value. A successful string is caller-owned, and ok reports presence. An unindexed empty array is indistinguishable from an empty scalar; use Options for typed array presence."},"source":{"file":"tmux/option_read.go","line":168,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope.RawOption","product":"core","slug":"tmux-globalwindowscope-rawoption"},{"id":"tmux.Session.RawOption","name":"RawOption","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) RawOption(ctx context.Context, name string) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawOption returns one exact session option value at this stable session target. A successful string is caller-owned; ok reports presence, and a completed failure is returned rather than normalized. An unindexed empty array is indistinguishable from an empty scalar; use Options for typed array presence."},"source":{"file":"tmux/option_read.go","line":180,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.RawOption","product":"core","slug":"tmux-session-rawoption"},{"id":"tmux.Window.RawOption","name":"RawOption","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) RawOption(ctx context.Context, name string) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawOption returns one exact window option value at this exact window target. A successful string is caller-owned; the receiver's exact linked session context controls tmux format evaluation, and a completed failure is returned."},"source":{"file":"tmux/option_read.go","line":191,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.RawOption","product":"core","slug":"tmux-window-rawoption"},{"id":"tmux.Pane.RawOption","name":"RawOption","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) RawOption(ctx context.Context, name string) (string, bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"(string, bool, error)"}],"doc":{"summary":"RawOption returns one exact pane option value at this exact pane target. A successful string is caller-owned; the receiver's exact linked session context controls tmux format evaluation, and a completed failure is returned."},"source":{"file":"tmux/option_read.go","line":202,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.RawOption","product":"core","slug":"tmux-pane-rawoption"},{"id":"tmux.SetArrayResult","name":"SetArrayResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SetArrayResult reports confirmed progress from a typed sparse-array replacement. AppliedIndices is caller-owned and is non-nil whenever mutation was attempted."},"source":{"file":"tmux/option_runtime.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetArrayResult","product":"core","slug":"tmux-setarrayresult"},{"id":"tmux.SetArrayResult.Replaced","name":"Replaced","kind":"attribute","modifiers":[],"parent":"tmux.SetArrayResult","signatures":[],"type":"bool","doc":{"summary":"Replaced reports whether tmux confirmed the base replacement."},"source":{"file":"tmux/option_runtime.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetArrayResult.Replaced","product":"core","slug":"tmux-setarrayresult-replaced"},{"id":"tmux.SetArrayResult.AppliedIndices","name":"AppliedIndices","kind":"attribute","modifiers":[],"parent":"tmux.SetArrayResult","signatures":[],"type":"[]int","doc":{"summary":"AppliedIndices lists confirmed indexed writes in ascending order."},"source":{"file":"tmux/option_runtime.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetArrayResult.AppliedIndices","product":"core","slug":"tmux-setarrayresult-appliedindices"},{"id":"tmux.GlobalSessionScope","name":"GlobalSessionScope","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"GlobalSessionScope is an immutable handle for global session options and hooks. Its zero value is invalid because it contains a zero [Server]."},"source":{"file":"tmux/option_scope.go","line":5,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalSessionScope","product":"core","slug":"tmux-globalsessionscope"},{"id":"tmux.GlobalWindowScope","name":"GlobalWindowScope","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"GlobalWindowScope is an immutable handle for global window options and hooks. Its zero value is invalid because it contains a zero [Server]."},"source":{"file":"tmux/option_scope.go","line":11,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.GlobalWindowScope","product":"core","slug":"tmux-globalwindowscope"},{"id":"tmux.Server.GlobalSessionScope","name":"GlobalSessionScope","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) GlobalSessionScope() GlobalSessionScope","params":[],"receiver":{"name":"s","type":"Server"},"returns":"GlobalSessionScope"}],"doc":{"summary":"GlobalSessionScope returns a handle that preserves s and its error policy."},"source":{"file":"tmux/option_scope.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.GlobalSessionScope","product":"core","slug":"tmux-server-globalsessionscope"},{"id":"tmux.Server.GlobalWindowScope","name":"GlobalWindowScope","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) GlobalWindowScope() GlobalWindowScope","params":[],"receiver":{"name":"s","type":"Server"},"returns":"GlobalWindowScope"}],"doc":{"summary":"GlobalWindowScope returns a handle that preserves s and its error policy."},"source":{"file":"tmux/option_scope.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.GlobalWindowScope","product":"core","slug":"tmux-server-globalwindowscope"},{"id":"tmux.OptionOrigin","name":"OptionOrigin","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"OptionOrigin identifies where a present option value was resolved. The declared values form the complete set of valid origins."},"source":{"file":"tmux/option_value.go","line":7,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionOrigin","product":"core","slug":"tmux-optionorigin"},{"id":"tmux.OptionOrigin.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.OptionOrigin","signatures":[{"raw":"func (o OptionOrigin) String() string","params":[],"receiver":{"name":"o","type":"OptionOrigin"},"returns":"string"}],"doc":{"summary":"String returns the origin's tmux vocabulary, so an origin prints as a word beside the generated option values, which all carry String."},"source":{"file":"tmux/option_value.go","line":11,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionOrigin.String","product":"core","slug":"tmux-optionorigin-string"},{"id":"tmux.OptionOriginLocal","name":"OptionOriginLocal","kind":"constant","modifiers":[],"signatures":[],"type":"OptionOrigin","doc":{"summary":"OptionOriginLocal identifies a value set directly at the queried scope."},"source":{"file":"tmux/option_value.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionOriginLocal","product":"core","slug":"tmux-optionoriginlocal"},{"id":"tmux.OptionOriginInherited","name":"OptionOriginInherited","kind":"constant","modifiers":[],"signatures":[],"type":"OptionOrigin","doc":{"summary":"OptionOriginInherited identifies a value inherited from a parent scope."},"source":{"file":"tmux/option_value.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionOriginInherited","product":"core","slug":"tmux-optionorigininherited"},{"id":"tmux.OptionValue","name":"OptionValue","kind":"struct","modifiers":[],"signatures":[],"typeParams":["T any"],"typeParameters":[{"name":"T","bound":"any"}],"doc":{"summary":"OptionValue preserves option presence and resolution origin. Its zero value is absent. Copies of reference-bearing T values are shallow."},"source":{"file":"tmux/option_value.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionValue","product":"core","slug":"tmux-optionvalue"},{"id":"tmux.OptionValue.Get","name":"Get","kind":"method","modifiers":[],"parent":"tmux.OptionValue","signatures":[{"raw":"func (v OptionValue[T]) Get() (T, bool)","params":[],"receiver":{"name":"v","type":"OptionValue[T]"},"returns":"(T, bool)"}],"doc":{"summary":"Get returns the option value and reports whether it is present."},"source":{"file":"tmux/option_value.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionValue.Get","product":"core","slug":"tmux-optionvalue-get"},{"id":"tmux.OptionValue.Origin","name":"Origin","kind":"method","modifiers":[],"parent":"tmux.OptionValue","signatures":[{"raw":"func (v OptionValue[T]) Origin() (OptionOrigin, bool)","params":[],"receiver":{"name":"v","type":"OptionValue[T]"},"returns":"(OptionOrigin, bool)"}],"doc":{"summary":"Origin returns the resolution origin and reports whether the option is present."},"source":{"file":"tmux/option_value.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OptionValue.Origin","product":"core","slug":"tmux-optionvalue-origin"},{"id":"tmux.ErrInvalidCaptureRequest","name":"ErrInvalidCaptureRequest","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidCaptureRequest identifies a capture request that cannot be represented safely as tmux arguments."},"source":{"file":"tmux/pane_capture.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidCaptureRequest","product":"core","slug":"tmux-errinvalidcapturerequest"},{"id":"tmux.CaptureRequestError","name":"CaptureRequestError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CaptureRequestError reports a [CapturePaneRequest] field that cannot be represented as a tmux capture-pane argument. It matches [ErrInvalidCaptureRequest] through [errors.Is] and is available through [errors.As]."},"source":{"file":"tmux/pane_capture.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CaptureRequestError","product":"core","slug":"tmux-capturerequesterror"},{"id":"tmux.CaptureRequestError.Field","name":"Field","kind":"attribute","modifiers":[],"parent":"tmux.CaptureRequestError","signatures":[],"type":"string","doc":{"summary":"Field names the invalid request field."},"source":{"file":"tmux/pane_capture.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CaptureRequestError.Field","product":"core","slug":"tmux-capturerequesterror-field"},{"id":"tmux.CaptureRequestError.Value","name":"Value","kind":"attribute","modifiers":[],"parent":"tmux.CaptureRequestError","signatures":[],"type":"string","doc":{"summary":"Value is the rejected field value. It may be empty when absence is the error."},"source":{"file":"tmux/pane_capture.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CaptureRequestError.Value","product":"core","slug":"tmux-capturerequesterror-value"},{"id":"tmux.CaptureRequestError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.CaptureRequestError","signatures":[],"type":"string","doc":{"summary":"Reason describes the violated request constraint without promising a stable complete error string."},"source":{"file":"tmux/pane_capture.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CaptureRequestError.Reason","product":"core","slug":"tmux-capturerequesterror-reason"},{"id":"tmux.CaptureRequestError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.CaptureRequestError","signatures":[{"raw":"func (e *CaptureRequestError) Error() string","params":[],"receiver":{"name":"e","type":"*CaptureRequestError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/pane_capture.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CaptureRequestError.Error","product":"core","slug":"tmux-capturerequesterror-error"},{"id":"tmux.CaptureRequestError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.CaptureRequestError","signatures":[{"raw":"func (e *CaptureRequestError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*CaptureRequestError"},"returns":"error"}],"doc":{"summary":"Unwrap makes CaptureRequestError compatible with ErrInvalidCaptureRequest."},"source":{"file":"tmux/pane_capture.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CaptureRequestError.Unwrap","product":"core","slug":"tmux-capturerequesterror-unwrap"},{"id":"tmux.CapturePosition","name":"CapturePosition","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CapturePosition selects a line relative to tmux's visible pane or history. Its zero value omits the boundary and lets tmux use the visible-screen default. Construct numeric positions with [CaptureLine]."},"source":{"file":"tmux/pane_capture.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePosition","product":"core","slug":"tmux-captureposition"},{"id":"tmux.CaptureBoundary","name":"CaptureBoundary","kind":"constant","modifiers":[],"signatures":[],"type":"CapturePosition","doc":{"summary":"CaptureBoundary selects the start of history when used as Start and the end of the visible pane when used as End."},"source":{"file":"tmux/pane_capture.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CaptureBoundary","product":"core","slug":"tmux-captureboundary"},{"id":"tmux.CaptureLine","name":"CaptureLine","kind":"function","modifiers":[],"signatures":[{"raw":"func CaptureLine(line int) CapturePosition","params":[{"name":"line","type":"int"}],"returns":"CapturePosition"}],"doc":{"summary":"CaptureLine returns the canonical tmux representation of a capture line. Zero is the first visible line; negative values address history."},"source":{"file":"tmux/pane_capture.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CaptureLine","product":"core","slug":"tmux-captureline"},{"id":"tmux.CapturePaneRequest","name":"CapturePaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CapturePaneRequest configures pane capture. Its zero value captures the visible screen with tmux's default text handling. Version-gated flags follow [UnsupportedPolicy]. [CaptureBoundary] selects the start of history for Start and the end of the visible pane for End."},"source":{"file":"tmux/pane_capture.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest","product":"core","slug":"tmux-capturepanerequest"},{"id":"tmux.CapturePaneRequest.Start","name":"Start","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"CapturePosition","doc":{"summary":"Start selects the first captured line. Empty uses tmux's visible-screen default; CaptureBoundary selects the start of history."},"source":{"file":"tmux/pane_capture.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.Start","product":"core","slug":"tmux-capturepanerequest-start"},{"id":"tmux.CapturePaneRequest.End","name":"End","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"CapturePosition","doc":{"summary":"End selects the last captured line. Empty uses tmux's visible-screen default; CaptureBoundary selects the end of the visible pane."},"source":{"file":"tmux/pane_capture.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.End","product":"core","slug":"tmux-capturepanerequest-end"},{"id":"tmux.CapturePaneRequest.EscapeSequences","name":"EscapeSequences","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"EscapeSequences includes terminal attribute escape sequences."},"source":{"file":"tmux/pane_capture.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.EscapeSequences","product":"core","slug":"tmux-capturepanerequest-escapesequences"},{"id":"tmux.CapturePaneRequest.EscapeNonPrintable","name":"EscapeNonPrintable","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"EscapeNonPrintable renders non-printable characters as octal escapes."},"source":{"file":"tmux/pane_capture.go","line":82,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.EscapeNonPrintable","product":"core","slug":"tmux-capturepanerequest-escapenonprintable"},{"id":"tmux.CapturePaneRequest.JoinWrapped","name":"JoinWrapped","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"JoinWrapped joins wrapped lines, preserves their trailing spaces, and implies tmux trimming independently of TrimTrailing."},"source":{"file":"tmux/pane_capture.go","line":85,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.JoinWrapped","product":"core","slug":"tmux-capturepanerequest-joinwrapped"},{"id":"tmux.CapturePaneRequest.PreserveTrailing","name":"PreserveTrailing","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"PreserveTrailing preserves trailing spaces at each line end."},"source":{"file":"tmux/pane_capture.go","line":87,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.PreserveTrailing","product":"core","slug":"tmux-capturepanerequest-preservetrailing"},{"id":"tmux.CapturePaneRequest.TrimTrailing","name":"TrimTrailing","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"TrimTrailing omits trailing positions without characters. It requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/pane_capture.go","line":90,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.TrimTrailing","product":"core","slug":"tmux-capturepanerequest-trimtrailing"},{"id":"tmux.CapturePaneRequest.AlternateScreen","name":"AlternateScreen","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"AlternateScreen captures the alternate screen without history."},"source":{"file":"tmux/pane_capture.go","line":92,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.AlternateScreen","product":"core","slug":"tmux-capturepanerequest-alternatescreen"},{"id":"tmux.CapturePaneRequest.Quiet","name":"Quiet","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Quiet suppresses tmux's error when AlternateScreen is requested but no alternate screen exists."},"source":{"file":"tmux/pane_capture.go","line":95,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.Quiet","product":"core","slug":"tmux-capturepanerequest-quiet"},{"id":"tmux.CapturePaneRequest.ModeScreen","name":"ModeScreen","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"ModeScreen captures the active mode screen. It requires tmux 3.6; see UnsupportedPolicy."},"source":{"file":"tmux/pane_capture.go","line":98,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.ModeScreen","product":"core","slug":"tmux-capturepanerequest-modescreen"},{"id":"tmux.CapturePaneRequest.Pending","name":"Pending","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Pending captures only the beginning of an incomplete escape sequence."},"source":{"file":"tmux/pane_capture.go","line":100,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.Pending","product":"core","slug":"tmux-capturepanerequest-pending"},{"id":"tmux.CapturePaneRequest.Hyperlinks","name":"Hyperlinks","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Hyperlinks captures hyperlink metadata for the selected lines. It requires tmux 3.7; see UnsupportedPolicy."},"source":{"file":"tmux/pane_capture.go","line":103,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.Hyperlinks","product":"core","slug":"tmux-capturepanerequest-hyperlinks"},{"id":"tmux.CapturePaneRequest.LineNumbers","name":"LineNumbers","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"LineNumbers prefixes each line with its tmux line number. It requires tmux 3.7; see UnsupportedPolicy."},"source":{"file":"tmux/pane_capture.go","line":106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.LineNumbers","product":"core","slug":"tmux-capturepanerequest-linenumbers"},{"id":"tmux.CapturePaneRequest.LineFlags","name":"LineFlags","kind":"attribute","modifiers":[],"parent":"tmux.CapturePaneRequest","signatures":[],"type":"bool","doc":{"summary":"LineFlags prefixes each line with tmux line metadata flags. It requires tmux 3.7; see UnsupportedPolicy."},"source":{"file":"tmux/pane_capture.go","line":109,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CapturePaneRequest.LineFlags","product":"core","slug":"tmux-capturepanerequest-lineflags"},{"id":"tmux.Pane.Capture","name":"Capture","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Capture(\n\tctx context.Context,\n\trequest CapturePaneRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"CapturePaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"([]string, error)"}],"doc":{"summary":"Capture captures printed content from the receiver's exact linked pane. It returns a caller-owned slice. A completed nonzero exit or stderr becomes a [CommandError]; any stdout tmux still printed is returned alongside it.","body":"This is a point-in-time capture rather than a stream; the zero request reads\nthe visible screen. It may include a shell's echo of [Pane.SendKeys] input.\nCompare whole lines when polling; use [ControlClient.NextNotification] or\n[Server.WaitFor] when the application exposes a stream or explicit signal.\n\nInvalid positions fail before execution. Transport and context failures return\nany partial stdout with the error.","examples":[{"lang":"console","intro":"Capture the pane's history and visible screen as lines after sending text to cat. CaptureBoundary selects the beginning of history and the end of the screen. Poll whole lines because terminal echo may appear before the application handles input; this example checks visible text, not command completion. Use Go 1.26.0 or newer and tmux 3.3a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-go.git libtmux-source && \\\n git -C libtmux-source checkout 6f3df55f8a41999e41225eefb3940545b834e6a2\n"},{"lang":"go","intro":"Save this dependency file as go.mod:","code":"module example.com/libtmux-api\n\ngo 1.26.0\n\nrequire github.com/libtmux/libtmux-go v0.0.0\n\nreplace github.com/libtmux/libtmux-go => ./libtmux-source\n"},{"lang":"go","intro":"Save this complete example as example_test.go. It creates a private temporary socket and stops its server before removing the directory. Cleanup failure fails the example and retains the socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-go/blob/6f3df55f8a41999e41225eefb3940545b834e6a2/tmux/api_pane_capture_example_test.go","code":"package tmux_test\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"slices\"\n\t\"time\"\n\n\t\"github.com/libtmux/libtmux-go/tmux\"\n)\n\n// Capture the pane's history and visible screen as lines after sending text\n// to cat. CaptureBoundary selects the beginning of history and the end of\n// the screen. Poll whole lines because terminal echo may appear before the\n// application handles input; this example checks visible text, not command\n// completion.\nfunc ExamplePane_Capture_complete() {\n\trun := func() (runErr error) {\n\t\tdirectory, err := os.MkdirTemp(\"\", \"libtmux-go-api-\")\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create socket directory: %w\", err)\n\t\t}\n\t\tserver, err := tmux.NewServer(tmux.ServerOptions{\n\t\t\tSocketPath: filepath.Join(directory, \"tmux.sock\"),\n\t\t\tConfigFile: \"/dev/null\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errors.Join(err, os.RemoveAll(directory))\n\t\t}\n\t\tdefer func() {\n\t\t\t// Cleanup has its own deadline because the operation may have timed out.\n\t\t\tcleanup, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\t\t\tdefer cancel()\n\t\t\tif err := server.Kill(cleanup); err != nil && !errors.Is(err, tmux.ErrNoServer) {\n\t\t\t\trunErr = errors.Join(runErr, fmt.Errorf(\"stop server at %s: %w\", directory, err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\trunErr = errors.Join(runErr, os.RemoveAll(directory))\n\t\t}()\n\t\tctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)\n\t\tdefer cancel()\n\t\tsession, err := server.NewSession(ctx, tmux.NewSessionRequest{\n\t\t\tName: \"work\", WindowName: \"editor\", Command: \"cat\", Width: 100, Height: 30,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create session: %w\", err)\n\t\t}\n\t\tpane, err := session.ResolveActivePane(ctx)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"resolve pane: %w\", err)\n\t\t}\n\t\ttext := \"api input\"\n\t\tif err := pane.SendKeys(ctx, tmux.SendKeysRequest{Command: &text, Literal: true}); err != nil {\n\t\t\treturn fmt.Errorf(\"send literal input: %w\", err)\n\t\t}\n\t\t// Capture is a point-in-time read, so wait for a complete matching line.\n\t\tticker := time.NewTicker(10 * time.Millisecond)\n\t\tdefer ticker.Stop()\n\t\tfor {\n\t\t\tlines, err := pane.Capture(ctx, tmux.CapturePaneRequest{\n\t\t\t\tStart: tmux.CaptureBoundary, End: tmux.CaptureBoundary,\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"capture pane: %w\", err)\n\t\t\t}\n\t\t\tif slices.Contains(lines, \"api input\") {\n\t\t\t\tfmt.Println(\"captured: api input\")\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tselect {\n\t\t\tcase <-ctx.Done():\n\t\t\t\treturn fmt.Errorf(\"wait for pane text: %w\", ctx.Err())\n\t\t\tcase <-ticker.C:\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\tif err := run(); err != nil {\n\t\tpanic(err)\n\t}\n\t// Output:\n\t// captured: api input\n}\n"},{"lang":"console","intro":"Run the saved file. Go checks the Output comment and fails on different output or an operation or cleanup error:","code":"$ GOWORK=off go test -count=1 -v example_test.go\n"}]},"source":{"file":"tmux/pane_capture.go","line":123,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Capture","product":"core","slug":"tmux-pane-capture"},{"id":"tmux.Pane.CaptureBytes","name":"CaptureBytes","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CaptureBytes(\n\tctx context.Context,\n\trequest CapturePaneRequest,\n) ([]byte, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"CapturePaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"([]byte, error)"}],"doc":{"summary":"CaptureBytes captures printed content from the receiver's exact linked pane as caller-owned stdout bytes. It preserves tmux's output delimiters and trailing newlines after tmux has interpreted the pane's terminal contents.","body":"Its validation and failure behavior match [Pane.Capture], including returning\npartial bytes with transport or context errors."},"source":{"file":"tmux/pane_capture.go","line":137,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CaptureBytes","product":"core","slug":"tmux-pane-capturebytes"},{"id":"tmux.Pane.CaptureToBuffer","name":"CaptureToBuffer","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CaptureToBuffer(\n\tctx context.Context,\n\tbuffer string,\n\trequest CapturePaneRequest,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"buffer","type":"string"},{"name":"request","type":"CapturePaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"CaptureToBuffer captures content from the receiver's exact linked pane into the nonempty named tmux buffer. The buffer is owned by tmux and no printed output is returned. A completed nonzero exit or stderr becomes a [CommandError].","body":"Invalid requests fail before execution. Transport and context errors are\ndelivery-ambiguous: the buffer may already have changed."},"source":{"file":"tmux/pane_capture.go","line":152,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CaptureToBuffer","product":"core","slug":"tmux-pane-capturetobuffer"},{"id":"tmux.Pane.CaptureToFile","name":"CaptureToFile","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CaptureToFile(\n\tctx context.Context,\n\tpath string,\n\trequest CapturePaneRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"path","type":"string"},{"name":"request","type":"CapturePaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"([]string, error)"}],"doc":{"summary":"CaptureToFile captures the receiver's exact linked pane through a tmux buffer and the file at path, returning the same lines [Pane.Capture] returns.","body":"Printed captures cannot safely cross a control connection, so [Pane.Capture]\nand [Pane.CaptureBytes] use a subprocess or reject a connection. CaptureToFile\nstages through a scratch buffer so capture, save, and cleanup can all use the\nconnection's command lanes.\n\npath must name a file the tmux server can write and this process can read.\nIt is replaced and left for the caller. Concurrent calls must use distinct\npaths. The scratch tmux buffer is deleted before return when possible.\n\nValidation and version gating match [Pane.Capture]. Capture, save, and\nfile-read failures return an error with no lines; buffer cleanup is best effort."},"source":{"file":"tmux/pane_capture.go","line":180,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CaptureToFile","product":"core","slug":"tmux-pane-capturetofile"},{"id":"tmux.Pane.CaptureTo","name":"CaptureTo","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CaptureTo(\n\tctx context.Context,\n\tdestination io.Writer,\n\trequest CapturePaneRequest,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"destination","type":"io.Writer"},{"name":"request","type":"CapturePaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"CaptureTo streams printed content from the receiver's exact linked pane into destination without holding a screen in memory, which is what makes a long scrollback affordable to write straight to a file or a compressor. Like [Pane.Capture] it reads the screen at one point in time rather than following it; the zero request reads the visible screen and version-gated fields follow [UnsupportedPolicy].","body":"A completed nonzero exit becomes a redacted command error, because CaptureTo\nreturns no bytes for the caller to inspect. Cancellation does not prove\ndestination received the complete screen, and a copy failure takes\nprecedence over a completed command's exit status because it means\ndestination never saw everything tmux sent. Printed captures always use a\nsubprocess, so a [Connection]-bound Pane returns\n[ErrConnectionRequiresProcess]; [Pane.CaptureToFile] stages through a tmux\nbuffer and runs over a connection."},"source":{"file":"tmux/pane_capture.go","line":388,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CaptureTo","product":"core","slug":"tmux-pane-captureto"},{"id":"tmux.NewPaneRequest","name":"NewPaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"NewPaneRequest configures a floating pane and requires tmux 3.7 or later. Its zero value creates a detached floating pane with tmux's default size, position, styles, and command. Nil pointer fields omit their options; nonnil pointers are explicit, including empty style or message strings. Width and Height must be nonnegative. Empty and Command are mutually exclusive. Unsupported tmux versions return [VersionTooLowError] rather than omitting fields.","body":"Methods copy pointers and Environment before I/O; concurrent mutation during\nthe copy is unsafe."},"source":{"file":"tmux/pane_create.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest","product":"core","slug":"tmux-newpanerequest"},{"id":"tmux.NewPaneRequest.Attach","name":"Attach","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Attach lets the created pane become active in the exact target winlink; false preserves its active pane."},"source":{"file":"tmux/pane_create.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Attach","product":"core","slug":"tmux-newpanerequest-attach"},{"id":"tmux.NewPaneRequest.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"string","doc":{"summary":"StartDirectory expands ~ and ~/... for the current user. Named-user forms such as ~other are rejected; empty inherits tmux's default."},"source":{"file":"tmux/pane_create.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.StartDirectory","product":"core","slug":"tmux-newpanerequest-startdirectory"},{"id":"tmux.NewPaneRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"string","doc":{"summary":"Command starts the pane with this shell command; empty uses tmux's default."},"source":{"file":"tmux/pane_create.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Command","product":"core","slug":"tmux-newpanerequest-command"},{"id":"tmux.NewPaneRequest.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"map[string]string","doc":{"summary":"Environment is emitted in lexically sorted key order. The map is not retained; nil and an empty map both add no entries."},"source":{"file":"tmux/pane_create.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Environment","product":"core","slug":"tmux-newpanerequest-environment"},{"id":"tmux.NewPaneRequest.Width","name":"Width","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"*int","doc":{"summary":"Width sets a nonnegative pane width; nil lets tmux choose."},"source":{"file":"tmux/pane_create.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Width","product":"core","slug":"tmux-newpanerequest-width"},{"id":"tmux.NewPaneRequest.Height","name":"Height","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"*int","doc":{"summary":"Height sets a nonnegative pane height; nil lets tmux choose."},"source":{"file":"tmux/pane_create.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Height","product":"core","slug":"tmux-newpanerequest-height"},{"id":"tmux.NewPaneRequest.X","name":"X","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"*int","doc":{"summary":"X sets the horizontal position; nil lets tmux choose."},"source":{"file":"tmux/pane_create.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.X","product":"core","slug":"tmux-newpanerequest-x"},{"id":"tmux.NewPaneRequest.Y","name":"Y","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"*int","doc":{"summary":"Y sets the vertical position; nil lets tmux choose."},"source":{"file":"tmux/pane_create.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Y","product":"core","slug":"tmux-newpanerequest-y"},{"id":"tmux.NewPaneRequest.Zoom","name":"Zoom","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Zoom preserves the target window's zoomed state."},"source":{"file":"tmux/pane_create.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Zoom","product":"core","slug":"tmux-newpanerequest-zoom"},{"id":"tmux.NewPaneRequest.Empty","name":"Empty","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Empty creates a pane without starting a command."},"source":{"file":"tmux/pane_create.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Empty","product":"core","slug":"tmux-newpanerequest-empty"},{"id":"tmux.NewPaneRequest.Style","name":"Style","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"*string","doc":{"summary":"Style sets the pane style; nil omits it."},"source":{"file":"tmux/pane_create.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Style","product":"core","slug":"tmux-newpanerequest-style"},{"id":"tmux.NewPaneRequest.ActiveBorderStyle","name":"ActiveBorderStyle","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"*string","doc":{"summary":"ActiveBorderStyle sets the active border style; nil omits it."},"source":{"file":"tmux/pane_create.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.ActiveBorderStyle","product":"core","slug":"tmux-newpanerequest-activeborderstyle"},{"id":"tmux.NewPaneRequest.InactiveBorderStyle","name":"InactiveBorderStyle","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"*string","doc":{"summary":"InactiveBorderStyle sets the inactive border style; nil omits it."},"source":{"file":"tmux/pane_create.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.InactiveBorderStyle","product":"core","slug":"tmux-newpanerequest-inactiveborderstyle"},{"id":"tmux.NewPaneRequest.Message","name":"Message","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"*string","doc":{"summary":"Message sets the pane message; nil omits it."},"source":{"file":"tmux/pane_create.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Message","product":"core","slug":"tmux-newpanerequest-message"},{"id":"tmux.NewPaneRequest.Keep","name":"Keep","kind":"attribute","modifiers":[],"parent":"tmux.NewPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Keep preserves the pane after its command exits."},"source":{"file":"tmux/pane_create.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPaneRequest.Keep","product":"core","slug":"tmux-newpanerequest-keep"},{"id":"tmux.SplitPaneRequest","name":"SplitPaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SplitPaneRequest configures tiled pane creation on tmux 3.2a or later. Its zero value creates a detached pane below the exact target with tmux's default size and command. Nil pointer fields omit their options; nonnil pointers are explicit, including empty style or message strings. Size and Percentage are mutually exclusive. Invalid values are rejected before tmux is mutated.","body":"Methods copy pointer and map values before I/O; concurrent mutation is unsafe.\nEmpty, styles, Message, and Keep require tmux 3.7 and follow\n[UnsupportedPolicy]. Empty and Command conflict only when Empty is supported."},"source":{"file":"tmux/pane_create.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest","product":"core","slug":"tmux-splitpanerequest"},{"id":"tmux.SplitPaneRequest.Attach","name":"Attach","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Attach lets the created pane become active in the exact target winlink; false preserves its active pane."},"source":{"file":"tmux/pane_create.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Attach","product":"core","slug":"tmux-splitpanerequest-attach"},{"id":"tmux.SplitPaneRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"PaneDirection","doc":{"summary":"Direction selects the side of the target; zero means below."},"source":{"file":"tmux/pane_create.go","line":72,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Direction","product":"core","slug":"tmux-splitpanerequest-direction"},{"id":"tmux.SplitPaneRequest.Size","name":"Size","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"*int","doc":{"summary":"Size selects a nonnegative absolute pane size; nil omits it."},"source":{"file":"tmux/pane_create.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Size","product":"core","slug":"tmux-splitpanerequest-size"},{"id":"tmux.SplitPaneRequest.Percentage","name":"Percentage","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"*int","doc":{"summary":"Percentage selects a size from 0 through 100; nil omits it. It is sent as tmux's \"-l N%\", which every supported version accepts; the older -p spelling is rejected by tmux 3.4."},"source":{"file":"tmux/pane_create.go","line":78,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Percentage","product":"core","slug":"tmux-splitpanerequest-percentage"},{"id":"tmux.SplitPaneRequest.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"string","doc":{"summary":"StartDirectory expands ~ and ~/... for the current user. Named-user forms such as ~other are rejected; empty inherits tmux's default."},"source":{"file":"tmux/pane_create.go","line":81,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.StartDirectory","product":"core","slug":"tmux-splitpanerequest-startdirectory"},{"id":"tmux.SplitPaneRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"string","doc":{"summary":"Command starts the pane with this shell command; empty uses tmux's default."},"source":{"file":"tmux/pane_create.go","line":83,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Command","product":"core","slug":"tmux-splitpanerequest-command"},{"id":"tmux.SplitPaneRequest.FullWindow","name":"FullWindow","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"FullWindow lets the new pane span the full window size."},"source":{"file":"tmux/pane_create.go","line":85,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.FullWindow","product":"core","slug":"tmux-splitpanerequest-fullwindow"},{"id":"tmux.SplitPaneRequest.Zoom","name":"Zoom","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Zoom preserves the window's zoomed state after the split."},"source":{"file":"tmux/pane_create.go","line":87,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Zoom","product":"core","slug":"tmux-splitpanerequest-zoom"},{"id":"tmux.SplitPaneRequest.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"map[string]string","doc":{"summary":"Environment is emitted in lexically sorted key order and is not retained; nil and an empty map both add no entries."},"source":{"file":"tmux/pane_create.go","line":90,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Environment","product":"core","slug":"tmux-splitpanerequest-environment"},{"id":"tmux.SplitPaneRequest.Empty","name":"Empty","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Empty requests an empty pane on tmux 3.7 or later."},"source":{"file":"tmux/pane_create.go","line":92,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Empty","product":"core","slug":"tmux-splitpanerequest-empty"},{"id":"tmux.SplitPaneRequest.Style","name":"Style","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"*string","doc":{"summary":"Style sets the pane style on tmux 3.7 or later; nil omits it."},"source":{"file":"tmux/pane_create.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Style","product":"core","slug":"tmux-splitpanerequest-style"},{"id":"tmux.SplitPaneRequest.ActiveBorderStyle","name":"ActiveBorderStyle","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"*string","doc":{"summary":"ActiveBorderStyle sets the active border style on tmux 3.7 or later; nil omits it."},"source":{"file":"tmux/pane_create.go","line":97,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.ActiveBorderStyle","product":"core","slug":"tmux-splitpanerequest-activeborderstyle"},{"id":"tmux.SplitPaneRequest.InactiveBorderStyle","name":"InactiveBorderStyle","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"*string","doc":{"summary":"InactiveBorderStyle sets the inactive border style on tmux 3.7 or later; nil omits it."},"source":{"file":"tmux/pane_create.go","line":100,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.InactiveBorderStyle","product":"core","slug":"tmux-splitpanerequest-inactiveborderstyle"},{"id":"tmux.SplitPaneRequest.Message","name":"Message","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"*string","doc":{"summary":"Message sets the pane message on tmux 3.7 or later; nil omits it."},"source":{"file":"tmux/pane_create.go","line":102,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Message","product":"core","slug":"tmux-splitpanerequest-message"},{"id":"tmux.SplitPaneRequest.Keep","name":"Keep","kind":"attribute","modifiers":[],"parent":"tmux.SplitPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Keep preserves the pane after its command exits on tmux 3.7 or later."},"source":{"file":"tmux/pane_create.go","line":104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SplitPaneRequest.Keep","product":"core","slug":"tmux-splitpanerequest-keep"},{"id":"tmux.Window.NewPane","name":"NewPane","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) NewPane(ctx context.Context, request NewPaneRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"NewPaneRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(Pane, error)"}],"doc":{"summary":"NewPane creates a floating pane in the receiver's exact winlink. Attach makes the new pane active in that session and winlink; it is not a global client-focus guarantee. The returned [Pane] is freshly materialized in the receiver SessionID and WindowID rather than by canonical ID-only refresh.","body":"If tmux reports a [PaneID] before a transport or refresh failure, the partial\nresult includes the receiver SessionID and WindowID. Other failures return\nzero; creation is not rolled back."},"source":{"file":"tmux/pane_create.go","line":115,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.NewPane","product":"core","slug":"tmux-window-newpane"},{"id":"tmux.Pane.NewPane","name":"NewPane","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) NewPane(ctx context.Context, request NewPaneRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"NewPaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"NewPane creates a floating pane relative to the receiver's exact linked-pane view. Attach makes the new pane active in that session and winlink; it is not a global client-focus guarantee. The returned [Pane] is freshly materialized in the receiver SessionID and WindowID.","body":"If tmux reports a [PaneID] before a transport or refresh failure, the partial\nresult includes the receiver SessionID and WindowID. Other failures return\nzero; creation is not rolled back."},"source":{"file":"tmux/pane_create.go","line":132,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.NewPane","product":"core","slug":"tmux-pane-newpane"},{"id":"tmux.Window.SplitPane","name":"SplitPane","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SplitPane(ctx context.Context, request SplitPaneRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SplitPaneRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(Pane, error)"}],"doc":{"summary":"SplitPane creates a tiled pane in the receiver's exact winlink. Attach makes the new pane active in that session and winlink; it is not a global client-focus guarantee. The returned [Pane] is freshly materialized in the receiver SessionID and WindowID rather than by canonical ID-only refresh. [Pane.Split] is the equivalent operation relative to an existing pane rather than its window.","body":"If tmux reports a [PaneID] before a transport or refresh failure, the partial\nresult also contains the receiver SessionID and WindowID. Other failures\nreturn zero; creation is not rolled back."},"source":{"file":"tmux/pane_create.go","line":302,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SplitPane","product":"core","slug":"tmux-window-splitpane"},{"id":"tmux.Pane.Split","name":"Split","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Split(ctx context.Context, request SplitPaneRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SplitPaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"Split creates a tiled pane relative to the receiver's exact linked-pane view. Attach makes the new pane active in that session and winlink; it is not a global client-focus guarantee. The returned [Pane] is freshly materialized in the receiver SessionID and WindowID. Named Split rather than SplitPane to avoid repeating Pane; [Window.SplitPane] is the equivalent operation relative to a window.","body":"If tmux reports a [PaneID] before a transport or refresh failure, the partial\nresult also contains the receiver SessionID and WindowID. Other failures\nreturn zero; creation is not rolled back."},"source":{"file":"tmux/pane_create.go","line":321,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Split","product":"core","slug":"tmux-pane-split"},{"id":"tmux.PaneResizeDirection","name":"PaneResizeDirection","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneResizeDirection selects a directional [Pane.Resize]. Its zero value selects no directional adjustment."},"source":{"file":"tmux/pane_geometry.go","line":10,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneResizeDirection","product":"core","slug":"tmux-paneresizedirection"},{"id":"tmux.PaneResizeDirectionNone","name":"PaneResizeDirectionNone","kind":"constant","modifiers":[],"signatures":[],"type":"PaneResizeDirection","doc":{"summary":"PaneResizeDirectionNone omits a directional resize."},"source":{"file":"tmux/pane_geometry.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneResizeDirectionNone","product":"core","slug":"tmux-paneresizedirectionnone"},{"id":"tmux.PaneResizeDirectionUp","name":"PaneResizeDirectionUp","kind":"constant","modifiers":[],"signatures":[],"type":"PaneResizeDirection","doc":{"summary":"PaneResizeDirectionUp selects tmux's upward adjustment."},"source":{"file":"tmux/pane_geometry.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneResizeDirectionUp","product":"core","slug":"tmux-paneresizedirectionup"},{"id":"tmux.PaneResizeDirectionDown","name":"PaneResizeDirectionDown","kind":"constant","modifiers":[],"signatures":[],"type":"PaneResizeDirection","doc":{"summary":"PaneResizeDirectionDown selects tmux's downward adjustment."},"source":{"file":"tmux/pane_geometry.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneResizeDirectionDown","product":"core","slug":"tmux-paneresizedirectiondown"},{"id":"tmux.PaneResizeDirectionLeft","name":"PaneResizeDirectionLeft","kind":"constant","modifiers":[],"signatures":[],"type":"PaneResizeDirection","doc":{"summary":"PaneResizeDirectionLeft selects tmux's leftward adjustment."},"source":{"file":"tmux/pane_geometry.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneResizeDirectionLeft","product":"core","slug":"tmux-paneresizedirectionleft"},{"id":"tmux.PaneResizeDirectionRight","name":"PaneResizeDirectionRight","kind":"constant","modifiers":[],"signatures":[],"type":"PaneResizeDirection","doc":{"summary":"PaneResizeDirectionRight selects tmux's rightward adjustment."},"source":{"file":"tmux/pane_geometry.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneResizeDirectionRight","product":"core","slug":"tmux-paneresizedirectionright"},{"id":"tmux.PaneSize","name":"PaneSize","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneSize is an opaque absolute cell count or percentage for [Pane.Resize]. Its zero value omits the dimension. [PaneCells](0) and [PanePercent](0) are explicit sizes, not zero PaneSize values."},"source":{"file":"tmux/pane_geometry.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSize","product":"core","slug":"tmux-panesize"},{"id":"tmux.PaneCells","name":"PaneCells","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneCells(cells int) PaneSize","params":[{"name":"cells","type":"int"}],"returns":"PaneSize"}],"doc":{"summary":"PaneCells returns an explicit pane size measured in cells. Resize validates that cells is nonnegative; zero remains an explicit request."},"source":{"file":"tmux/pane_geometry.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneCells","product":"core","slug":"tmux-panecells"},{"id":"tmux.PanePercent","name":"PanePercent","kind":"function","modifiers":[],"signatures":[{"raw":"func PanePercent(percent int) PaneSize","params":[{"name":"percent","type":"int"}],"returns":"PaneSize"}],"doc":{"summary":"PanePercent returns an explicit percentage of the window size. Resize validates that percent is between 0 and 100 inclusive; zero remains an explicit request."},"source":{"file":"tmux/pane_geometry.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PanePercent","product":"core","slug":"tmux-panepercent"},{"id":"tmux.ResizePaneRequest","name":"ResizePaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ResizePaneRequest selects one resize mode. Direction with Adjustment, dimensions, Zoom, Mouse, and TrimBelow are mutually exclusive modes; Height and Width may be set together. Its zero value sends a bare tmux resize-pane command rather than selecting a mode. When Direction is [PaneResizeDirectionNone], Adjustment must be zero."},"source":{"file":"tmux/pane_geometry.go","line":59,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizePaneRequest","product":"core","slug":"tmux-resizepanerequest"},{"id":"tmux.ResizePaneRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.ResizePaneRequest","signatures":[],"type":"PaneResizeDirection","doc":{"summary":"Direction selects a directional resize and requires Adjustment."},"source":{"file":"tmux/pane_geometry.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizePaneRequest.Direction","product":"core","slug":"tmux-resizepanerequest-direction"},{"id":"tmux.ResizePaneRequest.Adjustment","name":"Adjustment","kind":"attribute","modifiers":[],"parent":"tmux.ResizePaneRequest","signatures":[],"type":"int","doc":{"summary":"Adjustment is the positive number of cells moved in Direction. It must be zero when Direction is PaneResizeDirectionNone."},"source":{"file":"tmux/pane_geometry.go","line":64,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizePaneRequest.Adjustment","product":"core","slug":"tmux-resizepanerequest-adjustment"},{"id":"tmux.ResizePaneRequest.Height","name":"Height","kind":"attribute","modifiers":[],"parent":"tmux.ResizePaneRequest","signatures":[],"type":"PaneSize","doc":{"summary":"Height sets an absolute or percentage height. A zero PaneSize omits it."},"source":{"file":"tmux/pane_geometry.go","line":66,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizePaneRequest.Height","product":"core","slug":"tmux-resizepanerequest-height"},{"id":"tmux.ResizePaneRequest.Width","name":"Width","kind":"attribute","modifiers":[],"parent":"tmux.ResizePaneRequest","signatures":[],"type":"PaneSize","doc":{"summary":"Width sets an absolute or percentage width. A zero PaneSize omits it."},"source":{"file":"tmux/pane_geometry.go","line":68,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizePaneRequest.Width","product":"core","slug":"tmux-resizepanerequest-width"},{"id":"tmux.ResizePaneRequest.Zoom","name":"Zoom","kind":"attribute","modifiers":[],"parent":"tmux.ResizePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Zoom toggles the pane between its normal layout and full-window zoom."},"source":{"file":"tmux/pane_geometry.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizePaneRequest.Zoom","product":"core","slug":"tmux-resizepanerequest-zoom"},{"id":"tmux.ResizePaneRequest.Mouse","name":"Mouse","kind":"attribute","modifiers":[],"parent":"tmux.ResizePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Mouse begins tmux mouse resizing and is meaningful from a mouse binding."},"source":{"file":"tmux/pane_geometry.go","line":72,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizePaneRequest.Mouse","product":"core","slug":"tmux-resizepanerequest-mouse"},{"id":"tmux.ResizePaneRequest.TrimBelow","name":"TrimBelow","kind":"attribute","modifiers":[],"parent":"tmux.ResizePaneRequest","signatures":[],"type":"bool","doc":{"summary":"TrimBelow removes lines below the cursor and refills from history."},"source":{"file":"tmux/pane_geometry.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizePaneRequest.TrimBelow","product":"core","slug":"tmux-resizepanerequest-trimbelow"},{"id":"tmux.Pane.Resize","name":"Resize","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Resize(ctx context.Context, request ResizePaneRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ResizePaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"Resize runs tmux resize-pane against the receiver's exact linked session-window-pane target, then refreshes by PaneID. The returned canonical [Pane] may therefore carry a different linked-session or winlink context. If the resize is accepted but refresh fails, Resize returns the original receiver with that error.","body":"Invalid requests fail before execution. A completed command produces a\nredacted [CommandError] only for stderr; nonzero exits without stderr are\nfollowed by refresh. Transport errors return zero and are delivery-ambiguous."},"source":{"file":"tmux/pane_geometry.go","line":86,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Resize","product":"core","slug":"tmux-pane-resize"},{"id":"tmux.Pane.SetWidth","name":"SetWidth","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetWidth(ctx context.Context, width int) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"width","type":"int"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"SetWidth resizes the pane to a nonnegative absolute width in cells. Zero is an explicit width. Targeting, refresh, and error semantics match [Pane.Resize]."},"source":{"file":"tmux/pane_geometry.go","line":153,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetWidth","product":"core","slug":"tmux-pane-setwidth"},{"id":"tmux.Pane.SetHeight","name":"SetHeight","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetHeight(ctx context.Context, height int) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"height","type":"int"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"SetHeight resizes the pane to a nonnegative absolute height in cells. Zero is an explicit height. Targeting, refresh, and error semantics match [Pane.Resize]."},"source":{"file":"tmux/pane_geometry.go","line":160,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetHeight","product":"core","slug":"tmux-pane-setheight"},{"id":"tmux.Pane.SetTitle","name":"SetTitle","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SetTitle(ctx context.Context, title string) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"title","type":"string"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"SetTitle sets the title of the receiver's exact linked pane. tmux expands format expressions in title; the value is not a shell command. SetTitle then refreshes by PaneID, so the returned canonical [Pane] may carry a different linked-session or winlink context. If the mutation is accepted but refresh fails, SetTitle returns the original receiver with that error.","body":"Completed stderr produces a redacted [CommandError]; nonzero exits without\nstderr are followed by refresh. Transport errors return zero and are\ndelivery-ambiguous."},"source":{"file":"tmux/pane_geometry.go","line":173,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SetTitle","product":"core","slug":"tmux-pane-settitle"},{"id":"tmux.SendKeysRequest","name":"SendKeysRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SendKeysRequest configures tmux key input. Pointer values are copied before I/O and must not be mutated concurrently.","body":"Command must be nonnil unless Reset, Repeat, or CopyModeCommand is set. A\nnonnil empty Command is an explicit key operand and is followed by Enter\nunless SkipEnter is set. CopyModeCommand takes precedence over Command and\nsuppresses Enter. HexKeys takes precedence over Literal when both are set."},"source":{"file":"tmux/pane_input.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest","product":"core","slug":"tmux-sendkeysrequest"},{"id":"tmux.SendKeysRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"*string","doc":{"summary":"Command is one tmux key operand. Nil selects a flag-only invocation; nonnil, including an empty string, supplies the operand."},"source":{"file":"tmux/pane_input.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.Command","product":"core","slug":"tmux-sendkeysrequest-command"},{"id":"tmux.SendKeysRequest.SkipEnter","name":"SkipEnter","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"SkipEnter prevents the separate Enter key sent after Command."},"source":{"file":"tmux/pane_input.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.SkipEnter","product":"core","slug":"tmux-sendkeysrequest-skipenter"},{"id":"tmux.SendKeysRequest.SuppressHistory","name":"SuppressHistory","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"SuppressHistory prefixes Command with one space. Whether that excludes the text from history depends on the application or shell in the pane."},"source":{"file":"tmux/pane_input.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.SuppressHistory","product":"core","slug":"tmux-sendkeysrequest-suppresshistory"},{"id":"tmux.SendKeysRequest.Literal","name":"Literal","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"Literal disables tmux key-name lookup and treats Command as literal UTF-8. It does not bypass interpretation by the pane's application or shell."},"source":{"file":"tmux/pane_input.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.Literal","product":"core","slug":"tmux-sendkeysrequest-literal"},{"id":"tmux.SendKeysRequest.Reset","name":"Reset","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"Reset asks tmux to reset terminal state before processing key input."},"source":{"file":"tmux/pane_input.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.Reset","product":"core","slug":"tmux-sendkeysrequest-reset"},{"id":"tmux.SendKeysRequest.CopyModeCommand","name":"CopyModeCommand","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"*string","doc":{"summary":"CopyModeCommand sends a tmux copy-mode command instead of Command. A nonnil empty string remains an explicit operand."},"source":{"file":"tmux/pane_input.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.CopyModeCommand","product":"core","slug":"tmux-sendkeysrequest-copymodecommand"},{"id":"tmux.SendKeysRequest.Repeat","name":"Repeat","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"int","doc":{"summary":"Repeat repeats the key input a positive number of times. Zero omits the repeat count."},"source":{"file":"tmux/pane_input.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.Repeat","product":"core","slug":"tmux-sendkeysrequest-repeat"},{"id":"tmux.SendKeysRequest.ExpandFormats","name":"ExpandFormats","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"ExpandFormats asks tmux to expand format expressions in key operands."},"source":{"file":"tmux/pane_input.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.ExpandFormats","product":"core","slug":"tmux-sendkeysrequest-expandformats"},{"id":"tmux.SendKeysRequest.HexKeys","name":"HexKeys","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"HexKeys interprets key operands as hexadecimal ASCII values and takes precedence over Literal."},"source":{"file":"tmux/pane_input.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.HexKeys","product":"core","slug":"tmux-sendkeysrequest-hexkeys"},{"id":"tmux.SendKeysRequest.TargetClient","name":"TargetClient","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"ClientName","doc":{"summary":"TargetClient selects the client used by KeyName. Zero leaves client selection to tmux; without KeyName it does not redirect pane input."},"source":{"file":"tmux/pane_input.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.TargetClient","product":"core","slug":"tmux-sendkeysrequest-targetclient"},{"id":"tmux.SendKeysRequest.KeyName","name":"KeyName","kind":"attribute","modifiers":[],"parent":"tmux.SendKeysRequest","signatures":[],"type":"bool","doc":{"summary":"KeyName routes keys through the selected client's key table rather than delivering them to the pane."},"source":{"file":"tmux/pane_input.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeysRequest.KeyName","product":"core","slug":"tmux-sendkeysrequest-keyname"},{"id":"tmux.SendKeySequenceRequest","name":"SendKeySequenceRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SendKeySequenceRequest configures ordered pane key delivery. Keys must contain at least one nonempty operand. SendKeySequence copies Keys before I/O; callers must not mutate it concurrently with the call."},"source":{"file":"tmux/pane_input.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeySequenceRequest","product":"core","slug":"tmux-sendkeysequencerequest"},{"id":"tmux.SendKeySequenceRequest.Keys","name":"Keys","kind":"attribute","modifiers":[],"parent":"tmux.SendKeySequenceRequest","signatures":[],"type":"[]string","doc":{"summary":"Keys are tmux key names sent in order."},"source":{"file":"tmux/pane_input.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeySequenceRequest.Keys","product":"core","slug":"tmux-sendkeysequencerequest-keys"},{"id":"tmux.SendKeySequenceRequest.Literal","name":"Literal","kind":"attribute","modifiers":[],"parent":"tmux.SendKeySequenceRequest","signatures":[],"type":"bool","doc":{"summary":"Literal treats every key as literal UTF-8 instead of a tmux key name."},"source":{"file":"tmux/pane_input.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SendKeySequenceRequest.Literal","product":"core","slug":"tmux-sendkeysequencerequest-literal"},{"id":"tmux.Pane.SendKeySequence","name":"SendKeySequence","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SendKeySequence(ctx context.Context, request SendKeySequenceRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SendKeySequenceRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SendKeySequence sends the requested keys to the receiver's exact linked pane in one tmux command. It does not append Enter. Literal changes tmux key parsing but does not bypass interpretation by the pane's application.","body":"A returned error does not establish how many keys tmux delivered."},"source":{"file":"tmux/pane_input.go","line":68,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SendKeySequence","product":"core","slug":"tmux-pane-sendkeysequence"},{"id":"tmux.Pane.SendKeys","name":"SendKeys","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SendKeys(ctx context.Context, request SendKeysRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SendKeysRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SendKeys invokes tmux send-keys with the receiver's exact linked session-window-pane target. This is tmux key input, not shell execution: Literal only changes tmux key parsing, and any delivered text may still be interpreted by the pane's application. KeyName routes through a client's key table instead of delivering to the pane.","body":"KeyName and TargetClient require tmux 3.4 and follow [UnsupportedPolicy].\n\nA completed nonzero exit or stderr, from either the Command send or the\nseparate Enter, becomes a redacted [CommandError]: Command may carry a\ncaller's secret, so only tmux's exit code is retained. Transport and\ncontext errors are delivery-ambiguous, including between Command and Enter.","examples":[{"lang":"console","intro":"Send literal text followed by Enter to a pane running cat, then wait for the text to appear. Literal controls tmux key parsing; it does not prevent the pane's application from interpreting input. SendKeys returning does not establish that the application has processed the text. Use Go 1.26.0 or newer and tmux 3.3a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-go.git libtmux-source && \\\n git -C libtmux-source checkout 6f3df55f8a41999e41225eefb3940545b834e6a2\n"},{"lang":"go","intro":"Save this dependency file as go.mod:","code":"module example.com/libtmux-api\n\ngo 1.26.0\n\nrequire github.com/libtmux/libtmux-go v0.0.0\n\nreplace github.com/libtmux/libtmux-go => ./libtmux-source\n"},{"lang":"go","intro":"Save this complete example as example_test.go. It creates a private temporary socket and stops its server before removing the directory. Cleanup failure fails the example and retains the socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-go/blob/6f3df55f8a41999e41225eefb3940545b834e6a2/tmux/api_pane_send_keys_example_test.go","code":"package tmux_test\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"slices\"\n\t\"time\"\n\n\t\"github.com/libtmux/libtmux-go/tmux\"\n)\n\n// Send literal text followed by Enter to a pane running cat, then wait for\n// the text to appear. Literal controls tmux key parsing; it does not prevent\n// the pane's application from interpreting input. SendKeys returning does\n// not establish that the application has processed the text.\nfunc ExamplePane_SendKeys_complete() {\n\trun := func() (runErr error) {\n\t\tdirectory, err := os.MkdirTemp(\"\", \"libtmux-go-api-\")\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create socket directory: %w\", err)\n\t\t}\n\t\tserver, err := tmux.NewServer(tmux.ServerOptions{\n\t\t\tSocketPath: filepath.Join(directory, \"tmux.sock\"),\n\t\t\tConfigFile: \"/dev/null\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errors.Join(err, os.RemoveAll(directory))\n\t\t}\n\t\tdefer func() {\n\t\t\t// Cleanup has its own deadline because the operation may have timed out.\n\t\t\tcleanup, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\t\t\tdefer cancel()\n\t\t\tif err := server.Kill(cleanup); err != nil && !errors.Is(err, tmux.ErrNoServer) {\n\t\t\t\trunErr = errors.Join(runErr, fmt.Errorf(\"stop server at %s: %w\", directory, err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\trunErr = errors.Join(runErr, os.RemoveAll(directory))\n\t\t}()\n\t\tctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)\n\t\tdefer cancel()\n\t\tsession, err := server.NewSession(ctx, tmux.NewSessionRequest{\n\t\t\tName: \"work\", WindowName: \"editor\", Command: \"cat\", Width: 100, Height: 30,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create session: %w\", err)\n\t\t}\n\t\tpane, err := session.ResolveActivePane(ctx)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"resolve pane: %w\", err)\n\t\t}\n\t\ttext := \"api input\"\n\t\tif err := pane.SendKeys(ctx, tmux.SendKeysRequest{Command: &text, Literal: true}); err != nil {\n\t\t\treturn fmt.Errorf(\"send literal input: %w\", err)\n\t\t}\n\t\t// Capture is a point-in-time read, so wait for a complete matching line.\n\t\tticker := time.NewTicker(10 * time.Millisecond)\n\t\tdefer ticker.Stop()\n\t\tfor {\n\t\t\tlines, err := pane.Capture(ctx, tmux.CapturePaneRequest{\n\t\t\t\tStart: tmux.CaptureBoundary, End: tmux.CaptureBoundary,\n\t\t\t})\n\t\t\tif err != nil {\n\t\t\t\treturn fmt.Errorf(\"capture pane: %w\", err)\n\t\t\t}\n\t\t\tif slices.Contains(lines, \"api input\") {\n\t\t\t\tfmt.Println(\"captured: api input\")\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tselect {\n\t\t\tcase <-ctx.Done():\n\t\t\t\treturn fmt.Errorf(\"wait for pane text: %w\", ctx.Err())\n\t\t\tcase <-ticker.C:\n\t\t\t}\n\t\t}\n\t\treturn nil\n\t}\n\tif err := run(); err != nil {\n\t\tpanic(err)\n\t}\n\t// Output:\n\t// captured: api input\n}\n"},{"lang":"console","intro":"Run the saved file. Go checks the Output comment and fails on different output or an operation or cleanup error:","code":"$ GOWORK=off go test -count=1 -v example_test.go\n"}]},"source":{"file":"tmux/pane_input.go","line":139,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SendKeys","product":"core","slug":"tmux-pane-sendkeys"},{"id":"tmux.Pane.Writer","name":"Writer","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Writer(ctx context.Context) io.Writer","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"io.Writer"}],"doc":{"summary":"Writer returns the pane's keyboard as an [io.Writer]. Bytes written to it are typed into the pane literally, and each newline is the Enter key, so [fmt.Fprintln] submits a line as a person at the keyboard would. Text with no trailing newline is typed and left on the line.","body":"A write returns once tmux has taken the keys, before the pane's program has\nread them; the program interprets what arrives. A line with a trailing\nnewline costs two tmux commands, the text and a separate Enter; buffering\nwhole lines still costs far less than writing bytes one at a time."},"source":{"file":"tmux/pane_input.go","line":260,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Writer","product":"core","slug":"tmux-pane-writer"},{"id":"tmux.Pane.Enter","name":"Enter","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Enter(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"Enter sends the Enter key to the receiver's exact linked pane. A completed nonzero exit or stderr becomes a redacted [CommandError]; transport errors are delivery-ambiguous."},"source":{"file":"tmux/pane_input.go","line":291,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Enter","product":"core","slug":"tmux-pane-enter"},{"id":"tmux.PrefixKey","name":"PrefixKey","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PrefixKey selects the primary or secondary tmux prefix key. Its zero value selects the primary prefix."},"source":{"file":"tmux/pane_input.go","line":326,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PrefixKey","product":"core","slug":"tmux-prefixkey"},{"id":"tmux.PrefixPrimary","name":"PrefixPrimary","kind":"constant","modifiers":[],"signatures":[],"type":"PrefixKey","doc":{"summary":"PrefixPrimary selects tmux's primary prefix key."},"source":{"file":"tmux/pane_input.go","line":330,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PrefixPrimary","product":"core","slug":"tmux-prefixprimary"},{"id":"tmux.PrefixSecondary","name":"PrefixSecondary","kind":"constant","modifiers":[],"signatures":[],"type":"PrefixKey","doc":{"summary":"PrefixSecondary selects tmux's secondary prefix key."},"source":{"file":"tmux/pane_input.go","line":332,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PrefixSecondary","product":"core","slug":"tmux-prefixsecondary"},{"id":"tmux.Pane.SendPrefix","name":"SendPrefix","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) SendPrefix(ctx context.Context, key PrefixKey) error","params":[{"name":"ctx","type":"context.Context"},{"name":"key","type":"PrefixKey"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"SendPrefix sends a tmux prefix key to the receiver's exact linked pane. Unsupported PrefixKey values fail before execution. A completed command produces a [CommandError] only when tmux writes stderr; the library-created error retains only the exit code. Nonzero exits without stderr are ignored; transport errors are delivery-ambiguous."},"source":{"file":"tmux/pane_input.go","line":340,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.SendPrefix","product":"core","slug":"tmux-pane-sendprefix"},{"id":"tmux.ClearHistoryRequest","name":"ClearHistoryRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ClearHistoryRequest configures pane history clearing. Its zero value clears scrollback without requesting hyperlink cleanup."},"source":{"file":"tmux/pane_input.go","line":360,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClearHistoryRequest","product":"core","slug":"tmux-clearhistoryrequest"},{"id":"tmux.ClearHistoryRequest.ResetHyperlinks","name":"ResetHyperlinks","kind":"attribute","modifiers":[],"parent":"tmux.ClearHistoryRequest","signatures":[],"type":"bool","doc":{"summary":"ResetHyperlinks also removes hyperlinks. It requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/pane_input.go","line":363,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ClearHistoryRequest.ResetHyperlinks","product":"core","slug":"tmux-clearhistoryrequest-resethyperlinks"},{"id":"tmux.Pane.ClearHistory","name":"ClearHistory","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ClearHistory(ctx context.Context, request ClearHistoryRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ClearHistoryRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"ClearHistory removes scrollback from the receiver's exact linked pane. ResetHyperlinks triggers a version probe before mutation. A completed command produces a redacted [CommandError] only for stderr; nonzero exits without stderr are ignored. Accepted changes are not rolled back."},"source":{"file":"tmux/pane_input.go","line":370,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ClearHistory","product":"core","slug":"tmux-pane-clearhistory"},{"id":"tmux.Pane.Clear","name":"Clear","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Clear(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"Clear types the text \"reset\" and then Enter into the receiver's exact linked pane, the way a person at the keyboard would. Whatever is running reads it: a shell runs reset(1), and an editor receives the word. Use [Pane.Reset] or [Pane.ClearHistory] to act on the pane itself rather than on its program. A transport error may leave the text delivered without Enter."},"source":{"file":"tmux/pane_input.go","line":427,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Clear","product":"core","slug":"tmux-pane-clear"},{"id":"tmux.Pane.Reset","name":"Reset","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Reset(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"Reset submits one tmux command list that resets terminal state and then clears history for the exact linked pane. The mutations are not atomic and may be partial. Only stderr makes a completed command a [CommandError]; nonzero exits without stderr are ignored. Transport errors are delivery-ambiguous."},"source":{"file":"tmux/pane_input.go","line":437,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Reset","product":"core","slug":"tmux-pane-reset"},{"id":"tmux.CopyModeRequest","name":"CopyModeRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CopyModeRequest configures tmux copy mode. Its zero value enters copy mode on the receiver without scrolling. Fields may be combined. tmux resolves the receiver and optional SourcePane before processing Cancel, so a stale target can prevent reset. After resolution, Cancel takes precedence over other actions, though SourcePane validation and the PageDown version probe still occur first."},"source":{"file":"tmux/pane_modes.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeRequest","product":"core","slug":"tmux-copymoderequest"},{"id":"tmux.CopyModeRequest.ScrollUp","name":"ScrollUp","kind":"attribute","modifiers":[],"parent":"tmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"ScrollUp enters copy mode one page above the current position."},"source":{"file":"tmux/pane_modes.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeRequest.ScrollUp","product":"core","slug":"tmux-copymoderequest-scrollup"},{"id":"tmux.CopyModeRequest.ExitOnBottom","name":"ExitOnBottom","kind":"attribute","modifiers":[],"parent":"tmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"ExitOnBottom makes copy mode exit after scrolling back to the visible screen, until another non-scrolling key disables that behavior."},"source":{"file":"tmux/pane_modes.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeRequest.ExitOnBottom","product":"core","slug":"tmux-copymoderequest-exitonbottom"},{"id":"tmux.CopyModeRequest.MouseDrag","name":"MouseDrag","kind":"attribute","modifiers":[],"parent":"tmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"MouseDrag begins a copy-mode mouse drag and is meaningful from a mouse binding."},"source":{"file":"tmux/pane_modes.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeRequest.MouseDrag","product":"core","slug":"tmux-copymoderequest-mousedrag"},{"id":"tmux.CopyModeRequest.PageDown","name":"PageDown","kind":"attribute","modifiers":[],"parent":"tmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"PageDown enters copy mode one page below the current position. It requires tmux 3.5 and follows UnsupportedPolicy. Its version probe still occurs when Cancel is set."},"source":{"file":"tmux/pane_modes.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeRequest.PageDown","product":"core","slug":"tmux-copymoderequest-pagedown"},{"id":"tmux.CopyModeRequest.SourcePane","name":"SourcePane","kind":"attribute","modifiers":[],"parent":"tmux.CopyModeRequest","signatures":[],"type":"PaneID","doc":{"summary":"SourcePane selects a stable pane whose content is copied while the receiver remains the pane placed in copy mode. Zero uses the receiver. A nonzero value is validated by the library and resolved by tmux even when Cancel is set; a stale or nonexistent pane can prevent cancellation."},"source":{"file":"tmux/pane_modes.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeRequest.SourcePane","product":"core","slug":"tmux-copymoderequest-sourcepane"},{"id":"tmux.CopyModeRequest.Cancel","name":"Cancel","kind":"attribute","modifiers":[],"parent":"tmux.CopyModeRequest","signatures":[],"type":"bool","doc":{"summary":"Cancel exits copy mode and any other active pane mode after tmux resolves the receiver and optional SourcePane. A resolution failure prevents the reset; after successful resolution, tmux ignores the other action fields."},"source":{"file":"tmux/pane_modes.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CopyModeRequest.Cancel","product":"core","slug":"tmux-copymoderequest-cancel"},{"id":"tmux.TreeSortOrder","name":"TreeSortOrder","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TreeSortOrder selects one initial tmux choose-tree ordering. Its zero value leaves tmux's configured ordering unchanged."},"source":{"file":"tmux/pane_modes.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TreeSortOrder","product":"core","slug":"tmux-treesortorder"},{"id":"tmux.TreeSortDefault","name":"TreeSortDefault","kind":"constant","modifiers":[],"signatures":[],"type":"TreeSortOrder","doc":{"summary":"TreeSortDefault leaves the configured choose-tree ordering unchanged."},"source":{"file":"tmux/pane_modes.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TreeSortDefault","product":"core","slug":"tmux-treesortdefault"},{"id":"tmux.TreeSortIndex","name":"TreeSortIndex","kind":"constant","modifiers":[],"signatures":[],"type":"TreeSortOrder","doc":{"summary":"TreeSortIndex orders tree entries by index."},"source":{"file":"tmux/pane_modes.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TreeSortIndex","product":"core","slug":"tmux-treesortindex"},{"id":"tmux.TreeSortName","name":"TreeSortName","kind":"constant","modifiers":[],"signatures":[],"type":"TreeSortOrder","doc":{"summary":"TreeSortName orders tree entries by name."},"source":{"file":"tmux/pane_modes.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TreeSortName","product":"core","slug":"tmux-treesortname"},{"id":"tmux.TreeSortTime","name":"TreeSortTime","kind":"constant","modifiers":[],"signatures":[],"type":"TreeSortOrder","doc":{"summary":"TreeSortTime orders tree entries by activity time."},"source":{"file":"tmux/pane_modes.go","line":51,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TreeSortTime","product":"core","slug":"tmux-treesorttime"},{"id":"tmux.TreeSortSize","name":"TreeSortSize","kind":"constant","modifiers":[],"signatures":[],"type":"TreeSortOrder","doc":{"summary":"TreeSortSize orders tree entries by size."},"source":{"file":"tmux/pane_modes.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TreeSortSize","product":"core","slug":"tmux-treesortsize"},{"id":"tmux.ChooseTreeRequest","name":"ChooseTreeRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ChooseTreeRequest configures the interactive session and window chooser. Its zero value uses tmux defaults. Format and Filter are copied before execution and must not be mutated concurrently."},"source":{"file":"tmux/pane_modes.go","line":59,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ChooseTreeRequest","product":"core","slug":"tmux-choosetreerequest"},{"id":"tmux.ChooseTreeRequest.SessionsCollapsed","name":"SessionsCollapsed","kind":"attribute","modifiers":[],"parent":"tmux.ChooseTreeRequest","signatures":[],"type":"bool","doc":{"summary":"SessionsCollapsed starts with session nodes collapsed."},"source":{"file":"tmux/pane_modes.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ChooseTreeRequest.SessionsCollapsed","product":"core","slug":"tmux-choosetreerequest-sessionscollapsed"},{"id":"tmux.ChooseTreeRequest.WindowsCollapsed","name":"WindowsCollapsed","kind":"attribute","modifiers":[],"parent":"tmux.ChooseTreeRequest","signatures":[],"type":"bool","doc":{"summary":"WindowsCollapsed starts with window nodes collapsed."},"source":{"file":"tmux/pane_modes.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ChooseTreeRequest.WindowsCollapsed","product":"core","slug":"tmux-choosetreerequest-windowscollapsed"},{"id":"tmux.ChooseTreeRequest.Format","name":"Format","kind":"attribute","modifiers":[],"parent":"tmux.ChooseTreeRequest","signatures":[],"type":"*string","doc":{"summary":"Format is a tmux format expression evaluated for each tree item. Nil leaves the configured format; nonnil empty remains an explicit format."},"source":{"file":"tmux/pane_modes.go","line":66,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ChooseTreeRequest.Format","product":"core","slug":"tmux-choosetreerequest-format"},{"id":"tmux.ChooseTreeRequest.Filter","name":"Filter","kind":"attribute","modifiers":[],"parent":"tmux.ChooseTreeRequest","signatures":[],"type":"*TmuxFilter","doc":{"summary":"Filter is a tmux format expression whose truth value selects tree items. Nil omits filtering; nonnil empty remains an explicit expression."},"source":{"file":"tmux/pane_modes.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ChooseTreeRequest.Filter","product":"core","slug":"tmux-choosetreerequest-filter"},{"id":"tmux.ChooseTreeRequest.Sort","name":"Sort","kind":"attribute","modifiers":[],"parent":"tmux.ChooseTreeRequest","signatures":[],"type":"TreeSortOrder","doc":{"summary":"Sort selects the initial ordering. Unknown values are rejected before execution."},"source":{"file":"tmux/pane_modes.go","line":72,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ChooseTreeRequest.Sort","product":"core","slug":"tmux-choosetreerequest-sort"},{"id":"tmux.ChooseTreeRequest.Reverse","name":"Reverse","kind":"attribute","modifiers":[],"parent":"tmux.ChooseTreeRequest","signatures":[],"type":"bool","doc":{"summary":"Reverse reverses the initial tree ordering."},"source":{"file":"tmux/pane_modes.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ChooseTreeRequest.Reverse","product":"core","slug":"tmux-choosetreerequest-reverse"},{"id":"tmux.ChooseTreeRequest.Zoom","name":"Zoom","kind":"attribute","modifiers":[],"parent":"tmux.ChooseTreeRequest","signatures":[],"type":"bool","doc":{"summary":"Zoom zooms the chooser pane while tree mode is active."},"source":{"file":"tmux/pane_modes.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ChooseTreeRequest.Zoom","product":"core","slug":"tmux-choosetreerequest-zoom"},{"id":"tmux.FindWindowRequest","name":"FindWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"FindWindowRequest configures the interactive window search chooser. Match is a tmux search operand, not a shell command. The zero value searches with an empty glob using tmux's default name, title, and visible-content scopes."},"source":{"file":"tmux/pane_modes.go","line":82,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FindWindowRequest","product":"core","slug":"tmux-findwindowrequest"},{"id":"tmux.FindWindowRequest.Match","name":"Match","kind":"attribute","modifiers":[],"parent":"tmux.FindWindowRequest","signatures":[],"type":"string","doc":{"summary":"Match is the glob pattern, or regular expression when Regex is true."},"source":{"file":"tmux/pane_modes.go","line":84,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FindWindowRequest.Match","product":"core","slug":"tmux-findwindowrequest-match"},{"id":"tmux.FindWindowRequest.MatchContent","name":"MatchContent","kind":"attribute","modifiers":[],"parent":"tmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"MatchContent restricts matching to visible window content, not history."},"source":{"file":"tmux/pane_modes.go","line":86,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FindWindowRequest.MatchContent","product":"core","slug":"tmux-findwindowrequest-matchcontent"},{"id":"tmux.FindWindowRequest.CaseInsensitive","name":"CaseInsensitive","kind":"attribute","modifiers":[],"parent":"tmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"CaseInsensitive makes matching ignore case."},"source":{"file":"tmux/pane_modes.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FindWindowRequest.CaseInsensitive","product":"core","slug":"tmux-findwindowrequest-caseinsensitive"},{"id":"tmux.FindWindowRequest.MatchName","name":"MatchName","kind":"attribute","modifiers":[],"parent":"tmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"MatchName restricts matching to window names."},"source":{"file":"tmux/pane_modes.go","line":90,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FindWindowRequest.MatchName","product":"core","slug":"tmux-findwindowrequest-matchname"},{"id":"tmux.FindWindowRequest.Regex","name":"Regex","kind":"attribute","modifiers":[],"parent":"tmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Regex interprets Match as a regular expression instead of a glob."},"source":{"file":"tmux/pane_modes.go","line":92,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FindWindowRequest.Regex","product":"core","slug":"tmux-findwindowrequest-regex"},{"id":"tmux.FindWindowRequest.MatchTitle","name":"MatchTitle","kind":"attribute","modifiers":[],"parent":"tmux.FindWindowRequest","signatures":[],"type":"bool","doc":{"summary":"MatchTitle restricts matching to window titles."},"source":{"file":"tmux/pane_modes.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FindWindowRequest.MatchTitle","product":"core","slug":"tmux-findwindowrequest-matchtitle"},{"id":"tmux.DisplayPanesRequest","name":"DisplayPanesRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"DisplayPanesRequest configures pane-number display for tmux's current client and does not inherit the Pane target. Duration is read during the call, not retained, and must not be mutated concurrently."},"source":{"file":"tmux/pane_modes.go","line":100,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPanesRequest","product":"core","slug":"tmux-displaypanesrequest"},{"id":"tmux.DisplayPanesRequest.Duration","name":"Duration","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPanesRequest","signatures":[],"type":"*int","doc":{"summary":"Duration is the display time in milliseconds. Nil uses tmux's display-panes-time option; zero waits for a key press. Negative values are rejected before execution."},"source":{"file":"tmux/pane_modes.go","line":104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPanesRequest.Duration","product":"core","slug":"tmux-displaypanesrequest-duration"},{"id":"tmux.DisplayPanesRequest.NoSelect","name":"NoSelect","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPanesRequest","signatures":[],"type":"bool","doc":{"summary":"NoSelect prevents number keys from selecting a pane, so the display closes only after its duration. With Duration set to zero, it may remain until the context is canceled."},"source":{"file":"tmux/pane_modes.go","line":108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPanesRequest.NoSelect","product":"core","slug":"tmux-displaypanesrequest-noselect"},{"id":"tmux.Pane.CopyMode","name":"CopyMode","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CopyMode(ctx context.Context, request CopyModeRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"CopyModeRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"CopyMode enters or cancels copy mode using the receiver's exact linked session-window-pane target. PageDown requires tmux 3.5 and follows [UnsupportedPolicy]. A version-probe error stops the operation. tmux resolves the receiver and optional SourcePane before processing Cancel; a stale target can therefore fail without resetting the current mode. Cancel then takes precedence over other actions.","body":"Only stderr produces a redacted [CommandError]; nonzero exits without stderr\nare ignored. Accepted mode changes are not rolled back."},"source":{"file":"tmux/pane_modes.go","line":120,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CopyMode","product":"core","slug":"tmux-pane-copymode"},{"id":"tmux.Pane.ClockMode","name":"ClockMode","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ClockMode(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"ClockMode enters clock mode using the receiver's exact linked target."},"source":{"file":"tmux/pane_modes.go","line":171,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ClockMode","product":"core","slug":"tmux-pane-clockmode"},{"id":"tmux.Pane.ChooseBuffer","name":"ChooseBuffer","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ChooseBuffer(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"ChooseBuffer enters tmux's interactive buffer chooser using the receiver's exact linked target. It requires an attached client."},"source":{"file":"tmux/pane_modes.go","line":177,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ChooseBuffer","product":"core","slug":"tmux-pane-choosebuffer"},{"id":"tmux.Pane.ChooseClient","name":"ChooseClient","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ChooseClient(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"ChooseClient enters tmux's interactive client chooser using the receiver's exact linked target. It requires an attached client."},"source":{"file":"tmux/pane_modes.go","line":183,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ChooseClient","product":"core","slug":"tmux-pane-chooseclient"},{"id":"tmux.Pane.CustomizeMode","name":"CustomizeMode","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) CustomizeMode(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"CustomizeMode enters tmux's interactive option browser using the receiver's exact linked target. It requires an attached client."},"source":{"file":"tmux/pane_modes.go","line":189,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.CustomizeMode","product":"core","slug":"tmux-pane-customizemode"},{"id":"tmux.Pane.ChooseTree","name":"ChooseTree","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ChooseTree(ctx context.Context, request ChooseTreeRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ChooseTreeRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"ChooseTree enters tmux's interactive session, window, and pane chooser using the receiver's exact linked target. It requires an attached client. Format and Filter are tmux expressions; neither is interpreted by a shell. Unsupported sort values fail before execution. Only stderr produces a redacted [CommandError]; transport errors may leave tree mode active."},"source":{"file":"tmux/pane_modes.go","line":198,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ChooseTree","product":"core","slug":"tmux-pane-choosetree"},{"id":"tmux.Pane.FindWindow","name":"FindWindow","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) FindWindow(ctx context.Context, request FindWindowRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"FindWindowRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"FindWindow opens a tree chooser filtered by Match using the receiver's exact linked target. It requires an attached client. Match is passed as one tmux search operand and protected from leading-dash option parsing; it is not a tmux format or shell command. Only stderr produces a redacted [CommandError]; transport errors may leave the chooser open."},"source":{"file":"tmux/pane_modes.go","line":255,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.FindWindow","product":"core","slug":"tmux-pane-findwindow"},{"id":"tmux.Pane.DisplayPanes","name":"DisplayPanes","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) DisplayPanes(ctx context.Context, request DisplayPanesRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"DisplayPanesRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"DisplayPanes displays pane numbers for tmux's current client and waits for the indicator to close. It is client-scoped: the receiver supplies only the server connection and no pane target. A zero request uses tmux's configured duration and permits number-key selection.","body":"Only stderr produces a redacted [CommandError]; nonzero exits without stderr\nare ignored. Cancellation cannot revoke an accepted display."},"source":{"file":"tmux/pane_modes.go","line":291,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.DisplayPanes","product":"core","slug":"tmux-pane-displaypanes"},{"id":"tmux.DisplayPopupRequest","name":"DisplayPopupRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"DisplayPopupRequest configures a popup overlay. Pointer and map values are copied before I/O and must not be mutated concurrently. Pointer fields distinguish omission from an explicit empty value, with the Command and StartDirectory behavior documented on those fields.","body":"CloseOnExit and CloseOnSuccess are mutually exclusive. CloseExisting asks\ntmux only to close the existing overlay, so the remaining fields do not\ncreate a replacement. NoBorder makes BorderLines ineffective. When modifying\nan existing popup, NoKeys clears its configured automatic-close flags before\ntmux applies CloseOnExit, CloseOnSuccess, and CloseOnAnyKey from this request.\nNoKeys does not disable keyboard input."},"source":{"file":"tmux/pane_popup.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest","product":"core","slug":"tmux-displaypopuprequest"},{"id":"tmux.DisplayPopupRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"Command is interpreted by tmux as a shell command. Nil lets tmux use default-command and then its default shell; nonnil empty is passed explicitly and tmux resolves it directly to the default shell."},"source":{"file":"tmux/pane_popup.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.Command","product":"core","slug":"tmux-displaypopuprequest-command"},{"id":"tmux.DisplayPopupRequest.CloseOnExit","name":"CloseOnExit","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"CloseOnExit closes the overlay whenever Command exits."},"source":{"file":"tmux/pane_popup.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.CloseOnExit","product":"core","slug":"tmux-displaypopuprequest-closeonexit"},{"id":"tmux.DisplayPopupRequest.CloseOnSuccess","name":"CloseOnSuccess","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"CloseOnSuccess closes the overlay only when Command exits successfully."},"source":{"file":"tmux/pane_popup.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.CloseOnSuccess","product":"core","slug":"tmux-displaypopuprequest-closeonsuccess"},{"id":"tmux.DisplayPopupRequest.CloseExisting","name":"CloseExisting","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"CloseExisting closes the selected client's existing overlay and prevents this request from creating a replacement."},"source":{"file":"tmux/pane_popup.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.CloseExisting","product":"core","slug":"tmux-displaypopuprequest-closeexisting"},{"id":"tmux.DisplayPopupRequest.TargetClient","name":"TargetClient","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"ClientName","doc":{"summary":"TargetClient selects the client that receives the overlay; zero lets tmux choose. tmux 3.8 and later refuses to host a popup on a control-mode client, which cannot render an overlay, so an explicit control-mode TargetClient is rejected on those versions rather than left as the silent no-op tmux itself returns."},"source":{"file":"tmux/pane_popup.go","line":51,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.TargetClient","product":"core","slug":"tmux-displaypopuprequest-targetclient"},{"id":"tmux.DisplayPopupRequest.Width","name":"Width","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"Width is an explicit cell count or percentage and may contain tmux format expressions. Nil lets tmux choose the default width."},"source":{"file":"tmux/pane_popup.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.Width","product":"core","slug":"tmux-displaypopuprequest-width"},{"id":"tmux.DisplayPopupRequest.Height","name":"Height","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"Height is an explicit cell count or percentage and may contain tmux format expressions. Nil lets tmux choose the default height."},"source":{"file":"tmux/pane_popup.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.Height","product":"core","slug":"tmux-displaypopuprequest-height"},{"id":"tmux.DisplayPopupRequest.X","name":"X","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"X is a tmux popup position expression and may contain tmux formats. Nil lets tmux choose the horizontal position."},"source":{"file":"tmux/pane_popup.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.X","product":"core","slug":"tmux-displaypopuprequest-x"},{"id":"tmux.DisplayPopupRequest.Y","name":"Y","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"Y is a tmux popup position expression and may contain tmux formats. Nil lets tmux choose the vertical position."},"source":{"file":"tmux/pane_popup.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.Y","product":"core","slug":"tmux-displaypopuprequest-y"},{"id":"tmux.DisplayPopupRequest.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"StartDirectory selects the popup working directory. Nil omits the option; nonnil empty is normalized to \".\". The library expands a leading local ~ before tmux expands formats in the resulting value."},"source":{"file":"tmux/pane_popup.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.StartDirectory","product":"core","slug":"tmux-displaypopuprequest-startdirectory"},{"id":"tmux.DisplayPopupRequest.Title","name":"Title","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"Title is the popup title format. Nil leaves the tmux default."},"source":{"file":"tmux/pane_popup.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.Title","product":"core","slug":"tmux-displaypopuprequest-title"},{"id":"tmux.DisplayPopupRequest.BorderLines","name":"BorderLines","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"BorderLines selects tmux's border-line style. NoBorder makes it ineffective."},"source":{"file":"tmux/pane_popup.go","line":72,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.BorderLines","product":"core","slug":"tmux-displaypopuprequest-borderlines"},{"id":"tmux.DisplayPopupRequest.Style","name":"Style","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"Style selects the tmux style for the popup interior."},"source":{"file":"tmux/pane_popup.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.Style","product":"core","slug":"tmux-displaypopuprequest-style"},{"id":"tmux.DisplayPopupRequest.BorderStyle","name":"BorderStyle","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"*string","doc":{"summary":"BorderStyle selects the tmux style for the popup border."},"source":{"file":"tmux/pane_popup.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.BorderStyle","product":"core","slug":"tmux-displaypopuprequest-borderstyle"},{"id":"tmux.DisplayPopupRequest.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"map[string]string","doc":{"summary":"Environment adds validated popup environment entries. Nil and an empty map add none; entries are sent in lexical key order."},"source":{"file":"tmux/pane_popup.go","line":79,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.Environment","product":"core","slug":"tmux-displaypopuprequest-environment"},{"id":"tmux.DisplayPopupRequest.NoBorder","name":"NoBorder","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"NoBorder removes the popup border and makes BorderLines ineffective."},"source":{"file":"tmux/pane_popup.go","line":81,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.NoBorder","product":"core","slug":"tmux-displaypopuprequest-noborder"},{"id":"tmux.DisplayPopupRequest.CloseOnAnyKey","name":"CloseOnAnyKey","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"CloseOnAnyKey lets a nonmouse, nonpaste key dismiss the popup after its command has exited. It does not dismiss the popup while the job is active; tmux continues to send keys to that job."},"source":{"file":"tmux/pane_popup.go","line":85,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.CloseOnAnyKey","product":"core","slug":"tmux-displaypopuprequest-closeonanykey"},{"id":"tmux.DisplayPopupRequest.NoKeys","name":"NoKeys","kind":"attribute","modifiers":[],"parent":"tmux.DisplayPopupRequest","signatures":[],"type":"bool","doc":{"summary":"NoKeys clears automatic-close flags previously configured on an existing popup. Same-request close flags are then applied, and key input remains enabled."},"source":{"file":"tmux/pane_popup.go","line":89,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayPopupRequest.NoKeys","product":"core","slug":"tmux-displaypopuprequest-nokeys"},{"id":"tmux.Pane.DisplayPopup","name":"DisplayPopup","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) DisplayPopup(ctx context.Context, request DisplayPopupRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"DisplayPopupRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"DisplayPopup displays an overlay on the selected client and waits until it closes after command exit or user dismissal. A zero request starts tmux's default command or default shell and may wait indefinitely. The API exposes no popup process handle, stdout, or child exit status.","body":"The command carries the receiver's exact linked session-window-pane target,\nwhich supplies format and working-directory context. TargetClient selects\nthe overlay client; it does not turn the operation into pane delivery. tmux\ninterprets Command as a shell command; outer-parser escaping does not quote\nor neutralize that inner command.\n\nTitle, BorderLines, Style, BorderStyle, Environment, and NoBorder require\ntmux 3.3. CloseOnAnyKey and NoKeys require tmux 3.6. Unsupported fields follow\n[UnsupportedPolicy]. On tmux 3.8 and later, an explicit TargetClient that\nresolves to a control-mode client returns [ErrInvalidServerCommandRequest]\nunless CloseExisting is set: tmux itself answers that combination exactly\nas it answers success, so nothing on the wire would otherwise say the\npopup never ran. CloseExisting is exempt because tmux handles it before\nthat refusal on every version, clearing whatever overlay the target has -\nnothing, for a control-mode client - without creating anything either way.\n\nInvalid fields fail before display. Only stderr produces a redacted\n[CommandError]; nonzero exits without stderr are ignored. Cancellation cannot\ndismiss an accepted popup, which may remain visible."},"source":{"file":"tmux/pane_popup.go","line":137,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.DisplayPopup","product":"core","slug":"tmux-pane-displaypopup"},{"id":"tmux.PasteBufferRequest","name":"PasteBufferRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PasteBufferRequest configures one tmux paste-buffer operation. Its zero value pastes the top buffer, replaces linefeeds with tmux's default carriage-return separator, and uses the version's default control-character handling. Pointer values are copied before I/O and must not be mutated concurrently."},"source":{"file":"tmux/pane_process.go","line":9,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PasteBufferRequest","product":"core","slug":"tmux-pastebufferrequest"},{"id":"tmux.PasteBufferRequest.BufferName","name":"BufferName","kind":"attribute","modifiers":[],"parent":"tmux.PasteBufferRequest","signatures":[],"type":"*string","doc":{"summary":"BufferName selects a named tmux buffer. Nil selects the top buffer; nonnil empty remains an explicit buffer name."},"source":{"file":"tmux/pane_process.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PasteBufferRequest.BufferName","product":"core","slug":"tmux-pastebufferrequest-buffername"},{"id":"tmux.PasteBufferRequest.DeleteAfter","name":"DeleteAfter","kind":"attribute","modifiers":[],"parent":"tmux.PasteBufferRequest","signatures":[],"type":"bool","doc":{"summary":"DeleteAfter asks tmux to delete an existing selected buffer after processing it. Deletion does not prove bytes reached a pane whose input may be disabled."},"source":{"file":"tmux/pane_process.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PasteBufferRequest.DeleteAfter","product":"core","slug":"tmux-pastebufferrequest-deleteafter"},{"id":"tmux.PasteBufferRequest.LinefeedSeparator","name":"LinefeedSeparator","kind":"attribute","modifiers":[],"parent":"tmux.PasteBufferRequest","signatures":[],"type":"bool","doc":{"summary":"LinefeedSeparator preserves linefeeds instead of replacing them with Separator or tmux's default carriage return."},"source":{"file":"tmux/pane_process.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PasteBufferRequest.LinefeedSeparator","product":"core","slug":"tmux-pastebufferrequest-linefeedseparator"},{"id":"tmux.PasteBufferRequest.Bracket","name":"Bracket","kind":"attribute","modifiers":[],"parent":"tmux.PasteBufferRequest","signatures":[],"type":"bool","doc":{"summary":"Bracket surrounds the paste with bracketed-paste control codes when the pane application has requested bracketed paste mode."},"source":{"file":"tmux/pane_process.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PasteBufferRequest.Bracket","product":"core","slug":"tmux-pastebufferrequest-bracket"},{"id":"tmux.PasteBufferRequest.Separator","name":"Separator","kind":"attribute","modifiers":[],"parent":"tmux.PasteBufferRequest","signatures":[],"type":"*string","doc":{"summary":"Separator replaces linefeeds. Nil uses tmux's default carriage return; nonnil empty removes linefeeds. LinefeedSeparator takes precedence."},"source":{"file":"tmux/pane_process.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PasteBufferRequest.Separator","product":"core","slug":"tmux-pastebufferrequest-separator"},{"id":"tmux.PasteBufferRequest.NoVis","name":"NoVis","kind":"attribute","modifiers":[],"parent":"tmux.PasteBufferRequest","signatures":[],"type":"bool","doc":{"summary":"NoVis requests raw bytes and requires tmux 3.7. Older versions already paste raw bytes; see UnsupportedPolicy."},"source":{"file":"tmux/pane_process.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PasteBufferRequest.NoVis","product":"core","slug":"tmux-pastebufferrequest-novis"},{"id":"tmux.PipePaneRequest","name":"PipePaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PipePaneRequest configures a pane pipe. Its flags may be combined. Command is copied before I/O and must not be mutated concurrently."},"source":{"file":"tmux/pane_process.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PipePaneRequest","product":"core","slug":"tmux-pipepanerequest"},{"id":"tmux.PipePaneRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.PipePaneRequest","signatures":[],"type":"*string","doc":{"summary":"Command is a shell command for tmux's pipe process. Nil closes the current pipe; nonnil empty is an explicit operand that tmux also treats as stop."},"source":{"file":"tmux/pane_process.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PipePaneRequest.Command","product":"core","slug":"tmux-pipepanerequest-command"},{"id":"tmux.PipePaneRequest.OutputOnly","name":"OutputOnly","kind":"attribute","modifiers":[],"parent":"tmux.PipePaneRequest","signatures":[],"type":"bool","doc":{"summary":"OutputOnly connects pane output to the pipe command's standard input. When neither direction is set, tmux uses this direction by default."},"source":{"file":"tmux/pane_process.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PipePaneRequest.OutputOnly","product":"core","slug":"tmux-pipepanerequest-outputonly"},{"id":"tmux.PipePaneRequest.InputOnly","name":"InputOnly","kind":"attribute","modifiers":[],"parent":"tmux.PipePaneRequest","signatures":[],"type":"bool","doc":{"summary":"InputOnly connects the pipe command's standard output to pane input."},"source":{"file":"tmux/pane_process.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PipePaneRequest.InputOnly","product":"core","slug":"tmux-pipepanerequest-inputonly"},{"id":"tmux.PipePaneRequest.Toggle","name":"Toggle","kind":"attribute","modifiers":[],"parent":"tmux.PipePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Toggle closes an existing pipe or opens Command when no pipe exists."},"source":{"file":"tmux/pane_process.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PipePaneRequest.Toggle","product":"core","slug":"tmux-pipepanerequest-toggle"},{"id":"tmux.Pane.Respawn","name":"Respawn","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Respawn(ctx context.Context, request RespawnRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"RespawnRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"Respawn restarts the process in the receiver's exact linked pane on tmux 3.2a or newer. Command, when present, is passed as one tmux shell-command operand; Go neither executes it locally nor adds inner-shell quoting. Final semicolon protection applies only to tmux's outer command parser. See [RespawnRequest] for zero-value, directory, environment, and Kill behavior.","body":"Respawn refreshes by PaneID, so the returned canonical [Pane] may carry a\ndifferent linked-session or winlink context. The process may be restarted\nbefore refresh fails; in that case Respawn returns the original receiver and\nthe refresh error. Earlier failures return zero. Completed stderr produces a\nredacted [CommandError]; a nonzero exit without stderr is followed by refresh."},"source":{"file":"tmux/pane_process.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Respawn","product":"core","slug":"tmux-pane-respawn"},{"id":"tmux.Pane.PasteBuffer","name":"PasteBuffer","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) PasteBuffer(ctx context.Context, request PasteBufferRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"PasteBufferRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"PasteBuffer pastes a named or top buffer into the receiver's exact linked pane. DeleteAfter requests deletion after tmux processes an existing buffer; an exited target or missing named buffer fails before deletion, while deletion after disabled pane input does not prove byte delivery.","body":"NoVis requires tmux 3.7 and follows [UnsupportedPolicy]; older versions\nalready paste raw bytes. Only stderr produces a redacted [CommandError];\nnonzero exits without stderr are ignored. Accepted paste or deletion effects\nare not rolled back."},"source":{"file":"tmux/pane_process.go","line":134,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.PasteBuffer","product":"core","slug":"tmux-pane-pastebuffer"},{"id":"tmux.Pane.Pipe","name":"Pipe","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Pipe(ctx context.Context, request PipePaneRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"PipePaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"error"}],"doc":{"summary":"Pipe starts, toggles, or stops piping for the receiver's exact linked pane. tmux expands formats and time formats in Command before running it with sh -c. The library's protection for a final semicolon applies only to tmux's outer command parser; it does not quote or neutralize the child shell.","body":"A nil Command, and an explicit empty Command under tmux semantics, stops the\ncurrent pipe. Successful return means tmux installed, toggled, or stopped the\npipe; it does not report child-shell success or lifetime. Only stderr produces\na redacted [CommandError]. Accepted pipe changes are not rolled back."},"source":{"file":"tmux/pane_process.go","line":207,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Pipe","product":"core","slug":"tmux-pane-pipe"},{"id":"tmux.MovePaneRequest","name":"MovePaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"MovePaneRequest configures move-pane on tmux 3.2a or later. Its zero value is invalid: exactly one complete TargetPane or TargetWindow handle is required. Cross-object handles must be proven to share a daemon through connection state or the same nonempty SocketPath; matching socket names alone are insufficient. Size and Percentage are mutually exclusive. Invalid enum, target, size, and percentage values are rejected before execution.","body":"Size pointers are read during the call and not retained; nil omits the mode\nand nonnil is explicit. Do not mutate them concurrently."},"source":{"file":"tmux/pane_relocate.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MovePaneRequest","product":"core","slug":"tmux-movepanerequest"},{"id":"tmux.MovePaneRequest.TargetPane","name":"TargetPane","kind":"attribute","modifiers":[],"parent":"tmux.MovePaneRequest","signatures":[],"type":"Pane","doc":{"summary":"TargetPane selects an exact destination pane; a zero Pane omits it."},"source":{"file":"tmux/pane_relocate.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MovePaneRequest.TargetPane","product":"core","slug":"tmux-movepanerequest-targetpane"},{"id":"tmux.MovePaneRequest.TargetWindow","name":"TargetWindow","kind":"attribute","modifiers":[],"parent":"tmux.MovePaneRequest","signatures":[],"type":"Window","doc":{"summary":"TargetWindow selects an exact destination winlink; a zero Window omits it."},"source":{"file":"tmux/pane_relocate.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MovePaneRequest.TargetWindow","product":"core","slug":"tmux-movepanerequest-targetwindow"},{"id":"tmux.MovePaneRequest.Attach","name":"Attach","kind":"attribute","modifiers":[],"parent":"tmux.MovePaneRequest","signatures":[],"type":"bool","doc":{"summary":"Attach lets tmux make the moved pane active in the destination winlink."},"source":{"file":"tmux/pane_relocate.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MovePaneRequest.Attach","product":"core","slug":"tmux-movepanerequest-attach"},{"id":"tmux.MovePaneRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.MovePaneRequest","signatures":[],"type":"PaneDirection","doc":{"summary":"Direction selects placement relative to the destination; zero means below."},"source":{"file":"tmux/pane_relocate.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MovePaneRequest.Direction","product":"core","slug":"tmux-movepanerequest-direction"},{"id":"tmux.MovePaneRequest.FullWindow","name":"FullWindow","kind":"attribute","modifiers":[],"parent":"tmux.MovePaneRequest","signatures":[],"type":"bool","doc":{"summary":"FullWindow lets the moved pane span the full destination window."},"source":{"file":"tmux/pane_relocate.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MovePaneRequest.FullWindow","product":"core","slug":"tmux-movepanerequest-fullwindow"},{"id":"tmux.MovePaneRequest.Size","name":"Size","kind":"attribute","modifiers":[],"parent":"tmux.MovePaneRequest","signatures":[],"type":"*int","doc":{"summary":"Size selects a nonnegative absolute pane size; nil omits it."},"source":{"file":"tmux/pane_relocate.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MovePaneRequest.Size","product":"core","slug":"tmux-movepanerequest-size"},{"id":"tmux.MovePaneRequest.Percentage","name":"Percentage","kind":"attribute","modifiers":[],"parent":"tmux.MovePaneRequest","signatures":[],"type":"*int","doc":{"summary":"Percentage selects a size from 0 through 100; nil omits it."},"source":{"file":"tmux/pane_relocate.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MovePaneRequest.Percentage","product":"core","slug":"tmux-movepanerequest-percentage"},{"id":"tmux.JoinPaneRequest","name":"JoinPaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"JoinPaneRequest configures join-pane with the same target, cross-daemon, sizing, validation, and pointer-ownership rules as [MovePaneRequest]."},"source":{"file":"tmux/pane_relocate.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.JoinPaneRequest","product":"core","slug":"tmux-joinpanerequest"},{"id":"tmux.JoinPaneRequest.TargetPane","name":"TargetPane","kind":"attribute","modifiers":[],"parent":"tmux.JoinPaneRequest","signatures":[],"type":"Pane","doc":{"summary":"TargetPane selects an exact destination pane; a zero Pane omits it."},"source":{"file":"tmux/pane_relocate.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.JoinPaneRequest.TargetPane","product":"core","slug":"tmux-joinpanerequest-targetpane"},{"id":"tmux.JoinPaneRequest.TargetWindow","name":"TargetWindow","kind":"attribute","modifiers":[],"parent":"tmux.JoinPaneRequest","signatures":[],"type":"Window","doc":{"summary":"TargetWindow selects an exact destination winlink; a zero Window omits it."},"source":{"file":"tmux/pane_relocate.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.JoinPaneRequest.TargetWindow","product":"core","slug":"tmux-joinpanerequest-targetwindow"},{"id":"tmux.JoinPaneRequest.Attach","name":"Attach","kind":"attribute","modifiers":[],"parent":"tmux.JoinPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Attach lets tmux make the joined pane active in the destination winlink."},"source":{"file":"tmux/pane_relocate.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.JoinPaneRequest.Attach","product":"core","slug":"tmux-joinpanerequest-attach"},{"id":"tmux.JoinPaneRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.JoinPaneRequest","signatures":[],"type":"PaneDirection","doc":{"summary":"Direction selects placement relative to the destination; zero means below."},"source":{"file":"tmux/pane_relocate.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.JoinPaneRequest.Direction","product":"core","slug":"tmux-joinpanerequest-direction"},{"id":"tmux.JoinPaneRequest.FullWindow","name":"FullWindow","kind":"attribute","modifiers":[],"parent":"tmux.JoinPaneRequest","signatures":[],"type":"bool","doc":{"summary":"FullWindow lets the joined pane span the full destination window."},"source":{"file":"tmux/pane_relocate.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.JoinPaneRequest.FullWindow","product":"core","slug":"tmux-joinpanerequest-fullwindow"},{"id":"tmux.JoinPaneRequest.Size","name":"Size","kind":"attribute","modifiers":[],"parent":"tmux.JoinPaneRequest","signatures":[],"type":"*int","doc":{"summary":"Size selects a nonnegative absolute pane size; nil omits it."},"source":{"file":"tmux/pane_relocate.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.JoinPaneRequest.Size","product":"core","slug":"tmux-joinpanerequest-size"},{"id":"tmux.JoinPaneRequest.Percentage","name":"Percentage","kind":"attribute","modifiers":[],"parent":"tmux.JoinPaneRequest","signatures":[],"type":"*int","doc":{"summary":"Percentage selects a size from 0 through 100; nil omits it."},"source":{"file":"tmux/pane_relocate.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.JoinPaneRequest.Percentage","product":"core","slug":"tmux-joinpanerequest-percentage"},{"id":"tmux.BreakPaneRequest","name":"BreakPaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"BreakPaneRequest configures break-pane on tmux 3.2a or later. Its zero value moves the receiver to a detached new window with tmux's default name, except for the documented raw-version 3.7 workaround in [Pane.BreakPane]. Empty Name means omission and is validated before the version probe."},"source":{"file":"tmux/pane_relocate.go","line":59,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BreakPaneRequest","product":"core","slug":"tmux-breakpanerequest"},{"id":"tmux.BreakPaneRequest.Attach","name":"Attach","kind":"attribute","modifiers":[],"parent":"tmux.BreakPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Attach lets the new winlink become current in the receiver session."},"source":{"file":"tmux/pane_relocate.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BreakPaneRequest.Attach","product":"core","slug":"tmux-breakpanerequest-attach"},{"id":"tmux.BreakPaneRequest.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.BreakPaneRequest","signatures":[],"type":"string","doc":{"summary":"Name requests the new window name; empty normally lets tmux choose."},"source":{"file":"tmux/pane_relocate.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BreakPaneRequest.Name","product":"core","slug":"tmux-breakpanerequest-name"},{"id":"tmux.Pane.Move","name":"Move","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Move(ctx context.Context, request MovePaneRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"MovePaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"Move relocates the receiver pane into one exact destination with tmux's move-pane command. Unless Attach is set, the destination's active-pane selection remains unchanged; Attach is not a global client-focus guarantee. The returned [Pane] is freshly materialized in the destination SessionID and WindowID rather than by canonical ID-only refresh.","body":"Removing the sole pane destroys the emptied source window and all of its\nwinlinks. Affected source sessions preserve their current selection unless\nthat window was current, in which case they select another. A session left\nwithout windows is destroyed and detaches its clients.\n\nIf exact refresh fails after the command, Move returns a partial Pane with\nthe receiver PaneID and predicted destination context. Other failures return\nzero. Transport errors are delivery-ambiguous and no rollback is attempted."},"source":{"file":"tmux/pane_relocate.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Move","product":"core","slug":"tmux-pane-move"},{"id":"tmux.Pane.Join","name":"Join","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Join(ctx context.Context, request JoinPaneRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"JoinPaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"Join relocates the receiver with join-pane. Its selection, source-destruction, partial-result, and delivery behavior matches [Pane.Move]."},"source":{"file":"tmux/pane_relocate.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Join","product":"core","slug":"tmux-pane-join"},{"id":"tmux.Pane.BreakPane","name":"BreakPane","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) BreakPane(ctx context.Context, request BreakPaneRequest) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"BreakPaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Window, error)"}],"doc":{"summary":"BreakPane moves the receiver into a new window in its exact session. Attach lets that new winlink become current in the session; it is not a global client-focus guarantee. The returned [Window] is freshly materialized in the receiver SessionID rather than by canonical ID-only refresh.","body":"Before tmux 3.6, the sole-pane path may print no ID and retain WindowID; this\nmethod refreshes that identity. Raw version \"3.7\" alone uses a placeholder\nname and optional second rename; with an empty Name, the window may remain\nnamed \"libtmux\". Suffixed 3.7 releases do not use the workaround.\n\nAfter a reported ID, rename failure, or refresh failure, the partial result\ncarries the known WindowID and receiver session with Index -1. Earlier\nfailures return zero; no mutation is rolled back."},"source":{"file":"tmux/pane_relocate.go","line":119,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.BreakPane","product":"core","slug":"tmux-pane-breakpane"},{"id":"tmux.PaneText","name":"PaneText","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneText is what a pane wrote after an observation's baseline, as the text a person would read: escape sequences removed, UTF-8 joined across writes, and each carriage return or backspace that would overwrite text starting a new line, so nothing the program wrote is hidden."},"source":{"file":"tmux/pane_wait.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneText","product":"core","slug":"tmux-panetext"},{"id":"tmux.PaneText.Text","name":"Text","kind":"attribute","modifiers":[],"parent":"tmux.PaneText","signatures":[],"type":"string","doc":{"summary":"Text is the most recent output, up to a mebibyte."},"source":{"file":"tmux/pane_wait.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneText.Text","product":"core","slug":"tmux-panetext-text"},{"id":"tmux.PaneText.DroppedBytes","name":"DroppedBytes","kind":"attribute","modifiers":[],"parent":"tmux.PaneText","signatures":[],"type":"int","doc":{"summary":"DroppedBytes counts what was dropped from the front of Text to keep it within that bound."},"source":{"file":"tmux/pane_wait.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneText.DroppedBytes","product":"core","slug":"tmux-panetext-droppedbytes"},{"id":"tmux.PaneText.DroppedLines","name":"DroppedLines","kind":"attribute","modifiers":[],"parent":"tmux.PaneText","signatures":[],"type":"int","doc":{"summary":"DroppedLines counts the line ends among those dropped bytes."},"source":{"file":"tmux/pane_wait.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneText.DroppedLines","product":"core","slug":"tmux-panetext-droppedlines"},{"id":"tmux.PaneObservation.WaitFor","name":"WaitFor","kind":"method","modifiers":[],"parent":"tmux.PaneObservation","signatures":[{"raw":"func (o *PaneObservation) WaitFor(\n\tctx context.Context,\n\tmatch func(text string) bool,\n) (PaneText, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"match","type":"func(text string) bool"}],"receiver":{"name":"o","type":"*PaneObservation"},"returns":"(PaneText, error)"}],"doc":{"summary":"WaitFor reads what the pane writes after the observation's baseline and calls match with all of it each time the pane writes, until match reports true, ctx ends, or the observation is lost. It returns the text match accepted, or what was read before the error. tmux pushes each write as it happens, so nothing is polled.","body":"The baseline is not part of the text: check [PaneObservation.Baseline] for\nwhat was on screen already. A shell echoes what is typed into it, and the\necho is output like any other, so open the observation before typing and\nmatch on what the command prints rather than on the command itself.\n\nWrites that arrived together reach match once. Exactly one read may run at\na time, as for [PaneObservation.NextNotification], and a malformed\nnotification is skipped as [PaneObservation.Reader] skips it."},"source":{"file":"tmux/pane_wait.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneObservation.WaitFor","product":"core","slug":"tmux-paneobservation-waitfor"},{"id":"tmux.ErrPlan","name":"ErrPlan","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrPlan identifies a plan that cannot run as recorded. It is matched by errors.Is for [PlanError]."},"source":{"file":"tmux/plan.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrPlan","product":"core","slug":"tmux-errplan"},{"id":"tmux.PlanError","name":"PlanError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PlanError reports a plan this package refused before sending anything to tmux. It matches [ErrPlan] through errors.Is; callers can recover Step and Reason with errors.As."},"source":{"file":"tmux/plan.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PlanError","product":"core","slug":"tmux-planerror"},{"id":"tmux.PlanError.Step","name":"Step","kind":"attribute","modifiers":[],"parent":"tmux.PlanError","signatures":[],"type":"int","doc":{"summary":"Step is the zero-based index of the operation at fault."},"source":{"file":"tmux/plan.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PlanError.Step","product":"core","slug":"tmux-planerror-step"},{"id":"tmux.PlanError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.PlanError","signatures":[],"type":"string","doc":{"summary":"Reason describes what makes the plan unrunnable."},"source":{"file":"tmux/plan.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PlanError.Reason","product":"core","slug":"tmux-planerror-reason"},{"id":"tmux.PlanError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.PlanError","signatures":[{"raw":"func (e *PlanError) Error() string","params":[],"receiver":{"name":"e","type":"*PlanError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/plan.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PlanError.Error","product":"core","slug":"tmux-planerror-error"},{"id":"tmux.PlanError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.PlanError","signatures":[{"raw":"func (e *PlanError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*PlanError"},"returns":"error"}],"doc":{"summary":"Unwrap makes PlanError compatible with ErrPlan."},"source":{"file":"tmux/plan.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PlanError.Unwrap","product":"core","slug":"tmux-planerror-unwrap"},{"id":"tmux.Ref","name":"Ref","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Ref addresses an existing object or one an earlier [Plan] step will create. This permits forward construction without tmux I/O. The zero Ref addresses nothing and makes a targeted operation fail validation."},"source":{"file":"tmux/plan.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Ref","product":"core","slug":"tmux-ref"},{"id":"tmux.Session.Ref","name":"Ref","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Ref() Ref","params":[],"receiver":{"name":"s","type":"Session"},"returns":"Ref"}],"doc":{"summary":"Ref returns a [Ref] addressing the receiver."},"source":{"file":"tmux/plan.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Ref","product":"core","slug":"tmux-session-ref"},{"id":"tmux.Window.Ref","name":"Ref","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Ref() Ref","params":[],"receiver":{"name":"w","type":"Window"},"returns":"Ref"}],"doc":{"summary":"Ref returns a [Ref] addressing the receiver."},"source":{"file":"tmux/plan.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Ref","product":"core","slug":"tmux-window-ref"},{"id":"tmux.Pane.Ref","name":"Ref","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Ref() Ref","params":[],"receiver":{"name":"p","type":"Pane"},"returns":"Ref"}],"doc":{"summary":"Ref returns a [Ref] addressing the receiver."},"source":{"file":"tmux/plan.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Ref","product":"core","slug":"tmux-pane-ref"},{"id":"tmux.SessionRef","name":"SessionRef","kind":"function","modifiers":[],"signatures":[{"raw":"func SessionRef(id SessionID) Ref","params":[{"name":"id","type":"SessionID"}],"returns":"Ref"}],"doc":{"summary":"SessionRef returns a selector-relative [Ref] addressing a session by ID, for a caller holding an identifier rather than a materialized record."},"source":{"file":"tmux/plan.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SessionRef","product":"core","slug":"tmux-sessionref"},{"id":"tmux.WindowRef","name":"WindowRef","kind":"function","modifiers":[],"signatures":[{"raw":"func WindowRef(id WindowID) Ref","params":[{"name":"id","type":"WindowID"}],"returns":"Ref"}],"doc":{"summary":"WindowRef returns a selector-relative [Ref] addressing a window by ID, for a caller holding an identifier rather than a materialized record."},"source":{"file":"tmux/plan.go","line":73,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowRef","product":"core","slug":"tmux-windowref"},{"id":"tmux.PaneRef","name":"PaneRef","kind":"function","modifiers":[],"signatures":[{"raw":"func PaneRef(id PaneID) Ref","params":[{"name":"id","type":"PaneID"}],"returns":"Ref"}],"doc":{"summary":"PaneRef returns a selector-relative [Ref] addressing a pane by ID, for a caller holding an identifier rather than a materialized record."},"source":{"file":"tmux/plan.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneRef","product":"core","slug":"tmux-paneref"},{"id":"tmux.Ref.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.Ref","signatures":[{"raw":"func (r Ref) String() string","params":[],"receiver":{"name":"r","type":"Ref"},"returns":"string"}],"doc":{"summary":"String returns the target a Ref resolves to, or a placeholder naming the step that will produce it."},"source":{"file":"tmux/plan.go","line":81,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Ref.String","product":"core","slug":"tmux-ref-string"},{"id":"tmux.Op","name":"Op","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Op is one tmux command a [Plan] has recorded but not run. Build one with a [Plan] method rather than directly; the zero value records nothing."},"source":{"file":"tmux/plan.go","line":93,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Op","product":"core","slug":"tmux-op"},{"id":"tmux.Op.Chainable","name":"Chainable","kind":"method","modifiers":[],"parent":"tmux.Op","signatures":[{"raw":"func (o Op) Chainable() bool","params":[],"receiver":{"name":"o","type":"Op"},"returns":"bool"}],"doc":{"summary":"Chainable reports whether the operation may share a tmux invocation with others, which is what a [Planner] groups on."},"source":{"file":"tmux/plan.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Op.Chainable","product":"core","slug":"tmux-op-chainable"},{"id":"tmux.Op.Command","name":"Command","kind":"method","modifiers":[],"parent":"tmux.Op","signatures":[{"raw":"func (o Op) Command() string","params":[],"receiver":{"name":"o","type":"Op"},"returns":"string"}],"doc":{"summary":"Command returns the tmux command the operation records."},"source":{"file":"tmux/plan.go","line":114,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Op.Command","product":"core","slug":"tmux-op-command"},{"id":"tmux.Plan","name":"Plan","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Plan records ordered tmux commands for later execution. It groups commands that need no answer and lets later steps reference objects earlier steps create.","body":"Recording touches nothing. [Plan.Preview] renders what would be sent and\n[Plan.Explain] says how it would be grouped, both without a server;\n[Plan.Run] is the only method that reaches tmux.\n\nA Plan is not safe for concurrent use."},"source":{"file":"tmux/plan.go","line":127,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan","product":"core","slug":"tmux-plan"},{"id":"tmux.NewPlan","name":"NewPlan","kind":"function","modifiers":[],"signatures":[{"raw":"func NewPlan() *Plan","params":[],"returns":"*Plan"}],"doc":{"summary":"NewPlan returns an empty [Plan]."},"source":{"file":"tmux/plan.go","line":141,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewPlan","product":"core","slug":"tmux-newplan"},{"id":"tmux.Plan.Len","name":"Len","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) Len() int","params":[],"receiver":{"name":"p","type":"*Plan"},"returns":"int"}],"doc":{"summary":"Len returns how many operations the plan has recorded."},"source":{"file":"tmux/plan.go","line":153,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.Len","product":"core","slug":"tmux-plan-len"},{"id":"tmux.Plan.Ops","name":"Ops","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) Ops() []Op","params":[],"receiver":{"name":"p","type":"*Plan"},"returns":"[]Op"}],"doc":{"summary":"Ops returns the recorded operations, in order, for a [Planner] to group."},"source":{"file":"tmux/plan.go","line":156,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.Ops","product":"core","slug":"tmux-plan-ops"},{"id":"tmux.Dispatch","name":"Dispatch","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Dispatch is one tmux invocation and the operations it carries. A dispatch holding more than one operation is sent as a tmux command list."},"source":{"file":"tmux/plan.go","line":247,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Dispatch","product":"core","slug":"tmux-dispatch"},{"id":"tmux.Dispatch.Ops","name":"Ops","kind":"attribute","modifiers":[],"parent":"tmux.Dispatch","signatures":[],"type":"[]int","doc":{"summary":"Ops are the indices of the operations this dispatch carries, in order."},"source":{"file":"tmux/plan.go","line":249,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Dispatch.Ops","product":"core","slug":"tmux-dispatch-ops"},{"id":"tmux.Dispatch.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.Dispatch","signatures":[],"type":"string","doc":{"summary":"Reason says why the dispatch ends where it does. It is \"chained\" for a command list, \"creates\" for an operation whose new object's ID a later step needs, \"captures\" for one whose output the caller reads, and \"alone\" for a chainable operation with nothing beside it to chain to."},"source":{"file":"tmux/plan.go","line":254,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Dispatch.Reason","product":"core","slug":"tmux-dispatch-reason"},{"id":"tmux.Planner","name":"Planner","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Planner groups a plan's operations into tmux invocations.","body":"Dispatches must contain every operation exactly once and in recorded order.\n[Plan.Run] validates this before reaching tmux.\n\nOperations with [Op.Chainable] false must run alone because command-list\nstdout cannot be attributed to an individual operation."},"source":{"file":"tmux/plan.go","line":264,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Planner","product":"core","slug":"tmux-planner"},{"id":"tmux.Sequential","name":"Sequential","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Sequential sends every operation as its own tmux invocation. It is the simplest correct planner, and useful as a baseline: a plan produces the same results through it as through [Folding], at one invocation per operation."},"source":{"file":"tmux/plan.go","line":272,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Sequential","product":"core","slug":"tmux-sequential"},{"id":"tmux.Sequential.Plan","name":"Plan","kind":"method","modifiers":[],"parent":"tmux.Sequential","signatures":[{"raw":"func (Sequential) Plan(ops []Op) []Dispatch","params":[{"name":"ops","type":"[]Op"}],"receiver":{"name":"","type":"Sequential"},"returns":"[]Dispatch"}],"doc":{"summary":"Plan returns one dispatch per operation."},"source":{"file":"tmux/plan.go","line":275,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Sequential.Plan","product":"core","slug":"tmux-sequential-plan"},{"id":"tmux.Folding","name":"Folding","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Folding groups each run of operations that neither answer nor create into one tmux command list, and sends the rest alone. It is what [Plan.Run] uses."},"source":{"file":"tmux/plan.go","line":292,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Folding","product":"core","slug":"tmux-folding"},{"id":"tmux.Folding.Plan","name":"Plan","kind":"method","modifiers":[],"parent":"tmux.Folding","signatures":[{"raw":"func (Folding) Plan(ops []Op) []Dispatch","params":[{"name":"ops","type":"[]Op"}],"receiver":{"name":"","type":"Folding"},"returns":"[]Dispatch"}],"doc":{"summary":"Plan returns the dispatches for ops, grouping consecutive chainable runs."},"source":{"file":"tmux/plan.go","line":295,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Folding.Plan","product":"core","slug":"tmux-folding-plan"},{"id":"tmux.Plan.Explain","name":"Explain","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) Explain() []Dispatch","params":[],"receiver":{"name":"p","type":"*Plan"},"returns":"[]Dispatch"}],"doc":{"summary":"Explain reports how [Plan.Run] would group the recorded operations into tmux commands, and why each group ends where it does. It runs no commands.","body":"The number of dispatches is the number of tmux invocations."},"source":{"file":"tmux/plan.go","line":332,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.Explain","product":"core","slug":"tmux-plan-explain"},{"id":"tmux.Plan.ExplainWith","name":"ExplainWith","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) ExplainWith(planner Planner) []Dispatch","params":[{"name":"planner","type":"Planner"}],"receiver":{"name":"p","type":"*Plan"},"returns":"[]Dispatch"}],"doc":{"summary":"ExplainWith reports how planner would group the recorded operations."},"source":{"file":"tmux/plan.go","line":335,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.ExplainWith","product":"core","slug":"tmux-plan-explainwith"},{"id":"tmux.Plan.Preview","name":"Preview","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) Preview(version Version) ([][]string, error)","params":[{"name":"version","type":"Version"}],"receiver":{"name":"p","type":"*Plan"},"returns":"([][]string, error)"}],"doc":{"summary":"Preview renders every recorded operation's argument vector without running anything, for the tmux version given.","body":"An entry is nil when it references an object an earlier step has not created.\n\nOther render failures return the entries completed before the error. Preview\ncatches them before a non-atomic run can partially mutate tmux."},"source":{"file":"tmux/plan.go","line":346,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.Preview","product":"core","slug":"tmux-plan-preview"},{"id":"tmux.PlanResult","name":"PlanResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PlanResult reports what running a [Plan] did, one entry per recorded operation, in the order they were recorded."},"source":{"file":"tmux/plan.go","line":372,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PlanResult","product":"core","slug":"tmux-planresult"},{"id":"tmux.PlanResult.Ops","name":"Ops","kind":"attribute","modifiers":[],"parent":"tmux.PlanResult","signatures":[],"type":"[]OpResult","doc":{"summary":"Ops holds one result per recorded operation, in the order recorded."},"source":{"file":"tmux/plan.go","line":374,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PlanResult.Ops","product":"core","slug":"tmux-planresult-ops"},{"id":"tmux.PlanResult.OK","name":"OK","kind":"method","modifiers":[],"parent":"tmux.PlanResult","signatures":[{"raw":"func (r PlanResult) OK() bool","params":[],"receiver":{"name":"r","type":"PlanResult"},"returns":"bool"}],"doc":{"summary":"OK reports whether every operation completed."},"source":{"file":"tmux/plan.go","line":378,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PlanResult.OK","product":"core","slug":"tmux-planresult-ok"},{"id":"tmux.PlanResult.Err","name":"Err","kind":"method","modifiers":[],"parent":"tmux.PlanResult","signatures":[{"raw":"func (r PlanResult) Err() error","params":[],"receiver":{"name":"r","type":"PlanResult"},"returns":"error"}],"doc":{"summary":"Err returns the first failed or indeterminate operation's error, or nil when every operation completed."},"source":{"file":"tmux/plan.go","line":389,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PlanResult.Err","product":"core","slug":"tmux-planresult-err"},{"id":"tmux.OpStatus","name":"OpStatus","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"OpStatus reports what became of one operation in a plan."},"source":{"file":"tmux/plan.go","line":399,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpStatus","product":"core","slug":"tmux-opstatus"},{"id":"tmux.OpComplete","name":"OpComplete","kind":"constant","modifiers":[],"signatures":[],"type":"OpStatus","doc":{"summary":"OpComplete is an operation tmux ran successfully."},"source":{"file":"tmux/plan.go","line":403,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpComplete","product":"core","slug":"tmux-opcomplete"},{"id":"tmux.OpFailed","name":"OpFailed","kind":"constant","modifiers":[],"signatures":[],"type":"OpStatus","doc":{"summary":"OpFailed is an operation tmux refused. Only an operation sent alone can receive this status."},"source":{"file":"tmux/plan.go","line":406,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpFailed","product":"core","slug":"tmux-opfailed"},{"id":"tmux.OpIndeterminate","name":"OpIndeterminate","kind":"constant","modifiers":[],"signatures":[],"type":"OpStatus","doc":{"summary":"OpIndeterminate is an operation dispatched without enough reply evidence to prove whether tmux applied or rejected it."},"source":{"file":"tmux/plan.go","line":409,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpIndeterminate","product":"core","slug":"tmux-opindeterminate"},{"id":"tmux.OpSkipped","name":"OpSkipped","kind":"constant","modifiers":[],"signatures":[],"type":"OpStatus","doc":{"summary":"OpSkipped is an operation the plan did not dispatch because an earlier dispatch failed or became indeterminate."},"source":{"file":"tmux/plan.go","line":412,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpSkipped","product":"core","slug":"tmux-opskipped"},{"id":"tmux.OpStatus.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.OpStatus","signatures":[{"raw":"func (s OpStatus) String() string","params":[],"receiver":{"name":"s","type":"OpStatus"},"returns":"string"}],"doc":{"summary":"String implements fmt.Stringer."},"source":{"file":"tmux/plan.go","line":416,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpStatus.String","product":"core","slug":"tmux-opstatus-string"},{"id":"tmux.OpResult","name":"OpResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"OpResult is what one operation in a [Plan] produced."},"source":{"file":"tmux/plan.go","line":432,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpResult","product":"core","slug":"tmux-opresult"},{"id":"tmux.OpResult.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.OpResult","signatures":[],"type":"string","doc":{"summary":"Command is the tmux command the operation recorded."},"source":{"file":"tmux/plan.go","line":434,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpResult.Command","product":"core","slug":"tmux-opresult-command"},{"id":"tmux.OpResult.Status","name":"Status","kind":"attribute","modifiers":[],"parent":"tmux.OpResult","signatures":[],"type":"OpStatus","doc":{"summary":"Status reports what became of the operation."},"source":{"file":"tmux/plan.go","line":436,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpResult.Status","product":"core","slug":"tmux-opresult-status"},{"id":"tmux.OpResult.Created","name":"Created","kind":"attribute","modifiers":[],"parent":"tmux.OpResult","signatures":[],"type":"string","doc":{"summary":"Created is the ID tmux reported for an object this operation brought into being, and is empty for every other operation."},"source":{"file":"tmux/plan.go","line":439,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpResult.Created","product":"core","slug":"tmux-opresult-created"},{"id":"tmux.OpResult.Stdout","name":"Stdout","kind":"attribute","modifiers":[],"parent":"tmux.OpResult","signatures":[],"type":"[]string","doc":{"summary":"Stdout holds the operation's output, for an operation that captures it."},"source":{"file":"tmux/plan.go","line":441,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpResult.Stdout","product":"core","slug":"tmux-opresult-stdout"},{"id":"tmux.OpResult.Err","name":"Err","kind":"attribute","modifiers":[],"parent":"tmux.OpResult","signatures":[],"type":"error","doc":{"summary":"Err is the failure or uncertainty for a failed or indeterminate operation."},"source":{"file":"tmux/plan.go","line":443,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.OpResult.Err","product":"core","slug":"tmux-opresult-err"},{"id":"tmux.Plan.Run","name":"Run","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) Run(ctx context.Context, server Server) (PlanResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"server","type":"Server"}],"receiver":{"name":"p","type":"*Plan"},"returns":"(PlanResult, error)"}],"doc":{"summary":"Run sends the recorded operations through server and returns one result per step.","body":"Operations that need no answer travel together in one tmux command list;\n[Plan.Explain] reports the grouping. Run stops at the first failed or\nindeterminate dispatch; later operations are [OpSkipped].\n\nTmux refusals appear in results. Transport, context, and [PlanError] failures\nare returned. Run is not atomic; completed mutations remain after failure."},"source":{"file":"tmux/plan.go","line":454,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.Run","product":"core","slug":"tmux-plan-run"},{"id":"tmux.Plan.RunWith","name":"RunWith","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) RunWith(\n\tctx context.Context,\n\tserver Server,\n\tplanner Planner,\n) (PlanResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"server","type":"Server"},{"name":"planner","type":"Planner"}],"receiver":{"name":"p","type":"*Plan"},"returns":"(PlanResult, error)"}],"doc":{"summary":"RunWith runs the plan with planner deciding dispatch grouping. Successful execution produces planner-independent results, but every operation in a failed grouped dispatch is [OpIndeterminate]. Use [Sequential] for exact attribution."},"source":{"file":"tmux/plan.go","line":462,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.RunWith","product":"core","slug":"tmux-plan-runwith"},{"id":"tmux.Plan.Cmd","name":"Cmd","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) Cmd(target Ref, args ...string)","params":[{"name":"target","type":"Ref"},{"name":"args","type":"string","variadic":"positional"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"Cmd records raw tmux arguments targeted at target.","body":"It can target an object an earlier step creates. A zero [Ref] records an\nuntargeted server command.\n\nThe recorded command is assumed to neither print output the caller reads nor\ncreate an object, which is what lets it share a dispatch with its neighbours.\nUse [Plan.CmdCapture] for one whose output is the point."},"source":{"file":"tmux/plan.go","line":731,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.Cmd","product":"core","slug":"tmux-plan-cmd"},{"id":"tmux.Plan.CmdCapture","name":"CmdCapture","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) CmdCapture(target Ref, args ...string)","params":[{"name":"target","type":"Ref"},{"name":"args","type":"string","variadic":"positional"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"CmdCapture records raw tmux arguments whose output is returned in the step's [OpResult], and is otherwise [Plan.Cmd].","body":"Reading output is what stops an operation sharing a dispatch, so this is sent\non its own; [Plan.Explain] reports that."},"source":{"file":"tmux/plan.go","line":740,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.CmdCapture","product":"core","slug":"tmux-plan-cmdcapture"},{"id":"tmux.Plan.SplitPane","name":"SplitPane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SplitPane(target Ref, request SplitPaneRequest) Ref","params":[{"name":"target","type":"Ref"},{"name":"request","type":"SplitPaneRequest"}],"receiver":{"name":"p","type":"*Plan"},"returns":"Ref"}],"doc":{"summary":"SplitPane records a split of the window or pane target names, and returns a [Ref] to the pane it will create.","body":"The returned ref can target later steps before the pane exists:\n\n```go\nplan := tmux.NewPlan()\npane := plan.SplitPane(window.Ref(), tmux.SplitPaneRequest{})\nplan.SendKeys(pane, tmux.SendKeysRequest{Command: tmux.Ptr(\"top\")})\nresult, err := plan.Run(ctx, server)\n```"},"source":{"file":"tmux/plan_pane.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SplitPane","product":"core","slug":"tmux-plan-splitpane"},{"id":"tmux.Plan.SendKeys","name":"SendKeys","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SendKeys(target Ref, request SendKeysRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"SendKeysRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SendKeys records keys sent to the pane target names.","body":"Sending keys produces no output and can share a dispatch; see [Plan.Explain].\n\nA request carrying a command records two steps, as [Pane.SendKeys] issues two\ntmux commands: the keys, and the Enter that submits them. Both are chainable,\nso they still travel together."},"source":{"file":"tmux/plan_pane.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SendKeys","product":"core","slug":"tmux-plan-sendkeys"},{"id":"tmux.Plan.DisplayMessage","name":"DisplayMessage","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) DisplayMessage(target Ref, format string)","params":[{"name":"target","type":"Ref"},{"name":"format","type":"string"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"DisplayMessage records a format expanded against the object target names, and returns its output in the step's [OpResult]. The zero [Ref] expands it against no object, the way [Plan.Cmd] takes one.","body":"It runs alone because command-list stdout has no operation boundaries."},"source":{"file":"tmux/plan_pane.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.DisplayMessage","product":"core","slug":"tmux-plan-displaymessage"},{"id":"tmux.Plan.KillPane","name":"KillPane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) KillPane(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"KillPane records the destruction of the pane target names."},"source":{"file":"tmux/plan_pane.go","line":85,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.KillPane","product":"core","slug":"tmux-plan-killpane"},{"id":"tmux.Plan.KillOtherPanes","name":"KillOtherPanes","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) KillOtherPanes(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"KillOtherPanes records the destruction of every pane in the window holding the pane target names, except that pane."},"source":{"file":"tmux/plan_pane.go","line":97,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.KillOtherPanes","product":"core","slug":"tmux-plan-killotherpanes"},{"id":"tmux.Plan.SelectPane","name":"SelectPane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SelectPane(target Ref, request PaneSelectRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"PaneSelectRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SelectPane records a selection or marking of the pane target names."},"source":{"file":"tmux/plan_pane.go","line":108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SelectPane","product":"core","slug":"tmux-plan-selectpane"},{"id":"tmux.Plan.ResizePane","name":"ResizePane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) ResizePane(target Ref, request ResizePaneRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"ResizePaneRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"ResizePane records a resize of the pane target names."},"source":{"file":"tmux/plan_pane.go","line":119,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.ResizePane","product":"core","slug":"tmux-plan-resizepane"},{"id":"tmux.Plan.SetPaneTitle","name":"SetPaneTitle","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SetPaneTitle(target Ref, title string)","params":[{"name":"target","type":"Ref"},{"name":"title","type":"string"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SetPaneTitle records a title for the pane target names."},"source":{"file":"tmux/plan_pane.go","line":130,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SetPaneTitle","product":"core","slug":"tmux-plan-setpanetitle"},{"id":"tmux.Plan.ClearHistory","name":"ClearHistory","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) ClearHistory(target Ref, request ClearHistoryRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"ClearHistoryRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"ClearHistory records the clearing of the scrollback of the pane target names."},"source":{"file":"tmux/plan_pane.go","line":141,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.ClearHistory","product":"core","slug":"tmux-plan-clearhistory"},{"id":"tmux.Plan.SendPrefix","name":"SendPrefix","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SendPrefix(target Ref, key PrefixKey)","params":[{"name":"target","type":"Ref"},{"name":"key","type":"PrefixKey"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SendPrefix records tmux's prefix key sent to the pane target names."},"source":{"file":"tmux/plan_pane.go","line":154,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SendPrefix","product":"core","slug":"tmux-plan-sendprefix"},{"id":"tmux.Plan.PipePane","name":"PipePane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) PipePane(target Ref, request PipePaneRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"PipePaneRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"PipePane records the pane target names having its output piped to a shell command."},"source":{"file":"tmux/plan_pane.go","line":166,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.PipePane","product":"core","slug":"tmux-plan-pipepane"},{"id":"tmux.Plan.RespawnPane","name":"RespawnPane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) RespawnPane(target Ref, request RespawnRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"RespawnRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"RespawnPane records the pane target names being restarted with a new command."},"source":{"file":"tmux/plan_pane.go","line":177,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.RespawnPane","product":"core","slug":"tmux-plan-respawnpane"},{"id":"tmux.Plan.SwapPane","name":"SwapPane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SwapPane(target, source Ref, detach, keepZoom bool)","params":[{"name":"target","type":"Ref"},{"name":"source","type":"Ref"},{"name":"detach","type":"bool"},{"name":"keepZoom","type":"bool"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SwapPane records the panes target and source name exchanging places.","body":"Both panes are Refs so either may be created by an earlier step. Detach leaves\nactive selection alone; KeepZoom preserves a zoomed window."},"source":{"file":"tmux/plan_pane.go","line":191,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SwapPane","product":"core","slug":"tmux-plan-swappane"},{"id":"tmux.Plan.JoinPane","name":"JoinPane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) JoinPane(target, source Ref, horizontal, detach bool)","params":[{"name":"target","type":"Ref"},{"name":"source","type":"Ref"},{"name":"horizontal","type":"bool"},{"name":"detach","type":"bool"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"JoinPane records the pane source names being moved beside the pane target names, splitting that pane's space.","body":"Horizontal splits left and right; Detach leaves active selection alone."},"source":{"file":"tmux/plan_pane.go","line":216,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.JoinPane","product":"core","slug":"tmux-plan-joinpane"},{"id":"tmux.Plan.MovePane","name":"MovePane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) MovePane(target, source Ref, horizontal, detach bool)","params":[{"name":"target","type":"Ref"},{"name":"source","type":"Ref"},{"name":"horizontal","type":"bool"},{"name":"detach","type":"bool"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"MovePane records the pane source names being moved beside the pane target names without joining it to that pane's layout."},"source":{"file":"tmux/plan_pane.go","line":229,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.MovePane","product":"core","slug":"tmux-plan-movepane"},{"id":"tmux.Plan.StartServer","name":"StartServer","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) StartServer()","params":[],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"StartServer records the tmux server being started if it is not running."},"source":{"file":"tmux/plan_server.go","line":8,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.StartServer","product":"core","slug":"tmux-plan-startserver"},{"id":"tmux.Plan.SetOption","name":"SetOption","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SetOption(target Ref, request SetPlanOptionRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"SetPlanOptionRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SetOption records a tmux option written on the object target names, or on the server when target is the zero [Ref] and Global is set.","body":"It takes the option's tmux name because typed accessors read values back."},"source":{"file":"tmux/plan_server.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SetOption","product":"core","slug":"tmux-plan-setoption"},{"id":"tmux.SetPlanOptionRequest","name":"SetPlanOptionRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SetPlanOptionRequest names one tmux option write for [Plan.SetOption]. Its zero value is invalid, because Name is required."},"source":{"file":"tmux/plan_server.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetPlanOptionRequest","product":"core","slug":"tmux-setplanoptionrequest"},{"id":"tmux.SetPlanOptionRequest.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.SetPlanOptionRequest","signatures":[],"type":"string","doc":{"summary":"Name is the tmux option name, such as \"status\" or a user option \"@thing\"."},"source":{"file":"tmux/plan_server.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetPlanOptionRequest.Name","product":"core","slug":"tmux-setplanoptionrequest-name"},{"id":"tmux.SetPlanOptionRequest.Value","name":"Value","kind":"attribute","modifiers":[],"parent":"tmux.SetPlanOptionRequest","signatures":[],"type":"string","doc":{"summary":"Value is the value to write. It is omitted when Unset is set."},"source":{"file":"tmux/plan_server.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetPlanOptionRequest.Value","product":"core","slug":"tmux-setplanoptionrequest-value"},{"id":"tmux.SetPlanOptionRequest.Global","name":"Global","kind":"attribute","modifiers":[],"parent":"tmux.SetPlanOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Global writes the server or global scope rather than the target's own."},"source":{"file":"tmux/plan_server.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetPlanOptionRequest.Global","product":"core","slug":"tmux-setplanoptionrequest-global"},{"id":"tmux.SetPlanOptionRequest.Window","name":"Window","kind":"attribute","modifiers":[],"parent":"tmux.SetPlanOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Window writes a window option rather than a session or server one."},"source":{"file":"tmux/plan_server.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetPlanOptionRequest.Window","product":"core","slug":"tmux-setplanoptionrequest-window"},{"id":"tmux.SetPlanOptionRequest.Pane","name":"Pane","kind":"attribute","modifiers":[],"parent":"tmux.SetPlanOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Pane writes a pane option."},"source":{"file":"tmux/plan_server.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetPlanOptionRequest.Pane","product":"core","slug":"tmux-setplanoptionrequest-pane"},{"id":"tmux.SetPlanOptionRequest.Unset","name":"Unset","kind":"attribute","modifiers":[],"parent":"tmux.SetPlanOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Unset removes the option instead of writing it."},"source":{"file":"tmux/plan_server.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetPlanOptionRequest.Unset","product":"core","slug":"tmux-setplanoptionrequest-unset"},{"id":"tmux.SetPlanOptionRequest.Append","name":"Append","kind":"attribute","modifiers":[],"parent":"tmux.SetPlanOptionRequest","signatures":[],"type":"bool","doc":{"summary":"Append adds to an existing value rather than replacing it."},"source":{"file":"tmux/plan_server.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetPlanOptionRequest.Append","product":"core","slug":"tmux-setplanoptionrequest-append"},{"id":"tmux.Plan.SetHook","name":"SetHook","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SetHook(target Ref, name, command string, global bool)","params":[{"name":"target","type":"Ref"},{"name":"name","type":"string"},{"name":"command","type":"string"},{"name":"global","type":"bool"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SetHook records a tmux hook written on the object target names."},"source":{"file":"tmux/plan_server.go","line":96,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SetHook","product":"core","slug":"tmux-plan-sethook"},{"id":"tmux.Plan.SetBuffer","name":"SetBuffer","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SetBuffer(name, data string)","params":[{"name":"name","type":"string"},{"name":"data","type":"string"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SetBuffer records text stored in a tmux buffer."},"source":{"file":"tmux/plan_server.go","line":119,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SetBuffer","product":"core","slug":"tmux-plan-setbuffer"},{"id":"tmux.Plan.DeleteBuffer","name":"DeleteBuffer","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) DeleteBuffer(name string)","params":[{"name":"name","type":"string"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"DeleteBuffer records a tmux buffer being removed. An empty name removes the most recently added buffer."},"source":{"file":"tmux/plan_server.go","line":134,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.DeleteBuffer","product":"core","slug":"tmux-plan-deletebuffer"},{"id":"tmux.Plan.DetachClient","name":"DetachClient","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) DetachClient(client ClientName)","params":[{"name":"client","type":"ClientName"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"DetachClient records one client being detached. A client is named directly because plans do not create clients."},"source":{"file":"tmux/plan_server.go","line":149,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.DetachClient","product":"core","slug":"tmux-plan-detachclient"},{"id":"tmux.Plan.SuspendClient","name":"SuspendClient","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SuspendClient(client ClientName)","params":[{"name":"client","type":"ClientName"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SuspendClient records one client being suspended."},"source":{"file":"tmux/plan_server.go","line":160,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SuspendClient","product":"core","slug":"tmux-plan-suspendclient"},{"id":"tmux.Plan.RefreshClient","name":"RefreshClient","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) RefreshClient(client ClientName)","params":[{"name":"client","type":"ClientName"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"RefreshClient records one client being asked to redraw."},"source":{"file":"tmux/plan_server.go","line":171,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.RefreshClient","product":"core","slug":"tmux-plan-refreshclient"},{"id":"tmux.Plan.SwitchClient","name":"SwitchClient","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SwitchClient(target Ref, client ClientName)","params":[{"name":"target","type":"Ref"},{"name":"client","type":"ClientName"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SwitchClient records one client being moved to the session target names. target may refer to a session an earlier step creates."},"source":{"file":"tmux/plan_server.go","line":183,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SwitchClient","product":"core","slug":"tmux-plan-switchclient"},{"id":"tmux.Plan.LockServer","name":"LockServer","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) LockServer()","params":[],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"LockServer records every client attached to the server being locked."},"source":{"file":"tmux/plan_server.go","line":194,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.LockServer","product":"core","slug":"tmux-plan-lockserver"},{"id":"tmux.Plan.NewSession","name":"NewSession","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) NewSession(request NewSessionRequest) Ref","params":[{"name":"request","type":"NewSessionRequest"}],"receiver":{"name":"p","type":"*Plan"},"returns":"Ref"}],"doc":{"summary":"NewSession records a detached session and returns a [Ref] to it.","body":"KillExisting is rejected: [Server.NewSession] probes for the named session\nand removes it before creating, and a plan records without reading. Record\n[Plan.KillSession] before this instead, which says the same thing in the\norder it happens."},"source":{"file":"tmux/plan_session.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.NewSession","product":"core","slug":"tmux-plan-newsession"},{"id":"tmux.Plan.KillSession","name":"KillSession","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) KillSession(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"KillSession records the destruction of the session target names."},"source":{"file":"tmux/plan_session.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.KillSession","product":"core","slug":"tmux-plan-killsession"},{"id":"tmux.Plan.RenameSession","name":"RenameSession","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) RenameSession(target Ref, name string)","params":[{"name":"target","type":"Ref"},{"name":"name","type":"string"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"RenameSession records a new name for the session target names."},"source":{"file":"tmux/plan_session.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.RenameSession","product":"core","slug":"tmux-plan-renamesession"},{"id":"tmux.Plan.NextWindow","name":"NextWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) NextWindow(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"NextWindow records the session target names moving to its next window."},"source":{"file":"tmux/plan_session.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.NextWindow","product":"core","slug":"tmux-plan-nextwindow"},{"id":"tmux.Plan.PreviousWindow","name":"PreviousWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) PreviousWindow(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"PreviousWindow records the session target names moving to its previous window."},"source":{"file":"tmux/plan_session.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.PreviousWindow","product":"core","slug":"tmux-plan-previouswindow"},{"id":"tmux.Plan.LastWindow","name":"LastWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) LastWindow(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"LastWindow records the session target names returning to its previously current window."},"source":{"file":"tmux/plan_session.go","line":81,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.LastWindow","product":"core","slug":"tmux-plan-lastwindow"},{"id":"tmux.Plan.LockSession","name":"LockSession","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) LockSession(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"LockSession records every client attached to the session target names being locked."},"source":{"file":"tmux/plan_session.go","line":93,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.LockSession","product":"core","slug":"tmux-plan-locksession"},{"id":"tmux.Plan.DetachClients","name":"DetachClients","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) DetachClients(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"DetachClients records every client attached to the session target names being detached."},"source":{"file":"tmux/plan_session.go","line":105,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.DetachClients","product":"core","slug":"tmux-plan-detachclients"},{"id":"tmux.Plan.SetEnvironment","name":"SetEnvironment","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SetEnvironment(target Ref, name, value string)","params":[{"name":"target","type":"Ref"},{"name":"name","type":"string"},{"name":"value","type":"string"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SetEnvironment records a variable set in the session target names, or in the server when target is the zero [Ref]."},"source":{"file":"tmux/plan_session.go","line":120,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SetEnvironment","product":"core","slug":"tmux-plan-setenvironment"},{"id":"tmux.Plan.UnsetEnvironment","name":"UnsetEnvironment","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) UnsetEnvironment(target Ref, name string)","params":[{"name":"target","type":"Ref"},{"name":"name","type":"string"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"UnsetEnvironment records a variable removed from the session target names, or from the server when target is the zero [Ref]."},"source":{"file":"tmux/plan_session.go","line":138,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.UnsetEnvironment","product":"core","slug":"tmux-plan-unsetenvironment"},{"id":"tmux.Plan.SourceFile","name":"SourceFile","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SourceFile(request SourceFileRequest)","params":[{"name":"request","type":"SourceFileRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SourceFile records a tmux configuration file being loaded."},"source":{"file":"tmux/plan_session.go","line":152,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SourceFile","product":"core","slug":"tmux-plan-sourcefile"},{"id":"tmux.Plan.KillServer","name":"KillServer","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) KillServer()","params":[],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"KillServer records the tmux server being shut down. Nothing recorded after it can run because the server will be gone."},"source":{"file":"tmux/plan_session.go","line":164,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.KillServer","product":"core","slug":"tmux-plan-killserver"},{"id":"tmux.Plan.NewWindow","name":"NewWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) NewWindow(target Ref, request NewWindowRequest) Ref","params":[{"name":"target","type":"Ref"},{"name":"request","type":"NewWindowRequest"}],"receiver":{"name":"p","type":"*Plan"},"returns":"Ref"}],"doc":{"summary":"NewWindow records a window created in the session or beside the window that target names, and returns a [Ref] to it.","body":"SelectExisting is rejected: it asks tmux for an existing window's\nexpanded name before creating anything, and a plan records without reading."},"source":{"file":"tmux/plan_window.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.NewWindow","product":"core","slug":"tmux-plan-newwindow"},{"id":"tmux.Plan.KillWindow","name":"KillWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) KillWindow(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"KillWindow records the destruction of the window target names."},"source":{"file":"tmux/plan_window.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.KillWindow","product":"core","slug":"tmux-plan-killwindow"},{"id":"tmux.Plan.KillOtherWindows","name":"KillOtherWindows","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) KillOtherWindows(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"KillOtherWindows records the destruction of every window in the session holding the window target names, except that window."},"source":{"file":"tmux/plan_window.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.KillOtherWindows","product":"core","slug":"tmux-plan-killotherwindows"},{"id":"tmux.Plan.RenameWindow","name":"RenameWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) RenameWindow(target Ref, name string)","params":[{"name":"target","type":"Ref"},{"name":"name","type":"string"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"RenameWindow records a new name for the window target names."},"source":{"file":"tmux/plan_window.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.RenameWindow","product":"core","slug":"tmux-plan-renamewindow"},{"id":"tmux.Plan.SelectWindow","name":"SelectWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SelectWindow(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SelectWindow records the window target names becoming its session's current window."},"source":{"file":"tmux/plan_window.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SelectWindow","product":"core","slug":"tmux-plan-selectwindow"},{"id":"tmux.Plan.SelectLayout","name":"SelectLayout","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SelectLayout(target Ref, request SelectLayoutRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"SelectLayoutRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SelectLayout records a layout applied to the window target names. Run checks every recorded layout before dispatching any operation. Recording and Preview perform no I/O; Preview uses its supplied version for name support."},"source":{"file":"tmux/plan_window.go","line":84,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SelectLayout","product":"core","slug":"tmux-plan-selectlayout"},{"id":"tmux.Plan.NextLayout","name":"NextLayout","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) NextLayout(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"NextLayout records the next preset layout applied to the window target names."},"source":{"file":"tmux/plan_window.go","line":96,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.NextLayout","product":"core","slug":"tmux-plan-nextlayout"},{"id":"tmux.Plan.PreviousLayout","name":"PreviousLayout","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) PreviousLayout(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"PreviousLayout records the previous preset layout applied to the window target names."},"source":{"file":"tmux/plan_window.go","line":108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.PreviousLayout","product":"core","slug":"tmux-plan-previouslayout"},{"id":"tmux.Plan.ResizeWindow","name":"ResizeWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) ResizeWindow(target Ref, request ResizeWindowRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"ResizeWindowRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"ResizeWindow records a resize of the window target names."},"source":{"file":"tmux/plan_window.go","line":119,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.ResizeWindow","product":"core","slug":"tmux-plan-resizewindow"},{"id":"tmux.Plan.RotateWindow","name":"RotateWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) RotateWindow(target Ref, request RotateWindowRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"RotateWindowRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"RotateWindow records the panes of the window target names being rotated through their positions."},"source":{"file":"tmux/plan_window.go","line":131,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.RotateWindow","product":"core","slug":"tmux-plan-rotatewindow"},{"id":"tmux.Plan.RespawnWindow","name":"RespawnWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) RespawnWindow(target Ref, request RespawnRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"RespawnRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"RespawnWindow records the window target names being restarted with a new command."},"source":{"file":"tmux/plan_window.go","line":143,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.RespawnWindow","product":"core","slug":"tmux-plan-respawnwindow"},{"id":"tmux.Plan.LastPane","name":"LastPane","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) LastPane(target Ref)","params":[{"name":"target","type":"Ref"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"LastPane records the window target names returning to its previously active pane."},"source":{"file":"tmux/plan_window.go","line":155,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.LastPane","product":"core","slug":"tmux-plan-lastpane"},{"id":"tmux.Plan.LinkWindow","name":"LinkWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) LinkWindow(target, source Ref, request LinkWindowRequest)","params":[{"name":"target","type":"Ref"},{"name":"source","type":"Ref"},{"name":"request","type":"LinkWindowRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"LinkWindow records the window source names being linked into the session target names.","body":"target supplies the destination session so it may refer to a session an\nearlier step creates. TargetIndex still selects the position within it."},"source":{"file":"tmux/plan_window.go","line":170,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.LinkWindow","product":"core","slug":"tmux-plan-linkwindow"},{"id":"tmux.Plan.UnlinkWindow","name":"UnlinkWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) UnlinkWindow(target Ref, request UnlinkWindowRequest)","params":[{"name":"target","type":"Ref"},{"name":"request","type":"UnlinkWindowRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"UnlinkWindow records the window target names being removed from the session it is linked into."},"source":{"file":"tmux/plan_window.go","line":183,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.UnlinkWindow","product":"core","slug":"tmux-plan-unlinkwindow"},{"id":"tmux.Plan.MoveWindow","name":"MoveWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) MoveWindow(target, source Ref, request MoveWindowRequest)","params":[{"name":"target","type":"Ref"},{"name":"source","type":"Ref"},{"name":"request","type":"MoveWindowRequest"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"MoveWindow records the window source names being moved into the session target names.","body":"target supplies the destination session. TargetIndex selects its position."},"source":{"file":"tmux/plan_window.go","line":201,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.MoveWindow","product":"core","slug":"tmux-plan-movewindow"},{"id":"tmux.Plan.SwapWindow","name":"SwapWindow","kind":"method","modifiers":[],"parent":"tmux.Plan","signatures":[{"raw":"func (p *Plan) SwapWindow(target, source Ref, detach bool)","params":[{"name":"target","type":"Ref"},{"name":"source","type":"Ref"},{"name":"detach","type":"bool"}],"receiver":{"name":"p","type":"*Plan"}}],"doc":{"summary":"SwapWindow records the windows target and source name exchanging places. Detach leaves each session's current window unchanged."},"source":{"file":"tmux/plan_window.go","line":214,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Plan.SwapWindow","product":"core","slug":"tmux-plan-swapwindow"},{"id":"tmux.ErrPollCondition","name":"ErrPollCondition","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrPollCondition identifies a poll whose condition was nil. It is matched by errors.Is."},"source":{"file":"tmux/poll.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrPollCondition","product":"core","slug":"tmux-errpollcondition"},{"id":"tmux.Poll","name":"Poll","kind":"function","modifiers":[],"signatures":[{"raw":"func Poll(\n\tctx context.Context,\n\tinterval time.Duration,\n\tcondition func(context.Context) (bool, error),\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"interval","type":"time.Duration"},{"name":"condition","type":"func(context.Context) (bool, error)"}],"returns":"error"}],"doc":{"summary":"Poll checks condition immediately and then after each interval, until it reports true, returns an error, or ctx ends.","body":"A condition receives ctx and must observe cancellation itself; Poll cannot\ninterrupt one already running. Poll returns condition errors unchanged and\nctx.Err when ctx ends first.\n\nPoll is for a state tmux does not announce. Waiting for a pane to print\nsomething is not one: [PaneObservation.WaitFor] is woken by tmux as the\npane writes, where a poll re-reads the screen on a guess and can match a\nshell's echo of what was typed. [Server.WaitFor] waits on tmux's separate\nwait-for channel."},"source":{"file":"tmux/poll.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Poll","product":"core","slug":"tmux-poll"},{"id":"tmux.PromptType","name":"PromptType","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PromptType selects one closed tmux prompt-history class. The zero value selects all prompt types."},"source":{"file":"tmux/prompt_history.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptType","product":"core","slug":"tmux-prompttype"},{"id":"tmux.PromptTypeAll","name":"PromptTypeAll","kind":"constant","modifiers":[],"signatures":[],"type":"PromptType","doc":{"summary":"PromptTypeAll selects every prompt-history class and omits -T."},"source":{"file":"tmux/prompt_history.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptTypeAll","product":"core","slug":"tmux-prompttypeall"},{"id":"tmux.PromptTypeCommand","name":"PromptTypeCommand","kind":"constant","modifiers":[],"signatures":[],"type":"PromptType","doc":{"summary":"PromptTypeCommand selects command-prompt history."},"source":{"file":"tmux/prompt_history.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptTypeCommand","product":"core","slug":"tmux-prompttypecommand"},{"id":"tmux.PromptTypeSearch","name":"PromptTypeSearch","kind":"constant","modifiers":[],"signatures":[],"type":"PromptType","doc":{"summary":"PromptTypeSearch selects search-prompt history."},"source":{"file":"tmux/prompt_history.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptTypeSearch","product":"core","slug":"tmux-prompttypesearch"},{"id":"tmux.PromptTypeTarget","name":"PromptTypeTarget","kind":"constant","modifiers":[],"signatures":[],"type":"PromptType","doc":{"summary":"PromptTypeTarget selects target-prompt history."},"source":{"file":"tmux/prompt_history.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptTypeTarget","product":"core","slug":"tmux-prompttypetarget"},{"id":"tmux.PromptTypeWindowTarget","name":"PromptTypeWindowTarget","kind":"constant","modifiers":[],"signatures":[],"type":"PromptType","doc":{"summary":"PromptTypeWindowTarget selects window-target-prompt history."},"source":{"file":"tmux/prompt_history.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptTypeWindowTarget","product":"core","slug":"tmux-prompttypewindowtarget"},{"id":"tmux.PromptHistoryRequest","name":"PromptHistoryRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PromptHistoryRequest selects one prompt-history class. A zero request selects every class."},"source":{"file":"tmux/prompt_history.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptHistoryRequest","product":"core","slug":"tmux-prompthistoryrequest"},{"id":"tmux.PromptHistoryRequest.Type","name":"Type","kind":"attribute","modifiers":[],"parent":"tmux.PromptHistoryRequest","signatures":[],"type":"PromptType","doc":{"summary":"Type selects a prompt-history class; zero selects all classes."},"source":{"file":"tmux/prompt_history.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PromptHistoryRequest.Type","product":"core","slug":"tmux-prompthistoryrequest-type"},{"id":"tmux.Server.ShowPromptHistory","name":"ShowPromptHistory","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ShowPromptHistory(\n\tctx context.Context,\n\trequest PromptHistoryRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"PromptHistoryRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"([]string, error)"}],"doc":{"summary":"ShowPromptHistory returns an owned snapshot of tmux prompt-history lines. It requires tmux 3.3 or later and returns [VersionTooLowError] below that floor. A tmux command or transport failure is returned rather than answered with no history."},"source":{"file":"tmux/prompt_history.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ShowPromptHistory","product":"core","slug":"tmux-server-showprompthistory"},{"id":"tmux.Server.ClearPromptHistory","name":"ClearPromptHistory","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ClearPromptHistory(\n\tctx context.Context,\n\trequest PromptHistoryRequest,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"PromptHistoryRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"ClearPromptHistory clears all tmux prompt history or one selected class. Version, transport, and completed-stderr failures are returned. It requires tmux 3.3 or later and returns [VersionTooLowError] below that floor."},"source":{"file":"tmux/prompt_history.go","line":65,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ClearPromptHistory","product":"core","slug":"tmux-server-clearprompthistory"},{"id":"tmux.Session.ActiveWindow","name":"ActiveWindow","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) ActiveWindow() (Window, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(Window, bool)"}],"doc":{"summary":"ActiveWindow returns this session's sole active winlink from the materialized snapshot. It never queries tmux; use [Session.ResolveActiveWindow] for live state."},"source":{"file":"tmux/relations.go","line":11,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.ActiveWindow","product":"core","slug":"tmux-session-activewindow"},{"id":"tmux.Session.ActivePane","name":"ActivePane","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) ActivePane() (Pane, bool)","params":[],"receiver":{"name":"s","type":"Session"},"returns":"(Pane, bool)"}],"doc":{"summary":"ActivePane returns the active pane in this session's materialized active window. It never queries tmux; use [Session.ResolveActivePane] for live state."},"source":{"file":"tmux/relations.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.ActivePane","product":"core","slug":"tmux-session-activepane"},{"id":"tmux.Window.ActivePane","name":"ActivePane","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ActivePane() (Pane, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"(Pane, bool)"}],"doc":{"summary":"ActivePane returns the first active pane in this materialized winlink view. It never queries tmux; use [Window.ResolveActivePane] for live state."},"source":{"file":"tmux/relations.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ActivePane","product":"core","slug":"tmux-window-activepane"},{"id":"tmux.Window.LinkedSessions","name":"LinkedSessions","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) LinkedSessions() ([]Session, bool)","params":[],"receiver":{"name":"w","type":"Window"},"returns":"([]Session, bool)"}],"doc":{"summary":"LinkedSessions returns newly allocated shallow copies of materialized sessions containing this window, and reports whether the receiver carries relations at all. It never queries tmux."},"source":{"file":"tmux/relations.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.LinkedSessions","product":"core","slug":"tmux-window-linkedsessions"},{"id":"tmux.Session.ResolveActiveWindow","name":"ResolveActiveWindow","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) ResolveActiveWindow(ctx context.Context) (Window, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"(Window, error)"}],"doc":{"summary":"ResolveActiveWindow snapshots live tmux state and returns this session's sole exact active winlink. It returns [SnapshotLookupError] cardinality errors."},"source":{"file":"tmux/relations.go","line":83,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.ResolveActiveWindow","product":"core","slug":"tmux-session-resolveactivewindow"},{"id":"tmux.Session.ResolveActivePane","name":"ResolveActivePane","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) ResolveActivePane(ctx context.Context) (Pane, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"(Pane, error)"}],"doc":{"summary":"ResolveActivePane returns the active pane in this session's active window, read live. It lists that session's panes rather than taking a whole-server snapshot, because a pane row already carries which window is active. It returns [SnapshotLookupError] cardinality errors, which match [ErrNotFound] when nothing was found."},"source":{"file":"tmux/relations.go","line":96,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.ResolveActivePane","product":"core","slug":"tmux-session-resolveactivepane"},{"id":"tmux.Window.ResolveSession","name":"ResolveSession","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ResolveSession(ctx context.Context) (Session, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"(Session, error)"}],"doc":{"summary":"ResolveSession snapshots live tmux state and returns this exact winlink's parent session. It returns [SnapshotLookupError] cardinality errors."},"source":{"file":"tmux/relations.go","line":139,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ResolveSession","product":"core","slug":"tmux-window-resolvesession"},{"id":"tmux.Window.ResolveActivePane","name":"ResolveActivePane","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) ResolveActivePane(ctx context.Context) (Pane, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"(Pane, error)"}],"doc":{"summary":"ResolveActivePane returns the active pane in this exact winlink view, read live. It lists that window's panes rather than taking a whole-server snapshot. It returns [SnapshotLookupError] cardinality errors, which match [ErrNotFound] when nothing was found."},"source":{"file":"tmux/relations.go","line":156,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.ResolveActivePane","product":"core","slug":"tmux-window-resolveactivepane"},{"id":"tmux.Pane.ResolveWindow","name":"ResolveWindow","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ResolveWindow(ctx context.Context) (Window, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Window, error)"}],"doc":{"summary":"ResolveWindow snapshots live tmux state and returns the exact winlink containing this pane view. It returns [SnapshotLookupError] cardinality errors."},"source":{"file":"tmux/relations.go","line":175,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ResolveWindow","product":"core","slug":"tmux-pane-resolvewindow"},{"id":"tmux.Pane.ResolveSession","name":"ResolveSession","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) ResolveSession(ctx context.Context) (Session, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Session, error)"}],"doc":{"summary":"ResolveSession snapshots live tmux state and returns the parent session of this pane's exact winlink. It returns [SnapshotLookupError] cardinality errors."},"source":{"file":"tmux/relations.go","line":185,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.ResolveSession","product":"core","slug":"tmux-pane-resolvesession"},{"id":"tmux.ErrMissingSubcommand","name":"ErrMissingSubcommand","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrMissingSubcommand identifies an object command with no tmux subcommand."},"source":{"file":"tmux/scoped_command.go","line":9,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrMissingSubcommand","product":"core","slug":"tmux-errmissingsubcommand"},{"id":"tmux.Session.Cmd","name":"Cmd","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Cmd(ctx context.Context, args ...string) (CommandResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"args","type":"string","variadic":"positional"}],"receiver":{"name":"s","type":"Session"},"returns":"(CommandResult, error)"}],"doc":{"summary":"Cmd executes a tmux subcommand targeted to the session's stable ID."},"source":{"file":"tmux/scoped_command.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Cmd","product":"core","slug":"tmux-session-cmd"},{"id":"tmux.Window.Cmd","name":"Cmd","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Cmd(ctx context.Context, args ...string) (CommandResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"args","type":"string","variadic":"positional"}],"receiver":{"name":"w","type":"Window"},"returns":"(CommandResult, error)"}],"doc":{"summary":"Cmd executes a tmux subcommand targeted to the window's stable ID."},"source":{"file":"tmux/scoped_command.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Cmd","product":"core","slug":"tmux-window-cmd"},{"id":"tmux.Pane.Cmd","name":"Cmd","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Cmd(ctx context.Context, args ...string) (CommandResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"args","type":"string","variadic":"positional"}],"receiver":{"name":"p","type":"Pane"},"returns":"(CommandResult, error)"}],"doc":{"summary":"Cmd executes a tmux subcommand targeted to the pane's stable ID."},"source":{"file":"tmux/scoped_command.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Cmd","product":"core","slug":"tmux-pane-cmd"},{"id":"tmux.Server.SearchSessions","name":"SearchSessions","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SearchSessions(\n\tctx context.Context,\n\tfilter *TmuxFilter,\n) ([]Session, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"filter","type":"*TmuxFilter"}],"receiver":{"name":"s","type":"Server"},"returns":"([]Session, error)"}],"doc":{"summary":"SearchSessions returns a newly materialized snapshot projection of sessions selected by tmux's live -f expression. A nil filter omits -f; a nonnil empty filter remains an explicit empty expression.","examples":[{"lang":"console","intro":"Filter live sessions by name using tmux's format expression syntax. A nil filter lists all sessions. No matches returns an empty slice; the returned session records do not capture window relations. Use Go 1.26.0 or newer and tmux 3.3a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-go.git libtmux-source && \\\n git -C libtmux-source checkout 6f3df55f8a41999e41225eefb3940545b834e6a2\n"},{"lang":"go","intro":"Save this dependency file as go.mod:","code":"module example.com/libtmux-api\n\ngo 1.26.0\n\nrequire github.com/libtmux/libtmux-go v0.0.0\n\nreplace github.com/libtmux/libtmux-go => ./libtmux-source\n"},{"lang":"go","intro":"Save this complete example as example_test.go. It creates a private temporary socket and stops its server before removing the directory. Cleanup failure fails the example and retains the socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-go/blob/6f3df55f8a41999e41225eefb3940545b834e6a2/tmux/api_server_search_sessions_example_test.go","code":"package tmux_test\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"slices\"\n\t\"time\"\n\n\t\"github.com/libtmux/libtmux-go/tmux\"\n)\n\n// Filter live sessions by name using tmux's format expression syntax.\n// A nil filter lists all sessions. No matches returns an empty slice;\n// the returned session records do not capture window relations.\nfunc ExampleServer_SearchSessions_complete() {\n\trun := func() (runErr error) {\n\t\tdirectory, err := os.MkdirTemp(\"\", \"libtmux-go-api-\")\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create socket directory: %w\", err)\n\t\t}\n\t\tserver, err := tmux.NewServer(tmux.ServerOptions{\n\t\t\tSocketPath: filepath.Join(directory, \"tmux.sock\"),\n\t\t\tConfigFile: \"/dev/null\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errors.Join(err, os.RemoveAll(directory))\n\t\t}\n\t\tdefer func() {\n\t\t\t// Cleanup has its own deadline because the operation may have timed out.\n\t\t\tcleanup, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\t\t\tdefer cancel()\n\t\t\tif err := server.Kill(cleanup); err != nil && !errors.Is(err, tmux.ErrNoServer) {\n\t\t\t\trunErr = errors.Join(runErr, fmt.Errorf(\"stop server at %s: %w\", directory, err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\trunErr = errors.Join(runErr, os.RemoveAll(directory))\n\t\t}()\n\t\tctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)\n\t\tdefer cancel()\n\t\tfor _, name := range []string{\"work-one\", \"work-two\", \"scratch\"} {\n\t\t\tif _, err = server.NewSession(ctx, tmux.NewSessionRequest{\n\t\t\t\tName: name, Command: \"cat\", Width: 100, Height: 30,\n\t\t\t}); err != nil {\n\t\t\t\treturn fmt.Errorf(\"create %s session: %w\", name, err)\n\t\t\t}\n\t\t}\n\t\tfilter := tmux.TmuxFilter(\"#{m:work-*,#{session_name}}\")\n\t\tmatched, err := server.SearchSessions(ctx, &filter)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"filter sessions: %w\", err)\n\t\t}\n\t\tnames := make([]string, 0, len(matched))\n\t\tfor _, session := range matched {\n\t\t\tname, ok := session.Name()\n\t\t\tif !ok {\n\t\t\t\treturn errors.New(\"matched session has no name\")\n\t\t\t}\n\t\t\tif _, loaded := session.Windows(); loaded {\n\t\t\t\treturn errors.New(\"live session search unexpectedly loaded windows\")\n\t\t\t}\n\t\t\tnames = append(names, name)\n\t\t}\n\t\tslices.Sort(names)\n\t\tfmt.Println(\"matched:\", names)\n\t\tall, err := server.SearchSessions(ctx, nil)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"list unfiltered sessions: %w\", err)\n\t\t}\n\t\tfmt.Println(\"unfiltered:\", len(all))\n\t\tmissing := tmux.TmuxFilter(\"#{==:#{session_name},missing}\")\n\t\tnone, err := server.SearchSessions(ctx, &missing)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"search missing session: %w\", err)\n\t\t}\n\t\tfmt.Println(\"missing:\", len(none))\n\t\treturn nil\n\t}\n\tif err := run(); err != nil {\n\t\tpanic(err)\n\t}\n\t// Output:\n\t// matched: [work-one work-two]\n\t// unfiltered: 3\n\t// missing: 0\n}\n"},{"lang":"console","intro":"Run the saved file. Go checks the Output comment and fails on different output or an operation or cleanup error:","code":"$ GOWORK=off go test -count=1 -v example_test.go\n"}]},"source":{"file":"tmux/search.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SearchSessions","product":"core","slug":"tmux-server-searchsessions"},{"id":"tmux.Server.SearchClients","name":"SearchClients","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SearchClients(\n\tctx context.Context,\n\tfilter *TmuxFilter,\n) ([]Client, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"filter","type":"*TmuxFilter"}],"receiver":{"name":"s","type":"Server"},"returns":"([]Client, error)"}],"doc":{"summary":"SearchClients returns a newly materialized snapshot projection of clients selected by tmux's live -f expression. A nil filter omits -f and requests the unfiltered listing on every supported tmux version. A nonnil filter, including an empty expression, requires tmux 3.4 or newer and otherwise returns [VersionTooLowError]."},"source":{"file":"tmux/search.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SearchClients","product":"core","slug":"tmux-server-searchclients"},{"id":"tmux.Server.SearchWindows","name":"SearchWindows","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SearchWindows(\n\tctx context.Context,\n\tfilter *TmuxFilter,\n) ([]Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"filter","type":"*TmuxFilter"}],"receiver":{"name":"s","type":"Server"},"returns":"([]Window, error)"}],"doc":{"summary":"SearchWindows returns a newly materialized snapshot projection of winlinks selected by tmux's live -f expression. A nil filter omits -f and a nonnil empty filter sends an explicit expression."},"source":{"file":"tmux/search.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SearchWindows","product":"core","slug":"tmux-server-searchwindows"},{"id":"tmux.Server.SearchPanes","name":"SearchPanes","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SearchPanes(\n\tctx context.Context,\n\tfilter *TmuxFilter,\n) ([]Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"filter","type":"*TmuxFilter"}],"receiver":{"name":"s","type":"Server"},"returns":"([]Pane, error)"}],"doc":{"summary":"SearchPanes returns a newly materialized snapshot projection of pane views selected by tmux's live -f expression. A nil filter omits -f and a nonnil empty filter sends an explicit expression."},"source":{"file":"tmux/search.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SearchPanes","product":"core","slug":"tmux-server-searchpanes"},{"id":"tmux.Session.SearchWindows","name":"SearchWindows","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SearchWindows(\n\tctx context.Context,\n\tfilter *TmuxFilter,\n) ([]Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"filter","type":"*TmuxFilter"}],"receiver":{"name":"s","type":"Session"},"returns":"([]Window, error)"}],"doc":{"summary":"SearchWindows returns this session's winlinks selected by tmux's live -f expression. A nil filter omits -f and a nonnil empty filter sends an explicit expression. The session's stable identity limits the projection."},"source":{"file":"tmux/search.go","line":90,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SearchWindows","product":"core","slug":"tmux-session-searchwindows"},{"id":"tmux.Session.SearchPanes","name":"SearchPanes","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SearchPanes(\n\tctx context.Context,\n\tfilter *TmuxFilter,\n) ([]Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"filter","type":"*TmuxFilter"}],"receiver":{"name":"s","type":"Session"},"returns":"([]Pane, error)"}],"doc":{"summary":"SearchPanes returns this session's pane views selected by tmux's live -f expression. A nil filter omits -f and a nonnil empty filter sends an explicit expression. The session's stable identity limits the projection."},"source":{"file":"tmux/search.go","line":117,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SearchPanes","product":"core","slug":"tmux-session-searchpanes"},{"id":"tmux.Window.SearchPanes","name":"SearchPanes","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SearchPanes(\n\tctx context.Context,\n\tfilter *TmuxFilter,\n) ([]Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"filter","type":"*TmuxFilter"}],"receiver":{"name":"w","type":"Window"},"returns":"([]Pane, error)"}],"doc":{"summary":"SearchPanes returns this window's pane views selected by tmux's live -f expression. A nil filter omits -f and a nonnil empty filter sends an explicit expression. Stable session and window identities limit the projection."},"source":{"file":"tmux/search.go","line":144,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SearchPanes","product":"core","slug":"tmux-window-searchpanes"},{"id":"tmux.Server","name":"Server","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Server is an immutable handle to one tmux configuration. Its zero value is invalid. Copying a configured Server preserves its configuration and shares version-cache coordination; only the documented concurrent operations are safe to share."},"source":{"file":"tmux/server.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server","product":"core","slug":"tmux-server"},{"id":"tmux.Server.SocketPath","name":"SocketPath","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SocketPath() string","params":[],"receiver":{"name":"s","type":"Server"},"returns":"string"}],"doc":{"summary":"SocketPath returns the absolute socket path selected when the server was constructed. An invalid server returns an empty string."},"source":{"file":"tmux/server.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SocketPath","product":"core","slug":"tmux-server-socketpath"},{"id":"tmux.Server.ConfigFile","name":"ConfigFile","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ConfigFile() string","params":[],"receiver":{"name":"s","type":"Server"},"returns":"string"}],"doc":{"summary":"ConfigFile returns the configured tmux configuration path."},"source":{"file":"tmux/server.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ConfigFile","product":"core","slug":"tmux-server-configfile"},{"id":"tmux.Server.ProcessEnvironment","name":"ProcessEnvironment","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ProcessEnvironment() []string","params":[],"receiver":{"name":"s","type":"Server"},"returns":"[]string"}],"doc":{"summary":"ProcessEnvironment returns the normalized environment explicitly supplied through [ServerOptions]. Nil means the server inherited a private process snapshot. The returned slice is owned by the caller; an invalid server returns nil."},"source":{"file":"tmux/server.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ProcessEnvironment","product":"core","slug":"tmux-server-processenvironment"},{"id":"tmux.Server.Executable","name":"Executable","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Executable() string","params":[],"receiver":{"name":"s","type":"Server"},"returns":"string"}],"doc":{"summary":"Executable returns the absolute tmux executable path resolved when the server was constructed. An invalid server returns an empty string."},"source":{"file":"tmux/server.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Executable","product":"core","slug":"tmux-server-executable"},{"id":"tmux.Server.Cmd","name":"Cmd","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Cmd(ctx context.Context, args ...string) (CommandResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"args","type":"string","variadic":"positional"}],"receiver":{"name":"s","type":"Server"},"returns":"(CommandResult, error)"}],"doc":{"summary":"Cmd executes raw tmux arguments and returns caller-owned result slices. A completed nonzero exit remains a result; validation and transport failures return errors. Cancellation cannot prove whether a mutation reached tmux.","body":"An argument that is exactly \";\" separates two tmux commands, so one call can\nsubmit a command list. tmux runs a list until a command fails and drops the\nrest, and answers with one merged stdout, so a caller that needs to know\nwhich command produced which line submits them separately. A list means the\nsame thing through either execution binding.\n\nOnly a standalone \";\" separates commands. Other semicolons follow the selected\nbinding's parsing; typed operations keep values literal across bindings."},"source":{"file":"tmux/server.go","line":99,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Cmd","product":"core","slug":"tmux-server-cmd"},{"id":"tmux.Server.IsAlive","name":"IsAlive","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) IsAlive(ctx context.Context) (bool, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"(bool, error)"}],"doc":{"summary":"IsAlive reports whether a tmux server answers on the configured socket. Only an absent server reports false without an error: a socket that exists but cannot be reached, such as one the process may not read, is a question that could not be answered and is returned as an error. Use [Server.CheckAlive] where an absent server is itself the failure."},"source":{"file":"tmux/server.go","line":145,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.IsAlive","product":"core","slug":"tmux-server-isalive"},{"id":"tmux.Server.CheckAlive","name":"CheckAlive","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) CheckAlive(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"CheckAlive returns a [CommandError] when the configured server is not alive. Cancellation and transport failures are returned directly. Use [Server.IsAlive] where an absent server is an answer rather than a failure."},"source":{"file":"tmux/server.go","line":164,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.CheckAlive","product":"core","slug":"tmux-server-checkalive"},{"id":"tmux.AttachSessionOptions","name":"AttachSessionOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"AttachSessionOptions configures terminal ownership and attach behavior shared by server- and session-scoped attachment. Nil StartDirectory omits its flag and a nonnil empty string is explicit; ClientFlags is copied. The Stdin, Stdout, and Stderr pointers are retained for the attach call and are never owned or closed by this package."},"source":{"file":"tmux/server_attach.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions","product":"core","slug":"tmux-attachsessionoptions"},{"id":"tmux.AttachSessionOptions.DetachOthers","name":"DetachOthers","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionOptions","signatures":[],"type":"bool","doc":{"summary":"DetachOthers disconnects other clients attached to the target session."},"source":{"file":"tmux/server_attach.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions.DetachOthers","product":"core","slug":"tmux-attachsessionoptions-detachothers"},{"id":"tmux.AttachSessionOptions.DetachParent","name":"DetachParent","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionOptions","signatures":[],"type":"bool","doc":{"summary":"DetachParent detaches the invoking client from its parent session first."},"source":{"file":"tmux/server_attach.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions.DetachParent","product":"core","slug":"tmux-attachsessionoptions-detachparent"},{"id":"tmux.AttachSessionOptions.NoUpdateEnvironment","name":"NoUpdateEnvironment","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionOptions","signatures":[],"type":"bool","doc":{"summary":"NoUpdateEnvironment preserves the invoking client's environment."},"source":{"file":"tmux/server_attach.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions.NoUpdateEnvironment","product":"core","slug":"tmux-attachsessionoptions-noupdateenvironment"},{"id":"tmux.AttachSessionOptions.ReadOnly","name":"ReadOnly","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionOptions","signatures":[],"type":"bool","doc":{"summary":"ReadOnly attaches the client with read-only permissions."},"source":{"file":"tmux/server_attach.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions.ReadOnly","product":"core","slug":"tmux-attachsessionoptions-readonly"},{"id":"tmux.AttachSessionOptions.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionOptions","signatures":[],"type":"*string","doc":{"summary":"StartDirectory selects the attached client's initial directory."},"source":{"file":"tmux/server_attach.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions.StartDirectory","product":"core","slug":"tmux-attachsessionoptions-startdirectory"},{"id":"tmux.AttachSessionOptions.ClientFlags","name":"ClientFlags","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionOptions","signatures":[],"type":"[]string","doc":{"summary":"ClientFlags are comma-joined client flags copied before attachment starts."},"source":{"file":"tmux/server_attach.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions.ClientFlags","product":"core","slug":"tmux-attachsessionoptions-clientflags"},{"id":"tmux.AttachSessionOptions.Stdin","name":"Stdin","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionOptions","signatures":[],"type":"*os.File","doc":{"summary":"Stdin is the attached tmux client's input stream; nil inherits process stdin."},"source":{"file":"tmux/server_attach.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions.Stdin","product":"core","slug":"tmux-attachsessionoptions-stdin"},{"id":"tmux.AttachSessionOptions.Stdout","name":"Stdout","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionOptions","signatures":[],"type":"*os.File","doc":{"summary":"Stdout is the attached tmux client's output stream; nil inherits process stdout."},"source":{"file":"tmux/server_attach.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions.Stdout","product":"core","slug":"tmux-attachsessionoptions-stdout"},{"id":"tmux.AttachSessionOptions.Stderr","name":"Stderr","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionOptions","signatures":[],"type":"*os.File","doc":{"summary":"Stderr is the attached tmux client's error stream; nil inherits process stderr."},"source":{"file":"tmux/server_attach.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionOptions.Stderr","product":"core","slug":"tmux-attachsessionoptions-stderr"},{"id":"tmux.AttachSessionRequest","name":"AttachSessionRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"AttachSessionRequest selects a session name or tmux target pattern and configures a blocking terminal attachment. An empty Target lets tmux choose."},"source":{"file":"tmux/server_attach.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionRequest","product":"core","slug":"tmux-attachsessionrequest"},{"id":"tmux.AttachSessionRequest.Target","name":"Target","kind":"attribute","modifiers":[],"parent":"tmux.AttachSessionRequest","signatures":[],"type":"string","doc":{"summary":"Target is a session name or tmux target pattern; empty leaves selection to tmux."},"source":{"file":"tmux/server_attach.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.AttachSessionRequest.Target","product":"core","slug":"tmux-attachsessionrequest-target"},{"id":"tmux.Server.Start","name":"Start","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Start(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"Start starts the configured tmux server. It is idempotent when that server is already running. Completed stderr is an error; cancellation does not prove that a daemon was not started.","body":"With tmux's exit-empty default, a server holding no sessions may exit before\nthe next command even though Start succeeded. Create a session or disable\nexit-empty in [ServerOptions.ConfigFile] before startup. Use [Server.IsAlive]\nor [Server.CheckAlive] to check it."},"source":{"file":"tmux/server_attach.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Start","product":"core","slug":"tmux-server-start"},{"id":"tmux.Server.AttachSession","name":"AttachSession","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) AttachSession(ctx context.Context, request AttachSessionRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"AttachSessionRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"AttachSession attaches the caller's terminal to a matching session and blocks until detach or context cancellation. Nil standard streams inherit the process streams; each stream must be a concrete terminal descriptor. The call retains caller-supplied files while attached and never owns or closes them. A completed nonzero exit returns [CommandError]; cancellation can end waiting but does not prove that attachment or detachment did not occur. On Unix, cancellation requests a tmux disconnect before bounded forced cleanup. If the daemon cannot respond, callers may need to restore their terminal state after the call returns.","body":"Alone among this package's operations, it leaves tmux's own locale detection\nalone, because what tmux writes here reaches the caller's terminal rather\nthan this package. See [Session.Attach] for the session-scoped form."},"source":{"file":"tmux/server_attach.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.AttachSession","product":"core","slug":"tmux-server-attachsession"},{"id":"tmux.Session.Attach","name":"Attach","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Attach(ctx context.Context, options AttachSessionOptions) error","params":[{"name":"ctx","type":"context.Context"},{"name":"options","type":"AttachSessionOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"Attach attaches the caller's terminal to this session's stable identifier and blocks until detach or context cancellation. It validates the receiver's stable SessionID, retains but never closes caller-supplied streams, and returns [CommandError] for a completed nonzero exit. Cancellation does not prove attachment or detachment did not occur. See [Server.AttachSession] for locale handling and terminal recovery after forced cancellation."},"source":{"file":"tmux/server_attach.go","line":102,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Attach","product":"core","slug":"tmux-session-attach"},{"id":"tmux.TmuxFilter","name":"TmuxFilter","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TmuxFilter is a raw tmux -f format expression. It is distinct from the generated local filter structs and is evaluated only by tmux. A nil filter omits -f; a nonnil empty filter sends an explicit empty expression.","body":"The expression is tmux's own, so it is written the way tmux's FORMATS\nsection describes rather than built from Go values:\n\n```go\nactive := tmux.TmuxFilter(\"#{==:#{window_active},1}\")\nwindows, err := session.SearchWindows(ctx, &active)\n```\n\ntmux evaluates this while listing. Generated model filters run in Go after\nmaterialization.\n\nrevive:disable-next-line:exported TmuxFilter preserves tmux vocabulary beside local model filters."},"source":{"file":"tmux/server_buffers.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TmuxFilter","product":"core","slug":"tmux-tmuxfilter"},{"id":"tmux.SetBufferRequest","name":"SetBufferRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SetBufferRequest configures storing data in a tmux paste buffer. Its zero value writes an empty most-recent buffer; nil Name selects that buffer while a pointer to an empty name is explicit."},"source":{"file":"tmux/server_buffers.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetBufferRequest","product":"core","slug":"tmux-setbufferrequest"},{"id":"tmux.SetBufferRequest.Data","name":"Data","kind":"attribute","modifiers":[],"parent":"tmux.SetBufferRequest","signatures":[],"type":"string","doc":{"summary":"Data is the exact buffer data to store or append."},"source":{"file":"tmux/server_buffers.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetBufferRequest.Data","product":"core","slug":"tmux-setbufferrequest-data"},{"id":"tmux.SetBufferRequest.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.SetBufferRequest","signatures":[],"type":"*string","doc":{"summary":"Name selects a named buffer, or nil for tmux's most-recent buffer."},"source":{"file":"tmux/server_buffers.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetBufferRequest.Name","product":"core","slug":"tmux-setbufferrequest-name"},{"id":"tmux.SetBufferRequest.Append","name":"Append","kind":"attribute","modifiers":[],"parent":"tmux.SetBufferRequest","signatures":[],"type":"bool","doc":{"summary":"Append appends Data instead of replacing the selected buffer."},"source":{"file":"tmux/server_buffers.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SetBufferRequest.Append","product":"core","slug":"tmux-setbufferrequest-append"},{"id":"tmux.SaveBufferRequest","name":"SaveBufferRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SaveBufferRequest configures writing a tmux paste buffer to a file. Its zero value is invalid because Path is required; nil Name selects the most-recent buffer and a pointer to an empty name is explicit."},"source":{"file":"tmux/server_buffers.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SaveBufferRequest","product":"core","slug":"tmux-savebufferrequest"},{"id":"tmux.SaveBufferRequest.Path","name":"Path","kind":"attribute","modifiers":[],"parent":"tmux.SaveBufferRequest","signatures":[],"type":"string","doc":{"summary":"Path is the required output file path."},"source":{"file":"tmux/server_buffers.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SaveBufferRequest.Path","product":"core","slug":"tmux-savebufferrequest-path"},{"id":"tmux.SaveBufferRequest.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.SaveBufferRequest","signatures":[],"type":"*string","doc":{"summary":"Name selects a named buffer, or nil for tmux's most-recent buffer."},"source":{"file":"tmux/server_buffers.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SaveBufferRequest.Name","product":"core","slug":"tmux-savebufferrequest-name"},{"id":"tmux.SaveBufferRequest.Append","name":"Append","kind":"attribute","modifiers":[],"parent":"tmux.SaveBufferRequest","signatures":[],"type":"bool","doc":{"summary":"Append appends buffer data to Path instead of replacing its contents."},"source":{"file":"tmux/server_buffers.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SaveBufferRequest.Append","product":"core","slug":"tmux-savebufferrequest-append"},{"id":"tmux.LoadBufferRequest","name":"LoadBufferRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"LoadBufferRequest configures loading a file into a tmux paste buffer. Its zero value is invalid because Path is required; nil Name lets tmux allocate a buffer and a pointer to an empty name is explicit."},"source":{"file":"tmux/server_buffers.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LoadBufferRequest","product":"core","slug":"tmux-loadbufferrequest"},{"id":"tmux.LoadBufferRequest.Path","name":"Path","kind":"attribute","modifiers":[],"parent":"tmux.LoadBufferRequest","signatures":[],"type":"string","doc":{"summary":"Path is the required input file path."},"source":{"file":"tmux/server_buffers.go","line":55,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LoadBufferRequest.Path","product":"core","slug":"tmux-loadbufferrequest-path"},{"id":"tmux.LoadBufferRequest.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.LoadBufferRequest","signatures":[],"type":"*string","doc":{"summary":"Name selects the destination buffer, or nil for tmux's allocation behavior."},"source":{"file":"tmux/server_buffers.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LoadBufferRequest.Name","product":"core","slug":"tmux-loadbufferrequest-name"},{"id":"tmux.LoadBufferFromOptions","name":"LoadBufferFromOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"LoadBufferFromOptions configures streaming data into a tmux paste buffer. Its zero value lets tmux allocate a buffer; nil Name selects that allocation and a pointer to an empty name is explicit."},"source":{"file":"tmux/server_buffers.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LoadBufferFromOptions","product":"core","slug":"tmux-loadbufferfromoptions"},{"id":"tmux.LoadBufferFromOptions.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.LoadBufferFromOptions","signatures":[],"type":"*string","doc":{"summary":"Name selects the destination buffer, or nil for tmux's allocation behavior."},"source":{"file":"tmux/server_buffers.go","line":65,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LoadBufferFromOptions.Name","product":"core","slug":"tmux-loadbufferfromoptions-name"},{"id":"tmux.SaveBufferToOptions","name":"SaveBufferToOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SaveBufferToOptions configures streaming a tmux paste buffer's contents out. Its zero value selects tmux's most-recent buffer; a pointer to an empty name is explicit."},"source":{"file":"tmux/server_buffers.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SaveBufferToOptions","product":"core","slug":"tmux-savebuffertooptions"},{"id":"tmux.SaveBufferToOptions.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.SaveBufferToOptions","signatures":[],"type":"*string","doc":{"summary":"Name selects a named buffer, or nil for tmux's most-recent buffer."},"source":{"file":"tmux/server_buffers.go","line":73,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SaveBufferToOptions.Name","product":"core","slug":"tmux-savebuffertooptions-name"},{"id":"tmux.ListBuffersRequest","name":"ListBuffersRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ListBuffersRequest configures tmux's live paste-buffer listing. Its zero value requests tmux's default output; nil Format and Filter omit their flags, whereas pointers to empty strings are explicit expressions."},"source":{"file":"tmux/server_buffers.go","line":79,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ListBuffersRequest","product":"core","slug":"tmux-listbuffersrequest"},{"id":"tmux.ListBuffersRequest.Format","name":"Format","kind":"attribute","modifiers":[],"parent":"tmux.ListBuffersRequest","signatures":[],"type":"*string","doc":{"summary":"Format selects tmux's output format."},"source":{"file":"tmux/server_buffers.go","line":81,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ListBuffersRequest.Format","product":"core","slug":"tmux-listbuffersrequest-format"},{"id":"tmux.ListBuffersRequest.Filter","name":"Filter","kind":"attribute","modifiers":[],"parent":"tmux.ListBuffersRequest","signatures":[],"type":"*TmuxFilter","doc":{"summary":"Filter is a raw tmux filter expression evaluated by tmux."},"source":{"file":"tmux/server_buffers.go","line":83,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ListBuffersRequest.Filter","product":"core","slug":"tmux-listbuffersrequest-filter"},{"id":"tmux.Server.SetBuffer","name":"SetBuffer","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SetBuffer(ctx context.Context, request SetBufferRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SetBufferRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SetBuffer stores or appends exact string data without refreshing models. It mutates the selected paste buffer; completed stderr is reported as a redacted command error because Data may be secret. Cancellation does not prove that tmux did not store data."},"source":{"file":"tmux/server_buffers.go","line":90,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SetBuffer","product":"core","slug":"tmux-server-setbuffer"},{"id":"tmux.Server.ShowBuffer","name":"ShowBuffer","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ShowBuffer(ctx context.Context, name *string) (string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"*string"}],"receiver":{"name":"s","type":"Server"},"returns":"(string, error)"}],"doc":{"summary":"ShowBuffer returns one buffer using Python-compatible line reconstruction. The returned string is owned by the caller; nil Name selects tmux's most recent buffer. Completed stderr is an error."},"source":{"file":"tmux/server_buffers.go","line":118,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ShowBuffer","product":"core","slug":"tmux-server-showbuffer"},{"id":"tmux.Server.ShowBufferBytes","name":"ShowBufferBytes","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ShowBufferBytes(ctx context.Context, name *string) ([]byte, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"*string"}],"receiver":{"name":"s","type":"Server"},"returns":"([]byte, error)"}],"doc":{"summary":"ShowBufferBytes returns one buffer as exact caller-owned tmux stdout bytes. Unlike [Server.ShowBuffer], it preserves invalid UTF-8, delimiters, and trailing newlines. Nil Name selects tmux's most recent buffer. Completed stderr returns a redacted command error and a nil byte slice."},"source":{"file":"tmux/server_buffers.go","line":130,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ShowBufferBytes","product":"core","slug":"tmux-server-showbufferbytes"},{"id":"tmux.Server.DeleteBuffer","name":"DeleteBuffer","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) DeleteBuffer(ctx context.Context, name *string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"*string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"DeleteBuffer deletes a named buffer, or the most recent buffer when name is nil. Cancellation does not prove that tmux did not delete the buffer."},"source":{"file":"tmux/server_buffers.go","line":157,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.DeleteBuffer","product":"core","slug":"tmux-server-deletebuffer"},{"id":"tmux.Server.SaveBuffer","name":"SaveBuffer","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SaveBuffer(ctx context.Context, request SaveBufferRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SaveBufferRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SaveBuffer writes a named or most-recent buffer to a file. Path follows [Server.SourceFile]'s current-user expansion and lexical normalization. It changes that file. Exact \"-\" is rejected because it names tmux's stdout rather than a path; [Server.SaveBufferTo] streams to an [io.Writer], and this method is the one that runs over a [Connection]."},"source":{"file":"tmux/server_buffers.go","line":174,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SaveBuffer","product":"core","slug":"tmux-server-savebuffer"},{"id":"tmux.Server.LoadBuffer","name":"LoadBuffer","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) LoadBuffer(ctx context.Context, request LoadBufferRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"LoadBufferRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"LoadBuffer reads a file into a named or newly allocated buffer. Path follows [Server.SourceFile]'s current-user expansion and lexical normalization. It mutates tmux's destination buffer. Exact \"-\" is rejected because it names tmux's stdin rather than a path; [Server.LoadBufferFrom] streams from an [io.Reader], and this method is the one that runs over a [Connection]."},"source":{"file":"tmux/server_buffers.go","line":199,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.LoadBuffer","product":"core","slug":"tmux-server-loadbuffer"},{"id":"tmux.Server.LoadBufferFrom","name":"LoadBufferFrom","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) LoadBufferFrom(\n\tctx context.Context,\n\tsource io.Reader,\n\toptions LoadBufferFromOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"source","type":"io.Reader"},{"name":"options","type":"LoadBufferFromOptions"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"LoadBufferFrom streams source into a named or newly allocated tmux paste buffer, reading it to completion without holding its contents in memory. It carries any bytes, including NUL, and is bounded by neither argv nor tmux's command-message limit, which is what [Server.SetBuffer] is bounded by.","body":"A copy failure after tmux exits zero means the buffer holds only the prefix\nthat reached tmux, and cancellation does not prove tmux stored nothing. A\nsource that blocks regardless of cancellation does not hold the call, and is\nstill being read when it returns. A [Connection]-bound Server returns\n[ErrConnectionRequiresProcess]: tmux offers no stdin to a control client, so\nuse [Server.LoadBuffer] and a path over a connection."},"source":{"file":"tmux/server_buffers.go","line":227,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.LoadBufferFrom","product":"core","slug":"tmux-server-loadbufferfrom"},{"id":"tmux.Server.SaveBufferTo","name":"SaveBufferTo","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SaveBufferTo(\n\tctx context.Context,\n\tdestination io.Writer,\n\toptions SaveBufferToOptions,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"destination","type":"io.Writer"},{"name":"options","type":"SaveBufferToOptions"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SaveBufferTo streams a named or most-recent tmux paste buffer into destination without holding its contents in memory. It writes any bytes, including NUL, and preserves them exactly where [Server.ShowBuffer] reconstructs lines.","body":"Cancellation does not prove destination received a complete buffer, and a\ncopy failure takes precedence over a completed command's exit status because\nit means destination never saw everything tmux sent. A destination that\nblocks regardless of cancellation does not hold the call. A\n[Connection]-bound Server returns [ErrConnectionRequiresProcess]: tmux\noffers no stdout to a control client, so use [Server.SaveBuffer] and a path\nover a connection."},"source":{"file":"tmux/server_buffers.go","line":259,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SaveBufferTo","product":"core","slug":"tmux-server-savebufferto"},{"id":"tmux.Server.ListBuffers","name":"ListBuffers","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ListBuffers(\n\tctx context.Context,\n\trequest ListBuffersRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ListBuffersRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"([]string, error)"}],"doc":{"summary":"ListBuffers returns an owned snapshot of live tmux buffer rows. A command or transport failure is returned rather than answered with no rows; context cancellation still returns its context error. The result is not a live collection."},"source":{"file":"tmux/server_buffers.go","line":283,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ListBuffers","product":"core","slug":"tmux-server-listbuffers"},{"id":"tmux.ServerAccessRequest","name":"ServerAccessRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ServerAccessRequest configures tmux server access control. Its zero value is invalid: List or exactly one nonempty Allow or Deny is required. Allow and Deny, and ReadOnly and Write, are mutually exclusive; nil pointers omit their selectors while explicit empty users are rejected. List selects the returned-list path, but compatible selector and mode flags are still sent to tmux rather than ignored."},"source":{"file":"tmux/server_clients.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerAccessRequest","product":"core","slug":"tmux-serveraccessrequest"},{"id":"tmux.ServerAccessRequest.Allow","name":"Allow","kind":"attribute","modifiers":[],"parent":"tmux.ServerAccessRequest","signatures":[],"type":"*string","doc":{"summary":"Allow grants the named user access."},"source":{"file":"tmux/server_clients.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerAccessRequest.Allow","product":"core","slug":"tmux-serveraccessrequest-allow"},{"id":"tmux.ServerAccessRequest.Deny","name":"Deny","kind":"attribute","modifiers":[],"parent":"tmux.ServerAccessRequest","signatures":[],"type":"*string","doc":{"summary":"Deny revokes the named user's access."},"source":{"file":"tmux/server_clients.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerAccessRequest.Deny","product":"core","slug":"tmux-serveraccessrequest-deny"},{"id":"tmux.ServerAccessRequest.List","name":"List","kind":"attribute","modifiers":[],"parent":"tmux.ServerAccessRequest","signatures":[],"type":"bool","doc":{"summary":"List returns the configured access entries instead of mutating them."},"source":{"file":"tmux/server_clients.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerAccessRequest.List","product":"core","slug":"tmux-serveraccessrequest-list"},{"id":"tmux.ServerAccessRequest.ReadOnly","name":"ReadOnly","kind":"attribute","modifiers":[],"parent":"tmux.ServerAccessRequest","signatures":[],"type":"bool","doc":{"summary":"ReadOnly grants read-only access to the selected user."},"source":{"file":"tmux/server_clients.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerAccessRequest.ReadOnly","product":"core","slug":"tmux-serveraccessrequest-readonly"},{"id":"tmux.ServerAccessRequest.Write","name":"Write","kind":"attribute","modifiers":[],"parent":"tmux.ServerAccessRequest","signatures":[],"type":"bool","doc":{"summary":"Write grants write access to the selected user."},"source":{"file":"tmux/server_clients.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerAccessRequest.Write","product":"core","slug":"tmux-serveraccessrequest-write"},{"id":"tmux.RefreshClientRequest","name":"RefreshClientRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"RefreshClientRequest configures refreshing one tmux client. Its zero value refreshes tmux's current client; a zero TargetClient omits -t."},"source":{"file":"tmux/server_clients.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RefreshClientRequest","product":"core","slug":"tmux-refreshclientrequest"},{"id":"tmux.RefreshClientRequest.TargetClient","name":"TargetClient","kind":"attribute","modifiers":[],"parent":"tmux.RefreshClientRequest","signatures":[],"type":"ClientName","doc":{"summary":"TargetClient selects a stable client; zero selects tmux's current client."},"source":{"file":"tmux/server_clients.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RefreshClientRequest.TargetClient","product":"core","slug":"tmux-refreshclientrequest-targetclient"},{"id":"tmux.RefreshClientRequest.RequestClipboard","name":"RequestClipboard","kind":"attribute","modifiers":[],"parent":"tmux.RefreshClientRequest","signatures":[],"type":"bool","doc":{"summary":"RequestClipboard requests clipboard data and requires tmux 3.4; older tmux versions may exit when given the flag, so it follows UnsupportedPolicy."},"source":{"file":"tmux/server_clients.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RefreshClientRequest.RequestClipboard","product":"core","slug":"tmux-refreshclientrequest-requestclipboard"},{"id":"tmux.DetachClientRequest","name":"DetachClientRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"DetachClientRequest configures detaching one tmux client. Its zero value detaches tmux's current client; nil fields omit their flags while an empty ShellCommand pointer is explicit."},"source":{"file":"tmux/server_clients.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachClientRequest","product":"core","slug":"tmux-detachclientrequest"},{"id":"tmux.DetachClientRequest.TargetClient","name":"TargetClient","kind":"attribute","modifiers":[],"parent":"tmux.DetachClientRequest","signatures":[],"type":"ClientName","doc":{"summary":"TargetClient selects a stable client; zero selects tmux's current client."},"source":{"file":"tmux/server_clients.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachClientRequest.TargetClient","product":"core","slug":"tmux-detachclientrequest-targetclient"},{"id":"tmux.DetachClientRequest.ShellCommand","name":"ShellCommand","kind":"attribute","modifiers":[],"parent":"tmux.DetachClientRequest","signatures":[],"type":"*string","doc":{"summary":"ShellCommand is run after detaching when nonnil."},"source":{"file":"tmux/server_clients.go","line":51,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachClientRequest.ShellCommand","product":"core","slug":"tmux-detachclientrequest-shellcommand"},{"id":"tmux.DetachAllClientsRequest","name":"DetachAllClientsRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"DetachAllClientsRequest configures detaching every client except one. Its zero value keeps tmux's current client; nil fields omit their flags."},"source":{"file":"tmux/server_clients.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachAllClientsRequest","product":"core","slug":"tmux-detachallclientsrequest"},{"id":"tmux.DetachAllClientsRequest.KeepClient","name":"KeepClient","kind":"attribute","modifiers":[],"parent":"tmux.DetachAllClientsRequest","signatures":[],"type":"ClientName","doc":{"summary":"KeepClient selects the stable client to retain; zero keeps tmux's current client."},"source":{"file":"tmux/server_clients.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachAllClientsRequest.KeepClient","product":"core","slug":"tmux-detachallclientsrequest-keepclient"},{"id":"tmux.DetachAllClientsRequest.ShellCommand","name":"ShellCommand","kind":"attribute","modifiers":[],"parent":"tmux.DetachAllClientsRequest","signatures":[],"type":"*string","doc":{"summary":"ShellCommand is run after detaching when nonnil."},"source":{"file":"tmux/server_clients.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DetachAllClientsRequest.ShellCommand","product":"core","slug":"tmux-detachallclientsrequest-shellcommand"},{"id":"tmux.Server.ServerAccess","name":"ServerAccess","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ServerAccess(\n\tctx context.Context,\n\trequest ServerAccessRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ServerAccessRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"([]string, error)"}],"doc":{"summary":"ServerAccess changes or lists the server access-control entries. It requires tmux 3.3 and returns [VersionTooLowError] below that floor. List returns an owned snapshot, and reports a completed or transport failure rather than answering with no entries; mutation completed stderr is an error."},"source":{"file":"tmux/server_clients.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ServerAccess","product":"core","slug":"tmux-server-serveraccess"},{"id":"tmux.Server.LockServer","name":"LockServer","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) LockServer(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"LockServer locks every attached client on the tmux server. Cancellation does not prove the server did not lock a client."},"source":{"file":"tmux/server_clients.go","line":151,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.LockServer","product":"core","slug":"tmux-server-lockserver"},{"id":"tmux.Server.RefreshClient","name":"RefreshClient","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) RefreshClient(ctx context.Context, request RefreshClientRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"RefreshClientRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"RefreshClient redraws a client, or tmux's current client when no target is set. RequestClipboard requires tmux 3.4 and follows [UnsupportedPolicy]."},"source":{"file":"tmux/server_clients.go","line":157,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.RefreshClient","product":"core","slug":"tmux-server-refreshclient"},{"id":"tmux.Server.LockClient","name":"LockClient","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) LockClient(ctx context.Context, targetClient *ClientName) error","params":[{"name":"ctx","type":"context.Context"},{"name":"targetClient","type":"*ClientName"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"LockClient locks a client, or tmux's current client when targetClient is nil. Cancellation does not prove the target client was not locked."},"source":{"file":"tmux/server_clients.go","line":191,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.LockClient","product":"core","slug":"tmux-server-lockclient"},{"id":"tmux.Server.SuspendClient","name":"SuspendClient","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SuspendClient(ctx context.Context, targetClient *ClientName) error","params":[{"name":"ctx","type":"context.Context"},{"name":"targetClient","type":"*ClientName"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SuspendClient suspends a client, or tmux's current client when targetClient is nil. Cancellation does not prove suspension did not occur."},"source":{"file":"tmux/server_clients.go","line":205,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SuspendClient","product":"core","slug":"tmux-server-suspendclient"},{"id":"tmux.Server.DetachClient","name":"DetachClient","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) DetachClient(ctx context.Context, request DetachClientRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"DetachClientRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"DetachClient detaches one client, or tmux's current client when no target is set. A completed stderr result is an error; cancellation does not prove delivery or detachment did not occur."},"source":{"file":"tmux/server_clients.go","line":220,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.DetachClient","product":"core","slug":"tmux-server-detachclient"},{"id":"tmux.Server.DetachAllClients","name":"DetachAllClients","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) DetachAllClients(\n\tctx context.Context,\n\trequest DetachAllClientsRequest,\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"DetachAllClientsRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"DetachAllClients detaches every client except KeepClient or tmux's current client. Cancellation does not prove every client was detached."},"source":{"file":"tmux/server_clients.go","line":245,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.DetachAllClients","product":"core","slug":"tmux-server-detachallclients"},{"id":"tmux.Server.SwitchClient","name":"SwitchClient","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SwitchClient(ctx context.Context, targetSession string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"targetSession","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SwitchClient switches tmux's current client to targetSession. TargetSession is a validated session name rather than a stable identity; cancellation does not prove the switch did not occur.","body":"The target is sent anchored with tmux's \"=\" exact-match prefix: an\nunanchored \"-t name\" resolves by prefix, so a name that matches no session\nexactly but starts a different one's name would otherwise switch there\nsilently instead of failing. The anchor is safe here because\nvalidateLifecycleSessionName has already refused the period or colon that\nwould make \"=name\" misread the target itself."},"source":{"file":"tmux/server_clients.go","line":281,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SwitchClient","product":"core","slug":"tmux-server-switchclient"},{"id":"tmux.Session.Lock","name":"Lock","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Lock(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"Lock locks every client attached to the session identified by this handle's stable ID. Cancellation does not prove that tmux did not lock a client."},"source":{"file":"tmux/server_clients.go","line":295,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Lock","product":"core","slug":"tmux-session-lock"},{"id":"tmux.Session.DetachClients","name":"DetachClients","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) DetachClients(ctx context.Context, shellCommand *string) error","params":[{"name":"ctx","type":"context.Context"},{"name":"shellCommand","type":"*string"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"DetachClients detaches every client attached to the session identified by this handle's stable ID. A nonnil ShellCommand is run after detaching."},"source":{"file":"tmux/server_clients.go","line":316,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.DetachClients","product":"core","slug":"tmux-session-detachclients"},{"id":"tmux.Session.SwitchClient","name":"SwitchClient","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SwitchClient(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"error"}],"doc":{"summary":"SwitchClient switches tmux's current client to the session identified by this handle's stable ID."},"source":{"file":"tmux/server_clients.go","line":345,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SwitchClient","product":"core","slug":"tmux-session-switchclient"},{"id":"tmux.ErrInvalidServerCommandRequest","name":"ErrInvalidServerCommandRequest","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidServerCommandRequest identifies a server command request that cannot be represented safely as tmux arguments."},"source":{"file":"tmux/server_exec.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidServerCommandRequest","product":"core","slug":"tmux-errinvalidservercommandrequest"},{"id":"tmux.ServerCommandRequestError","name":"ServerCommandRequestError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ServerCommandRequestError reports a locally rejected server command request field. Callers can use [errors.Is] with [ErrInvalidServerCommandRequest] or [errors.As] to inspect it. Value is redacted only when that field's validator requests redaction."},"source":{"file":"tmux/server_exec.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerCommandRequestError","product":"core","slug":"tmux-servercommandrequesterror"},{"id":"tmux.ServerCommandRequestError.Subcommand","name":"Subcommand","kind":"attribute","modifiers":[],"parent":"tmux.ServerCommandRequestError","signatures":[],"type":"string","doc":{"summary":"Subcommand is the tmux command whose request was rejected."},"source":{"file":"tmux/server_exec.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerCommandRequestError.Subcommand","product":"core","slug":"tmux-servercommandrequesterror-subcommand"},{"id":"tmux.ServerCommandRequestError.Field","name":"Field","kind":"attribute","modifiers":[],"parent":"tmux.ServerCommandRequestError","signatures":[],"type":"string","doc":{"summary":"Field is the request field that was rejected."},"source":{"file":"tmux/server_exec.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerCommandRequestError.Field","product":"core","slug":"tmux-servercommandrequesterror-field"},{"id":"tmux.ServerCommandRequestError.Value","name":"Value","kind":"attribute","modifiers":[],"parent":"tmux.ServerCommandRequestError","signatures":[],"type":"string","doc":{"summary":"Value is the rejected value, or \"[redacted]\" for a secret-sensitive field."},"source":{"file":"tmux/server_exec.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerCommandRequestError.Value","product":"core","slug":"tmux-servercommandrequesterror-value"},{"id":"tmux.ServerCommandRequestError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.ServerCommandRequestError","signatures":[],"type":"string","doc":{"summary":"Reason describes the validation failure without changing the sentinel error."},"source":{"file":"tmux/server_exec.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerCommandRequestError.Reason","product":"core","slug":"tmux-servercommandrequesterror-reason"},{"id":"tmux.ServerCommandRequestError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.ServerCommandRequestError","signatures":[{"raw":"func (e *ServerCommandRequestError) Error() string","params":[],"receiver":{"name":"e","type":"*ServerCommandRequestError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/server_exec.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerCommandRequestError.Error","product":"core","slug":"tmux-servercommandrequesterror-error"},{"id":"tmux.ServerCommandRequestError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.ServerCommandRequestError","signatures":[{"raw":"func (e *ServerCommandRequestError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*ServerCommandRequestError"},"returns":"error"}],"doc":{"summary":"Unwrap makes ServerCommandRequestError compatible with ErrInvalidServerCommandRequest."},"source":{"file":"tmux/server_exec.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerCommandRequestError.Unwrap","product":"core","slug":"tmux-servercommandrequesterror-unwrap"},{"id":"tmux.RunShellRequest","name":"RunShellRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"RunShellRequest configures a command executed by tmux's run-shell command. Its zero value is invalid because Command is required. Pointer fields distinguish omitted flags from explicit empty arguments; RunShell copies Delay, StartDirectory, and Args before invoking tmux."},"source":{"file":"tmux/server_exec.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunShellRequest","product":"core","slug":"tmux-runshellrequest"},{"id":"tmux.RunShellRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.RunShellRequest","signatures":[],"type":"string","doc":{"summary":"Command is the required shell or tmux command to run."},"source":{"file":"tmux/server_exec.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunShellRequest.Command","product":"core","slug":"tmux-runshellrequest-command"},{"id":"tmux.RunShellRequest.Background","name":"Background","kind":"attribute","modifiers":[],"parent":"tmux.RunShellRequest","signatures":[],"type":"bool","doc":{"summary":"Background returns after tmux accepts the job instead of waiting for stdout."},"source":{"file":"tmux/server_exec.go","line":65,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunShellRequest.Background","product":"core","slug":"tmux-runshellrequest-background"},{"id":"tmux.RunShellRequest.Delay","name":"Delay","kind":"attribute","modifiers":[],"parent":"tmux.RunShellRequest","signatures":[],"type":"*string","doc":{"summary":"Delay supplies run-shell's optional delay; nil omits it and an empty value is explicit."},"source":{"file":"tmux/server_exec.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunShellRequest.Delay","product":"core","slug":"tmux-runshellrequest-delay"},{"id":"tmux.RunShellRequest.AsTmuxCommand","name":"AsTmuxCommand","kind":"attribute","modifiers":[],"parent":"tmux.RunShellRequest","signatures":[],"type":"bool","doc":{"summary":"AsTmuxCommand asks tmux to interpret Command as tmux command syntax."},"source":{"file":"tmux/server_exec.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunShellRequest.AsTmuxCommand","product":"core","slug":"tmux-runshellrequest-astmuxcommand"},{"id":"tmux.RunShellRequest.TargetPane","name":"TargetPane","kind":"attribute","modifiers":[],"parent":"tmux.RunShellRequest","signatures":[],"type":"PaneID","doc":{"summary":"TargetPane selects a stable pane target; its zero value leaves target selection to tmux."},"source":{"file":"tmux/server_exec.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunShellRequest.TargetPane","product":"core","slug":"tmux-runshellrequest-targetpane"},{"id":"tmux.RunShellRequest.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"tmux.RunShellRequest","signatures":[],"type":"*string","doc":{"summary":"StartDirectory selects the job directory; nil omits it. It requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/server_exec.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunShellRequest.StartDirectory","product":"core","slug":"tmux-runshellrequest-startdirectory"},{"id":"tmux.RunShellRequest.ShowStderr","name":"ShowStderr","kind":"attribute","modifiers":[],"parent":"tmux.RunShellRequest","signatures":[],"type":"bool","doc":{"summary":"ShowStderr requests job stderr and requires tmux 3.6; see UnsupportedPolicy."},"source":{"file":"tmux/server_exec.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunShellRequest.ShowStderr","product":"core","slug":"tmux-runshellrequest-showstderr"},{"id":"tmux.RunShellRequest.Args","name":"Args","kind":"attribute","modifiers":[],"parent":"tmux.RunShellRequest","signatures":[],"type":"[]string","doc":{"summary":"Args are extra job arguments copied before tmux runs. They require tmux 3.7; see UnsupportedPolicy."},"source":{"file":"tmux/server_exec.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunShellRequest.Args","product":"core","slug":"tmux-runshellrequest-args"},{"id":"tmux.WaitForMode","name":"WaitForMode","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WaitForMode selects one wait-for operation. The zero value waits until the channel is signaled."},"source":{"file":"tmux/server_exec.go","line":85,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WaitForMode","product":"core","slug":"tmux-waitformode"},{"id":"tmux.WaitForModeWait","name":"WaitForModeWait","kind":"constant","modifiers":[],"signatures":[],"type":"WaitForMode","doc":{"summary":"WaitForModeWait waits until another client signals Channel."},"source":{"file":"tmux/server_exec.go","line":90,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WaitForModeWait","product":"core","slug":"tmux-waitformodewait"},{"id":"tmux.WaitForModeSignal","name":"WaitForModeSignal","kind":"constant","modifiers":[],"signatures":[],"type":"WaitForMode","doc":{"summary":"WaitForModeSignal signals Channel and wakes waiters."},"source":{"file":"tmux/server_exec.go","line":92,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WaitForModeSignal","product":"core","slug":"tmux-waitformodesignal"},{"id":"tmux.WaitForModeLock","name":"WaitForModeLock","kind":"constant","modifiers":[],"signatures":[],"type":"WaitForMode","doc":{"summary":"WaitForModeLock acquires Channel's tmux mutex, queuing behind another locker if it is already held.","body":"Before tmux 3.8, a cancelled or timed-out ctx while queued costs Channel\none unlock: tmux hands the mutex to the next queued client whether or\nnot it is still there, and the one that has gone cannot pass it on\n(cmd-wait-for.c cmd_wait_for_unlock). Unlocking again hands it to the\nnext real locker, so a channel is not lost, but a program that abandons\nlock waits and counts its unlocks will deadlock on its own arithmetic.\ntmux 3.8 drops the wait of a client that has gone (tmux issue 5614), so\nthere an abandoned wait costs nothing and an extra unlock fails."},"source":{"file":"tmux/server_exec.go","line":104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WaitForModeLock","product":"core","slug":"tmux-waitformodelock"},{"id":"tmux.WaitForModeUnlock","name":"WaitForModeUnlock","kind":"constant","modifiers":[],"signatures":[],"type":"WaitForMode","doc":{"summary":"WaitForModeUnlock releases Channel's tmux mutex."},"source":{"file":"tmux/server_exec.go","line":106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WaitForModeUnlock","product":"core","slug":"tmux-waitformodeunlock"},{"id":"tmux.WaitForRequest","name":"WaitForRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WaitForRequest configures a wait, signal, lock, or unlock operation. Its zero value waits on the required nonempty Channel."},"source":{"file":"tmux/server_exec.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WaitForRequest","product":"core","slug":"tmux-waitforrequest"},{"id":"tmux.WaitForRequest.Channel","name":"Channel","kind":"attribute","modifiers":[],"parent":"tmux.WaitForRequest","signatures":[],"type":"string","doc":{"summary":"Channel names the tmux wait-for channel or mutex."},"source":{"file":"tmux/server_exec.go","line":113,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WaitForRequest.Channel","product":"core","slug":"tmux-waitforrequest-channel"},{"id":"tmux.WaitForRequest.Mode","name":"Mode","kind":"attribute","modifiers":[],"parent":"tmux.WaitForRequest","signatures":[],"type":"WaitForMode","doc":{"summary":"Mode selects the channel action; zero waits."},"source":{"file":"tmux/server_exec.go","line":115,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WaitForRequest.Mode","product":"core","slug":"tmux-waitforrequest-mode"},{"id":"tmux.IfShellRequest","name":"IfShellRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"IfShellRequest configures conditional execution of a tmux command. Its zero value is invalid because ShellCommand and ThenCommand are required; nil ElseCommand omits the failure branch while a pointer to an empty string is explicit."},"source":{"file":"tmux/server_exec.go","line":122,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.IfShellRequest","product":"core","slug":"tmux-ifshellrequest"},{"id":"tmux.IfShellRequest.ShellCommand","name":"ShellCommand","kind":"attribute","modifiers":[],"parent":"tmux.IfShellRequest","signatures":[],"type":"string","doc":{"summary":"ShellCommand is the required shell condition executed by tmux."},"source":{"file":"tmux/server_exec.go","line":124,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.IfShellRequest.ShellCommand","product":"core","slug":"tmux-ifshellrequest-shellcommand"},{"id":"tmux.IfShellRequest.ThenCommand","name":"ThenCommand","kind":"attribute","modifiers":[],"parent":"tmux.IfShellRequest","signatures":[],"type":"string","doc":{"summary":"ThenCommand is the required tmux command executed when ShellCommand succeeds."},"source":{"file":"tmux/server_exec.go","line":126,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.IfShellRequest.ThenCommand","product":"core","slug":"tmux-ifshellrequest-thencommand"},{"id":"tmux.IfShellRequest.ElseCommand","name":"ElseCommand","kind":"attribute","modifiers":[],"parent":"tmux.IfShellRequest","signatures":[],"type":"*string","doc":{"summary":"ElseCommand is the optional tmux command executed when ShellCommand fails."},"source":{"file":"tmux/server_exec.go","line":128,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.IfShellRequest.ElseCommand","product":"core","slug":"tmux-ifshellrequest-elsecommand"},{"id":"tmux.IfShellRequest.Background","name":"Background","kind":"attribute","modifiers":[],"parent":"tmux.IfShellRequest","signatures":[],"type":"bool","doc":{"summary":"Background makes tmux schedule the conditional command without waiting."},"source":{"file":"tmux/server_exec.go","line":130,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.IfShellRequest.Background","product":"core","slug":"tmux-ifshellrequest-background"},{"id":"tmux.IfShellRequest.TargetPane","name":"TargetPane","kind":"attribute","modifiers":[],"parent":"tmux.IfShellRequest","signatures":[],"type":"PaneID","doc":{"summary":"TargetPane selects a stable pane target; its zero value omits -t."},"source":{"file":"tmux/server_exec.go","line":132,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.IfShellRequest.TargetPane","product":"core","slug":"tmux-ifshellrequest-targetpane"},{"id":"tmux.SourceFileRequest","name":"SourceFileRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SourceFileRequest configures loading or parsing a tmux configuration file. Its zero value is invalid because Path is required; SourceFile expands only the current user's ~ forms and copies no caller-owned mutable input."},"source":{"file":"tmux/server_exec.go","line":138,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SourceFileRequest","product":"core","slug":"tmux-sourcefilerequest"},{"id":"tmux.SourceFileRequest.Path","name":"Path","kind":"attribute","modifiers":[],"parent":"tmux.SourceFileRequest","signatures":[],"type":"string","doc":{"summary":"Path is the required configuration path; exact \"-\" is rejected because no stdin is provided."},"source":{"file":"tmux/server_exec.go","line":140,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SourceFileRequest.Path","product":"core","slug":"tmux-sourcefilerequest-path"},{"id":"tmux.SourceFileRequest.Quiet","name":"Quiet","kind":"attribute","modifiers":[],"parent":"tmux.SourceFileRequest","signatures":[],"type":"bool","doc":{"summary":"Quiet suppresses tmux diagnostics for missing source files."},"source":{"file":"tmux/server_exec.go","line":142,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SourceFileRequest.Quiet","product":"core","slug":"tmux-sourcefilerequest-quiet"},{"id":"tmux.SourceFileRequest.ParseOnly","name":"ParseOnly","kind":"attribute","modifiers":[],"parent":"tmux.SourceFileRequest","signatures":[],"type":"bool","doc":{"summary":"ParseOnly validates the file without applying its commands."},"source":{"file":"tmux/server_exec.go","line":144,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SourceFileRequest.ParseOnly","product":"core","slug":"tmux-sourcefilerequest-parseonly"},{"id":"tmux.SourceFileRequest.Verbose","name":"Verbose","kind":"attribute","modifiers":[],"parent":"tmux.SourceFileRequest","signatures":[],"type":"bool","doc":{"summary":"Verbose requests tmux parsing diagnostics."},"source":{"file":"tmux/server_exec.go","line":146,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SourceFileRequest.Verbose","product":"core","slug":"tmux-sourcefilerequest-verbose"},{"id":"tmux.Server.RunShell","name":"RunShell","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) RunShell(ctx context.Context, request RunShellRequest) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"RunShellRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"([]string, error)"}],"doc":{"summary":"RunShell executes a shell command through tmux and returns an owned stdout slice. A background request returns nil after tmux accepts the job. Unsupported optional flags follow [UnsupportedPolicy]. A completed stderr result is an error; context cancellation can be observed with [errors.Is] but does not establish that tmux did not start the job."},"source":{"file":"tmux/server_exec.go","line":154,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.RunShell","product":"core","slug":"tmux-server-runshell"},{"id":"tmux.Server.WaitFor","name":"WaitFor","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) WaitFor(ctx context.Context, request WaitForRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"WaitForRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"WaitFor waits for, signals, locks, or unlocks a named tmux channel. It changes only that server-side channel state; cancellation can interrupt the client wait but cannot prove a preceding signal or lock did not take effect. See [WaitForModeLock]: before tmux 3.8, abandoning a lock wait costs that channel one unlock."},"source":{"file":"tmux/server_exec.go","line":250,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.WaitFor","product":"core","slug":"tmux-server-waitfor"},{"id":"tmux.Server.IfShell","name":"IfShell","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) IfShell(ctx context.Context, request IfShellRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"IfShellRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"IfShell executes ThenCommand when ShellCommand succeeds and ElseCommand, if present, when it fails. A completed stderr result is an error; cancellation can interrupt delivery without proving that tmux did not execute a branch."},"source":{"file":"tmux/server_exec.go","line":284,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.IfShell","product":"core","slug":"tmux-server-ifshell"},{"id":"tmux.Server.SourceFile","name":"SourceFile","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SourceFile(ctx context.Context, request SourceFileRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SourceFileRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"SourceFile loads or parses one tmux configuration file. The path expands ~ and ~/... for the current user and normalizes redundant separators and dot components without collapsing parent components. Named-user forms are rejected. Exact \"-\" is rejected because it requires process stdin; a relative path naming a file called \"-\" remains file data. It can mutate tmux configuration; completed stderr is an error, and cancellation does not prove that parsing or sourcing did not occur."},"source":{"file":"tmux/server_exec.go","line":324,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SourceFile","product":"core","slug":"tmux-server-sourcefile"},{"id":"tmux.ConfirmBeforeRequest","name":"ConfirmBeforeRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ConfirmBeforeRequest configures a background tmux confirmation prompt. Its zero value is invalid because Command is required. Nil pointer fields omit their flags while explicit empty strings are passed to tmux; ConfirmKey must be one printable ASCII character."},"source":{"file":"tmux/server_interactive.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ConfirmBeforeRequest","product":"core","slug":"tmux-confirmbeforerequest"},{"id":"tmux.ConfirmBeforeRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.ConfirmBeforeRequest","signatures":[],"type":"string","doc":{"summary":"Command is the required tmux command shown for confirmation."},"source":{"file":"tmux/server_interactive.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ConfirmBeforeRequest.Command","product":"core","slug":"tmux-confirmbeforerequest-command"},{"id":"tmux.ConfirmBeforeRequest.Prompt","name":"Prompt","kind":"attribute","modifiers":[],"parent":"tmux.ConfirmBeforeRequest","signatures":[],"type":"*string","doc":{"summary":"Prompt replaces tmux's prompt when nonnil."},"source":{"file":"tmux/server_interactive.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ConfirmBeforeRequest.Prompt","product":"core","slug":"tmux-confirmbeforerequest-prompt"},{"id":"tmux.ConfirmBeforeRequest.ConfirmKey","name":"ConfirmKey","kind":"attribute","modifiers":[],"parent":"tmux.ConfirmBeforeRequest","signatures":[],"type":"*string","doc":{"summary":"ConfirmKey selects the affirmative key and requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ConfirmBeforeRequest.ConfirmKey","product":"core","slug":"tmux-confirmbeforerequest-confirmkey"},{"id":"tmux.ConfirmBeforeRequest.DefaultYes","name":"DefaultYes","kind":"attribute","modifiers":[],"parent":"tmux.ConfirmBeforeRequest","signatures":[],"type":"bool","doc":{"summary":"DefaultYes selects yes by default and requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ConfirmBeforeRequest.DefaultYes","product":"core","slug":"tmux-confirmbeforerequest-defaultyes"},{"id":"tmux.ConfirmBeforeRequest.TargetClient","name":"TargetClient","kind":"attribute","modifiers":[],"parent":"tmux.ConfirmBeforeRequest","signatures":[],"type":"ClientName","doc":{"summary":"TargetClient selects the stable client that displays the prompt."},"source":{"file":"tmux/server_interactive.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ConfirmBeforeRequest.TargetClient","product":"core","slug":"tmux-confirmbeforerequest-targetclient"},{"id":"tmux.CommandPromptRequest","name":"CommandPromptRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"CommandPromptRequest configures a background tmux command prompt. Its zero value is invalid because Template is required; nil pointer fields omit flags while explicit empty values are passed to tmux."},"source":{"file":"tmux/server_interactive.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest","product":"core","slug":"tmux-commandpromptrequest"},{"id":"tmux.CommandPromptRequest.Template","name":"Template","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"string","doc":{"summary":"Template is the required tmux command template submitted by the prompt."},"source":{"file":"tmux/server_interactive.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.Template","product":"core","slug":"tmux-commandpromptrequest-template"},{"id":"tmux.CommandPromptRequest.Prompt","name":"Prompt","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"*string","doc":{"summary":"Prompt replaces tmux's prompt text when nonnil."},"source":{"file":"tmux/server_interactive.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.Prompt","product":"core","slug":"tmux-commandpromptrequest-prompt"},{"id":"tmux.CommandPromptRequest.Inputs","name":"Inputs","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"*string","doc":{"summary":"Inputs supplies initial prompt inputs when nonnil."},"source":{"file":"tmux/server_interactive.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.Inputs","product":"core","slug":"tmux-commandpromptrequest-inputs"},{"id":"tmux.CommandPromptRequest.TargetClient","name":"TargetClient","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"ClientName","doc":{"summary":"TargetClient selects the stable client that displays the prompt."},"source":{"file":"tmux/server_interactive.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.TargetClient","product":"core","slug":"tmux-commandpromptrequest-targetclient"},{"id":"tmux.CommandPromptRequest.OneKey","name":"OneKey","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"OneKey accepts one key rather than a line."},"source":{"file":"tmux/server_interactive.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.OneKey","product":"core","slug":"tmux-commandpromptrequest-onekey"},{"id":"tmux.CommandPromptRequest.KeyOnly","name":"KeyOnly","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"KeyOnly limits accepted input to keys."},"source":{"file":"tmux/server_interactive.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.KeyOnly","product":"core","slug":"tmux-commandpromptrequest-keyonly"},{"id":"tmux.CommandPromptRequest.OnInputChange","name":"OnInputChange","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"OnInputChange runs Template after each input change."},"source":{"file":"tmux/server_interactive.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.OnInputChange","product":"core","slug":"tmux-commandpromptrequest-oninputchange"},{"id":"tmux.CommandPromptRequest.Numeric","name":"Numeric","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Numeric restricts accepted input to a number."},"source":{"file":"tmux/server_interactive.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.Numeric","product":"core","slug":"tmux-commandpromptrequest-numeric"},{"id":"tmux.CommandPromptRequest.Type","name":"Type","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"PromptType","doc":{"summary":"Type selects the associated prompt-history class; zero omits -T."},"source":{"file":"tmux/server_interactive.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.Type","product":"core","slug":"tmux-commandpromptrequest-type"},{"id":"tmux.CommandPromptRequest.ExpandFormat","name":"ExpandFormat","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"ExpandFormat expands formats in the prompt result."},"source":{"file":"tmux/server_interactive.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.ExpandFormat","product":"core","slug":"tmux-commandpromptrequest-expandformat"},{"id":"tmux.CommandPromptRequest.Literal","name":"Literal","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"Literal disables key-name parsing and requires tmux 3.6; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.Literal","product":"core","slug":"tmux-commandpromptrequest-literal"},{"id":"tmux.CommandPromptRequest.BackspaceExit","name":"BackspaceExit","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"BackspaceExit exits on backspace and requires tmux 3.7; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":64,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.BackspaceExit","product":"core","slug":"tmux-commandpromptrequest-backspaceexit"},{"id":"tmux.CommandPromptRequest.NoFreeze","name":"NoFreeze","kind":"attribute","modifiers":[],"parent":"tmux.CommandPromptRequest","signatures":[],"type":"bool","doc":{"summary":"NoFreeze leaves the pane unfrozen and requires tmux 3.7; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.CommandPromptRequest.NoFreeze","product":"core","slug":"tmux-commandpromptrequest-nofreeze"},{"id":"tmux.MenuItem","name":"MenuItem","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"MenuItem is one display-menu entry. Its zero value is a separator. A named item always contributes its name, key, and command to tmux, including empty key or command strings."},"source":{"file":"tmux/server_interactive.go","line":73,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuItem","product":"core","slug":"tmux-menuitem"},{"id":"tmux.MenuItem.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.MenuItem","signatures":[],"type":"string","doc":{"summary":"Name is the visible item name; an empty name makes this item a separator."},"source":{"file":"tmux/server_interactive.go","line":75,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuItem.Name","product":"core","slug":"tmux-menuitem-name"},{"id":"tmux.MenuItem.Key","name":"Key","kind":"attribute","modifiers":[],"parent":"tmux.MenuItem","signatures":[],"type":"string","doc":{"summary":"Key is the optional shortcut for a named item."},"source":{"file":"tmux/server_interactive.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuItem.Key","product":"core","slug":"tmux-menuitem-key"},{"id":"tmux.MenuItem.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.MenuItem","signatures":[],"type":"string","doc":{"summary":"Command is the tmux command for a named item."},"source":{"file":"tmux/server_interactive.go","line":79,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MenuItem.Command","product":"core","slug":"tmux-menuitem-command"},{"id":"tmux.DisplayMenuRequest","name":"DisplayMenuRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"DisplayMenuRequest configures one tmux popup menu. Position and style strings retain tmux's format and symbolic-position languages verbatim. Its zero value is invalid because Items is required. All pointer fields omit their flags when nil and retain explicit empty strings; DisplayMenu copies Items before calling tmux. TargetPane and TargetClient are independent but must be stable identities when present."},"source":{"file":"tmux/server_interactive.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest","product":"core","slug":"tmux-displaymenurequest"},{"id":"tmux.DisplayMenuRequest.Items","name":"Items","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"[]MenuItem","doc":{"summary":"Items are menu rows; a zero MenuItem is a separator."},"source":{"file":"tmux/server_interactive.go","line":90,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.Items","product":"core","slug":"tmux-displaymenurequest-items"},{"id":"tmux.DisplayMenuRequest.Title","name":"Title","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"*string","doc":{"summary":"Title is the optional menu title."},"source":{"file":"tmux/server_interactive.go","line":92,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.Title","product":"core","slug":"tmux-displaymenurequest-title"},{"id":"tmux.DisplayMenuRequest.TargetPane","name":"TargetPane","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"PaneID","doc":{"summary":"TargetPane supplies pane context for format expansion."},"source":{"file":"tmux/server_interactive.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.TargetPane","product":"core","slug":"tmux-displaymenurequest-targetpane"},{"id":"tmux.DisplayMenuRequest.TargetClient","name":"TargetClient","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"ClientName","doc":{"summary":"TargetClient selects the client that renders the menu."},"source":{"file":"tmux/server_interactive.go","line":96,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.TargetClient","product":"core","slug":"tmux-displaymenurequest-targetclient"},{"id":"tmux.DisplayMenuRequest.X","name":"X","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"*string","doc":{"summary":"X is tmux's horizontal position expression."},"source":{"file":"tmux/server_interactive.go","line":98,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.X","product":"core","slug":"tmux-displaymenurequest-x"},{"id":"tmux.DisplayMenuRequest.Y","name":"Y","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"*string","doc":{"summary":"Y is tmux's vertical position expression."},"source":{"file":"tmux/server_interactive.go","line":100,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.Y","product":"core","slug":"tmux-displaymenurequest-y"},{"id":"tmux.DisplayMenuRequest.StartingChoice","name":"StartingChoice","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"*string","doc":{"summary":"StartingChoice selects the initial item and requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":103,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.StartingChoice","product":"core","slug":"tmux-displaymenurequest-startingchoice"},{"id":"tmux.DisplayMenuRequest.BorderLines","name":"BorderLines","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"*string","doc":{"summary":"BorderLines selects border glyphs and requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.BorderLines","product":"core","slug":"tmux-displaymenurequest-borderlines"},{"id":"tmux.DisplayMenuRequest.Style","name":"Style","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"*string","doc":{"summary":"Style selects menu style and requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.Style","product":"core","slug":"tmux-displaymenurequest-style"},{"id":"tmux.DisplayMenuRequest.BorderStyle","name":"BorderStyle","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"*string","doc":{"summary":"BorderStyle selects border style and requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.BorderStyle","product":"core","slug":"tmux-displaymenurequest-borderstyle"},{"id":"tmux.DisplayMenuRequest.SelectedStyle","name":"SelectedStyle","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"*string","doc":{"summary":"SelectedStyle selects highlighted-item style and requires tmux 3.4; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":114,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.SelectedStyle","product":"core","slug":"tmux-displaymenurequest-selectedstyle"},{"id":"tmux.DisplayMenuRequest.Mouse","name":"Mouse","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"bool","doc":{"summary":"Mouse enables mouse selection and requires tmux 3.5; see UnsupportedPolicy."},"source":{"file":"tmux/server_interactive.go","line":116,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.Mouse","product":"core","slug":"tmux-displaymenurequest-mouse"},{"id":"tmux.DisplayMenuRequest.StayOpen","name":"StayOpen","kind":"attribute","modifiers":[],"parent":"tmux.DisplayMenuRequest","signatures":[],"type":"bool","doc":{"summary":"StayOpen keeps the menu visible after selecting an item."},"source":{"file":"tmux/server_interactive.go","line":118,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DisplayMenuRequest.StayOpen","product":"core","slug":"tmux-displaymenurequest-stayopen"},{"id":"tmux.Server.ConfirmBefore","name":"ConfirmBefore","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ConfirmBefore(ctx context.Context, request ConfirmBeforeRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ConfirmBeforeRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"ConfirmBefore asks tmux to display a background confirmation prompt and returns after tmux accepts it, not after the user answers or Command runs. It requires tmux 3.3. ConfirmKey and DefaultYes require tmux 3.4 and follow [UnsupportedPolicy]. Completed stderr is an error; cancellation does not prove prompt delivery or later command execution did not occur."},"source":{"file":"tmux/server_interactive.go","line":183,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ConfirmBefore","product":"core","slug":"tmux-server-confirmbefore"},{"id":"tmux.Server.CommandPrompt","name":"CommandPrompt","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) CommandPrompt(ctx context.Context, request CommandPromptRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"CommandPromptRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"CommandPrompt asks tmux to display a background command prompt and returns after tmux accepts it, not after input is submitted or Template runs. It requires tmux 3.3. Later flags follow [UnsupportedPolicy]. Completed stderr is an error; cancellation does not prove prompt delivery or later execution."},"source":{"file":"tmux/server_interactive.go","line":231,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.CommandPrompt","product":"core","slug":"tmux-server-commandprompt"},{"id":"tmux.Server.DisplayMenu","name":"DisplayMenu","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) DisplayMenu(ctx context.Context, request DisplayMenuRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"DisplayMenuRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"DisplayMenu displays a menu and waits until tmux closes it. The target client must own a TTY; control-mode clients cannot render menu overlays. It returns no selected value and does not establish whether an item command ran. Unsupported optional flags follow [UnsupportedPolicy]. Completed stderr is an error, and cancellation does not prove menu delivery or a selected command's effect."},"source":{"file":"tmux/server_interactive.go","line":311,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.DisplayMenu","product":"core","slug":"tmux-server-displaymenu"},{"id":"tmux.BindKeyRequest","name":"BindKeyRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"BindKeyRequest configures one tmux key binding. Its zero value is invalid because Key is required; nil KeyTable and Note omit their flags while pointers to empty strings are explicit."},"source":{"file":"tmux/server_keys.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BindKeyRequest","product":"core","slug":"tmux-bindkeyrequest"},{"id":"tmux.BindKeyRequest.Key","name":"Key","kind":"attribute","modifiers":[],"parent":"tmux.BindKeyRequest","signatures":[],"type":"string","doc":{"summary":"Key is the required tmux key notation to bind."},"source":{"file":"tmux/server_keys.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BindKeyRequest.Key","product":"core","slug":"tmux-bindkeyrequest-key"},{"id":"tmux.BindKeyRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.BindKeyRequest","signatures":[],"type":"string","doc":{"summary":"Command is the tmux command; an empty command is a no-op binding on tmux 3.3+."},"source":{"file":"tmux/server_keys.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BindKeyRequest.Command","product":"core","slug":"tmux-bindkeyrequest-command"},{"id":"tmux.BindKeyRequest.KeyTable","name":"KeyTable","kind":"attribute","modifiers":[],"parent":"tmux.BindKeyRequest","signatures":[],"type":"*string","doc":{"summary":"KeyTable selects a table, or nil for tmux's default table."},"source":{"file":"tmux/server_keys.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BindKeyRequest.KeyTable","product":"core","slug":"tmux-bindkeyrequest-keytable"},{"id":"tmux.BindKeyRequest.Note","name":"Note","kind":"attribute","modifiers":[],"parent":"tmux.BindKeyRequest","signatures":[],"type":"*string","doc":{"summary":"Note supplies tmux's optional binding note."},"source":{"file":"tmux/server_keys.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BindKeyRequest.Note","product":"core","slug":"tmux-bindkeyrequest-note"},{"id":"tmux.BindKeyRequest.Repeat","name":"Repeat","kind":"attribute","modifiers":[],"parent":"tmux.BindKeyRequest","signatures":[],"type":"bool","doc":{"summary":"Repeat makes the binding repeatable."},"source":{"file":"tmux/server_keys.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.BindKeyRequest.Repeat","product":"core","slug":"tmux-bindkeyrequest-repeat"},{"id":"tmux.UnbindKeyRequest","name":"UnbindKeyRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"UnbindKeyRequest selects one key or an entire key table to unbind. Exactly one of Key and AllKeys must be set."},"source":{"file":"tmux/server_keys.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnbindKeyRequest","product":"core","slug":"tmux-unbindkeyrequest"},{"id":"tmux.UnbindKeyRequest.Key","name":"Key","kind":"attribute","modifiers":[],"parent":"tmux.UnbindKeyRequest","signatures":[],"type":"*string","doc":{"summary":"Key selects one binding; it is mutually exclusive with AllKeys."},"source":{"file":"tmux/server_keys.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnbindKeyRequest.Key","product":"core","slug":"tmux-unbindkeyrequest-key"},{"id":"tmux.UnbindKeyRequest.KeyTable","name":"KeyTable","kind":"attribute","modifiers":[],"parent":"tmux.UnbindKeyRequest","signatures":[],"type":"*string","doc":{"summary":"KeyTable limits removal to one table; nil selects tmux's default table."},"source":{"file":"tmux/server_keys.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnbindKeyRequest.KeyTable","product":"core","slug":"tmux-unbindkeyrequest-keytable"},{"id":"tmux.UnbindKeyRequest.AllKeys","name":"AllKeys","kind":"attribute","modifiers":[],"parent":"tmux.UnbindKeyRequest","signatures":[],"type":"bool","doc":{"summary":"AllKeys removes every binding in KeyTable and is mutually exclusive with Key."},"source":{"file":"tmux/server_keys.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnbindKeyRequest.AllKeys","product":"core","slug":"tmux-unbindkeyrequest-allkeys"},{"id":"tmux.UnbindKeyRequest.Quiet","name":"Quiet","kind":"attribute","modifiers":[],"parent":"tmux.UnbindKeyRequest","signatures":[],"type":"bool","doc":{"summary":"Quiet suppresses tmux's missing-binding diagnostic."},"source":{"file":"tmux/server_keys.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnbindKeyRequest.Quiet","product":"core","slug":"tmux-unbindkeyrequest-quiet"},{"id":"tmux.ListKeysRequest","name":"ListKeysRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ListKeysRequest configures raw key-binding output. Its zero value selects tmux's default table and format; nil fields omit flags while explicit empty pointers are passed to tmux."},"source":{"file":"tmux/server_keys.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ListKeysRequest","product":"core","slug":"tmux-listkeysrequest"},{"id":"tmux.ListKeysRequest.KeyTable","name":"KeyTable","kind":"attribute","modifiers":[],"parent":"tmux.ListKeysRequest","signatures":[],"type":"*string","doc":{"summary":"KeyTable limits output to one key table."},"source":{"file":"tmux/server_keys.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ListKeysRequest.KeyTable","product":"core","slug":"tmux-listkeysrequest-keytable"},{"id":"tmux.ListKeysRequest.Format","name":"Format","kind":"attribute","modifiers":[],"parent":"tmux.ListKeysRequest","signatures":[],"type":"*string","doc":{"summary":"Format selects output format and requires tmux 3.7; see UnsupportedPolicy."},"source":{"file":"tmux/server_keys.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ListKeysRequest.Format","product":"core","slug":"tmux-listkeysrequest-format"},{"id":"tmux.ListCommandsRequest","name":"ListCommandsRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ListCommandsRequest optionally limits output to one tmux command or alias. Nil CommandName lists all commands; a pointer to an empty name is explicit."},"source":{"file":"tmux/server_keys.go","line":51,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ListCommandsRequest","product":"core","slug":"tmux-listcommandsrequest"},{"id":"tmux.ListCommandsRequest.CommandName","name":"CommandName","kind":"attribute","modifiers":[],"parent":"tmux.ListCommandsRequest","signatures":[],"type":"*string","doc":{"summary":"CommandName optionally selects one command or alias."},"source":{"file":"tmux/server_keys.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ListCommandsRequest.CommandName","product":"core","slug":"tmux-listcommandsrequest-commandname"},{"id":"tmux.ShowMessagesRequest","name":"ShowMessagesRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ShowMessagesRequest selects the target and server information to print. Terminals and Jobs are independent and may both be enabled."},"source":{"file":"tmux/server_keys.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ShowMessagesRequest","product":"core","slug":"tmux-showmessagesrequest"},{"id":"tmux.ShowMessagesRequest.TargetClient","name":"TargetClient","kind":"attribute","modifiers":[],"parent":"tmux.ShowMessagesRequest","signatures":[],"type":"ClientName","doc":{"summary":"TargetClient selects a stable client; zero selects tmux's current client."},"source":{"file":"tmux/server_keys.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ShowMessagesRequest.TargetClient","product":"core","slug":"tmux-showmessagesrequest-targetclient"},{"id":"tmux.ShowMessagesRequest.Terminals","name":"Terminals","kind":"attribute","modifiers":[],"parent":"tmux.ShowMessagesRequest","signatures":[],"type":"bool","doc":{"summary":"Terminals includes terminal capability information."},"source":{"file":"tmux/server_keys.go","line":62,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ShowMessagesRequest.Terminals","product":"core","slug":"tmux-showmessagesrequest-terminals"},{"id":"tmux.ShowMessagesRequest.Jobs","name":"Jobs","kind":"attribute","modifiers":[],"parent":"tmux.ShowMessagesRequest","signatures":[],"type":"bool","doc":{"summary":"Jobs includes job status information."},"source":{"file":"tmux/server_keys.go","line":64,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ShowMessagesRequest.Jobs","product":"core","slug":"tmux-showmessagesrequest-jobs"},{"id":"tmux.Server.BindKey","name":"BindKey","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) BindKey(ctx context.Context, request BindKeyRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"BindKeyRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"BindKey binds Key to Command in a tmux key table. An empty Command creates a no-op binding on tmux 3.3 or newer; tmux 3.2a reports its upstream error. It mutates the table; cancellation does not prove that tmux did not bind Key."},"source":{"file":"tmux/server_keys.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.BindKey","product":"core","slug":"tmux-server-bindkey"},{"id":"tmux.Server.UnbindKey","name":"UnbindKey","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) UnbindKey(ctx context.Context, request UnbindKeyRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"UnbindKeyRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"UnbindKey removes one key binding or every binding in a key table. Key and AllKeys must select exactly one target; cancellation does not prove removal did not occur."},"source":{"file":"tmux/server_keys.go","line":103,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.UnbindKey","product":"core","slug":"tmux-server-unbindkey"},{"id":"tmux.Server.ListKeys","name":"ListKeys","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ListKeys(\n\tctx context.Context,\n\trequest ListKeysRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ListKeysRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"([]string, error)"}],"doc":{"summary":"ListKeys returns an owned snapshot of raw tmux key-binding lines. Format requires tmux 3.7 and follows [UnsupportedPolicy]. tmux 3.7 through 3.7c send a table's sole matching binding to client status and leave stdout empty; this method preserves that upstream and Python behavior. Listing failures remain errors.","body":"On an unused socket, tmux starts an empty server to answer. With the default\nexit-empty setting, that server exits at once and leaves its socket file."},"source":{"file":"tmux/server_keys.go","line":149,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ListKeys","product":"core","slug":"tmux-server-listkeys"},{"id":"tmux.Server.ListCommands","name":"ListCommands","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ListCommands(\n\tctx context.Context,\n\trequest ListCommandsRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ListCommandsRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"([]string, error)"}],"doc":{"summary":"ListCommands returns an owned snapshot of raw tmux command-description lines. A list failure is returned rather than answered with no rows. Like [Server.ListKeys], it answers on a socket holding no server."},"source":{"file":"tmux/server_keys.go","line":189,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ListCommands","product":"core","slug":"tmux-server-listcommands"},{"id":"tmux.Server.ListClients","name":"ListClients","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ListClients(ctx context.Context) ([]string, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"([]string, error)"}],"doc":{"summary":"ListClients returns an owned snapshot of raw tmux client-description lines, the text tmux itself prints. A list failure is returned rather than answered with no rows. [Server.Clients] answers the same question as typed [Client] records and is what most callers want."},"source":{"file":"tmux/server_keys.go","line":211,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ListClients","product":"core","slug":"tmux-server-listclients"},{"id":"tmux.Server.ShowMessages","name":"ShowMessages","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ShowMessages(\n\tctx context.Context,\n\trequest ShowMessagesRequest,\n) ([]string, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ShowMessagesRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"([]string, error)"}],"doc":{"summary":"ShowMessages returns an owned snapshot of the tmux message log, terminal capabilities, job summary, or both terminal and job summaries. A zero TargetClient selects tmux's current client; a list failure is returned rather than answered with no rows."},"source":{"file":"tmux/server_keys.go","line":218,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ShowMessages","product":"core","slug":"tmux-server-showmessages"},{"id":"tmux.Server.ValidateLayouts","name":"ValidateLayouts","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) ValidateLayouts(ctx context.Context, layouts iter.Seq2[string, int]) error","params":[{"name":"ctx","type":"context.Context"},{"name":"layouts","type":"iter.Seq2[string, int]"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"ValidateLayouts checks every layout and its required pane count before any mutation. Nil and empty sequences succeed without I/O unless ctx is canceled. Empty layout strings are ignored. Other entries require at least one pane; classic trees must contain enough leaves. tmux validates JSON contents and geometry when applying the layout.","body":"Names accept unique abbreviations. Version-sensitive names query the selected\ndaemon through this server's transport; only a cold endpoint without a captured\ndaemon identity or control connection uses the configured binary's version.\nPermission, protocol, decode and cancellation errors are preserved.\nValidation errors match\n[ErrInvalidServerCommandRequest]; unavailable presets match [ErrVersionTooLow]."},"source":{"file":"tmux/server_layout.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.ValidateLayouts","product":"core","slug":"tmux-server-validatelayouts"},{"id":"tmux.ErrInvalidServer","name":"ErrInvalidServer","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidServer identifies an operation on an uninitialized [Server]."},"source":{"file":"tmux/server_options.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidServer","product":"core","slug":"tmux-errinvalidserver"},{"id":"tmux.ErrInvalidServerOptions","name":"ErrInvalidServerOptions","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidServerOptions identifies a value that fails [ServerOptions] validation. Executable lookup and working-directory failures retain their own error identities."},"source":{"file":"tmux/server_options.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidServerOptions","product":"core","slug":"tmux-errinvalidserveroptions"},{"id":"tmux.ServerOptions","name":"ServerOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ServerOptions configures a [Server] without starting tmux. [NewServer] snapshots the effective environment, working directory, and executable; callers retain ownership of every supplied value."},"source":{"file":"tmux/server_options.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions","product":"core","slug":"tmux-serveroptions"},{"id":"tmux.ServerOptions.Binary","name":"Binary","kind":"attribute","modifiers":[],"parent":"tmux.ServerOptions","signatures":[],"type":"string","doc":{"summary":"Binary is the tmux executable name or path. Empty resolves tmux once through the snapshotted PATH. Relative paths resolve against the constructor's working directory. The resolved absolute path is shared by subprocess and control-mode transports."},"source":{"file":"tmux/server_options.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions.Binary","product":"core","slug":"tmux-serveroptions-binary"},{"id":"tmux.ServerOptions.SocketName","name":"SocketName","kind":"attribute","modifiers":[],"parent":"tmux.ServerOptions","signatures":[],"type":"string","doc":{"summary":"SocketName selects tmux's named socket. SocketPath takes precedence."},"source":{"file":"tmux/server_options.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions.SocketName","product":"core","slug":"tmux-serveroptions-socketname"},{"id":"tmux.ServerOptions.SocketPath","name":"SocketPath","kind":"attribute","modifiers":[],"parent":"tmux.ServerOptions","signatures":[],"type":"string","doc":{"summary":"SocketPath selects an explicit tmux socket path."},"source":{"file":"tmux/server_options.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions.SocketPath","product":"core","slug":"tmux-serveroptions-socketpath"},{"id":"tmux.ServerOptions.ConfigFile","name":"ConfigFile","kind":"attribute","modifiers":[],"parent":"tmux.ServerOptions","signatures":[],"type":"string","doc":{"summary":"ConfigFile selects an exact tmux configuration file. Empty lets tmux read its default configuration, so a program inherits whatever the user running it has configured: a base-index other than zero, a prompt that appears in captured pane text, hooks that fire on the sessions this program creates. Point it at a file the program owns, which may be an empty one, when the tmux it drives should not depend on that."},"source":{"file":"tmux/server_options.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions.ConfigFile","product":"core","slug":"tmux-serveroptions-configfile"},{"id":"tmux.ServerOptions.Colors","name":"Colors","kind":"attribute","modifiers":[],"parent":"tmux.ServerOptions","signatures":[],"type":"ColorMode","doc":{"summary":"Colors overrides tmux's terminal color capability."},"source":{"file":"tmux/server_options.go","line":42,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions.Colors","product":"core","slug":"tmux-serveroptions-colors"},{"id":"tmux.ServerOptions.ProcessEnvironment","name":"ProcessEnvironment","kind":"attribute","modifiers":[],"parent":"tmux.ServerOptions","signatures":[],"type":"[]string","doc":{"summary":"ProcessEnvironment replaces the child process environment. Nil snapshots the current process environment. A non-nil empty slice supplies no caller-provided variables. Execution may add variables required by Go's target platform and a canonical TMUX_TMPDIR that freezes named or default socket selection. Duplicate names retain their last value. Entries containing NUL are rejected except on Plan 9, where NUL separates path-list elements. NewServer clones the slice."},"source":{"file":"tmux/server_options.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions.ProcessEnvironment","product":"core","slug":"tmux-serveroptions-processenvironment"},{"id":"tmux.ServerOptions.Unsupported","name":"Unsupported","kind":"attribute","modifiers":[],"parent":"tmux.ServerOptions","signatures":[],"type":"UnsupportedPolicy","doc":{"summary":"Unsupported selects what happens when a request needs an optional tmux capability the running server does not have. The zero value refuses the request; see UnsupportedPolicy."},"source":{"file":"tmux/server_options.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions.Unsupported","product":"core","slug":"tmux-serveroptions-unsupported"},{"id":"tmux.ServerOptions.WarningHandler","name":"WarningHandler","kind":"attribute","modifiers":[],"parent":"tmux.ServerOptions","signatures":[],"type":"WarningHandler","doc":{"summary":"WarningHandler receives nonfatal compatibility warnings. Nil discards warnings. See WarningHandler for delivery and concurrency semantics."},"source":{"file":"tmux/server_options.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions.WarningHandler","product":"core","slug":"tmux-serveroptions-warninghandler"},{"id":"tmux.ServerOptions.CommandObserver","name":"CommandObserver","kind":"attribute","modifiers":[],"parent":"tmux.ServerOptions","signatures":[],"type":"CommandObserver","doc":{"summary":"CommandObserver receives one record per tmux command run. Nil observes nothing. See CommandObserver for delivery and concurrency semantics."},"source":{"file":"tmux/server_options.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ServerOptions.CommandObserver","product":"core","slug":"tmux-serveroptions-commandobserver"},{"id":"tmux.NewServer","name":"NewServer","kind":"function","modifiers":[],"signatures":[{"raw":"func NewServer(options ServerOptions) (Server, error)","params":[{"name":"options","type":"ServerOptions"}],"returns":"(Server, error)"}],"doc":{"summary":"NewServer validates and snapshots one tmux configuration without starting tmux. Empty socket selectors use the endpoint selected by the frozen environment.","examples":[{"lang":"console","intro":"Construct a server handle for a private socket and check that construction does not start tmux. Creating the first session starts the daemon. The temporary server is stopped even when an operation fails. Use Go 1.26.0 or newer and tmux 3.3a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-go.git libtmux-source && \\\n git -C libtmux-source checkout 6f3df55f8a41999e41225eefb3940545b834e6a2\n"},{"lang":"go","intro":"Save this dependency file as go.mod:","code":"module example.com/libtmux-api\n\ngo 1.26.0\n\nrequire github.com/libtmux/libtmux-go v0.0.0\n\nreplace github.com/libtmux/libtmux-go => ./libtmux-source\n"},{"lang":"go","intro":"Save this complete example as example_test.go. It creates a private temporary socket and stops its server before removing the directory. Cleanup failure fails the example and retains the socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-go/blob/6f3df55f8a41999e41225eefb3940545b834e6a2/tmux/api_new_server_example_test.go","code":"package tmux_test\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"time\"\n\n\t\"github.com/libtmux/libtmux-go/tmux\"\n)\n\n// Construct a server handle for a private socket and check that construction\n// does not start tmux. Creating the first session starts the daemon.\n// The temporary server is stopped even when an operation fails.\nfunc ExampleNewServer_complete() {\n\trun := func() (runErr error) {\n\t\tdirectory, err := os.MkdirTemp(\"\", \"libtmux-go-api-\")\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create socket directory: %w\", err)\n\t\t}\n\t\tserver, err := tmux.NewServer(tmux.ServerOptions{\n\t\t\tSocketPath: filepath.Join(directory, \"tmux.sock\"),\n\t\t\tConfigFile: \"/dev/null\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errors.Join(err, os.RemoveAll(directory))\n\t\t}\n\t\tdefer func() {\n\t\t\t// Cleanup has its own deadline because the operation may have timed out.\n\t\t\tcleanup, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\t\t\tdefer cancel()\n\t\t\tif err := server.Kill(cleanup); err != nil && !errors.Is(err, tmux.ErrNoServer) {\n\t\t\t\trunErr = errors.Join(runErr, fmt.Errorf(\"stop server at %s: %w\", directory, err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\trunErr = errors.Join(runErr, os.RemoveAll(directory))\n\t\t}()\n\t\tctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)\n\t\tdefer cancel()\n\t\tif err := server.CheckAlive(ctx); !errors.Is(err, tmux.ErrNoServer) {\n\t\t\treturn errors.Join(errors.New(\"expected no daemon before session creation\"), err)\n\t\t}\n\t\tfmt.Println(\"construction started tmux: false\")\n\t\t_, err = server.NewSession(ctx, tmux.NewSessionRequest{\n\t\t\tName: \"work\", WindowName: \"editor\", Command: \"cat\", Width: 100, Height: 30,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create session: %w\", err)\n\t\t}\n\t\tif err := server.CheckAlive(ctx); err != nil {\n\t\t\treturn fmt.Errorf(\"check created server: %w\", err)\n\t\t}\n\t\tfmt.Println(\"session started tmux: true\")\n\t\treturn nil\n\t}\n\tif err := run(); err != nil {\n\t\tpanic(err)\n\t}\n\t// Output:\n\t// construction started tmux: false\n\t// session started tmux: true\n}\n"},{"lang":"console","intro":"Run the saved file. Go checks the Output comment and fails on different output or an operation or cleanup error:","code":"$ GOWORK=off go test -count=1 -v example_test.go\n"}]},"source":{"file":"tmux/server_options.go","line":97,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewServer","product":"core","slug":"tmux-newserver"},{"id":"tmux.Server.WithSocketPath","name":"WithSocketPath","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) WithSocketPath(path string) (Server, error)","params":[{"name":"path","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"(Server, error)"}],"doc":{"summary":"WithSocketPath returns a server using path and the receiver's frozen executable, environment, working directory, and server-option policy. Empty clears explicit socket selectors and leaves endpoint selection to tmux. The result has fresh daemon-scoped coordination. A connection-bound receiver is rejected because its transport belongs to the original daemon."},"source":{"file":"tmux/server_options.go","line":106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.WithSocketPath","product":"core","slug":"tmux-server-withsocketpath"},{"id":"tmux.Server.WithProcessEnvironmentValue","name":"WithProcessEnvironmentValue","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) WithProcessEnvironmentValue(name, value string) (Server, error)","params":[{"name":"name","type":"string"},{"name":"value","type":"string"}],"receiver":{"name":"s","type":"Server"},"returns":"(Server, error)"}],"doc":{"summary":"WithProcessEnvironmentValue returns a server whose tmux subprocesses receive name=value while preserving the receiver's frozen executable, configuration, and exact socket endpoint. It does not expose an inherited environment snapshot through [Server.ProcessEnvironment]. The result shares daemon-scoped coordination with the receiver. A connection-bound receiver is rejected."},"source":{"file":"tmux/server_options.go","line":134,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.WithProcessEnvironmentValue","product":"core","slug":"tmux-server-withprocessenvironmentvalue"},{"id":"tmux.ErrVersionQuery","name":"ErrVersionQuery","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrVersionQuery identifies a tmux version probe that produced no usable version. It is matched by errors.Is for VersionQueryError."},"source":{"file":"tmux/server_version.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrVersionQuery","product":"core","slug":"tmux-errversionquery"},{"id":"tmux.ErrVersionTooLow","name":"ErrVersionTooLow","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrVersionTooLow identifies a tmux version below a required feature level. It is matched by errors.Is for VersionTooLowError."},"source":{"file":"tmux/server_version.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrVersionTooLow","product":"core","slug":"tmux-errversiontoolow"},{"id":"tmux.VersionQueryError","name":"VersionQueryError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"VersionQueryError reports an unsuccessful tmux version probe. It matches [ErrVersionQuery] through errors.Is; callers can recover its fields with errors.As. Library-created errors retain only the exit code; command arguments and output are omitted, although callers may construct values with other contents."},"source":{"file":"tmux/server_version.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionQueryError","product":"core","slug":"tmux-versionqueryerror"},{"id":"tmux.VersionQueryError.Result","name":"Result","kind":"attribute","modifiers":[],"parent":"tmux.VersionQueryError","signatures":[],"type":"CommandResult","doc":{"summary":"Result contains the library-created error's exit code and no diagnostics."},"source":{"file":"tmux/server_version.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionQueryError.Result","product":"core","slug":"tmux-versionqueryerror-result"},{"id":"tmux.VersionQueryError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.VersionQueryError","signatures":[],"type":"string","doc":{"summary":"Reason describes a malformed successful probe result, when applicable."},"source":{"file":"tmux/server_version.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionQueryError.Reason","product":"core","slug":"tmux-versionqueryerror-reason"},{"id":"tmux.VersionQueryError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.VersionQueryError","signatures":[{"raw":"func (e *VersionQueryError) Error() string","params":[],"receiver":{"name":"e","type":"*VersionQueryError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/server_version.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionQueryError.Error","product":"core","slug":"tmux-versionqueryerror-error"},{"id":"tmux.VersionQueryError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.VersionQueryError","signatures":[{"raw":"func (e *VersionQueryError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*VersionQueryError"},"returns":"error"}],"doc":{"summary":"Unwrap makes VersionQueryError compatible with ErrVersionQuery."},"source":{"file":"tmux/server_version.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionQueryError.Unwrap","product":"core","slug":"tmux-versionqueryerror-unwrap"},{"id":"tmux.VersionTooLowError","name":"VersionTooLowError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"VersionTooLowError reports the installed and required tmux feature levels. It matches [ErrVersionTooLow] through errors.Is; callers can recover its fields with errors.As.","body":"Subcommand and Feature are set when one optional capability within a command\nwas refused rather than the command itself, which is what\n[UnsupportedPolicy] governs."},"source":{"file":"tmux/server_version.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionTooLowError","product":"core","slug":"tmux-versiontoolowerror"},{"id":"tmux.VersionTooLowError.Current","name":"Current","kind":"attribute","modifiers":[],"parent":"tmux.VersionTooLowError","signatures":[],"type":"Version","doc":{"summary":"Current is the installed tmux feature level."},"source":{"file":"tmux/server_version.go","line":79,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionTooLowError.Current","product":"core","slug":"tmux-versiontoolowerror-current"},{"id":"tmux.VersionTooLowError.Minimum","name":"Minimum","kind":"attribute","modifiers":[],"parent":"tmux.VersionTooLowError","signatures":[],"type":"Version","doc":{"summary":"Minimum is the requested minimum feature level."},"source":{"file":"tmux/server_version.go","line":81,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionTooLowError.Minimum","product":"core","slug":"tmux-versiontoolowerror-minimum"},{"id":"tmux.VersionTooLowError.Subcommand","name":"Subcommand","kind":"attribute","modifiers":[],"parent":"tmux.VersionTooLowError","signatures":[],"type":"string","doc":{"summary":"Subcommand names the tmux subcommand whose optional capability was refused. Empty when the command itself is below its floor."},"source":{"file":"tmux/server_version.go","line":84,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionTooLowError.Subcommand","product":"core","slug":"tmux-versiontoolowerror-subcommand"},{"id":"tmux.VersionTooLowError.Feature","name":"Feature","kind":"attribute","modifiers":[],"parent":"tmux.VersionTooLowError","signatures":[],"type":"string","doc":{"summary":"Feature names the refused optional capability. Empty when the command itself is below its floor."},"source":{"file":"tmux/server_version.go","line":87,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionTooLowError.Feature","product":"core","slug":"tmux-versiontoolowerror-feature"},{"id":"tmux.VersionTooLowError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.VersionTooLowError","signatures":[{"raw":"func (e *VersionTooLowError) Error() string","params":[],"receiver":{"name":"e","type":"*VersionTooLowError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/server_version.go","line":91,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionTooLowError.Error","product":"core","slug":"tmux-versiontoolowerror-error"},{"id":"tmux.VersionTooLowError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.VersionTooLowError","signatures":[{"raw":"func (e *VersionTooLowError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*VersionTooLowError"},"returns":"error"}],"doc":{"summary":"Unwrap makes VersionTooLowError compatible with ErrVersionTooLow."},"source":{"file":"tmux/server_version.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionTooLowError.Unwrap","product":"core","slug":"tmux-versiontoolowerror-unwrap"},{"id":"tmux.Server.Version","name":"Version","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Version(ctx context.Context) (Version, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"(Version, error)"}],"doc":{"summary":"Version returns the configured tmux binary's cached version. Failed probes are not cached. A waiting caller can abandon an in-flight shared probe when ctx ends without canceling the caller that owns the probe."},"source":{"file":"tmux/server_version.go","line":152,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Version","product":"core","slug":"tmux-server-version"},{"id":"tmux.Server.RefreshVersion","name":"RefreshVersion","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) RefreshVersion(ctx context.Context) (Version, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"(Version, error)"}],"doc":{"summary":"RefreshVersion invalidates the cached version and probes the binary again. Canceling ctx stops this call's wait; it does not establish whether a probe reached the configured binary."},"source":{"file":"tmux/server_version.go","line":159,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.RefreshVersion","product":"core","slug":"tmux-server-refreshversion"},{"id":"tmux.Server.RequireVersion","name":"RequireVersion","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) RequireVersion(ctx context.Context, minimum Version) error","params":[{"name":"ctx","type":"context.Context"},{"name":"minimum","type":"Version"}],"receiver":{"name":"s","type":"Server"},"returns":"error"}],"doc":{"summary":"RequireVersion returns a [VersionTooLowError] matching [ErrVersionTooLow] when the configured binary is older than minimum."},"source":{"file":"tmux/server_version.go","line":165,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.RequireVersion","product":"core","slug":"tmux-server-requireversion"},{"id":"tmux.ErrSessionExists","name":"ErrSessionExists","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrSessionExists identifies a named session that was not replaced."},"source":{"file":"tmux/session_lifecycle.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrSessionExists","product":"core","slug":"tmux-errsessionexists"},{"id":"tmux.HasSessionRequest","name":"HasSessionRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"HasSessionRequest selects exact or tmux-pattern session matching on tmux 3.2a or later. Its zero value is invalid because Target is required."},"source":{"file":"tmux/session_lifecycle.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.HasSessionRequest","product":"core","slug":"tmux-hassessionrequest"},{"id":"tmux.HasSessionRequest.Target","name":"Target","kind":"attribute","modifiers":[],"parent":"tmux.HasSessionRequest","signatures":[],"type":"string","doc":{"summary":"Target is the required session name or tmux session pattern."},"source":{"file":"tmux/session_lifecycle.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.HasSessionRequest.Target","product":"core","slug":"tmux-hassessionrequest-target"},{"id":"tmux.HasSessionRequest.Pattern","name":"Pattern","kind":"attribute","modifiers":[],"parent":"tmux.HasSessionRequest","signatures":[],"type":"bool","doc":{"summary":"Pattern lets tmux interpret Target as a pattern; false requires an exact session name."},"source":{"file":"tmux/session_lifecycle.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.HasSessionRequest.Pattern","product":"core","slug":"tmux-hassessionrequest-pattern"},{"id":"tmux.NewSessionRequest","name":"NewSessionRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"NewSessionRequest configures session creation. [Server.NewSession] creates a detached session; [Server.NewSessionConnection] creates one attached to its first control-mode lane. Its zero value uses tmux defaults. Width and Height are either zero or 1 through 65535; KillExisting requires Name. KillExisting may remove a session before a later creation failure.","body":"[Server.NewSession] copies Environment before validation and retains no map\nstorage; concurrent mutation during the copy is unsafe. Foreground-only tmux\nflags are not exposed."},"source":{"file":"tmux/session_lifecycle.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSessionRequest","product":"core","slug":"tmux-newsessionrequest"},{"id":"tmux.NewSessionRequest.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.NewSessionRequest","signatures":[],"type":"string","doc":{"summary":"Name selects the new session name; empty lets tmux generate one."},"source":{"file":"tmux/session_lifecycle.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSessionRequest.Name","product":"core","slug":"tmux-newsessionrequest-name"},{"id":"tmux.NewSessionRequest.KillExisting","name":"KillExisting","kind":"attribute","modifiers":[],"parent":"tmux.NewSessionRequest","signatures":[],"type":"bool","doc":{"summary":"KillExisting removes an existing session named Name before creation."},"source":{"file":"tmux/session_lifecycle.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSessionRequest.KillExisting","product":"core","slug":"tmux-newsessionrequest-killexisting"},{"id":"tmux.NewSessionRequest.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"tmux.NewSessionRequest","signatures":[],"type":"string","doc":{"summary":"StartDirectory expands ~ and ~/... for the current user. Named-user forms such as ~other are rejected; empty inherits tmux's default."},"source":{"file":"tmux/session_lifecycle.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSessionRequest.StartDirectory","product":"core","slug":"tmux-newsessionrequest-startdirectory"},{"id":"tmux.NewSessionRequest.WindowName","name":"WindowName","kind":"attribute","modifiers":[],"parent":"tmux.NewSessionRequest","signatures":[],"type":"string","doc":{"summary":"WindowName names the initial window; empty lets tmux choose."},"source":{"file":"tmux/session_lifecycle.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSessionRequest.WindowName","product":"core","slug":"tmux-newsessionrequest-windowname"},{"id":"tmux.NewSessionRequest.Width","name":"Width","kind":"attribute","modifiers":[],"parent":"tmux.NewSessionRequest","signatures":[],"type":"int","doc":{"summary":"Width sets the detached session width; zero lets tmux choose."},"source":{"file":"tmux/session_lifecycle.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSessionRequest.Width","product":"core","slug":"tmux-newsessionrequest-width"},{"id":"tmux.NewSessionRequest.Height","name":"Height","kind":"attribute","modifiers":[],"parent":"tmux.NewSessionRequest","signatures":[],"type":"int","doc":{"summary":"Height sets the detached session height; zero lets tmux choose."},"source":{"file":"tmux/session_lifecycle.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSessionRequest.Height","product":"core","slug":"tmux-newsessionrequest-height"},{"id":"tmux.NewSessionRequest.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"tmux.NewSessionRequest","signatures":[],"type":"map[string]string","doc":{"summary":"Environment is emitted in lexically sorted key order. The map is not retained; nil and an empty map both add no entries."},"source":{"file":"tmux/session_lifecycle.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSessionRequest.Environment","product":"core","slug":"tmux-newsessionrequest-environment"},{"id":"tmux.NewSessionRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.NewSessionRequest","signatures":[],"type":"string","doc":{"summary":"Command starts the initial pane with this shell command; empty uses tmux's default command."},"source":{"file":"tmux/session_lifecycle.go","line":55,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSessionRequest.Command","product":"core","slug":"tmux-newsessionrequest-command"},{"id":"tmux.Server.HasSession","name":"HasSession","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) HasSession(ctx context.Context, request HasSessionRequest) (bool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"HasSessionRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"(bool, error)"}],"doc":{"summary":"HasSession reports whether Target selects a session. With Pattern false it compares session names exactly; with Pattern true, tmux may resolve IDs, client TTYs, unique prefixes, or globs. Pattern-mode completed nonzero exits are misses. Exact-name lookup treats [ErrNoServer] as a miss and returns other failures.","body":"Exact-name lookup lists sessions because tmux's exact-match marker still\nresolves identifiers and client TTYs."},"source":{"file":"tmux/session_lifecycle.go","line":128,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.HasSession","product":"core","slug":"tmux-server-hassession"},{"id":"tmux.Server.NewSession","name":"NewSession","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) NewSession(ctx context.Context, request NewSessionRequest) (Session, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"NewSessionRequest"}],"receiver":{"name":"s","type":"Server"},"returns":"(Session, error)"}],"doc":{"summary":"NewSession creates a detached session, then returns a newly materialized [Session]. It never changes client focus. KillExisting is not rolled back; transport and context failures may be delivery-ambiguous.","body":"The returned record has unmaterialized [Session.Windows] and [Session.Panes]\nrelations. Use the resolvers or [Server.Snapshot] when relations are needed.\n\nIf tmux reports an ID before a transport or refresh failure, the returned\npartial Session contains its [Server] and [SessionID]. Other failures return zero.","examples":[{"lang":"console","intro":"Create a detached session named work with an editor window running cat. A second creation with the same name returns ErrSessionExists. Creation returns a session record without captured window relations; use a live lookup or a snapshot when those relations are needed. Use Go 1.26.0 or newer and tmux 3.3a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-go.git libtmux-source && \\\n git -C libtmux-source checkout 6f3df55f8a41999e41225eefb3940545b834e6a2\n"},{"lang":"go","intro":"Save this dependency file as go.mod:","code":"module example.com/libtmux-api\n\ngo 1.26.0\n\nrequire github.com/libtmux/libtmux-go v0.0.0\n\nreplace github.com/libtmux/libtmux-go => ./libtmux-source\n"},{"lang":"go","intro":"Save this complete example as example_test.go. It creates a private temporary socket and stops its server before removing the directory. Cleanup failure fails the example and retains the socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-go/blob/6f3df55f8a41999e41225eefb3940545b834e6a2/tmux/api_server_new_session_example_test.go","code":"package tmux_test\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"time\"\n\n\t\"github.com/libtmux/libtmux-go/tmux\"\n)\n\n// Create a detached session named work with an editor window running cat.\n// A second creation with the same name returns ErrSessionExists. Creation\n// returns a session record without captured window relations; use a live\n// lookup or a snapshot when those relations are needed.\nfunc ExampleServer_NewSession_complete() {\n\trun := func() (runErr error) {\n\t\tdirectory, err := os.MkdirTemp(\"\", \"libtmux-go-api-\")\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create socket directory: %w\", err)\n\t\t}\n\t\tserver, err := tmux.NewServer(tmux.ServerOptions{\n\t\t\tSocketPath: filepath.Join(directory, \"tmux.sock\"),\n\t\t\tConfigFile: \"/dev/null\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errors.Join(err, os.RemoveAll(directory))\n\t\t}\n\t\tdefer func() {\n\t\t\t// Cleanup has its own deadline because the operation may have timed out.\n\t\t\tcleanup, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\t\t\tdefer cancel()\n\t\t\tif err := server.Kill(cleanup); err != nil && !errors.Is(err, tmux.ErrNoServer) {\n\t\t\t\trunErr = errors.Join(runErr, fmt.Errorf(\"stop server at %s: %w\", directory, err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\trunErr = errors.Join(runErr, os.RemoveAll(directory))\n\t\t}()\n\t\tctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)\n\t\tdefer cancel()\n\t\tsession, err := server.NewSession(ctx, tmux.NewSessionRequest{\n\t\t\tName: \"work\", WindowName: \"editor\", Command: \"cat\", Width: 100, Height: 30,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create session: %w\", err)\n\t\t}\n\t\tname, ok := session.Name()\n\t\tif !ok {\n\t\t\treturn errors.New(\"created session has no name\")\n\t\t}\n\t\tfmt.Println(\"session:\", name)\n\t\t_, relations := session.Windows()\n\t\tfmt.Println(\"window relations captured:\", relations)\n\t\t_, err = server.NewSession(ctx, tmux.NewSessionRequest{Name: \"work\", Command: \"cat\"})\n\t\tif !errors.Is(err, tmux.ErrSessionExists) {\n\t\t\treturn errors.Join(errors.New(\"expected duplicate session error\"), err)\n\t\t}\n\t\tfmt.Println(\"duplicate rejected: true\")\n\t\treturn nil\n\t}\n\tif err := run(); err != nil {\n\t\tpanic(err)\n\t}\n\t// Output:\n\t// session: work\n\t// window relations captured: false\n\t// duplicate rejected: true\n}\n"},{"lang":"console","intro":"Run the saved file. Go checks the Output comment and fails on different output or an operation or cleanup error:","code":"$ GOWORK=off go test -count=1 -v example_test.go\n"}]},"source":{"file":"tmux/session_lifecycle.go","line":184,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.NewSession","product":"core","slug":"tmux-server-newsession"},{"id":"tmux.Session.Rename","name":"Rename","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Rename(ctx context.Context, name string) (Session, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"s","type":"Session"},"returns":"(Session, error)"}],"doc":{"summary":"Rename changes the receiver session's name and returns a canonical freshly materialized [Session]. If the command succeeds but refresh fails, it returns the receiver with that error. A transport or context error can be delivery-ambiguous; no rollback is attempted. Invalid names are rejected before execution and match [ErrInvalidRequest]."},"source":{"file":"tmux/session_lifecycle.go","line":261,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Rename","product":"core","slug":"tmux-session-rename"},{"id":"tmux.ValidateSessionName","name":"ValidateSessionName","kind":"function","modifiers":[],"signatures":[{"raw":"func ValidateSessionName(name string) error","params":[{"name":"name","type":"string"}],"returns":"error"}],"doc":{"summary":"ValidateSessionName reports whether name can be used as a tmux session name. Empty names, the target delimiters '.' and ':', control characters and invalid UTF-8 are rejected."},"source":{"file":"tmux/session_lifecycle.go","line":310,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ValidateSessionName","product":"core","slug":"tmux-validatesessionname"},{"id":"tmux.SelectWindowRequest","name":"SelectWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SelectWindowRequest selects one winlink in a [Session] on tmux 3.2a or later. Its zero value is invalid: exactly one of WindowID and Index is required. That mutual exclusion, stable-ID syntax, and a nonnegative Index are validated before execution. Index is read during the call and is not retained; nil omits it, a nonnil pointer is explicit, and callers must not mutate it concurrently."},"source":{"file":"tmux/session_navigation.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SelectWindowRequest","product":"core","slug":"tmux-selectwindowrequest"},{"id":"tmux.SelectWindowRequest.WindowID","name":"WindowID","kind":"attribute","modifiers":[],"parent":"tmux.SelectWindowRequest","signatures":[],"type":"WindowID","doc":{"summary":"WindowID selects a stable window linked into the receiver session."},"source":{"file":"tmux/session_navigation.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SelectWindowRequest.WindowID","product":"core","slug":"tmux-selectwindowrequest-windowid"},{"id":"tmux.SelectWindowRequest.Index","name":"Index","kind":"attribute","modifiers":[],"parent":"tmux.SelectWindowRequest","signatures":[],"type":"*int","doc":{"summary":"Index selects a nonnegative winlink index in the receiver session."},"source":{"file":"tmux/session_navigation.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SelectWindowRequest.Index","product":"core","slug":"tmux-selectwindowrequest-index"},{"id":"tmux.Session.LastWindow","name":"LastWindow","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) LastWindow(ctx context.Context) (Window, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"(Window, error)"}],"doc":{"summary":"LastWindow makes the receiver session's previously selected winlink current and returns that freshly materialized session-specific [Window]. The selection is session-scoped; it does not promise focus for clients attached to other sessions. A transport or context error can be delivery-ambiguous and no rollback is attempted. Command or refresh failure returns a zero Window because this navigation operation cannot identify the selected view reliably without refresh."},"source":{"file":"tmux/session_navigation.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.LastWindow","product":"core","slug":"tmux-session-lastwindow"},{"id":"tmux.Session.NextWindow","name":"NextWindow","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) NextWindow(ctx context.Context) (Window, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"(Window, error)"}],"doc":{"summary":"NextWindow makes the next winlink current in the receiver session and returns that freshly materialized session-specific [Window]. The selection is session-scoped; it does not promise focus for clients attached to other sessions. A transport or context error can be delivery-ambiguous and no rollback is attempted. Command or refresh failure returns a zero Window."},"source":{"file":"tmux/session_navigation.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.NextWindow","product":"core","slug":"tmux-session-nextwindow"},{"id":"tmux.Session.PreviousWindow","name":"PreviousWindow","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) PreviousWindow(ctx context.Context) (Window, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Session"},"returns":"(Window, error)"}],"doc":{"summary":"PreviousWindow makes the previous winlink current in the receiver session and returns that freshly materialized session-specific [Window]. The selection is session-scoped; it does not promise focus for clients attached to other sessions. A transport or context error can be delivery-ambiguous and no rollback is attempted. Command or refresh failure returns a zero Window."},"source":{"file":"tmux/session_navigation.go","line":47,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.PreviousWindow","product":"core","slug":"tmux-session-previouswindow"},{"id":"tmux.Session.SelectWindow","name":"SelectWindow","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) SelectWindow(\n\tctx context.Context,\n\trequest SelectWindowRequest,\n) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SelectWindowRequest"}],"receiver":{"name":"s","type":"Session"},"returns":"(Window, error)"}],"doc":{"summary":"SelectWindow makes one winlink current in the receiver session and returns that freshly materialized session-specific [Window]. WindowID is combined with the receiver SessionID, because a WindowID alone does not distinguish linked views. The selection is session-scoped; it does not promise focus for clients attached to other sessions.","body":"Command or refresh failures return zero because the selected view cannot be\nidentified without refresh. Transport errors are delivery-ambiguous."},"source":{"file":"tmux/session_navigation.go","line":59,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.SelectWindow","product":"core","slug":"tmux-session-selectwindow"},{"id":"tmux.RunOptions","name":"RunOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"RunOptions configures [Session.Run] and [Session.Start]. Its zero value runs the command in a window tmux names, in the session's default directory and environment, and removes that window once the command has finished."},"source":{"file":"tmux/session_run.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunOptions","product":"core","slug":"tmux-runoptions"},{"id":"tmux.RunOptions.WindowName","name":"WindowName","kind":"attribute","modifiers":[],"parent":"tmux.RunOptions","signatures":[],"type":"string","doc":{"summary":"WindowName names the window the command runs in; empty lets tmux choose."},"source":{"file":"tmux/session_run.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunOptions.WindowName","product":"core","slug":"tmux-runoptions-windowname"},{"id":"tmux.RunOptions.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"tmux.RunOptions","signatures":[],"type":"string","doc":{"summary":"StartDirectory expands ~ and ~/... for the current user; empty inherits the session's default."},"source":{"file":"tmux/session_run.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunOptions.StartDirectory","product":"core","slug":"tmux-runoptions-startdirectory"},{"id":"tmux.RunOptions.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"tmux.RunOptions","signatures":[],"type":"map[string]string","doc":{"summary":"Environment is added to the command's environment. The map is not retained."},"source":{"file":"tmux/session_run.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunOptions.Environment","product":"core","slug":"tmux-runoptions-environment"},{"id":"tmux.RunOptions.Keep","name":"Keep","kind":"attribute","modifiers":[],"parent":"tmux.RunOptions","signatures":[],"type":"bool","doc":{"summary":"Keep leaves the finished window in place, showing what the command printed, instead of removing it."},"source":{"file":"tmux/session_run.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunOptions.Keep","product":"core","slug":"tmux-runoptions-keep"},{"id":"tmux.ErrOutcomeUnrecorded","name":"ErrOutcomeUnrecorded","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrOutcomeUnrecorded reports that a command's pane is dead while tmux has not recorded how the command ended, which it does by reaping the command's process. tmux is known to leave a pane in that state indefinitely, so this is reported rather than waited out, and rather than passed off as a zero exit status that would call a failed command successful."},"source":{"file":"tmux/session_run.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrOutcomeUnrecorded","product":"core","slug":"tmux-erroutcomeunrecorded"},{"id":"tmux.RunResult","name":"RunResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"RunResult reports how a command finished and what its terminal showed."},"source":{"file":"tmux/session_run.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunResult","product":"core","slug":"tmux-runresult"},{"id":"tmux.RunResult.Status","name":"Status","kind":"attribute","modifiers":[],"parent":"tmux.RunResult","signatures":[],"type":"int","doc":{"summary":"Status is the command's exit status. It is zero when Signal is set."},"source":{"file":"tmux/session_run.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunResult.Status","product":"core","slug":"tmux-runresult-status"},{"id":"tmux.RunResult.Signal","name":"Signal","kind":"attribute","modifiers":[],"parent":"tmux.RunResult","signatures":[],"type":"string","doc":{"summary":"Signal names the signal that ended the command, when one did. It is empty before tmux 3.3, which reports no signal for a dead pane."},"source":{"file":"tmux/session_run.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunResult.Signal","product":"core","slug":"tmux-runresult-signal"},{"id":"tmux.RunResult.Lines","name":"Lines","kind":"attribute","modifiers":[],"parent":"tmux.RunResult","signatures":[],"type":"[]string","doc":{"summary":"Lines is what the terminal showed when the command finished, without the blank lines tmux pads a screen with."},"source":{"file":"tmux/session_run.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunResult.Lines","product":"core","slug":"tmux-runresult-lines"},{"id":"tmux.RunResult.Pane","name":"Pane","kind":"attribute","modifiers":[],"parent":"tmux.RunResult","signatures":[],"type":"PaneID","doc":{"summary":"Pane is the pane the command ran in. It is live only when the run kept its window."},"source":{"file":"tmux/session_run.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RunResult.Pane","product":"core","slug":"tmux-runresult-pane"},{"id":"tmux.Session.Run","name":"Run","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Run(ctx context.Context, command string, options RunOptions) (RunResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"command","type":"string"},{"name":"options","type":"RunOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"(RunResult, error)"}],"doc":{"summary":"Run starts command in a new window of this session, waits for it to finish, and reports its exit status and what its terminal showed. It is [os/exec] for a program that needs a terminal: the command runs with a tty, so it sees isatty, colour, and a width, and what comes back is the screen tmux rendered rather than the bytes the program wrote.","body":"A nonzero status is a result, not an error; the error reports what tmux\ncould not do. The wait is tmux's own signal, backed by a liveness check that\nwidens from a quarter second in case that signal is lost: it needs no tmux\nbinary on the command's PATH and returns as the process exits. A command that never\nexits holds Run until ctx ends. On error, Run removes its window regardless\nof [RunOptions.Keep], since Run gives the caller no other chance to retry or\nclean up; a bare [Session.Start] followed by [Running.Wait] leaves that\nchoice to the caller instead. [Server.RunShell] runs a command with no pane\nat all."},"source":{"file":"tmux/session_run.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Run","product":"core","slug":"tmux-session-run"},{"id":"tmux.Session.Start","name":"Start","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) Start(\n\tctx context.Context,\n\tcommand string,\n\toptions RunOptions,\n) (running *Running, err error)","params":[{"name":"ctx","type":"context.Context"},{"name":"command","type":"string"},{"name":"options","type":"RunOptions"}],"receiver":{"name":"s","type":"Session"},"returns":"(running *Running, err error)"}],"doc":{"summary":"Start runs command in a new window of this session and returns once it is under way, without waiting for it to finish. The returned [Running] reports the pane it runs in and blocks on demand: [Running.Wait] waits for the exit status and screen [Session.Run] would have returned, and [Running.Kill] stops the command. Options are exactly Run's.","body":"Before tmux 3.7, Start attempts to install an output pipe running cat\nunless the pane already has a pipe; a failed attempt only forfeits that\ncompatibility help. [Running.Wait] stops a pipe Start installed once the\noutcome is read, whether or not Keep leaves the window itself in place.\n\nIf Wait is never called, the window Start created is never removed."},"source":{"file":"tmux/session_run.go","line":103,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.Start","product":"core","slug":"tmux-session-start"},{"id":"tmux.Running","name":"Running","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Running is a command started by [Session.Start]: a real process, already under way, in a pane of its own. [Running.Pane] exposes that pane so its output can be streamed with [Pane.OpenObservation] or typed into with [Pane.Writer] while the command runs; [Running.Wait] and [Running.Kill] wait for and stop it. A line printed with nothing separating it from the command's own exit can race tmux's control-mode notification of it and never reach [PaneObservation.Reader]; [RunResult.Lines] from Wait, a plain screen capture rather than that notification stream, always has it."},"source":{"file":"tmux/session_run.go","line":192,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Running","product":"core","slug":"tmux-running"},{"id":"tmux.Running.Pane","name":"Pane","kind":"method","modifiers":[],"parent":"tmux.Running","signatures":[{"raw":"func (r *Running) Pane() Pane","params":[],"receiver":{"name":"r","type":"*Running"},"returns":"Pane"}],"doc":{"summary":"Pane returns the pane the command runs in, materialized immediately after Start returned. Like any materialized record it does not refresh itself; a call after Wait or Kill may no longer describe a live pane."},"source":{"file":"tmux/session_run.go","line":218,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Running.Pane","product":"core","slug":"tmux-running-pane"},{"id":"tmux.Running.Wait","name":"Wait","kind":"method","modifiers":[],"parent":"tmux.Running","signatures":[{"raw":"func (r *Running) Wait(ctx context.Context) (RunResult, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"r","type":"*Running"},"returns":"(RunResult, error)"}],"doc":{"summary":"Wait blocks until the command exits, on tmux's own wait-for signal backed by a widening liveness check, and reports its exit status and what its terminal showed. It removes the window Start created unless [RunOptions.Keep] was set. A command whose process tmux never reaps has no outcome to report, and Wait ends with [ErrOutcomeUnrecorded] rather than the zero status that would make a failed command look successful.","body":"Wait may be called more than once and concurrently; every call observes the\nsame completion. The outcome is read once, as soon as any call sees the\ncommand end, on a context no caller's cancellation reaches, because from\nthen on it belongs to every caller. A call whose context ends first reports\nthat context and leaves the window alone; a later call gets the outcome."},"source":{"file":"tmux/session_run.go","line":234,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Running.Wait","product":"core","slug":"tmux-running-wait"},{"id":"tmux.Running.StreamTo","name":"StreamTo","kind":"method","modifiers":[],"parent":"tmux.Running","signatures":[{"raw":"func (r *Running) StreamTo(\n\tctx context.Context,\n\tdestination io.Writer,\n) (RunResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"destination","type":"io.Writer"}],"receiver":{"name":"r","type":"*Running"},"returns":"(RunResult, error)"}],"doc":{"summary":"StreamTo copies what the command prints into destination as it prints it and then reports how it ended, so following a command and collecting its outcome are one blocking call rather than a goroutine the caller writes. It returns exactly what [Running.Wait] returns and, like Wait, removes the window unless [RunOptions.Keep] was set. destination is written only by this call, so it needs no synchronization of its own, and [Running.Kill] may be called from another goroutine while it runs.","body":"The stream is what tmux pushed, which is not quite everything: output the\ncommand printed before StreamTo opened its observation may or may not be in\nit, and tmux can drop a line printed with nothing between it and the\ncommand's exit. [RunResult.Lines] is a screen capture rather than a\nnotification stream and remains the authoritative record of what the command\nshowed. Streaming needs a control client, which a [Connection]-bound value\ndoes not have, so it returns [ErrConnectionRequiresProcess] there; Wait alone\ndoes not."},"source":{"file":"tmux/session_run.go","line":540,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Running.StreamTo","product":"core","slug":"tmux-running-streamto"},{"id":"tmux.Running.Kill","name":"Kill","kind":"method","modifiers":[],"parent":"tmux.Running","signatures":[{"raw":"func (r *Running) Kill(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"r","type":"*Running"},"returns":"error"}],"doc":{"summary":"Kill asks the tmux server to send SIGKILL to the process group running the command. It does not wait for the process to stop; call Wait to observe the resulting status or signal.","body":"Kill runs through [Server.RunShell] with the pane as its target, so tmux\nresolves the process group id itself, at the moment it runs, on whatever\nhost the server is on, rather than trusting a process id this program read\nearlier. A pane that no longer exists makes that id resolve empty and Kill\na no-op; Kill reports only whether tmux could dispatch the request, not\nwhether a process still existed to receive it."},"source":{"file":"tmux/session_run.go","line":592,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Running.Kill","product":"core","slug":"tmux-running-kill"},{"id":"tmux.ErrMalformedSnapshot","name":"ErrMalformedSnapshot","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrMalformedSnapshot identifies invalid required fields in decoded rows. SnapshotDecodeError matches it through errors.Is."},"source":{"file":"tmux/snapshot.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrMalformedSnapshot","product":"core","slug":"tmux-errmalformedsnapshot"},{"id":"tmux.ErrSnapshotAmbiguous","name":"ErrSnapshotAmbiguous","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrSnapshotAmbiguous identifies a point lookup with multiple matching views. SnapshotLookupError matches it through errors.Is."},"source":{"file":"tmux/snapshot.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrSnapshotAmbiguous","product":"core","slug":"tmux-errsnapshotambiguous"},{"id":"tmux.SnapshotDecodeError","name":"SnapshotDecodeError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SnapshotDecodeError identifies one malformed decoded list row. It matches [ErrMalformedSnapshot] through errors.Is; callers can recover its redacted location fields with errors.As."},"source":{"file":"tmux/snapshot.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotDecodeError","product":"core","slug":"tmux-snapshotdecodeerror"},{"id":"tmux.SnapshotDecodeError.Object","name":"Object","kind":"attribute","modifiers":[],"parent":"tmux.SnapshotDecodeError","signatures":[],"type":"string","doc":{"summary":"Object names the tmux object whose listing contained the record."},"source":{"file":"tmux/snapshot.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotDecodeError.Object","product":"core","slug":"tmux-snapshotdecodeerror-object"},{"id":"tmux.SnapshotDecodeError.Record","name":"Record","kind":"attribute","modifiers":[],"parent":"tmux.SnapshotDecodeError","signatures":[],"type":"int","doc":{"summary":"Record is the one-based physical record number in that listing."},"source":{"file":"tmux/snapshot.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotDecodeError.Record","product":"core","slug":"tmux-snapshotdecodeerror-record"},{"id":"tmux.SnapshotDecodeError.Field","name":"Field","kind":"attribute","modifiers":[],"parent":"tmux.SnapshotDecodeError","signatures":[],"type":"string","doc":{"summary":"Field names the required format field that could not be decoded."},"source":{"file":"tmux/snapshot.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotDecodeError.Field","product":"core","slug":"tmux-snapshotdecodeerror-field"},{"id":"tmux.SnapshotDecodeError.Value","name":"Value","kind":"attribute","modifiers":[],"parent":"tmux.SnapshotDecodeError","signatures":[],"type":"string","doc":{"summary":"Value is redacted for library-created errors because snapshot fields may contain pane output, commands, paths, or other caller data."},"source":{"file":"tmux/snapshot.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotDecodeError.Value","product":"core","slug":"tmux-snapshotdecodeerror-value"},{"id":"tmux.SnapshotDecodeError.Reason","name":"Reason","kind":"attribute","modifiers":[],"parent":"tmux.SnapshotDecodeError","signatures":[],"type":"string","doc":{"summary":"Reason describes why the field was malformed."},"source":{"file":"tmux/snapshot.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotDecodeError.Reason","product":"core","slug":"tmux-snapshotdecodeerror-reason"},{"id":"tmux.SnapshotDecodeError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.SnapshotDecodeError","signatures":[{"raw":"func (e *SnapshotDecodeError) Error() string","params":[],"receiver":{"name":"e","type":"*SnapshotDecodeError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/snapshot.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotDecodeError.Error","product":"core","slug":"tmux-snapshotdecodeerror-error"},{"id":"tmux.SnapshotDecodeError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.SnapshotDecodeError","signatures":[{"raw":"func (e *SnapshotDecodeError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*SnapshotDecodeError"},"returns":"error"}],"doc":{"summary":"Unwrap makes SnapshotDecodeError compatible with ErrMalformedSnapshot."},"source":{"file":"tmux/snapshot.go","line":51,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotDecodeError.Unwrap","product":"core","slug":"tmux-snapshotdecodeerror-unwrap"},{"id":"tmux.SnapshotLookupError","name":"SnapshotLookupError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SnapshotLookupError reports the cardinality of an unsuccessful point lookup. It matches [ErrNotFound] or [ErrSnapshotAmbiguous] through errors.Is; callers can recover its target and count with errors.As."},"source":{"file":"tmux/snapshot.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotLookupError","product":"core","slug":"tmux-snapshotlookuperror"},{"id":"tmux.SnapshotLookupError.Object","name":"Object","kind":"attribute","modifiers":[],"parent":"tmux.SnapshotLookupError","signatures":[],"type":"string","doc":{"summary":"Object names the requested snapshot object kind."},"source":{"file":"tmux/snapshot.go","line":58,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotLookupError.Object","product":"core","slug":"tmux-snapshotlookuperror-object"},{"id":"tmux.SnapshotLookupError.Identifier","name":"Identifier","kind":"attribute","modifiers":[],"parent":"tmux.SnapshotLookupError","signatures":[],"type":"string","doc":{"summary":"Identifier is the requested stable identifier."},"source":{"file":"tmux/snapshot.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotLookupError.Identifier","product":"core","slug":"tmux-snapshotlookuperror-identifier"},{"id":"tmux.SnapshotLookupError.Matches","name":"Matches","kind":"attribute","modifiers":[],"parent":"tmux.SnapshotLookupError","signatures":[],"type":"int","doc":{"summary":"Matches is the number of matching materialized views."},"source":{"file":"tmux/snapshot.go","line":62,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotLookupError.Matches","product":"core","slug":"tmux-snapshotlookuperror-matches"},{"id":"tmux.SnapshotLookupError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.SnapshotLookupError","signatures":[{"raw":"func (e *SnapshotLookupError) Error() string","params":[],"receiver":{"name":"e","type":"*SnapshotLookupError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/snapshot.go","line":66,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotLookupError.Error","product":"core","slug":"tmux-snapshotlookuperror-error"},{"id":"tmux.SnapshotLookupError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.SnapshotLookupError","signatures":[{"raw":"func (e *SnapshotLookupError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*SnapshotLookupError"},"returns":"error"}],"doc":{"summary":"Unwrap classifies the failed lookup by cardinality."},"source":{"file":"tmux/snapshot.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SnapshotLookupError.Unwrap","product":"core","slug":"tmux-snapshotlookuperror-unwrap"},{"id":"tmux.Snapshot","name":"Snapshot","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Snapshot is an immutable, observational view of one tmux server. It is normally returned by [Server.Snapshot]. Its zero value has a zero [Version], a zero [Server], non-nil empty collection slices, and not-found point lookups. Accessors never query tmux; returned slices are newly allocated and their contained records are shallow copies."},"source":{"file":"tmux/snapshot.go","line":92,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot","product":"core","slug":"tmux-snapshot"},{"id":"tmux.Snapshot.Version","name":"Version","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) Version() Version","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"Version"}],"doc":{"summary":"Version returns the tmux version that selected this snapshot's format fields. The zero Snapshot returns a zero Version."},"source":{"file":"tmux/snapshot.go","line":148,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.Version","product":"core","slug":"tmux-snapshot-version"},{"id":"tmux.Snapshot.Server","name":"Server","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) Server() Server","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"Server"}],"doc":{"summary":"Server returns the configured handle that produced this snapshot. The zero Snapshot returns a zero Server."},"source":{"file":"tmux/snapshot.go","line":157,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.Server","product":"core","slug":"tmux-snapshot-server"},{"id":"tmux.Snapshot.Sessions","name":"Sessions","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) Sessions() []Session","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"[]Session"}],"doc":{"summary":"Sessions returns a newly allocated shallow copy of materialized sessions. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":166,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.Sessions","product":"core","slug":"tmux-snapshot-sessions"},{"id":"tmux.Snapshot.Windows","name":"Windows","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) Windows() []Window","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"[]Window"}],"doc":{"summary":"Windows returns a newly allocated shallow copy with one view per winlink. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":175,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.Windows","product":"core","slug":"tmux-snapshot-windows"},{"id":"tmux.Snapshot.Panes","name":"Panes","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) Panes() []Pane","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"[]Pane"}],"doc":{"summary":"Panes returns a newly allocated shallow copy of pane views for every winlink. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":184,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.Panes","product":"core","slug":"tmux-snapshot-panes"},{"id":"tmux.Snapshot.Clients","name":"Clients","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) Clients() []Client","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"[]Client"}],"doc":{"summary":"Clients returns a newly allocated shallow copy of materialized clients. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":193,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.Clients","product":"core","slug":"tmux-snapshot-clients"},{"id":"tmux.Snapshot.SessionsSeq","name":"SessionsSeq","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) SessionsSeq() iter.Seq[Session]","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"iter.Seq[Session]"}],"doc":{"summary":"SessionsSeq returns an iterator over materialized session values. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":202,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.SessionsSeq","product":"core","slug":"tmux-snapshot-sessionsseq"},{"id":"tmux.Snapshot.WindowsSeq","name":"WindowsSeq","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) WindowsSeq() iter.Seq[Window]","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"iter.Seq[Window]"}],"doc":{"summary":"WindowsSeq returns an iterator over materialized winlink values. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":211,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.WindowsSeq","product":"core","slug":"tmux-snapshot-windowsseq"},{"id":"tmux.Snapshot.PanesSeq","name":"PanesSeq","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) PanesSeq() iter.Seq[Pane]","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"iter.Seq[Pane]"}],"doc":{"summary":"PanesSeq returns an iterator over materialized pane-view values. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":220,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.PanesSeq","product":"core","slug":"tmux-snapshot-panesseq"},{"id":"tmux.Snapshot.ClientsSeq","name":"ClientsSeq","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) ClientsSeq() iter.Seq[Client]","params":[],"receiver":{"name":"s","type":"Snapshot"},"returns":"iter.Seq[Client]"}],"doc":{"summary":"ClientsSeq returns an iterator over materialized client values. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":229,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.ClientsSeq","product":"core","slug":"tmux-snapshot-clientsseq"},{"id":"tmux.Snapshot.SessionByID","name":"SessionByID","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) SessionByID(id SessionID) (Session, error)","params":[{"name":"id","type":"SessionID"}],"receiver":{"name":"s","type":"Snapshot"},"returns":"(Session, error)"}],"doc":{"summary":"SessionByID returns the sole session view with id. It never queries tmux and returns a [SnapshotLookupError] matching [ErrNotFound] otherwise."},"source":{"file":"tmux/snapshot.go","line":238,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.SessionByID","product":"core","slug":"tmux-snapshot-sessionbyid"},{"id":"tmux.Snapshot.WindowByID","name":"WindowByID","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) WindowByID(id WindowID) (Window, error)","params":[{"name":"id","type":"WindowID"}],"receiver":{"name":"s","type":"Snapshot"},"returns":"(Window, error)"}],"doc":{"summary":"WindowByID returns the sole winlink view with id. Linked sessions can make an ID ambiguous, so it can return a [SnapshotLookupError] matching [ErrSnapshotAmbiguous]. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":248,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.WindowByID","product":"core","slug":"tmux-snapshot-windowbyid"},{"id":"tmux.Snapshot.WindowsByID","name":"WindowsByID","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) WindowsByID(id WindowID) []Window","params":[{"name":"id","type":"WindowID"}],"receiver":{"name":"s","type":"Snapshot"},"returns":"[]Window"}],"doc":{"summary":"WindowsByID returns newly allocated shallow copies of every winlink view with id. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":257,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.WindowsByID","product":"core","slug":"tmux-snapshot-windowsbyid"},{"id":"tmux.Snapshot.PaneByID","name":"PaneByID","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) PaneByID(id PaneID) (Pane, error)","params":[{"name":"id","type":"PaneID"}],"receiver":{"name":"s","type":"Snapshot"},"returns":"(Pane, error)"}],"doc":{"summary":"PaneByID returns the sole pane view with id. Linked-session views can make an ID ambiguous, so it can return a [SnapshotLookupError] matching [ErrSnapshotAmbiguous]. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":267,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.PaneByID","product":"core","slug":"tmux-snapshot-panebyid"},{"id":"tmux.Snapshot.PanesByID","name":"PanesByID","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) PanesByID(id PaneID) []Pane","params":[{"name":"id","type":"PaneID"}],"receiver":{"name":"s","type":"Snapshot"},"returns":"[]Pane"}],"doc":{"summary":"PanesByID returns newly allocated shallow copies of every pane view with id. It never queries tmux."},"source":{"file":"tmux/snapshot.go","line":276,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.PanesByID","product":"core","slug":"tmux-snapshot-panesbyid"},{"id":"tmux.Snapshot.ClientByName","name":"ClientByName","kind":"method","modifiers":[],"parent":"tmux.Snapshot","signatures":[{"raw":"func (s Snapshot) ClientByName(name ClientName) (Client, error)","params":[{"name":"name","type":"ClientName"}],"receiver":{"name":"s","type":"Snapshot"},"returns":"(Client, error)"}],"doc":{"summary":"ClientByName returns the sole client view with name. It never queries tmux and returns a [SnapshotLookupError] matching [ErrNotFound] or [ErrSnapshotAmbiguous] when cardinality is not one."},"source":{"file":"tmux/snapshot.go","line":286,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Snapshot.ClientByName","product":"core","slug":"tmux-snapshot-clientbyname"},{"id":"tmux.Server.Snapshot","name":"Snapshot","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) Snapshot(ctx context.Context) (Snapshot, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"s","type":"Server"},"returns":"(Snapshot, error)"}],"doc":{"summary":"Snapshot materializes sessions, winlinks, panes, and clients. Its sequential commands produce an observationally consistent result, not an atomic transaction. Failures remain errors rather than empty snapshots; cancellation may occur after earlier listings completed.","body":"Identity probes reject a daemon replacement during subprocess collection.\nA connection is already bound to the exact daemon and skips the closing\nprobe; the opening probe still selects version-specific fields."},"source":{"file":"tmux/snapshot_capture.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.Snapshot","product":"core","slug":"tmux-server-snapshot"},{"id":"tmux.SocketSelection","name":"SocketSelection","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SocketSelection describes the Unix filesystem endpoint selected by a [Server]. It does not report whether a server is listening there or whether tmux would accept the named-socket directory's ownership and permissions."},"source":{"file":"tmux/socket_selection.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SocketSelection","product":"core","slug":"tmux-socketselection"},{"id":"tmux.SocketSelection.Path","name":"Path","kind":"attribute","modifiers":[],"parent":"tmux.SocketSelection","signatures":[],"type":"string","doc":{"summary":"Path is the absolute path selected by the frozen socket options, environment, and working directory."},"source":{"file":"tmux/socket_selection.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SocketSelection.Path","product":"core","slug":"tmux-socketselection-path"},{"id":"tmux.SocketSelection.NamedDirectory","name":"NamedDirectory","kind":"attribute","modifiers":[],"parent":"tmux.SocketSelection","signatures":[],"type":"string","doc":{"summary":"NamedDirectory is the directory tmux uses for named and default sockets. It can differ from Path's directory when -S or TMUX selects another path."},"source":{"file":"tmux/socket_selection.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SocketSelection.NamedDirectory","product":"core","slug":"tmux-socketselection-nameddirectory"},{"id":"tmux.Server.SocketSelection","name":"SocketSelection","kind":"method","modifiers":[],"parent":"tmux.Server","signatures":[{"raw":"func (s Server) SocketSelection() (SocketSelection, error)","params":[],"receiver":{"name":"s","type":"Server"},"returns":"(SocketSelection, error)"}],"doc":{"summary":"SocketSelection returns tmux's -S, -L, TMUX, and default-socket precedence snapshotted by [NewServer]. It does not start tmux or require the selected socket to exist."},"source":{"file":"tmux/socket_selection.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Server.SocketSelection","product":"core","slug":"tmux-server-socketselection"},{"id":"tmux.ErrInvalidSparseIndex","name":"ErrInvalidSparseIndex","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidSparseIndex identifies a negative or overflowing sparse index."},"source":{"file":"tmux/sparse_array.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidSparseIndex","product":"core","slug":"tmux-errinvalidsparseindex"},{"id":"tmux.ErrDuplicateSparseIndex","name":"ErrDuplicateSparseIndex","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrDuplicateSparseIndex identifies repeated constructor indices."},"source":{"file":"tmux/sparse_array.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrDuplicateSparseIndex","product":"core","slug":"tmux-errduplicatesparseindex"},{"id":"tmux.SparseEntry","name":"SparseEntry","kind":"struct","modifiers":[],"signatures":[],"typeParams":["T any"],"typeParameters":[{"name":"T","bound":"any"}],"doc":{"summary":"SparseEntry is one indexed [SparseArray] value."},"source":{"file":"tmux/sparse_array.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseEntry","product":"core","slug":"tmux-sparseentry"},{"id":"tmux.SparseEntry.Index","name":"Index","kind":"attribute","modifiers":[],"parent":"tmux.SparseEntry","signatures":[],"type":"int","doc":{"summary":"Index is the nonnegative sparse-array index."},"source":{"file":"tmux/sparse_array.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseEntry.Index","product":"core","slug":"tmux-sparseentry-index"},{"id":"tmux.SparseEntry.Value","name":"Value","kind":"attribute","modifiers":[],"parent":"tmux.SparseEntry","signatures":[],"type":"T","doc":{"summary":"Value is the value stored at Index."},"source":{"file":"tmux/sparse_array.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseEntry.Value","product":"core","slug":"tmux-sparseentry-value"},{"id":"tmux.SparseArray","name":"SparseArray","kind":"struct","modifiers":[],"signatures":[],"typeParams":["T any"],"typeParameters":[{"name":"T","bound":"any"}],"doc":{"summary":"SparseArray stores values at sorted, nonnegative indices. Its zero value is an empty array. Constructors and functional updates own their entry slices; copies of reference-bearing T values remain shallow."},"source":{"file":"tmux/sparse_array.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseArray","product":"core","slug":"tmux-sparsearray"},{"id":"tmux.NewSparseArray","name":"NewSparseArray","kind":"function","modifiers":[],"signatures":[{"raw":"func NewSparseArray[T any](entries ...SparseEntry[T]) (SparseArray[T], error)","params":[{"name":"entries","type":"SparseEntry[T]","variadic":"positional"}],"returns":"(SparseArray[T], error)","typeParams":["T any"],"typeParameters":[{"name":"T","bound":"any"}]}],"doc":{"summary":"NewSparseArray builds an array from entries, sorting them by index. It returns errors matching [ErrInvalidSparseIndex] or [ErrDuplicateSparseIndex] for negative, overflowing, or duplicate indices."},"source":{"file":"tmux/sparse_array.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewSparseArray","product":"core","slug":"tmux-newsparsearray"},{"id":"tmux.SparseArray.Get","name":"Get","kind":"method","modifiers":[],"parent":"tmux.SparseArray","signatures":[{"raw":"func (a SparseArray[T]) Get(index int) (T, bool)","params":[{"name":"index","type":"int"}],"receiver":{"name":"a","type":"SparseArray[T]"},"returns":"(T, bool)"}],"doc":{"summary":"Get returns the value at index and reports whether it is present. A missing index, including a sparse hole, returns the zero value and false."},"source":{"file":"tmux/sparse_array.go","line":66,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseArray.Get","product":"core","slug":"tmux-sparsearray-get"},{"id":"tmux.SparseArray.Len","name":"Len","kind":"method","modifiers":[],"parent":"tmux.SparseArray","signatures":[{"raw":"func (a SparseArray[T]) Len() int","params":[],"receiver":{"name":"a","type":"SparseArray[T]"},"returns":"int"}],"doc":{"summary":"Len returns the number of present entries, not the highest index."},"source":{"file":"tmux/sparse_array.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseArray.Len","product":"core","slug":"tmux-sparsearray-len"},{"id":"tmux.SparseArray.Indices","name":"Indices","kind":"method","modifiers":[],"parent":"tmux.SparseArray","signatures":[{"raw":"func (a SparseArray[T]) Indices() []int","params":[],"receiver":{"name":"a","type":"SparseArray[T]"},"returns":"[]int"}],"doc":{"summary":"Indices returns a fresh slice of present indices in ascending order."},"source":{"file":"tmux/sparse_array.go","line":81,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseArray.Indices","product":"core","slug":"tmux-sparsearray-indices"},{"id":"tmux.SparseArray.Entries","name":"Entries","kind":"method","modifiers":[],"parent":"tmux.SparseArray","signatures":[{"raw":"func (a SparseArray[T]) Entries() []SparseEntry[T]","params":[],"receiver":{"name":"a","type":"SparseArray[T]"},"returns":"[]SparseEntry[T]"}],"doc":{"summary":"Entries returns a fresh shallow copy in ascending index order."},"source":{"file":"tmux/sparse_array.go","line":90,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseArray.Entries","product":"core","slug":"tmux-sparsearray-entries"},{"id":"tmux.SparseArray.Values","name":"Values","kind":"method","modifiers":[],"parent":"tmux.SparseArray","signatures":[{"raw":"func (a SparseArray[T]) Values() []T","params":[],"receiver":{"name":"a","type":"SparseArray[T]"},"returns":"[]T"}],"doc":{"summary":"Values returns a fresh shallow slice in ascending index order."},"source":{"file":"tmux/sparse_array.go","line":95,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseArray.Values","product":"core","slug":"tmux-sparsearray-values"},{"id":"tmux.SparseArray.All","name":"All","kind":"method","modifiers":[],"parent":"tmux.SparseArray","signatures":[{"raw":"func (a SparseArray[T]) All() iter.Seq2[int, T]","params":[],"receiver":{"name":"a","type":"SparseArray[T]"},"returns":"iter.Seq2[int, T]"}],"doc":{"summary":"All returns an iterator over indices and values in ascending index order."},"source":{"file":"tmux/sparse_array.go","line":104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseArray.All","product":"core","slug":"tmux-sparsearray-all"},{"id":"tmux.SparseArray.With","name":"With","kind":"method","modifiers":[],"parent":"tmux.SparseArray","signatures":[{"raw":"func (a SparseArray[T]) With(index int, value T) (SparseArray[T], error)","params":[{"name":"index","type":"int"},{"name":"value","type":"T"}],"receiver":{"name":"a","type":"SparseArray[T]"},"returns":"(SparseArray[T], error)"}],"doc":{"summary":"With returns a copy with value inserted or replaced at index. It leaves the receiver unchanged and returns an error matching [ErrInvalidSparseIndex] for a negative index."},"source":{"file":"tmux/sparse_array.go","line":117,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseArray.With","product":"core","slug":"tmux-sparsearray-with"},{"id":"tmux.SparseArray.Append","name":"Append","kind":"method","modifiers":[],"parent":"tmux.SparseArray","signatures":[{"raw":"func (a SparseArray[T]) Append(value T) (SparseArray[T], error)","params":[{"name":"value","type":"T"}],"receiver":{"name":"a","type":"SparseArray[T]"},"returns":"(SparseArray[T], error)"}],"doc":{"summary":"Append returns a copy with value stored after the highest present index. It leaves the receiver unchanged and returns an error matching [ErrInvalidSparseIndex] when that index overflows."},"source":{"file":"tmux/sparse_array.go","line":136,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SparseArray.Append","product":"core","slug":"tmux-sparsearray-append"},{"id":"tmux.ErrMissingTarget","name":"ErrMissingTarget","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrMissingTarget identifies an operation on a zero-value model identity."},"source":{"file":"tmux/target.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrMissingTarget","product":"core","slug":"tmux-errmissingtarget"},{"id":"tmux.ErrInvalidTarget","name":"ErrInvalidTarget","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidTarget identifies a malformed stable tmux identifier. It is matched by errors.Is for TargetError."},"source":{"file":"tmux/target.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidTarget","product":"core","slug":"tmux-errinvalidtarget"},{"id":"tmux.TargetError","name":"TargetError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"TargetError reports a malformed stable identifier before command execution. It matches [ErrInvalidTarget] through errors.Is; callers can recover Object and Target with errors.As."},"source":{"file":"tmux/target.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TargetError","product":"core","slug":"tmux-targeterror"},{"id":"tmux.TargetError.Object","name":"Object","kind":"attribute","modifiers":[],"parent":"tmux.TargetError","signatures":[],"type":"string","doc":{"summary":"Object names the tmux object kind whose target was validated."},"source":{"file":"tmux/target.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TargetError.Object","product":"core","slug":"tmux-targeterror-object"},{"id":"tmux.TargetError.Target","name":"Target","kind":"attribute","modifiers":[],"parent":"tmux.TargetError","signatures":[],"type":"string","doc":{"summary":"Target is the submitted target text."},"source":{"file":"tmux/target.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TargetError.Target","product":"core","slug":"tmux-targeterror-target"},{"id":"tmux.TargetError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.TargetError","signatures":[{"raw":"func (e *TargetError) Error() string","params":[],"receiver":{"name":"e","type":"*TargetError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/target.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TargetError.Error","product":"core","slug":"tmux-targeterror-error"},{"id":"tmux.TargetError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.TargetError","signatures":[{"raw":"func (e *TargetError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*TargetError"},"returns":"error"}],"doc":{"summary":"Unwrap makes TargetError compatible with ErrInvalidTarget."},"source":{"file":"tmux/target.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.TargetError.Unwrap","product":"core","slug":"tmux-targeterror-unwrap"},{"id":"tmux.MissingTargetError","name":"MissingTargetError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"MissingTargetError reports an operation attempted on a zero-value model identity. It matches [ErrMissingTarget] through errors.Is; callers can recover Object with errors.As.","body":"A relation accessor such as [Session.ActiveWindow] or [Session.Windows]\nreturns ok false rather than a value with no id, and a creation call such\nas [Server.NewSession] carries no relations at all - so using a discarded\nor freshly created value's zero-value fields reaches this error on the\nfirst operation. Resolve live state with a Resolve* method or a fresh\n[Server.Snapshot] instead."},"source":{"file":"tmux/target.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MissingTargetError","product":"core","slug":"tmux-missingtargeterror"},{"id":"tmux.MissingTargetError.Object","name":"Object","kind":"attribute","modifiers":[],"parent":"tmux.MissingTargetError","signatures":[],"type":"string","doc":{"summary":"Object names the tmux object kind with no id: \"session\", \"window\", \"pane\", or \"client\"."},"source":{"file":"tmux/target.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MissingTargetError.Object","product":"core","slug":"tmux-missingtargeterror-object"},{"id":"tmux.MissingTargetError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.MissingTargetError","signatures":[{"raw":"func (e *MissingTargetError) Error() string","params":[],"receiver":{"name":"e","type":"*MissingTargetError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/target.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MissingTargetError.Error","product":"core","slug":"tmux-missingtargeterror-error"},{"id":"tmux.MissingTargetError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.MissingTargetError","signatures":[{"raw":"func (e *MissingTargetError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*MissingTargetError"},"returns":"error"}],"doc":{"summary":"Unwrap makes MissingTargetError compatible with ErrMissingTarget."},"source":{"file":"tmux/target.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MissingTargetError.Unwrap","product":"core","slug":"tmux-missingtargeterror-unwrap"},{"id":"tmux.MinimumSupportedVersion","name":"MinimumSupportedVersion","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"MinimumSupportedVersion is the oldest tmux feature level supported by this package."},"source":{"file":"tmux/version.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MinimumSupportedVersion","product":"core","slug":"tmux-minimumsupportedversion"},{"id":"tmux.MinimumConnectionVersion","name":"MinimumConnectionVersion","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"MinimumConnectionVersion is the oldest tmux feature level that supports terminal Connection ownership. Later releases may strengthen individual lifecycle guarantees without changing this floor."},"source":{"file":"tmux/version.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MinimumConnectionVersion","product":"core","slug":"tmux-minimumconnectionversion"},{"id":"tmux.MaximumTestedVersion","name":"MaximumTestedVersion","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"MaximumTestedVersion is the newest numbered tmux feature level covered by this package's tests. The matrix also runs 3.8-rc2, which is a release candidate rather than a numbered feature level, so it does not raise this."},"source":{"file":"tmux/version.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MaximumTestedVersion","product":"core","slug":"tmux-maximumtestedversion"},{"id":"tmux.ErrInvalidVersion","name":"ErrInvalidVersion","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidVersion identifies malformed tmux version tokens. It is matched by errors.Is for VersionError."},"source":{"file":"tmux/version.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ErrInvalidVersion","product":"core","slug":"tmux-errinvalidversion"},{"id":"tmux.VersionError","name":"VersionError","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"VersionError reports a tmux version token that cannot be parsed. It matches [ErrInvalidVersion] through errors.Is; callers can recover Token with errors.As."},"source":{"file":"tmux/version.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionError","product":"core","slug":"tmux-versionerror"},{"id":"tmux.VersionError.Token","name":"Token","kind":"attribute","modifiers":[],"parent":"tmux.VersionError","signatures":[],"type":"string","doc":{"summary":"Token is the rejected tmux version text."},"source":{"file":"tmux/version.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionError.Token","product":"core","slug":"tmux-versionerror-token"},{"id":"tmux.VersionError.Error","name":"Error","kind":"method","modifiers":[],"parent":"tmux.VersionError","signatures":[{"raw":"func (e *VersionError) Error() string","params":[],"receiver":{"name":"e","type":"*VersionError"},"returns":"string"}],"doc":{"summary":"Error implements error."},"source":{"file":"tmux/version.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionError.Error","product":"core","slug":"tmux-versionerror-error"},{"id":"tmux.VersionError.Unwrap","name":"Unwrap","kind":"method","modifiers":[],"parent":"tmux.VersionError","signatures":[{"raw":"func (e *VersionError) Unwrap() error","params":[],"receiver":{"name":"e","type":"*VersionError"},"returns":"error"}],"doc":{"summary":"Unwrap makes VersionError compatible with ErrInvalidVersion."},"source":{"file":"tmux/version.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.VersionError.Unwrap","product":"core","slug":"tmux-versionerror-unwrap"},{"id":"tmux.Version","name":"Version","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Version is a parsed tmux version that preserves its original token. Obtain a value with [ParseVersion], [Server.Version], or [Snapshot.Version]. Its zero value has no feature level and is useful only as an absent version. Parsed OpenBSD base-system tokens also have no feature level until [Server.Version] probes the configured binary's commands."},"source":{"file":"tmux/version.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Version","product":"core","slug":"tmux-version"},{"id":"tmux.ParseVersion","name":"ParseVersion","kind":"function","modifiers":[],"signatures":[{"raw":"func ParseVersion(raw string) (Version, error)","params":[{"name":"raw","type":"string"}],"returns":"(Version, error)"}],"doc":{"summary":"ParseVersion parses a raw tmux version token. It returns a [VersionError] matching [ErrInvalidVersion] when the token cannot be parsed."},"source":{"file":"tmux/version.go","line":73,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ParseVersion","product":"core","slug":"tmux-parseversion"},{"id":"tmux.Version.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.Version","signatures":[{"raw":"func (v Version) String() string","params":[],"receiver":{"name":"v","type":"Version"},"returns":"string"}],"doc":{"summary":"String returns the original tmux version token."},"source":{"file":"tmux/version.go","line":144,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Version.String","product":"core","slug":"tmux-version-string"},{"id":"tmux.Version.Major","name":"Major","kind":"method","modifiers":[],"parent":"tmux.Version","signatures":[{"raw":"func (v Version) Major() int","params":[],"receiver":{"name":"v","type":"Version"},"returns":"int"}],"doc":{"summary":"Major returns the capability-level major component. Development tokens use the latest tested feature core. Unprobed OpenBSD base-system tokens return zero."},"source":{"file":"tmux/version.go","line":151,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Version.Major","product":"core","slug":"tmux-version-major"},{"id":"tmux.Version.Minor","name":"Minor","kind":"method","modifiers":[],"parent":"tmux.Version","signatures":[{"raw":"func (v Version) Minor() int","params":[],"receiver":{"name":"v","type":"Version"},"returns":"int"}],"doc":{"summary":"Minor returns the capability-level minor component, or zero when absent. Development tokens use the latest tested feature core. Unprobed OpenBSD base-system tokens return zero."},"source":{"file":"tmux/version.go","line":158,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Version.Minor","product":"core","slug":"tmux-version-minor"},{"id":"tmux.Version.Patch","name":"Patch","kind":"method","modifiers":[],"parent":"tmux.Version","signatures":[{"raw":"func (v Version) Patch() int","params":[],"receiver":{"name":"v","type":"Version"},"returns":"int"}],"doc":{"summary":"Patch returns the capability-level patch component, or zero when absent."},"source":{"file":"tmux/version.go","line":163,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Version.Patch","product":"core","slug":"tmux-version-patch"},{"id":"tmux.Version.Compare","name":"Compare","kind":"method","modifiers":[],"parent":"tmux.Version","signatures":[{"raw":"func (v Version) Compare(other Version) int","params":[{"name":"other","type":"Version"}],"receiver":{"name":"v","type":"Version"},"returns":"int"}],"doc":{"summary":"Compare compares numeric feature levels and returns -1, 0, or 1. Release qualifiers other than master do not change the feature level."},"source":{"file":"tmux/version.go","line":169,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Version.Compare","product":"core","slug":"tmux-version-compare"},{"id":"tmux.Version.CompareRelease","name":"CompareRelease","kind":"method","modifiers":[],"parent":"tmux.Version","signatures":[{"raw":"func (v Version) CompareRelease(other Version) int","params":[{"name":"other","type":"Version"}],"receiver":{"name":"v","type":"Version"},"returns":"int"}],"doc":{"summary":"CompareRelease compares raw release suffixes using libtmux's legacy order. Use Compare for feature gates, where point-release suffixes intentionally share one capability level."},"source":{"file":"tmux/version.go","line":186,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Version.CompareRelease","product":"core","slug":"tmux-version-comparerelease"},{"id":"tmux.Version.AtLeast","name":"AtLeast","kind":"method","modifiers":[],"parent":"tmux.Version","signatures":[{"raw":"func (v Version) AtLeast(minimum Version) bool","params":[{"name":"minimum","type":"Version"}],"receiver":{"name":"v","type":"Version"},"returns":"bool"}],"doc":{"summary":"AtLeast reports whether v provides the same or a newer feature level."},"source":{"file":"tmux/version.go","line":242,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Version.AtLeast","product":"core","slug":"tmux-version-atleast"},{"id":"tmux.UnsupportedPolicy","name":"UnsupportedPolicy","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"UnsupportedPolicy selects what a request does when it needs an optional tmux capability the running server does not have.","body":"The default refuses because dropping a flag can change behavior while still\nreturning success.\n\nChoose degradation only when omission is acceptable:\n\n```go\nserver, err := tmux.NewServer(tmux.ServerOptions{\n\tUnsupported: tmux.DegradeUnsupported,\n\tWarningHandler: func(w tmux.Warning) { log.Printf(\"tmux: %s\", w) },\n})\nif err != nil {\n\tlog.Fatal(err)\n}\n```\n\nSet [ServerOptions.WarningHandler] alongside it to observe omissions."},"source":{"file":"tmux/warning.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnsupportedPolicy","product":"core","slug":"tmux-unsupportedpolicy"},{"id":"tmux.FailUnsupported","name":"FailUnsupported","kind":"constant","modifiers":[],"signatures":[],"type":"UnsupportedPolicy","doc":{"summary":"FailUnsupported refuses a request naming a capability the running tmux does not have, with a VersionTooLowError naming the subcommand and the capability. It is the zero value."},"source":{"file":"tmux/warning.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.FailUnsupported","product":"core","slug":"tmux-failunsupported"},{"id":"tmux.DegradeUnsupported","name":"DegradeUnsupported","kind":"constant","modifiers":[],"signatures":[],"type":"UnsupportedPolicy","doc":{"summary":"DegradeUnsupported omits the capability, runs the reduced command, and reports the decision to ServerOptions.WarningHandler as a WarningUnsupportedFeature."},"source":{"file":"tmux/warning.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.DegradeUnsupported","product":"core","slug":"tmux-degradeunsupported"},{"id":"tmux.UnsupportedPolicy.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.UnsupportedPolicy","signatures":[{"raw":"func (p UnsupportedPolicy) String() string","params":[],"receiver":{"name":"p","type":"UnsupportedPolicy"},"returns":"string"}],"doc":{"summary":"String implements fmt.Stringer."},"source":{"file":"tmux/warning.go","line":40,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnsupportedPolicy.String","product":"core","slug":"tmux-unsupportedpolicy-string"},{"id":"tmux.WarningKind","name":"WarningKind","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WarningKind identifies one closed class of nonfatal library warning."},"source":{"file":"tmux/warning.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WarningKind","product":"core","slug":"tmux-warningkind"},{"id":"tmux.WarningUnsupportedFeature","name":"WarningUnsupportedFeature","kind":"constant","modifiers":[],"signatures":[],"type":"WarningKind","doc":{"summary":"WarningUnsupportedFeature reports a requested feature omitted because the connected tmux binary is too old."},"source":{"file":"tmux/warning.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WarningUnsupportedFeature","product":"core","slug":"tmux-warningunsupportedfeature"},{"id":"tmux.WarningCommandStderr","name":"WarningCommandStderr","kind":"constant","modifiers":[],"signatures":[],"type":"WarningKind","doc":{"summary":"WarningCommandStderr reports stderr from a completed command whose Python API treats the diagnostic as nonfatal."},"source":{"file":"tmux/warning.go","line":60,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WarningCommandStderr","product":"core","slug":"tmux-warningcommandstderr"},{"id":"tmux.Warning","name":"Warning","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Warning describes one nonfatal compatibility decision delivered to a [WarningHandler]."},"source":{"file":"tmux/warning.go","line":65,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Warning","product":"core","slug":"tmux-warning"},{"id":"tmux.Warning.Kind","name":"Kind","kind":"attribute","modifiers":[],"parent":"tmux.Warning","signatures":[],"type":"WarningKind","doc":{"summary":"Kind classifies the compatibility decision."},"source":{"file":"tmux/warning.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Warning.Kind","product":"core","slug":"tmux-warning-kind"},{"id":"tmux.Warning.Subcommand","name":"Subcommand","kind":"attribute","modifiers":[],"parent":"tmux.Warning","signatures":[],"type":"string","doc":{"summary":"Subcommand names the tmux subcommand affected by the decision."},"source":{"file":"tmux/warning.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Warning.Subcommand","product":"core","slug":"tmux-warning-subcommand"},{"id":"tmux.Warning.Feature","name":"Feature","kind":"attribute","modifiers":[],"parent":"tmux.Warning","signatures":[],"type":"string","doc":{"summary":"Feature names the optional tmux capability involved."},"source":{"file":"tmux/warning.go","line":71,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Warning.Feature","product":"core","slug":"tmux-warning-feature"},{"id":"tmux.Warning.CurrentVersion","name":"CurrentVersion","kind":"attribute","modifiers":[],"parent":"tmux.Warning","signatures":[],"type":"Version","doc":{"summary":"CurrentVersion is the observed tmux version."},"source":{"file":"tmux/warning.go","line":73,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Warning.CurrentVersion","product":"core","slug":"tmux-warning-currentversion"},{"id":"tmux.Warning.RequiredVersion","name":"RequiredVersion","kind":"attribute","modifiers":[],"parent":"tmux.Warning","signatures":[],"type":"Version","doc":{"summary":"RequiredVersion is the minimum tmux version for Feature."},"source":{"file":"tmux/warning.go","line":75,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Warning.RequiredVersion","product":"core","slug":"tmux-warning-requiredversion"},{"id":"tmux.Warning.Message","name":"Message","kind":"attribute","modifiers":[],"parent":"tmux.Warning","signatures":[],"type":"string","doc":{"summary":"Message describes the nonfatal compatibility decision."},"source":{"file":"tmux/warning.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Warning.Message","product":"core","slug":"tmux-warning-message"},{"id":"tmux.WarningHandler","name":"WarningHandler","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WarningHandler receives warnings synchronously on the caller goroutine:","body":"```go\nserver, err := tmux.NewServer(tmux.ServerOptions{\n\tWarningHandler: func(warning tmux.Warning) {\n\t\tlog.Printf(\"tmux: %s\", warning.Message)\n\t},\n})\nif err != nil {\n\tlog.Fatal(err)\n}\n```\n\nOperations may invoke it concurrently; synchronize shared state. Diagnostics\nmay contain caller-supplied arguments and are delivered only to this handler."},"source":{"file":"tmux/warning.go","line":93,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WarningHandler","product":"core","slug":"tmux-warninghandler"},{"id":"tmux.Warning.String","name":"String","kind":"method","modifiers":[],"parent":"tmux.Warning","signatures":[{"raw":"func (w Warning) String() string","params":[],"receiver":{"name":"w","type":"Warning"},"returns":"string"}],"doc":{"summary":"String implements fmt.Stringer by returning Message."},"source":{"file":"tmux/warning.go","line":96,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Warning.String","product":"core","slug":"tmux-warning-string"},{"id":"tmux.SelectLayoutRequest","name":"SelectLayoutRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SelectLayoutRequest selects one layout operation. Its zero value reapplies the last preset layout. Layout, Spread, Next, and Previous are mutually exclusive and are validated before execution; an empty Layout is omitted rather than passed explicitly. The request contains no retained caller-owned storage and is supported on tmux 3.2a or later."},"source":{"file":"tmux/window_layout.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SelectLayoutRequest","product":"core","slug":"tmux-selectlayoutrequest"},{"id":"tmux.SelectLayoutRequest.Layout","name":"Layout","kind":"attribute","modifiers":[],"parent":"tmux.SelectLayoutRequest","signatures":[],"type":"string","doc":{"summary":"Layout names a preset or supplies a tmux layout string - either the classic checksum-prefixed grammar every supported version accepts, or the JSON shape tmux 3.8+ also accepts, exactly as #{window_layout} reported it; empty selects the zero-value behavior."},"source":{"file":"tmux/window_layout.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SelectLayoutRequest.Layout","product":"core","slug":"tmux-selectlayoutrequest-layout"},{"id":"tmux.SelectLayoutRequest.Spread","name":"Spread","kind":"attribute","modifiers":[],"parent":"tmux.SelectLayoutRequest","signatures":[],"type":"bool","doc":{"summary":"Spread distributes pane space evenly."},"source":{"file":"tmux/window_layout.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SelectLayoutRequest.Spread","product":"core","slug":"tmux-selectlayoutrequest-spread"},{"id":"tmux.SelectLayoutRequest.Next","name":"Next","kind":"attribute","modifiers":[],"parent":"tmux.SelectLayoutRequest","signatures":[],"type":"bool","doc":{"summary":"Next selects the next preset layout."},"source":{"file":"tmux/window_layout.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SelectLayoutRequest.Next","product":"core","slug":"tmux-selectlayoutrequest-next"},{"id":"tmux.SelectLayoutRequest.Previous","name":"Previous","kind":"attribute","modifiers":[],"parent":"tmux.SelectLayoutRequest","signatures":[],"type":"bool","doc":{"summary":"Previous selects the previous preset layout."},"source":{"file":"tmux/window_layout.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SelectLayoutRequest.Previous","product":"core","slug":"tmux-selectlayoutrequest-previous"},{"id":"tmux.SelectLayoutRequest.Validate","name":"Validate","kind":"method","modifiers":[],"parent":"tmux.SelectLayoutRequest","signatures":[{"raw":"func (request SelectLayoutRequest) Validate() error","params":[],"receiver":{"name":"request","type":"SelectLayoutRequest"},"returns":"error"}],"doc":{"summary":"Validate checks mode exclusivity, NUL bytes, candidate preset names and classic checksummed syntax and JSON envelopes without running tmux. Its zero value is valid. Invalid requests match [ErrInvalidServerCommandRequest]. Names and abbreviations valid on any supported tmux are accepted here; execution checks daemon support. tmux validates JSON contents, geometry and live pane counts when applying it."},"source":{"file":"tmux/window_layout.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SelectLayoutRequest.Validate","product":"core","slug":"tmux-selectlayoutrequest-validate"},{"id":"tmux.Window.SelectLayout","name":"SelectLayout","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SelectLayout(ctx context.Context, request SelectLayoutRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SelectLayoutRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"SelectLayout applies one layout operation to the receiver's exact winlink. It changes pane geometry without selecting the window or promising client focus. The materialized receiver is not refreshed, so callers that need current pane geometry must obtain a new snapshot or refresh related models. A transport or context error can be delivery-ambiguous; the void result cannot carry partial state and no rollback is attempted."},"source":{"file":"tmux/window_layout.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SelectLayout","product":"core","slug":"tmux-window-selectlayout"},{"id":"tmux.Window.NextLayout","name":"NextLayout","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) NextLayout(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"NextLayout applies the next preset layout to the receiver's exact winlink. It changes pane geometry without selecting or refreshing the window. A transport or context error can be delivery-ambiguous; the void result cannot carry partial state and no rollback is attempted."},"source":{"file":"tmux/window_layout.go","line":324,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.NextLayout","product":"core","slug":"tmux-window-nextlayout"},{"id":"tmux.Window.PreviousLayout","name":"PreviousLayout","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) PreviousLayout(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"PreviousLayout applies the previous preset layout to the receiver's exact winlink. It changes pane geometry without selecting or refreshing the window. A transport or context error can be delivery-ambiguous; the void result cannot carry partial state and no rollback is attempted."},"source":{"file":"tmux/window_layout.go","line":341,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.PreviousLayout","product":"core","slug":"tmux-window-previouslayout"},{"id":"tmux.NewWindowRequest","name":"NewWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"NewWindowRequest configures window creation on tmux 3.2a or later. Its zero value uses inherited defaults; placement behavior depends on the receiver. [Session.NewWindow] uses tmux's next free index. [Window.NewWindow] instead targets the receiver's occupied index and normally returns a command error; KillExisting may replace it. [Window.NewWindow] rejects Index. SelectExisting may run name-expansion probes before creation.","body":"Pointer fields are explicit when nonnil. Methods copy them and Environment\nbefore I/O; concurrent mutation during the copy is unsafe."},"source":{"file":"tmux/window_lifecycle.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest","product":"core","slug":"tmux-newwindowrequest"},{"id":"tmux.NewWindowRequest.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"tmux.NewWindowRequest","signatures":[],"type":"*string","doc":{"summary":"Name is omitted when nil. A nonnil empty string remains an explicit -n operand. The value is copied before tmux is called."},"source":{"file":"tmux/window_lifecycle.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest.Name","product":"core","slug":"tmux-newwindowrequest-name"},{"id":"tmux.NewWindowRequest.Attach","name":"Attach","kind":"attribute","modifiers":[],"parent":"tmux.NewWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Attach lets the created or selected winlink become current in the target session; false preserves its current window."},"source":{"file":"tmux/window_lifecycle.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest.Attach","product":"core","slug":"tmux-newwindowrequest-attach"},{"id":"tmux.NewWindowRequest.Index","name":"Index","kind":"attribute","modifiers":[],"parent":"tmux.NewWindowRequest","signatures":[],"type":"*int","doc":{"summary":"Index selects an explicit nonnegative winlink index for Session.NewWindow; nil uses the next free index."},"source":{"file":"tmux/window_lifecycle.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest.Index","product":"core","slug":"tmux-newwindowrequest-index"},{"id":"tmux.NewWindowRequest.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"tmux.NewWindowRequest","signatures":[],"type":"string","doc":{"summary":"StartDirectory expands ~ and ~/... for the current user. Named-user forms such as ~other are rejected; empty inherits tmux's default."},"source":{"file":"tmux/window_lifecycle.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest.StartDirectory","product":"core","slug":"tmux-newwindowrequest-startdirectory"},{"id":"tmux.NewWindowRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.NewWindowRequest","signatures":[],"type":"string","doc":{"summary":"Command starts the window with this shell command; empty uses tmux's default command."},"source":{"file":"tmux/window_lifecycle.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest.Command","product":"core","slug":"tmux-newwindowrequest-command"},{"id":"tmux.NewWindowRequest.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"tmux.NewWindowRequest","signatures":[],"type":"map[string]string","doc":{"summary":"Environment is emitted in lexically sorted key order. The map is not retained; nil and an empty map both add no entries."},"source":{"file":"tmux/window_lifecycle.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest.Environment","product":"core","slug":"tmux-newwindowrequest-environment"},{"id":"tmux.NewWindowRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.NewWindowRequest","signatures":[],"type":"NewWindowDirection","doc":{"summary":"Direction places the new winlink relative to the target. Its zero value uses tmux's next free index with Session.NewWindow when Index is nil, but keeps Window.NewWindow on the receiver's occupied target. Use NewWindowDirectionAfter or NewWindowDirectionBefore for non-destructive relative creation through Window.NewWindow."},"source":{"file":"tmux/window_lifecycle.go","line":44,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest.Direction","product":"core","slug":"tmux-newwindowrequest-direction"},{"id":"tmux.NewWindowRequest.KillExisting","name":"KillExisting","kind":"attribute","modifiers":[],"parent":"tmux.NewWindowRequest","signatures":[],"type":"bool","doc":{"summary":"KillExisting asks tmux to destroy a window occupying the target index."},"source":{"file":"tmux/window_lifecycle.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest.KillExisting","product":"core","slug":"tmux-newwindowrequest-killexisting"},{"id":"tmux.NewWindowRequest.SelectExisting","name":"SelectExisting","kind":"attribute","modifiers":[],"parent":"tmux.NewWindowRequest","signatures":[],"type":"bool","doc":{"summary":"SelectExisting asks tmux to select an existing expanded-name match instead of creating another window. It requires Name."},"source":{"file":"tmux/window_lifecycle.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowRequest.SelectExisting","product":"core","slug":"tmux-newwindowrequest-selectexisting"},{"id":"tmux.NewWindowDirection","name":"NewWindowDirection","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"NewWindowDirection selects placement relative to the target winlink on tmux 3.2a or later. Its zero value lets [Session.NewWindow] with nil Index use the next free index, while [Window.NewWindow] keeps the receiver's exact occupied target."},"source":{"file":"tmux/window_lifecycle.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowDirection","product":"core","slug":"tmux-newwindowdirection"},{"id":"tmux.NewWindowDirectionDefault","name":"NewWindowDirectionDefault","kind":"constant","modifiers":[],"signatures":[],"type":"NewWindowDirection","doc":{"summary":"NewWindowDirectionDefault uses the next free index with Session.NewWindow when Index is nil; Window.NewWindow instead keeps the receiver's exact occupied target."},"source":{"file":"tmux/window_lifecycle.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowDirectionDefault","product":"core","slug":"tmux-newwindowdirectiondefault"},{"id":"tmux.NewWindowDirectionAfter","name":"NewWindowDirectionAfter","kind":"constant","modifiers":[],"signatures":[],"type":"NewWindowDirection","doc":{"summary":"NewWindowDirectionAfter places the new winlink after the target."},"source":{"file":"tmux/window_lifecycle.go","line":65,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowDirectionAfter","product":"core","slug":"tmux-newwindowdirectionafter"},{"id":"tmux.NewWindowDirectionBefore","name":"NewWindowDirectionBefore","kind":"constant","modifiers":[],"signatures":[],"type":"NewWindowDirection","doc":{"summary":"NewWindowDirectionBefore places the new winlink before the target."},"source":{"file":"tmux/window_lifecycle.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.NewWindowDirectionBefore","product":"core","slug":"tmux-newwindowdirectionbefore"},{"id":"tmux.Session.NewWindow","name":"NewWindow","kind":"method","modifiers":[],"parent":"tmux.Session","signatures":[{"raw":"func (s Session) NewWindow(ctx context.Context, request NewWindowRequest) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"NewWindowRequest"}],"receiver":{"name":"s","type":"Session"},"returns":"(Window, error)"}],"doc":{"summary":"NewWindow creates a winlink in the receiver session. Attach selects it as that session's current window; it is not a guarantee about clients attached to other sessions. The returned [Window] is freshly materialized in the receiver's exact session context, including when its stable [WindowID] is linked elsewhere.","body":"SelectExisting no-output recovery is available only when Index is nil. It\nexpands Name with tmux's version-specific rules and requires exactly one\nmatching window name in the receiver session. An explicit Index has no such\nrecovery. If tmux reports a WindowID before a transport or refresh failure,\nthe partial result contains that ID and the receiver SessionID with Index -1.\nOther failures return zero; creation is not rolled back.","examples":[{"lang":"console","intro":"Add a logs window to an existing session without selecting it. NewWindow returns the newly materialized window and its initial pane relation; the session record from NewSession still carries no window relations. Use Go 1.26.0 or newer and tmux 3.3a or newer on a Unix system, with tmux and cat on PATH. In a new directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-go.git libtmux-source && \\\n git -C libtmux-source checkout 6f3df55f8a41999e41225eefb3940545b834e6a2\n"},{"lang":"go","intro":"Save this dependency file as go.mod:","code":"module example.com/libtmux-api\n\ngo 1.26.0\n\nrequire github.com/libtmux/libtmux-go v0.0.0\n\nreplace github.com/libtmux/libtmux-go => ./libtmux-source\n"},{"lang":"go","intro":"Save this complete example as example_test.go. It creates a private temporary socket and stops its server before removing the directory. Cleanup failure fails the example and retains the socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-go/blob/6f3df55f8a41999e41225eefb3940545b834e6a2/tmux/api_session_new_window_example_test.go","code":"package tmux_test\n\nimport (\n\t\"context\"\n\t\"errors\"\n\t\"fmt\"\n\t\"os\"\n\t\"path/filepath\"\n\t\"time\"\n\n\t\"github.com/libtmux/libtmux-go/tmux\"\n)\n\n// Add a logs window to an existing session without selecting it. NewWindow\n// returns the newly materialized window and its initial pane relation;\n// the session record from NewSession still carries no window relations.\nfunc ExampleSession_NewWindow_complete() {\n\trun := func() (runErr error) {\n\t\tdirectory, err := os.MkdirTemp(\"\", \"libtmux-go-api-\")\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create socket directory: %w\", err)\n\t\t}\n\t\tserver, err := tmux.NewServer(tmux.ServerOptions{\n\t\t\tSocketPath: filepath.Join(directory, \"tmux.sock\"),\n\t\t\tConfigFile: \"/dev/null\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn errors.Join(err, os.RemoveAll(directory))\n\t\t}\n\t\tdefer func() {\n\t\t\t// Cleanup has its own deadline because the operation may have timed out.\n\t\t\tcleanup, cancel := context.WithTimeout(context.Background(), 5*time.Second)\n\t\t\tdefer cancel()\n\t\t\tif err := server.Kill(cleanup); err != nil && !errors.Is(err, tmux.ErrNoServer) {\n\t\t\t\trunErr = errors.Join(runErr, fmt.Errorf(\"stop server at %s: %w\", directory, err))\n\t\t\t\treturn\n\t\t\t}\n\t\t\trunErr = errors.Join(runErr, os.RemoveAll(directory))\n\t\t}()\n\t\tctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)\n\t\tdefer cancel()\n\t\tsession, err := server.NewSession(ctx, tmux.NewSessionRequest{\n\t\t\tName: \"work\", WindowName: \"editor\", Command: \"cat\", Width: 100, Height: 30,\n\t\t})\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create session: %w\", err)\n\t\t}\n\t\tname := \"logs\"\n\t\twindow, err := session.NewWindow(ctx, tmux.NewWindowRequest{\n\t\t\tName: &name, Command: \"cat\",\n\t\t})\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"create logs window: %w\", err)\n\t\t}\n\t\twindowName, ok := window.Name()\n\t\tif !ok {\n\t\t\treturn errors.New(\"created window has no name\")\n\t\t}\n\t\tpanes, relations := window.Panes()\n\t\tfmt.Println(\"window:\", windowName)\n\t\tfmt.Println(\"initial panes:\", len(panes), \"captured:\", relations)\n\t\twindows, err := session.SearchWindows(ctx, nil)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"list current windows: %w\", err)\n\t\t}\n\t\tfmt.Println(\"live windows:\", len(windows))\n\t\tcurrent, err := session.ResolveActiveWindow(ctx)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"resolve current window: %w\", err)\n\t\t}\n\t\tcurrentName, ok := current.Name()\n\t\tif !ok {\n\t\t\treturn errors.New(\"current window has no name\")\n\t\t}\n\t\tfmt.Println(\"current window:\", currentName)\n\t\treturn nil\n\t}\n\tif err := run(); err != nil {\n\t\tpanic(err)\n\t}\n\t// Output:\n\t// window: logs\n\t// initial panes: 1 captured: true\n\t// live windows: 2\n\t// current window: editor\n}\n"},{"lang":"console","intro":"Run the saved file. Go checks the Output comment and fails on different output or an operation or cleanup error:","code":"$ GOWORK=off go test -count=1 -v example_test.go\n"}]},"source":{"file":"tmux/window_lifecycle.go","line":82,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Session.NewWindow","product":"core","slug":"tmux-session-newwindow"},{"id":"tmux.Window.NewWindow","name":"NewWindow","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) NewWindow(ctx context.Context, request NewWindowRequest) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"NewWindowRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(Window, error)"}],"doc":{"summary":"NewWindow creates a window relative to the receiver's exact winlink. Set Direction to [NewWindowDirectionAfter] or [NewWindowDirectionBefore] for non-destructive relative creation. With the zero Direction, tmux targets the receiver's occupied index and normally returns a command error; KillExisting can destroy and replace that target. Attach changes the current window only in that target session. Index is rejected before execution because the receiver already supplies the target position. On tmux 3.8 and later, SelectExisting's -S also matches the receiver's own exact target (extended there to match -t as well as a window's name), so it always selects the receiver itself and prints nothing; the identity is already known without a probe. Earlier tmux only matched -S by name here, and always printed a created WindowID because the exact-target form never carries a bare name to match against.","body":"If tmux reports an ID before a transport or refresh failure, the partial result\ncontains it and the receiver SessionID with Index -1. Other failures return\nzero; creation is not rolled back."},"source":{"file":"tmux/window_lifecycle.go","line":108,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.NewWindow","product":"core","slug":"tmux-window-newwindow"},{"id":"tmux.Window.Rename","name":"Rename","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Rename(ctx context.Context, name string) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"name","type":"string"}],"receiver":{"name":"w","type":"Window"},"returns":"(Window, error)"}],"doc":{"summary":"Rename changes the stable window through the receiver's exact winlink and returns a canonical freshly materialized [Window]. The returned winlink may therefore use another session when the WindowID is linked. If the command succeeds but refresh fails, Rename returns the receiver with that error. A transport or context error can be delivery-ambiguous; no rollback is attempted."},"source":{"file":"tmux/window_lifecycle.go","line":348,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Rename","product":"core","slug":"tmux-window-rename"},{"id":"tmux.Window.Select","name":"Select","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Select(ctx context.Context) (Window, error)","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"w","type":"Window"},"returns":"(Window, error)"}],"doc":{"summary":"Select makes the receiver's exact winlink current in its session. It does not promise focus for clients attached to other sessions. Select returns a canonical freshly materialized [Window], which may use another linked session for the same WindowID. If the command succeeds but refresh fails, it returns the receiver with that error. A transport or context error can be delivery-ambiguous; no rollback is attempted."},"source":{"file":"tmux/window_lifecycle.go","line":377,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Select","product":"core","slug":"tmux-window-select"},{"id":"tmux.LinkWindowRequest","name":"LinkWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"LinkWindowRequest configures linking a window into another session on tmux 3.2a or later. Its zero value is invalid because TargetSession is required. Nil TargetIndex asks tmux for a destination index; a nonnil value is explicit and must be nonnegative. After and Before are mutually exclusive and are rejected before execution. TargetIndex is read during the call and is not retained; callers must not mutate it concurrently."},"source":{"file":"tmux/window_link_move.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LinkWindowRequest","product":"core","slug":"tmux-linkwindowrequest"},{"id":"tmux.LinkWindowRequest.TargetSession","name":"TargetSession","kind":"attribute","modifiers":[],"parent":"tmux.LinkWindowRequest","signatures":[],"type":"SessionID","doc":{"summary":"TargetSession identifies the destination session in the receiver's tmux server."},"source":{"file":"tmux/window_link_move.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LinkWindowRequest.TargetSession","product":"core","slug":"tmux-linkwindowrequest-targetsession"},{"id":"tmux.LinkWindowRequest.TargetIndex","name":"TargetIndex","kind":"attribute","modifiers":[],"parent":"tmux.LinkWindowRequest","signatures":[],"type":"*int","doc":{"summary":"TargetIndex selects a destination winlink index; nil lets tmux choose."},"source":{"file":"tmux/window_link_move.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LinkWindowRequest.TargetIndex","product":"core","slug":"tmux-linkwindowrequest-targetindex"},{"id":"tmux.LinkWindowRequest.KillExisting","name":"KillExisting","kind":"attribute","modifiers":[],"parent":"tmux.LinkWindowRequest","signatures":[],"type":"bool","doc":{"summary":"KillExisting destroys a window already occupying the destination."},"source":{"file":"tmux/window_link_move.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LinkWindowRequest.KillExisting","product":"core","slug":"tmux-linkwindowrequest-killexisting"},{"id":"tmux.LinkWindowRequest.After","name":"After","kind":"attribute","modifiers":[],"parent":"tmux.LinkWindowRequest","signatures":[],"type":"bool","doc":{"summary":"After inserts the new winlink after the destination target."},"source":{"file":"tmux/window_link_move.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LinkWindowRequest.After","product":"core","slug":"tmux-linkwindowrequest-after"},{"id":"tmux.LinkWindowRequest.Before","name":"Before","kind":"attribute","modifiers":[],"parent":"tmux.LinkWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Before inserts the new winlink before the destination target."},"source":{"file":"tmux/window_link_move.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LinkWindowRequest.Before","product":"core","slug":"tmux-linkwindowrequest-before"},{"id":"tmux.LinkWindowRequest.Detach","name":"Detach","kind":"attribute","modifiers":[],"parent":"tmux.LinkWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Detach leaves the target session's current window unchanged."},"source":{"file":"tmux/window_link_move.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LinkWindowRequest.Detach","product":"core","slug":"tmux-linkwindowrequest-detach"},{"id":"tmux.UnlinkWindowRequest","name":"UnlinkWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"UnlinkWindowRequest configures unlinking one exact winlink on tmux 3.2a or later. Its zero value removes the link only when the stable window has another link. The request contains no retained caller-owned storage and has no invalid field combinations."},"source":{"file":"tmux/window_link_move.go","line":34,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnlinkWindowRequest","product":"core","slug":"tmux-unlinkwindowrequest"},{"id":"tmux.UnlinkWindowRequest.KillIfLast","name":"KillIfLast","kind":"attribute","modifiers":[],"parent":"tmux.UnlinkWindowRequest","signatures":[],"type":"bool","doc":{"summary":"KillIfLast permits unlinking and destroying a stable window with no other links."},"source":{"file":"tmux/window_link_move.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.UnlinkWindowRequest.KillIfLast","product":"core","slug":"tmux-unlinkwindowrequest-killiflast"},{"id":"tmux.MoveWindowRequest","name":"MoveWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"MoveWindowRequest configures moving one exact winlink on tmux 3.2a or later. Its zero value moves the receiver within its current session to a tmux-chosen index and lets the moved winlink become current. Nil TargetIndex asks tmux for that index; a nonnil value is explicit and must be nonnegative. After and Before are mutually exclusive. Renumber is a standalone mode mutually exclusive with TargetIndex, After, Before, NoSelect, and KillTarget. Invalid combinations are rejected before execution. TargetIndex is read during the call and is not retained; callers must not mutate it concurrently."},"source":{"file":"tmux/window_link_move.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MoveWindowRequest","product":"core","slug":"tmux-movewindowrequest"},{"id":"tmux.MoveWindowRequest.TargetSession","name":"TargetSession","kind":"attribute","modifiers":[],"parent":"tmux.MoveWindowRequest","signatures":[],"type":"SessionID","doc":{"summary":"TargetSession identifies the destination session; zero uses the receiver session."},"source":{"file":"tmux/window_link_move.go","line":51,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MoveWindowRequest.TargetSession","product":"core","slug":"tmux-movewindowrequest-targetsession"},{"id":"tmux.MoveWindowRequest.TargetIndex","name":"TargetIndex","kind":"attribute","modifiers":[],"parent":"tmux.MoveWindowRequest","signatures":[],"type":"*int","doc":{"summary":"TargetIndex selects a destination winlink index; nil lets tmux choose."},"source":{"file":"tmux/window_link_move.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MoveWindowRequest.TargetIndex","product":"core","slug":"tmux-movewindowrequest-targetindex"},{"id":"tmux.MoveWindowRequest.After","name":"After","kind":"attribute","modifiers":[],"parent":"tmux.MoveWindowRequest","signatures":[],"type":"bool","doc":{"summary":"After inserts the moved winlink after the destination target."},"source":{"file":"tmux/window_link_move.go","line":55,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MoveWindowRequest.After","product":"core","slug":"tmux-movewindowrequest-after"},{"id":"tmux.MoveWindowRequest.Before","name":"Before","kind":"attribute","modifiers":[],"parent":"tmux.MoveWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Before inserts the moved winlink before the destination target."},"source":{"file":"tmux/window_link_move.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MoveWindowRequest.Before","product":"core","slug":"tmux-movewindowrequest-before"},{"id":"tmux.MoveWindowRequest.NoSelect","name":"NoSelect","kind":"attribute","modifiers":[],"parent":"tmux.MoveWindowRequest","signatures":[],"type":"bool","doc":{"summary":"NoSelect leaves the destination session's current window unchanged."},"source":{"file":"tmux/window_link_move.go","line":59,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MoveWindowRequest.NoSelect","product":"core","slug":"tmux-movewindowrequest-noselect"},{"id":"tmux.MoveWindowRequest.KillTarget","name":"KillTarget","kind":"attribute","modifiers":[],"parent":"tmux.MoveWindowRequest","signatures":[],"type":"bool","doc":{"summary":"KillTarget destroys a window already occupying the destination."},"source":{"file":"tmux/window_link_move.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MoveWindowRequest.KillTarget","product":"core","slug":"tmux-movewindowrequest-killtarget"},{"id":"tmux.MoveWindowRequest.Renumber","name":"Renumber","kind":"attribute","modifiers":[],"parent":"tmux.MoveWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Renumber renumbers the target session according to its base-index option instead of moving the receiver to a new destination."},"source":{"file":"tmux/window_link_move.go","line":64,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.MoveWindowRequest.Renumber","product":"core","slug":"tmux-movewindowrequest-renumber"},{"id":"tmux.Window.Link","name":"Link","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Link(ctx context.Context, request LinkWindowRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"LinkWindowRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"Link adds the stable window to TargetSession as another winlink, targeting the source through the receiver's exact session. Unless Detach is set, tmux makes the new link current in the target session; this is not a global client-focus guarantee. Link does not refresh or mutate the materialized source [Window]. A transport or context error can be delivery-ambiguous; the void result cannot carry the new winlink identity and no rollback is attempted."},"source":{"file":"tmux/window_link_move.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Link","product":"core","slug":"tmux-window-link"},{"id":"tmux.Window.Unlink","name":"Unlink","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Unlink(ctx context.Context, request UnlinkWindowRequest) error","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"UnlinkWindowRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"error"}],"doc":{"summary":"Unlink removes the receiver's exact session winlink without refreshing the materialized receiver. Without KillIfLast, tmux rejects removal of a stable window's only link; with it, that window is destroyed. A transport or context error can be delivery-ambiguous; the void result cannot carry partial identity and no rollback is attempted."},"source":{"file":"tmux/window_link_move.go","line":149,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Unlink","product":"core","slug":"tmux-window-unlink"},{"id":"tmux.Window.Move","name":"Move","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Move(ctx context.Context, request MoveWindowRequest) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"MoveWindowRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(Window, error)"}],"doc":{"summary":"Move removes the receiver's exact winlink and places it in TargetSession, or renumbers the selected session when Renumber is set. Unless NoSelect is set, tmux makes the moved winlink current in the destination session; this is not a global client-focus guarantee. The stable WindowID does not by itself identify either linked view.","body":"Move returns a canonical freshly materialized [Window], which may use a\ndifferent linked session than the destination. If the command succeeds but\nrefresh fails, it returns the receiver with that error. Earlier failures\nreturn zero; transport errors are delivery-ambiguous."},"source":{"file":"tmux/window_link_move.go","line":174,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Move","product":"core","slug":"tmux-window-move"},{"id":"tmux.SwapWindowRequest","name":"SwapWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SwapWindowRequest configures swapping the receiver with one exact winlink on tmux 3.2a or later. Its zero value is invalid because Target must be a complete Window handle. The endpoints must be proven to share a daemon through connection state or the same nonempty SocketPath; matching socket names alone are insufficient. Validation completes before execution."},"source":{"file":"tmux/window_pane_swap.go","line":10,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapWindowRequest","product":"core","slug":"tmux-swapwindowrequest"},{"id":"tmux.SwapWindowRequest.Target","name":"Target","kind":"attribute","modifiers":[],"parent":"tmux.SwapWindowRequest","signatures":[],"type":"Window","doc":{"summary":"Target is the exact other winlink to swap with the receiver."},"source":{"file":"tmux/window_pane_swap.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapWindowRequest.Target","product":"core","slug":"tmux-swapwindowrequest-target"},{"id":"tmux.SwapWindowRequest.Detach","name":"Detach","kind":"attribute","modifiers":[],"parent":"tmux.SwapWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Detach leaves the affected sessions' current-window selection unchanged."},"source":{"file":"tmux/window_pane_swap.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapWindowRequest.Detach","product":"core","slug":"tmux-swapwindowrequest-detach"},{"id":"tmux.WindowSwapResult","name":"WindowSwapResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WindowSwapResult contains both original stable window identities in their post-swap exact winlink views. Its zero value contains no usable endpoints."},"source":{"file":"tmux/window_pane_swap.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSwapResult","product":"core","slug":"tmux-windowswapresult"},{"id":"tmux.WindowSwapResult.Window","name":"Window","kind":"attribute","modifiers":[],"parent":"tmux.WindowSwapResult","signatures":[],"type":"Window","doc":{"summary":"Window is the receiver's original WindowID at its post-swap exact winlink."},"source":{"file":"tmux/window_pane_swap.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSwapResult.Window","product":"core","slug":"tmux-windowswapresult-window"},{"id":"tmux.WindowSwapResult.Target","name":"Target","kind":"attribute","modifiers":[],"parent":"tmux.WindowSwapResult","signatures":[],"type":"Window","doc":{"summary":"Target is the target's original WindowID at its post-swap exact winlink."},"source":{"file":"tmux/window_pane_swap.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSwapResult.Target","product":"core","slug":"tmux-windowswapresult-target"},{"id":"tmux.SwapPaneDirection","name":"SwapPaneDirection","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SwapPaneDirection selects an adjacent pane for swap-pane on tmux 3.2a or later. Its zero value selects no adjacent pane."},"source":{"file":"tmux/window_pane_swap.go","line":28,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapPaneDirection","product":"core","slug":"tmux-swappanedirection"},{"id":"tmux.SwapPaneDirectionNone","name":"SwapPaneDirectionNone","kind":"constant","modifiers":[],"signatures":[],"type":"SwapPaneDirection","doc":{"summary":"SwapPaneDirectionNone selects no adjacent pane."},"source":{"file":"tmux/window_pane_swap.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapPaneDirectionNone","product":"core","slug":"tmux-swappanedirectionnone"},{"id":"tmux.SwapPaneDirectionUp","name":"SwapPaneDirectionUp","kind":"constant","modifiers":[],"signatures":[],"type":"SwapPaneDirection","doc":{"summary":"SwapPaneDirectionUp swaps with the previous pane in index order."},"source":{"file":"tmux/window_pane_swap.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapPaneDirectionUp","product":"core","slug":"tmux-swappanedirectionup"},{"id":"tmux.SwapPaneDirectionDown","name":"SwapPaneDirectionDown","kind":"constant","modifiers":[],"signatures":[],"type":"SwapPaneDirection","doc":{"summary":"SwapPaneDirectionDown swaps with the next pane in index order."},"source":{"file":"tmux/window_pane_swap.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapPaneDirectionDown","product":"core","slug":"tmux-swappanedirectiondown"},{"id":"tmux.SwapPaneRequest","name":"SwapPaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"SwapPaneRequest configures swapping with an exact or adjacent pane on tmux 3.2a or later. Its zero value is invalid: exactly one complete Target or Direction is required. An explicit Target must differ from the receiver and must be proven to share a daemon through connection state or the same nonempty SocketPath; matching socket names alone are insufficient. Invalid choices are rejected before execution."},"source":{"file":"tmux/window_pane_swap.go","line":46,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapPaneRequest","product":"core","slug":"tmux-swappanerequest"},{"id":"tmux.SwapPaneRequest.Target","name":"Target","kind":"attribute","modifiers":[],"parent":"tmux.SwapPaneRequest","signatures":[],"type":"Pane","doc":{"summary":"Target selects an exact other pane; a zero Pane omits it."},"source":{"file":"tmux/window_pane_swap.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapPaneRequest.Target","product":"core","slug":"tmux-swappanerequest-target"},{"id":"tmux.SwapPaneRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.SwapPaneRequest","signatures":[],"type":"SwapPaneDirection","doc":{"summary":"Direction selects an adjacent pane; zero omits it."},"source":{"file":"tmux/window_pane_swap.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapPaneRequest.Direction","product":"core","slug":"tmux-swappanerequest-direction"},{"id":"tmux.SwapPaneRequest.Detach","name":"Detach","kind":"attribute","modifiers":[],"parent":"tmux.SwapPaneRequest","signatures":[],"type":"bool","doc":{"summary":"Detach leaves the active-pane selection unchanged."},"source":{"file":"tmux/window_pane_swap.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapPaneRequest.Detach","product":"core","slug":"tmux-swappanerequest-detach"},{"id":"tmux.SwapPaneRequest.KeepZoom","name":"KeepZoom","kind":"attribute","modifiers":[],"parent":"tmux.SwapPaneRequest","signatures":[],"type":"bool","doc":{"summary":"KeepZoom preserves the affected window's zoomed state."},"source":{"file":"tmux/window_pane_swap.go","line":54,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.SwapPaneRequest.KeepZoom","product":"core","slug":"tmux-swappanerequest-keepzoom"},{"id":"tmux.PaneSwapResult","name":"PaneSwapResult","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneSwapResult contains original stable pane identities in their post-swap exact linked-pane views. Its zero value contains no usable endpoints. Target is zero for a directional swap because tmux does not report the adjacent pane identity."},"source":{"file":"tmux/window_pane_swap.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSwapResult","product":"core","slug":"tmux-paneswapresult"},{"id":"tmux.PaneSwapResult.Pane","name":"Pane","kind":"attribute","modifiers":[],"parent":"tmux.PaneSwapResult","signatures":[],"type":"Pane","doc":{"summary":"Pane is the receiver's original PaneID at its post-swap exact view."},"source":{"file":"tmux/window_pane_swap.go","line":63,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSwapResult.Pane","product":"core","slug":"tmux-paneswapresult-pane"},{"id":"tmux.PaneSwapResult.Target","name":"Target","kind":"attribute","modifiers":[],"parent":"tmux.PaneSwapResult","signatures":[],"type":"Pane","doc":{"summary":"Target is the explicit target's original PaneID at its post-swap exact view, or zero after a directional swap."},"source":{"file":"tmux/window_pane_swap.go","line":66,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSwapResult.Target","product":"core","slug":"tmux-paneswapresult-target"},{"id":"tmux.Window.Swap","name":"Swap","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Swap(ctx context.Context, request SwapWindowRequest) (WindowSwapResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SwapWindowRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(WindowSwapResult, error)"}],"doc":{"summary":"Swap exchanges the receiver and Target exact winlinks. Their stable WindowIDs move to the opposite session-and-index views; a WindowID alone does not identify either endpoint. Unless Detach is set, tmux may change the affected sessions' current-window selection; this is not a global client-focus guarantee.","body":"Swap returns both freshly materialized exact endpoint views. If exact\nrefresh fails after the command, it returns a predicted [WindowSwapResult]\ncarrying both stable IDs and post-swap session/index contexts with the\nerror. Earlier failures return zero; transport errors are delivery-ambiguous."},"source":{"file":"tmux/window_pane_swap.go","line":79,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Swap","product":"core","slug":"tmux-window-swap"},{"id":"tmux.Pane.Swap","name":"Swap","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Swap(ctx context.Context, request SwapPaneRequest) (PaneSwapResult, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"SwapPaneRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"(PaneSwapResult, error)"}],"doc":{"summary":"Swap exchanges the receiver with one exact or adjacent pane. Explicit targets use exact linked-pane views; PaneID alone does not distinguish linked views. Unless Detach is set, tmux may change active-pane selection; this is not a global client-focus guarantee. A directional swap cannot identify the adjacent target because tmux does not report it, so the returned [PaneSwapResult].Target is zero.","body":"An explicit swap returns freshly materialized exact views for both original\nPaneIDs. If exact refresh fails after the command, Swap returns a predicted\nresult carrying every known identity with the error. Earlier failures return\nzero; transport errors are delivery-ambiguous."},"source":{"file":"tmux/window_pane_swap.go","line":133,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Swap","product":"core","slug":"tmux-pane-swap"},{"id":"tmux.PaneSelectDirection","name":"PaneSelectDirection","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneSelectDirection selects a pane relative to the command target on tmux 3.2a or later. Its zero value selects no relative direction."},"source":{"file":"tmux/window_pane_topology.go","line":7,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectDirection","product":"core","slug":"tmux-paneselectdirection"},{"id":"tmux.PaneSelectDirectionNone","name":"PaneSelectDirectionNone","kind":"constant","modifiers":[],"signatures":[],"type":"PaneSelectDirection","doc":{"summary":"PaneSelectDirectionNone selects no relative pane."},"source":{"file":"tmux/window_pane_topology.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectDirectionNone","product":"core","slug":"tmux-paneselectdirectionnone"},{"id":"tmux.PaneSelectDirectionUp","name":"PaneSelectDirectionUp","kind":"constant","modifiers":[],"signatures":[],"type":"PaneSelectDirection","doc":{"summary":"PaneSelectDirectionUp selects the pane above the target."},"source":{"file":"tmux/window_pane_topology.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectDirectionUp","product":"core","slug":"tmux-paneselectdirectionup"},{"id":"tmux.PaneSelectDirectionDown","name":"PaneSelectDirectionDown","kind":"constant","modifiers":[],"signatures":[],"type":"PaneSelectDirection","doc":{"summary":"PaneSelectDirectionDown selects the pane below the target."},"source":{"file":"tmux/window_pane_topology.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectDirectionDown","product":"core","slug":"tmux-paneselectdirectiondown"},{"id":"tmux.PaneSelectDirectionLeft","name":"PaneSelectDirectionLeft","kind":"constant","modifiers":[],"signatures":[],"type":"PaneSelectDirection","doc":{"summary":"PaneSelectDirectionLeft selects the pane to the left of the target."},"source":{"file":"tmux/window_pane_topology.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectDirectionLeft","product":"core","slug":"tmux-paneselectdirectionleft"},{"id":"tmux.PaneSelectDirectionRight","name":"PaneSelectDirectionRight","kind":"constant","modifiers":[],"signatures":[],"type":"PaneSelectDirection","doc":{"summary":"PaneSelectDirectionRight selects the pane to the right of the target."},"source":{"file":"tmux/window_pane_topology.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectDirectionRight","product":"core","slug":"tmux-paneselectdirectionright"},{"id":"tmux.PaneSelectDirectionLast","name":"PaneSelectDirectionLast","kind":"constant","modifiers":[],"signatures":[],"type":"PaneSelectDirection","doc":{"summary":"PaneSelectDirectionLast selects the previously active pane."},"source":{"file":"tmux/window_pane_topology.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectDirectionLast","product":"core","slug":"tmux-paneselectdirectionlast"},{"id":"tmux.PaneMarkMode","name":"PaneMarkMode","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneMarkMode changes tmux's server-wide marked pane on tmux 3.2a or later. Its zero value leaves the mark unchanged."},"source":{"file":"tmux/window_pane_topology.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneMarkMode","product":"core","slug":"tmux-panemarkmode"},{"id":"tmux.PaneMarkUnchanged","name":"PaneMarkUnchanged","kind":"constant","modifiers":[],"signatures":[],"type":"PaneMarkMode","doc":{"summary":"PaneMarkUnchanged leaves the server-wide marked pane unchanged."},"source":{"file":"tmux/window_pane_topology.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneMarkUnchanged","product":"core","slug":"tmux-panemarkunchanged"},{"id":"tmux.PaneMarkSet","name":"PaneMarkSet","kind":"constant","modifiers":[],"signatures":[],"type":"PaneMarkMode","doc":{"summary":"PaneMarkSet makes the target the server-wide marked pane without selecting it."},"source":{"file":"tmux/window_pane_topology.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneMarkSet","product":"core","slug":"tmux-panemarkset"},{"id":"tmux.PaneMarkClear","name":"PaneMarkClear","kind":"constant","modifiers":[],"signatures":[],"type":"PaneMarkMode","doc":{"summary":"PaneMarkClear clears the server-wide marked pane without selecting the target."},"source":{"file":"tmux/window_pane_topology.go","line":38,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneMarkClear","product":"core","slug":"tmux-panemarkclear"},{"id":"tmux.PaneInputMode","name":"PaneInputMode","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneInputMode changes whether a pane accepts input on tmux 3.2a or later. Its zero value leaves input state unchanged."},"source":{"file":"tmux/window_pane_topology.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneInputMode","product":"core","slug":"tmux-paneinputmode"},{"id":"tmux.PaneInputUnchanged","name":"PaneInputUnchanged","kind":"constant","modifiers":[],"signatures":[],"type":"PaneInputMode","doc":{"summary":"PaneInputUnchanged leaves the target pane's input state unchanged."},"source":{"file":"tmux/window_pane_topology.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneInputUnchanged","product":"core","slug":"tmux-paneinputunchanged"},{"id":"tmux.PaneInputDisable","name":"PaneInputDisable","kind":"constant","modifiers":[],"signatures":[],"type":"PaneInputMode","doc":{"summary":"PaneInputDisable disables input without selecting the target pane."},"source":{"file":"tmux/window_pane_topology.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneInputDisable","product":"core","slug":"tmux-paneinputdisable"},{"id":"tmux.PaneInputEnable","name":"PaneInputEnable","kind":"constant","modifiers":[],"signatures":[],"type":"PaneInputMode","doc":{"summary":"PaneInputEnable enables input without selecting the target pane."},"source":{"file":"tmux/window_pane_topology.go","line":52,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneInputEnable","product":"core","slug":"tmux-paneinputenable"},{"id":"tmux.WindowSelectPaneRequest","name":"WindowSelectPaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WindowSelectPaneRequest selects either one exact pane or one relative pane. Its zero value is invalid: exactly one of Target and Direction is required. Target must be a complete pane handle in the receiver's exact winlink and must be proven to share a daemon through connection state or the same nonempty SocketPath; matching socket names alone are insufficient. Invalid values are rejected before execution."},"source":{"file":"tmux/window_pane_topology.go","line":61,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSelectPaneRequest","product":"core","slug":"tmux-windowselectpanerequest"},{"id":"tmux.WindowSelectPaneRequest.Target","name":"Target","kind":"attribute","modifiers":[],"parent":"tmux.WindowSelectPaneRequest","signatures":[],"type":"Pane","doc":{"summary":"Target selects one exact pane in the receiver winlink; a zero Pane omits this choice."},"source":{"file":"tmux/window_pane_topology.go","line":64,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSelectPaneRequest.Target","product":"core","slug":"tmux-windowselectpanerequest-target"},{"id":"tmux.WindowSelectPaneRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.WindowSelectPaneRequest","signatures":[],"type":"PaneSelectDirection","doc":{"summary":"Direction selects a pane relative to the receiver window's active pane; zero omits this choice."},"source":{"file":"tmux/window_pane_topology.go","line":67,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSelectPaneRequest.Direction","product":"core","slug":"tmux-windowselectpanerequest-direction"},{"id":"tmux.WindowSelectPaneRequest.KeepZoom","name":"KeepZoom","kind":"attribute","modifiers":[],"parent":"tmux.WindowSelectPaneRequest","signatures":[],"type":"bool","doc":{"summary":"KeepZoom preserves the window's zoomed state."},"source":{"file":"tmux/window_pane_topology.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowSelectPaneRequest.KeepZoom","product":"core","slug":"tmux-windowselectpanerequest-keepzoom"},{"id":"tmux.PaneSelectRequest","name":"PaneSelectRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PaneSelectRequest configures select-pane for one exact receiver. Closed enums prevent conflicting direction, mark, and input flags. Its zero value selects the receiver. Mark rejects every other option. Input rejects Direction and KeepZoom because changing input does not select a pane. These combinations and enum ranges are validated before execution."},"source":{"file":"tmux/window_pane_topology.go","line":77,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectRequest","product":"core","slug":"tmux-paneselectrequest"},{"id":"tmux.PaneSelectRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.PaneSelectRequest","signatures":[],"type":"PaneSelectDirection","doc":{"summary":"Direction selects a pane relative to the receiver; zero selects the receiver unless Mark or Input is set."},"source":{"file":"tmux/window_pane_topology.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectRequest.Direction","product":"core","slug":"tmux-paneselectrequest-direction"},{"id":"tmux.PaneSelectRequest.KeepZoom","name":"KeepZoom","kind":"attribute","modifiers":[],"parent":"tmux.PaneSelectRequest","signatures":[],"type":"bool","doc":{"summary":"KeepZoom preserves the window's zoomed state while selecting."},"source":{"file":"tmux/window_pane_topology.go","line":82,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectRequest.KeepZoom","product":"core","slug":"tmux-paneselectrequest-keepzoom"},{"id":"tmux.PaneSelectRequest.Mark","name":"Mark","kind":"attribute","modifiers":[],"parent":"tmux.PaneSelectRequest","signatures":[],"type":"PaneMarkMode","doc":{"summary":"Mark changes the server-wide marked pane without selecting; zero leaves it unchanged."},"source":{"file":"tmux/window_pane_topology.go","line":85,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectRequest.Mark","product":"core","slug":"tmux-paneselectrequest-mark"},{"id":"tmux.PaneSelectRequest.Input","name":"Input","kind":"attribute","modifiers":[],"parent":"tmux.PaneSelectRequest","signatures":[],"type":"PaneInputMode","doc":{"summary":"Input changes whether the receiver accepts input without selecting; zero leaves input state unchanged."},"source":{"file":"tmux/window_pane_topology.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.PaneSelectRequest.Input","product":"core","slug":"tmux-paneselectrequest-input"},{"id":"tmux.LastPaneRequest","name":"LastPaneRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"LastPaneRequest configures last-pane on tmux 3.2a or later. Its zero value selects the previously active pane. Input and KeepZoom are mutually exclusive and are validated before execution; an Input mode changes the previous pane's input state without selecting it."},"source":{"file":"tmux/window_pane_topology.go","line":95,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LastPaneRequest","product":"core","slug":"tmux-lastpanerequest"},{"id":"tmux.LastPaneRequest.Input","name":"Input","kind":"attribute","modifiers":[],"parent":"tmux.LastPaneRequest","signatures":[],"type":"PaneInputMode","doc":{"summary":"Input changes the previous pane's input state; zero performs selection."},"source":{"file":"tmux/window_pane_topology.go","line":97,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LastPaneRequest.Input","product":"core","slug":"tmux-lastpanerequest-input"},{"id":"tmux.LastPaneRequest.KeepZoom","name":"KeepZoom","kind":"attribute","modifiers":[],"parent":"tmux.LastPaneRequest","signatures":[],"type":"bool","doc":{"summary":"KeepZoom preserves the window's zoomed state during selection."},"source":{"file":"tmux/window_pane_topology.go","line":99,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.LastPaneRequest.KeepZoom","product":"core","slug":"tmux-lastpanerequest-keepzoom"},{"id":"tmux.RotateWindowDirection","name":"RotateWindowDirection","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"RotateWindowDirection selects rotate-window's direction on tmux 3.2a or later. Its zero value uses tmux's default rotation."},"source":{"file":"tmux/window_pane_topology.go","line":104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RotateWindowDirection","product":"core","slug":"tmux-rotatewindowdirection"},{"id":"tmux.RotateWindowDefault","name":"RotateWindowDefault","kind":"constant","modifiers":[],"signatures":[],"type":"RotateWindowDirection","doc":{"summary":"RotateWindowDefault uses tmux's default rotation."},"source":{"file":"tmux/window_pane_topology.go","line":109,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RotateWindowDefault","product":"core","slug":"tmux-rotatewindowdefault"},{"id":"tmux.RotateWindowUp","name":"RotateWindowUp","kind":"constant","modifiers":[],"signatures":[],"type":"RotateWindowDirection","doc":{"summary":"RotateWindowUp rotates pane positions toward lower indexes."},"source":{"file":"tmux/window_pane_topology.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RotateWindowUp","product":"core","slug":"tmux-rotatewindowup"},{"id":"tmux.RotateWindowDown","name":"RotateWindowDown","kind":"constant","modifiers":[],"signatures":[],"type":"RotateWindowDirection","doc":{"summary":"RotateWindowDown rotates pane positions toward higher indexes."},"source":{"file":"tmux/window_pane_topology.go","line":113,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RotateWindowDown","product":"core","slug":"tmux-rotatewindowdown"},{"id":"tmux.RotateWindowRequest","name":"RotateWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"RotateWindowRequest configures rotate-window. Its zero value uses tmux's default rotation; enum validation happens before execution."},"source":{"file":"tmux/window_pane_topology.go","line":118,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RotateWindowRequest","product":"core","slug":"tmux-rotatewindowrequest"},{"id":"tmux.RotateWindowRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.RotateWindowRequest","signatures":[],"type":"RotateWindowDirection","doc":{"summary":"Direction selects the rotation direction; zero uses tmux's default."},"source":{"file":"tmux/window_pane_topology.go","line":120,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RotateWindowRequest.Direction","product":"core","slug":"tmux-rotatewindowrequest-direction"},{"id":"tmux.RotateWindowRequest.KeepZoom","name":"KeepZoom","kind":"attribute","modifiers":[],"parent":"tmux.RotateWindowRequest","signatures":[],"type":"bool","doc":{"summary":"KeepZoom preserves the window's zoomed state."},"source":{"file":"tmux/window_pane_topology.go","line":122,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RotateWindowRequest.KeepZoom","product":"core","slug":"tmux-rotatewindowrequest-keepzoom"},{"id":"tmux.Window.SelectPane","name":"SelectPane","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) SelectPane(\n\tctx context.Context,\n\trequest WindowSelectPaneRequest,\n) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"WindowSelectPaneRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(Pane, error)"}],"doc":{"summary":"SelectPane makes an exact or relative pane active in the receiver's exact winlink without selecting the window in its session. Target must belong to that same SessionID and WindowID; a PaneID alone does not identify a linked view. The returned [Pane] is the freshly materialized active pane in the receiver context, not a canonical ID-only view.","body":"Command or refresh failures return zero because active-pane selection has no\nreliable partial identity. Transport errors are delivery-ambiguous."},"source":{"file":"tmux/window_pane_topology.go","line":133,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.SelectPane","product":"core","slug":"tmux-window-selectpane"},{"id":"tmux.Pane.Select","name":"Select","kind":"method","modifiers":[],"parent":"tmux.Pane","signatures":[{"raw":"func (p Pane) Select(ctx context.Context, request PaneSelectRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"PaneSelectRequest"}],"receiver":{"name":"p","type":"Pane"},"returns":"(Pane, error)"}],"doc":{"summary":"Select applies select-pane to the receiver's exact linked-pane view. Direction makes an adjacent pane active, but the returned [Pane] is a fresh exact refresh of the receiver rather than the newly active pane. With no Direction, Mark, or Input, the receiver becomes active. Mark changes the server-wide marked pane without selection; Input changes the receiver's input state without selection. None of these modes selects the window in its session or promises client focus.","body":"A refresh failure returns the receiver with the error; earlier failures return zero."},"source":{"file":"tmux/window_pane_topology.go","line":186,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Pane.Select","product":"core","slug":"tmux-pane-select"},{"id":"tmux.Window.LastPane","name":"LastPane","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) LastPane(ctx context.Context, request LastPaneRequest) (Pane, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"LastPaneRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(Pane, error)"}],"doc":{"summary":"LastPane targets the receiver's exact winlink. Its zero request makes the previously active pane active without selecting the window in its session. With an Input mode, tmux changes the previous pane's input state without selecting it; the returned [Pane] is still the freshly materialized active pane in the receiver context.","body":"Command or refresh failures return zero because the active view needs refresh."},"source":{"file":"tmux/window_pane_topology.go","line":213,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.LastPane","product":"core","slug":"tmux-window-lastpane"},{"id":"tmux.Window.Rotate","name":"Rotate","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Rotate(ctx context.Context, request RotateWindowRequest) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"RotateWindowRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(Window, error)"}],"doc":{"summary":"Rotate rotates pane positions in the receiver's exact winlink without selecting the window or promising client focus. It returns a freshly materialized exact [Window] preserving the receiver SessionID, rather than a canonical ID-only view. If the command succeeds but refresh fails, Rotate returns the receiver with that error; earlier failures return zero."},"source":{"file":"tmux/window_pane_topology.go","line":247,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Rotate","product":"core","slug":"tmux-window-rotate"},{"id":"tmux.WindowResizeDirection","name":"WindowResizeDirection","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"WindowResizeDirection selects one directional resize operation on tmux 3.2a or later. Its zero value selects no directional adjustment."},"source":{"file":"tmux/window_resize.go","line":10,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowResizeDirection","product":"core","slug":"tmux-windowresizedirection"},{"id":"tmux.WindowResizeDirectionNone","name":"WindowResizeDirectionNone","kind":"constant","modifiers":[],"signatures":[],"type":"WindowResizeDirection","doc":{"summary":"WindowResizeDirectionNone selects no directional adjustment."},"source":{"file":"tmux/window_resize.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowResizeDirectionNone","product":"core","slug":"tmux-windowresizedirectionnone"},{"id":"tmux.WindowResizeDirectionUp","name":"WindowResizeDirectionUp","kind":"constant","modifiers":[],"signatures":[],"type":"WindowResizeDirection","doc":{"summary":"WindowResizeDirectionUp adjusts the window upward."},"source":{"file":"tmux/window_resize.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowResizeDirectionUp","product":"core","slug":"tmux-windowresizedirectionup"},{"id":"tmux.WindowResizeDirectionDown","name":"WindowResizeDirectionDown","kind":"constant","modifiers":[],"signatures":[],"type":"WindowResizeDirection","doc":{"summary":"WindowResizeDirectionDown adjusts the window downward."},"source":{"file":"tmux/window_resize.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowResizeDirectionDown","product":"core","slug":"tmux-windowresizedirectiondown"},{"id":"tmux.WindowResizeDirectionLeft","name":"WindowResizeDirectionLeft","kind":"constant","modifiers":[],"signatures":[],"type":"WindowResizeDirection","doc":{"summary":"WindowResizeDirectionLeft adjusts the window leftward."},"source":{"file":"tmux/window_resize.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowResizeDirectionLeft","product":"core","slug":"tmux-windowresizedirectionleft"},{"id":"tmux.WindowResizeDirectionRight","name":"WindowResizeDirectionRight","kind":"constant","modifiers":[],"signatures":[],"type":"WindowResizeDirection","doc":{"summary":"WindowResizeDirectionRight adjusts the window rightward."},"source":{"file":"tmux/window_resize.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.WindowResizeDirectionRight","product":"core","slug":"tmux-windowresizedirectionright"},{"id":"tmux.ResizeWindowRequest","name":"ResizeWindowRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ResizeWindowRequest selects one directional, manual, expand, or shrink operation. Height and Width may be set together. A zero request asks tmux to reapply the current manual size. Direction requires a positive Adjustment; that pair, dimensions, Expand, and Shrink are mutually exclusive and are validated before execution. Zero Adjustment, Height, and Width omit their modes; nonzero values must be positive. The request is supported on tmux 3.2a or later."},"source":{"file":"tmux/window_resize.go","line":33,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizeWindowRequest","product":"core","slug":"tmux-resizewindowrequest"},{"id":"tmux.ResizeWindowRequest.Direction","name":"Direction","kind":"attribute","modifiers":[],"parent":"tmux.ResizeWindowRequest","signatures":[],"type":"WindowResizeDirection","doc":{"summary":"Direction selects a directional adjustment; zero selects another mode."},"source":{"file":"tmux/window_resize.go","line":35,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizeWindowRequest.Direction","product":"core","slug":"tmux-resizewindowrequest-direction"},{"id":"tmux.ResizeWindowRequest.Adjustment","name":"Adjustment","kind":"attribute","modifiers":[],"parent":"tmux.ResizeWindowRequest","signatures":[],"type":"int","doc":{"summary":"Adjustment is the required positive amount for Direction; zero omits it."},"source":{"file":"tmux/window_resize.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizeWindowRequest.Adjustment","product":"core","slug":"tmux-resizewindowrequest-adjustment"},{"id":"tmux.ResizeWindowRequest.Height","name":"Height","kind":"attribute","modifiers":[],"parent":"tmux.ResizeWindowRequest","signatures":[],"type":"int","doc":{"summary":"Height sets a positive manual height; zero preserves the current height."},"source":{"file":"tmux/window_resize.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizeWindowRequest.Height","product":"core","slug":"tmux-resizewindowrequest-height"},{"id":"tmux.ResizeWindowRequest.Width","name":"Width","kind":"attribute","modifiers":[],"parent":"tmux.ResizeWindowRequest","signatures":[],"type":"int","doc":{"summary":"Width sets a positive manual width; zero preserves the current width."},"source":{"file":"tmux/window_resize.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizeWindowRequest.Width","product":"core","slug":"tmux-resizewindowrequest-width"},{"id":"tmux.ResizeWindowRequest.Expand","name":"Expand","kind":"attribute","modifiers":[],"parent":"tmux.ResizeWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Expand sets the window to the size of the largest session containing it."},"source":{"file":"tmux/window_resize.go","line":43,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizeWindowRequest.Expand","product":"core","slug":"tmux-resizewindowrequest-expand"},{"id":"tmux.ResizeWindowRequest.Shrink","name":"Shrink","kind":"attribute","modifiers":[],"parent":"tmux.ResizeWindowRequest","signatures":[],"type":"bool","doc":{"summary":"Shrink sets the window to the size of the smallest session containing it."},"source":{"file":"tmux/window_resize.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.ResizeWindowRequest.Shrink","product":"core","slug":"tmux-resizewindowrequest-shrink"},{"id":"tmux.Window.Resize","name":"Resize","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Resize(ctx context.Context, request ResizeWindowRequest) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"ResizeWindowRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(Window, error)"}],"doc":{"summary":"Resize changes the stable window's size through the receiver's exact winlink. It does not select the window or promise any client focus. Resize returns a canonical freshly materialized [Window], which may use another linked session for the same WindowID. If the command succeeds but refresh fails, it returns the receiver with that error; other command failures return a zero Window. A transport or context error can be delivery-ambiguous and no rollback is attempted."},"source":{"file":"tmux/window_resize.go","line":55,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Resize","product":"core","slug":"tmux-window-resize"},{"id":"tmux.RespawnRequest","name":"RespawnRequest","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"RespawnRequest configures restarting a window's or pane's process on tmux 3.2a or later. Its zero value reuses the stored command and directory and requires the target process to be inactive. Nil pointer fields omit their options; nonnil pointers are explicit, including empty strings. There are no mutually exclusive fields. Arguments and environment entries are validated before execution.","body":"Methods read pointer and map values during argument construction; do not\nmutate them concurrently."},"source":{"file":"tmux/window_respawn.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RespawnRequest","product":"core","slug":"tmux-respawnrequest"},{"id":"tmux.RespawnRequest.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"tmux.RespawnRequest","signatures":[],"type":"*string","doc":{"summary":"Command is omitted when nil so tmux reuses the stored command. A nonnil empty string remains an explicit operand."},"source":{"file":"tmux/window_respawn.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RespawnRequest.Command","product":"core","slug":"tmux-respawnrequest-command"},{"id":"tmux.RespawnRequest.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"tmux.RespawnRequest","signatures":[],"type":"*string","doc":{"summary":"StartDirectory expands ~ and ~/... for the current user. Nil reuses the stored directory; a nonnil empty string selects the current directory."},"source":{"file":"tmux/window_respawn.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RespawnRequest.StartDirectory","product":"core","slug":"tmux-respawnrequest-startdirectory"},{"id":"tmux.RespawnRequest.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"tmux.RespawnRequest","signatures":[],"type":"map[string]string","doc":{"summary":"Environment is emitted in lexically sorted key order; nil and an empty map both add no environment entries."},"source":{"file":"tmux/window_respawn.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RespawnRequest.Environment","product":"core","slug":"tmux-respawnrequest-environment"},{"id":"tmux.RespawnRequest.Kill","name":"Kill","kind":"attribute","modifiers":[],"parent":"tmux.RespawnRequest","signatures":[],"type":"bool","doc":{"summary":"Kill terminates an active target process before restarting it."},"source":{"file":"tmux/window_respawn.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.RespawnRequest.Kill","product":"core","slug":"tmux-respawnrequest-kill"},{"id":"tmux.Window.Respawn","name":"Respawn","kind":"method","modifiers":[],"parent":"tmux.Window","signatures":[{"raw":"func (w Window) Respawn(ctx context.Context, request RespawnRequest) (Window, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"request","type":"RespawnRequest"}],"receiver":{"name":"w","type":"Window"},"returns":"(Window, error)"}],"doc":{"summary":"Respawn restarts the stable window process through the receiver's exact winlink. It does not select the window or promise any client focus. Respawn returns a canonical freshly materialized [Window], which may use another linked session for the same WindowID. If the command succeeds but refresh fails, it returns the receiver with that error; earlier failures return zero. Completed stderr produces a redacted [CommandError]; nonzero exits without stderr are followed by refresh."},"source":{"file":"tmux/window_respawn.go","line":39,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmux.Window.Respawn","product":"core","slug":"tmux-window-respawn"},{"id":"tmuxtest.ControlMode","name":"ControlMode","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ControlMode is an attached tmux control client for real-tmux tests. It owns one stdout reader and a temporary-file spool, which preserves unread protocol output until [ControlMode.Close] releases it. Instances come from [NewControlMode]; do not construct them directly or read concurrently."},"source":{"file":"tmux/tmuxtest/control.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ControlMode","product":"core","slug":"tmuxtest-controlmode"},{"id":"tmuxtest.NewControlMode","name":"NewControlMode","kind":"function","modifiers":[],"signatures":[{"raw":"func NewControlMode(\n\tctx context.Context,\n\tt testing.TB,\n\tserver tmux.Server,\n\tsession tmux.Session,\n) *ControlMode","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"server","type":"tmux.Server"},{"name":"session","type":"tmux.Session"}],"returns":"*ControlMode"}],"doc":{"summary":"NewControlMode starts a [ControlMode] attached to session and registers cleanup with t. It requires an explicitly configured process environment and validates that session belongs to server. The client pins the server's frozen effective socket path. Validation or startup failures call [testing.TB.Fatal]. ctx bounds startup and registration only, not the returned client's lifetime."},"source":{"file":"tmux/tmuxtest/control.go","line":49,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.NewControlMode","product":"core","slug":"tmuxtest-newcontrolmode"},{"id":"tmuxtest.ControlMode.CloseContext","name":"CloseContext","kind":"method","modifiers":[],"parent":"tmuxtest.ControlMode","signatures":[{"raw":"func (c *ControlMode) CloseContext(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"*ControlMode"},"returns":"error"}],"doc":{"summary":"CloseContext starts an idempotent shutdown and waits within ctx. Concurrent calls join the same shutdown. If ctx ends after shutdown starts, shutdown continues and a later call may wait for completion; an already-ended ctx does not start shutdown."},"source":{"file":"tmux/tmuxtest/control.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ControlMode.CloseContext","product":"core","slug":"tmuxtest-controlmode-closecontext"},{"id":"tmuxtest.ControlMode.ClientName","name":"ClientName","kind":"method","modifiers":[],"parent":"tmuxtest.ControlMode","signatures":[{"raw":"func (c *ControlMode) ClientName() tmux.ClientName","params":[],"receiver":{"name":"c","type":"*ControlMode"},"returns":"tmux.ClientName"}],"doc":{"summary":"ClientName returns the tmux-assigned identity captured at registration."},"source":{"file":"tmux/tmuxtest/control.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ControlMode.ClientName","product":"core","slug":"tmuxtest-controlmode-clientname"},{"id":"tmuxtest.ControlMode.Server","name":"Server","kind":"method","modifiers":[],"parent":"tmuxtest.ControlMode","signatures":[{"raw":"func (c *ControlMode) Server() tmux.Server","params":[],"receiver":{"name":"c","type":"*ControlMode"},"returns":"tmux.Server"}],"doc":{"summary":"Server returns the validated server handle captured at construction."},"source":{"file":"tmux/tmuxtest/control.go","line":93,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ControlMode.Server","product":"core","slug":"tmuxtest-controlmode-server"},{"id":"tmuxtest.ControlMode.Session","name":"Session","kind":"method","modifiers":[],"parent":"tmuxtest.ControlMode","signatures":[{"raw":"func (c *ControlMode) Session() tmux.Session","params":[],"receiver":{"name":"c","type":"*ControlMode"},"returns":"tmux.Session"}],"doc":{"summary":"Session returns the validated session handle captured at construction."},"source":{"file":"tmux/tmuxtest/control.go","line":98,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ControlMode.Session","product":"core","slug":"tmuxtest-controlmode-session"},{"id":"tmuxtest.ControlMode.Read","name":"Read","kind":"method","modifiers":[],"parent":"tmuxtest.ControlMode","signatures":[{"raw":"func (c *ControlMode) Read(ctx context.Context, data []byte) (int, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"data","type":"[]byte"}],"receiver":{"name":"c","type":"*ControlMode"},"returns":"(int, error)"}],"doc":{"summary":"Read reads control-protocol output within ctx. Exactly one caller may read at a time. After the client exits, callers may drain preserved output through [io.EOF]; after [ControlMode.Close], a non-empty Read returns [os.ErrClosed]. It returns ctx errors while waiting for output."},"source":{"file":"tmux/tmuxtest/control.go","line":106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ControlMode.Read","product":"core","slug":"tmuxtest-controlmode-read"},{"id":"tmuxtest.ControlMode.Wait","name":"Wait","kind":"method","modifiers":[],"parent":"tmuxtest.ControlMode","signatures":[{"raw":"func (c *ControlMode) Wait(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"c","type":"*ControlMode"},"returns":"error"}],"doc":{"summary":"Wait blocks until the control client exits or ctx ends. It does not stop or close the client; use [ControlMode.Close] to release it."},"source":{"file":"tmux/tmuxtest/control.go","line":112,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ControlMode.Wait","product":"core","slug":"tmuxtest-controlmode-wait"},{"id":"tmuxtest.ControlMode.Close","name":"Close","kind":"method","modifiers":[],"parent":"tmuxtest.ControlMode","signatures":[{"raw":"func (c *ControlMode) Close() error","params":[],"receiver":{"name":"c","type":"*ControlMode"},"returns":"error"}],"doc":{"summary":"Close stops the control client and releases its output spool. It is safe to call concurrently and more than once."},"source":{"file":"tmux/tmuxtest/control.go","line":123,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ControlMode.Close","product":"core","slug":"tmuxtest-controlmode-close"},{"id":"tmuxtest.ServerOptions","name":"ServerOptions","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ServerOptions configures a harness-owned [tmux.Server]. All inputs are copied before filesystem or process operations, so callers retain ownership."},"source":{"file":"tmux/tmuxtest/harness.go","line":97,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ServerOptions","product":"core","slug":"tmuxtest-serveroptions"},{"id":"tmuxtest.ServerOptions.Binary","name":"Binary","kind":"attribute","modifiers":[],"parent":"tmuxtest.ServerOptions","signatures":[],"type":"string","doc":{"summary":"Binary is the tmux executable. An empty value resolves tmux from PATH."},"source":{"file":"tmux/tmuxtest/harness.go","line":99,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ServerOptions.Binary","product":"core","slug":"tmuxtest-serveroptions-binary"},{"id":"tmuxtest.ServerOptions.Config","name":"Config","kind":"attribute","modifiers":[],"parent":"tmuxtest.ServerOptions","signatures":[],"type":"[]byte","doc":{"summary":"Config is appended to the harness-owned config file; it cannot replace the private file that prevents user configuration from loading."},"source":{"file":"tmux/tmuxtest/harness.go","line":102,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ServerOptions.Config","product":"core","slug":"tmuxtest-serveroptions-config"},{"id":"tmuxtest.ServerOptions.ProcessEnvironment","name":"ProcessEnvironment","kind":"attribute","modifiers":[],"parent":"tmuxtest.ServerOptions","signatures":[],"type":"[]string","doc":{"summary":"ProcessEnvironment supplies the server environment. Nil snapshots the current process environment, while a non-nil empty slice remains empty. Tmux targeting variables are removed in either case."},"source":{"file":"tmux/tmuxtest/harness.go","line":106,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ServerOptions.ProcessEnvironment","product":"core","slug":"tmuxtest-serveroptions-processenvironment"},{"id":"tmuxtest.ServerOptions.InitialSession","name":"InitialSession","kind":"attribute","modifiers":[],"parent":"tmuxtest.ServerOptions","signatures":[],"type":"*tmux.NewSessionRequest","doc":{"summary":"InitialSession starts the daemon with this copied request. Nil returns a lazy bare server; a later tmux command may start it."},"source":{"file":"tmux/tmuxtest/harness.go","line":109,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ServerOptions.InitialSession","product":"core","slug":"tmuxtest-serveroptions-initialsession"},{"id":"tmuxtest.ServerOptions.FixedShell","name":"FixedShell","kind":"attribute","modifiers":[],"parent":"tmuxtest.ServerOptions","signatures":[],"type":"bool","doc":{"summary":"FixedShell gives panes without an explicit command a POSIX shell with no startup files and the prompt ShellPrompt. RunInPane sets it; the default preserves tmux process behavior for tests that need it."},"source":{"file":"tmux/tmuxtest/harness.go","line":113,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ServerOptions.FixedShell","product":"core","slug":"tmuxtest-serveroptions-fixedshell"},{"id":"tmuxtest.ShellPrompt","name":"ShellPrompt","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"ShellPrompt is the prompt drawn when [ServerOptions.FixedShell] is enabled."},"source":{"file":"tmux/tmuxtest/harness.go","line":117,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ShellPrompt","product":"core","slug":"tmuxtest-shellprompt"},{"id":"tmuxtest.SuiteRootTagVariable","name":"SuiteRootTagVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"SuiteRootTagVariable names the environment variable that tags a suite's temporary root. go test runs packages in parallel and every suite among them creates a root beside the others, so a test spawning a child suite sets this to tell its child's root from theirs."},"source":{"file":"tmux/tmuxtest/harness.go","line":224,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.SuiteRootTagVariable","product":"core","slug":"tmuxtest-suiteroottagvariable"},{"id":"tmuxtest.Main","name":"Main","kind":"function","modifiers":[],"signatures":[{"raw":"func Main(m *testing.M) int","params":[{"name":"m","type":"*testing.M"}],"returns":"int"}],"doc":{"summary":"Main runs the one-call package lifecycle for tmuxtest. It prepares short temporary paths, redirects [suiteEnvironment] into them, runs m, cleans registered servers, restores the environment, and returns the final status. TestMain should return its result through [os.Exit]."},"source":{"file":"tmux/tmuxtest/harness.go","line":237,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.Main","product":"core","slug":"tmuxtest-main"},{"id":"tmuxtest.NewServer","name":"NewServer","kind":"function","modifiers":[],"signatures":[{"raw":"func NewServer(ctx context.Context, t testing.TB) tmux.Server","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"}],"returns":"tmux.Server"}],"doc":{"summary":"NewServer starts an isolated [tmux.Server] with a session named \"work\". Startup uses ctx and the harness timeout, whichever ends first. It registers bounded cleanup with t; setup failures call [testing.TB.Fatal]. The context does not govern later server cleanup or daemon lifetime."},"source":{"file":"tmux/tmuxtest/harness.go","line":307,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.NewServer","product":"core","slug":"tmuxtest-newserver"},{"id":"tmuxtest.NewServerWithOptions","name":"NewServerWithOptions","kind":"function","modifiers":[],"signatures":[{"raw":"func NewServerWithOptions(\n\tctx context.Context,\n\tt testing.TB,\n\toptions ServerOptions,\n) tmux.Server","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"options","type":"ServerOptions"}],"returns":"tmux.Server"}],"doc":{"summary":"NewServerWithOptions prepares an isolated harness-owned [tmux.Server] from options. Initial startup uses ctx and the harness timeout, whichever ends first. The daemon starts only when [ServerOptions.InitialSession] is non-nil or a later tmux command starts it. It registers bounded cleanup with t; setup failures call [testing.TB.Fatal]. The context does not govern later cleanup or daemon lifetime."},"source":{"file":"tmux/tmuxtest/harness.go","line":320,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.NewServerWithOptions","product":"core","slug":"tmuxtest-newserverwithoptions"},{"id":"tmuxtest.PTYProcess","name":"PTYProcess","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"PTYProcess is a test subprocess that owns an isolated controlling terminal and a memory-backed transcript. It comes from [StartPTYProcess]. Output may be read concurrently through [PTYProcess.Output]; writes are serialized."},"source":{"file":"tmux/tmuxtest/pty_process.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.PTYProcess","product":"core","slug":"tmuxtest-ptyprocess"},{"id":"tmuxtest.StartPTYProcess","name":"StartPTYProcess","kind":"function","modifiers":[],"signatures":[{"raw":"func StartPTYProcess(\n\tctx context.Context,\n\tt testing.TB,\n\tbinary string,\n\targuments []string,\n\tenvironment []string,\n) *PTYProcess","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"binary","type":"string"},{"name":"arguments","type":"[]string"},{"name":"environment","type":"[]string"}],"returns":"*PTYProcess"}],"doc":{"summary":"StartPTYProcess starts binary with a harness-owned controlling terminal and registers bounded cleanup with t. Its start context owns the child lifetime: canceling ctx terminates the child. Arguments and environment are copied. A nil environment inherits the current process environment; a non-nil empty environment remains empty. binary runs directly without a shell. The PTY backend is supported on Linux only; unsupported platforms call [testing.TB.Fatal]. Setup failures also call [testing.TB.Fatal]."},"source":{"file":"tmux/tmuxtest/pty_process.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.StartPTYProcess","product":"core","slug":"tmuxtest-startptyprocess"},{"id":"tmuxtest.PTYProcess.Done","name":"Done","kind":"method","modifiers":[],"parent":"tmuxtest.PTYProcess","signatures":[{"raw":"func (p *PTYProcess) Done() <-chan struct{}","params":[],"receiver":{"name":"p","type":"*PTYProcess"},"returns":"<-chan struct{}"}],"doc":{"summary":"Done is closed when the subprocess exits. It can close before the terminal reader has added the final bytes to [PTYProcess.Output]."},"source":{"file":"tmux/tmuxtest/pty_process.go","line":109,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.PTYProcess.Done","product":"core","slug":"tmuxtest-ptyprocess-done"},{"id":"tmuxtest.PTYProcess.Write","name":"Write","kind":"method","modifiers":[],"parent":"tmuxtest.PTYProcess","signatures":[{"raw":"func (p *PTYProcess) Write(ctx context.Context, input []byte) (int, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"input","type":"[]byte"}],"receiver":{"name":"p","type":"*PTYProcess"},"returns":"(int, error)"}],"doc":{"summary":"Write sends terminal input to the subprocess within ctx. Writes are serialized and can be partial. A waiting caller may cancel before acquiring the writer, and an active write observes ctx cancellation."},"source":{"file":"tmux/tmuxtest/pty_process.go","line":114,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.PTYProcess.Write","product":"core","slug":"tmuxtest-ptyprocess-write"},{"id":"tmuxtest.PTYProcess.Wait","name":"Wait","kind":"method","modifiers":[],"parent":"tmuxtest.PTYProcess","signatures":[{"raw":"func (p *PTYProcess) Wait(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"*PTYProcess"},"returns":"error"}],"doc":{"summary":"Wait waits for process completion and the final output drain, or ctx cancellation. A successful Wait guarantees that [PTYProcess.Output] contains the completed transcript."},"source":{"file":"tmux/tmuxtest/pty_process.go","line":156,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.PTYProcess.Wait","product":"core","slug":"tmuxtest-ptyprocess-wait"},{"id":"tmuxtest.PTYProcess.Output","name":"Output","kind":"method","modifiers":[],"parent":"tmuxtest.PTYProcess","signatures":[{"raw":"func (p *PTYProcess) Output() []byte","params":[],"receiver":{"name":"p","type":"*PTYProcess"},"returns":"[]byte"}],"doc":{"summary":"Output returns a fresh copy of terminal output collected so far. A successful [PTYProcess.Wait] guarantees that the returned transcript includes the final drain."},"source":{"file":"tmux/tmuxtest/pty_process.go","line":173,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.PTYProcess.Output","product":"core","slug":"tmuxtest-ptyprocess-output"},{"id":"tmuxtest.PTYProcess.Close","name":"Close","kind":"method","modifiers":[],"parent":"tmuxtest.PTYProcess","signatures":[{"raw":"func (p *PTYProcess) Close() error","params":[],"receiver":{"name":"p","type":"*PTYProcess"},"returns":"error"}],"doc":{"summary":"Close stops the subprocess if needed and releases the PTY master. It is safe to call concurrently and more than once."},"source":{"file":"tmux/tmuxtest/pty_process.go","line":177,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.PTYProcess.Close","product":"core","slug":"tmuxtest-ptyprocess-close"},{"id":"tmuxtest.PTYProcess.CloseContext","name":"CloseContext","kind":"method","modifiers":[],"parent":"tmuxtest.PTYProcess","signatures":[{"raw":"func (p *PTYProcess) CloseContext(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"p","type":"*PTYProcess"},"returns":"error"}],"doc":{"summary":"CloseContext starts an idempotent shutdown and waits within ctx. Concurrent calls join the same shutdown. If ctx ends after shutdown starts, shutdown continues and a later call may wait for completion; an already-ended ctx does not start shutdown."},"source":{"file":"tmux/tmuxtest/pty_process.go","line":189,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.PTYProcess.CloseContext","product":"core","slug":"tmuxtest-ptyprocess-closecontext"},{"id":"tmuxtest.TemporaryNamePrefix","name":"TemporaryNamePrefix","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"TemporaryNamePrefix prefixes names generated by [NewSession] and [NewWindow]."},"source":{"file":"tmux/tmuxtest/resources.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.TemporaryNamePrefix","product":"core","slug":"tmuxtest-temporarynameprefix"},{"id":"tmuxtest.NewSession","name":"NewSession","kind":"function","modifiers":[],"signatures":[{"raw":"func NewSession(\n\tctx context.Context,\n\tt testing.TB,\n\tserver tmux.Server,\n\trequest tmux.NewSessionRequest,\n) tmux.Session","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"server","type":"tmux.Server"},{"name":"request","type":"tmux.NewSessionRequest"}],"returns":"tmux.Session"}],"doc":{"summary":"NewSession creates a test-owned [tmux.Session] and registers cleanup against its stable ID. An empty [tmux.NewSessionRequest.Name] receives a collision-checked temporary name. The request and referenced values are copied before tmux is called, and setup failures call [testing.TB.Fatal]. Cleanup belongs to t rather than ctx and continues to target the session if it is renamed."},"source":{"file":"tmux/tmuxtest/resources.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.NewSession","product":"core","slug":"tmuxtest-newsession"},{"id":"tmuxtest.NewWindow","name":"NewWindow","kind":"function","modifiers":[],"signatures":[{"raw":"func NewWindow(\n\tctx context.Context,\n\tt testing.TB,\n\tsession tmux.Session,\n\trequest tmux.NewWindowRequest,\n) tmux.Window","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"session","type":"tmux.Session"},{"name":"request","type":"tmux.NewWindowRequest"}],"returns":"tmux.Window"}],"doc":{"summary":"NewWindow creates a test-owned [tmux.Window] and registers cleanup against its stable ID. A nil [tmux.NewWindowRequest.Name] receives a collision-checked temporary name; an empty non-nil name remains explicit. The request and referenced values are copied before tmux is called, and setup failures call [testing.TB.Fatal]. Cleanup belongs to t rather than ctx and follows the window if it is moved."},"source":{"file":"tmux/tmuxtest/resources.go","line":69,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.NewWindow","product":"core","slug":"tmuxtest-newwindow"},{"id":"tmuxtest.Screen","name":"Screen","kind":"function","modifiers":[],"signatures":[{"raw":"func Screen(ctx context.Context, t testing.TB, pane tmux.Pane) []string","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"pane","type":"tmux.Pane"}],"returns":"[]string"}],"doc":{"summary":"Screen returns the pane's visible lines, top to bottom, with tmux's trailing blank lines removed.","body":"Scrolled-out output is excluded. Use [tmux.Pane.Capture] with\n[tmux.CaptureBoundary] to read scrollback.\n\nRead failures call [testing.TB.Fatal]."},"source":{"file":"tmux/tmuxtest/screen.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.Screen","product":"core","slug":"tmuxtest-screen"},{"id":"tmuxtest.WaitForText","name":"WaitForText","kind":"function","modifiers":[],"signatures":[{"raw":"func WaitForText(ctx context.Context, t testing.TB, pane tmux.Pane, text string)","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"pane","type":"tmux.Pane"},{"name":"text","type":"string"}]}],"doc":{"summary":"WaitForText blocks until some line of the pane's screen contains text.","body":"A pane that never shows text fails the test with the screen it last read."},"source":{"file":"tmux/tmuxtest/screen.go","line":41,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.WaitForText","product":"core","slug":"tmuxtest-waitfortext"},{"id":"tmuxtest.WaitForLine","name":"WaitForLine","kind":"function","modifiers":[],"signatures":[{"raw":"func WaitForLine(ctx context.Context, t testing.TB, pane tmux.Pane, line string)","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"pane","type":"tmux.Pane"},{"name":"line","type":"string"}]}],"doc":{"summary":"WaitForLine blocks until some line of the pane's screen is exactly line.","body":"A pane that never shows line fails the test with the screen it last read."},"source":{"file":"tmux/tmuxtest/screen.go","line":57,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.WaitForLine","product":"core","slug":"tmuxtest-waitforline"},{"id":"tmuxtest.WaitForScreen","name":"WaitForScreen","kind":"function","modifiers":[],"signatures":[{"raw":"func WaitForScreen(\n\tctx context.Context,\n\tt testing.TB,\n\tpane tmux.Pane,\n\twant string,\n\tmatch func(screen []string) bool,\n)","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"pane","type":"tmux.Pane"},{"name":"want","type":"string"},{"name":"match","type":"func(screen []string) bool"}]}],"doc":{"summary":"WaitForScreen blocks until the pane's screen satisfies match.","body":"want is the noun phrase used in the failure message.\n\nmatch receives a newly read screen and must not retain it."},"source":{"file":"tmux/tmuxtest/screen.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.WaitForScreen","product":"core","slug":"tmuxtest-waitforscreen"},{"id":"tmuxtest.WaitForShellReady","name":"WaitForShellReady","kind":"function","modifiers":[],"signatures":[{"raw":"func WaitForShellReady(ctx context.Context, t testing.TB, pane tmux.Pane)","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"pane","type":"tmux.Pane"}]}],"doc":{"summary":"WaitForShellReady blocks until the pane first shows output. With [ServerOptions.FixedShell], that expected first output is the harness prompt and serves as readiness evidence; custom shell startup output may not.","body":"[RunInPane] calls it, and a test building its own pane should too."},"source":{"file":"tmux/tmuxtest/screen.go","line":103,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.WaitForShellReady","product":"core","slug":"tmuxtest-waitforshellready"},{"id":"tmuxtest.Type","name":"Type","kind":"function","modifiers":[],"signatures":[{"raw":"func Type(ctx context.Context, t testing.TB, pane tmux.Pane, command string)","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"pane","type":"tmux.Pane"},{"name":"command","type":"string"}]}],"doc":{"summary":"Type sends command to the pane and submits it, as a person at the keyboard would.","body":"command is sent literally. Type returns when tmux accepts the keys, before the\nshell finishes; follow it with a wait when completion matters."},"source":{"file":"tmux/tmuxtest/screen.go","line":115,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.Type","product":"core","slug":"tmuxtest-type"},{"id":"tmuxtest.TypeAndWait","name":"TypeAndWait","kind":"function","modifiers":[],"signatures":[{"raw":"func TypeAndWait(ctx context.Context, t testing.TB, pane tmux.Pane, command string)","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"pane","type":"tmux.Pane"},{"name":"command","type":"string"}]}],"doc":{"summary":"TypeAndWait sends command to the pane and blocks until it has finished.","body":"It appends and waits for a unique marker whether the command succeeds or\nfails. It does not return the command's exit status."},"source":{"file":"tmux/tmuxtest/screen.go","line":129,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.TypeAndWait","product":"core","slug":"tmuxtest-typeandwait"},{"id":"tmuxtest.RunInPane","name":"RunInPane","kind":"function","modifiers":[],"signatures":[{"raw":"func RunInPane(ctx context.Context, t testing.TB, command string) tmux.Pane","params":[{"name":"ctx","type":"context.Context"},{"name":"t","type":"testing.TB"},{"name":"command","type":"string"}],"returns":"tmux.Pane"}],"doc":{"summary":"RunInPane creates an isolated pane, waits for its startup-file-free POSIX shell, and submits command with [Type]. It does not wait for command to start or finish. Resources belong to t; setup failures call [testing.TB.Fatal]. Use [NewServerWithOptions] for custom topology or configuration."},"source":{"file":"tmux/tmuxtest/screen.go","line":155,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.RunInPane","product":"core","slug":"tmuxtest-runinpane"},{"id":"tmuxtest.ScriptedCommand","name":"ScriptedCommand","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ScriptedCommand is one answer a scripted tmux gives. The first matching entry wins, and an invocation nothing matches exits 1 saying so."},"source":{"file":"tmux/tmuxtest/scripted.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ScriptedCommand","product":"core","slug":"tmuxtest-scriptedcommand"},{"id":"tmuxtest.ScriptedCommand.Contains","name":"Contains","kind":"attribute","modifiers":[],"parent":"tmuxtest.ScriptedCommand","signatures":[],"type":"[]string","doc":{"summary":"Contains selects the invocations this entry answers: one matches when its arguments contain every string listed, so \"list-sessions\" answers that subcommand whatever flags surround it. Empty matches every invocation."},"source":{"file":"tmux/tmuxtest/scripted.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ScriptedCommand.Contains","product":"core","slug":"tmuxtest-scriptedcommand-contains"},{"id":"tmuxtest.ScriptedCommand.Stdout","name":"Stdout","kind":"attribute","modifiers":[],"parent":"tmuxtest.ScriptedCommand","signatures":[],"type":"string","doc":{"summary":"Stdout is written to standard output exactly, newlines included."},"source":{"file":"tmux/tmuxtest/scripted.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ScriptedCommand.Stdout","product":"core","slug":"tmuxtest-scriptedcommand-stdout"},{"id":"tmuxtest.ScriptedCommand.Stderr","name":"Stderr","kind":"attribute","modifiers":[],"parent":"tmuxtest.ScriptedCommand","signatures":[],"type":"string","doc":{"summary":"Stderr is written to standard error exactly, newlines included. This package reads a completed failure from stderr rather than from an exit code, so an entry standing in for one sets this."},"source":{"file":"tmux/tmuxtest/scripted.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ScriptedCommand.Stderr","product":"core","slug":"tmuxtest-scriptedcommand-stderr"},{"id":"tmuxtest.ScriptedCommand.ExitCode","name":"ExitCode","kind":"attribute","modifiers":[],"parent":"tmuxtest.ScriptedCommand","signatures":[],"type":"int","doc":{"summary":"ExitCode is the status the invocation exits with."},"source":{"file":"tmux/tmuxtest/scripted.go","line":26,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ScriptedCommand.ExitCode","product":"core","slug":"tmuxtest-scriptedcommand-exitcode"},{"id":"tmuxtest.ScriptedTmux","name":"ScriptedTmux","kind":"function","modifiers":[],"signatures":[{"raw":"func ScriptedTmux(t testing.TB, script ...ScriptedCommand) string","params":[{"name":"t","type":"testing.TB"},{"name":"script","type":"ScriptedCommand","variadic":"positional"}],"returns":"string"}],"doc":{"summary":"ScriptedTmux writes an executable that answers tmux invocations from script and returns its absolute path, for [tmux.ServerOptions.Binary]. It is how a test drives code that uses this package without a tmux to drive:","body":"```go\nserver, err := tmux.NewServer(tmux.ServerOptions{\n\tBinary: tmuxtest.ScriptedTmux(t,\n\t\ttmuxtest.ScriptedCommand{Contains: []string{\"-V\"}, Stdout: \"tmux 3.7\\n\"},\n\t\ttmuxtest.ScriptedCommand{\n\t\t\tContains: []string{\"kill-pane\"},\n\t\t\tStderr: \"can't find pane: %7\\n\",\n\t\t\tExitCode: 1,\n\t\t},\n\t),\n})\n```\n\nThe executable is removed with the test. It answers commands only: opening a\ncontrol connection or a notification stream speaks tmux's control protocol,\nwhich a script cannot, so code that opens one needs [NewServer] and a real\ntmux."},"source":{"file":"tmux/tmuxtest/scripted.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.ScriptedTmux","product":"core","slug":"tmuxtest-scriptedtmux"},{"id":"tmuxtest.WaitFor","name":"WaitFor","kind":"function","modifiers":[],"signatures":[{"raw":"func WaitFor(\n\tctx context.Context,\n\tinterval time.Duration,\n\tcondition func(context.Context) (bool, error),\n) error","params":[{"name":"ctx","type":"context.Context"},{"name":"interval","type":"time.Duration"},{"name":"condition","type":"func(context.Context) (bool, error)"}],"returns":"error"}],"doc":{"summary":"WaitFor checks condition serially and immediately, then after each interval, until it succeeds, returns an error, or ctx ends. It validates interval, condition, and ctx in that order: interval must be positive, condition must be non-nil, and an already-ended context prevents every check. Condition errors and context errors are returned unchanged. A running condition receives ctx and must observe it itself; WaitFor cannot interrupt the condition."},"source":{"file":"tmux/tmuxtest/wait.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxtest.WaitFor","product":"core","slug":"tmuxtest-waitfor"},{"id":"tmuxq.Filter","name":"Filter","kind":"struct","modifiers":[],"signatures":[],"typeParams":["T any"],"typeParameters":[{"name":"T","bound":"any"}],"doc":{"summary":"Filter is anything that compiles itself into a predicate over T, which is what the tmux package's generated model filters do. It exists so a filter and a query can meet without this package naming a model."},"source":{"file":"tmuxq/filter.go","line":8,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.Filter","product":"core","slug":"tmuxq-filter"},{"id":"tmuxq.Matching","name":"Matching","kind":"function","modifiers":[],"signatures":[{"raw":"func Matching[T any](values []T, filter Filter[T]) ([]T, error)","params":[{"name":"values","type":"[]T"},{"name":"filter","type":"Filter[T]"}],"returns":"([]T, error)","typeParams":["T any"],"typeParameters":[{"name":"T","bound":"any"}]}],"doc":{"summary":"Matching returns a fresh slice of shallow copies for values that filter accepts, retaining their source order, and reports the one error a filter can have rather than leaving it for the caller to unpack first. It evaluates every input value, so a no-match result is an empty slice.","body":"```go\nactive, err := tmuxq.Matching(snapshot.Panes(), tmux.PaneActiveIs(true))\n```"},"source":{"file":"tmuxq/filter.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.Matching","product":"core","slug":"tmuxq-matching"},{"id":"tmuxq.MatchingSeq","name":"MatchingSeq","kind":"function","modifiers":[],"signatures":[{"raw":"func MatchingSeq[T any](values iter.Seq[T], filter Filter[T]) (iter.Seq[T], error)","params":[{"name":"values","type":"iter.Seq[T]"},{"name":"filter","type":"Filter[T]"}],"returns":"(iter.Seq[T], error)","typeParams":["T any"],"typeParameters":[{"name":"T","bound":"any"}]}],"doc":{"summary":"MatchingSeq returns a lazy sequence of shallow copies for values that filter accepts, retaining source order. The filter is compiled before iteration begins, so an invalid filter is an error here rather than a sequence that yields nothing."},"source":{"file":"tmuxq/filter.go","line":32,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.MatchingSeq","product":"core","slug":"tmuxq-matchingseq"},{"id":"tmuxq.ErrNoMatch","name":"ErrNoMatch","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrNoMatch identifies an ExactlyOne or ExactlyOneSeq query with no matching value. Cardinality errors can be checked with errors.Is."},"source":{"file":"tmuxq/query.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.ErrNoMatch","product":"core","slug":"tmuxq-errnomatch"},{"id":"tmuxq.ErrMultipleMatches","name":"ErrMultipleMatches","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrMultipleMatches identifies an ExactlyOne or ExactlyOneSeq query with more than one matching value. The queries stop when they find the second match. Cardinality errors can be checked with errors.Is."},"source":{"file":"tmuxq/query.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.ErrMultipleMatches","product":"core","slug":"tmuxq-errmultiplematches"},{"id":"tmuxq.Where","name":"Where","kind":"function","modifiers":[],"signatures":[{"raw":"func Where[T any](values []T, predicate func(*T) bool) []T","params":[{"name":"values","type":"[]T"},{"name":"predicate","type":"func(*T) bool"}],"returns":"[]T","typeParams":["T any"],"typeParameters":[{"name":"T","bound":"any"}]}],"doc":{"summary":"Where returns a fresh slice of shallow copies for values accepted by predicate, retaining their source order. It evaluates every input value, so a no-match result is an empty slice."},"source":{"file":"tmuxq/query.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.Where","product":"core","slug":"tmuxq-where"},{"id":"tmuxq.First","name":"First","kind":"function","modifiers":[],"signatures":[{"raw":"func First[T any](values []T, predicate func(*T) bool) (T, bool)","params":[{"name":"values","type":"[]T"},{"name":"predicate","type":"func(*T) bool"}],"returns":"(T, bool)","typeParams":["T any"],"typeParameters":[{"name":"T","bound":"any"}]}],"doc":{"summary":"First returns a shallow copy of the first source-ordered value accepted by predicate and stops evaluating later values. If no value matches, it returns the zero value of T and false."},"source":{"file":"tmuxq/query.go","line":37,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.First","product":"core","slug":"tmuxq-first"},{"id":"tmuxq.ExactlyOne","name":"ExactlyOne","kind":"function","modifiers":[],"signatures":[{"raw":"func ExactlyOne[T any](values []T, predicate func(*T) bool) (T, error)","params":[{"name":"values","type":"[]T"},{"name":"predicate","type":"func(*T) bool"}],"returns":"(T, error)","typeParams":["T any"],"typeParameters":[{"name":"T","bound":"any"}]}],"doc":{"summary":"ExactlyOne returns a shallow copy when exactly one source-ordered value is accepted by predicate. It examines values until source exhaustion confirms a sole match, or stops at the second match. It returns the zero value of T with [ErrNoMatch] for no matches or [ErrMultipleMatches] for multiple matches; callers can classify either error with [errors.Is]."},"source":{"file":"tmuxq/query.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.ExactlyOne","product":"core","slug":"tmuxq-exactlyone"},{"id":"tmuxq.WhereSeq","name":"WhereSeq","kind":"function","modifiers":[],"signatures":[{"raw":"func WhereSeq[T any](values iter.Seq[T], predicate func(*T) bool) iter.Seq[T]","params":[{"name":"values","type":"iter.Seq[T]"},{"name":"predicate","type":"func(*T) bool"}],"returns":"iter.Seq[T]","typeParams":["T any"],"typeParameters":[{"name":"T","bound":"any"}]}],"doc":{"summary":"WhereSeq returns a lazy sequence of shallow copies for values accepted by predicate, retaining source order. It does not pull values until the result is iterated. When its consumer stops, WhereSeq stops pulling from values. For an infinite input, it runs until its consumer stops."},"source":{"file":"tmuxq/query.go","line":79,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.WhereSeq","product":"core","slug":"tmuxq-whereseq"},{"id":"tmuxq.FirstSeq","name":"FirstSeq","kind":"function","modifiers":[],"signatures":[{"raw":"func FirstSeq[T any](values iter.Seq[T], predicate func(*T) bool) (T, bool)","params":[{"name":"values","type":"iter.Seq[T]"},{"name":"predicate","type":"func(*T) bool"}],"returns":"(T, bool)","typeParams":["T any"],"typeParameters":[{"name":"T","bound":"any"}]}],"doc":{"summary":"FirstSeq returns a shallow copy of the first source-ordered sequence value accepted by predicate and stops pulling later values. If no value matches, it returns the zero value of T and false. With an infinite input that never matches, FirstSeq does not return."},"source":{"file":"tmuxq/query.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.FirstSeq","product":"core","slug":"tmuxq-firstseq"},{"id":"tmuxq.ExactlyOneSeq","name":"ExactlyOneSeq","kind":"function","modifiers":[],"signatures":[{"raw":"func ExactlyOneSeq[T any](values iter.Seq[T], predicate func(*T) bool) (T, error)","params":[{"name":"values","type":"iter.Seq[T]"},{"name":"predicate","type":"func(*T) bool"}],"returns":"(T, error)","typeParams":["T any"],"typeParameters":[{"name":"T","bound":"any"}]}],"doc":{"summary":"ExactlyOneSeq returns a shallow copy when exactly one source-ordered sequence value is accepted by predicate. It stops pulling at the second match. If input ends with no matches, it returns the zero value of T with [ErrNoMatch]; if it finds a second match, it returns the zero value of T with [ErrMultipleMatches]. Callers can classify either error with [errors.Is]. With an infinite input, ExactlyOneSeq returns only after a second match; it cannot confirm a no-match or exactly-one result without source exhaustion."},"source":{"file":"tmuxq/query.go","line":112,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"tmuxq.ExactlyOneSeq","product":"core","slug":"tmuxq-exactlyoneseq"},{"id":"workspace.Workspace.InitialSessionRequest","name":"InitialSessionRequest","kind":"method","modifiers":[],"parent":"workspace.Workspace","signatures":[{"raw":"func (w Workspace) InitialSessionRequest() (tmux.NewSessionRequest, error)","params":[],"receiver":{"name":"w","type":"Workspace"},"returns":"(tmux.NewSessionRequest, error)"}],"doc":{"summary":"InitialSessionRequest validates w and returns the request that creates its session and initial window. Use the resulting materialized session with [BuildInto] to continue the build over a caller-owned transport."},"source":{"file":"workspace/builder.go","line":17,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.InitialSessionRequest","product":"workspace","apiScope":"exported","slug":"workspace-workspace-initialsessionrequest"},{"id":"workspace.Build","name":"Build","kind":"function","modifiers":[],"signatures":[{"raw":"func Build(ctx context.Context, server tmux.Server, workspace Workspace) (tmux.Session, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"server","type":"tmux.Server"},{"name":"workspace","type":"Workspace"}],"returns":"(tmux.Session, error)"}],"doc":{"summary":"Build creates the workspace on server and returns the created session.","body":"Build is not atomic. A failure after session creation returns that session;\ncompleted mutations remain in tmux. Command failures are not normalized.\nEvery layout is checked against the selected daemon and desired pane count\nbefore session creation. tmux validates geometry when applying each layout.\n\nBuild creates the session and an attached control connection in one process,\nuses that connection for the build, and closes it before returning. The\nreturned Session is not bound to the closed connection. Build verifies that\nthe session remains reachable after closing it. An attached connection may\nfire client hooks and policies.\n\nEach pane receives workspace, window, and pane CommandsBefore, then its own\nCommands. Sleep values pause Build rather than the pane."},"source":{"file":"workspace/builder.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Build","product":"workspace","apiScope":"exported","slug":"workspace-build"},{"id":"workspace.BuildInto","name":"BuildInto","kind":"function","modifiers":[],"signatures":[{"raw":"func BuildInto(ctx context.Context, session tmux.Session, workspace Workspace) error","params":[{"name":"ctx","type":"context.Context"},{"name":"session","type":"tmux.Session"},{"name":"workspace","type":"Workspace"}],"returns":"error"}],"doc":{"summary":"BuildInto populates the initial session described by workspace. The session must already have been created from [Workspace.InitialSessionRequest]. BuildInto uses the session's existing server and transport; it neither creates a session nor opens or owns a connection.","body":"BuildInto is not atomic. A failure leaves completed mutations in tmux.\nEvery layout is checked before changing the initial session."},"source":{"file":"workspace/builder.go","line":87,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.BuildInto","product":"workspace","apiScope":"exported","slug":"workspace-buildinto"},{"id":"workspace.Command","name":"Command","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Command is one command to run in a pane. YAML accepts either a bare string or a mapping, so \"echo hi\" and {cmd: echo hi, sleep_before: 2} are both commands."},"source":{"file":"workspace/command.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Command","product":"workspace","apiScope":"exported","slug":"workspace-command"},{"id":"workspace.Command.Command","name":"Command","kind":"attribute","modifiers":[],"parent":"workspace.Command","signatures":[],"type":"string","doc":{"summary":"Command is the text typed into the pane."},"source":{"file":"workspace/command.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Command.Command","product":"workspace","apiScope":"exported","slug":"workspace-command-command"},{"id":"workspace.Command.SleepBefore","name":"SleepBefore","kind":"attribute","modifiers":[],"parent":"workspace.Command","signatures":[],"type":"time.Duration","doc":{"summary":"SleepBefore delays this command. YAML expresses the duration in seconds, so 0.5 is half a second."},"source":{"file":"workspace/command.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Command.SleepBefore","product":"workspace","apiScope":"exported","slug":"workspace-command-sleepbefore"},{"id":"workspace.Command.SleepAfter","name":"SleepAfter","kind":"attribute","modifiers":[],"parent":"workspace.Command","signatures":[],"type":"time.Duration","doc":{"summary":"SleepAfter delays the commands that follow this one, in the same units."},"source":{"file":"workspace/command.go","line":20,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Command.SleepAfter","product":"workspace","apiScope":"exported","slug":"workspace-command-sleepafter"},{"id":"workspace.Command.Enter","name":"Enter","kind":"attribute","modifiers":[],"parent":"workspace.Command","signatures":[],"type":"*Bool","doc":{"summary":"Enter reports whether to press Enter after the command. Nil presses it, matching tmuxp, where omitting enter runs the command."},"source":{"file":"workspace/command.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Command.Enter","product":"workspace","apiScope":"exported","slug":"workspace-command-enter"},{"id":"workspace.Command.UnmarshalYAML","name":"UnmarshalYAML","kind":"method","modifiers":[],"parent":"workspace.Command","signatures":[{"raw":"func (c *Command) UnmarshalYAML(node *yaml.Node) error","params":[{"name":"node","type":"*yaml.Node"}],"receiver":{"name":"c","type":"*Command"},"returns":"error"}],"doc":{"summary":"UnmarshalYAML decodes a command written as a bare string or as a mapping."},"source":{"file":"workspace/command.go","line":29,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Command.UnmarshalYAML","product":"workspace","apiScope":"exported","slug":"workspace-command-unmarshalyaml"},{"id":"workspace.ErrInvalidWorkspace","name":"ErrInvalidWorkspace","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInvalidWorkspace matches parse and validation failures, but not tmux command failures from [Build]."},"source":{"file":"workspace/workspace.go","line":45,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.ErrInvalidWorkspace","product":"workspace","apiScope":"exported","slug":"workspace-errinvalidworkspace"},{"id":"workspace.Workspace","name":"Workspace","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Workspace is one tmuxp-style session description."},"source":{"file":"workspace/workspace.go","line":48,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace","product":"workspace","apiScope":"exported","slug":"workspace-workspace"},{"id":"workspace.Workspace.SessionName","name":"SessionName","kind":"attribute","modifiers":[],"parent":"workspace.Workspace","signatures":[],"type":"string","doc":{"summary":"SessionName names the created session. It is required."},"source":{"file":"workspace/workspace.go","line":50,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.SessionName","product":"workspace","apiScope":"exported","slug":"workspace-workspace-sessionname"},{"id":"workspace.Workspace.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"workspace.Workspace","signatures":[],"type":"string","doc":{"summary":"StartDirectory is the default working directory for every window and pane that does not set its own."},"source":{"file":"workspace/workspace.go","line":53,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.StartDirectory","product":"workspace","apiScope":"exported","slug":"workspace-workspace-startdirectory"},{"id":"workspace.Workspace.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"workspace.Workspace","signatures":[],"type":"map[string]string","doc":{"summary":"Environment is written to the session after its initial pane exists and before later windows are created."},"source":{"file":"workspace/workspace.go","line":56,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.Environment","product":"workspace","apiScope":"exported","slug":"workspace-workspace-environment"},{"id":"workspace.Workspace.Options","name":"Options","kind":"attribute","modifiers":[],"parent":"workspace.Workspace","signatures":[],"type":"map[string]string","doc":{"summary":"Options are applied after session creation. tmux resolves window-option names against the session's current window."},"source":{"file":"workspace/workspace.go","line":59,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.Options","product":"workspace","apiScope":"exported","slug":"workspace-workspace-options"},{"id":"workspace.Workspace.GlobalOptions","name":"GlobalOptions","kind":"attribute","modifiers":[],"parent":"workspace.Workspace","signatures":[],"type":"map[string]string","doc":{"summary":"GlobalOptions are applied after the initial window exists and before later windows are created."},"source":{"file":"workspace/workspace.go","line":62,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.GlobalOptions","product":"workspace","apiScope":"exported","slug":"workspace-workspace-globaloptions"},{"id":"workspace.Workspace.CommandsBefore","name":"CommandsBefore","kind":"attribute","modifiers":[],"parent":"workspace.Workspace","signatures":[],"type":"[]Command","doc":{"summary":"CommandsBefore run in every pane before that pane's own commands. Window and pane entries add to this list rather than replacing it."},"source":{"file":"workspace/workspace.go","line":65,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.CommandsBefore","product":"workspace","apiScope":"exported","slug":"workspace-workspace-commandsbefore"},{"id":"workspace.Workspace.SuppressHistory","name":"SuppressHistory","kind":"attribute","modifiers":[],"parent":"workspace.Workspace","signatures":[],"type":"*Bool","doc":{"summary":"SuppressHistory prefixes commands with a space unless a window or pane overrides it. Nil suppresses history, matching tmuxp."},"source":{"file":"workspace/workspace.go","line":68,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.SuppressHistory","product":"workspace","apiScope":"exported","slug":"workspace-workspace-suppresshistory"},{"id":"workspace.Workspace.Windows","name":"Windows","kind":"attribute","modifiers":[],"parent":"workspace.Workspace","signatures":[],"type":"[]Window","doc":{"summary":"Windows are created in order. A workspace needs at least one."},"source":{"file":"workspace/workspace.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.Windows","product":"workspace","apiScope":"exported","slug":"workspace-workspace-windows"},{"id":"workspace.Window","name":"Window","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Window is one window in a workspace."},"source":{"file":"workspace/workspace.go","line":74,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window","product":"workspace","apiScope":"exported","slug":"workspace-window"},{"id":"workspace.Window.Name","name":"Name","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"string","doc":{"summary":"Name is the window name. Empty lets tmux choose."},"source":{"file":"workspace/workspace.go","line":76,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.Name","product":"workspace","apiScope":"exported","slug":"workspace-window-name"},{"id":"workspace.Window.Index","name":"Index","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"*int","doc":{"summary":"Index requests an explicit winlink index. Nil uses the next free index."},"source":{"file":"workspace/workspace.go","line":78,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.Index","product":"workspace","apiScope":"exported","slug":"workspace-window-index"},{"id":"workspace.Window.Layout","name":"Layout","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"string","doc":{"summary":"Layout is a tmux layout name applied after the panes exist."},"source":{"file":"workspace/workspace.go","line":80,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.Layout","product":"workspace","apiScope":"exported","slug":"workspace-window-layout"},{"id":"workspace.Window.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"string","doc":{"summary":"StartDirectory overrides the workspace directory for this window."},"source":{"file":"workspace/workspace.go","line":82,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.StartDirectory","product":"workspace","apiScope":"exported","slug":"workspace-window-startdirectory"},{"id":"workspace.Window.Shell","name":"Shell","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"string","doc":{"summary":"Shell replaces the command the window's first pane runs."},"source":{"file":"workspace/workspace.go","line":84,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.Shell","product":"workspace","apiScope":"exported","slug":"workspace-window-shell"},{"id":"workspace.Window.Focus","name":"Focus","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"Bool","doc":{"summary":"Focus selects this window once the workspace is built."},"source":{"file":"workspace/workspace.go","line":86,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.Focus","product":"workspace","apiScope":"exported","slug":"workspace-window-focus"},{"id":"workspace.Window.SuppressHistory","name":"SuppressHistory","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"*Bool","doc":{"summary":"SuppressHistory overrides the workspace setting for this window's panes."},"source":{"file":"workspace/workspace.go","line":88,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.SuppressHistory","product":"workspace","apiScope":"exported","slug":"workspace-window-suppresshistory"},{"id":"workspace.Window.Options","name":"Options","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"map[string]string","doc":{"summary":"Options are applied after the window's initial pane exists and before additional panes are split."},"source":{"file":"workspace/workspace.go","line":91,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.Options","product":"workspace","apiScope":"exported","slug":"workspace-window-options"},{"id":"workspace.Window.OptionsAfter","name":"OptionsAfter","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"map[string]string","doc":{"summary":"OptionsAfter are window options applied once the panes exist, for settings that a later split would otherwise overwrite."},"source":{"file":"workspace/workspace.go","line":94,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.OptionsAfter","product":"workspace","apiScope":"exported","slug":"workspace-window-optionsafter"},{"id":"workspace.Window.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"map[string]string","doc":{"summary":"Environment is written to the session after this window's initial pane exists and before additional panes are split. Repeated names keep the last value written."},"source":{"file":"workspace/workspace.go","line":98,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.Environment","product":"workspace","apiScope":"exported","slug":"workspace-window-environment"},{"id":"workspace.Window.CommandsBefore","name":"CommandsBefore","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"[]Command","doc":{"summary":"CommandsBefore run in each of this window's panes before the pane's own commands, after the workspace's."},"source":{"file":"workspace/workspace.go","line":101,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.CommandsBefore","product":"workspace","apiScope":"exported","slug":"workspace-window-commandsbefore"},{"id":"workspace.Window.Panes","name":"Panes","kind":"attribute","modifiers":[],"parent":"workspace.Window","signatures":[],"type":"[]Pane","doc":{"summary":"Panes are created in order. The first pane is the window's initial pane; each later one splits the window."},"source":{"file":"workspace/workspace.go","line":104,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.Panes","product":"workspace","apiScope":"exported","slug":"workspace-window-panes"},{"id":"workspace.Pane","name":"Pane","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Pane is one pane in a window. YAML accepts either a bare command string or a mapping, so \"echo hello\" and {shell_command: echo hello} are equivalent."},"source":{"file":"workspace/workspace.go","line":111,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane","product":"workspace","apiScope":"exported","slug":"workspace-pane"},{"id":"workspace.Pane.Commands","name":"Commands","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"[]Command","doc":{"summary":"Commands run in the pane, in order."},"source":{"file":"workspace/workspace.go","line":113,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.Commands","product":"workspace","apiScope":"exported","slug":"workspace-pane-commands"},{"id":"workspace.Pane.CommandsBefore","name":"CommandsBefore","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"[]Command","doc":{"summary":"CommandsBefore run before Commands, after the window's."},"source":{"file":"workspace/workspace.go","line":115,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.CommandsBefore","product":"workspace","apiScope":"exported","slug":"workspace-pane-commandsbefore"},{"id":"workspace.Pane.StartDirectory","name":"StartDirectory","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"string","doc":{"summary":"StartDirectory overrides the window directory for this pane."},"source":{"file":"workspace/workspace.go","line":117,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.StartDirectory","product":"workspace","apiScope":"exported","slug":"workspace-pane-startdirectory"},{"id":"workspace.Pane.Shell","name":"Shell","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"string","doc":{"summary":"Shell replaces this pane's command. On the first pane it conflicts with Window.Shell because tmux creates that pane with the window."},"source":{"file":"workspace/workspace.go","line":120,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.Shell","product":"workspace","apiScope":"exported","slug":"workspace-pane-shell"},{"id":"workspace.Pane.Focus","name":"Focus","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"Bool","doc":{"summary":"Focus selects this pane once its window is built."},"source":{"file":"workspace/workspace.go","line":122,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.Focus","product":"workspace","apiScope":"exported","slug":"workspace-pane-focus"},{"id":"workspace.Pane.SuppressHistory","name":"SuppressHistory","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"*Bool","doc":{"summary":"SuppressHistory overrides the window setting for this pane."},"source":{"file":"workspace/workspace.go","line":124,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.SuppressHistory","product":"workspace","apiScope":"exported","slug":"workspace-pane-suppresshistory"},{"id":"workspace.Pane.Environment","name":"Environment","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"map[string]string","doc":{"summary":"Environment is written to the session after all panes in the window exist and before this pane's commands are sent. Pane entries are processed in order, so repeated names keep the last value written."},"source":{"file":"workspace/workspace.go","line":128,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.Environment","product":"workspace","apiScope":"exported","slug":"workspace-pane-environment"},{"id":"workspace.Pane.Enter","name":"Enter","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"*Bool","doc":{"summary":"Enter applies to every command in this pane unless the command sets its own. Nil presses Enter, matching tmuxp."},"source":{"file":"workspace/workspace.go","line":131,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.Enter","product":"workspace","apiScope":"exported","slug":"workspace-pane-enter"},{"id":"workspace.Pane.SleepBefore","name":"SleepBefore","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"time.Duration","doc":{"summary":"SleepBefore delays before each of this pane's commands. YAML writes it as a number of seconds, matching tmuxp, so 0.5 is half a second."},"source":{"file":"workspace/workspace.go","line":134,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.SleepBefore","product":"workspace","apiScope":"exported","slug":"workspace-pane-sleepbefore"},{"id":"workspace.Pane.SleepAfter","name":"SleepAfter","kind":"attribute","modifiers":[],"parent":"workspace.Pane","signatures":[],"type":"time.Duration","doc":{"summary":"SleepAfter delays after each of this pane's commands, in the same units."},"source":{"file":"workspace/workspace.go","line":136,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.SleepAfter","product":"workspace","apiScope":"exported","slug":"workspace-pane-sleepafter"},{"id":"workspace.Bool","name":"Bool","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Bool accepts YAML booleans and tmuxp's quoted spellings. It is exported so callers can construct optional *Bool fields."},"source":{"file":"workspace/workspace.go","line":141,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Bool","product":"workspace","apiScope":"exported","slug":"workspace-bool"},{"id":"workspace.Bool.UnmarshalYAML","name":"UnmarshalYAML","kind":"method","modifiers":[],"parent":"workspace.Bool","signatures":[{"raw":"func (f *Bool) UnmarshalYAML(node *yaml.Node) error","params":[{"name":"node","type":"*yaml.Node"}],"receiver":{"name":"f","type":"*Bool"},"returns":"error"}],"doc":{"summary":"UnmarshalYAML decodes a boolean written as a boolean or as a string."},"source":{"file":"workspace/workspace.go","line":144,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Bool.UnmarshalYAML","product":"workspace","apiScope":"exported","slug":"workspace-bool-unmarshalyaml"},{"id":"workspace.Workspace.UnmarshalYAML","name":"UnmarshalYAML","kind":"method","modifiers":[],"parent":"workspace.Workspace","signatures":[{"raw":"func (w *Workspace) UnmarshalYAML(node *yaml.Node) error","params":[{"name":"node","type":"*yaml.Node"}],"receiver":{"name":"w","type":"*Workspace"},"returns":"error"}],"doc":{"summary":"UnmarshalYAML decodes the workspace, then its shell_command_before, which accepts one command or a list."},"source":{"file":"workspace/workspace.go","line":167,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.UnmarshalYAML","product":"workspace","apiScope":"exported","slug":"workspace-workspace-unmarshalyaml"},{"id":"workspace.Window.UnmarshalYAML","name":"UnmarshalYAML","kind":"method","modifiers":[],"parent":"workspace.Window","signatures":[{"raw":"func (w *Window) UnmarshalYAML(node *yaml.Node) error","params":[{"name":"node","type":"*yaml.Node"}],"receiver":{"name":"w","type":"*Window"},"returns":"error"}],"doc":{"summary":"UnmarshalYAML decodes the window, then its shell_command_before."},"source":{"file":"workspace/workspace.go","line":192,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Window.UnmarshalYAML","product":"workspace","apiScope":"exported","slug":"workspace-window-unmarshalyaml"},{"id":"workspace.Pane.UnmarshalYAML","name":"UnmarshalYAML","kind":"method","modifiers":[],"parent":"workspace.Pane","signatures":[{"raw":"func (p *Pane) UnmarshalYAML(node *yaml.Node) error","params":[{"name":"node","type":"*yaml.Node"}],"receiver":{"name":"p","type":"*Pane"},"returns":"error"}],"doc":{"summary":"UnmarshalYAML decodes a pane written as a bare command or as a mapping."},"source":{"file":"workspace/workspace.go","line":219,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Pane.UnmarshalYAML","product":"workspace","apiScope":"exported","slug":"workspace-pane-unmarshalyaml"},{"id":"workspace.Parse","name":"Parse","kind":"function","modifiers":[],"signatures":[{"raw":"func Parse(document []byte) (Workspace, error)","params":[{"name":"document","type":"[]byte"}],"returns":"(Workspace, error)"}],"doc":{"summary":"Parse decodes one workspace document. Unknown fields are rejected so a misspelled key fails loudly instead of being dropped."},"source":{"file":"workspace/workspace.go","line":276,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Parse","product":"workspace","apiScope":"exported","slug":"workspace-parse"},{"id":"workspace.Workspace.Validate","name":"Validate","kind":"method","modifiers":[],"parent":"workspace.Workspace","signatures":[{"raw":"func (w Workspace) Validate() error","params":[],"receiver":{"name":"w","type":"Workspace"},"returns":"error"}],"doc":{"summary":"Validate reports all problems joined under [ErrInvalidWorkspace]."},"source":{"file":"workspace/workspace.go","line":291,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.Validate","product":"workspace","apiScope":"exported","slug":"workspace-workspace-validate"},{"id":"workspace.Workspace.MissingDirectories","name":"MissingDirectories","kind":"method","modifiers":[],"parent":"workspace.Workspace","signatures":[{"raw":"func (w Workspace) MissingDirectories() []string","params":[],"receiver":{"name":"w","type":"Workspace"},"returns":"[]string"}],"doc":{"summary":"MissingDirectories returns absent start directories in document order. It is separate from [Workspace.Validate] because a prior command may create them. tmux otherwise falls back to the user's home directory without an error. Names beginning with ~ are resolved as tmux resolves them."},"source":{"file":"workspace/workspace.go","line":407,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"workspace.Workspace.MissingDirectories","product":"workspace","apiScope":"exported","slug":"workspace-workspace-missingdirectories"},{"id":"mcp.AuditEnvironmentVariable","name":"AuditEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"AuditEnvironmentVariable names the variable that turns the record on and says where it goes: \"stderr\", or a path to append to."},"source":{"file":"mcp/audit.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.AuditEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-auditenvironmentvariable"},{"id":"mcp.HandshakeOrdered","name":"HandshakeOrdered","kind":"function","modifiers":[],"signatures":[{"raw":"func HandshakeOrdered(inner mcp.Transport) mcp.Transport","params":[{"name":"inner","type":"mcp.Transport"}],"returns":"mcp.Transport"}],"doc":{"summary":"HandshakeOrdered holds the SDK's early tool-list notification until notifications/initialized; strict legacy clients reject the earlier ordering."},"source":{"file":"mcp/handshake_transport.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.HandshakeOrdered","product":"mcp","apiScope":"exported","slug":"mcp-handshakeordered"},{"id":"mcp.ErrInstanceClosed","name":"ErrInstanceClosed","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrInstanceClosed identifies work refused after instance shutdown starts."},"source":{"file":"mcp/instance.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ErrInstanceClosed","product":"mcp","apiScope":"exported","slug":"mcp-errinstanceclosed"},{"id":"mcp.ErrRequestCapacity","name":"ErrRequestCapacity","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrRequestCapacity identifies a client session closed after it exceeded the server's finite unsettled-call capacity."},"source":{"file":"mcp/instance.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ErrRequestCapacity","product":"mcp","apiScope":"exported","slug":"mcp-errrequestcapacity"},{"id":"mcp.Instance","name":"Instance","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"Instance owns the SDK server, all connected client sessions, and every resource allocated on their behalf. The SDK server is composed so Connect and Run cannot bypass lifecycle tracking."},"source":{"file":"mcp/instance.go","line":30,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.Instance","product":"mcp","apiScope":"exported","slug":"mcp-instance"},{"id":"mcp.ServerSession","name":"ServerSession","kind":"struct","modifiers":[],"signatures":[],"doc":{"summary":"ServerSession owns one SDK session and the resources scoped to its client."},"source":{"file":"mcp/instance.go","line":70,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ServerSession","product":"mcp","apiScope":"exported","slug":"mcp-serversession"},{"id":"mcp.Instance.Connect","name":"Connect","kind":"method","modifiers":[],"parent":"mcp.Instance","signatures":[{"raw":"func (i *Instance) Connect(\n\tctx context.Context,\n\ttransport sdk.Transport,\n\toptions *sdk.ServerSessionOptions,\n) (*ServerSession, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"transport","type":"sdk.Transport"},{"name":"options","type":"*sdk.ServerSessionOptions"}],"receiver":{"name":"i","type":"*Instance"},"returns":"(*ServerSession, error)"}],"doc":{"summary":"Connect starts and tracks one client session. It requires tmux 3.2a or newer and rejects an opaque transport unless [AssumeResponseCommit] marks its response-write contract. Incoming messages remain gated until the SDK session has an installed scope."},"source":{"file":"mcp/instance_connect.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.Instance.Connect","product":"mcp","apiScope":"exported","slug":"mcp-instance-connect"},{"id":"mcp.Instance.Run","name":"Run","kind":"method","modifiers":[],"parent":"mcp.Instance","signatures":[{"raw":"func (i *Instance) Run(ctx context.Context, transport sdk.Transport) error","params":[{"name":"ctx","type":"context.Context"},{"name":"transport","type":"sdk.Transport"}],"receiver":{"name":"i","type":"*Instance"},"returns":"error"}],"doc":{"summary":"Run serves one tracked session until the client, context, or instance ends. Its transport requirements are the same as [Instance.Connect]."},"source":{"file":"mcp/instance_connect.go","line":102,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.Instance.Run","product":"mcp","apiScope":"exported","slug":"mcp-instance-run"},{"id":"mcp.Instance.Close","name":"Close","kind":"method","modifiers":[],"parent":"mcp.Instance","signatures":[{"raw":"func (i *Instance) Close() error","params":[],"receiver":{"name":"i","type":"*Instance"},"returns":"error"}],"doc":{"summary":"Close starts shutdown and waits on a bounded internal context."},"source":{"file":"mcp/instance_lifecycle.go","line":13,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.Instance.Close","product":"mcp","apiScope":"exported","slug":"mcp-instance-close"},{"id":"mcp.Instance.CloseContext","name":"CloseContext","kind":"method","modifiers":[],"parent":"mcp.Instance","signatures":[{"raw":"func (i *Instance) CloseContext(ctx context.Context) error","params":[{"name":"ctx","type":"context.Context"}],"receiver":{"name":"i","type":"*Instance"},"returns":"error"}],"doc":{"summary":"CloseContext starts shutdown unconditionally. ctx bounds only this call's wait; a later call can resume waiting for the same shutdown."},"source":{"file":"mcp/instance_lifecycle.go","line":24,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.Instance.CloseContext","product":"mcp","apiScope":"exported","slug":"mcp-instance-closecontext"},{"id":"mcp.ServerSession.Close","name":"Close","kind":"method","modifiers":[],"parent":"mcp.ServerSession","signatures":[{"raw":"func (s *ServerSession) Close() error","params":[],"receiver":{"name":"s","type":"*ServerSession"},"returns":"error"}],"doc":{"summary":"Close stops scoped work, closes the transport, and joins SDK session cleanup."},"source":{"file":"mcp/instance_lifecycle.go","line":128,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ServerSession.Close","product":"mcp","apiScope":"exported","slug":"mcp-serversession-close"},{"id":"mcp.ServerSession.Wait","name":"Wait","kind":"method","modifiers":[],"parent":"mcp.ServerSession","signatures":[{"raw":"func (s *ServerSession) Wait() error","params":[],"receiver":{"name":"s","type":"*ServerSession"},"returns":"error"}],"doc":{"summary":"Wait waits for client termination and session cleanup."},"source":{"file":"mcp/instance_lifecycle.go","line":143,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ServerSession.Wait","product":"mcp","apiScope":"exported","slug":"mcp-serversession-wait"},{"id":"mcp.MaterializeMinimalConfig","name":"MaterializeMinimalConfig","kind":"function","modifiers":[],"signatures":[{"raw":"func MaterializeMinimalConfig() (string, func() error, error)","params":[],"returns":"(string, func() error, error)"}],"doc":{"summary":"MaterializeMinimalConfig writes the embedded dedicated-server configuration for tmux's -f option. The caller keeps it until the MCP process stops."},"source":{"file":"mcp/minimal_config.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.MaterializeMinimalConfig","product":"mcp","apiScope":"exported","slug":"mcp-materializeminimalconfig"},{"id":"mcp.CapabilitiesResourceURI","name":"CapabilitiesResourceURI","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"CapabilitiesResourceURI is the only MCP resource exposed by this server."},"source":{"file":"mcp/resources.go","line":11,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.CapabilitiesResourceURI","product":"mcp","apiScope":"exported","slug":"mcp-capabilitiesresourceuri"},{"id":"mcp.ErrResponseCommitUnknown","name":"ErrResponseCommitUnknown","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrResponseCommitUnknown identifies a transport whose successful Write may leave one response buffered behind another response in a JSON-RPC batch."},"source":{"file":"mcp/response_transport.go","line":15,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ErrResponseCommitUnknown","product":"mcp","apiScope":"exported","slug":"mcp-errresponsecommitunknown"},{"id":"mcp.AssumeResponseCommit","name":"AssumeResponseCommit","kind":"function","modifiers":[],"signatures":[{"raw":"func AssumeResponseCommit(transport mcp.Transport) mcp.Transport","params":[{"name":"transport","type":"mcp.Transport"}],"returns":"mcp.Transport"}],"doc":{"summary":"AssumeResponseCommit marks transport as committing each response before its Connection.Write returns nil. It does not change transport behavior. Use it only for a transport that rejects JSON-RPC batches or writes every response independently; direct IO and stdio transports are handled automatically."},"source":{"file":"mcp/response_transport.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.AssumeResponseCommit","product":"mcp","apiScope":"exported","slug":"mcp-assumeresponsecommit"},{"id":"mcp.ErrRuntimeTargetBound","name":"ErrRuntimeTargetBound","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"ErrRuntimeTargetBound identifies a target already bound to a terminal Connection. An MCP runtime must own the connection it creates."},"source":{"file":"mcp/runtime.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ErrRuntimeTargetBound","product":"mcp","apiScope":"exported","slug":"mcp-errruntimetargetbound"},{"id":"mcp.Version","name":"Version","kind":"attribute","modifiers":[],"signatures":[],"doc":{"summary":"Version is reported during MCP initialization. Installed binaries derive it from build metadata; source builds use fallbackVersion."},"source":{"file":"mcp/server.go","line":22,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.Version","product":"mcp","apiScope":"exported","slug":"mcp-version"},{"id":"mcp.NewServer","name":"NewServer","kind":"function","modifiers":[],"signatures":[{"raw":"func NewServer(target tmux.Server) (*Instance, error)","params":[{"name":"target","type":"tmux.Server"}],"returns":"(*Instance, error)"}],"doc":{"summary":"NewServer returns a closeable MCP instance exposing target. It rejects an invalid target before allocating instance-owned resources."},"source":{"file":"mcp/server.go","line":144,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.NewServer","product":"mcp","apiScope":"exported","slug":"mcp-newserver"},{"id":"mcp.Run","name":"Run","kind":"function","modifiers":[],"signatures":[{"raw":"func Run(ctx context.Context, target tmux.Server) error","params":[{"name":"ctx","type":"context.Context"},{"name":"target","type":"tmux.Server"}],"returns":"error"}],"doc":{"summary":"Run serves target over stdin and stdout until ctx is done."},"source":{"file":"mcp/server.go","line":251,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.Run","product":"mcp","apiScope":"exported","slug":"mcp-run"},{"id":"mcp.RunDefaultMinimal","name":"RunDefaultMinimal","kind":"function","modifiers":[],"signatures":[{"raw":"func RunDefaultMinimal(ctx context.Context, target tmux.Server) error","params":[{"name":"ctx","type":"context.Context"},{"name":"target","type":"tmux.Server"}],"returns":"error"}],"doc":{"summary":"RunDefaultMinimal serves a package-created default dedicated target. It starts or joins the daemon with a one-use owner marker and grants default teardown only when the marker proves this process created that daemon."},"source":{"file":"mcp/server.go","line":285,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.RunDefaultMinimal","product":"mcp","apiScope":"exported","slug":"mcp-rundefaultminimal"},{"id":"mcp.AdvertisedTools","name":"AdvertisedTools","kind":"function","modifiers":[],"signatures":[{"raw":"func AdvertisedTools(ctx context.Context) ([]*sdk.Tool, error)","params":[{"name":"ctx","type":"context.Context"}],"returns":"([]*sdk.Tool, error)"}],"doc":{"summary":"AdvertisedTools returns caller-owned descriptions of the startup-selected tools. It performs an in-memory MCP handshake without opening tmux or allocating runtime-owned audit resources.","body":"It describes a server that creates the default dedicated tmux server, the\nwidest default surface. [AdvertisedToolsFor] answers for a specific target."},"source":{"file":"mcp/tool_catalog.go","line":19,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.AdvertisedTools","product":"mcp","apiScope":"exported","slug":"mcp-advertisedtools"},{"id":"mcp.AdvertisedToolsFor","name":"AdvertisedToolsFor","kind":"function","modifiers":[],"signatures":[{"raw":"func AdvertisedToolsFor(\n\tctx context.Context,\n\ttarget tmux.Server,\n\tdefaultMinimal bool,\n) ([]*sdk.Tool, error)","params":[{"name":"ctx","type":"context.Context"},{"name":"target","type":"tmux.Server"},{"name":"defaultMinimal","type":"bool"}],"returns":"([]*sdk.Tool, error)"}],"doc":{"summary":"AdvertisedToolsFor returns the tools a server started now against target would advertise. defaultMinimal selects [RunDefaultMinimal]'s rule, which grants teardown tools only when that server creates the tmux server, so only when none is answering yet; [Run] never grants them by default. It asks whether a tmux server is answering and starts nothing."},"source":{"file":"mcp/tool_catalog.go","line":36,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.AdvertisedToolsFor","product":"mcp","apiScope":"exported","slug":"mcp-advertisedtoolsfor"},{"id":"mcp.ToolDetails","name":"ToolDetails","kind":"function","modifiers":[],"signatures":[{"raw":"func ToolDetails(name string) (string, bool)","params":[{"name":"name","type":"string"}],"returns":"(string, bool)"}],"doc":{"summary":"ToolDetails returns what the named tool does, without the capability disclosure every description opens with. The disclosure is shared across a toolset, so a listing that shows only a description's first sentence would otherwise show the same sentence for every tool in it."},"source":{"file":"mcp/tool_catalog.go","line":102,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ToolDetails","product":"mcp","apiScope":"exported","slug":"mcp-tooldetails"},{"id":"mcp.CapabilityMetaKey","name":"CapabilityMetaKey","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"CapabilityMetaKey is the MCP metadata key carrying the complete capability row that also drives registration and tmux://capabilities."},"source":{"file":"mcp/tool_manifest.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.CapabilityMetaKey","product":"mcp","apiScope":"exported","slug":"mcp-capabilitymetakey"},{"id":"mcp.SocketEnvironmentVariable","name":"SocketEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"SocketEnvironmentVariable selects one named tmux socket."},"source":{"file":"mcp/tool_surface.go","line":12,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.SocketEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-socketenvironmentvariable"},{"id":"mcp.SocketPathEnvironmentVariable","name":"SocketPathEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"SocketPathEnvironmentVariable selects one absolute tmux socket path."},"source":{"file":"mcp/tool_surface.go","line":14,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.SocketPathEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-socketpathenvironmentvariable"},{"id":"mcp.TmuxConfigEnvironmentVariable","name":"TmuxConfigEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"TmuxConfigEnvironmentVariable selects an absolute tmux config path."},"source":{"file":"mcp/tool_surface.go","line":16,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.TmuxConfigEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-tmuxconfigenvironmentvariable"},{"id":"mcp.BinaryEnvironmentVariable","name":"BinaryEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"BinaryEnvironmentVariable selects the tmux executable."},"source":{"file":"mcp/tool_surface.go","line":18,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.BinaryEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-binaryenvironmentvariable"},{"id":"mcp.ToolsetsEnvironmentVariable","name":"ToolsetsEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"ToolsetsEnvironmentVariable selects unordered inspect, manage, execute, and teardown groups. A present empty value selects no groups."},"source":{"file":"mcp/tool_surface.go","line":21,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ToolsetsEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-toolsetsenvironmentvariable"},{"id":"mcp.ToolsEnvironmentVariable","name":"ToolsEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"ToolsEnvironmentVariable adds exact tool names after toolset expansion."},"source":{"file":"mcp/tool_surface.go","line":23,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ToolsEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-toolsenvironmentvariable"},{"id":"mcp.ExcludeToolsEnvironmentVariable","name":"ExcludeToolsEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"ExcludeToolsEnvironmentVariable removes exact names after every inclusion."},"source":{"file":"mcp/tool_surface.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.ExcludeToolsEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-excludetoolsenvironmentvariable"},{"id":"mcp.SafetyEnvironmentVariable","name":"SafetyEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"SafetyEnvironmentVariable is rejected because ordered safety tiers were retired."},"source":{"file":"mcp/tool_surface.go","line":27,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.SafetyEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-safetyenvironmentvariable"},{"id":"mcp.RecipeToolEnvironmentVariable","name":"RecipeToolEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"RecipeToolEnvironmentVariable is rejected because prompt exports were retired."},"source":{"file":"mcp/tool_surface.go","line":31,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.RecipeToolEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-recipetoolenvironmentvariable"},{"id":"mcp.WaitCeilingEnvironmentVariable","name":"WaitCeilingEnvironmentVariable","kind":"constant","modifiers":[],"signatures":[],"doc":{"summary":"WaitCeilingEnvironmentVariable names the variable that raises or lowers the longest wait this server will run, in seconds. It matches the Python server so an operator configuring both writes one thing."},"source":{"file":"mcp/wait_tools.go","line":25,"repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},"publicId":"mcp.WaitCeilingEnvironmentVariable","product":"mcp","apiScope":"exported","slug":"mcp-waitceilingenvironmentvariable"}],"pruned":{"dropped":92,"kept":2817,"rules":["/^internal\\./","/^tmux\\.internal\\./"]},"sources":[{"product":"core","package":"github.com/libtmux/libtmux-go/tmux","repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},{"product":"workspace","package":"github.com/libtmux/libtmux-go/workspace","repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"},{"product":"mcp","package":"github.com/libtmux/libtmux-go/mcp","repo":"libtmux/libtmux-go","revision":"6f3df55f8a41999e41225eefb3940545b834e6a2","extractedRevision":"6f3df55f8a41999e41225eefb3940545b834e6a2"}],"repo":"libtmux/libtmux-go"} diff --git a/site/src/data/api/java.json b/site/src/data/api/java.json index 42d5be7cc..bd1539af5 100644 --- a/site/src/data/api/java.json +++ b/site/src/data/api/java.json @@ -1 +1 @@ -{"port":"java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractor":"@libtmux/api-model@0.0.1","symbols":[{"id":"io.github.libtmux.batch.Batch.Batch","name":"Batch","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Several tmux commands in one invocation, each with an outcome of its own.","body":"tmux runs a group until a command fails and then discards the rest, so the number of replies\ncannot say which command failed: an error in the first position and an error in the last both\ncome back as one nonzero exit. Counting replies is wrong in every position but one.\n\nA marker is therefore interleaved after each operation. Markers are discarded along with\neverything else after a failure, so the last marker seen is exactly the last operation tmux ran,\nand the operations either side of that boundary are known rather than guessed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/Batch.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.Batch","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.Batch.Batch","product":"core","slug":"io-github-libtmux-batch-batch-batch","typeScopeBoundary":false},{"id":"io.github.libtmux.batch.Batch.Batch.Batch","name":"Batch","kind":"method","modifiers":[],"parent":"io.github.libtmux.batch.Batch.Batch","signatures":[{"params":[{"name":"dispatch","type":"Function>, CommandResult>","doc":"runs the assembled commands in one invocation and returns tmux's raw reply"}],"raw":"public Batch(Function>, CommandResult> dispatch)","typeScopeBoundary":false}],"doc":{"summary":"Collects operations to run together."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/Batch.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.Batch.Batch","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.Batch.Batch.Batch","product":"core","slug":"io-github-libtmux-batch-batch-batch-batch"},{"id":"io.github.libtmux.batch.Batch.Batch.add","name":"add","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.batch.Batch.Batch","signatures":[{"params":[{"name":"argv","type":"String","variadic":"positional"}],"returns":"Batch","raw":"@Operation(Kind.CAPTURED)\n public Batch add(String... argv)","typeScopeBoundary":false},{"params":[{"name":"argv","type":"List"}],"returns":"Batch","raw":"@Operation(Kind.CAPTURED)\n public Batch add(List argv)","typeScopeBoundary":false}],"doc":{"summary":"Adds one tmux command, its arguments already separate elements."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/Batch.java","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.Batch.add","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.Batch.Batch.add","product":"core","slug":"io-github-libtmux-batch-batch-batch-add"},{"id":"io.github.libtmux.batch.Batch.Batch.size","name":"size","kind":"method","modifiers":[],"parent":"io.github.libtmux.batch.Batch.Batch","signatures":[{"params":[],"returns":"int","raw":"@Operation(Kind.CAPTURED)\n public int size()","typeScopeBoundary":false}],"doc":{"summary":"How many operations have been collected."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/Batch.java","line":57,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.Batch.size","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.Batch.Batch.size","product":"core","slug":"io-github-libtmux-batch-batch-batch-size"},{"id":"io.github.libtmux.batch.Batch.Batch.length","name":"length","kind":"method","modifiers":[],"parent":"io.github.libtmux.batch.Batch.Batch","signatures":[{"params":[],"returns":"int","raw":"@Operation(Kind.CAPTURED)\n public int length()","typeScopeBoundary":false}],"doc":{"summary":"How many bytes the collected operations come to as the one command tmux parses.","body":"tmux packs a command into MAX_IMSGSIZE, 16384 bytes, and refuses a longer one with\n{@code command too long}; measured, it takes about 16300 of them. A batch taken from a handle\ntravels as this one string plus the guard that fences it, so it costs this and a little more.\nOne dispatched as separate arguments costs less, since nothing there is quoted."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/Batch.java","line":70,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.Batch.length","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.Batch.Batch.length","product":"core","slug":"io-github-libtmux-batch-batch-batch-length"},{"id":"io.github.libtmux.batch.Batch.Batch.run","name":"run","kind":"method","modifiers":[],"parent":"io.github.libtmux.batch.Batch.Batch","signatures":[{"params":[],"returns":"BatchResult","returnsDoc":"one result per operation, in submission order","raw":"@Operation(Kind.MUTATION)\n public BatchResult run()","typeScopeBoundary":false}],"doc":{"summary":"Runs every collected operation in one tmux invocation."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/Batch.java","line":80,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.Batch.run","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.Batch.Batch.run","product":"core","slug":"io-github-libtmux-batch-batch-batch-run"},{"id":"io.github.libtmux.batch.BatchResult.BatchResult","name":"BatchResult","kind":"class","modifiers":[],"signatures":[{"raw":"public record BatchResult(@ReadOnly List operations)","params":[{"name":"operations","type":"List","doc":"one result per submitted operation, in submission order"}]}],"doc":{"summary":"What became of every operation in one batch."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/BatchResult.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.BatchResult","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.BatchResult.BatchResult","product":"core","slug":"io-github-libtmux-batch-batchresult-batchresult","typeScopeBoundary":false},{"id":"io.github.libtmux.batch.BatchResult.BatchResult.succeeded","name":"succeeded","kind":"method","modifiers":[],"parent":"io.github.libtmux.batch.BatchResult.BatchResult","signatures":[{"params":[],"returns":"boolean","raw":"public boolean succeeded()","typeScopeBoundary":false}],"doc":{"summary":"Whether tmux ran every operation and all of them succeeded."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/BatchResult.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.BatchResult.succeeded","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.BatchResult.BatchResult.succeeded","product":"core","slug":"io-github-libtmux-batch-batchresult-batchresult-succeeded"},{"id":"io.github.libtmux.batch.BatchResult.BatchResult.failure","name":"failure","kind":"method","modifiers":[],"parent":"io.github.libtmux.batch.BatchResult.BatchResult","signatures":[{"params":[],"returns":"Optional","raw":"public Optional failure()","typeScopeBoundary":false}],"doc":{"summary":"The operation that failed, if one did. Everything after it was discarded by tmux."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/BatchResult.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.BatchResult.failure","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.BatchResult.BatchResult.failure","product":"core","slug":"io-github-libtmux-batch-batchresult-batchresult-failure"},{"id":"io.github.libtmux.batch.BatchResult.BatchResult.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.batch.BatchResult.BatchResult","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/BatchResult.java","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.BatchResult.toString","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.BatchResult.BatchResult.toString","product":"core","slug":"io-github-libtmux-batch-batchresult-batchresult-tostring"},{"id":"io.github.libtmux.batch.BatchResult.BatchResult.operations","name":"operations","kind":"method","parent":"io.github.libtmux.batch.BatchResult.BatchResult","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"one result per submitted operation, in submission order"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/BatchResult.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.BatchResult.operations","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.BatchResult.BatchResult.operations","product":"core","slug":"io-github-libtmux-batch-batchresult-batchresult-operations"},{"id":"io.github.libtmux.batch.OperationOutcome.OperationOutcome","name":"OperationOutcome","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"What became of one operation in a batch."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationOutcome.java","line":4,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationOutcome","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationOutcome.OperationOutcome","product":"core","slug":"io-github-libtmux-batch-operationoutcome-operationoutcome","typeScopeBoundary":false},{"id":"io.github.libtmux.batch.OperationOutcome.OperationOutcome.COMPLETE","name":"COMPLETE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.batch.OperationOutcome.OperationOutcome","signatures":[],"doc":{"summary":"tmux ran it and it succeeded."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationOutcome.java","line":6,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationOutcome.COMPLETE","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationOutcome.OperationOutcome.COMPLETE","product":"core","slug":"io-github-libtmux-batch-operationoutcome-operationoutcome-complete","typeScopeBoundary":true},{"id":"io.github.libtmux.batch.OperationOutcome.OperationOutcome.FAILED","name":"FAILED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.batch.OperationOutcome.OperationOutcome","signatures":[],"doc":{"summary":"tmux ran it and it failed. Everything after it was discarded."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationOutcome.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationOutcome.FAILED","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationOutcome.OperationOutcome.FAILED","product":"core","slug":"io-github-libtmux-batch-operationoutcome-operationoutcome-failed","typeScopeBoundary":true},{"id":"io.github.libtmux.batch.OperationOutcome.OperationOutcome.SKIPPED","name":"SKIPPED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.batch.OperationOutcome.OperationOutcome","signatures":[],"doc":{"summary":"tmux never reached it, because an earlier operation failed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationOutcome.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationOutcome.SKIPPED","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationOutcome.OperationOutcome.SKIPPED","product":"core","slug":"io-github-libtmux-batch-operationoutcome-operationoutcome-skipped","typeScopeBoundary":true},{"id":"io.github.libtmux.batch.OperationOutcome.OperationOutcome.UNKNOWN","name":"UNKNOWN","kind":"constant","modifiers":[],"parent":"io.github.libtmux.batch.OperationOutcome.OperationOutcome","signatures":[],"doc":{"summary":"Whether tmux applied it cannot be determined."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationOutcome.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationOutcome.UNKNOWN","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationOutcome.OperationOutcome.UNKNOWN","product":"core","slug":"io-github-libtmux-batch-operationoutcome-operationoutcome-unknown","typeScopeBoundary":true},{"id":"io.github.libtmux.batch.OperationResult.OperationResult","name":"OperationResult","kind":"class","modifiers":[],"signatures":[{"raw":"public record OperationResult(\n @ReadOnly List argv,\n OperationOutcome outcome,\n @ReadOnly List stdout,\n @ReadOnly List stderr)","params":[{"name":"argv","type":"List","doc":"the operation as it was submitted"},{"name":"outcome","type":"OperationOutcome","doc":"what became of it"},{"name":"stdout","type":"List","doc":"the lines this operation produced, separated from its neighbours'"},{"name":"stderr","type":"List","doc":"the error text, which tmux emits without saying which operation produced it, so it is attached to the one that failed"}]}],"doc":{"summary":"One operation's own result within a batch."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationResult.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationResult","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationResult.OperationResult","product":"core","slug":"io-github-libtmux-batch-operationresult-operationresult","typeScopeBoundary":false},{"id":"io.github.libtmux.batch.OperationResult.OperationResult.succeeded","name":"succeeded","kind":"method","modifiers":[],"parent":"io.github.libtmux.batch.OperationResult.OperationResult","signatures":[{"params":[],"returns":"boolean","raw":"public boolean succeeded()","typeScopeBoundary":false}],"doc":{"summary":"Whether tmux ran this operation and it succeeded."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationResult.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationResult.succeeded","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationResult.OperationResult.succeeded","product":"core","slug":"io-github-libtmux-batch-operationresult-operationresult-succeeded"},{"id":"io.github.libtmux.batch.OperationResult.OperationResult.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.batch.OperationResult.OperationResult","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"doc":{"summary":"Counts only: argv and output carry pane content and socket paths."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationResult.java","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationResult.toString","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationResult.OperationResult.toString","product":"core","slug":"io-github-libtmux-batch-operationresult-operationresult-tostring"},{"id":"io.github.libtmux.batch.OperationResult.OperationResult.argv","name":"argv","kind":"method","parent":"io.github.libtmux.batch.OperationResult.OperationResult","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the operation as it was submitted"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationResult.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationResult.argv","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationResult.OperationResult.argv","product":"core","slug":"io-github-libtmux-batch-operationresult-operationresult-argv"},{"id":"io.github.libtmux.batch.OperationResult.OperationResult.outcome","name":"outcome","kind":"method","parent":"io.github.libtmux.batch.OperationResult.OperationResult","modifiers":[],"signatures":[{"params":[],"returns":"OperationOutcome"}],"doc":{"summary":"what became of it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationResult.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationResult.outcome","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationResult.OperationResult.outcome","product":"core","slug":"io-github-libtmux-batch-operationresult-operationresult-outcome"},{"id":"io.github.libtmux.batch.OperationResult.OperationResult.stdout","name":"stdout","kind":"method","parent":"io.github.libtmux.batch.OperationResult.OperationResult","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the lines this operation produced, separated from its neighbours'"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationResult.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationResult.stdout","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationResult.OperationResult.stdout","product":"core","slug":"io-github-libtmux-batch-operationresult-operationresult-stdout"},{"id":"io.github.libtmux.batch.OperationResult.OperationResult.stderr","name":"stderr","kind":"method","parent":"io.github.libtmux.batch.OperationResult.OperationResult","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the error text, which tmux emits without saying which operation produced it, so it is attached to the one that failed"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationResult.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationResult.stderr","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationResult.OperationResult.stderr","product":"core","slug":"io-github-libtmux-batch-operationresult-operationresult-stderr"},{"id":"io.github.libtmux.BufferInfo.BufferInfo","name":"BufferInfo","kind":"class","modifiers":[],"signatures":[{"raw":"public record BufferInfo(String name, int size)","params":[{"name":"name","type":"String","doc":"the buffer name, which is how every other buffer command addresses it"},{"name":"size","type":"int","doc":"how many bytes it holds"}]}],"doc":{"summary":"One tmux paste buffer, as a listing described it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/BufferInfo.java","line":9,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.BufferInfo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.BufferInfo.BufferInfo","product":"core","slug":"io-github-libtmux-bufferinfo-bufferinfo","typeScopeBoundary":false},{"id":"io.github.libtmux.BufferInfo.BufferInfo.name","name":"name","kind":"method","parent":"io.github.libtmux.BufferInfo.BufferInfo","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the buffer name, which is how every other buffer command addresses it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/BufferInfo.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.BufferInfo.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.BufferInfo.BufferInfo.name","product":"core","slug":"io-github-libtmux-bufferinfo-bufferinfo-name"},{"id":"io.github.libtmux.BufferInfo.BufferInfo.size","name":"size","kind":"method","parent":"io.github.libtmux.BufferInfo.BufferInfo","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"how many bytes it holds"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/BufferInfo.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.BufferInfo.size","namespace":"io.github.libtmux","publicId":"io.github.libtmux.BufferInfo.BufferInfo.size","product":"core","slug":"io-github-libtmux-bufferinfo-bufferinfo-size"},{"id":"io.github.libtmux.Buffers.Buffers","name":"Buffers","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"The tmux server's paste buffers.","body":"Buffers are the server's, not a session's: anything copied in one session can be pasted into\nanother. They are addressed by name rather than by the stack position tmux also accepts, because\na position moves whenever anything else is copied."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Buffers.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Buffers","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Buffers.Buffers","product":"core","slug":"io-github-libtmux-buffers-buffers","typeScopeBoundary":false},{"id":"io.github.libtmux.Buffers.Buffers.EXACT_NAMED_DELETE","name":"EXACT_NAMED_DELETE","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.Buffers.Buffers","signatures":[],"type":"TmuxVersion","value":"new TmuxVersion(3, 4, \"\")","doc":{"summary":"tmux's own history dates the fix to {@code 0f6227f4} (\"When deleting or renaming a buffer and a buffer name is specified, complain if the buffer doesn't exist instead of silently deleting or renaming the most recent buffer\", GitHub issue 3205); {@code git tag --contains} places it on {@code 3.4} and nothing earlier, so 3.3 and 3.3a both have the bug. Confirmed on the matrix: {@code set-buffer -b a x; set-buffer -b b y; delete-buffer -b nope} answers {@code unknown buffer: nope} on 3.4 and leaves both buffers, but on 3.3a it exits 0 and takes {@code b}, the one {@code delete-buffer} was never told to touch."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Buffers.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Buffers.EXACT_NAMED_DELETE","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Buffers.Buffers.EXACT_NAMED_DELETE","product":"core","slug":"io-github-libtmux-buffers-buffers-exact_named_delete","typeScopeBoundary":true},{"id":"io.github.libtmux.Buffers.Buffers.Buffers","name":"Buffers","kind":"method","modifiers":[],"parent":"io.github.libtmux.Buffers.Buffers","signatures":[{"params":[{"name":"server","type":"Server"}],"raw":"Buffers(Server server)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Buffers.java","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Buffers.Buffers","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Buffers.Buffers.Buffers","product":"core","slug":"io-github-libtmux-buffers-buffers-buffers"},{"id":"io.github.libtmux.Buffers.Buffers.list","name":"list","kind":"method","modifiers":[],"parent":"io.github.libtmux.Buffers.Buffers","signatures":[{"params":[],"returns":"List","returnsDoc":"an immutable list, empty if the live server holds no buffers","raises":[{"type":"LibTmuxException","doc":"if the listing fails, including when no daemon is running"}],"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List list()","typeScopeBoundary":false}],"doc":{"summary":"Captures every buffer the server holds, in tmux's order."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Buffers.java","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Buffers.list","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Buffers.Buffers.list","product":"core","slug":"io-github-libtmux-buffers-buffers-list"},{"id":"io.github.libtmux.Buffers.Buffers.set","name":"set","kind":"method","modifiers":[],"parent":"io.github.libtmux.Buffers.Buffers","signatures":[{"params":[{"name":"name","type":"String"},{"name":"contents","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void set(String name, String contents)","typeScopeBoundary":false}],"doc":{"summary":"Puts text in a named buffer, replacing whatever was there.","body":"The contents end the options, because they are the one argument here tmux would otherwise\nread as flags: {@code set(\"clip\", \"-nfoo\")} used to rename the buffer to {@code foo} and write\nnothing, and report success."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Buffers.java","line":69,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Buffers.set","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Buffers.Buffers.set","product":"core","slug":"io-github-libtmux-buffers-buffers-set"},{"id":"io.github.libtmux.Buffers.Buffers.show","name":"show","kind":"method","modifiers":[],"parent":"io.github.libtmux.Buffers.Buffers","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"String","raises":[{"type":"TargetGoneException","doc":"if the server has no buffer by that name"},{"type":"ServerUnavailableException","doc":"if no daemon is running"}],"raw":"@Operation(Kind.READ)\n public String show(String name)","typeScopeBoundary":false}],"doc":{"summary":"What a buffer holds, without any line breaks it ends with.","body":"tmux prints a buffer as it is, and the transport drops trailing blank lines, so {@code \"a\"}\nand {@code \"a\\n\"} read the same. A marker printed after it cannot keep them: tmux writes a\nbuffer through its file stream, which a second command in the same invocation interrupts.\n{@link #save} writes the exact bytes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Buffers.java","line":85,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Buffers.show","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Buffers.Buffers.show","product":"core","slug":"io-github-libtmux-buffers-buffers-show"},{"id":"io.github.libtmux.Buffers.Buffers.delete","name":"delete","kind":"method","modifiers":[],"parent":"io.github.libtmux.Buffers.Buffers","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"void","raises":[{"type":"TargetGoneException","doc":"if the server has no buffer by that name"},{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"UnsupportedFeatureException","doc":"before tmux 3.4, whose named deletion silently removes the top buffer when the name is absent"}],"raw":"@Operation(Kind.MUTATION)\n public void delete(String name)","typeScopeBoundary":false}],"doc":{"summary":"Removes a buffer by its exact name."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Buffers.java","line":105,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Buffers.delete","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Buffers.Buffers.delete","product":"core","slug":"io-github-libtmux-buffers-buffers-delete"},{"id":"io.github.libtmux.Buffers.Buffers.save","name":"save","kind":"method","modifiers":[],"parent":"io.github.libtmux.Buffers.Buffers","signatures":[{"params":[{"name":"name","type":"String"},{"name":"file","type":"Path"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void save(String name, Path file)","typeScopeBoundary":false}],"doc":{"summary":"Writes a buffer's contents to a file."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Buffers.java","line":121,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Buffers.save","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Buffers.Buffers.save","product":"core","slug":"io-github-libtmux-buffers-buffers-save"},{"id":"io.github.libtmux.Buffers.Buffers.load","name":"load","kind":"method","modifiers":[],"parent":"io.github.libtmux.Buffers.Buffers","signatures":[{"params":[{"name":"name","type":"String"},{"name":"file","type":"Path"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void load(String name, Path file)","typeScopeBoundary":false}],"doc":{"summary":"Reads a file into a named buffer."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Buffers.java","line":127,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Buffers.load","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Buffers.Buffers.load","product":"core","slug":"io-github-libtmux-buffers-buffers-load"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec","name":"CaptureSpec","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"What part of a pane to read, and how.","body":"The shape {@link SplitSpec} uses. A plain {@link Pane#capture()} reads what is on screen; this\nis how to reach the scrollback above it, or to keep what tmux otherwise strips.\n\nLines are numbered from the top of the visible area, so {@code 0} is the first row on screen\nand negatives climb into the history. {@code fromStartOfHistory()} is the whole of what tmux\nkept.","examples":[{"lang":"java","code":"List everything = pane.capture(c -> c.fromStartOfHistory());\nList lastTen = pane.capture(c -> c.from(-10));"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec","product":"core","slug":"io-github-libtmux-capturespec-capturespec","typeScopeBoundary":false},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.builder","name":"builder","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec","signatures":[{"params":[],"returns":"Builder","raw":"public static Builder builder()","typeScopeBoundary":true}],"doc":{"summary":"A builder that reads what is on screen and nothing else."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":69,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.builder","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-17ql"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.argv","name":"argv","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec","signatures":[{"params":[{"name":"target","type":"String"},{"name":"running","type":"TmuxVersion"}],"returns":"List","raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something {@code running} does not have"}],"raw":"List argv(String target, TmuxVersion running)","typeScopeBoundary":false}],"doc":{"summary":"The command that reads the pane."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.argv","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.argv","product":"core","slug":"io-github-libtmux-capturespec-capturespec-argv"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","name":"Builder","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec","signatures":[],"doc":{"summary":"Collects the choices, each named for what it does rather than for the flag it sets."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":123,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-v00t","typeScopeBoundary":true},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.from","name":"from","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"params":[{"name":"line","type":"int","doc":"{@code 0} is the first row on screen; negatives climb into the scrollback"}],"returns":"Builder","raw":"public Builder from(int line)","typeScopeBoundary":false}],"doc":{"summary":"Starts at a line, counted from the top of the visible area."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":145,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.from","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.from","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-from"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.fromStartOfHistory","name":"fromStartOfHistory","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder fromStartOfHistory()","typeScopeBoundary":false}],"doc":{"summary":"Starts at the oldest line tmux still has."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":151,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.fromStartOfHistory","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.fromStartOfHistory","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-fromstartofhistory"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.to","name":"to","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"params":[{"name":"line","type":"int"}],"returns":"Builder","raw":"public Builder to(int line)","typeScopeBoundary":false}],"doc":{"summary":"Ends at a line, counted the same way as {@link #from}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":157,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.to","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.to","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-to"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.toEndOfHistory","name":"toEndOfHistory","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder toEndOfHistory()","typeScopeBoundary":false}],"doc":{"summary":"Ends at the newest line, including anything below the visible area."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":163,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.toEndOfHistory","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.toEndOfHistory","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-toendofhistory"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.withEscapeSequences","name":"withEscapeSequences","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder withEscapeSequences()","typeScopeBoundary":false}],"doc":{"summary":"Keeps the escape sequences that colour and position the text."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":169,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.withEscapeSequences","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.withEscapeSequences","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-withescapesequences"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.escapingNonPrintable","name":"escapingNonPrintable","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder escapingNonPrintable()","typeScopeBoundary":false}],"doc":{"summary":"Writes anything unprintable as an octal escape rather than dropping it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":175,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.escapingNonPrintable","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.escapingNonPrintable","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-escapingnonprintable"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.joiningWrappedLines","name":"joiningWrappedLines","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder joiningWrappedLines()","typeScopeBoundary":false}],"doc":{"summary":"Joins a line tmux wrapped back into the one line it was."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":181,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.joiningWrappedLines","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.joiningWrappedLines","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-joiningwrappedlines"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.preservingTrailingSpace","name":"preservingTrailingSpace","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder preservingTrailingSpace()","typeScopeBoundary":false}],"doc":{"summary":"Keeps the spaces at the end of a line, which tmux otherwise drops."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":187,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.preservingTrailingSpace","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.preservingTrailingSpace","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-preservingtrailingspace"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.trimmingTrailingSpace","name":"trimmingTrailingSpace","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder trimmingTrailingSpace()","typeScopeBoundary":false}],"doc":{"summary":"Drops trailing space and the empty lines below the content. Requires tmux 3.4."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":193,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.trimmingTrailingSpace","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.trimmingTrailingSpace","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-trimmingtrailingspace"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.fromAlternateScreen","name":"fromAlternateScreen","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder fromAlternateScreen()","typeScopeBoundary":false}],"doc":{"summary":"Reads the alternate screen, which is what a full-screen program draws on."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":199,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.fromAlternateScreen","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.fromAlternateScreen","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-fromalternatescreen"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.pendingOnly","name":"pendingOnly","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder pendingOnly()","typeScopeBoundary":false}],"doc":{"summary":"Reads only output tmux has not drawn yet."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":205,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.pendingOnly","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.pendingOnly","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-pendingonly"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.fromModeScreen","name":"fromModeScreen","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder fromModeScreen()","typeScopeBoundary":false}],"doc":{"summary":"Reads what a mode is showing rather than the pane beneath it. Requires tmux 3.6."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":211,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.fromModeScreen","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.fromModeScreen","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-frommodescreen"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.withHyperlinks","name":"withHyperlinks","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder withHyperlinks()","typeScopeBoundary":false}],"doc":{"summary":"Keeps hyperlink markers. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":217,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.withHyperlinks","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.withHyperlinks","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-withhyperlinks"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.withLineNumbers","name":"withLineNumbers","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder withLineNumbers()","typeScopeBoundary":false}],"doc":{"summary":"Prefixes each line with its number. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":223,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.withLineNumbers","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.withLineNumbers","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-withlinenumbers"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.build","name":"build","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"params":[],"returns":"CaptureSpec","raw":"public CaptureSpec build()","typeScopeBoundary":false}],"doc":{"summary":"The finished spec."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":229,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.build","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.build","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-build"},{"id":"io.github.libtmux.catalog.Kind.Kind","name":"Kind","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"What shape a facade needs to give one operation of the core API.","body":"A Kotlin or Scala wrapper, or a generated reference page, reads this off {@link Operation}\nrather than guessing from a method's name or return type."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Kind.java","line":9,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Kind","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Kind.Kind","product":"core","slug":"io-github-libtmux-catalog-kind-kind","typeScopeBoundary":false},{"id":"io.github.libtmux.catalog.Kind.Kind.CAPTURED","name":"CAPTURED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.catalog.Kind.Kind","signatures":[],"doc":{"summary":"No tmux I/O: answers from the handle's own capture, or collects a command to send later. Field accessors, navigation within one capture, and building a batch or chain."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Kind.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Kind.CAPTURED","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Kind.Kind.CAPTURED","product":"core","slug":"io-github-libtmux-catalog-kind-kind-captured","typeScopeBoundary":true},{"id":"io.github.libtmux.catalog.Kind.Kind.READ","name":"READ","kind":"constant","modifiers":[],"parent":"io.github.libtmux.catalog.Kind.Kind","signatures":[],"doc":{"summary":"Contacts tmux and changes nothing: listings, captures, {@code show-*}, expansion, liveness, lookups."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Kind.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Kind.READ","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Kind.Kind.READ","product":"core","slug":"io-github-libtmux-catalog-kind-kind-read","typeScopeBoundary":true},{"id":"io.github.libtmux.catalog.Kind.Kind.MUTATION","name":"MUTATION","kind":"constant","modifiers":[],"parent":"io.github.libtmux.catalog.Kind.Kind","signatures":[],"doc":{"summary":"Changes tmux state: sending keys, renaming, killing, splitting, setting options, pasting, resizing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Kind.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Kind.MUTATION","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Kind.Kind.MUTATION","product":"core","slug":"io-github-libtmux-catalog-kind-kind-mutation","typeScopeBoundary":true},{"id":"io.github.libtmux.catalog.Kind.Kind.WAIT","name":"WAIT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.catalog.Kind.Kind","signatures":[],"doc":{"summary":"Blocks until something else happens; the waiting itself changes nothing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Kind.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Kind.WAIT","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Kind.Kind.WAIT","product":"core","slug":"io-github-libtmux-catalog-kind-kind-wait","typeScopeBoundary":true},{"id":"io.github.libtmux.catalog.Kind.Kind.STREAM","name":"STREAM","kind":"constant","modifiers":[],"parent":"io.github.libtmux.catalog.Kind.Kind","signatures":[],"doc":{"summary":"Returns a subscription, stream, or publisher of events."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Kind.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Kind.STREAM","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Kind.Kind.STREAM","product":"core","slug":"io-github-libtmux-catalog-kind-kind-stream","typeScopeBoundary":true},{"id":"io.github.libtmux.catalog.Kind.Kind.LIFECYCLE","name":"LIFECYCLE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.catalog.Kind.Kind","signatures":[],"doc":{"summary":"Opens, attaches, derives, or closes a resource."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Kind.java","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Kind.LIFECYCLE","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Kind.Kind.LIFECYCLE","product":"core","slug":"io-github-libtmux-catalog-kind-kind-lifecycle","typeScopeBoundary":true},{"id":"io.github.libtmux.Channel.Channel","name":"Channel","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"One of tmux's wait-for channels, named once.","body":"A channel is server-wide and shared by everything on it, including programs running in panes.\nNothing creates or destroys one: a name either has a signal remembered against it or does not.\n\ntmux's own {@code wait-for} has two traps, and this exists to close both. It exits successfully\nwhen the server dies under the waiter, which is indistinguishable from a real signal, so the\nserver is checked afterwards rather than believed. And a signal sent when nobody is waiting is\nremembered, satisfying the next wait whenever that happens — possibly in a later run of a\ndifferent program — so {@link #drain()} is how a caller starts from a known state on a channel\nwhose history is not its own."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Channel.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Channel","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Channel.Channel","product":"core","slug":"io-github-libtmux-channel-channel","typeScopeBoundary":false},{"id":"io.github.libtmux.Channel.Channel.Channel","name":"Channel","kind":"method","modifiers":[],"parent":"io.github.libtmux.Channel.Channel","signatures":[{"params":[{"name":"server","type":"Server"},{"name":"name","type":"String"}],"raw":"Channel(Server server, String name)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Channel.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Channel.Channel","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Channel.Channel.Channel","product":"core","slug":"io-github-libtmux-channel-channel-channel"},{"id":"io.github.libtmux.Channel.Channel.name","name":"name","kind":"method","modifiers":[],"parent":"io.github.libtmux.Channel.Channel","signatures":[{"params":[],"returns":"String","raw":"@Operation(Kind.CAPTURED)\n public String name()","typeScopeBoundary":false}],"doc":{"summary":"The name this channel is known by on its server."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Channel.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Channel.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Channel.Channel.name","product":"core","slug":"io-github-libtmux-channel-channel-name"},{"id":"io.github.libtmux.Channel.Channel.signal","name":"signal","kind":"method","modifiers":[],"parent":"io.github.libtmux.Channel.Channel","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void signal()","typeScopeBoundary":false}],"doc":{"summary":"Signals the channel, waking one waiter, or being remembered until something waits.","body":"{@code -S} takes no argument of its own — it says which of wait-for's three modes this is —\nso the name that follows is a positional and needs the options ended before it, exactly as\nthe wait does."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Channel.java","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Channel.signal","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Channel.Channel.signal","product":"core","slug":"io-github-libtmux-channel-channel-signal"},{"id":"io.github.libtmux.Channel.Channel.await","name":"await","kind":"method","modifiers":[],"parent":"io.github.libtmux.Channel.Channel","signatures":[{"params":[{"name":"timeout","type":"Duration","doc":"how long to wait"}],"returns":"WakeReason","returnsDoc":"why the wait ended, which is never simply \"successfully\"","raises":[{"type":"InterruptedException","doc":"if the waiting thread is interrupted, which is a cancellation rather than a timeout and so is not reported as one"}],"raw":"@Operation(Kind.WAIT)\n public WakeReason await(Duration timeout) throws InterruptedException","typeScopeBoundary":false}],"doc":{"summary":"Waits for something to signal the channel."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Channel.java","line":60,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Channel.await","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Channel.Channel.await","product":"core","slug":"io-github-libtmux-channel-channel-await"},{"id":"io.github.libtmux.Channel.Channel.awaitReservingCapacity","name":"awaitReservingCapacity","kind":"method","modifiers":[],"parent":"io.github.libtmux.Channel.Channel","signatures":[{"params":[{"name":"timeout","type":"Duration"}],"returns":"WakeReason","raises":[{"type":"io.github.libtmux.exception.DispatchException","doc":"if the wait could not be dispatched"},{"type":"InterruptedException","doc":"if the waiting thread is interrupted, which is a cancellation rather than a timeout and so is not reported as one"}],"raw":"@Operation(Kind.WAIT)\n public WakeReason awaitReservingCapacity(Duration timeout) throws InterruptedException","typeScopeBoundary":false}],"doc":{"summary":"Waits while preserving process capacity for a call through this server that signals it.","body":"Use this when the waiter and its release share a bounded transport. A wait released outside\nthat transport should use {@link #await}; reserving capacity for it only rejects useful\nconcurrency."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Channel.java","line":76,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Channel.awaitReservingCapacity","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Channel.Channel.awaitReservingCapacity","product":"core","slug":"io-github-libtmux-channel-channel-awaitreservingcapacity"},{"id":"io.github.libtmux.Channel.Channel.drain","name":"drain","kind":"method","modifiers":[],"parent":"io.github.libtmux.Channel.Channel","signatures":[{"params":[],"returns":"boolean","returnsDoc":"whether a signal was there to consume","raises":[{"type":"InterruptedException","doc":"if the waiting thread is interrupted"}],"raw":"@Operation(Kind.WAIT)\n public boolean drain() throws InterruptedException","typeScopeBoundary":false}],"doc":{"summary":"Consumes a signal already waiting, so a stale one cannot satisfy a later wait."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Channel.java","line":87,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Channel.drain","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Channel.Channel.drain","product":"core","slug":"io-github-libtmux-channel-channel-drain"},{"id":"io.github.libtmux.Channel.Channel.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.Channel.Channel","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Channel.java","line":92,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Channel.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Channel.Channel.toString","product":"core","slug":"io-github-libtmux-channel-channel-tostring"},{"id":"io.github.libtmux.Client.Client","name":"Client","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"One attached tmux client, as one capture saw it.","body":"Identity is the server and the client name, which is how tmux addresses it. What it is\nattached to is state: a client can switch sessions without becoming a different client.\n\n{@link #name()}, {@link #session()}, and {@link #attachment()} return what the capture holds\nand do no I/O; {@link #refresh()} reads again. Every other method asks tmux now."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client","product":"core","slug":"io-github-libtmux-client-client","typeScopeBoundary":false},{"id":"io.github.libtmux.Client.Client.Client","name":"Client","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"state","type":"ClientState"}],"raw":"Client(Server server, ServerSnapshot snapshot, ClientState state)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.Client","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.Client","product":"core","slug":"io-github-libtmux-client-client-client"},{"id":"io.github.libtmux.Client.Client.name","name":"name","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"params":[],"returns":"String","raw":"@Operation(Kind.CAPTURED)\n public String name()","typeScopeBoundary":false}],"doc":{"summary":"The client's terminal name, which is how tmux addresses it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.name","product":"core","slug":"io-github-libtmux-client-client-name"},{"id":"io.github.libtmux.Client.Client.detach","name":"detach","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void detach()","typeScopeBoundary":false}],"doc":{"summary":"Detaches this client, leaving whatever it was attached to running.","body":"Detaching is not killing: the session outlives the client, which is the reason tmux exists."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.detach","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.detach","product":"core","slug":"io-github-libtmux-client-client-detach"},{"id":"io.github.libtmux.Client.Client.detachOthers","name":"detachOthers","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void detachOthers()","typeScopeBoundary":false}],"doc":{"summary":"Detaches every other client, leaving this one attached."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":52,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.detachOthers","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.detachOthers","product":"core","slug":"io-github-libtmux-client-client-detachothers"},{"id":"io.github.libtmux.Client.Client.switchTo","name":"switchTo","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"params":[{"name":"session","type":"Session"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void switchTo(Session session)","typeScopeBoundary":false}],"doc":{"summary":"Moves this client to another session.","body":"The client keeps its identity: switching is a change of what it is looking at, not a\ndetach and a fresh attach."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.switchTo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.switchTo","product":"core","slug":"io-github-libtmux-client-client-switchto"},{"id":"io.github.libtmux.Client.Client.redraw","name":"redraw","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void redraw()","typeScopeBoundary":false}],"doc":{"summary":"Asks tmux to redraw this client.","body":"Not {@link #refresh()}, which takes a new capture of what tmux knows. This one is tmux's\n{@code refresh-client}, and it changes the terminal rather than this handle."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.redraw","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.redraw","product":"core","slug":"io-github-libtmux-client-client-redraw"},{"id":"io.github.libtmux.Client.Client.server","name":"server","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"params":[],"returns":"Server","raw":"@Operation(Kind.CAPTURED)\n public Server server()","typeScopeBoundary":false}],"doc":{"summary":"The server this client is connected to."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":84,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.server","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.server","product":"core","slug":"io-github-libtmux-client-client-server"},{"id":"io.github.libtmux.Client.Client.snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"params":[],"returns":"ServerSnapshot","raw":"ServerSnapshot snapshot()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":89,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.snapshot","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.snapshot","product":"core","slug":"io-github-libtmux-client-client-snapshot"},{"id":"io.github.libtmux.Client.Client.session","name":"session","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"params":[],"returns":"Optional","raw":"@Operation(Kind.CAPTURED)\n public Optional session()","typeScopeBoundary":false}],"doc":{"summary":"The session this client was attached to when captured. A pure read of the capture."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":94,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.session","product":"core","slug":"io-github-libtmux-client-client-session"},{"id":"io.github.libtmux.Client.Client.attachment","name":"attachment","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"params":[],"returns":"Optional","raw":"@Operation(Kind.CAPTURED)\n public Optional attachment()","typeScopeBoundary":false}],"doc":{"summary":"What this client was looking at when captured. A pure read: it issues no command.","body":"Empty when the capture shows the client attached to nothing, or shows a session whose\nactive window or pane the capture did not include."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":105,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.attachment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.attachment","product":"core","slug":"io-github-libtmux-client-client-attachment"},{"id":"io.github.libtmux.Client.Client.fetchAttachment","name":"fetchAttachment","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"params":[],"returns":"Optional","raises":[{"type":"TargetGoneException","doc":"if this client has detached"}],"raw":"@Operation(Kind.READ)\n public Optional fetchAttachment()","typeScopeBoundary":false}],"doc":{"summary":"Takes a new capture and returns what this client is looking at now.","body":"Named to say it dispatches, unlike {@link #attachment()}. Every call is one live capture."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":120,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.fetchAttachment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.fetchAttachment","product":"core","slug":"io-github-libtmux-client-client-fetchattachment"},{"id":"io.github.libtmux.Client.Client.refresh","name":"refresh","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"params":[],"returns":"Client","raises":[{"type":"TargetGoneException","doc":"if this client has detached, or a different daemon answers on the endpoint"},{"type":"ServerUnavailableException","doc":"if no daemon is running"}],"raw":"@CheckReturnValue\n @Operation(Kind.READ)\n public Client refresh()","typeScopeBoundary":false}],"doc":{"summary":"Takes a new capture and returns this client as it is now.","body":"This handle remains unchanged, as every handle's does."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":134,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.refresh","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.refresh","product":"core","slug":"io-github-libtmux-client-client-refresh"},{"id":"io.github.libtmux.Client.Client.equals","name":"equals","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"params":[{"name":"other","type":"Object"}],"returns":"boolean","raw":"@Override\n public boolean equals(Object other)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":145,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.equals","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.equals","product":"core","slug":"io-github-libtmux-client-client-equals"},{"id":"io.github.libtmux.Client.Client.hashCode","name":"hashCode","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"params":[],"returns":"int","raw":"@Override\n public int hashCode()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":152,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.hashCode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.hashCode","product":"core","slug":"io-github-libtmux-client-client-hashcode"},{"id":"io.github.libtmux.Client.Client.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":157,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.toString","product":"core","slug":"io-github-libtmux-client-client-tostring"},{"id":"io.github.libtmux.ClientAttachment.ClientAttachment","name":"ClientAttachment","kind":"class","modifiers":[],"signatures":[{"raw":"public record ClientAttachment(Session session, Window activeWindow, Pane activePane)","params":[{"name":"session","type":"Session","doc":"the session the client is attached to"},{"name":"activeWindow","type":"Window","doc":"that session's active window"},{"name":"activePane","type":"Pane","doc":"that window's active pane, which is what the client's keystrokes reach"}]}],"doc":{"summary":"What a client was looking at.","body":"All three are present together or not at all. A client attached to a session is looking at\nexactly one window of it and one pane of that window; an attachment holding only some of those\nwould describe a state tmux does not have."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ClientAttachment.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ClientAttachment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ClientAttachment.ClientAttachment","product":"core","slug":"io-github-libtmux-clientattachment-clientattachment","typeScopeBoundary":false},{"id":"io.github.libtmux.ClientAttachment.ClientAttachment.session","name":"session","kind":"method","parent":"io.github.libtmux.ClientAttachment.ClientAttachment","modifiers":[],"signatures":[{"params":[],"returns":"Session"}],"doc":{"summary":"the session the client is attached to"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ClientAttachment.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ClientAttachment.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ClientAttachment.ClientAttachment.session","product":"core","slug":"io-github-libtmux-clientattachment-clientattachment-session"},{"id":"io.github.libtmux.ClientAttachment.ClientAttachment.activeWindow","name":"activeWindow","kind":"method","parent":"io.github.libtmux.ClientAttachment.ClientAttachment","modifiers":[],"signatures":[{"params":[],"returns":"Window"}],"doc":{"summary":"that session's active window"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ClientAttachment.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ClientAttachment.activeWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ClientAttachment.ClientAttachment.activeWindow","product":"core","slug":"io-github-libtmux-clientattachment-clientattachment-activewindow"},{"id":"io.github.libtmux.ClientAttachment.ClientAttachment.activePane","name":"activePane","kind":"method","parent":"io.github.libtmux.ClientAttachment.ClientAttachment","modifiers":[],"signatures":[{"params":[],"returns":"Pane"}],"doc":{"summary":"that window's active pane, which is what the client's keystrokes reach"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ClientAttachment.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ClientAttachment.activePane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ClientAttachment.ClientAttachment.activePane","product":"core","slug":"io-github-libtmux-clientattachment-clientattachment-activepane"},{"id":"io.github.libtmux.CommandChain.CommandChain","name":"CommandChain","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"A sequence of tmux commands where each one acts on what the last one made.","body":"tmux moves its own current target as a group runs: a {@code new-window} makes the new window\ncurrent, a following {@code split-window} splits that window, and a following {@code send-keys}\ntypes into the pane that split produced. None of these steps names a target, and that is the\npoint — the alternative is a round trip per step to learn the id of the thing just created.\n\nThe whole chain is one tmux invocation, and every step is attributed individually, so a chain\nthat fails halfway says which step failed and which never ran."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain","product":"core","slug":"io-github-libtmux-commandchain-commandchain","typeScopeBoundary":false},{"id":"io.github.libtmux.CommandChain.CommandChain.CommandChain","name":"CommandChain","kind":"method","modifiers":[],"parent":"io.github.libtmux.CommandChain.CommandChain","signatures":[{"params":[{"name":"batch","type":"Batch"},{"name":"running","type":"Supplier"}],"raw":"CommandChain(Batch batch, Supplier running)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain.CommandChain","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain.CommandChain","product":"core","slug":"io-github-libtmux-commandchain-commandchain-commandchain"},{"id":"io.github.libtmux.CommandChain.CommandChain.newWindow","name":"newWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.CommandChain.CommandChain","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"CommandChain","raw":"@Operation(Kind.CAPTURED)\n public CommandChain newWindow(String name)","typeScopeBoundary":false}],"doc":{"summary":"Creates a window and makes it the one following steps act on."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain.newWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain.newWindow","product":"core","slug":"io-github-libtmux-commandchain-commandchain-newwindow"},{"id":"io.github.libtmux.CommandChain.CommandChain.renameWindow","name":"renameWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.CommandChain.CommandChain","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"CommandChain","raw":"@Operation(Kind.CAPTURED)\n public CommandChain renameWindow(String name)","typeScopeBoundary":false}],"doc":{"summary":"Renames the current window."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain.renameWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain.renameWindow","product":"core","slug":"io-github-libtmux-commandchain-commandchain-renamewindow"},{"id":"io.github.libtmux.CommandChain.CommandChain.splitLeftRight","name":"splitLeftRight","kind":"method","modifiers":[],"parent":"io.github.libtmux.CommandChain.CommandChain","signatures":[{"params":[],"returns":"CommandChain","raw":"@Operation(Kind.CAPTURED)\n public CommandChain splitLeftRight()","typeScopeBoundary":false}],"doc":{"summary":"Splits the current pane into a left and a right one.","body":"Named for what it produces rather than for tmux's {@code -h}, which reads as though it\ndescribed the divider."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain.splitLeftRight","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain.splitLeftRight","product":"core","slug":"io-github-libtmux-commandchain-commandchain-splitleftright"},{"id":"io.github.libtmux.CommandChain.CommandChain.splitTopBottom","name":"splitTopBottom","kind":"method","modifiers":[],"parent":"io.github.libtmux.CommandChain.CommandChain","signatures":[{"params":[],"returns":"CommandChain","raw":"@Operation(Kind.CAPTURED)\n public CommandChain splitTopBottom()","typeScopeBoundary":false}],"doc":{"summary":"Splits the current pane into a top and a bottom one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":57,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain.splitTopBottom","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain.splitTopBottom","product":"core","slug":"io-github-libtmux-commandchain-commandchain-splittopbottom"},{"id":"io.github.libtmux.CommandChain.CommandChain.sendLine","name":"sendLine","kind":"method","modifiers":[],"parent":"io.github.libtmux.CommandChain.CommandChain","signatures":[{"params":[{"name":"command","type":"String"}],"returns":"CommandChain","raw":"@Operation(Kind.CAPTURED)\n public CommandChain sendLine(String command)","typeScopeBoundary":false}],"doc":{"summary":"Types a line into the current pane and presses Enter, which is how a command gets run."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain.sendLine","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain.sendLine","product":"core","slug":"io-github-libtmux-commandchain-commandchain-sendline"},{"id":"io.github.libtmux.CommandChain.CommandChain.arrange","name":"arrange","kind":"method","modifiers":[],"parent":"io.github.libtmux.CommandChain.CommandChain","signatures":[{"params":[{"name":"layout","type":"String"}],"returns":"CommandChain","raises":[{"type":"IllegalArgumentException","doc":"if tmux would not recognise the layout, which on some versions ends the whole server rather than the command"},{"type":"UnsupportedFeatureException","doc":"if the layout name arrived after this release, which tmux cannot tell from any other name it does not know"}],"raw":"@Operation(Kind.MUTATION)\n public CommandChain arrange(String layout)","typeScopeBoundary":false}],"doc":{"summary":"Arranges the current window."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":76,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain.arrange","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain.arrange","product":"core","slug":"io-github-libtmux-commandchain-commandchain-arrange"},{"id":"io.github.libtmux.CommandChain.CommandChain.then","name":"then","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.CommandChain.CommandChain","signatures":[{"params":[{"name":"argv","type":"String","variadic":"positional"}],"returns":"CommandChain","raw":"@Operation(Kind.CAPTURED)\n public CommandChain then(String... argv)","typeScopeBoundary":false},{"params":[{"name":"argv","type":"List"}],"returns":"CommandChain","raw":"@Operation(Kind.CAPTURED)\n public CommandChain then(List argv)","typeScopeBoundary":false}],"doc":{"summary":"Adds any tmux command, for whatever this class does not name."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":82,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain.then","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain.then","product":"core","slug":"io-github-libtmux-commandchain-commandchain-then"},{"id":"io.github.libtmux.CommandChain.CommandChain.run","name":"run","kind":"method","modifiers":[],"parent":"io.github.libtmux.CommandChain.CommandChain","signatures":[{"params":[],"returns":"BatchResult","raw":"@Operation(Kind.MUTATION)\n public BatchResult run()","typeScopeBoundary":false}],"doc":{"summary":"Runs the whole chain in one tmux invocation, attributing each step."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":96,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain.run","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain.run","product":"core","slug":"io-github-libtmux-commandchain-commandchain-run"},{"id":"io.github.libtmux.Commands.Commands","name":"Commands","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"The commands this tmux knows, read without starting a server to answer."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Commands.java","line":9,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Commands","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Commands.Commands","product":"core","slug":"io-github-libtmux-commands-commands","typeScopeBoundary":false},{"id":"io.github.libtmux.Commands.Commands.Commands","name":"Commands","kind":"method","modifiers":[],"parent":"io.github.libtmux.Commands.Commands","signatures":[{"params":[{"name":"server","type":"Server"}],"raw":"Commands(Server server)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Commands.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Commands.Commands","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Commands.Commands.Commands","product":"core","slug":"io-github-libtmux-commands-commands-commands"},{"id":"io.github.libtmux.Commands.Commands.list","name":"list","kind":"method","modifiers":[],"parent":"io.github.libtmux.Commands.Commands","signatures":[{"params":[],"returns":"List","raw":"@ReadOnly\n @Operation(Kind.READ)\n public List list()","typeScopeBoundary":false}],"doc":{"summary":"Every command, as tmux prints it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Commands.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Commands.list","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Commands.Commands.list","product":"core","slug":"io-github-libtmux-commands-commands-list"},{"id":"io.github.libtmux.control.ControlClient.ControlClient","name":"ControlClient","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"A tmux client that stays attached and answers one command at a time.","body":"This is what a semicolon group cannot be. tmux discards a group after its first failure, so a\nclient has to infer which command failed; here each request is independent, so a failure\ndiscards nothing behind it.\n\nReplies arrive in request order, so the writer sends one request at a time and matches its\nreply by position. A reply is the first block tmux writes for the request: an acknowledgement,\nwhich work the command deferred may outlive. What that command queued, as {@code if-shell}\nqueues its branch, and what a hook ran, arrive as blocks of their own, and none of them is taken\nfor the next request's reply. A deadline before the writer picks a request writes nothing; a\ndeadline after that point ends the client because the next reply could no longer be attributed\nsafely.\n\nThe reader and writer are platform threads. A library does not own the virtual-thread\nscheduler: a caller's CPU-bound task that never blocks keeps its carrier, and either thread\nunable to run stops the client from making progress. The reader only\nresolves replies and fills bounded subscription buffers; subscriber code runs on the thread that\npulls a value.\n\n**Threads.** {@link #send} may be called from several threads at once: requests\nqueue in the order they arrive and each caller gets its own reply. A subscription is read by one\nthread at a time.\n\n**Close it.** The client holds an attached tmux client, which is what makes tmux\npush output to it, and closing is what detaches that client and stops its threads. A client that\nis forgotten does not hold the JVM open — its threads are daemons — and the attached tmux client\nexits once the JVM does, because it reads its commands from a pipe that closes with it. Until then\nit is listed among the session's clients like any other."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":69,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient","typeScopeBoundary":false},{"id":"io.github.libtmux.control.ControlClient.ControlClient.attachUnfenced","name":"attachUnfenced","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"params":[{"name":"config","type":"ServerConfig","doc":"which tmux and which server"},{"name":"session","type":"SessionId","doc":"the session to attach to"}],"returns":"ControlClient","raw":"@Operation(Kind.LIFECYCLE)\n public static ControlClient attachUnfenced(ServerConfig config, SessionId session)","typeScopeBoundary":true},{"params":[{"name":"config","type":"ServerConfig","doc":"which tmux and which server"},{"name":"session","type":"SessionId","doc":"the session to attach to"},{"name":"timeout","type":"Duration","doc":"how long to wait for the client to become ready"}],"returns":"ControlClient","raw":"@Operation(Kind.LIFECYCLE)\n public static ControlClient attachUnfenced(ServerConfig config, SessionId session, Duration timeout)","typeScopeBoundary":true}],"doc":{"summary":"Attaches a control client to whatever server now answers this endpoint.","body":"Attaching is what makes tmux push {@code %output}: a control client that never attaches is\ntold about command replies and nothing else.\n\nThis does not check which tmux process answered. A socket can be taken over by a new\nserver that reuses the same session id. {@link io.github.libtmux.Server#control} attaches to\nthe process a capture already named; prefer it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":141,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.attachUnfenced","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.attachUnfenced","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-attachunfenced"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.attach","name":"attach","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"params":[{"name":"config","type":"ServerConfig"},{"name":"session","type":"SessionId"},{"name":"serverPid","type":"long","doc":"the tmux process a capture recorded"},{"name":"serverVersion","type":"String","doc":"the version text that process reported, compared as text"},{"name":"timeout","type":"Duration"}],"returns":"ControlClient","raw":"@Operation(Kind.LIFECYCLE)\n public static ControlClient attach(\n ServerConfig config, SessionId session, long serverPid, String serverVersion, Duration timeout)","typeScopeBoundary":true},{"params":[{"name":"carrier","type":"ControlCarrier"},{"name":"config","type":"ServerConfig"},{"name":"session","type":"SessionId"},{"name":"serverPid","type":"long"},{"name":"serverStartTime","type":"java.util.OptionalLong","doc":"when the captured process started, as {@code #{start_time}} reported it; compared when present, since a restarted tmux can be given the same pid and version"},{"name":"serverVersion","type":"String"},{"name":"timeout","type":"Duration"}],"returns":"ControlClient","raw":"@Operation(Kind.LIFECYCLE)\n public static ControlClient attach(\n ControlCarrier carrier,\n ServerConfig config,\n SessionId session,\n long serverPid,\n java.util.OptionalLong serverStartTime,\n String serverVersion,\n Duration timeout)","typeScopeBoundary":true}],"doc":{"summary":"Attaches, then leaves unless the live server is still the process that was captured.","body":"A pid can be reused, so the version tmux reports is part of the check. A mismatch detaches\nbefore this client changes the server: layout refresh runs only after the check passes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":170,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.attach","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.attach","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-attach"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.send","name":"send","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"params":[{"name":"argv","type":"String","variadic":"positional"}],"returns":"ControlReply","raw":"@Operation(Kind.MUTATION)\n public ControlReply send(String... argv)","typeScopeBoundary":false},{"params":[{"name":"argv","type":"List"}],"returns":"ControlReply","raw":"@Operation(Kind.MUTATION)\n public ControlReply send(List argv)","typeScopeBoundary":false},{"params":[{"name":"argv","type":"List","doc":"the command, its arguments already separate elements"},{"name":"timeout","type":"Duration","doc":"how long to wait for tmux to answer"}],"returns":"ControlReply","returnsDoc":"tmux's reply","raises":[{"type":"DispatchException","doc":"if the request cannot complete; its {@link DispatchException#outcome() outcome} is {@link DispatchOutcome#NOT_DISPATCHED} until the writer picks the request and {@link DispatchOutcome#UNKNOWN} afterwards"}],"raw":"@Operation(Kind.MUTATION)\n public ControlReply send(List argv, Duration timeout)","typeScopeBoundary":false}],"doc":{"summary":"Runs one command and waits for its reply."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":311,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.send","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.send","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-send"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.isAlive","name":"isAlive","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"params":[],"returns":"boolean","raw":"@Operation(Kind.CAPTURED)\n public boolean isAlive()","typeScopeBoundary":false}],"doc":{"summary":"Whether the client is still running.","body":"A control client is a client of the server it talks to, so it ends when that server does.\nA carrier holding one needs to tell \"this command failed\" from \"there is no longer anything\nto send commands to\", which are the same exception until this is asked."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":408,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.isAlive","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.isAlive","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-isalive"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.subscribeOutput","name":"subscribeOutput","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"params":[{"name":"capacity","type":"int","doc":"how many values this subscriber can retain before its oldest value is dropped"}],"returns":"EventSubscription","returnsDoc":"a pull subscription owned by the caller","raises":[{"type":"IllegalArgumentException","doc":"if {@code capacity} is not positive"},{"type":"IllegalStateException","doc":"if the client has ended"}],"raw":"@Operation(Kind.STREAM)\n public EventSubscription subscribeOutput(int capacity)","typeScopeBoundary":false}],"doc":{"summary":"Subscribes to terminal output tmux pushes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":421,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.subscribeOutput","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.subscribeOutput","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-subscribeoutput"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.subscribeEvents","name":"subscribeEvents","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"params":[{"name":"capacity","type":"int","doc":"how many values this subscriber can retain before its oldest value is dropped"}],"returns":"EventSubscription","returnsDoc":"a pull subscription owned by the caller","raises":[{"type":"IllegalArgumentException","doc":"if {@code capacity} is not positive"},{"type":"IllegalStateException","doc":"if the client has ended"}],"raw":"@Operation(Kind.STREAM)\n public EventSubscription subscribeEvents(int capacity)","typeScopeBoundary":false}],"doc":{"summary":"Subscribes to state changes tmux volunteers."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":434,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.subscribeEvents","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.subscribeEvents","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-subscribeevents"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.watch","name":"watch","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"params":[{"name":"name","type":"String","doc":"what to call it; registering the same name again replaces the old one"},{"name":"target","type":"String","doc":"{@code %*} for every pane, {@code @*} for every window, a specific {@code %id} or {@code @id}, or the attached session (pass {@code \"\"} - see below)"},{"name":"format","type":"String","doc":"a tmux format, such as {@code #{pane_current_command}}"}],"returns":"ControlReply","raw":"@Operation(Kind.MUTATION)\n public ControlReply watch(String name, String target, String format)","typeScopeBoundary":false}],"doc":{"summary":"Asks tmux to report a format whenever its value changes.","body":"tmux re-expands the format about once a second and writes a {@code subscription-changed}\nevent only when the result differs from last time, so the comparison happens in the server and\na client that subscribes does nothing at all between changes. This is what makes watching a\nserver cost nothing while it is idle."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":452,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.watch","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.watch","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-watch"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.unwatch","name":"unwatch","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"ControlReply","raw":"@Operation(Kind.MUTATION)\n public ControlReply unwatch(String name)","typeScopeBoundary":false}],"doc":{"summary":"Stops a watch. tmux reads a name with no colon in it as one to remove."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":471,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.unwatch","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.unwatch","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-unwatch"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.LIFECYCLE)\n @Override\n public void close()","typeScopeBoundary":false}],"doc":{"summary":"Ends the client, rejecting queued requests and resolving picked requests as uncertain."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":477,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.close","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.close","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-close"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.line","name":"line","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"params":[{"name":"argv","type":"List"}],"returns":"String","raw":"static String line(List argv)","typeScopeBoundary":true}],"doc":{"summary":"tmux parses a control-mode request as one line, so an argument has to survive its lexer. Single quotes preserve everything except a single quote, which is closed, escaped and reopened."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":524,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.line","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.line","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-line"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.standardError","name":"standardError","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"params":[],"returns":"String","raw":"@Operation(Kind.CAPTURED)\n public String standardError()","typeScopeBoundary":false}],"doc":{"summary":"The error text captured from this control process, at most 4096 bytes.","body":"Empty when the process wrote none. {@link #standardErrorTruncated()} says the stream\ncontinued past that bound. The text is whatever had been read when this is called."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":580,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.standardError","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.standardError","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-standarderror"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.standardErrorTruncated","name":"standardErrorTruncated","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"params":[],"returns":"boolean","raw":"@Operation(Kind.CAPTURED)\n public boolean standardErrorTruncated()","typeScopeBoundary":false}],"doc":{"summary":"Whether {@link #standardError()} stopped before the process finished writing it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":588,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.standardErrorTruncated","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.standardErrorTruncated","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-standarderrortruncated"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.unescape","name":"unescape","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"params":[{"name":"line","type":"byte[]"},{"name":"from","type":"int"}],"returns":"byte[]","raw":"static byte[] unescape(byte[] line, int from)","typeScopeBoundary":true}],"doc":{"summary":"tmux writes a control byte or a backslash as a three-digit octal escape, and the rest raw."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":721,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.unescape","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.unescape","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-unescape"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent","name":"ControlEvent","kind":"class","modifiers":[],"signatures":[{"raw":"public record ControlEvent(\n String kind, @ReadOnly List fields, Optional value, Notification notification)","params":[{"name":"kind","type":"String","doc":"the notification name, such as {@code window-add} or {@code subscription-changed}"},{"name":"fields","type":"List","doc":"the words that followed it, before any {@code :} separator"},{"name":"value","type":"Optional","doc":"what followed a {@code :} separator, which only a subscription carries"},{"name":"notification","type":"Notification","doc":"the same notification, typed"}]}],"doc":{"summary":"Something tmux volunteered, rather than an answer to a request.","body":"A control client is told about changes as they happen — a window appearing, a session being\nrenamed, a layout moving — without anything asking. That is the difference between watching a\nserver and polling one.\n\nTwo readings of one line. {@link #notification()} is typed, for matching on: a sealed set of\nwhat tmux sends, with a {@link Notification.Unknown} case so that a notification a newer tmux adds\nstill arrives rather than being dropped. {@link #kind()}, {@link #fields()} and {@link #value()}\nare what tmux wrote, word by word, for anything the typed reading does not cover."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent","typeScopeBoundary":false},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent.ControlEvent","name":"ControlEvent","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlEvent.ControlEvent","signatures":[{"params":[{"name":"kind","type":"String"},{"name":"fields","type":"List"},{"name":"value","type":"Optional"}],"raw":"public ControlEvent(String kind, List fields, Optional value)","typeScopeBoundary":false}],"doc":{"summary":"An event from its words, with the typed reading taken from them.","body":"A name is rejoined from the words with single spaces, so one tmux wrote with a run of them\nreads back with one. {@link #parse} reads the line tmux wrote and has no such loss."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","line":39,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent.ControlEvent","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent.ControlEvent","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent-controlevent"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent.parse","name":"parse","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.control.ControlEvent.ControlEvent","signatures":[{"params":[{"name":"line","type":"String","doc":"the line as tmux wrote it, leading {@code %} and all"}],"returns":"Optional","returnsDoc":"the event, or empty when the line is not a notification","raw":"static Optional parse(String line)","typeScopeBoundary":true}],"doc":{"summary":"Reads one notification line."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent.parse","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent.parse","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent-parse"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent.subscription","name":"subscription","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlEvent.ControlEvent","signatures":[{"params":[],"returns":"Optional","raw":"public Optional subscription()","typeScopeBoundary":false}],"doc":{"summary":"The name a subscription was registered under, for an event that came from one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","line":74,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent.subscription","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent.subscription","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent-subscription"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent.paneId","name":"paneId","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlEvent.ControlEvent","signatures":[{"params":[],"returns":"Optional","raw":"public Optional paneId()","typeScopeBoundary":false}],"doc":{"summary":"The first field naming a pane, which is how an event says which pane it is about."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","line":79,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent.paneId","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent.paneId","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent-paneid"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent.windowId","name":"windowId","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlEvent.ControlEvent","signatures":[{"params":[],"returns":"Optional","raw":"public Optional windowId()","typeScopeBoundary":false}],"doc":{"summary":"The first field naming a window."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","line":87,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent.windowId","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent.windowId","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent-windowid"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent.kind","name":"kind","kind":"method","parent":"io.github.libtmux.control.ControlEvent.ControlEvent","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the notification name, such as {@code window-add} or {@code subscription-changed}"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent.kind","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent.kind","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent-kind"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent.fields","name":"fields","kind":"method","parent":"io.github.libtmux.control.ControlEvent.ControlEvent","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the words that followed it, before any {@code :} separator"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent.fields","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent.fields","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent-fields"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent.value","name":"value","kind":"method","parent":"io.github.libtmux.control.ControlEvent.ControlEvent","modifiers":[],"signatures":[{"params":[],"returns":"Optional"}],"doc":{"summary":"what followed a {@code :} separator, which only a subscription carries"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent.value","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent.value","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent-value"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent.notification","name":"notification","kind":"method","parent":"io.github.libtmux.control.ControlEvent.ControlEvent","modifiers":[],"signatures":[{"params":[],"returns":"Notification"}],"doc":{"summary":"the same notification, typed"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent.notification","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent.notification","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent-notification"},{"id":"io.github.libtmux.control.ControlLineReader.ControlLineReader","name":"ControlLineReader","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Reads bounded physical lines from a control client's byte stream."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlLineReader.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlLineReader","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlLineReader.ControlLineReader","product":"core","slug":"io-github-libtmux-control-controllinereader-controllinereader","typeScopeBoundary":false},{"id":"io.github.libtmux.control.ControlLineReader.ControlLineReader.ControlLineReader","name":"ControlLineReader","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlLineReader.ControlLineReader","signatures":[{"params":[{"name":"source","type":"InputStream"},{"name":"maxBytes","type":"int"}],"raw":"ControlLineReader(InputStream source, int maxBytes)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlLineReader.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlLineReader.ControlLineReader","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlLineReader.ControlLineReader.ControlLineReader","product":"core","slug":"io-github-libtmux-control-controllinereader-controllinereader-controllinereader"},{"id":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line","name":"Line","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.ControlLineReader.ControlLineReader","signatures":[{"raw":"@SuppressWarnings(\"ArrayRecordComponent\") // Internal: read once by the thread that made it.\n record Line(String text, int encodedBytes, byte[] bytes)","params":[{"name":"text","type":"String"},{"name":"encodedBytes","type":"int"},{"name":"bytes","type":"byte[]"}]}],"doc":{"summary":"A line as text, its length on the wire, and its bytes without the line ending."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlLineReader.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlLineReader.Line","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line","product":"core","slug":"io-github-libtmux-control-controllinereader-controllinereader-line","typeScopeBoundary":true},{"id":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line.text","name":"text","kind":"method","parent":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlLineReader.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlLineReader.Line.text","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line.text","product":"core","slug":"io-github-libtmux-control-controllinereader-controllinereader-line-text"},{"id":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line.encodedBytes","name":"encodedBytes","kind":"method","parent":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlLineReader.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlLineReader.Line.encodedBytes","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line.encodedBytes","product":"core","slug":"io-github-libtmux-control-controllinereader-controllinereader-line-encodedbytes"},{"id":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line.bytes","name":"bytes","kind":"method","parent":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line","modifiers":[],"signatures":[{"params":[],"returns":"byte[]"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlLineReader.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlLineReader.Line.bytes","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line.bytes","product":"core","slug":"io-github-libtmux-control-controllinereader-controllinereader-line-bytes"},{"id":"io.github.libtmux.control.ControlLineReader.ControlLineReader.readLine","name":"readLine","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlLineReader.ControlLineReader","signatures":[{"params":[],"returns":"Line","raw":"@Nullable\n Line readLine() throws IOException","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlLineReader.java","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlLineReader.readLine","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlLineReader.ControlLineReader.readLine","product":"core","slug":"io-github-libtmux-control-controllinereader-controllinereader-readline"},{"id":"io.github.libtmux.control.ControlLineReader.ControlLineReader.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlLineReader.ControlLineReader","signatures":[{"params":[],"returns":"void","raw":"@Override\n public void close() throws IOException","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlLineReader.java","line":58,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlLineReader.close","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlLineReader.ControlLineReader.close","product":"core","slug":"io-github-libtmux-control-controllinereader-controllinereader-close"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol","name":"ControlProtocol","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Frames control-mode replies and encodes requests for tmux's command parser."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol","typeScopeBoundary":false},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.DEFAULT_MAX_REPLY_BYTES","name":"DEFAULT_MAX_REPLY_BYTES","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol","signatures":[],"type":"int","value":"16 * 1024 * 1024","source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.DEFAULT_MAX_REPLY_BYTES","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.DEFAULT_MAX_REPLY_BYTES","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-default_max_reply_bytes","typeScopeBoundary":true},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.ControlProtocol","name":"ControlProtocol","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol","signatures":[{"params":[],"raw":"ControlProtocol()","typeScopeBoundary":false},{"params":[{"name":"maxReplyBytes","type":"int"}],"raw":"ControlProtocol(int maxReplyBytes)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.ControlProtocol","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.ControlProtocol","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-controlprotocol"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Result","name":"Result","kind":"interface","modifiers":[],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.Result","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Result","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-result","typeScopeBoundary":true},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Awaiting","name":"Awaiting","kind":"enum","modifiers":[],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.Awaiting","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Awaiting","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-awaiting","typeScopeBoundary":true},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Awaiting.INSTANCE","name":"INSTANCE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Awaiting","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.Awaiting.INSTANCE","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Awaiting.INSTANCE","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-awaiting-instance","typeScopeBoundary":true},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Notification","name":"Notification","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol","signatures":[{"raw":"record Notification(String line) implements Result","params":[{"name":"line","type":"String"}]}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.Notification","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Notification","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-notification","typeScopeBoundary":true},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Notification.line","name":"line","kind":"method","parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Notification","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.Notification.line","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Notification.line","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-notification-line"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply","name":"Reply","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol","signatures":[{"raw":"record Reply(OperationOutcome outcome, @ReadOnly List lines, boolean requested) implements Result","params":[{"name":"outcome","type":"OperationOutcome"},{"name":"lines","type":"List"},{"name":"requested","type":"boolean"}]}],"doc":{"summary":"One reply block. {@code requested} is tmux's guard flag: set for a command this client wrote, and for any that command queued, and clear for what a hook ran."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.Reply","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-reply","typeScopeBoundary":true},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply.outcome","name":"outcome","kind":"method","parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply","modifiers":[],"signatures":[{"params":[],"returns":"OperationOutcome"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.Reply.outcome","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply.outcome","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-reply-outcome"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply.lines","name":"lines","kind":"method","parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.Reply.lines","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply.lines","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-reply-lines"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply.requested","name":"requested","kind":"method","parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.Reply.requested","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply.requested","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-reply-requested"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.accept","name":"accept","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol","signatures":[{"params":[{"name":"line","type":"String"}],"returns":"Result","raw":"Result accept(String line)","typeScopeBoundary":false},{"params":[{"name":"line","type":"String"},{"name":"encodedBytes","type":"int"}],"returns":"Result","raw":"Result accept(String line, int encodedBytes)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.accept","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.accept","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-accept"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.line","name":"line","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol","signatures":[{"params":[{"name":"argv","type":"List"}],"returns":"String","raw":"static String line(List argv)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":98,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.line","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.line","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-line"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.LimitExceeded","name":"LimitExceeded","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":113,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.LimitExceeded","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.LimitExceeded","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-limitexceeded","typeScopeBoundary":true},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.LimitExceeded.LimitExceeded","name":"LimitExceeded","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol.LimitExceeded","signatures":[{"params":[{"name":"limit","type":"int"}],"raw":"LimitExceeded(int limit)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":116,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.LimitExceeded.LimitExceeded","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.LimitExceeded.LimitExceeded","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-limitexceeded-limitexceeded"},{"id":"io.github.libtmux.control.ControlReply.ControlReply","name":"ControlReply","kind":"class","modifiers":[],"signatures":[{"raw":"public record ControlReply(\n OperationOutcome outcome, @ReadOnly List lines)","params":[{"name":"outcome","type":"OperationOutcome","doc":"what tmux said became of it; never {@code SKIPPED}, because control-mode requests are independent and a failure discards nothing behind it"},{"name":"lines","type":"List","doc":"the lines tmux produced between the reply's own begin and end markers"}]}],"doc":{"summary":"One command's reply in control mode."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlReply.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlReply","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlReply.ControlReply","product":"core","slug":"io-github-libtmux-control-controlreply-controlreply","typeScopeBoundary":false},{"id":"io.github.libtmux.control.ControlReply.ControlReply.succeeded","name":"succeeded","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlReply.ControlReply","signatures":[{"params":[],"returns":"boolean","raw":"public boolean succeeded()","typeScopeBoundary":false}],"doc":{"summary":"Whether tmux ran the command and it succeeded."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlReply.java","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlReply.succeeded","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlReply.ControlReply.succeeded","product":"core","slug":"io-github-libtmux-control-controlreply-controlreply-succeeded"},{"id":"io.github.libtmux.control.ControlReply.ControlReply.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlReply.ControlReply","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"doc":{"summary":"Counts only: reply lines carry pane content."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlReply.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlReply.toString","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlReply.ControlReply.toString","product":"core","slug":"io-github-libtmux-control-controlreply-controlreply-tostring"},{"id":"io.github.libtmux.control.ControlReply.ControlReply.outcome","name":"outcome","kind":"method","parent":"io.github.libtmux.control.ControlReply.ControlReply","modifiers":[],"signatures":[{"params":[],"returns":"OperationOutcome"}],"doc":{"summary":"what tmux said became of it; never {@code SKIPPED}, because control-mode requests are independent and a failure discards nothing behind it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlReply.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlReply.outcome","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlReply.ControlReply.outcome","product":"core","slug":"io-github-libtmux-control-controlreply-controlreply-outcome"},{"id":"io.github.libtmux.control.ControlReply.ControlReply.lines","name":"lines","kind":"method","parent":"io.github.libtmux.control.ControlReply.ControlReply","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the lines tmux produced between the reply's own begin and end markers"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlReply.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlReply.lines","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlReply.ControlReply.lines","product":"core","slug":"io-github-libtmux-control-controlreply-controlreply-lines"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter","name":"ControlWriter","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Owns the process-pipe write and the FIFO that attributes replies to requests.","body":"A request's reply is the first block tmux writes for it: an acknowledgement, which deferred\nwork may outlive. But tmux answers every command another one queues with a block of its own, as\n{@code if-shell} queues its branch and {@code run-shell} reports its job, numbered like any other.\nSo each request line is followed by a second, {@code display-message -p} of a marker unique to it:\ntmux runs that after everything the request queued, whether the request failed or not. Blocks\nbetween a reply and its marker belong to the request already answered, and are not handed to\nthe next one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter","typeScopeBoundary":false},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.DEFAULT_CAPACITY","name":"DEFAULT_CAPACITY","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[],"type":"int","value":"64","source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.DEFAULT_CAPACITY","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.DEFAULT_CAPACITY","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-default_capacity","typeScopeBoundary":true},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.ControlWriter","name":"ControlWriter","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"params":[{"name":"output","type":"BufferedWriter"},{"name":"capacity","type":"int"},{"name":"failed","type":"Consumer"}],"raw":"ControlWriter(BufferedWriter output, int capacity, Consumer failed)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.ControlWriter","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.ControlWriter","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-controlwriter"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.expectInitial","name":"expectInitial","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"params":[{"name":"timeout","type":"Duration"}],"returns":"Request","raw":"Request expectInitial(Duration timeout)","typeScopeBoundary":false}],"doc":{"summary":"Records the attach request dispatched by the process invocation."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.expectInitial","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.expectInitial","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-expectinitial"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.start","name":"start","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"params":[],"returns":"void","raw":"void start()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":73,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.start","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.start","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-start"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.exchange","name":"exchange","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"params":[{"name":"line","type":"String"},{"name":"timeout","type":"Duration"}],"returns":"ControlReply","raw":"ControlReply exchange(String line, Duration timeout)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.exchange","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.exchange","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-exchange"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.takeTiming","name":"takeTiming","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"params":[{"name":"elapsed","type":"long"}],"returns":"long[]","raw":"long[] takeTiming(long elapsed)","typeScopeBoundary":false}],"doc":{"summary":"Queue time, then run time, for the last exchange on this thread; {@code elapsed} as run time when this thread made none."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":110,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.takeTiming","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.takeTiming","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-taketiming"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.complete","name":"complete","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"params":[{"name":"outcome","type":"OperationOutcome"},{"name":"lines","type":"List"},{"name":"requested","type":"boolean","doc":"tmux's guard flag: clear for a block a hook ran, which answers no request"}],"returns":"void","raw":"void complete(OperationOutcome outcome, List lines, boolean requested)","typeScopeBoundary":false}],"doc":{"summary":"Called by the reader for each reply block, in the order tmux wrote them."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":121,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.complete","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.complete","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-complete"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.readerEnded","name":"readerEnded","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"params":[],"returns":"void","raw":"void readerEnded()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":148,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.readerEnded","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.readerEnded","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-readerended"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"params":[],"returns":"void","raw":"void close()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":152,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.close","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.close","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-close"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.join","name":"join","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"params":[{"name":"timeoutMillis","type":"long"}],"returns":"void","raw":"void join(long timeoutMillis) throws InterruptedException","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":156,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.join","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.join","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-join"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.await","name":"await","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"params":[{"name":"request","type":"Request"}],"returns":"ControlReply","raw":"ControlReply await(Request request)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":170,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.await","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.await","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-await"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","name":"Request","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":329,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request","typeScopeBoundary":true},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.pick","name":"pick","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"params":[],"returns":"boolean","raw":"boolean pick()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":356,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.pick","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.pick","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-pick"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.timing","name":"timing","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"params":[{"name":"now","type":"long"}],"returns":"long[]","raw":"long[] timing(long now)","typeScopeBoundary":false}],"doc":{"summary":"Queue time, then run time, up to now. A request never picked spent all of it queued."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":366,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.timing","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.timing","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-timing"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.cancel","name":"cancel","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"params":[{"name":"reason","type":"DispatchException"}],"returns":"boolean","raw":"boolean cancel(DispatchException reason)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":373,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.cancel","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.cancel","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-cancel"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.complete","name":"complete","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"params":[{"name":"reply","type":"ControlReply"}],"returns":"void","raw":"void complete(ControlReply reply)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":377,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.complete","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.complete","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-complete"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.fail","name":"fail","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"params":[{"name":"reason","type":"DispatchException"}],"returns":"boolean","raw":"boolean fail(DispatchException reason)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":381,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.fail","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.fail","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-fail"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.claimFailure","name":"claimFailure","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"params":[],"returns":"boolean","raw":"boolean claimFailure()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":389,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.claimFailure","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.claimFailure","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-claimfailure"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.publishFailure","name":"publishFailure","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"params":[{"name":"reason","type":"DispatchException"}],"returns":"void","raw":"void publishFailure(DispatchException reason)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":393,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.publishFailure","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.publishFailure","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-publishfailure"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.isDone","name":"isDone","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"params":[],"returns":"boolean","raw":"boolean isDone()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":406,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.isDone","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.isDone","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-isdone"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.remainingNanos","name":"remainingNanos","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"params":[],"returns":"long","raw":"long remainingNanos()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":410,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.remainingNanos","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.remainingNanos","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-remainingnanos"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.await","name":"await","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"params":[],"returns":"boolean","raw":"boolean await() throws InterruptedException","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":415,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.await","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.await","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-await"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.answer","name":"answer","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"params":[],"returns":"ControlReply","raw":"ControlReply answer()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":419,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.answer","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.answer","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-answer"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.awaitTerminal","name":"awaitTerminal","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"params":[],"returns":"void","raw":"void awaitTerminal()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":430,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.awaitTerminal","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.awaitTerminal","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-awaitterminal"},{"id":"io.github.libtmux.control.Delivery.Delivery","name":"Delivery","kind":"interface","modifiers":[],"signatures":[],"doc":{"summary":"One step in a control subscription.","body":"A {@link Gap} sits in the sequence where events were discarded, ahead of the events that\nsurvived. It is not a side total: the next read is the gap, and the one after it is whatever\nremains."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Delivery.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Delivery","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Delivery.Delivery","product":"core","slug":"io-github-libtmux-control-delivery-delivery","typeParams":["T"],"typeParamNames":["T"],"typeScopeBoundary":false},{"id":"io.github.libtmux.control.Delivery.Delivery.kept","name":"kept","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.control.Delivery.Delivery","signatures":[{"params":[{"name":"step","type":"Delivery","doc":"the subscription's next step"}],"returns":"T","typeParams":["T"],"returnsDoc":"the event","raises":[{"type":"IllegalStateException","doc":"if {@code step} is a gap"}],"raw":"static T kept(Delivery step)","typeParamNames":["T"],"typeScopeBoundary":true}],"doc":{"summary":"The event a strict reader kept. A gap fails the read."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Delivery.java","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Delivery.kept","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Delivery.Delivery.kept","product":"core","slug":"io-github-libtmux-control-delivery-delivery-kept"},{"id":"io.github.libtmux.control.Delivery.Delivery.Event","name":"Event","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Delivery.Delivery","signatures":[{"raw":"record Event(T value) implements Delivery","params":[{"name":"value","type":"T","doc":"the event"}],"typeParams":["T"],"typeParamNames":["T"]}],"doc":{"summary":"An event the subscription kept."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Delivery.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Delivery.Event","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Delivery.Delivery.Event","product":"core","slug":"io-github-libtmux-control-delivery-delivery-event","typeParams":["T"],"typeParamNames":["T"],"typeScopeBoundary":true},{"id":"io.github.libtmux.control.Delivery.Delivery.Event.value","name":"value","kind":"method","parent":"io.github.libtmux.control.Delivery.Delivery.Event","modifiers":[],"signatures":[{"params":[],"returns":"T"}],"doc":{"summary":"the event"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Delivery.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Delivery.Event.value","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Delivery.Delivery.Event.value","product":"core","slug":"io-github-libtmux-control-delivery-delivery-event-value"},{"id":"io.github.libtmux.control.Delivery.Delivery.Gap","name":"Gap","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Delivery.Delivery","signatures":[{"raw":"record Gap(long missed) implements Delivery","params":[{"name":"missed","type":"long","doc":"the number discarded, at least one"}],"typeParams":["T"],"typeParamNames":["T"]}],"doc":{"summary":"How many events were discarded since the previous read because the buffer was full."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Delivery.java","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Delivery.Gap","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Delivery.Delivery.Gap","product":"core","slug":"io-github-libtmux-control-delivery-delivery-gap","typeParams":["T"],"typeParamNames":["T"],"typeScopeBoundary":true},{"id":"io.github.libtmux.control.Delivery.Delivery.Gap.missed","name":"missed","kind":"method","parent":"io.github.libtmux.control.Delivery.Delivery.Gap","modifiers":[],"signatures":[{"params":[],"returns":"long"}],"doc":{"summary":"the number discarded, at least one"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Delivery.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Delivery.Gap.missed","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Delivery.Delivery.Gap.missed","product":"core","slug":"io-github-libtmux-control-delivery-delivery-gap-missed"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription","name":"EventSubscription","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Pulls events volunteered by one control client.","body":"Each subscription owns a fixed-capacity buffer. When that buffer is full, the next event\nreplaces its oldest event. The read that follows is a {@link Delivery.Gap} naming how many were\ndiscarded since the previous read, and only then the events that remain. {@link #droppedCount()}\nis the total across the subscription's life. Another subscription has its own buffer and its own\ngaps. The control protocol reader only offers values to these buffers, and never runs subscriber\ncode beyond a {@link #onReady readiness callback}.\n\nOne reader at a time. Public operations are thread-safe, and reads from different threads one\nafter another are fine — a coroutine or a fiber moves between threads — but a read that overlaps\nanother, or any read once {@link #stream()} or {@link #publisher()} has taken the subscription, is\nrefused with {@link IllegalStateException}: two readers would split one sequence and its gaps\nbetween them. For a second reader, subscribe again; each subscription gets every event.\n\n{@link #next()} blocks. {@link #poll()} never does, and {@link #onReady(Runnable)} arms a\none-shot wakeup for when there is something to poll, so an event loop or a coroutine can read\nwithout holding a thread while nothing arrives.\n\nA subscription does not reconnect. When it ends, {@link #next()} returns empty. {@link\n#cause()} is empty when the caller closed it, and set when the control client ended it. Attach\nagain from the captured session and read a snapshot; nothing already missed is replayed.\n\nEnding is terminal and wakes threads blocked in {@link #next()}. A caller's {@link #close()}\ndiscards buffered events: the caller has chosen not to read them, so they are not overflow and do\nnot increment the loss count. When the control client ends a subscription, what it had already\ndelivered stays readable, a pending gap first, and only then does a read return empty with\n{@link #cause()} set."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription","typeParams":["T"],"typeParamNames":["T"],"typeScopeBoundary":false},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.EventSubscription","name":"EventSubscription","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"params":[{"name":"capacity","type":"int"},{"name":"onClose","type":"Consumer>"}],"raw":"EventSubscription(int capacity, Consumer> onClose)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":74,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.EventSubscription","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.EventSubscription","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-eventsubscription"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.offer","name":"offer","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"params":[{"name":"event","type":"T"}],"returns":"void","raw":"void offer(T event)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":82,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.offer","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.offer","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-offer"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.droppedCount","name":"droppedCount","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"params":[],"returns":"long","returnsDoc":"the monotonic loss count","raw":"@Operation(Kind.CAPTURED)\n public long droppedCount()","typeScopeBoundary":false}],"doc":{"summary":"Returns the exact number of events discarded because this subscription's buffer was full."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":118,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.droppedCount","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.droppedCount","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-droppedcount"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.cause","name":"cause","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"params":[],"returns":"Optional","raw":"@Operation(Kind.CAPTURED)\n public Optional cause()","typeScopeBoundary":false}],"doc":{"summary":"Why this subscription ended, when the control client ended it.","body":"Empty when the subscription is still open, and empty when the caller closed it. A client\nthat died sets this before the read returns empty."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":134,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.cause","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.cause","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-cause"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.next","name":"next","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"params":[],"returns":"Optional>","returnsDoc":"the next gap or event, or empty when the subscription has closed and no gap is waiting","raises":[{"type":"IllegalStateException","doc":"if another read is in progress, or a stream or publisher owns this subscription"},{"type":"InterruptedException","doc":"if the waiting thread is interrupted"}],"raw":"@Operation(Kind.WAIT)\n public Optional> next() throws InterruptedException","typeScopeBoundary":false},{"params":[{"name":"timeout","type":"Duration","doc":"how long to wait, zero to inspect the buffer without waiting"}],"returns":"Optional>","returnsDoc":"the next gap or event, or empty when none arrived before the deadline","raises":[{"type":"IllegalArgumentException","doc":"if {@code timeout} is negative"},{"type":"IllegalStateException","doc":"if another read is in progress, or a stream or publisher owns this subscription"},{"type":"InterruptedException","doc":"if the waiting thread is interrupted"}],"raw":"@Operation(Kind.WAIT)\n public Optional> next(Duration timeout) throws InterruptedException","typeScopeBoundary":false}],"doc":{"summary":"Waits until the next step arrives or this subscription closes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":152,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.next","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.next","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-next"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.poll","name":"poll","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"params":[],"returns":"Optional>","returnsDoc":"the next gap or event, or empty when none is buffered; after the subscription has ended, empty once what it held is read","raises":[{"type":"IllegalStateException","doc":"if another read is in progress, or a stream or publisher owns this subscription"}],"raw":"@Operation(Kind.CAPTURED)\n public Optional> poll()","typeScopeBoundary":false}],"doc":{"summary":"Returns the next step if one is waiting, without blocking."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":189,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.poll","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.poll","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-poll"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.onReady","name":"onReady","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"params":[{"name":"callback","type":"Runnable"}],"returns":"void","raises":[{"type":"IllegalStateException","doc":"if a callback is already armed, or a stream or publisher owns this subscription"}],"raw":"@Operation(Kind.CAPTURED)\n public void onReady(Runnable callback)","typeScopeBoundary":false}],"doc":{"summary":"Arms a one-shot wakeup for when this subscription has something to read, or has ended.","body":"Runs {@code callback} at once, on this thread, when a step is already waiting or the\nsubscription has ended. Otherwise it runs once, on the control client's reader thread, when the\nfirst step arrives or the subscription ends, and is then disarmed: drain with {@link #poll()}\nuntil it is empty, then arm again. Checking and arming happen under the lock that delivery\ntakes, so a step cannot slip between them unannounced.\n\nThe callback runs on the thread delivering events, so it must not block: resume a waiting\ncoroutine, complete a promise, and return. One that throws is logged and ignored, and delivery\ncontinues."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":220,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.onReady","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.onReady","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-onready"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.clearReady","name":"clearReady","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.CAPTURED)\n public void clearReady()","typeScopeBoundary":false}],"doc":{"summary":"Disarms the readiness callback, if one is armed. For a reader that stopped waiting."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":245,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.clearReady","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.clearReady","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-clearready"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.stream","name":"stream","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"params":[],"returns":"java.util.stream.Stream>","raises":[{"type":"io.github.libtmux.exception.LibTmuxException","doc":"from the stream if the reading thread is interrupted; its interrupt status is set again"}],"raw":"@Operation(Kind.STREAM)\n public java.util.stream.Stream> stream()","typeScopeBoundary":false}],"doc":{"summary":"The steps still to come, in order, each read by the thread consuming the stream.","body":"Pull-only: a step is read when the stream asks for one, and events that arrive meanwhile\nwait in this subscription's buffer, so its capacity alone decides what becomes a {@link\nDelivery.Gap}. The stream ends when this subscription closes. When the control client ended\nit, the stream fails with {@link #cause()}. Closing the stream closes this subscription, and\nclosing this subscription from another thread ends a stream that is waiting.","examples":[{"lang":"java","code":"try (Stream> steps = subscription.stream()) {\nsteps.map(Delivery::kept).forEach(output -> System.out.print(output.data()));\n}"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":366,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.stream","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.stream","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-stream"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.publisher","name":"publisher","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"params":[],"returns":"Flow.Publisher>","raw":"@Operation(Kind.STREAM)\n public Flow.Publisher> publisher()","typeScopeBoundary":false},{"params":[{"name":"executor","type":"Executor","doc":"where each blocking read for the subscriber runs; one that runs a task on the calling thread makes {@link Flow.Subscription#request request} block on tmux, which the Reactive Streams rules forbid"}],"returns":"Flow.Publisher>","raw":"@Operation(Kind.STREAM)\n public Flow.Publisher> publisher(Executor executor)","typeScopeBoundary":false}],"doc":{"summary":"A {@link Flow.Publisher} view of this subscription's steps, delivered as demand allows.","body":"Reads that wait for the next step run on a fresh virtual thread, started only while a\nsubscriber has outstanding demand, so a subscriber that never asks never blocks anything. Use\n{@link #publisher(Executor)} to read somewhere else instead.\n\n@see #publisher(Executor)"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":406,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.publisher","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.publisher","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-publisher"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.isClosed","name":"isClosed","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"params":[],"returns":"boolean","raw":"@Operation(Kind.CAPTURED)\n public boolean isClosed()","typeScopeBoundary":false}],"doc":{"summary":"Whether this subscription has reached its terminal state.","body":"This distinguishes a timed read that expired from one that returned empty because the\nsubscription ended. A pending gap can still be read after the subscription has closed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":685,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.isClosed","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.isClosed","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-isclosed"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.LIFECYCLE)\n @Override\n public void close()","typeScopeBoundary":false}],"doc":{"summary":"Discards buffered events, removes this subscriber, and wakes every waiting reader."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":696,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.close","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.close","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-close"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.end","name":"end","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"params":[{"name":"failure","type":"Throwable"}],"returns":"void","raw":"void end(@Nullable Throwable failure)","typeScopeBoundary":false}],"doc":{"summary":"Ends this subscription as the control client saw it end, recording why. Unlike {@link #close()}, events already delivered stay readable."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":706,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.end","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.end","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-end"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.finish","name":"finish","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"params":[],"returns":"void","raw":"void finish()","typeScopeBoundary":false}],"doc":{"summary":"Ends this subscription as a producer with nothing more to send: not a failure, and nothing is discarded."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":711,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.finish","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.finish","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-finish"},{"id":"io.github.libtmux.control.Notification.Notification","name":"Notification","kind":"interface","modifiers":[],"signatures":[],"doc":{"summary":"What a control-mode notification says, typed, for matching on.","body":"Sealed, with {@link Unknown} as the case for everything else. tmux adds notifications between\nreleases, and a closed set with nowhere to put a new one would drop it; here a notification this\nlibrary does not model yet still arrives, as {@code Unknown}, and {@link ControlEvent#kind()} and\n{@link ControlEvent#fields()} still carry what tmux wrote.\n\nThe forms are tmux's own, from {@code control-notify.c}. A name — of a window, a session, a\nclient — is everything after the id, spaces included, as tmux writes it.","examples":[{"lang":"java","code":"switch (event.notification()) {\ncase Notification.WindowRenamed(WindowId window, String name, boolean attached) -> relabel(window, name);\ncase Notification.SessionsChanged changed -> refreshSessions();\ndefault -> {}\n}"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification","product":"core","slug":"io-github-libtmux-control-notification-notification","typeScopeBoundary":false},{"id":"io.github.libtmux.control.Notification.Notification.WindowAdded","name":"WindowAdded","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record WindowAdded(WindowId window, boolean attached) implements Notification","params":[{"name":"window","type":"WindowId"},{"name":"attached","type":"boolean"}]}],"doc":{"summary":"{@code %window-add}: a window was created; {@code attached} is false for {@code unlinked-window-add}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowAdded","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowAdded","product":"core","slug":"io-github-libtmux-control-notification-notification-windowadded","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.WindowAdded.window","name":"window","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.WindowAdded","modifiers":[],"signatures":[{"params":[],"returns":"WindowId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowAdded.window","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowAdded.window","product":"core","slug":"io-github-libtmux-control-notification-notification-windowadded-window"},{"id":"io.github.libtmux.control.Notification.Notification.WindowAdded.attached","name":"attached","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.WindowAdded","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowAdded.attached","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowAdded.attached","product":"core","slug":"io-github-libtmux-control-notification-notification-windowadded-attached"},{"id":"io.github.libtmux.control.Notification.Notification.WindowClosed","name":"WindowClosed","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record WindowClosed(WindowId window, boolean attached) implements Notification","params":[{"name":"window","type":"WindowId"},{"name":"attached","type":"boolean"}]}],"doc":{"summary":"{@code %window-close}: a window was destroyed; {@code attached} as for {@link WindowAdded}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowClosed","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowClosed","product":"core","slug":"io-github-libtmux-control-notification-notification-windowclosed","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.WindowClosed.window","name":"window","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.WindowClosed","modifiers":[],"signatures":[{"params":[],"returns":"WindowId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowClosed.window","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowClosed.window","product":"core","slug":"io-github-libtmux-control-notification-notification-windowclosed-window"},{"id":"io.github.libtmux.control.Notification.Notification.WindowClosed.attached","name":"attached","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.WindowClosed","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowClosed.attached","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowClosed.attached","product":"core","slug":"io-github-libtmux-control-notification-notification-windowclosed-attached"},{"id":"io.github.libtmux.control.Notification.Notification.WindowRenamed","name":"WindowRenamed","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record WindowRenamed(WindowId window, String name, boolean attached) implements Notification","params":[{"name":"window","type":"WindowId"},{"name":"name","type":"String"},{"name":"attached","type":"boolean"}]}],"doc":{"summary":"{@code %window-renamed}: a window has a new name; {@code attached} as for {@link WindowAdded}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowRenamed","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowRenamed","product":"core","slug":"io-github-libtmux-control-notification-notification-windowrenamed","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.WindowRenamed.window","name":"window","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.WindowRenamed","modifiers":[],"signatures":[{"params":[],"returns":"WindowId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowRenamed.window","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowRenamed.window","product":"core","slug":"io-github-libtmux-control-notification-notification-windowrenamed-window"},{"id":"io.github.libtmux.control.Notification.Notification.WindowRenamed.name","name":"name","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.WindowRenamed","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowRenamed.name","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowRenamed.name","product":"core","slug":"io-github-libtmux-control-notification-notification-windowrenamed-name"},{"id":"io.github.libtmux.control.Notification.Notification.WindowRenamed.attached","name":"attached","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.WindowRenamed","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowRenamed.attached","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowRenamed.attached","product":"core","slug":"io-github-libtmux-control-notification-notification-windowrenamed-attached"},{"id":"io.github.libtmux.control.Notification.Notification.WindowPaneChanged","name":"WindowPaneChanged","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record WindowPaneChanged(WindowId window, PaneId pane) implements Notification","params":[{"name":"window","type":"WindowId"},{"name":"pane","type":"PaneId"}]}],"doc":{"summary":"{@code %window-pane-changed}: a window's active pane changed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowPaneChanged","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowPaneChanged","product":"core","slug":"io-github-libtmux-control-notification-notification-windowpanechanged","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.WindowPaneChanged.window","name":"window","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.WindowPaneChanged","modifiers":[],"signatures":[{"params":[],"returns":"WindowId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowPaneChanged.window","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowPaneChanged.window","product":"core","slug":"io-github-libtmux-control-notification-notification-windowpanechanged-window"},{"id":"io.github.libtmux.control.Notification.Notification.WindowPaneChanged.pane","name":"pane","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.WindowPaneChanged","modifiers":[],"signatures":[{"params":[],"returns":"PaneId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowPaneChanged.pane","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowPaneChanged.pane","product":"core","slug":"io-github-libtmux-control-notification-notification-windowpanechanged-pane"},{"id":"io.github.libtmux.control.Notification.Notification.LayoutChanged","name":"LayoutChanged","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record LayoutChanged(WindowId window, WindowLayout layout) implements Notification","params":[{"name":"window","type":"WindowId"},{"name":"layout","type":"WindowLayout"}]}],"doc":{"summary":"{@code %layout-change}: a window's layout changed, in whichever form tmux reports it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.LayoutChanged","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.LayoutChanged","product":"core","slug":"io-github-libtmux-control-notification-notification-layoutchanged","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.LayoutChanged.window","name":"window","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.LayoutChanged","modifiers":[],"signatures":[{"params":[],"returns":"WindowId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.LayoutChanged.window","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.LayoutChanged.window","product":"core","slug":"io-github-libtmux-control-notification-notification-layoutchanged-window"},{"id":"io.github.libtmux.control.Notification.Notification.LayoutChanged.layout","name":"layout","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.LayoutChanged","modifiers":[],"signatures":[{"params":[],"returns":"WindowLayout"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.LayoutChanged.layout","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.LayoutChanged.layout","product":"core","slug":"io-github-libtmux-control-notification-notification-layoutchanged-layout"},{"id":"io.github.libtmux.control.Notification.Notification.SessionChanged","name":"SessionChanged","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record SessionChanged(SessionId session, String name) implements Notification","params":[{"name":"session","type":"SessionId"},{"name":"name","type":"String"}]}],"doc":{"summary":"{@code %session-changed}: the attached client is now attached to this session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionChanged","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionChanged","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionchanged","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.SessionChanged.session","name":"session","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SessionChanged","modifiers":[],"signatures":[{"params":[],"returns":"SessionId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionChanged.session","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionChanged.session","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionchanged-session"},{"id":"io.github.libtmux.control.Notification.Notification.SessionChanged.name","name":"name","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SessionChanged","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionChanged.name","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionChanged.name","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionchanged-name"},{"id":"io.github.libtmux.control.Notification.Notification.SessionRenamed","name":"SessionRenamed","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record SessionRenamed(SessionId session, String name) implements Notification","params":[{"name":"session","type":"SessionId"},{"name":"name","type":"String"}]}],"doc":{"summary":"{@code %session-renamed}: a session has a new name."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionRenamed","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionRenamed","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionrenamed","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.SessionRenamed.session","name":"session","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SessionRenamed","modifiers":[],"signatures":[{"params":[],"returns":"SessionId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionRenamed.session","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionRenamed.session","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionrenamed-session"},{"id":"io.github.libtmux.control.Notification.Notification.SessionRenamed.name","name":"name","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SessionRenamed","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionRenamed.name","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionRenamed.name","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionrenamed-name"},{"id":"io.github.libtmux.control.Notification.Notification.SessionsChanged","name":"SessionsChanged","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record SessionsChanged() implements Notification","params":[]}],"doc":{"summary":"{@code %sessions-changed}: a session was created or destroyed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":52,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionsChanged","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionsChanged","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionschanged","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.SessionWindowChanged","name":"SessionWindowChanged","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record SessionWindowChanged(SessionId session, WindowId window) implements Notification","params":[{"name":"session","type":"SessionId"},{"name":"window","type":"WindowId"}]}],"doc":{"summary":"{@code %session-window-changed}: a session's current window changed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":55,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionWindowChanged","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionWindowChanged","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionwindowchanged","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.SessionWindowChanged.session","name":"session","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SessionWindowChanged","modifiers":[],"signatures":[{"params":[],"returns":"SessionId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionWindowChanged.session","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionWindowChanged.session","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionwindowchanged-session"},{"id":"io.github.libtmux.control.Notification.Notification.SessionWindowChanged.window","name":"window","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SessionWindowChanged","modifiers":[],"signatures":[{"params":[],"returns":"WindowId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionWindowChanged.window","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionWindowChanged.window","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionwindowchanged-window"},{"id":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged","name":"ClientSessionChanged","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record ClientSessionChanged(String client, SessionId session, String name) implements Notification","params":[{"name":"client","type":"String"},{"name":"session","type":"SessionId"},{"name":"name","type":"String"}]}],"doc":{"summary":"{@code %client-session-changed}: another client is now attached to this session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":58,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.ClientSessionChanged","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged","product":"core","slug":"io-github-libtmux-control-notification-notification-clientsessionchanged","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged.client","name":"client","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.ClientSessionChanged.client","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged.client","product":"core","slug":"io-github-libtmux-control-notification-notification-clientsessionchanged-client"},{"id":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged.session","name":"session","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged","modifiers":[],"signatures":[{"params":[],"returns":"SessionId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.ClientSessionChanged.session","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged.session","product":"core","slug":"io-github-libtmux-control-notification-notification-clientsessionchanged-session"},{"id":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged.name","name":"name","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.ClientSessionChanged.name","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged.name","product":"core","slug":"io-github-libtmux-control-notification-notification-clientsessionchanged-name"},{"id":"io.github.libtmux.control.Notification.Notification.ClientDetached","name":"ClientDetached","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record ClientDetached(String client) implements Notification","params":[{"name":"client","type":"String"}]}],"doc":{"summary":"{@code %client-detached}: a client detached."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":61,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.ClientDetached","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.ClientDetached","product":"core","slug":"io-github-libtmux-control-notification-notification-clientdetached","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.ClientDetached.client","name":"client","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.ClientDetached","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.ClientDetached.client","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.ClientDetached.client","product":"core","slug":"io-github-libtmux-control-notification-notification-clientdetached-client"},{"id":"io.github.libtmux.control.Notification.Notification.PaneModeChanged","name":"PaneModeChanged","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record PaneModeChanged(PaneId pane) implements Notification","params":[{"name":"pane","type":"PaneId"}]}],"doc":{"summary":"{@code %pane-mode-changed}: a pane entered or left a mode."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.PaneModeChanged","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.PaneModeChanged","product":"core","slug":"io-github-libtmux-control-notification-notification-panemodechanged","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.PaneModeChanged.pane","name":"pane","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.PaneModeChanged","modifiers":[],"signatures":[{"params":[],"returns":"PaneId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.PaneModeChanged.pane","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.PaneModeChanged.pane","product":"core","slug":"io-github-libtmux-control-notification-notification-panemodechanged-pane"},{"id":"io.github.libtmux.control.Notification.Notification.PasteBufferChanged","name":"PasteBufferChanged","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record PasteBufferChanged(String buffer) implements Notification","params":[{"name":"buffer","type":"String"}]}],"doc":{"summary":"{@code %paste-buffer-changed}: a paste buffer was created or changed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":67,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.PasteBufferChanged","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.PasteBufferChanged","product":"core","slug":"io-github-libtmux-control-notification-notification-pastebufferchanged","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.PasteBufferChanged.buffer","name":"buffer","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.PasteBufferChanged","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.PasteBufferChanged.buffer","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.PasteBufferChanged.buffer","product":"core","slug":"io-github-libtmux-control-notification-notification-pastebufferchanged-buffer"},{"id":"io.github.libtmux.control.Notification.Notification.PasteBufferDeleted","name":"PasteBufferDeleted","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record PasteBufferDeleted(String buffer) implements Notification","params":[{"name":"buffer","type":"String"}]}],"doc":{"summary":"{@code %paste-buffer-deleted}: a paste buffer was deleted."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":70,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.PasteBufferDeleted","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.PasteBufferDeleted","product":"core","slug":"io-github-libtmux-control-notification-notification-pastebufferdeleted","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.PasteBufferDeleted.buffer","name":"buffer","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.PasteBufferDeleted","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.PasteBufferDeleted.buffer","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.PasteBufferDeleted.buffer","product":"core","slug":"io-github-libtmux-control-notification-notification-pastebufferdeleted-buffer"},{"id":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged","name":"SubscriptionChanged","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record SubscriptionChanged(\n String name, String value, Optional session, Optional window, Optional pane)\n implements Notification","params":[{"name":"name","type":"String","doc":"what the subscription was registered under"},{"name":"value","type":"String","doc":"what the format expanded to"},{"name":"session","type":"Optional","doc":"the session it is about, when tmux named one"},{"name":"window","type":"Optional","doc":"the window, when tmux named one"},{"name":"pane","type":"Optional","doc":"the pane, when tmux named one"}]}],"doc":{"summary":"{@code %subscription-changed}: a watched format has a new value."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":81,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SubscriptionChanged","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged","product":"core","slug":"io-github-libtmux-control-notification-notification-subscriptionchanged","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.name","name":"name","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"what the subscription was registered under"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SubscriptionChanged.name","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.name","product":"core","slug":"io-github-libtmux-control-notification-notification-subscriptionchanged-name"},{"id":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.value","name":"value","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"what the format expanded to"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SubscriptionChanged.value","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.value","product":"core","slug":"io-github-libtmux-control-notification-notification-subscriptionchanged-value"},{"id":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.session","name":"session","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged","modifiers":[],"signatures":[{"params":[],"returns":"Optional"}],"doc":{"summary":"the session it is about, when tmux named one"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SubscriptionChanged.session","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.session","product":"core","slug":"io-github-libtmux-control-notification-notification-subscriptionchanged-session"},{"id":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.window","name":"window","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged","modifiers":[],"signatures":[{"params":[],"returns":"Optional"}],"doc":{"summary":"the window, when tmux named one"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SubscriptionChanged.window","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.window","product":"core","slug":"io-github-libtmux-control-notification-notification-subscriptionchanged-window"},{"id":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.pane","name":"pane","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged","modifiers":[],"signatures":[{"params":[],"returns":"Optional"}],"doc":{"summary":"the pane, when tmux named one"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SubscriptionChanged.pane","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.pane","product":"core","slug":"io-github-libtmux-control-notification-notification-subscriptionchanged-pane"},{"id":"io.github.libtmux.control.Notification.Notification.Pause","name":"Pause","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record Pause(PaneId pane) implements Notification","params":[{"name":"pane","type":"PaneId"}]}],"doc":{"summary":"{@code %pause}: tmux stopped sending a pane's output to this client, which turned flow control on with {@code refresh-client -f pause-after=N} and fell N seconds behind. {@code refresh-client -A '%1:continue'} resumes it. tmux 3.2 and later."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":90,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Pause","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Pause","product":"core","slug":"io-github-libtmux-control-notification-notification-pause","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.Pause.pane","name":"pane","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.Pause","modifiers":[],"signatures":[{"params":[],"returns":"PaneId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Pause.pane","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Pause.pane","product":"core","slug":"io-github-libtmux-control-notification-notification-pause-pane"},{"id":"io.github.libtmux.control.Notification.Notification.Continue","name":"Continue","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record Continue(PaneId pane) implements Notification","params":[{"name":"pane","type":"PaneId"}]}],"doc":{"summary":"{@code %continue}: a paused pane's output flows to this client again. tmux 3.2 and later."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":93,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Continue","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Continue","product":"core","slug":"io-github-libtmux-control-notification-notification-continue","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.Continue.pane","name":"pane","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.Continue","modifiers":[],"signatures":[{"params":[],"returns":"PaneId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Continue.pane","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Continue.pane","product":"core","slug":"io-github-libtmux-control-notification-notification-continue-pane"},{"id":"io.github.libtmux.control.Notification.Notification.Message","name":"Message","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record Message(String text) implements Notification","params":[{"name":"text","type":"String"}]}],"doc":{"summary":"{@code %message}: text another client showed on this one with {@code display-message -c}. tmux 3.4 and later."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":96,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Message","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Message","product":"core","slug":"io-github-libtmux-control-notification-notification-message","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.Message.text","name":"text","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.Message","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Message.text","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Message.text","product":"core","slug":"io-github-libtmux-control-notification-notification-message-text"},{"id":"io.github.libtmux.control.Notification.Notification.ConfigError","name":"ConfigError","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record ConfigError(String cause) implements Notification","params":[{"name":"cause","type":"String"}]}],"doc":{"summary":"{@code %config-error}: a configuration file tmux loaded for this client had an error. tmux 3.4 and later."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":99,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.ConfigError","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.ConfigError","product":"core","slug":"io-github-libtmux-control-notification-notification-configerror","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.ConfigError.cause","name":"cause","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.ConfigError","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.ConfigError.cause","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.ConfigError.cause","product":"core","slug":"io-github-libtmux-control-notification-notification-configerror-cause"},{"id":"io.github.libtmux.control.Notification.Notification.Exit","name":"Exit","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record Exit(Optional reason) implements Notification","params":[{"name":"reason","type":"Optional"}]}],"doc":{"summary":"{@code %exit}: the client is exiting, with tmux's reason when it gave one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":102,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Exit","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Exit","product":"core","slug":"io-github-libtmux-control-notification-notification-exit","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.Exit.reason","name":"reason","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.Exit","modifiers":[],"signatures":[{"params":[],"returns":"Optional"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Exit.reason","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Exit.reason","product":"core","slug":"io-github-libtmux-control-notification-notification-exit-reason"},{"id":"io.github.libtmux.control.Notification.Notification.Unknown","name":"Unknown","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record Unknown(String kind) implements Notification","params":[{"name":"kind","type":"String"}]}],"doc":{"summary":"A notification this library does not model; {@link ControlEvent} still carries all of it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":105,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Unknown","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Unknown","product":"core","slug":"io-github-libtmux-control-notification-notification-unknown","typeScopeBoundary":true},{"id":"io.github.libtmux.control.Notification.Notification.Unknown.kind","name":"kind","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.Unknown","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Unknown.kind","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Unknown.kind","product":"core","slug":"io-github-libtmux-control-notification-notification-unknown-kind"},{"id":"io.github.libtmux.control.Notification.Notification.read","name":"read","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"params":[{"name":"kind","type":"String","doc":"the name without its {@code %}"},{"name":"rest","type":"String","doc":"what followed the name, as tmux wrote it, without any {@code \" : \"} value"},{"name":"value","type":"Optional","doc":"what followed {@code \" : \"}, which only a subscription carries"}],"returns":"Notification","raw":"static Notification read(String kind, String rest, Optional value)","typeScopeBoundary":true}],"doc":{"summary":"Reads one notification from its kind and the text after it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":114,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.read","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.read","product":"core","slug":"io-github-libtmux-control-notification-notification-read"},{"id":"io.github.libtmux.control.PaneOutput.PaneOutput","name":"PaneOutput","kind":"class","modifiers":[],"signatures":[{"raw":"public record PaneOutput(PaneId pane, String data, ByteBuffer bytes)","params":[{"name":"pane","type":"PaneId","doc":"the pane that produced it"},{"name":"data","type":"String","doc":"this piece as text"},{"name":"bytes","type":"ByteBuffer","doc":"this piece exactly, read-only"}]}],"doc":{"summary":"Terminal output tmux pushed without being asked.","body":"tmux cuts a pane's output into pieces by byte count, not by character. {@code bytes} is\nexactly what one piece carried, so a pane's pieces concatenate to what it wrote. {@code data} is\nthe same output as text, decoded per pane: a character cut between two pieces arrives whole with\nthe later one, and a byte that is not UTF-8 is written {@code \\xHH}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/PaneOutput.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.PaneOutput","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.PaneOutput.PaneOutput","product":"core","slug":"io-github-libtmux-control-paneoutput-paneoutput","typeScopeBoundary":false},{"id":"io.github.libtmux.control.PaneOutput.PaneOutput.PaneOutput","name":"PaneOutput","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.PaneOutput.PaneOutput","signatures":[{"params":[{"name":"pane","type":"PaneId"},{"name":"data","type":"String"}],"raw":"public PaneOutput(PaneId pane, String data)","typeScopeBoundary":false}],"doc":{"summary":"Output whose bytes are {@code data} in UTF-8."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/PaneOutput.java","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.PaneOutput.PaneOutput","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.PaneOutput.PaneOutput.PaneOutput","product":"core","slug":"io-github-libtmux-control-paneoutput-paneoutput-paneoutput"},{"id":"io.github.libtmux.control.PaneOutput.PaneOutput.bytes","name":"bytes","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.PaneOutput.PaneOutput","signatures":[{"params":[],"returns":"ByteBuffer","raw":"@Override\n public ByteBuffer bytes()","typeScopeBoundary":false}],"doc":{"summary":"This piece's bytes, read-only, positioned at the first."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/PaneOutput.java","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.PaneOutput.bytes","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.PaneOutput.PaneOutput.bytes","product":"core","slug":"io-github-libtmux-control-paneoutput-paneoutput-bytes"},{"id":"io.github.libtmux.control.PaneOutput.PaneOutput.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.PaneOutput.PaneOutput","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"doc":{"summary":"Identifies the pane only: the data is terminal content."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/PaneOutput.java","line":44,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.PaneOutput.toString","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.PaneOutput.PaneOutput.toString","product":"core","slug":"io-github-libtmux-control-paneoutput-paneoutput-tostring"},{"id":"io.github.libtmux.control.PaneOutput.PaneOutput.pane","name":"pane","kind":"method","parent":"io.github.libtmux.control.PaneOutput.PaneOutput","modifiers":[],"signatures":[{"params":[],"returns":"PaneId"}],"doc":{"summary":"the pane that produced it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/PaneOutput.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.PaneOutput.pane","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.PaneOutput.PaneOutput.pane","product":"core","slug":"io-github-libtmux-control-paneoutput-paneoutput-pane"},{"id":"io.github.libtmux.control.PaneOutput.PaneOutput.data","name":"data","kind":"method","parent":"io.github.libtmux.control.PaneOutput.PaneOutput","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"this piece as text"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/PaneOutput.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.PaneOutput.data","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.PaneOutput.PaneOutput.data","product":"core","slug":"io-github-libtmux-control-paneoutput-paneoutput-data"},{"id":"io.github.libtmux.Dimensions.Dimensions","name":"Dimensions","kind":"class","modifiers":[],"signatures":[{"raw":"public record Dimensions(int width, int height)","params":[{"name":"width","type":"int","doc":"columns"},{"name":"height","type":"int","doc":"rows"}]}],"doc":{"summary":"How big something is, in terminal cells.","body":"A pair rather than two loose numbers, because width and height are only meaningful together and\na call site that takes them separately can transpose them without the compiler noticing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Dimensions.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Dimensions","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Dimensions.Dimensions","product":"core","slug":"io-github-libtmux-dimensions-dimensions","typeScopeBoundary":false},{"id":"io.github.libtmux.Dimensions.Dimensions.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.Dimensions.Dimensions","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Dimensions.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Dimensions.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Dimensions.Dimensions.toString","product":"core","slug":"io-github-libtmux-dimensions-dimensions-tostring"},{"id":"io.github.libtmux.Dimensions.Dimensions.width","name":"width","kind":"method","parent":"io.github.libtmux.Dimensions.Dimensions","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"columns"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Dimensions.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Dimensions.width","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Dimensions.Dimensions.width","product":"core","slug":"io-github-libtmux-dimensions-dimensions-width"},{"id":"io.github.libtmux.Dimensions.Dimensions.height","name":"height","kind":"method","parent":"io.github.libtmux.Dimensions.Dimensions","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"rows"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Dimensions.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Dimensions.height","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Dimensions.Dimensions.height","product":"core","slug":"io-github-libtmux-dimensions-dimensions-height"},{"id":"io.github.libtmux.Direction.Direction","name":"Direction","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Which way to move or grow something.","body":"An enum rather than tmux's {@code -U -D -L -R} flags, so a call site says which way it means\nand a wrong direction cannot be spelled at all."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Direction.java","line":9,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Direction","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Direction.Direction","product":"core","slug":"io-github-libtmux-direction-direction","typeScopeBoundary":false},{"id":"io.github.libtmux.Direction.Direction.UP","name":"UP","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Direction.Direction","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Direction.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Direction.UP","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Direction.Direction.UP","product":"core","slug":"io-github-libtmux-direction-direction-up","typeScopeBoundary":true},{"id":"io.github.libtmux.Direction.Direction.DOWN","name":"DOWN","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Direction.Direction","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Direction.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Direction.DOWN","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Direction.Direction.DOWN","product":"core","slug":"io-github-libtmux-direction-direction-down","typeScopeBoundary":true},{"id":"io.github.libtmux.Direction.Direction.LEFT","name":"LEFT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Direction.Direction","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Direction.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Direction.LEFT","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Direction.Direction.LEFT","product":"core","slug":"io-github-libtmux-direction-direction-left","typeScopeBoundary":true},{"id":"io.github.libtmux.Direction.Direction.RIGHT","name":"RIGHT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Direction.Direction","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Direction.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Direction.RIGHT","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Direction.Direction.RIGHT","product":"core","slug":"io-github-libtmux-direction-direction-right","typeScopeBoundary":true},{"id":"io.github.libtmux.Direction.Direction.Direction","name":"Direction","kind":"method","modifiers":[],"parent":"io.github.libtmux.Direction.Direction","signatures":[{"params":[{"name":"flag","type":"String"}],"raw":"Direction(String flag)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Direction.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Direction.Direction","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Direction.Direction.Direction","product":"core","slug":"io-github-libtmux-direction-direction-direction"},{"id":"io.github.libtmux.Direction.Direction.flag","name":"flag","kind":"method","modifiers":[],"parent":"io.github.libtmux.Direction.Direction","signatures":[{"params":[],"returns":"String","raw":"String flag()","typeScopeBoundary":false}],"doc":{"summary":"The tmux flag that selects this direction."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Direction.java","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Direction.flag","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Direction.Direction.flag","product":"core","slug":"io-github-libtmux-direction-direction-flag"},{"id":"io.github.libtmux.Environment.Environment","name":"Environment","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"The environment tmux gives to processes it starts, at one scope.","body":"tmux keeps one environment per server and one per session, and hands the result to every\nprocess it spawns afterwards. That is what this is for: a pane opened later sees what is set here,\nso it is how a program refreshes a value that goes stale in a long-lived session — {@code\nSSH_AUTH_SOCK} after reconnecting, a token, a display.\n\nA scope is chosen when the view is obtained rather than passed to every call, as {@link\nOptions} does, so a caller cannot read one scope and write another. There are only the two scopes,\nbecause tmux has only those two.\n\nA name is in one of three states, and they are not the same question. It can be *set* to\na value, which {@link #get} answers. It can be *removed*, which is tmux's way of saying a\nnew process should not inherit it even though the server's own environment has it — {@link\n#isRemoved} answers that, and {@link #get} is empty for it. Or it can simply be absent, which is\nboth of those empty."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment","product":"core","slug":"io-github-libtmux-environment-environment","typeScopeBoundary":false},{"id":"io.github.libtmux.Environment.Environment.global","name":"global","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"params":[{"name":"server","type":"Server"}],"returns":"Environment","raw":"static Environment global(Server server)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":69,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.global","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.global","product":"core","slug":"io-github-libtmux-environment-environment-global"},{"id":"io.github.libtmux.Environment.Environment.session","name":"session","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"session","type":"SessionId"}],"returns":"Environment","raw":"static Environment session(Server server, ServerSnapshot snapshot, SessionId session)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":73,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.session","product":"core","slug":"io-github-libtmux-environment-environment-session"},{"id":"io.github.libtmux.Environment.Environment.get","name":"get","kind":"method","modifiers":[],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"Optional","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the read otherwise fails"}],"raw":"@Operation(Kind.READ)\n public Optional get(String name)","typeScopeBoundary":false}],"doc":{"summary":"The value set for this name, or empty when it is removed or absent."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":83,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.get","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.get","product":"core","slug":"io-github-libtmux-environment-environment-get"},{"id":"io.github.libtmux.Environment.Environment.isRemoved","name":"isRemoved","kind":"method","modifiers":[],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"boolean","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the read otherwise fails"}],"raw":"@Operation(Kind.READ)\n public boolean isRemoved(String name)","typeScopeBoundary":false}],"doc":{"summary":"Whether new processes are told not to inherit this name."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":94,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.isRemoved","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.isRemoved","product":"core","slug":"io-github-libtmux-environment-environment-isremoved"},{"id":"io.github.libtmux.Environment.Environment.all","name":"all","kind":"method","modifiers":[],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"params":[],"returns":"Map","raw":"@ReadOnly\n @Operation(Kind.READ)\n public Map all()","typeScopeBoundary":false}],"doc":{"summary":"Every name set at this scope, in tmux's order. Removed names are not values, so not here."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":100,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.all","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.all","product":"core","slug":"io-github-libtmux-environment-environment-all"},{"id":"io.github.libtmux.Environment.Environment.effective","name":"effective","kind":"method","modifiers":[],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"params":[],"returns":"Map","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if a read otherwise fails"}],"raw":"@ReadOnly\n @Operation(Kind.READ)\n public Map effective()","typeScopeBoundary":false}],"doc":{"summary":"What a process started from this scope is actually handed, both scopes taken together.","body":"{@link #all} answers for one scope, which is what a caller writing to it needs and not what\na pane opened later will see: tmux gives a new process the server's environment with the\nsession's laid over it, minus whatever the session marked as not to be inherited. At the\nserver scope the two are the same thing.\n\nThe counterpart to {@link Options#effective()}, and named after it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":123,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.effective","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.effective","product":"core","slug":"io-github-libtmux-environment-environment-effective"},{"id":"io.github.libtmux.Environment.Environment.removed","name":"removed","kind":"method","modifiers":[],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"params":[],"returns":"Set","raw":"@ReadOnly\n @Operation(Kind.READ)\n public Set removed()","typeScopeBoundary":false}],"doc":{"summary":"Every name this scope tells a new process not to inherit."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":136,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.removed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.removed","product":"core","slug":"io-github-libtmux-environment-environment-removed"},{"id":"io.github.libtmux.Environment.Environment.set","name":"set","kind":"method","modifiers":[],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"params":[{"name":"name","type":"String"},{"name":"value","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void set(String name, String value)","typeScopeBoundary":false}],"doc":{"summary":"Sets a name to a literal value.","body":"The value is not expanded: a {@code #{...}} in it arrives as those characters. {@link\n#setExpanded} is how to ask for the other thing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":154,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.set","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.set","product":"core","slug":"io-github-libtmux-environment-environment-set"},{"id":"io.github.libtmux.Environment.Environment.setExpanded","name":"setExpanded","kind":"method","modifiers":[],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"params":[{"name":"name","type":"String"},{"name":"format","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void setExpanded(String name, String format)","typeScopeBoundary":false}],"doc":{"summary":"Sets a name to what a tmux format expands to now."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":160,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.setExpanded","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.setExpanded","product":"core","slug":"io-github-libtmux-environment-environment-setexpanded"},{"id":"io.github.libtmux.Environment.Environment.unset","name":"unset","kind":"method","modifiers":[],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void unset(String name)","typeScopeBoundary":false}],"doc":{"summary":"Removes the name from this scope, so it is neither set nor marked."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":166,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.unset","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.unset","product":"core","slug":"io-github-libtmux-environment-environment-unset"},{"id":"io.github.libtmux.Environment.Environment.remove","name":"remove","kind":"method","modifiers":[],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void remove(String name)","typeScopeBoundary":false}],"doc":{"summary":"Tells processes started after this not to inherit the name.","body":"Different from {@link #unset}: the name is remembered, as removed, and tmux subtracts it\nfrom what a new process is given rather than simply not adding it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":177,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.remove","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.remove","product":"core","slug":"io-github-libtmux-environment-environment-remove"},{"id":"io.github.libtmux.exception.CardinalityException.CardinalityException","name":"CardinalityException","kind":"class","modifiers":["abstract"],"signatures":[],"doc":{"summary":"A lookup that required exactly one match, or at most one, did not get it.","body":"Loosen or tighten the filter, or handle the case explicitly."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/CardinalityException.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.CardinalityException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.CardinalityException.CardinalityException","product":"core","slug":"io-github-libtmux-exception-cardinalityexception-cardinalityexception","typeScopeBoundary":false},{"id":"io.github.libtmux.exception.CardinalityException.CardinalityException.CardinalityException","name":"CardinalityException","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.CardinalityException.CardinalityException","signatures":[{"params":[{"name":"message","type":"String"}],"raw":"CardinalityException(String message)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/CardinalityException.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.CardinalityException.CardinalityException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.CardinalityException.CardinalityException.CardinalityException","product":"core","slug":"io-github-libtmux-exception-cardinalityexception-cardinalityexception-cardinalityexception"},{"id":"io.github.libtmux.exception.CardinalityException.CardinalityException.NoMatch","name":"NoMatch","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.exception.CardinalityException.CardinalityException","signatures":[],"doc":{"summary":"Nothing matched where the caller required something."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/CardinalityException.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.CardinalityException.NoMatch","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.CardinalityException.CardinalityException.NoMatch","product":"core","slug":"io-github-libtmux-exception-cardinalityexception-cardinalityexception-nomatch","typeScopeBoundary":true},{"id":"io.github.libtmux.exception.CardinalityException.CardinalityException.NoMatch.NoMatch","name":"NoMatch","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.CardinalityException.CardinalityException.NoMatch","signatures":[{"params":[{"name":"message","type":"String"}],"raw":"public NoMatch(String message)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/CardinalityException.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.CardinalityException.NoMatch.NoMatch","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.CardinalityException.CardinalityException.NoMatch.NoMatch","product":"core","slug":"io-github-libtmux-exception-cardinalityexception-cardinalityexception-nomatch-nomatch"},{"id":"io.github.libtmux.exception.CardinalityException.CardinalityException.MultipleMatches","name":"MultipleMatches","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.exception.CardinalityException.CardinalityException","signatures":[],"doc":{"summary":"More than one thing matched where the caller required at most one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/CardinalityException.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.CardinalityException.MultipleMatches","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.CardinalityException.CardinalityException.MultipleMatches","product":"core","slug":"io-github-libtmux-exception-cardinalityexception-cardinalityexception-multiplematches","typeScopeBoundary":true},{"id":"io.github.libtmux.exception.CardinalityException.CardinalityException.MultipleMatches.MultipleMatches","name":"MultipleMatches","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.CardinalityException.CardinalityException.MultipleMatches","signatures":[{"params":[{"name":"message","type":"String"},{"name":"atLeast","type":"int","doc":"how many matched, at least; never less than two"}],"raw":"public MultipleMatches(String message, int atLeast)","typeScopeBoundary":false}],"doc":{"summary":""},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/CardinalityException.java","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.CardinalityException.MultipleMatches.MultipleMatches","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.CardinalityException.CardinalityException.MultipleMatches.MultipleMatches","product":"core","slug":"io-github-libtmux-exception-cardinalityexception-cardinalityexception-multiplematches-multiplematches"},{"id":"io.github.libtmux.exception.CardinalityException.CardinalityException.MultipleMatches.atLeast","name":"atLeast","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.CardinalityException.CardinalityException.MultipleMatches","signatures":[{"params":[],"returns":"int","raw":"public int atLeast()","typeScopeBoundary":false}],"doc":{"summary":"How many matched, at least.","body":"Exact when the matches came from a capture this library holds, as a handle lookup's do.\n{@link io.github.libtmux.query.Selections} stops at the second match, since its source may be\nlazy or unbounded, so there it is two."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/CardinalityException.java","line":48,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.CardinalityException.MultipleMatches.atLeast","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.CardinalityException.CardinalityException.MultipleMatches.atLeast","product":"core","slug":"io-github-libtmux-exception-cardinalityexception-cardinalityexception-multiplematches-atleast"},{"id":"io.github.libtmux.exception.CommandRejectedException.CommandRejectedException","name":"CommandRejectedException","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"tmux ran a command to completion and refused it.","body":"The request reached a live server and tmux answered no: a duplicate session name, a target it\ncannot find, an option it does not know. Resending the same command gets the same answer, so read\n{@link #errorLines()} and change the request."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/CommandRejectedException.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.CommandRejectedException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.CommandRejectedException.CommandRejectedException","product":"core","slug":"io-github-libtmux-exception-commandrejectedexception-commandrejectedexception","typeScopeBoundary":false},{"id":"io.github.libtmux.exception.CommandRejectedException.CommandRejectedException.CommandRejectedException","name":"CommandRejectedException","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.exception.CommandRejectedException.CommandRejectedException","signatures":[{"params":[{"name":"message","type":"String"}],"raw":"public CommandRejectedException(String message)","typeScopeBoundary":false},{"params":[{"name":"message","type":"String"},{"name":"command","type":"String"},{"name":"exitCode","type":"int"},{"name":"errorLines","type":"List"}],"raw":"public CommandRejectedException(String message, String command, int exitCode, List errorLines)","typeScopeBoundary":false}],"doc":{"summary":"A refusal of {@code command}, with tmux's exit status and the lines it printed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/CommandRejectedException.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.CommandRejectedException.CommandRejectedException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.CommandRejectedException.CommandRejectedException.CommandRejectedException","product":"core","slug":"io-github-libtmux-exception-commandrejectedexception-commandrejectedexception-commandrejectedexception"},{"id":"io.github.libtmux.exception.ControlEndedException.ControlEndedException","name":"ControlEndedException","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"The control client ended, and anything reading from it will not resume.","body":"Attach again with {@link io.github.libtmux.Server#control} and read a snapshot: the events this\nclient did not deliver are not replayed, because tmux keeps no history of them. {@link\n#standardError()} is what the tmux process wrote to its error stream, bounded, and empty when it\nwrote nothing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/ControlEndedException.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.ControlEndedException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.ControlEndedException.ControlEndedException","product":"core","slug":"io-github-libtmux-exception-controlendedexception-controlendedexception","typeScopeBoundary":false},{"id":"io.github.libtmux.exception.ControlEndedException.ControlEndedException.ControlEndedException","name":"ControlEndedException","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.ControlEndedException.ControlEndedException","signatures":[{"params":[{"name":"standardError","type":"String"},{"name":"standardErrorTruncated","type":"boolean"},{"name":"cause","type":"Throwable"}],"raw":"public ControlEndedException(String standardError, boolean standardErrorTruncated, @Nullable Throwable cause)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/ControlEndedException.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.ControlEndedException.ControlEndedException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.ControlEndedException.ControlEndedException.ControlEndedException","product":"core","slug":"io-github-libtmux-exception-controlendedexception-controlendedexception-controlendedexception"},{"id":"io.github.libtmux.exception.ControlEndedException.ControlEndedException.standardError","name":"standardError","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.ControlEndedException.ControlEndedException","signatures":[{"params":[],"returns":"String","raw":"public String standardError()","typeScopeBoundary":false}],"doc":{"summary":"The error text captured before the process ended, possibly truncated."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/ControlEndedException.java","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.ControlEndedException.standardError","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.ControlEndedException.ControlEndedException.standardError","product":"core","slug":"io-github-libtmux-exception-controlendedexception-controlendedexception-standarderror"},{"id":"io.github.libtmux.exception.ControlEndedException.ControlEndedException.standardErrorTruncated","name":"standardErrorTruncated","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.ControlEndedException.ControlEndedException","signatures":[{"params":[],"returns":"boolean","raw":"public boolean standardErrorTruncated()","typeScopeBoundary":false}],"doc":{"summary":"Whether the error stream continued past the captured bound."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/ControlEndedException.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.ControlEndedException.standardErrorTruncated","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.ControlEndedException.ControlEndedException.standardErrorTruncated","product":"core","slug":"io-github-libtmux-exception-controlendedexception-controlendedexception-standarderrortruncated"},{"id":"io.github.libtmux.exception.DispatchException.DispatchException","name":"DispatchException","kind":"class","modifiers":["abstract"],"signatures":[],"doc":{"summary":"The request did not complete, with how certain it is that tmux applied it.","body":"\"tmux never started\" and \"tmux timed out halfway\" call for opposite recovery, so the certainty\ntravels with the failure. {@link #safeToRetry()} answers the question a caller usually has: whether\nsending the exact same request again can do harm."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/DispatchException.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.DispatchException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.DispatchException.DispatchException","product":"core","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception","typeScopeBoundary":false},{"id":"io.github.libtmux.exception.DispatchException.DispatchException.DispatchException","name":"DispatchException","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.DispatchException.DispatchException","signatures":[{"params":[{"name":"message","type":"String"},{"name":"outcome","type":"DispatchOutcome"},{"name":"idempotence","type":"Idempotence"},{"name":"cause","type":"Throwable"}],"raw":"DispatchException(String message, DispatchOutcome outcome, Idempotence idempotence, @Nullable Throwable cause)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/DispatchException.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.DispatchException.DispatchException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.DispatchException.DispatchException.DispatchException","product":"core","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception-dispatchexception"},{"id":"io.github.libtmux.exception.DispatchException.DispatchException.outcome","name":"outcome","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.DispatchException.DispatchException","signatures":[{"params":[],"returns":"DispatchOutcome","raw":"public DispatchOutcome outcome()","typeScopeBoundary":false}],"doc":{"summary":"How certain the transport is that tmux applied the request."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/DispatchException.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.DispatchException.outcome","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.DispatchException.DispatchException.outcome","product":"core","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception-outcome"},{"id":"io.github.libtmux.exception.DispatchException.DispatchException.idempotence","name":"idempotence","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.DispatchException.DispatchException","signatures":[{"params":[],"returns":"Idempotence","raw":"public Idempotence idempotence()","typeScopeBoundary":false}],"doc":{"summary":"Whether every command in the request only reads, so running it twice changes nothing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/DispatchException.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.DispatchException.idempotence","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.DispatchException.DispatchException.idempotence","product":"core","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception-idempotence"},{"id":"io.github.libtmux.exception.DispatchException.DispatchException.safeToRetry","name":"safeToRetry","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.DispatchException.DispatchException","signatures":[{"params":[],"returns":"boolean","returnsDoc":"{@link DispatchOutcome#canRetryVerbatim} for this failure's outcome and idempotence","raw":"public boolean safeToRetry()","typeScopeBoundary":false}],"doc":{"summary":"Whether sending the exact same request again cannot apply it twice."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/DispatchException.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.DispatchException.safeToRetry","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.DispatchException.DispatchException.safeToRetry","product":"core","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception-safetoretry"},{"id":"io.github.libtmux.exception.DispatchException.DispatchException.Failed","name":"Failed","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.exception.DispatchException.DispatchException","signatures":[],"doc":{"summary":"The transport failed for a reason other than a deadline: tmux could not start, or the channel broke."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/DispatchException.java","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.DispatchException.Failed","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.DispatchException.DispatchException.Failed","product":"core","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception-failed","typeScopeBoundary":true},{"id":"io.github.libtmux.exception.DispatchException.DispatchException.Failed.Failed","name":"Failed","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.exception.DispatchException.DispatchException.Failed","signatures":[{"params":[{"name":"message","type":"String"},{"name":"outcome","type":"DispatchOutcome"},{"name":"cause","type":"Throwable"}],"raw":"public Failed(String message, DispatchOutcome outcome, @Nullable Throwable cause)","typeScopeBoundary":false},{"params":[{"name":"message","type":"String"},{"name":"outcome","type":"DispatchOutcome"},{"name":"idempotence","type":"Idempotence"},{"name":"cause","type":"Throwable"}],"raw":"public Failed(String message, DispatchOutcome outcome, Idempotence idempotence, @Nullable Throwable cause)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/DispatchException.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.DispatchException.Failed.Failed","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.DispatchException.DispatchException.Failed.Failed","product":"core","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception-failed-failed"},{"id":"io.github.libtmux.exception.DispatchException.DispatchException.TimedOut","name":"TimedOut","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.exception.DispatchException.DispatchException","signatures":[],"doc":{"summary":"The deadline passed before the request finished."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/DispatchException.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.DispatchException.TimedOut","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.DispatchException.DispatchException.TimedOut","product":"core","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception-timedout","typeScopeBoundary":true},{"id":"io.github.libtmux.exception.DispatchException.DispatchException.TimedOut.TimedOut","name":"TimedOut","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.exception.DispatchException.DispatchException.TimedOut","signatures":[{"params":[{"name":"message","type":"String"},{"name":"outcome","type":"DispatchOutcome"},{"name":"cause","type":"Throwable"}],"raw":"public TimedOut(String message, DispatchOutcome outcome, @Nullable Throwable cause)","typeScopeBoundary":false},{"params":[{"name":"message","type":"String"},{"name":"outcome","type":"DispatchOutcome"},{"name":"idempotence","type":"Idempotence"},{"name":"cause","type":"Throwable"}],"raw":"public TimedOut(String message, DispatchOutcome outcome, Idempotence idempotence, @Nullable Throwable cause)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/DispatchException.java","line":67,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.DispatchException.TimedOut.TimedOut","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.DispatchException.DispatchException.TimedOut.TimedOut","product":"core","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception-timedout-timedout"},{"id":"io.github.libtmux.exception.LibTmuxException.LibTmuxException","name":"LibTmuxException","kind":"class","modifiers":["abstract"],"signatures":[],"doc":{"summary":"The root of every operational failure this library raises.","body":"Unchecked, because a tmux failure can arise from any call and forcing every caller to declare\nit would say nothing. Sealed, with every branch abstract, so matching on the permitted subtypes is\nexhaustive in Java, Kotlin and Scala alike.\n\nA failure that came from a tmux command carries that command, its exit status when it has one,\nand the error lines tmux printed. Those lines, and the message that quotes them, name what tmux\nnamed — sessions, windows, panes and buffers included."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/LibTmuxException.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.LibTmuxException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.LibTmuxException.LibTmuxException","product":"core","slug":"io-github-libtmux-exception-libtmuxexception-libtmuxexception","typeScopeBoundary":false},{"id":"io.github.libtmux.exception.LibTmuxException.LibTmuxException.LibTmuxException","name":"LibTmuxException","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.exception.LibTmuxException.LibTmuxException","signatures":[{"params":[{"name":"message","type":"String"},{"name":"cause","type":"Throwable"}],"raw":"LibTmuxException(String message, @Nullable Throwable cause)","typeScopeBoundary":false},{"params":[{"name":"message","type":"String"},{"name":"cause","type":"Throwable"},{"name":"command","type":"String"},{"name":"exitCode","type":"int"},{"name":"errorLines","type":"List"}],"raw":"LibTmuxException(\n String message,\n @Nullable Throwable cause,\n @Nullable String command,\n int exitCode,\n List errorLines)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/LibTmuxException.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.LibTmuxException.LibTmuxException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.LibTmuxException.LibTmuxException.LibTmuxException","product":"core","slug":"io-github-libtmux-exception-libtmuxexception-libtmuxexception-libtmuxexception"},{"id":"io.github.libtmux.exception.LibTmuxException.LibTmuxException.command","name":"command","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.LibTmuxException.LibTmuxException","signatures":[{"params":[],"returns":"Optional","raw":"public Optional command()","typeScopeBoundary":false}],"doc":{"summary":"The command that failed, when this failure came from one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/LibTmuxException.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.LibTmuxException.command","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.LibTmuxException.LibTmuxException.command","product":"core","slug":"io-github-libtmux-exception-libtmuxexception-libtmuxexception-command"},{"id":"io.github.libtmux.exception.LibTmuxException.LibTmuxException.exitCode","name":"exitCode","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.LibTmuxException.LibTmuxException","signatures":[{"params":[],"returns":"OptionalInt","raw":"public OptionalInt exitCode()","typeScopeBoundary":false}],"doc":{"summary":"The process exit status, when the failure has one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/LibTmuxException.java","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.LibTmuxException.exitCode","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.LibTmuxException.LibTmuxException.exitCode","product":"core","slug":"io-github-libtmux-exception-libtmuxexception-libtmuxexception-exitcode"},{"id":"io.github.libtmux.exception.LibTmuxException.LibTmuxException.errorLines","name":"errorLines","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.LibTmuxException.LibTmuxException","signatures":[{"params":[],"returns":"List","raw":"@ReadOnly\n public List errorLines()","typeScopeBoundary":false}],"doc":{"summary":"The error lines tmux printed, in full. Empty when this failure has none."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/LibTmuxException.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.LibTmuxException.errorLines","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.LibTmuxException.LibTmuxException.errorLines","product":"core","slug":"io-github-libtmux-exception-libtmuxexception-libtmuxexception-errorlines"},{"id":"io.github.libtmux.exception.MalformedResponseException.MalformedResponseException","name":"MalformedResponseException","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"tmux answered, and the answer did not have the shape this library asked for.","body":"A listing row with the wrong number of fields, a number that did not parse, an identity that\nwas not one row: this library's own template disagreed with what tmux sent. Check the tmux release\nis inside the supported range, and report it if it is."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/MalformedResponseException.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.MalformedResponseException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.MalformedResponseException.MalformedResponseException","product":"core","slug":"io-github-libtmux-exception-malformedresponseexception-malformedresponseexception","typeScopeBoundary":false},{"id":"io.github.libtmux.exception.MalformedResponseException.MalformedResponseException.MalformedResponseException","name":"MalformedResponseException","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.exception.MalformedResponseException.MalformedResponseException","signatures":[{"params":[{"name":"message","type":"String"}],"raw":"public MalformedResponseException(String message)","typeScopeBoundary":false},{"params":[{"name":"message","type":"String"},{"name":"cause","type":"Throwable"}],"raw":"public MalformedResponseException(String message, Throwable cause)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/MalformedResponseException.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.MalformedResponseException.MalformedResponseException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.MalformedResponseException.MalformedResponseException.MalformedResponseException","product":"core","slug":"io-github-libtmux-exception-malformedresponseexception-malformedresponseexception-malformedresponseexception"},{"id":"io.github.libtmux.exception.ServerClosedException.ServerClosedException","name":"ServerClosedException","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"A handle was used after the {@link io.github.libtmux.Server} it belongs to was closed.","body":"Programmer error, so deliberately outside {@link LibTmuxException}'s sealed tree: an exhaustive\nmatch over operational failures should not have to decide about a lifecycle bug. {@link\n#outcome()} says whether tmux may have run the call that raced the close."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/ServerClosedException.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.ServerClosedException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.ServerClosedException.ServerClosedException","product":"core","slug":"io-github-libtmux-exception-serverclosedexception-serverclosedexception","typeScopeBoundary":false},{"id":"io.github.libtmux.exception.ServerClosedException.ServerClosedException.ServerClosedException","name":"ServerClosedException","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.ServerClosedException.ServerClosedException","signatures":[{"params":[{"name":"message","type":"String"},{"name":"outcome","type":"DispatchOutcome"}],"raw":"public ServerClosedException(String message, DispatchOutcome outcome)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/ServerClosedException.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.ServerClosedException.ServerClosedException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.ServerClosedException.ServerClosedException.ServerClosedException","product":"core","slug":"io-github-libtmux-exception-serverclosedexception-serverclosedexception-serverclosedexception"},{"id":"io.github.libtmux.exception.ServerClosedException.ServerClosedException.outcome","name":"outcome","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.ServerClosedException.ServerClosedException","signatures":[{"params":[],"returns":"DispatchOutcome","raw":"public DispatchOutcome outcome()","typeScopeBoundary":false}],"doc":{"summary":"{@link DispatchOutcome#NOT_DISPATCHED} when the server was closed before the call reached tmux, {@link DispatchOutcome#UNKNOWN} when a concurrent close ended a tmux already running it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/ServerClosedException.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.ServerClosedException.outcome","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.ServerClosedException.ServerClosedException.outcome","product":"core","slug":"io-github-libtmux-exception-serverclosedexception-serverclosedexception-outcome"},{"id":"io.github.libtmux.exception.ServerUnavailableException.ServerUnavailableException","name":"ServerUnavailableException","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"No tmux daemon answered on this endpoint.","body":"Nothing was there to answer, rather than an answer that could not be trusted. Start a server on\ndemand, or treat the endpoint as down."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/ServerUnavailableException.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.ServerUnavailableException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.ServerUnavailableException.ServerUnavailableException","product":"core","slug":"io-github-libtmux-exception-serverunavailableexception-serverunavailableexception","typeScopeBoundary":false},{"id":"io.github.libtmux.exception.ServerUnavailableException.ServerUnavailableException.ServerUnavailableException","name":"ServerUnavailableException","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.exception.ServerUnavailableException.ServerUnavailableException","signatures":[{"params":[{"name":"message","type":"String"}],"raw":"public ServerUnavailableException(String message)","typeScopeBoundary":false},{"params":[{"name":"message","type":"String"},{"name":"command","type":"String"},{"name":"exitCode","type":"int"},{"name":"errorLines","type":"List"}],"raw":"public ServerUnavailableException(String message, String command, int exitCode, List errorLines)","typeScopeBoundary":false}],"doc":{"summary":"A daemon found absent by the command that tried to reach it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/ServerUnavailableException.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.ServerUnavailableException.ServerUnavailableException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.ServerUnavailableException.ServerUnavailableException.ServerUnavailableException","product":"core","slug":"io-github-libtmux-exception-serverunavailableexception-serverunavailableexception-serverunavailableexception"},{"id":"io.github.libtmux.exception.TargetGoneException.TargetGoneException","name":"TargetGoneException","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"The server answered, and the session, window, pane, buffer or server incarnation a handle addresses is gone.","body":"Re-resolve the handle — run again the lookup or filter that produced it — or stop. An\nunreachable server is a {@link ServerUnavailableException} instead, which calls for something else\nentirely."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/TargetGoneException.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.TargetGoneException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.TargetGoneException.TargetGoneException","product":"core","slug":"io-github-libtmux-exception-targetgoneexception-targetgoneexception","typeScopeBoundary":false},{"id":"io.github.libtmux.exception.TargetGoneException.TargetGoneException.TargetGoneException","name":"TargetGoneException","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.TargetGoneException.TargetGoneException","signatures":[{"params":[{"name":"message","type":"String"}],"raw":"public TargetGoneException(String message)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/TargetGoneException.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.TargetGoneException.TargetGoneException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.TargetGoneException.TargetGoneException.TargetGoneException","product":"core","slug":"io-github-libtmux-exception-targetgoneexception-targetgoneexception-targetgoneexception"},{"id":"io.github.libtmux.exception.UnencodableTextException.UnencodableTextException","name":"UnencodableTextException","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Text this JVM cannot hand to tmux intact, with no route left to send it by.","body":"A child process receives its arguments as bytes, and the JVM encodes them with the platform's\nnative encoding — which is the locale's, decided before {@code main} runs. In a locale that is\nnot UTF-8 that encoding cannot carry most of Unicode, so tmux would receive {@code ?} where a\ncaller wrote {@code é}. The process transport therefore sends such a command over tmux's standard\ninput instead, which this library encodes itself, and this is raised only when that route is\nalready taken — a command that reads standard input — or when the text is in the endpoint, the\nbinary or socket path, which nothing but an argument can carry.\n\nOnly the environment removes the limit: start the JVM with {@code LC_ALL} or {@code LANG}\nnaming a UTF-8 locale. {@code -Dsun.jnu.encoding} and {@code -Dfile.encoding} do not, because the\nnative encoding is read before either is applied.\n\nASCII text is unaffected on every locale, and so is everything tmux sends back: a reply is\ndecoded as the UTF-8 tmux wrote rather than through the platform's encoding."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/UnencodableTextException.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.UnencodableTextException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.UnencodableTextException.UnencodableTextException","product":"core","slug":"io-github-libtmux-exception-unencodabletextexception-unencodabletextexception","typeScopeBoundary":false},{"id":"io.github.libtmux.exception.UnencodableTextException.UnencodableTextException.UnencodableTextException","name":"UnencodableTextException","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.exception.UnencodableTextException.UnencodableTextException","signatures":[{"params":[{"name":"message","type":"String"}],"raw":"public UnencodableTextException(String message)","typeScopeBoundary":false},{"params":[{"name":"message","type":"String"},{"name":"cause","type":"Throwable"}],"raw":"public UnencodableTextException(String message, Throwable cause)","typeScopeBoundary":false}],"doc":{"summary":"Text refused because of {@code cause}, such as a path the platform cannot represent."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/UnencodableTextException.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.UnencodableTextException.UnencodableTextException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.UnencodableTextException.UnencodableTextException.UnencodableTextException","product":"core","slug":"io-github-libtmux-exception-unencodabletextexception-unencodabletextexception-unencodabletextexception"},{"id":"io.github.libtmux.exception.UnsupportedFeatureException.UnsupportedFeatureException","name":"UnsupportedFeatureException","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"The running tmux does not have something the call asked for.","body":"Raised instead of dropping the option. The Python sibling warns and carries on, which returns a\npane that differs from the one described in a way nothing downstream can detect; a caller who\nasked for an empty pane and got a shell has no way to notice before something runs in it. Skip the\nfeature, or require a newer tmux.\n\nThe feature and the versions are in the message and not in accessors: a throwable is\nserializable, so exposing a {@link TmuxVersion} here would mean making that serializable too."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/UnsupportedFeatureException.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.UnsupportedFeatureException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.UnsupportedFeatureException.UnsupportedFeatureException","product":"core","slug":"io-github-libtmux-exception-unsupportedfeatureexception-unsupportedfeatureexception","typeScopeBoundary":false},{"id":"io.github.libtmux.exception.UnsupportedFeatureException.UnsupportedFeatureException.UnsupportedFeatureException","name":"UnsupportedFeatureException","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.exception.UnsupportedFeatureException.UnsupportedFeatureException","signatures":[{"params":[{"name":"feature","type":"String"},{"name":"required","type":"TmuxVersion"},{"name":"running","type":"TmuxVersion"}],"raw":"public UnsupportedFeatureException(String feature, TmuxVersion required, TmuxVersion running)","typeScopeBoundary":false},{"params":[{"name":"message","type":"String"}],"raw":"public UnsupportedFeatureException(String message)","typeScopeBoundary":false}],"doc":{"summary":"A feature that needs {@code required} or newer, on a server running {@code running}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/UnsupportedFeatureException.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.UnsupportedFeatureException.UnsupportedFeatureException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.UnsupportedFeatureException.UnsupportedFeatureException.UnsupportedFeatureException","product":"core","slug":"io-github-libtmux-exception-unsupportedfeatureexception-unsupportedfeatureexception-unsupportedfeatureexception"},{"id":"io.github.libtmux.format.RowFormat.RowFormat","name":"RowFormat","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"A listing template and the reader for the rows it produces.","body":"tmux returns a listing as plain lines, so what separates one field from the next is whatever\nstring the client put between them — and tmux gives no character a special meaning there. Any\nfixed choice is therefore something a user can put in a window name. A window named with the\nseparator turns an n-field template into n+1 fields and shifts everything after it, so a pane id\narrives where a name belongs, and nothing downstream can tell.\n\nThe separator is generated once per process instead. Colliding with it means naming a window\nwith the exact token this process happened to produce."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat","typeScopeBoundary":false},{"id":"io.github.libtmux.format.RowFormat.RowFormat.of","name":"of","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.format.RowFormat.RowFormat","signatures":[{"params":[{"name":"fields","type":"String","variadic":"positional","doc":"tmux format names, without the surrounding {@code #{}}"}],"returns":"RowFormat","raw":"public static RowFormat of(String... fields)","typeScopeBoundary":true}],"doc":{"summary":"A format over the given tmux format names, in the order rows will report them."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":45,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.of","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.of","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-of"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.template","name":"template","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat","signatures":[{"params":[],"returns":"String","raw":"public String template()","typeScopeBoundary":false}],"doc":{"summary":"The argument to pass to tmux's {@code -F}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.template","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.template","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-template"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.separator","name":"separator","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat","signatures":[{"params":[],"returns":"String","raw":"public String separator()","typeScopeBoundary":false}],"doc":{"summary":"The token this process separates fields with."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":58,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.separator","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.separator","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-separator"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.terminator","name":"terminator","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat","signatures":[{"params":[],"returns":"String","raw":"String terminator()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.terminator","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.terminator","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-terminator"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.size","name":"size","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat","signatures":[{"params":[],"returns":"int","raw":"public int size()","typeScopeBoundary":false}],"doc":{"summary":"How many fields a row must have."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":67,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.size","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.size","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-size"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.Row","name":"Row","kind":"class","modifiers":["readonly"],"parent":"io.github.libtmux.format.RowFormat.RowFormat","signatures":[],"doc":{"summary":"One row's values, addressed by the field name that asked for them."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":72,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.Row","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.Row","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-row","typeScopeBoundary":false},{"id":"io.github.libtmux.format.RowFormat.RowFormat.Row.text","name":"text","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat.Row","signatures":[{"params":[{"name":"field","type":"String"}],"returns":"String","raw":"public String text(String field)","typeScopeBoundary":false}],"doc":{"summary":"The field's value as tmux printed it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":81,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.Row.text","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.Row.text","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-row-text"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.Row.number","name":"number","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat.Row","signatures":[{"params":[{"name":"field","type":"String"}],"returns":"int","raises":[{"type":"MalformedResponseException","doc":"if tmux did not print one"}],"raw":"public int number(String field)","typeScopeBoundary":false}],"doc":{"summary":"The field as a whole number."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":90,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.Row.number","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.Row.number","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-row-number"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.Row.count","name":"count","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat.Row","signatures":[{"params":[{"name":"field","type":"String"}],"returns":"long","raises":[{"type":"MalformedResponseException","doc":"if tmux did not print one"}],"raw":"public long count(String field)","typeScopeBoundary":false}],"doc":{"summary":"The field as a whole count."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":104,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.Row.count","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.Row.count","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-row-count"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.Row.flag","name":"flag","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat.Row","signatures":[{"params":[{"name":"field","type":"String"}],"returns":"boolean","raises":[{"type":"MalformedResponseException","doc":"if tmux printed anything else"}],"raw":"public boolean flag(String field)","typeScopeBoundary":false}],"doc":{"summary":"The field as one of tmux's flags, which it prints as 0 or 1."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":118,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.Row.flag","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.Row.flag","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-row-flag"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.rows","name":"rows","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat","signatures":[{"params":[{"name":"lines","type":"List","doc":"the listing as tmux printed it"}],"returns":"List","raises":[{"type":"MalformedResponseException","doc":"if the listing ends mid-row, or a row does not have exactly the expected number of fields"}],"raw":"@ReadOnly\n public List rows(List lines)","typeScopeBoundary":false}],"doc":{"summary":"Reads a whole listing back into rows.","body":"tmux ends a row with a newline and frames it no other way, so a listing's lines are not its\nrows: a value carrying a newline arrives as several. A working directory may contain one, and\nanything running in a pane may change into it, so this is caller-reachable rather than\ntheoretical. A row is closed by carrying every separator, not by the line ending."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":147,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.rows","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.rows","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-rows"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.split","name":"split","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat","signatures":[{"params":[{"name":"row","type":"String"}],"returns":"List","raises":[{"type":"MalformedResponseException","doc":"if the row does not have exactly the expected number of fields, which is the only chance to notice that something shifted"}],"raw":"@ReadOnly\n public List split(String row)","typeScopeBoundary":false}],"doc":{"summary":"Reads one row back into its fields."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":180,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.split","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.split","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-split"},{"id":"io.github.libtmux.format.Tokens.Tokens","name":"Tokens","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"The token this process marks its own text with.","body":"tmux gives no character a special meaning in a name or in output, so any fixed marker is\nsomething a user can produce. One random token per process makes a collision mean naming a window\nwith the exact value this run generated.\n\nHexadecimal, because the token is spliced into tmux format templates and into regular\nexpressions and must be inert in both."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/Tokens.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.Tokens","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.Tokens.Tokens","product":"core","slug":"io-github-libtmux-format-tokens-tokens","typeScopeBoundary":false},{"id":"io.github.libtmux.format.Tokens.Tokens.perProcess","name":"perProcess","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.format.Tokens.Tokens","signatures":[{"params":[],"returns":"String","raw":"public static String perProcess()","typeScopeBoundary":true}],"doc":{"summary":"A token generated once per process, shared by everything that needs to mark its own text."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/Tokens.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.Tokens.perProcess","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.Tokens.Tokens.perProcess","product":"core","slug":"io-github-libtmux-format-tokens-tokens-perprocess"},{"id":"io.github.libtmux.format.Tokens.Tokens.generate","name":"generate","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.format.Tokens.Tokens","signatures":[{"params":[],"returns":"String","raw":"static String generate()","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/Tokens.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.Tokens.generate","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.Tokens.Tokens.generate","product":"core","slug":"io-github-libtmux-format-tokens-tokens-generate"},{"id":"io.github.libtmux.Hooks.Hooks","name":"Hooks","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"The tmux hooks at one scope.","body":"A hook binds a tmux command to an event, so tmux runs it without a client asking.\n\nEvery hook is an array: several commands can hang off one event, and tmux runs them in order.\nThat is why a listing answers with a list per event rather than a value — a hook set once is a\nlist of one, not a special case.\n\nEach hook lives at a particular scope, and not every hook lives at every one.\n{@code pane-focus-in} is a window hook, {@code alert-bell} a session hook. Setting one at a scope\nit does not belong to is accepted and then silently discarded, on every supported release — so a\nhook that never fires is worth checking against {@link #all()} before it is worth debugging."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks","product":"core","slug":"io-github-libtmux-hooks-hooks","typeScopeBoundary":false},{"id":"io.github.libtmux.Hooks.Hooks.global","name":"global","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Hooks.Hooks","signatures":[{"params":[{"name":"server","type":"Server"}],"returns":"Hooks","raw":"static Hooks global(Server server)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":42,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks.global","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks.global","product":"core","slug":"io-github-libtmux-hooks-hooks-global"},{"id":"io.github.libtmux.Hooks.Hooks.session","name":"session","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Hooks.Hooks","signatures":[{"params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"session","type":"SessionId"}],"returns":"Hooks","raw":"static Hooks session(Server server, ServerSnapshot snapshot, SessionId session)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks.session","product":"core","slug":"io-github-libtmux-hooks-hooks-session"},{"id":"io.github.libtmux.Hooks.Hooks.window","name":"window","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Hooks.Hooks","signatures":[{"params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"window","type":"WindowId"}],"returns":"Hooks","raw":"static Hooks window(Server server, ServerSnapshot snapshot, WindowId window)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks.window","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks.window","product":"core","slug":"io-github-libtmux-hooks-hooks-window"},{"id":"io.github.libtmux.Hooks.Hooks.pane","name":"pane","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Hooks.Hooks","signatures":[{"params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"pane","type":"PaneId"}],"returns":"Hooks","raw":"static Hooks pane(Server server, ServerSnapshot snapshot, PaneId pane)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks.pane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks.pane","product":"core","slug":"io-github-libtmux-hooks-hooks-pane"},{"id":"io.github.libtmux.Hooks.Hooks.set","name":"set","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Hooks.Hooks","signatures":[{"params":[{"name":"event","type":"String"},{"name":"command","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void set(String event, String command)","typeScopeBoundary":false},{"params":[{"name":"event","type":"String"},{"name":"command","type":"List"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void set(String event, List command)","typeScopeBoundary":false}],"doc":{"summary":"Binds a tmux command to an event at this scope, replacing anything already bound to it.","body":"Replacing, not adding: tmux discards the whole array. {@link #append} is how a second\ncommand joins the first."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks.set","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks.set","product":"core","slug":"io-github-libtmux-hooks-hooks-set"},{"id":"io.github.libtmux.Hooks.Hooks.append","name":"append","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Hooks.Hooks","signatures":[{"params":[{"name":"event","type":"String"},{"name":"command","type":"List"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void append(String event, List command)","typeScopeBoundary":false},{"params":[{"name":"event","type":"String"},{"name":"command","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void append(String event, String command)","typeScopeBoundary":false}],"doc":{"summary":"As {@link #append(String, String)}, with the command as words."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":82,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks.append","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks.append","product":"core","slug":"io-github-libtmux-hooks-hooks-append"},{"id":"io.github.libtmux.Hooks.Hooks.unset","name":"unset","kind":"method","modifiers":[],"parent":"io.github.libtmux.Hooks.Hooks","signatures":[{"params":[{"name":"event","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void unset(String event)","typeScopeBoundary":false}],"doc":{"summary":"Removes everything bound to an event at this scope."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":101,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks.unset","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks.unset","product":"core","slug":"io-github-libtmux-hooks-hooks-unset"},{"id":"io.github.libtmux.Hooks.Hooks.run","name":"run","kind":"method","modifiers":[],"parent":"io.github.libtmux.Hooks.Hooks","signatures":[{"params":[{"name":"event","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void run(String event)","typeScopeBoundary":false}],"doc":{"summary":"Runs what is bound to an event now, without waiting for the event.","body":"tmux spells this {@code set-hook -R}, which reads as setting something. It runs the hook\nand binds nothing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":112,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks.run","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks.run","product":"core","slug":"io-github-libtmux-hooks-hooks-run"},{"id":"io.github.libtmux.Hooks.Hooks.all","name":"all","kind":"method","modifiers":[],"parent":"io.github.libtmux.Hooks.Hooks","signatures":[{"params":[],"returns":"Map>","raw":"@ReadOnly\n @Operation(Kind.READ)\n public Map> all()","typeScopeBoundary":false}],"doc":{"summary":"Every hook at this scope, keyed by event, each with its commands in the order tmux runs them.","body":"tmux prints one line per entry, subscripted — {@code after-new-window[0]}. The subscript is\na position in the list rather than part of the name, so it becomes the ordering here and the\nkey stays the event a caller would look up."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":124,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks.all","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks.all","product":"core","slug":"io-github-libtmux-hooks-hooks-all"},{"id":"io.github.libtmux.IncarnationFence.IncarnationFence","name":"IncarnationFence","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Which tmux server incarnation a handle or batch may act on: the pid tmux reports, and its start time when known, since a pid alone is reusable — a tmux started on the pid of one just probed, as a container's first processes often are, would otherwise answer as if it were that server.","body":"Every guarded command is sent as tmux's own {@code if-shell -F} test of this condition, so a\nserver that has been replaced under a stale handle is refused before anything runs, rather than\nacting on the wrong incarnation."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/IncarnationFence.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.IncarnationFence","namespace":"io.github.libtmux","publicId":"io.github.libtmux.IncarnationFence.IncarnationFence","product":"core","slug":"io-github-libtmux-incarnationfence-incarnationfence","typeScopeBoundary":false},{"id":"io.github.libtmux.IncarnationFence.IncarnationFence.IncarnationFence","name":"IncarnationFence","kind":"method","modifiers":[],"parent":"io.github.libtmux.IncarnationFence.IncarnationFence","signatures":[{"params":[{"name":"server","type":"Server"},{"name":"identity","type":"ServerIdentity"}],"raw":"IncarnationFence(Server server, ServerIdentity identity)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/IncarnationFence.java","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.IncarnationFence.IncarnationFence","namespace":"io.github.libtmux","publicId":"io.github.libtmux.IncarnationFence.IncarnationFence.IncarnationFence","product":"core","slug":"io-github-libtmux-incarnationfence-incarnationfence-incarnationfence"},{"id":"io.github.libtmux.IncarnationFence.IncarnationFence.identity","name":"identity","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.IncarnationFence.IncarnationFence","signatures":[{"params":[],"returns":"ServerIdentity","raw":"ServerIdentity identity()","typeScopeBoundary":false},{"params":[{"name":"snapshot","type":"ServerSnapshot"}],"returns":"ServerIdentity","raw":"ServerIdentity identity(ServerSnapshot snapshot)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/IncarnationFence.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.IncarnationFence.identity","namespace":"io.github.libtmux","publicId":"io.github.libtmux.IncarnationFence.IncarnationFence.identity","product":"core","slug":"io-github-libtmux-incarnationfence-incarnationfence-identity"},{"id":"io.github.libtmux.IncarnationFence.IncarnationFence.requireSameServer","name":"requireSameServer","kind":"method","modifiers":[],"parent":"io.github.libtmux.IncarnationFence.IncarnationFence","signatures":[{"params":[{"name":"other","type":"Server"}],"returns":"void","raw":"void requireSameServer(Server other)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/IncarnationFence.java","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.IncarnationFence.requireSameServer","namespace":"io.github.libtmux","publicId":"io.github.libtmux.IncarnationFence.IncarnationFence.requireSameServer","product":"core","slug":"io-github-libtmux-incarnationfence-incarnationfence-requiresameserver"},{"id":"io.github.libtmux.IncarnationFence.IncarnationFence.requireSameIncarnation","name":"requireSameIncarnation","kind":"method","modifiers":[],"parent":"io.github.libtmux.IncarnationFence.IncarnationFence","signatures":[{"params":[{"name":"snapshot","type":"ServerSnapshot"},{"name":"other","type":"Server"},{"name":"otherSnapshot","type":"ServerSnapshot"}],"returns":"void","raw":"void requireSameIncarnation(ServerSnapshot snapshot, Server other, ServerSnapshot otherSnapshot)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/IncarnationFence.java","line":48,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.IncarnationFence.requireSameIncarnation","namespace":"io.github.libtmux","publicId":"io.github.libtmux.IncarnationFence.IncarnationFence.requireSameIncarnation","product":"core","slug":"io-github-libtmux-incarnationfence-incarnationfence-requiresameincarnation"},{"id":"io.github.libtmux.IncarnationFence.IncarnationFence.incarnation","name":"incarnation","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.IncarnationFence.IncarnationFence","signatures":[{"params":[{"name":"pid","type":"long"},{"name":"startTime","type":"OptionalLong"}],"returns":"String","raw":"static String incarnation(long pid, OptionalLong startTime)","typeScopeBoundary":true}],"doc":{"summary":"A condition true only on the server a capture named: its pid, and its start time when known."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/IncarnationFence.java","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.IncarnationFence.incarnation","namespace":"io.github.libtmux","publicId":"io.github.libtmux.IncarnationFence.IncarnationFence.incarnation","product":"core","slug":"io-github-libtmux-incarnationfence-incarnationfence-incarnation"},{"id":"io.github.libtmux.IncarnationFence.IncarnationFence.guarded","name":"guarded","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.IncarnationFence.IncarnationFence","signatures":[{"params":[{"name":"snapshot","type":"ServerSnapshot"},{"name":"command","type":"String"}],"returns":"CommandResult","raw":"CommandResult guarded(ServerSnapshot snapshot, String command)","typeScopeBoundary":false},{"params":[{"name":"snapshot","type":"ServerSnapshot"},{"name":"command","type":"String"},{"name":"input","type":"String"}],"returns":"CommandResult","raw":"CommandResult guarded(ServerSnapshot snapshot, String command, String input)","typeScopeBoundary":false},{"params":[{"name":"pid","type":"long"},{"name":"condition","type":"String"},{"name":"command","type":"String"},{"name":"input","type":"String"}],"returns":"CommandResult","raw":"CommandResult guarded(long pid, String condition, String command, String input)","typeScopeBoundary":false}],"doc":{"summary":"Refuses to reach a tmux server that is not the one this handle was made against."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/IncarnationFence.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.IncarnationFence.guarded","namespace":"io.github.libtmux","publicId":"io.github.libtmux.IncarnationFence.IncarnationFence.guarded","product":"core","slug":"io-github-libtmux-incarnationfence-incarnationfence-guarded"},{"id":"io.github.libtmux.IncarnationFence.IncarnationFence.run","name":"run","kind":"method","modifiers":[],"parent":"io.github.libtmux.IncarnationFence.IncarnationFence","signatures":[{"params":[{"name":"snapshot","type":"ServerSnapshot"},{"name":"expected","type":"WindowContext"},{"name":"argv","type":"List"}],"returns":"CommandResult","raw":"CommandResult run(ServerSnapshot snapshot, WindowContext expected, List argv)","typeScopeBoundary":false}],"doc":{"summary":"As {@link #guarded(ServerSnapshot, String, String)}, refused as well once the window has gone."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/IncarnationFence.java","line":87,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.IncarnationFence.run","namespace":"io.github.libtmux","publicId":"io.github.libtmux.IncarnationFence.IncarnationFence.run","product":"core","slug":"io-github-libtmux-incarnationfence-incarnationfence-run"},{"id":"io.github.libtmux.internal.CommandStrings.CommandStrings","name":"CommandStrings","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Encodes a tmux command for each of the two parsers tmux reads commands with.","body":"Every argv this takes is literal: what a caller meant, with nothing escaped for either parser."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/CommandStrings.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.CommandStrings","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.CommandStrings.CommandStrings","product":"core","slug":"io-github-libtmux-internal-commandstrings-commandstrings","typeScopeBoundary":false},{"id":"io.github.libtmux.internal.CommandStrings.CommandStrings.arguments","name":"arguments","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.internal.CommandStrings.CommandStrings","signatures":[{"params":[{"name":"commands","type":"List>"}],"returns":"List","raw":"public static List arguments(List> commands)","typeScopeBoundary":true}],"doc":{"summary":"Several commands as the flat argv tmux's own argv parser reads.","body":"tmux ends a command at an argument whose last byte is {@code ;}, and keeps the semicolon\ninstead when a backslash precedes it, so an argument ending in one is escaped here and a bare\n{@code ;} separates commands."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/CommandStrings.java","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.CommandStrings.arguments","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.CommandStrings.CommandStrings.arguments","product":"core","slug":"io-github-libtmux-internal-commandstrings-commandstrings-arguments"},{"id":"io.github.libtmux.internal.CommandStrings.CommandStrings.stringify","name":"stringify","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.internal.CommandStrings.CommandStrings","signatures":[{"params":[{"name":"argv","type":"List"}],"returns":"String","raw":"public static String stringify(List argv)","typeScopeBoundary":true}],"doc":{"summary":"One command as the string tmux's command parser reads, which is what {@code if-shell} takes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/CommandStrings.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.CommandStrings.stringify","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.CommandStrings.CommandStrings.stringify","product":"core","slug":"io-github-libtmux-internal-commandstrings-commandstrings-stringify"},{"id":"io.github.libtmux.internal.CommandStrings.CommandStrings.group","name":"group","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.internal.CommandStrings.CommandStrings","signatures":[{"params":[{"name":"commands","type":"List>"}],"returns":"String","raw":"public static String group(List> commands)","typeScopeBoundary":true}],"doc":{"summary":"Several commands as the one string tmux's parser reads as a group.","body":"Each argument is quoted, so a semicolon inside one stays part of it and only the separators\nbetween commands end a command."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/CommandStrings.java","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.CommandStrings.group","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.CommandStrings.CommandStrings.group","product":"core","slug":"io-github-libtmux-internal-commandstrings-commandstrings-group"},{"id":"io.github.libtmux.internal.ErrorText.ErrorText","name":"ErrorText","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"What tmux printed on its error stream, as it appears in a failure's message."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/ErrorText.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.ErrorText","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.ErrorText.ErrorText","product":"core","slug":"io-github-libtmux-internal-errortext-errortext","typeScopeBoundary":false},{"id":"io.github.libtmux.internal.ErrorText.ErrorText.suffix","name":"suffix","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.internal.ErrorText.ErrorText","signatures":[{"params":[{"name":"stderr","type":"List"}],"returns":"String","raw":"public static String suffix(List stderr)","typeScopeBoundary":true}],"doc":{"summary":"{@code \": \"} and the non-blank lines joined by {@code \"; \"}, or nothing when tmux printed none.","body":"Capped at {@link OperationReport#ERROR_LIMIT} characters: a message lands in every log line\nthat prints the failure, and the failure's own {@code errorLines()} keeps the text whole."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/ErrorText.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.ErrorText.suffix","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.ErrorText.ErrorText.suffix","product":"core","slug":"io-github-libtmux-internal-errortext-errortext-suffix"},{"id":"io.github.libtmux.internal.ProcessTree.ProcessTree","name":"ProcessTree","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Owns bounded, idempotent termination of one process and its observable descendants."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/ProcessTree.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.ProcessTree","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.ProcessTree.ProcessTree","product":"core","slug":"io-github-libtmux-internal-processtree-processtree","typeScopeBoundary":false},{"id":"io.github.libtmux.internal.ProcessTree.ProcessTree.ProcessTree","name":"ProcessTree","kind":"method","modifiers":[],"parent":"io.github.libtmux.internal.ProcessTree.ProcessTree","signatures":[{"params":[{"name":"root","type":"Process"}],"raw":"public ProcessTree(Process root)","typeScopeBoundary":false}],"doc":{"summary":"Takes ownership of terminating {@code root} and descendants visible from it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/ProcessTree.java","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.ProcessTree.ProcessTree","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.ProcessTree.ProcessTree.ProcessTree","product":"core","slug":"io-github-libtmux-internal-processtree-processtree-processtree"},{"id":"io.github.libtmux.internal.ProcessTree.ProcessTree.captureDescendants","name":"captureDescendants","kind":"method","modifiers":[],"parent":"io.github.libtmux.internal.ProcessTree.ProcessTree","signatures":[{"params":[],"returns":"void","raw":"public synchronized void captureDescendants()","typeScopeBoundary":false}],"doc":{"summary":"Retains descendants before another cleanup step can make the root disappear."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/ProcessTree.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.ProcessTree.captureDescendants","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.ProcessTree.ProcessTree.captureDescendants","product":"core","slug":"io-github-libtmux-internal-processtree-processtree-capturedescendants"},{"id":"io.github.libtmux.internal.ProcessTree.ProcessTree.terminate","name":"terminate","kind":"method","modifiers":[],"parent":"io.github.libtmux.internal.ProcessTree.ProcessTree","signatures":[{"params":[],"returns":"boolean","raw":"public synchronized boolean terminate()","typeScopeBoundary":false}],"doc":{"summary":"Terminates the known process tree, closes the root's streams, and reports reclamation."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/ProcessTree.java","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.ProcessTree.terminate","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.ProcessTree.ProcessTree.terminate","product":"core","slug":"io-github-libtmux-internal-processtree-processtree-terminate"},{"id":"io.github.libtmux.internal.Utf8.Utf8","name":"Utf8","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"The UTF-8 boundary shared by process and control transports, in both directions."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/Utf8.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.Utf8","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.Utf8.Utf8","product":"core","slug":"io-github-libtmux-internal-utf8-utf8","typeScopeBoundary":false},{"id":"io.github.libtmux.internal.Utf8.Utf8.requireEncodableArguments","name":"requireEncodableArguments","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.internal.Utf8.Utf8","signatures":[{"params":[{"name":"argv","type":"List"}],"returns":"void","raises":[{"type":"UnencodableTextException","doc":"if an argument holds non-ASCII text and this JVM's native encoding is not UTF-8"}],"raw":"public static void requireEncodableArguments(List argv)","typeScopeBoundary":true}],"doc":{"summary":"Refuses argument text this JVM would corrupt on the way to tmux.","body":"Checked here rather than at each call site because every process this library starts is\nbuilt from one of these lists, and a value that reaches tmux mangled is indistinguishable\nthere from one the caller meant."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/Utf8.java","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.Utf8.requireEncodableArguments","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.Utf8.Utf8.requireEncodableArguments","product":"core","slug":"io-github-libtmux-internal-utf8-utf8-requireencodablearguments"},{"id":"io.github.libtmux.internal.Utf8.Utf8.encodable","name":"encodable","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.internal.Utf8.Utf8","signatures":[{"params":[{"name":"argv","type":"List"}],"returns":"boolean","raw":"public static boolean encodable(List argv)","typeScopeBoundary":true}],"doc":{"summary":"Whether this JVM can hand every one of these to a child process intact."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/Utf8.java","line":48,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.Utf8.encodable","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.Utf8.Utf8.encodable","product":"core","slug":"io-github-libtmux-internal-utf8-utf8-encodable"},{"id":"io.github.libtmux.internal.Utf8.Utf8.argumentsAreUtf8","name":"argumentsAreUtf8","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.internal.Utf8.Utf8","signatures":[{"params":[{"name":"encoding","type":"String"}],"returns":"boolean","raw":"static boolean argumentsAreUtf8(String encoding)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/Utf8.java","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.Utf8.argumentsAreUtf8","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.Utf8.Utf8.argumentsAreUtf8","product":"core","slug":"io-github-libtmux-internal-utf8-utf8-argumentsareutf8"},{"id":"io.github.libtmux.internal.Utf8.Utf8.backslashReplace","name":"backslashReplace","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.internal.Utf8.Utf8","signatures":[{"params":[{"name":"bytes","type":"byte[]"}],"returns":"String","raw":"public static String backslashReplace(byte[] bytes)","typeScopeBoundary":true}],"doc":{"summary":"Decodes valid UTF-8 and writes each malformed byte as a recoverable {@code \\xNN} escape."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/Utf8.java","line":88,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.Utf8.backslashReplace","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.Utf8.Utf8.backslashReplace","product":"core","slug":"io-github-libtmux-internal-utf8-utf8-backslashreplace"},{"id":"io.github.libtmux.internal.Utf8.Utf8.Stream","name":"Stream","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.internal.Utf8.Utf8","signatures":[],"doc":{"summary":"Decodes one byte stream that arrives in pieces cut anywhere, as {@link #backslashReplace} decodes a whole one. A character cut between two pieces is held back and returned whole with the later piece. One per stream, on one thread."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/Utf8.java","line":117,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.Utf8.Stream","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.Utf8.Utf8.Stream","product":"core","slug":"io-github-libtmux-internal-utf8-utf8-stream","typeScopeBoundary":true},{"id":"io.github.libtmux.internal.Utf8.Utf8.Stream.decode","name":"decode","kind":"method","modifiers":[],"parent":"io.github.libtmux.internal.Utf8.Utf8.Stream","signatures":[{"params":[{"name":"piece","type":"byte[]"}],"returns":"String","raw":"public String decode(byte[] piece)","typeScopeBoundary":false}],"doc":{"summary":"The text this piece completes, leaving a character it only starts for the next."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/Utf8.java","line":126,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.Utf8.Stream.decode","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.Utf8.Utf8.Stream.decode","product":"core","slug":"io-github-libtmux-internal-utf8-utf8-stream-decode"},{"id":"io.github.libtmux.JsonLayout.JsonLayout","name":"JsonLayout","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"tmux's restricted JSON grammar and layout cells, for pre-mutation workspace validation."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/JsonLayout.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.JsonLayout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.JsonLayout.JsonLayout","product":"core","slug":"io-github-libtmux-jsonlayout-jsonlayout","typeScopeBoundary":false},{"id":"io.github.libtmux.JsonLayout.JsonLayout.leaves","name":"leaves","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.JsonLayout.JsonLayout","signatures":[{"params":[{"name":"text","type":"String"}],"returns":"int","raw":"static int leaves(String text)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/JsonLayout.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.JsonLayout.leaves","namespace":"io.github.libtmux","publicId":"io.github.libtmux.JsonLayout.JsonLayout.leaves","product":"core","slug":"io-github-libtmux-jsonlayout-jsonlayout-leaves"},{"id":"io.github.libtmux.Keys.Keys","name":"Keys","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"The server's key bindings, in one key table or across all of them.","body":"tmux keeps bindings in named tables: {@code prefix}, pressed after the prefix key, is where a\nbinding goes unless another table is named; {@code root} is pressed without it; the copy-mode\ntables belong to copy mode. {@link Server#keys()} answers for {@code prefix} when binding and for\nevery table when listing; {@link #in} names one.","examples":[{"lang":"java","code":"server.keys().bind(\"F12\", List.of(\"display-message\", \"hello\"));\nserver.keys().in(\"root\").bind(\"F11\", List.of(\"next-window\"));"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Keys.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Keys","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Keys.Keys","product":"core","slug":"io-github-libtmux-keys-keys","typeScopeBoundary":false},{"id":"io.github.libtmux.Keys.Keys.Keys","name":"Keys","kind":"method","modifiers":[],"parent":"io.github.libtmux.Keys.Keys","signatures":[{"params":[{"name":"server","type":"Server"},{"name":"table","type":"String"}],"raw":"Keys(Server server, @Nullable String table)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Keys.java","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Keys.Keys","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Keys.Keys.Keys","product":"core","slug":"io-github-libtmux-keys-keys-keys"},{"id":"io.github.libtmux.Keys.Keys.in","name":"in","kind":"method","modifiers":[],"parent":"io.github.libtmux.Keys.Keys","signatures":[{"params":[{"name":"table","type":"String"}],"returns":"Keys","raw":"@Operation(Kind.CAPTURED)\n public Keys in(String table)","typeScopeBoundary":false}],"doc":{"summary":"The same bindings, in one named table."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Keys.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Keys.in","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Keys.Keys.in","product":"core","slug":"io-github-libtmux-keys-keys-in"},{"id":"io.github.libtmux.Keys.Keys.bind","name":"bind","kind":"method","modifiers":[],"parent":"io.github.libtmux.Keys.Keys","signatures":[{"params":[{"name":"key","type":"String"},{"name":"command","type":"List"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void bind(String key, List command)","typeScopeBoundary":false}],"doc":{"summary":"Binds a key to a tmux command, given as its words.","body":"Each word reaches tmux as itself: the command is passed as arguments, never as a line for\ntmux to split."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Keys.java","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Keys.bind","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Keys.Keys.bind","product":"core","slug":"io-github-libtmux-keys-keys-bind"},{"id":"io.github.libtmux.Keys.Keys.unbind","name":"unbind","kind":"method","modifiers":[],"parent":"io.github.libtmux.Keys.Keys","signatures":[{"params":[{"name":"key","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void unbind(String key)","typeScopeBoundary":false}],"doc":{"summary":"Removes a key's binding."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Keys.java","line":66,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Keys.unbind","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Keys.Keys.unbind","product":"core","slug":"io-github-libtmux-keys-keys-unbind"},{"id":"io.github.libtmux.Keys.Keys.list","name":"list","kind":"method","modifiers":[],"parent":"io.github.libtmux.Keys.Keys","signatures":[{"params":[],"returns":"List","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"}],"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List list()","typeScopeBoundary":false}],"doc":{"summary":"The bindings as tmux lists them, one per line.","body":"Every table unless one was named. Read without starting a daemon to answer, which tmux\nwould otherwise do for {@code list-keys}: its tables are compiled in, so it can answer an\nendpoint nothing serves by serving it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Keys.java","line":85,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Keys.list","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Keys.Keys.list","product":"core","slug":"io-github-libtmux-keys-keys-list"},{"id":"io.github.libtmux.Layout.Layout","name":"Layout","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"One of tmux's built-in pane arrangements.","body":"An enum rather than a string, and not for tidiness: {@code select-layout} with a name tmux does\nnot recognise *ends the server* on 3.3a, taking every session on that socket with it —\nincluding sessions this program never created. Every other supported release answers\n{@code invalid layout} and carries on.\n\nA name that cannot be misspelled cannot trigger that. {@link Window#applyLayout} covers the\nother way in, a serialized layout string, by checking it before tmux sees it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout","product":"core","slug":"io-github-libtmux-layout-layout","typeScopeBoundary":false},{"id":"io.github.libtmux.Layout.Layout.EVEN_HORIZONTAL","name":"EVEN_HORIZONTAL","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.EVEN_HORIZONTAL","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.EVEN_HORIZONTAL","product":"core","slug":"io-github-libtmux-layout-layout-even_horizontal","typeScopeBoundary":true},{"id":"io.github.libtmux.Layout.Layout.EVEN_VERTICAL","name":"EVEN_VERTICAL","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.EVEN_VERTICAL","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.EVEN_VERTICAL","product":"core","slug":"io-github-libtmux-layout-layout-even_vertical","typeScopeBoundary":true},{"id":"io.github.libtmux.Layout.Layout.MAIN_HORIZONTAL","name":"MAIN_HORIZONTAL","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.MAIN_HORIZONTAL","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.MAIN_HORIZONTAL","product":"core","slug":"io-github-libtmux-layout-layout-main_horizontal","typeScopeBoundary":true},{"id":"io.github.libtmux.Layout.Layout.MAIN_VERTICAL","name":"MAIN_VERTICAL","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.MAIN_VERTICAL","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.MAIN_VERTICAL","product":"core","slug":"io-github-libtmux-layout-layout-main_vertical","typeScopeBoundary":true},{"id":"io.github.libtmux.Layout.Layout.TILED","name":"TILED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.TILED","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.TILED","product":"core","slug":"io-github-libtmux-layout-layout-tiled","typeScopeBoundary":true},{"id":"io.github.libtmux.Layout.Layout.MAIN_HORIZONTAL_MIRRORED","name":"MAIN_HORIZONTAL_MIRRORED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[],"doc":{"summary":"Requires tmux 3.5."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.MAIN_HORIZONTAL_MIRRORED","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.MAIN_HORIZONTAL_MIRRORED","product":"core","slug":"io-github-libtmux-layout-layout-main_horizontal_mirrored","typeScopeBoundary":true},{"id":"io.github.libtmux.Layout.Layout.MAIN_VERTICAL_MIRRORED","name":"MAIN_VERTICAL_MIRRORED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[],"doc":{"summary":"Requires tmux 3.5."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.MAIN_VERTICAL_MIRRORED","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.MAIN_VERTICAL_MIRRORED","product":"core","slug":"io-github-libtmux-layout-layout-main_vertical_mirrored","typeScopeBoundary":true},{"id":"io.github.libtmux.Layout.Layout.Layout","name":"Layout","kind":"method","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[{"params":[{"name":"name","type":"String"}],"raw":"Layout(String name)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.Layout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.Layout","product":"core","slug":"io-github-libtmux-layout-layout-layout"},{"id":"io.github.libtmux.Layout.Layout.tmuxName","name":"tmuxName","kind":"method","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[{"params":[],"returns":"String","raw":"public String tmuxName()","typeScopeBoundary":false}],"doc":{"summary":"The name tmux knows this by."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.tmuxName","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.tmuxName","product":"core","slug":"io-github-libtmux-layout-layout-tmuxname"},{"id":"io.github.libtmux.Layout.Layout.byTmuxName","name":"byTmuxName","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Layout.Layout","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"Optional","raw":"public static Optional byTmuxName(String name)","typeScopeBoundary":true}],"doc":{"summary":"The layout with this exact tmux name, or empty if none matches.","body":"One map built once, so a caller that already has a canonical name does not repeat the scan\nover {@link #values()} that resolving an abbreviation already did."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.byTmuxName","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.byTmuxName","product":"core","slug":"io-github-libtmux-layout-layout-bytmuxname"},{"id":"io.github.libtmux.Layout.Layout.since","name":"since","kind":"method","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[{"params":[],"returns":"TmuxVersion","raw":"TmuxVersion since()","typeScopeBoundary":false}],"doc":{"summary":"The first supported release that has this layout.","body":"A switch rather than a field, so that adding a layout cannot compile until someone says\nwhich release brought it — and so the enum holds nothing but its name."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.since","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.since","product":"core","slug":"io-github-libtmux-layout-layout-since"},{"id":"io.github.libtmux.Layout.Layout.requireSupported","name":"requireSupported","kind":"method","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[{"params":[{"name":"running","type":"TmuxVersion"}],"returns":"void","raw":"public void requireSupported(TmuxVersion running)","typeScopeBoundary":false}],"doc":{"summary":"Refuses this layout when the running tmux predates it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":71,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.requireSupported","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.requireSupported","product":"core","slug":"io-github-libtmux-layout-layout-requiresupported"},{"id":"io.github.libtmux.Layout.Layout.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.toString","product":"core","slug":"io-github-libtmux-layout-layout-tostring"},{"id":"io.github.libtmux.Layouts.Layouts","name":"Layouts","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Which layout names are safe to hand to tmux.","body":"Public because every path that can reach select-layout needs it, not only the one that reads\na workspace file. This check exists because an unrecognised layout name does not produce an error on every tmux:\non 3.3a it crashes the server, taking down every session on that socket, including ones this\nprogram never created. A workspace file is user-supplied text, so the name has to be checked\nbefore it is dispatched rather than after tmux has had it.\n\ntmux accepts either one of its named layouts or a serialized layout tmux itself produced. Since\n3.8 that serialized form is either the classic checksummed grammar or JSON, and {@code\nselect-layout} takes either back - but only JSON round-trips exactly. The classic grammar\ncarries no pane identity, only shape, so which process lands in which cell can differ from\nwhere it started; see {@link Window#applyLayout}. The classic checksum is verified here; a\nfour-hex-digit prefix alone does not make the rest safe for tmux to parse. JSON carries no such\nsignature, so a JSON-shaped string is only trusted once the running tmux is new enough to have\nwritten it - see {@link #requireSerialized}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layouts.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layouts","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layouts.Layouts","product":"core","slug":"io-github-libtmux-layouts-layouts","typeScopeBoundary":false},{"id":"io.github.libtmux.Layouts.Layouts.require","name":"require","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.Layouts.Layouts","signatures":[{"params":[{"name":"layout","type":"String"}],"returns":"String","raises":[{"type":"IllegalArgumentException","doc":"if tmux would not recognise the name, which on some versions is not a recoverable error"}],"raw":"public static String require(String layout)","typeScopeBoundary":true},{"params":[{"name":"layout","type":"String"},{"name":"running","type":"TmuxVersion"}],"returns":"String","raises":[{"type":"IllegalArgumentException","doc":"if tmux would not recognise the layout"},{"type":"UnsupportedFeatureException","doc":"if the name or the JSON format arrived after this release"}],"raw":"public static String require(String layout, TmuxVersion running)","typeScopeBoundary":true},{"params":[{"name":"layout","type":"String","doc":"a built-in name, unique abbreviation or serialized tree"},{"name":"server","type":"Server","doc":"the endpoint which will apply the layout"},{"name":"paneCount","type":"int","doc":"the number of panes which the layout must accommodate"}],"returns":"String","returnsDoc":"a full built-in name or the unchanged serialized layout","raises":[{"type":"IllegalArgumentException","doc":"if the layout is invalid or has too few pane cells"},{"type":"UnsupportedFeatureException","doc":"if an exact built-in name requires a newer daemon"},{"type":"LibTmuxException","doc":"if the daemon or client version cannot be read"}],"raw":"public static String require(String layout, Server server, int paneCount)","typeScopeBoundary":true}],"doc":{"summary":"Returns the layout unchanged, having checked tmux will recognise it.","body":"Accepts the classic checksummed form, a JSON layout (by shape only — a running version is\nneeded to say whether this server could have written it, which {@link #require(String,\nTmuxVersion)} does), a built-in name, or an unambiguous prefix of exactly one built-in name\n({@code layout_set_lookup} is a prefix match, so {@code tile} and {@code even-h} apply on\nevery tmux release). Ambiguity is judged against every name this library knows, not only the\nones the eventual server will have — the version to narrow that with is not available here."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layouts.java","line":61,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layouts.require","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layouts.Layouts.require","product":"core","slug":"io-github-libtmux-layouts-layouts-require"},{"id":"io.github.libtmux.Layouts.Layouts.builtIn","name":"builtIn","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Layouts.Layouts","signatures":[{"params":[{"name":"layout","type":"String"},{"name":"running","type":"TmuxVersion"}],"returns":"Optional","raw":"public static Optional builtIn(String layout, TmuxVersion running)","typeScopeBoundary":true}],"doc":{"summary":"The built-in layout a name or an unambiguous prefix of one denotes, resolved against what {@code running} actually supports — the same resolution {@link #require(String, TmuxVersion)} applies, exposed so a caller that must choose between the enum path and a raw string (a workspace file's own dispatch) makes the same choice the guard just validated."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layouts.java","line":122,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layouts.builtIn","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layouts.Layouts.builtIn","product":"core","slug":"io-github-libtmux-layouts-layouts-builtin"},{"id":"io.github.libtmux.Layouts.Layouts.requireSerialized","name":"requireSerialized","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Layouts.Layouts","signatures":[{"params":[{"name":"layout","type":"String"},{"name":"running","type":"TmuxVersion"}],"returns":"String","raises":[{"type":"IllegalArgumentException","doc":"if the string is not a layout tmux wrote"},{"type":"UnsupportedFeatureException","doc":"if it is JSON-shaped but {@code running} predates the format, so it cannot be one this server wrote"}],"raw":"static String requireSerialized(String layout, TmuxVersion running)","typeScopeBoundary":true}],"doc":{"summary":"Requires an exact layout string rather than a built-in layout name.","body":"The classic form answers \"did tmux write this?\" by its own checksum, without needing to\nknow what tmux is running. JSON carries nothing equivalent, so the only question left to ask\nis \"could this tmux have written it?\" - which is a version, not a parse. Recognising the shape\nis as far as this goes: a JSON body that passes the shape check but is not real is tmux's own\nproblem to refuse, and it does, safely, on every release that understands the format at all\n(confirmed against next-3.9: malformed JSON answers an ordinary parse error, never a crash)."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layouts.java","line":249,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layouts.requireSerialized","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layouts.Layouts.requireSerialized","product":"core","slug":"io-github-libtmux-layouts-layouts-requireserialized"},{"id":"io.github.libtmux.MessageLog.MessageLog","name":"MessageLog","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"The server's own message log, newest last.","body":"tmux before 3.6 answers {@code no current client} when nothing is attached. A gate would\nrefuse the case that works: with a client attached the log is readable on every supported\nrelease. The failure tmux reports is left to reach the caller."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/MessageLog.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.MessageLog","namespace":"io.github.libtmux","publicId":"io.github.libtmux.MessageLog.MessageLog","product":"core","slug":"io-github-libtmux-messagelog-messagelog","typeScopeBoundary":false},{"id":"io.github.libtmux.MessageLog.MessageLog.MessageLog","name":"MessageLog","kind":"method","modifiers":[],"parent":"io.github.libtmux.MessageLog.MessageLog","signatures":[{"params":[{"name":"server","type":"Server"}],"raw":"MessageLog(Server server)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/MessageLog.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.MessageLog.MessageLog","namespace":"io.github.libtmux","publicId":"io.github.libtmux.MessageLog.MessageLog.MessageLog","product":"core","slug":"io-github-libtmux-messagelog-messagelog-messagelog"},{"id":"io.github.libtmux.MessageLog.MessageLog.lines","name":"lines","kind":"method","modifiers":[],"parent":"io.github.libtmux.MessageLog.MessageLog","signatures":[{"params":[],"returns":"List","raises":[{"type":"LibTmuxException","doc":"before 3.6 when no client is attached"}],"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List lines()","typeScopeBoundary":false}],"doc":{"summary":"The log lines."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/MessageLog.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.MessageLog.lines","namespace":"io.github.libtmux","publicId":"io.github.libtmux.MessageLog.MessageLog.lines","product":"core","slug":"io-github-libtmux-messagelog-messagelog-lines"},{"id":"io.github.libtmux.OptionKey.OptionKey","name":"OptionKey","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"A tmux option and the Java type its value reads as.","body":"Declared by the caller rather than catalogued here. tmux has hundreds of options, adds them\nbetween releases and changes a few of their types, so a closed catalogue would be wrong somewhere\non every release it did not track. A key says how to read one option; the name-and-string methods\non {@link Options} remain for anything else.\n\nThe constants are the ones whose type is the same on every supported release, checked against\ntmux's own option table from 3.2a to 3.7c. {@code status} is not among the flags for that reason:\ntmux reads it as a choice of {@code off}, {@code on} and a line count.","examples":[{"lang":"java","code":"session.options().set(OptionKey.HISTORY_LIMIT, 50_000);\nint kept = session.options().get(OptionKey.HISTORY_LIMIT).orElseThrow(); // → 50000\n\nOptionKey bell = OptionKey.flag(\"visual-bell\");"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey","product":"core","slug":"io-github-libtmux-optionkey-optionkey","typeParams":["T"],"typeParamNames":["T"],"typeScopeBoundary":false},{"id":"io.github.libtmux.OptionKey.OptionKey.HISTORY_LIMIT","name":"HISTORY_LIMIT","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[],"type":"OptionKey","value":"number(\"history-limit\")","doc":{"summary":"Lines of scrollback a pane keeps. A session option."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.HISTORY_LIMIT","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.HISTORY_LIMIT","product":"core","slug":"io-github-libtmux-optionkey-optionkey-history_limit","typeScopeBoundary":true},{"id":"io.github.libtmux.OptionKey.OptionKey.BASE_INDEX","name":"BASE_INDEX","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[],"type":"OptionKey","value":"number(\"base-index\")","doc":{"summary":"The index a session's first window gets. A session option."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.BASE_INDEX","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.BASE_INDEX","product":"core","slug":"io-github-libtmux-optionkey-optionkey-base_index","typeScopeBoundary":true},{"id":"io.github.libtmux.OptionKey.OptionKey.ESCAPE_TIME","name":"ESCAPE_TIME","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[],"type":"OptionKey","value":"number(\"escape-time\")","doc":{"summary":"How long tmux waits after an escape to see whether a key sequence follows. A server option."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.ESCAPE_TIME","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.ESCAPE_TIME","product":"core","slug":"io-github-libtmux-optionkey-optionkey-escape_time","typeScopeBoundary":true},{"id":"io.github.libtmux.OptionKey.OptionKey.MOUSE","name":"MOUSE","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[],"type":"OptionKey","value":"flag(\"mouse\")","doc":{"summary":"Whether the mouse is captured. A session option."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.MOUSE","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.MOUSE","product":"core","slug":"io-github-libtmux-optionkey-optionkey-mouse","typeScopeBoundary":true},{"id":"io.github.libtmux.OptionKey.OptionKey.AUTOMATIC_RENAME","name":"AUTOMATIC_RENAME","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[],"type":"OptionKey","value":"flag(\"automatic-rename\")","doc":{"summary":"Whether a window renames itself after what its pane runs. A window option."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.AUTOMATIC_RENAME","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.AUTOMATIC_RENAME","product":"core","slug":"io-github-libtmux-optionkey-optionkey-automatic_rename","typeScopeBoundary":true},{"id":"io.github.libtmux.OptionKey.OptionKey.SYNCHRONIZE_PANES","name":"SYNCHRONIZE_PANES","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[],"type":"OptionKey","value":"flag(\"synchronize-panes\")","doc":{"summary":"Whether keys typed into one pane go to every pane in the window. A window or pane option."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.SYNCHRONIZE_PANES","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.SYNCHRONIZE_PANES","product":"core","slug":"io-github-libtmux-optionkey-optionkey-synchronize_panes","typeScopeBoundary":true},{"id":"io.github.libtmux.OptionKey.OptionKey.text","name":"text","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"OptionKey","raw":"public static OptionKey text(String name)","typeScopeBoundary":true}],"doc":{"summary":"An option read as the text tmux reports, which suits a string, a choice, a style or a colour."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.text","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.text","product":"core","slug":"io-github-libtmux-optionkey-optionkey-text"},{"id":"io.github.libtmux.OptionKey.OptionKey.number","name":"number","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"OptionKey","raw":"public static OptionKey number(String name)","typeScopeBoundary":true}],"doc":{"summary":"An option tmux holds as a number."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.number","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.number","product":"core","slug":"io-github-libtmux-optionkey-optionkey-number"},{"id":"io.github.libtmux.OptionKey.OptionKey.flag","name":"flag","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"OptionKey","raw":"public static OptionKey flag(String name)","typeScopeBoundary":true}],"doc":{"summary":"An option tmux holds as a flag, which it reports as {@code on} or {@code off}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":69,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.flag","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.flag","product":"core","slug":"io-github-libtmux-optionkey-optionkey-flag"},{"id":"io.github.libtmux.OptionKey.OptionKey.name","name":"name","kind":"method","modifiers":[],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[{"params":[],"returns":"String","raw":"public String name()","typeScopeBoundary":false}],"doc":{"summary":"The option's name, as tmux spells it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":74,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.name","product":"core","slug":"io-github-libtmux-optionkey-optionkey-name"},{"id":"io.github.libtmux.OptionKey.OptionKey.read","name":"read","kind":"method","modifiers":[],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[{"params":[{"name":"reported","type":"String"}],"returns":"T","raw":"T read(String reported)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.read","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.read","product":"core","slug":"io-github-libtmux-optionkey-optionkey-read"},{"id":"io.github.libtmux.OptionKey.OptionKey.write","name":"write","kind":"method","modifiers":[],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[{"params":[{"name":"value","type":"T"}],"returns":"String","raw":"String write(T value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":82,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.write","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.write","product":"core","slug":"io-github-libtmux-optionkey-optionkey-write"},{"id":"io.github.libtmux.OptionKey.OptionKey.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":105,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.toString","product":"core","slug":"io-github-libtmux-optionkey-optionkey-tostring"},{"id":"io.github.libtmux.Options.Options","name":"Options","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"The tmux options at one scope.","body":"tmux keeps options on the server, on a session, on a window and on a pane, and the same option\nname can exist at more than one of them. A scope is therefore chosen when the view is obtained,\nnot passed to every call, so a caller cannot read one scope and write another.\n\nArray options keep the subscript tmux prints — {@code command-alias[0]} — because that is what\naddresses the individual entry when setting it back.\n\nEvery read asks the daemon its version in the same tmux invocation as the values, since how a\nvalue is printed depends on that version: tmux 3.4 and 3.5 print a carriage return and a literal\n{@code \\r} alike under {@code -v}, so on those two the escaped listing is decoded instead."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":39,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options","product":"core","slug":"io-github-libtmux-options-options","typeScopeBoundary":false},{"id":"io.github.libtmux.Options.Options.server","name":"server","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Options.Options","signatures":[{"params":[{"name":"server","type":"Server"}],"returns":"Options","raw":"static Options server(Server server)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.server","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.server","product":"core","slug":"io-github-libtmux-options-options-server"},{"id":"io.github.libtmux.Options.Options.global","name":"global","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Options.Options","signatures":[{"params":[{"name":"server","type":"Server"}],"returns":"Options","raw":"static Options global(Server server)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":58,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.global","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.global","product":"core","slug":"io-github-libtmux-options-options-global"},{"id":"io.github.libtmux.Options.Options.session","name":"session","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Options.Options","signatures":[{"params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"session","type":"SessionId"}],"returns":"Options","raw":"static Options session(Server server, ServerSnapshot snapshot, SessionId session)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.session","product":"core","slug":"io-github-libtmux-options-options-session"},{"id":"io.github.libtmux.Options.Options.window","name":"window","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Options.Options","signatures":[{"params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"window","type":"WindowId"}],"returns":"Options","raw":"static Options window(Server server, ServerSnapshot snapshot, WindowId window)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":66,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.window","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.window","product":"core","slug":"io-github-libtmux-options-options-window"},{"id":"io.github.libtmux.Options.Options.pane","name":"pane","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Options.Options","signatures":[{"params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"pane","type":"PaneId"}],"returns":"Options","raw":"static Options pane(Server server, ServerSnapshot snapshot, PaneId pane)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":70,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.pane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.pane","product":"core","slug":"io-github-libtmux-options-options-pane"},{"id":"io.github.libtmux.Options.Options.get","name":"get","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Options.Options","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"Optional","returnsDoc":"empty only when tmux does not know the option, which it reports as an error; an option genuinely set to the empty string comes back as an empty value, not as absent. A value spanning several lines comes back whole","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the read otherwise fails, including a name tmux finds ambiguous — option names may be abbreviated, and a prefix matching several is a question tmux declined to answer rather than an option it does not have"}],"raw":"@Operation(Kind.READ)\n public Optional get(String name)","typeScopeBoundary":false},{"params":[{"name":"key","type":"OptionKey"}],"returns":"Optional","typeParams":["T"],"raises":[{"type":"LibTmuxException","doc":"if tmux reports a value the key's type cannot hold, which means the key was declared with the wrong type"}],"raw":"@Operation(Kind.READ)\n public Optional get(OptionKey key)","typeParamNames":["T"],"typeScopeBoundary":false}],"doc":{"summary":"The value in effect at this scope, inherited from a parent scope when this one does not set it.","body":"This is what tmux itself will act on. To ask the narrower question — whether this scope\nsets the option at all — look for the name in {@link #all()}, which lists only what is set\nhere."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":89,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.get","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.get","product":"core","slug":"io-github-libtmux-options-options-get"},{"id":"io.github.libtmux.Options.Options.set","name":"set","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Options.Options","signatures":[{"params":[{"name":"key","type":"OptionKey"},{"name":"value","type":"T"}],"returns":"void","typeParams":["T"],"raw":"@Operation(Kind.MUTATION)\n public void set(OptionKey key, T value)","typeParamNames":["T"],"typeScopeBoundary":false},{"params":[{"name":"name","type":"String"},{"name":"value","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void set(String name, String value)","typeScopeBoundary":false}],"doc":{"summary":"As {@link #set(String, String)}, written the way tmux reads the key's type."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":130,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.set","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.set","product":"core","slug":"io-github-libtmux-options-options-set"},{"id":"io.github.libtmux.Options.Options.all","name":"all","kind":"method","modifiers":[],"parent":"io.github.libtmux.Options.Options","signatures":[{"params":[],"returns":"Map","raw":"@ReadOnly\n @Operation(Kind.READ)\n public Map all()","typeScopeBoundary":false}],"doc":{"summary":"Every option set at this scope, in tmux's order. Inherited values are not listed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":137,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.all","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.all","product":"core","slug":"io-github-libtmux-options-options-all"},{"id":"io.github.libtmux.Options.Options.effective","name":"effective","kind":"method","modifiers":[],"parent":"io.github.libtmux.Options.Options","signatures":[{"params":[],"returns":"Map","raw":"@ReadOnly\n @Operation(Kind.READ)\n public Map effective()","typeScopeBoundary":false}],"doc":{"summary":"Every option tmux lists at this scope, including inherited built-in values.","body":"Inherited user-option names are not listed by tmux. {@link #get(String)} still reads their\neffective values by name."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":316,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.effective","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.effective","product":"core","slug":"io-github-libtmux-options-options-effective"},{"id":"io.github.libtmux.Options.Options.setIfAbsent","name":"setIfAbsent","kind":"method","modifiers":[],"parent":"io.github.libtmux.Options.Options","signatures":[{"params":[{"name":"name","type":"String"},{"name":"value","type":"String"}],"returns":"boolean","returnsDoc":"whether the value was taken, false when this scope already set the option","raw":"@Operation(Kind.MUTATION)\n public boolean setIfAbsent(String name, String value)","typeScopeBoundary":false}],"doc":{"summary":"Sets one option only if this scope does not already set it.","body":"tmux reports the already-set case as an error, which it is not: declining to overwrite is\nthe whole point of asking. The answer comes back as a value instead."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":336,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.setIfAbsent","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.setIfAbsent","product":"core","slug":"io-github-libtmux-options-options-setifabsent"},{"id":"io.github.libtmux.Options.Options.append","name":"append","kind":"method","modifiers":[],"parent":"io.github.libtmux.Options.Options","signatures":[{"params":[{"name":"name","type":"String"},{"name":"suffix","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void append(String name, String suffix)","typeScopeBoundary":false}],"doc":{"summary":"Adds to the end of a string option, rather than replacing it.","body":"Appending to an option this scope has not set simply sets it, which is what tmux does and\nwhat a caller building a value up piece by piece wants."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":347,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.append","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.append","product":"core","slug":"io-github-libtmux-options-options-append"},{"id":"io.github.libtmux.Options.Options.setExpanded","name":"setExpanded","kind":"method","modifiers":[],"parent":"io.github.libtmux.Options.Options","signatures":[{"params":[{"name":"name","type":"String"},{"name":"format","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void setExpanded(String name, String format)","typeScopeBoundary":false}],"doc":{"summary":"Sets one option to what a tmux format comes to, rather than to the format itself.","body":"{@code setExpanded(\"status-left\", \"in #{session_name}\")} stores {@code in base}. The\nexpansion happens once, when this is called; the option does not stay live.\n\nBecause tmux expands the format when this is called, a {@code #(...)} in it runs a command\nat that moment. Pass any interpolated value through {@link TmuxFormats#literal} unless you mean\nit to be expanded."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":362,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.setExpanded","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.setExpanded","product":"core","slug":"io-github-libtmux-options-options-setexpanded"},{"id":"io.github.libtmux.Options.Options.unset","name":"unset","kind":"method","modifiers":[],"parent":"io.github.libtmux.Options.Options","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void unset(String name)","typeScopeBoundary":false}],"doc":{"summary":"Removes one option at this scope, so it falls back to whatever it inherits."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":368,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.unset","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.unset","product":"core","slug":"io-github-libtmux-options-options-unset"},{"id":"io.github.libtmux.Pane.Pane","name":"Pane","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"One tmux pane, as one capture saw it.","body":"Identity is the server and the pane id. An index is state: panes renumber as neighbours come\nand go.\n\nA method named for a captured field returns what {@link #info()} holds and does no I/O;\n{@link #refresh()} reads again. Every other method asks tmux now."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane","product":"core","slug":"io-github-libtmux-pane-pane","typeScopeBoundary":false},{"id":"io.github.libtmux.Pane.Pane.Pane","name":"Pane","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"state","type":"PaneState"}],"raw":"Pane(Server server, ServerSnapshot snapshot, PaneState state)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.Pane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.Pane","product":"core","slug":"io-github-libtmux-pane-pane-pane"},{"id":"io.github.libtmux.Pane.Pane.info","name":"info","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"PaneState","raw":"@Operation(Kind.CAPTURED)\n public PaneState info()","typeScopeBoundary":false}],"doc":{"summary":"The fields this capture stored. A later title change is not visible here."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":71,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.info","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.info","product":"core","slug":"io-github-libtmux-pane-pane-info"},{"id":"io.github.libtmux.Pane.Pane.id","name":"id","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"PaneId","raw":"@Operation(Kind.CAPTURED)\n public PaneId id()","typeScopeBoundary":false}],"doc":{"summary":"The pane's stable id."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.id","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.id","product":"core","slug":"io-github-libtmux-pane-pane-id"},{"id":"io.github.libtmux.Pane.Pane.index","name":"index","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"int","raw":"@Operation(Kind.CAPTURED)\n public int index()","typeScopeBoundary":false}],"doc":{"summary":"The pane's position, which shifts as neighbours come and go."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":83,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.index","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.index","product":"core","slug":"io-github-libtmux-pane-pane-index"},{"id":"io.github.libtmux.Pane.Pane.active","name":"active","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"boolean","raw":"@Operation(Kind.CAPTURED)\n public boolean active()","typeScopeBoundary":false}],"doc":{"summary":"Whether this was its window's active pane when captured."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":89,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.active","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.active","product":"core","slug":"io-github-libtmux-pane-pane-active"},{"id":"io.github.libtmux.Pane.Pane.currentCommand","name":"currentCommand","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"String","raw":"@Operation(Kind.CAPTURED)\n public String currentCommand()","typeScopeBoundary":false}],"doc":{"summary":"The command tmux reported running here."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":95,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.currentCommand","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.currentCommand","product":"core","slug":"io-github-libtmux-pane-pane-currentcommand"},{"id":"io.github.libtmux.Pane.Pane.floating","name":"floating","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"Optional","raw":"@Operation(Kind.CAPTURED)\n public Optional floating()","typeScopeBoundary":false}],"doc":{"summary":"Whether this pane floats, or empty when the running tmux cannot say.","body":"Empty is not \"no\". tmux before 3.7 expands the format to nothing, and answering {@code false}\nthere would be indistinguishable from a tmux that looked and found the pane was not floating."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":106,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.floating","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.floating","product":"core","slug":"io-github-libtmux-pane-pane-floating"},{"id":"io.github.libtmux.Pane.Pane.size","name":"size","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"Dimensions","raw":"@Operation(Kind.CAPTURED)\n public Dimensions size()","typeScopeBoundary":false}],"doc":{"summary":"How large the pane was when captured, in terminal cells."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":112,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.size","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.size","product":"core","slug":"io-github-libtmux-pane-pane-size"},{"id":"io.github.libtmux.Pane.Pane.position","name":"position","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"PanePosition","raw":"@Operation(Kind.CAPTURED)\n public PanePosition position()","typeScopeBoundary":false}],"doc":{"summary":"Where the pane's top-left corner sat in its window when captured, in terminal cells."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":118,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.position","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.position","product":"core","slug":"io-github-libtmux-pane-pane-position"},{"id":"io.github.libtmux.Pane.Pane.title","name":"title","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"String","raw":"@Operation(Kind.CAPTURED)\n public String title()","typeScopeBoundary":false}],"doc":{"summary":"The pane title, which a program running inside it can change."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":124,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.title","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.title","product":"core","slug":"io-github-libtmux-pane-pane-title"},{"id":"io.github.libtmux.Pane.Pane.currentPath","name":"currentPath","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"Path","raises":[{"type":"LibTmuxException","doc":"if this JVM's encoding cannot represent the name, which a UTF-8 locale fixes"}],"raw":"@Operation(Kind.CAPTURED)\n public Path currentPath()","typeScopeBoundary":false}],"doc":{"summary":"The working directory tmux reported for the pane.","body":"Converted on request rather than when the pane was captured, because a directory name is\nbytes to tmux and this JVM cannot always represent one: converting at capture time would lose\nevery pane on the server over a single pane's directory. {@link #currentPathText()} is the\nvalue tmux actually reported, and never throws."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":140,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.currentPath","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.currentPath","product":"core","slug":"io-github-libtmux-pane-pane-currentpath"},{"id":"io.github.libtmux.Pane.Pane.currentPathText","name":"currentPathText","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"String","raw":"@Operation(Kind.CAPTURED)\n public String currentPathText()","typeScopeBoundary":false}],"doc":{"summary":"The working directory tmux reported for the pane, exactly as tmux reported it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":155,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.currentPathText","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.currentPathText","product":"core","slug":"io-github-libtmux-pane-pane-currentpathtext"},{"id":"io.github.libtmux.Pane.Pane.pid","name":"pid","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"OptionalLong","raw":"@Operation(Kind.CAPTURED)\n public OptionalLong pid()","typeScopeBoundary":false}],"doc":{"summary":"The process id of the program running in the pane, captured at the time of the read this handle came from.","body":"Empty means tmux reported no process — never a literal {@code 0}, which would be\nindistinguishable from a real pid. That covers two different situations this capture cannot\ntell apart: a pane that never ran one ({@link SplitSpec.Builder#empty()}) and, from tmux 3.8, a\npane that ran one and it has since died. Before 3.8 a dead pane still reports its stale pid.\n{@link #dead()} is the live read that tells a caller which."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":170,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.pid","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.pid","product":"core","slug":"io-github-libtmux-pane-pane-pid"},{"id":"io.github.libtmux.Pane.Pane.dead","name":"dead","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"boolean","raises":[{"type":"TargetGoneException","doc":"if the pane is gone from a server that still answers"}],"raw":"@Operation(Kind.READ)\n public boolean dead()","typeScopeBoundary":false}],"doc":{"summary":"Whether this pane's process has exited, read fresh rather than from the capture.","body":"Dying is something that happens between reads, so a cached answer would report a pane that\ndied after this handle was captured as alive forever — the trap a snapshot-backed {@code\nisDead()} would set, which is why there is no such accessor on the capture itself. This asks\ntmux directly instead, every time.\n\nA dead pane is not necessarily a gone one: {@code remain-on-exit} keeps it around, still\nlisted, to be read. A pane with no {@code remain-on-exit} is simply removed once its process\nexits — {@link #refresh()} on this handle then throws {@link TargetGoneException}, and\nthis method throws too. Unlike every other command {@code Pane} sends, {@code display-message\n-t} does not error on a target it cannot resolve — it exits 0 with nothing on stdout — so a\ngone pane looks like a live one that answered nothing rather than like a failure. That empty\nread, and not a \"can't find pane\" from tmux, is what this method throws on: a real pane always\nanswers {@code 0} or {@code 1} for this format, never nothing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":194,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.dead","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.dead","product":"core","slug":"io-github-libtmux-pane-pane-dead"},{"id":"io.github.libtmux.Pane.Pane.resize","name":"resize","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"direction","type":"Direction","doc":"which way to grow, named rather than flagged"},{"name":"cells","type":"int","doc":"how many terminal cells to grow by"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void resize(Direction direction, int cells)","typeScopeBoundary":false}],"doc":{"summary":"Grows this pane by a number of cells in one direction."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":209,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.resize","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.resize","product":"core","slug":"io-github-libtmux-pane-pane-resize"},{"id":"io.github.libtmux.Pane.Pane.edges","name":"edges","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"PaneEdges","raw":"@Operation(Kind.CAPTURED)\n public PaneEdges edges()","typeScopeBoundary":false}],"doc":{"summary":"Which sides of its window the pane touches."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":219,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.edges","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.edges","product":"core","slug":"io-github-libtmux-pane-pane-edges"},{"id":"io.github.libtmux.Pane.Pane.copyMode","name":"copyMode","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void copyMode()","typeScopeBoundary":false}],"doc":{"summary":"Puts this pane into copy mode, where its scrollback can be navigated."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":225,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.copyMode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.copyMode","product":"core","slug":"io-github-libtmux-pane-pane-copymode"},{"id":"io.github.libtmux.Pane.Pane.mode","name":"mode","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"Optional","returnsDoc":"the mode, or empty when the pane is showing its program","raises":[{"type":"LibTmuxException","doc":"if this tmux named a mode outside the supported range"}],"raw":"@Operation(Kind.READ)\n public Optional mode()","typeScopeBoundary":false}],"doc":{"summary":"Which mode this pane is in at this moment, or empty when it is in none.","body":"Read live rather than from the capture, because entering a mode is something this library\ndoes and a caller wants to see the result of."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":239,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.mode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.mode","product":"core","slug":"io-github-libtmux-pane-pane-mode"},{"id":"io.github.libtmux.Pane.Pane.exitMode","name":"exitMode","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void exitMode()","typeScopeBoundary":false}],"doc":{"summary":"Leaves whichever mode this pane is in.","body":"tmux spells this {@code copy-mode -q}, which quits any mode and not only copy mode — a clock\nand a chooser go the same way. The name is tmux's history rather than its behaviour, so it is\nnot the one exposed here."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":252,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.exitMode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.exitMode","product":"core","slug":"io-github-libtmux-pane-pane-exitmode"},{"id":"io.github.libtmux.Pane.Pane.select","name":"select","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void select()","typeScopeBoundary":false}],"doc":{"summary":"Makes this the active pane of its window."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":258,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.select","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.select","product":"core","slug":"io-github-libtmux-pane-pane-select"},{"id":"io.github.libtmux.Pane.Pane.retitle","name":"retitle","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"title","type":"String"}],"returns":"Pane","raw":"@CheckReturnValue\n @Operation(Kind.MUTATION)\n public Pane retitle(String title)","typeScopeBoundary":false}],"doc":{"summary":"Retitles this pane and returns its replacement capture.","body":"Retain the result to read the changed title. This handle keeps its original captured state.\n\nA program running in the pane can set its own title through an escape sequence, and tmux\nreports that one instead. This says what the title is now, not what it will stay."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":271,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.retitle","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.retitle","product":"core","slug":"io-github-libtmux-pane-pane-retitle"},{"id":"io.github.libtmux.Pane.Pane.resizeTo","name":"resizeTo","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"size","type":"Dimensions"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void resizeTo(Dimensions size)","typeScopeBoundary":false}],"doc":{"summary":"Resizes this pane."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":280,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.resizeTo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.resizeTo","product":"core","slug":"io-github-libtmux-pane-pane-resizeto"},{"id":"io.github.libtmux.Pane.Pane.server","name":"server","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"Server","raw":"@Operation(Kind.CAPTURED)\n public Server server()","typeScopeBoundary":false}],"doc":{"summary":"The server this pane lives on."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":295,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.server","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.server","product":"core","slug":"io-github-libtmux-pane-pane-server"},{"id":"io.github.libtmux.Pane.Pane.batch","name":"batch","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"Batch","raw":"@Operation(Kind.CAPTURED)\n public Batch batch()","typeScopeBoundary":false}],"doc":{"summary":"Collects commands fenced to the server incarnation that produced this pane."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":301,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.batch","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.batch","product":"core","slug":"io-github-libtmux-pane-pane-batch"},{"id":"io.github.libtmux.Pane.Pane.snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"ServerSnapshot","raw":"ServerSnapshot snapshot()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":306,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.snapshot","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.snapshot","product":"core","slug":"io-github-libtmux-pane-pane-snapshot"},{"id":"io.github.libtmux.Pane.Pane.window","name":"window","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"Window","raw":"@Operation(Kind.CAPTURED)\n public Window window()","typeScopeBoundary":false}],"doc":{"summary":"The window link this pane was reached through. A pure read of the capture."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":311,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.window","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.window","product":"core","slug":"io-github-libtmux-pane-pane-window"},{"id":"io.github.libtmux.Pane.Pane.hooks","name":"hooks","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"Hooks","raw":"@Operation(Kind.CAPTURED)\n public Hooks hooks()","typeScopeBoundary":false}],"doc":{"summary":"This pane's own hooks."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":320,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.hooks","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.hooks","product":"core","slug":"io-github-libtmux-pane-pane-hooks"},{"id":"io.github.libtmux.Pane.Pane.options","name":"options","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"Options","raw":"@Operation(Kind.CAPTURED)\n public Options options()","typeScopeBoundary":false}],"doc":{"summary":"This pane's own options."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":326,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.options","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.options","product":"core","slug":"io-github-libtmux-pane-pane-options"},{"id":"io.github.libtmux.Pane.Pane.capture","name":"capture","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"List","raw":"@ReadOnly\n @Operation(Kind.READ)\n public List capture()","typeScopeBoundary":false},{"params":[{"name":"configure","type":"Consumer","doc":"receives a builder that reads the visible area and nothing else"}],"returns":"List","raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something this server does not have"}],"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List capture(Consumer configure)","typeScopeBoundary":false},{"params":[{"name":"spec","type":"CaptureSpec"}],"returns":"List","raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something this server does not have"}],"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List capture(CaptureSpec spec)","typeScopeBoundary":false}],"doc":{"summary":"This pane's visible content, one element per line.","examples":[{"lang":"console","intro":"Send input and wait for output before capturing the pane. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/Capture.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/Capture.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport io.github.libtmux.SessionSpec;\nimport io.github.libtmux.TextOutcome;\nimport java.nio.file.Path;\nimport java.time.Duration;\nimport java.util.List;\n\n/** Send input and wait for output before capturing the pane. */\npublic final class Capture {\n private Capture() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n var session = server.newSession(SessionSpec.builder()\n .named(\"api-capture\")\n .running(\"/bin/sh\")\n .build());\n var pane = session.windows().getFirst().panes().getFirst();\n pane.sendKeys(List.of(\"printf 'api-%s\\\\n' keys\", \"Enter\"));\n if (pane.awaitText(\"api-keys\", Duration.ofSeconds(5)) == TextOutcome.TIMED_OUT) {\n throw new IllegalStateException(\"timed out waiting for keys output\");\n }\n pane.sendLine(\"printf 'api-%s\\\\n' line\");\n if (pane.awaitText(\"api-line\", Duration.ofSeconds(5)) == TextOutcome.TIMED_OUT) {\n throw new IllegalStateException(\"timed out waiting for line output\");\n }\n var lines = pane.capture();\n for (String expected : List.of(\"api-keys\", \"api-line\")) {\n if (lines.stream().noneMatch(line -> line.strip().equals(expected))) {\n throw new IllegalStateException(\"capture is missing \" + expected);\n }\n System.out.println(expected);\n }\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.Capture && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"api-keys\napi-line\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":332,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.capture","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.capture","product":"core","slug":"io-github-libtmux-pane-pane-capture"},{"id":"io.github.libtmux.Pane.Pane.noteTyped","name":"noteTyped","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"text","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void noteTyped(String text)","typeScopeBoundary":false}],"doc":{"summary":"Notes text that reached this pane without going through this handle, so a wait discounts its echo the way it discounts text sent through {@link #sendLiteral}.","body":"Use this for input delivered outside this handle. Input sent through {@link #sendKeys}\nor {@link #sendLiteral} already records synchronized recipients. Include a trailing line break\nwhen the external write submitted its line; otherwise the text remains pending."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":346,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.noteTyped","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.noteTyped","product":"core","slug":"io-github-libtmux-pane-pane-notetyped"},{"id":"io.github.libtmux.Pane.Pane.awaitText","name":"awaitText","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"text","type":"String","doc":"the text to wait for, matched anywhere in a captured line"},{"name":"timeout","type":"Duration","doc":"how long to keep looking"}],"returns":"TextOutcome","returnsDoc":"why the wait ended, which tells text that appeared from text that was already there","raises":[{"type":"LibTmuxException","doc":"if a read fails while the server is still answering — most often because this pane was killed, which is not a timeout"},{"type":"InterruptedException","doc":"if the waiting thread is interrupted, which is a cancellation rather than a timeout and so is not reported as one"}],"raw":"@Operation(Kind.WAIT)\n public TextOutcome awaitText(String text, Duration timeout) throws InterruptedException","typeScopeBoundary":false},{"params":[{"name":"text","type":"String"},{"name":"timeout","type":"Duration"},{"name":"every","type":"Duration","doc":"how long to leave between looks, at least 10 ms"}],"returns":"TextOutcome","raises":[{"type":"IllegalArgumentException","doc":"if {@code every} is shorter than 10 ms"}],"raw":"@Operation(Kind.WAIT)\n public TextOutcome awaitText(String text, Duration timeout, Duration every) throws InterruptedException","typeScopeBoundary":false}],"doc":{"summary":"Waits until this pane's text contains something, and says why the wait ended.","body":"**Reach for this last.** It reads the screen on a timer, which is a heuristic\nabout a program's output rather than a fact about it, and the cheaper waits are exact:\n\n - If you wrote the command, append {@code ; tmux wait-for -S name} to it and block on\n {@link Server#channel}. tmux blocks server-side and returns on the signal itself, so\n nothing is inferred from the screen and one tmux process covers the whole wait. That is\n the only deterministic wait here, and it is the right one whenever the command is yours.\n - If you did not write the command — a daemon printing that it is ready, a build somebody\n else started — this is the case polling is for.\n\nThe timeout bounds the whole wait, reads included. Each read is given only what is left of\nit, so a slow tmux cannot stretch a short wait out to the server's default deadline, and text\nthat first appears after the deadline is not reported. The first read alone is allowed at least\na quarter of a second, so a timeout shorter than one read can still answer\n{@link TextOutcome#PRESENT_AT_ENTRY}.\n\nWaiting longer is also less reliable, not more: tmux frees the oldest scrollback once\n{@code history-limit} is reached, so a long wait on a productive pane can end up reading past\nthe lines it was watching for.","examples":[{"lang":"console","intro":"Send input and wait for output before capturing the pane. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/Capture.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/Capture.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport io.github.libtmux.SessionSpec;\nimport io.github.libtmux.TextOutcome;\nimport java.nio.file.Path;\nimport java.time.Duration;\nimport java.util.List;\n\n/** Send input and wait for output before capturing the pane. */\npublic final class Capture {\n private Capture() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n var session = server.newSession(SessionSpec.builder()\n .named(\"api-capture\")\n .running(\"/bin/sh\")\n .build());\n var pane = session.windows().getFirst().panes().getFirst();\n pane.sendKeys(List.of(\"printf 'api-%s\\\\n' keys\", \"Enter\"));\n if (pane.awaitText(\"api-keys\", Duration.ofSeconds(5)) == TextOutcome.TIMED_OUT) {\n throw new IllegalStateException(\"timed out waiting for keys output\");\n }\n pane.sendLine(\"printf 'api-%s\\\\n' line\");\n if (pane.awaitText(\"api-line\", Duration.ofSeconds(5)) == TextOutcome.TIMED_OUT) {\n throw new IllegalStateException(\"timed out waiting for line output\");\n }\n var lines = pane.capture();\n for (String expected : List.of(\"api-keys\", \"api-line\")) {\n if (lines.stream().noneMatch(line -> line.strip().equals(expected))) {\n throw new IllegalStateException(\"capture is missing \" + expected);\n }\n System.out.println(expected);\n }\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.Capture && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"api-keys\napi-line\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":385,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.awaitText","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.awaitText","product":"core","slug":"io-github-libtmux-pane-pane-awaittext"},{"id":"io.github.libtmux.Pane.Pane.run","name":"run","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"command","type":"String","doc":"a line of shell, run as {@code eval} would run it"},{"name":"timeout","type":"Duration","doc":"how long to wait for it to end"}],"returns":"PaneRun","raises":[{"type":"IllegalStateException","doc":"if the pane is not running a POSIX shell"},{"type":"InterruptedException","doc":"if the waiting thread is interrupted"}],"raw":"@Operation(Kind.WAIT)\n public PaneRun run(String command, Duration timeout) throws InterruptedException","typeScopeBoundary":false}],"doc":{"summary":"Runs a shell command in this pane to its end, and answers with its exit status and output.","body":"**Reach for this first** whenever the command is yours. Nothing is inferred from\nthe screen: the command runs in a subshell of the pane's own shell, whose trap reports {@code $?}\nand signals a private {@code wait-for} channel, so the wait is tmux's and the status is the\nshell's. The trap covers interrupt and terminate as well as exit, so a command someone stops at\nthe pane ends this call with the status it was stopped with rather than leaving it waiting. The output is what the command printed and nothing else — not the typed line,\nnot the prompt — cut out between two markers the plumbing prints around it.\n\nIt runs in the shell a person set up — its directory, its environment, a virtualenv someone\nactivated — which is the reason to type it there rather than start a process of your own. The\npane has to be running a POSIX shell for the typed line to mean what it says.\n\nA command still running at the deadline keeps running; the answer carries what it had printed\nby then, and {@link PaneRun#exact()} is false.","examples":[{"lang":"java","code":"PaneRun built = pane.run(\"make test\", Duration.ofMinutes(5));\nif (!built.succeeded()) {\nSystem.err.println(String.join(\"\\n\", built.output()));\n}"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":435,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.run","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.run","product":"core","slug":"io-github-libtmux-pane-pane-run"},{"id":"io.github.libtmux.Pane.Pane.await","name":"await","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"settled","type":"Predicate","doc":"receives this pane as it is now"},{"name":"timeout","type":"Duration","doc":"how long to keep looking"}],"returns":"WakeReason","returnsDoc":"why the wait ended","raises":[{"type":"TargetGoneException","doc":"if this pane is killed while its server stays up, which is not a timeout"},{"type":"InterruptedException","doc":"if the waiting thread is interrupted"}],"raw":"@Operation(Kind.WAIT)\n public WakeReason await(Predicate settled, Duration timeout) throws InterruptedException","typeScopeBoundary":false},{"params":[{"name":"settled","type":"Predicate"},{"name":"timeout","type":"Duration"},{"name":"every","type":"Duration","doc":"how long to leave between looks, at least 10 ms"}],"returns":"WakeReason","raises":[{"type":"IllegalArgumentException","doc":"if {@code every} is shorter than 10 ms"}],"raw":"@Operation(Kind.WAIT)\n public WakeReason await(Predicate settled, Duration timeout, Duration every) throws InterruptedException","typeScopeBoundary":false}],"doc":{"summary":"Waits until a condition holds for this pane as tmux reports it, and says why the wait ended.","body":"The pane is captured again before each test, so the condition reads fresh state rather than\nthe capture this handle was built from. What the condition receives is an ordinary handle on\nthis pane's server and can be kept. The ordering {@link #awaitText} describes applies here too —\na signal on a {@link Server#channel} is exact, and this is for when nothing signals — and so do\nits deadline rules.","examples":[{"lang":"java","code":"pane.await(fresh -> !fresh.currentCommand().equals(\"zsh\"), Duration.ofSeconds(5));"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":484,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.await","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.await","product":"core","slug":"io-github-libtmux-pane-pane-await"},{"id":"io.github.libtmux.Pane.Pane.through","name":"through","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"via","type":"Server"}],"returns":"Pane","raw":"Pane through(Server via)","typeScopeBoundary":false}],"doc":{"summary":"This pane's captured state, addressed through another view of the same server."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":502,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.through","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.through","product":"core","slug":"io-github-libtmux-pane-pane-through"},{"id":"io.github.libtmux.Pane.Pane.send","name":"send","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"keys","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void send(String keys)","typeScopeBoundary":false}],"doc":{"summary":"Sends keys to this pane without pressing Enter.","body":"Separate from {@link #sendLine} rather than a boolean, so a call site says which it means.\n\nRecorded as an echo before dispatch, through the same key model {@link #sendKeys} uses,\nbecause tmux types anything here that is not one of its key names and a terminal echoes what\nis typed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":546,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.send","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.send","product":"core","slug":"io-github-libtmux-pane-pane-send"},{"id":"io.github.libtmux.Pane.Pane.sendKeys","name":"sendKeys","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"keys","type":"List"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void sendKeys(List keys)","typeScopeBoundary":false},{"params":[{"name":"keys","type":"List"},{"name":"beforeSend","type":"Runnable","doc":"validates current input ownership"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void sendKeys(List keys, Runnable beforeSend)","typeScopeBoundary":false}],"doc":{"summary":"Sends an ordered group of key names to this pane, as tmux resolves them.","body":"Each entry is resolved through tmux's key table; an unknown name is typed as text.\nRecorded input includes effective synchronized recipients. Known dispatch failures undo the\nrecord; uncertain delivery retains it. {@link #sendLiteral} types every entry literally.","examples":[{"lang":"console","intro":"Send input and wait for output before capturing the pane. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/Capture.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/Capture.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport io.github.libtmux.SessionSpec;\nimport io.github.libtmux.TextOutcome;\nimport java.nio.file.Path;\nimport java.time.Duration;\nimport java.util.List;\n\n/** Send input and wait for output before capturing the pane. */\npublic final class Capture {\n private Capture() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n var session = server.newSession(SessionSpec.builder()\n .named(\"api-capture\")\n .running(\"/bin/sh\")\n .build());\n var pane = session.windows().getFirst().panes().getFirst();\n pane.sendKeys(List.of(\"printf 'api-%s\\\\n' keys\", \"Enter\"));\n if (pane.awaitText(\"api-keys\", Duration.ofSeconds(5)) == TextOutcome.TIMED_OUT) {\n throw new IllegalStateException(\"timed out waiting for keys output\");\n }\n pane.sendLine(\"printf 'api-%s\\\\n' line\");\n if (pane.awaitText(\"api-line\", Duration.ofSeconds(5)) == TextOutcome.TIMED_OUT) {\n throw new IllegalStateException(\"timed out waiting for line output\");\n }\n var lines = pane.capture();\n for (String expected : List.of(\"api-keys\", \"api-line\")) {\n if (lines.stream().noneMatch(line -> line.strip().equals(expected))) {\n throw new IllegalStateException(\"capture is missing \" + expected);\n }\n System.out.println(expected);\n }\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.Capture && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"api-keys\napi-line\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":558,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.sendKeys","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.sendKeys","product":"core","slug":"io-github-libtmux-pane-pane-sendkeys"},{"id":"io.github.libtmux.Pane.Pane.sendLiteral","name":"sendLiteral","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"keys","type":"List"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void sendLiteral(List keys)","typeScopeBoundary":false},{"params":[{"name":"keys","type":"List"},{"name":"beforeSend","type":"Runnable","doc":"validates current input ownership"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void sendLiteral(List keys, Runnable beforeSend)","typeScopeBoundary":false}],"doc":{"summary":"Sends an ordered group of strings to this pane as the characters they spell.","body":"Nothing is resolved as a key name, so {@code C-c} types those three characters. Recorded\nbefore dispatch, with a line break in the joined text treated as tmux treats it: a submit the\ninstant it reaches the pane, whether or not the caller also presses Enter afterward."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":599,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.sendLiteral","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.sendLiteral","product":"core","slug":"io-github-libtmux-pane-pane-sendliteral"},{"id":"io.github.libtmux.Pane.Pane.sendLine","name":"sendLine","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"command","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void sendLine(String command)","typeScopeBoundary":false}],"doc":{"summary":"Sends a line to this pane and presses Enter, which is how a command gets run.","examples":[{"lang":"console","intro":"Send input and wait for output before capturing the pane. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/Capture.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/Capture.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport io.github.libtmux.SessionSpec;\nimport io.github.libtmux.TextOutcome;\nimport java.nio.file.Path;\nimport java.time.Duration;\nimport java.util.List;\n\n/** Send input and wait for output before capturing the pane. */\npublic final class Capture {\n private Capture() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n var session = server.newSession(SessionSpec.builder()\n .named(\"api-capture\")\n .running(\"/bin/sh\")\n .build());\n var pane = session.windows().getFirst().panes().getFirst();\n pane.sendKeys(List.of(\"printf 'api-%s\\\\n' keys\", \"Enter\"));\n if (pane.awaitText(\"api-keys\", Duration.ofSeconds(5)) == TextOutcome.TIMED_OUT) {\n throw new IllegalStateException(\"timed out waiting for keys output\");\n }\n pane.sendLine(\"printf 'api-%s\\\\n' line\");\n if (pane.awaitText(\"api-line\", Duration.ofSeconds(5)) == TextOutcome.TIMED_OUT) {\n throw new IllegalStateException(\"timed out waiting for line output\");\n }\n var lines = pane.capture();\n for (String expected : List.of(\"api-keys\", \"api-line\")) {\n if (lines.stream().noneMatch(line -> line.strip().equals(expected))) {\n throw new IllegalStateException(\"capture is missing \" + expected);\n }\n System.out.println(expected);\n }\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.Capture && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"api-keys\napi-line\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":649,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.sendLine","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.sendLine","product":"core","slug":"io-github-libtmux-pane-pane-sendline"},{"id":"io.github.libtmux.Pane.Pane.identity","name":"identity","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"ServerIdentity","raw":"ServerIdentity identity()","typeScopeBoundary":false}],"doc":{"summary":"Which server incarnation this pane belongs to: its echo record and its input hold."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":692,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.identity","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.identity","product":"core","slug":"io-github-libtmux-pane-pane-identity"},{"id":"io.github.libtmux.Pane.Pane.breakOut","name":"breakOut","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"Window","raw":"@Operation(Kind.MUTATION)\n public Window breakOut()","typeScopeBoundary":false},{"params":[{"name":"windowName","type":"String"}],"returns":"Window","raw":"@Operation(Kind.MUTATION)\n public Window breakOut(String windowName)","typeScopeBoundary":false}],"doc":{"summary":"Moves this pane into a window of its own, leaving tmux to name it.","body":"On tmux 3.7 the name is supplied rather than left to tmux, because letting tmux choose it\nthere ends the server and every session on it. The name supplied is the one tmux would have\nchosen, so the result is the same window either way."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":703,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.breakOut","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.breakOut","product":"core","slug":"io-github-libtmux-pane-pane-breakout"},{"id":"io.github.libtmux.Pane.Pane.expand","name":"expand","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"format","type":"String","doc":"a tmux format, usually of the shape {@code #{name}}"}],"returns":"String","returnsDoc":"the expansion, whole when it spans lines and empty when the format expanded to nothing","raw":"@Operation(Kind.READ)\n public String expand(String format)","typeScopeBoundary":false}],"doc":{"summary":"Expands a tmux format in this pane's context, and answers with what it came to.","body":"The way out of this library. Snapshots carry the fields worth carrying; a format reaches\neverything else tmux knows, including fields added by a release this code has never heard of.","examples":[{"lang":"java","code":"String title = pane.expand(\"#{pane_title}\");\nString where = pane.expand(\"#{session_name}:#{window_index}.#{pane_index}\");"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":732,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.expand","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.expand","product":"core","slug":"io-github-libtmux-pane-pane-expand"},{"id":"io.github.libtmux.Pane.Pane.variables","name":"variables","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"names","type":"List"}],"returns":"Map","raw":"@ReadOnly\n @Operation(Kind.READ)\n public Map variables(List names)","typeScopeBoundary":false}],"doc":{"summary":"Reads validated tmux variables in this pane's format context."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":742,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.variables","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.variables","product":"core","slug":"io-github-libtmux-pane-pane-variables"},{"id":"io.github.libtmux.Pane.Pane.respawn","name":"respawn","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void respawn()","typeScopeBoundary":false},{"params":[{"name":"command","type":"String","variadic":"positional","doc":"the command and its arguments"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void respawn(String... command)","typeScopeBoundary":false}],"doc":{"summary":"Kills whatever runs here and starts the pane's default command again.","body":"tmux refuses to respawn a pane that is still running something, on every supported release,\nso what is asked for is always the killing form. Restarting a live process is the whole point\nof the call."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":755,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.respawn","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.respawn","product":"core","slug":"io-github-libtmux-pane-pane-respawn"},{"id":"io.github.libtmux.Pane.Pane.respawnIn","name":"respawnIn","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"directory","type":"Path"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void respawnIn(Path directory)","typeScopeBoundary":false}],"doc":{"summary":"Restarts the configured pane process in a caller-supplied literal directory, resolved against this process's working directory when relative."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":764,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.respawnIn","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.respawnIn","product":"core","slug":"io-github-libtmux-pane-pane-respawnin"},{"id":"io.github.libtmux.Pane.Pane.respawnArgv","name":"respawnArgv","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"pane","type":"PaneId"},{"name":"directory","type":"Path"}],"returns":"List","raw":"static List respawnArgv(PaneId pane, Path directory)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":770,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.respawnArgv","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.respawnArgv","product":"core","slug":"io-github-libtmux-pane-pane-respawnargv"},{"id":"io.github.libtmux.Pane.Pane.pipeTo","name":"pipeTo","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"shellCommand","type":"String","doc":"run by the user's shell, so it may redirect and pipe"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void pipeTo(String shellCommand)","typeScopeBoundary":false}],"doc":{"summary":"Sends everything this pane prints to a shell command, until {@link #stopPiping}.","body":"A second call replaces the first: tmux keeps one pipe per pane, not a list.\n\ntmux expands {@code #(...)} in this command before a shell sees it, and shell quoting does\nnot prevent that. Pass any interpolated value through {@link TmuxFormats#literal} unless you\nmean it to be expanded."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":807,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.pipeTo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.pipeTo","product":"core","slug":"io-github-libtmux-pane-pane-pipeto"},{"id":"io.github.libtmux.Pane.Pane.stopPiping","name":"stopPiping","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void stopPiping()","typeScopeBoundary":false}],"doc":{"summary":"Stops sending this pane's output anywhere. Doing so twice is not an error."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":814,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.stopPiping","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.stopPiping","product":"core","slug":"io-github-libtmux-pane-pane-stoppiping"},{"id":"io.github.libtmux.Pane.Pane.split","name":"split","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"Pane","returnsDoc":"the pane that appeared","raw":"@Operation(Kind.MUTATION)\n public Pane split()","typeScopeBoundary":false},{"params":[{"name":"configure","type":"Consumer","doc":"receives a builder holding tmux's defaults"}],"returns":"Pane","returnsDoc":"the pane that appeared","raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something this server does not have"},{"type":"TargetGoneException","doc":"if a command with no {@link SplitSpec.Builder#keepOnExit} exits before the pane it ran in can be read back — see {@link SplitSpec.Builder#running}. tmux still made the pane and ran the command; only this confirming read lost the race."}],"raw":"@Operation(Kind.MUTATION)\n public Pane split(Consumer configure)","typeScopeBoundary":false},{"params":[{"name":"spec","type":"SplitSpec"}],"returns":"Pane","returnsDoc":"the pane that appeared","raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something this server does not have"},{"type":"TargetGoneException","doc":"if a command with no {@link SplitSpec.Builder#keepOnExit} exits before the pane it ran in can be read back — see {@link SplitSpec.Builder#running}. tmux still made the pane and ran the command; only this confirming read lost the race."}],"raw":"@Operation(Kind.MUTATION)\n public Pane split(SplitSpec spec)","typeScopeBoundary":false}],"doc":{"summary":"Splits this pane in half, putting the new one below it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":855,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.split","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.split","product":"core","slug":"io-github-libtmux-pane-pane-split"},{"id":"io.github.libtmux.Pane.Pane.created","name":"created","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"server","type":"Server"},{"name":"previous","type":"ServerSnapshot"},{"name":"argv","type":"List"}],"returns":"Pane","raw":"static Pane created(Server server, ServerSnapshot previous, List argv)","typeScopeBoundary":true}],"doc":{"summary":"Runs a command that reports one new pane, and hands back a handle on it.","body":"The creating command names the pane it made, so the result is exact rather than whichever\npane a fresh listing happens to put last — two splits racing would otherwise be\nindistinguishable."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":903,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.created","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.created","product":"core","slug":"io-github-libtmux-pane-pane-created"},{"id":"io.github.libtmux.Pane.Pane.createdFormat","name":"createdFormat","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"String","raw":"static String createdFormat()","typeScopeBoundary":true}],"doc":{"summary":"The format a creating command reports its new pane through."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":918,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.createdFormat","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.createdFormat","product":"core","slug":"io-github-libtmux-pane-pane-createdformat"},{"id":"io.github.libtmux.Pane.Pane.pasteBuffer","name":"pasteBuffer","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void pasteBuffer(String name)","typeScopeBoundary":false}],"doc":{"summary":"Pastes a named buffer into this pane, as though it had been typed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":923,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.pasteBuffer","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.pasteBuffer","product":"core","slug":"io-github-libtmux-pane-pane-pastebuffer"},{"id":"io.github.libtmux.Pane.Pane.paste","name":"paste","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"text","type":"String"}],"returns":"void","raises":[{"type":"IllegalArgumentException","doc":"if the text contains NUL, which a terminal cannot receive and {@link #send} refuses too"},{"type":"UnsupportedFeatureException","doc":"before tmux 3.4, where deleting the buffer left by a failed paste can remove one this did not create"}],"raw":"@Operation(Kind.MUTATION)\n public void paste(String text)","typeScopeBoundary":false},{"params":[{"name":"text","type":"String"},{"name":"beforePaste","type":"Runnable","doc":"runs after staging and immediately before the paste dispatch"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void paste(String text, Runnable beforePaste)","typeScopeBoundary":false}],"doc":{"summary":"Pastes text into this pane as one block, leaving nothing behind on the server.","body":"Nothing in the text is looked up as a key name, so a line containing {@code Enter} or a\nbracket arrives as those characters. That is what an editor, a REPL, or anything reading a\nhere-document needs, and it is the difference from {@link #send}.\n\ntmux needs a buffer to paste from, and this one travels in the same invocation as the paste\nthat consumes it. A caller that stops in between therefore cannot leave the text in the paste\nhistory every session on the server can read.\n\nThe text goes to tmux on standard input rather than as an argument, so it is not bounded by\nthe size of a tmux command and never reaches tmux's parser."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":953,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.paste","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.paste","product":"core","slug":"io-github-libtmux-pane-pane-paste"},{"id":"io.github.libtmux.Pane.Pane.clearHistory","name":"clearHistory","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void clearHistory()","typeScopeBoundary":false}],"doc":{"summary":"Discards this pane's scrollback."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":1050,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.clearHistory","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.clearHistory","product":"core","slug":"io-github-libtmux-pane-pane-clearhistory"},{"id":"io.github.libtmux.Pane.Pane.swapWith","name":"swapWith","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"other","type":"Pane"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void swapWith(Pane other)","typeScopeBoundary":false}],"doc":{"summary":"Swaps this pane's position with another's."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":1056,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.swapWith","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.swapWith","product":"core","slug":"io-github-libtmux-pane-pane-swapwith"},{"id":"io.github.libtmux.Pane.Pane.joinTo","name":"joinTo","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"window","type":"Window"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void joinTo(Window window)","typeScopeBoundary":false}],"doc":{"summary":"Moves this pane into another window, splitting it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":1066,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.joinTo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.joinTo","product":"core","slug":"io-github-libtmux-pane-pane-jointo"},{"id":"io.github.libtmux.Pane.Pane.kill","name":"kill","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void kill()","typeScopeBoundary":false}],"doc":{"summary":"Closes this pane."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":1076,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.kill","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.kill","product":"core","slug":"io-github-libtmux-pane-pane-kill"},{"id":"io.github.libtmux.Pane.Pane.refresh","name":"refresh","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"Pane","raises":[{"type":"TargetGoneException","doc":"if the pane is gone from a server that still answers"},{"type":"ServerUnavailableException","doc":"if no daemon is running"}],"raw":"@CheckReturnValue\n @Operation(Kind.READ)\n public Pane refresh()","typeScopeBoundary":false}],"doc":{"summary":"Takes a new capture and returns this pane as it is now.","body":"This handle remains unchanged. Use the returned handle for subsequent state reads."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":1090,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.refresh","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.refresh","product":"core","slug":"io-github-libtmux-pane-pane-refresh"},{"id":"io.github.libtmux.Pane.Pane.equals","name":"equals","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[{"name":"other","type":"Object"}],"returns":"boolean","raw":"@Override\n public boolean equals(Object other)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":1101,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.equals","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.equals","product":"core","slug":"io-github-libtmux-pane-pane-equals"},{"id":"io.github.libtmux.Pane.Pane.hashCode","name":"hashCode","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"int","raw":"@Override\n public int hashCode()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":1108,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.hashCode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.hashCode","product":"core","slug":"io-github-libtmux-pane-pane-hashcode"},{"id":"io.github.libtmux.Pane.Pane.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":1113,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.toString","product":"core","slug":"io-github-libtmux-pane-pane-tostring"},{"id":"io.github.libtmux.PaneCommand.PaneCommand","name":"PaneCommand","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"The line typed at a pane's shell to run one command to its end, and how its output is read back.","body":"Completion is not inferred from the screen. The command runs in a subshell whose trap prints an\nend marker carrying {@code $?} and then signals a private {@code wait-for} channel through the\nsame tmux binary and socket, so the wait is tmux's own and the status is the shell's. The trap\ncovers interrupt and terminate as well as exit, so a command someone stops with {@code C-c} ends\nthe run and reports the status it was stopped with — commonly 130 — rather than leaving a wait\nwith nothing to end it.\n\nThe output is cut out by framing: a start marker is printed before the command and the end\nmarker after it, and only lines strictly between them are returned. The shell echoes the whole\ntyped line, which contains both markers — but only inside quotes, never as a line of its own that\nequals a marker, so matching complete marker lines tells plumbing from output even when the echo\nwraps.\n\n{@link Pane#run} is built on this, and it is public for a caller that needs the same framing\naround orchestration of its own — the MCP server holds a pane for other clients while a run is\nuncertain, which the library has no reason to."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand","product":"core","slug":"io-github-libtmux-panecommand-panecommand","typeScopeBoundary":false},{"id":"io.github.libtmux.PaneCommand.PaneCommand.fresh","name":"fresh","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneCommand.PaneCommand","signatures":[{"params":[],"returns":"PaneCommand","raw":"public static PaneCommand fresh()","typeScopeBoundary":true}],"doc":{"summary":"A run with markers and a channel no other run shares."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","line":55,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.fresh","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.fresh","product":"core","slug":"io-github-libtmux-panecommand-panecommand-fresh"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.channel","name":"channel","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneCommand.PaneCommand","signatures":[{"params":[],"returns":"String","raw":"public String channel()","typeScopeBoundary":false}],"doc":{"summary":"The {@code wait-for} channel the typed line signals once the command has ended."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.channel","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.channel","product":"core","slug":"io-github-libtmux-panecommand-panecommand-channel"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.typed","name":"typed","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneCommand.PaneCommand","signatures":[{"params":[{"name":"tmux","type":"List","doc":"the client the pane's shell calls: an absolute binary and its {@code -S} socket"},{"name":"command","type":"String"}],"returns":"String","raw":"public String typed(List tmux, String command)","typeScopeBoundary":false}],"doc":{"summary":"The line to type.","body":"Typed at the pane's own interactive shell rather than a fresh one, so the command sees the\nenvironment a person set up there — a virtualenv, a loaded module, a directory someone changed\ninto. The leading space asks bash ({@code HISTCONTROL=ignorespace}) and zsh ({@code\nHIST_IGNORE_SPACE}) to keep the plumbing out of the history; a shell set to neither records it.\nBuiltins are called as {@code \\\\trap}, {@code \\\\eval} and {@code \\\\exit} so an alias of the same\nname cannot take them over.\n\nThe line begins with that space; strip it to have the shell record the line like any other."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","line":80,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.typed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.typed","product":"core","slug":"io-github-libtmux-panecommand-panecommand-typed"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.frame","name":"frame","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneCommand.PaneCommand","signatures":[{"params":[{"name":"lines","type":"List"}],"returns":"Framed","raw":"public Framed frame(List lines)","typeScopeBoundary":false}],"doc":{"summary":"What lies between the two markers, and the status the end marker carried.","body":"The start marker is matched as a whole row after trimming, the end marker as the end of\none — never by containment, because the echo of the typed line holds both as substrings and\nmust not be mistaken for either. The asymmetry is the shell's: nothing can precede the start\nmarker on its row, since it prints before the command runs, while the command's own last line\nprecedes the end marker whenever it carried no closing newline. That line is output, and is\nreturned as such."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","line":102,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.frame","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.frame","product":"core","slug":"io-github-libtmux-panecommand-panecommand-frame"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.status","name":"status","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneCommand.PaneCommand","signatures":[{"params":[{"name":"line","type":"String"}],"returns":"OptionalInt","raw":"public OptionalInt status(String line)","typeScopeBoundary":false}],"doc":{"summary":"The exit status a row carries at its end, or empty when the row does not end in one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","line":174,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.status","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.status","product":"core","slug":"io-github-libtmux-panecommand-panecommand-status"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.Framed","name":"Framed","kind":"class","modifiers":[],"parent":"io.github.libtmux.PaneCommand.PaneCommand","signatures":[{"raw":"public record Framed(@ReadOnly List lines, boolean exact, OptionalInt status)","params":[{"name":"lines","type":"List","doc":"the command's output"},{"name":"exact","type":"boolean","doc":"whether both markers were found, so the lines are only the command's output"},{"name":"status","type":"OptionalInt","doc":"the exit status, when the end marker was read"}]}],"doc":{"summary":"A run's output as read back from the screen."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","line":199,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.Framed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.Framed","product":"core","slug":"io-github-libtmux-panecommand-panecommand-framed","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneCommand.PaneCommand.Framed.lines","name":"lines","kind":"method","parent":"io.github.libtmux.PaneCommand.PaneCommand.Framed","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the command's output"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.Framed.lines","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.Framed.lines","product":"core","slug":"io-github-libtmux-panecommand-panecommand-framed-lines"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.Framed.exact","name":"exact","kind":"method","parent":"io.github.libtmux.PaneCommand.PaneCommand.Framed","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether both markers were found, so the lines are only the command's output"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.Framed.exact","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.Framed.exact","product":"core","slug":"io-github-libtmux-panecommand-panecommand-framed-exact"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.Framed.status","name":"status","kind":"method","parent":"io.github.libtmux.PaneCommand.PaneCommand.Framed","modifiers":[],"signatures":[{"params":[],"returns":"OptionalInt"}],"doc":{"summary":"the exit status, when the end marker was read"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.Framed.status","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.Framed.status","product":"core","slug":"io-github-libtmux-panecommand-panecommand-framed-status"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.requirePosixShell","name":"requirePosixShell","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneCommand.PaneCommand","signatures":[{"params":[{"name":"current","type":"String"}],"returns":"void","raw":"static void requirePosixShell(String current)","typeScopeBoundary":true}],"doc":{"summary":"Refuses a pane whose shell would not read the typed line as written."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","line":207,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.requirePosixShell","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.requirePosixShell","product":"core","slug":"io-github-libtmux-panecommand-panecommand-requireposixshell"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.quote","name":"quote","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneCommand.PaneCommand","signatures":[{"params":[{"name":"word","type":"String"}],"returns":"String","raw":"static String quote(String word)","typeScopeBoundary":true}],"doc":{"summary":"One word, quoted so a POSIX shell reads it as exactly the text given."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","line":220,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.quote","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.quote","product":"core","slug":"io-github-libtmux-panecommand-panecommand-quote"},{"id":"io.github.libtmux.PaneEcho.PaneEcho","name":"PaneEcho","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Tracks pending and recently submitted input under each server incarnation and pane id."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho","product":"core","slug":"io-github-libtmux-paneecho-paneecho","typeScopeBoundary":false},{"id":"io.github.libtmux.PaneEcho.PaneEcho.Live","name":"Live","kind":"class","modifiers":[],"parent":"io.github.libtmux.PaneEcho.PaneEcho","signatures":[{"raw":"record Live(@ReadOnly List pending, @ReadOnly List recent)","params":[{"name":"pending","type":"List"},{"name":"recent","type":"List"}]}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":48,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.Live","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.Live","product":"core","slug":"io-github-libtmux-paneecho-paneecho-live","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneEcho.PaneEcho.Live.NONE","name":"NONE","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.PaneEcho.PaneEcho.Live","signatures":[],"type":"Live","value":"new Live(List.of(), List.of())","source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.Live.NONE","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.Live.NONE","product":"core","slug":"io-github-libtmux-paneecho-paneecho-live-none","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneEcho.PaneEcho.Live.pending","name":"pending","kind":"method","parent":"io.github.libtmux.PaneEcho.PaneEcho.Live","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.Live.pending","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.Live.pending","product":"core","slug":"io-github-libtmux-paneecho-paneecho-live-pending"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.Live.recent","name":"recent","kind":"method","parent":"io.github.libtmux.PaneEcho.PaneEcho.Live","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.Live.recent","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.Live.recent","product":"core","slug":"io-github-libtmux-paneecho-paneecho-live-recent"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.PaneEcho","name":"PaneEcho","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.PaneEcho.PaneEcho","signatures":[{"params":[],"raw":"PaneEcho()","typeScopeBoundary":false},{"params":[{"name":"nanoTime","type":"LongSupplier"}],"raw":"PaneEcho(LongSupplier nanoTime)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":246,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.PaneEcho","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.PaneEcho","product":"core","slug":"io-github-libtmux-paneecho-paneecho-paneecho"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.Recorded","name":"Recorded","kind":"class","modifiers":["readonly"],"parent":"io.github.libtmux.PaneEcho.PaneEcho","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":254,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.Recorded","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.Recorded","product":"core","slug":"io-github-libtmux-paneecho-paneecho-recorded","typeScopeBoundary":false},{"id":"io.github.libtmux.PaneEcho.PaneEcho.Recorded.confirm","name":"confirm","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneEcho.PaneEcho.Recorded","signatures":[{"params":[],"returns":"void","raw":"void confirm()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":269,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.Recorded.confirm","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.Recorded.confirm","product":"core","slug":"io-github-libtmux-paneecho-paneecho-recorded-confirm"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.Recorded.rollback","name":"rollback","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneEcho.PaneEcho.Recorded","signatures":[{"params":[],"returns":"void","raw":"void rollback()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":297,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.Recorded.rollback","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.Recorded.rollback","product":"core","slug":"io-github-libtmux-paneecho-paneecho-recorded-rollback"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.recordLiteral","name":"recordLiteral","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneEcho.PaneEcho","signatures":[{"params":[{"name":"identity","type":"ServerIdentity"},{"name":"pane","type":"PaneId"},{"name":"text","type":"String"}],"returns":"Recorded","raw":"Recorded recordLiteral(ServerIdentity identity, PaneId pane, String text)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":366,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.recordLiteral","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.recordLiteral","product":"core","slug":"io-github-libtmux-paneecho-paneecho-recordliteral"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.recordKeys","name":"recordKeys","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneEcho.PaneEcho","signatures":[{"params":[{"name":"identity","type":"ServerIdentity"},{"name":"pane","type":"PaneId"},{"name":"keys","type":"List"}],"returns":"Recorded","raw":"Recorded recordKeys(ServerIdentity identity, PaneId pane, List keys)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":370,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.recordKeys","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.recordKeys","product":"core","slug":"io-github-libtmux-paneecho-paneecho-recordkeys"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.size","name":"size","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneEcho.PaneEcho","signatures":[{"params":[],"returns":"int","raw":"int size()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":374,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.size","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.size","product":"core","slug":"io-github-libtmux-paneecho-paneecho-size"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.forget","name":"forget","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneEcho.PaneEcho","signatures":[{"params":[{"name":"identity","type":"ServerIdentity"},{"name":"pane","type":"PaneId"}],"returns":"void","raw":"void forget(ServerIdentity identity, PaneId pane)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":378,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.forget","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.forget","product":"core","slug":"io-github-libtmux-paneecho-paneecho-forget"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.liveFor","name":"liveFor","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneEcho.PaneEcho","signatures":[{"params":[{"name":"identity","type":"ServerIdentity"},{"name":"pane","type":"PaneId"}],"returns":"Live","raw":"Live liveFor(ServerIdentity identity, PaneId pane)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":382,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.liveFor","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.liveFor","product":"core","slug":"io-github-libtmux-paneecho-paneecho-livefor"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.withoutEcho","name":"withoutEcho","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.PaneEcho.PaneEcho","signatures":[{"params":[{"name":"lines","type":"List"},{"name":"echoes","type":"List"}],"returns":"List","raw":"static List withoutEcho(List lines, List echoes)","typeScopeBoundary":true},{"params":[{"name":"lines","type":"List"},{"name":"echo","type":"String"}],"returns":"List","raw":"static List withoutEcho(List lines, String echo)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":396,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.withoutEcho","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.withoutEcho","product":"core","slug":"io-github-libtmux-paneecho-paneecho-withoutecho"},{"id":"io.github.libtmux.PaneEdges.PaneEdges","name":"PaneEdges","kind":"class","modifiers":[],"signatures":[{"raw":"public record PaneEdges(boolean top, boolean bottom, boolean left, boolean right)","params":[{"name":"top","type":"boolean","doc":"whether the pane touches the top of its window"},{"name":"bottom","type":"boolean","doc":"whether it touches the bottom"},{"name":"left","type":"boolean","doc":"whether it touches the left"},{"name":"right","type":"boolean","doc":"whether it touches the right"}]}],"doc":{"summary":"Which sides of its window a pane touches.","body":"Grouped rather than four loose flags, because they are read together to answer one question —\nwhere in the window this pane sits — and four booleans in a row is an invitation to transpose two."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEdges.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEdges","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEdges.PaneEdges","product":"core","slug":"io-github-libtmux-paneedges-paneedges","typeScopeBoundary":false},{"id":"io.github.libtmux.PaneEdges.PaneEdges.fillsWindow","name":"fillsWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneEdges.PaneEdges","signatures":[{"params":[],"returns":"boolean","raw":"public boolean fillsWindow()","typeScopeBoundary":false}],"doc":{"summary":"Whether the pane fills its window, touching every side."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEdges.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEdges.fillsWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEdges.PaneEdges.fillsWindow","product":"core","slug":"io-github-libtmux-paneedges-paneedges-fillswindow"},{"id":"io.github.libtmux.PaneEdges.PaneEdges.top","name":"top","kind":"method","parent":"io.github.libtmux.PaneEdges.PaneEdges","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether the pane touches the top of its window"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEdges.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEdges.top","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEdges.PaneEdges.top","product":"core","slug":"io-github-libtmux-paneedges-paneedges-top"},{"id":"io.github.libtmux.PaneEdges.PaneEdges.bottom","name":"bottom","kind":"method","parent":"io.github.libtmux.PaneEdges.PaneEdges","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether it touches the bottom"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEdges.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEdges.bottom","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEdges.PaneEdges.bottom","product":"core","slug":"io-github-libtmux-paneedges-paneedges-bottom"},{"id":"io.github.libtmux.PaneEdges.PaneEdges.left","name":"left","kind":"method","parent":"io.github.libtmux.PaneEdges.PaneEdges","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether it touches the left"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEdges.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEdges.left","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEdges.PaneEdges.left","product":"core","slug":"io-github-libtmux-paneedges-paneedges-left"},{"id":"io.github.libtmux.PaneEdges.PaneEdges.right","name":"right","kind":"method","parent":"io.github.libtmux.PaneEdges.PaneEdges","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether it touches the right"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEdges.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEdges.right","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEdges.PaneEdges.right","product":"core","slug":"io-github-libtmux-paneedges-paneedges-right"},{"id":"io.github.libtmux.PaneId.PaneId","name":"PaneId","kind":"class","modifiers":[],"signatures":[{"raw":"public record PaneId(String value)","params":[{"name":"value","type":"String","doc":"the id including its {@code %} sigil"}]}],"doc":{"summary":"A tmux pane id, such as {@code %2}.","body":"Stable for the life of the pane, unlike a pane index, which shifts as neighbours come and go."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneId.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneId","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneId.PaneId","product":"core","slug":"io-github-libtmux-paneid-paneid","typeScopeBoundary":false},{"id":"io.github.libtmux.PaneId.PaneId.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneId.PaneId","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneId.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneId.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneId.PaneId.toString","product":"core","slug":"io-github-libtmux-paneid-paneid-tostring"},{"id":"io.github.libtmux.PaneId.PaneId.value","name":"value","kind":"method","parent":"io.github.libtmux.PaneId.PaneId","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the id including its {@code %} sigil"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneId.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneId.value","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneId.PaneId.value","product":"core","slug":"io-github-libtmux-paneid-paneid-value"},{"id":"io.github.libtmux.PaneInput.PaneInput","name":"PaneInput","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"One writer at a time for a pane's keyboard, paste, and shell run.","body":"Those three share one screen. {@link #hold} throws if another thread already has the pane.\nThe same thread may hold it again; the pane is free when the outer hold closes. {@link\nPane#sendKeys}, {@link Pane#sendLiteral}, {@link Pane#paste}, {@link Pane#pasteBuffer}, and {@link\nPane#run} take a hold for the call and release it when they return. A command still running after\n{@code run} returns is not held unless the caller kept {@link #hold} or {@link #holdInterruptible}\naround that call. Raw commands and {@link CommandChain} steps do not take it.\n\n{@link #holdInterruptible} is that longer hold. Another thread may {@link #enterInterrupt} it\nto send a stop, and that entry does not take the pane. Closing the run's lease still releases\nit, including from the thread that notices the command has finished."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput","product":"core","slug":"io-github-libtmux-paneinput-paneinput","typeScopeBoundary":false},{"id":"io.github.libtmux.PaneInput.PaneInput.hold","name":"hold","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneInput.PaneInput","signatures":[{"params":[{"name":"pane","type":"Pane"}],"returns":"Lease","raw":"public static Lease hold(Pane pane)","typeScopeBoundary":true}],"doc":{"summary":"Excludes other threads from this pane until the lease closes. The pane is the one its capture named: the same id on a server started since is another pane, and is not held."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.hold","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.hold","product":"core","slug":"io-github-libtmux-paneinput-paneinput-hold"},{"id":"io.github.libtmux.PaneInput.PaneInput.holdInterruptible","name":"holdInterruptible","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneInput.PaneInput","signatures":[{"params":[{"name":"pane","type":"Pane"}],"returns":"Lease","raw":"public static Lease holdInterruptible(Pane pane)","typeScopeBoundary":true}],"doc":{"summary":"Holds the pane for a command that another thread may have to stop.","body":"The stop uses {@link #enterInterrupt}. Any other attempt to {@link #hold} still fails."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.holdInterruptible","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.holdInterruptible","product":"core","slug":"io-github-libtmux-paneinput-paneinput-holdinterruptible"},{"id":"io.github.libtmux.PaneInput.PaneInput.enterInterrupt","name":"enterInterrupt","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneInput.PaneInput","signatures":[{"params":[{"name":"pane","type":"Pane"}],"returns":"Lease","raw":"public static Lease enterInterrupt(Pane pane)","typeScopeBoundary":true}],"doc":{"summary":"Enters a pane {@link #holdInterruptible} is holding, without taking it.","body":"Closing this lease leaves the run's hold in place. A pane that is free, or held by\n{@link #hold}, refuses the entry."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.enterInterrupt","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.enterInterrupt","product":"core","slug":"io-github-libtmux-paneinput-paneinput-enterinterrupt"},{"id":"io.github.libtmux.PaneInput.PaneInput.heldSince","name":"heldSince","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneInput.PaneInput","signatures":[{"params":[{"name":"pane","type":"Pane"}],"returns":"Optional","returnsDoc":"empty when the pane is not held","raw":"public static Optional heldSince(Pane pane)","typeScopeBoundary":true}],"doc":{"summary":"Reports when the current hold on this pane was acquired, so a lease nothing ever closes can be found from outside the thread holding it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.heldSince","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.heldSince","product":"core","slug":"io-github-libtmux-paneinput-paneinput-heldsince"},{"id":"io.github.libtmux.PaneInput.PaneInput.held","name":"held","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneInput.PaneInput","signatures":[{"params":[],"returns":"List","returnsDoc":"an immutable snapshot, one entry per held pane regardless of how many times its owning thread has re-entered it","raw":"@ReadOnly\n public static List held()","typeScopeBoundary":true}],"doc":{"summary":"Every pane held right now, for diagnosing a lease nothing ever closes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","line":94,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.held","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.held","product":"core","slug":"io-github-libtmux-paneinput-paneinput-held-16tz"},{"id":"io.github.libtmux.PaneInput.PaneInput.Held","name":"Held","kind":"class","modifiers":[],"parent":"io.github.libtmux.PaneInput.PaneInput","signatures":[{"raw":"public record Held(ServerIdentity server, PaneId pane, Instant since, String holdingThread)","params":[{"name":"server","type":"ServerIdentity","doc":"which server's pane this is"},{"name":"pane","type":"PaneId","doc":"the held pane"},{"name":"since","type":"Instant","doc":"when the hold was acquired"},{"name":"holdingThread","type":"String","doc":"the name of the thread that holds it"}]}],"doc":{"summary":"One pane's outstanding hold."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","line":115,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.Held","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.Held","product":"core","slug":"io-github-libtmux-paneinput-paneinput-held-6kxu","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneInput.PaneInput.Held.server","name":"server","kind":"method","parent":"io.github.libtmux.PaneInput.PaneInput.Held","modifiers":[],"signatures":[{"params":[],"returns":"ServerIdentity"}],"doc":{"summary":"which server's pane this is"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.Held.server","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.Held.server","product":"core","slug":"io-github-libtmux-paneinput-paneinput-held-server"},{"id":"io.github.libtmux.PaneInput.PaneInput.Held.pane","name":"pane","kind":"method","parent":"io.github.libtmux.PaneInput.PaneInput.Held","modifiers":[],"signatures":[{"params":[],"returns":"PaneId"}],"doc":{"summary":"the held pane"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.Held.pane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.Held.pane","product":"core","slug":"io-github-libtmux-paneinput-paneinput-held-pane"},{"id":"io.github.libtmux.PaneInput.PaneInput.Held.since","name":"since","kind":"method","parent":"io.github.libtmux.PaneInput.PaneInput.Held","modifiers":[],"signatures":[{"params":[],"returns":"Instant"}],"doc":{"summary":"when the hold was acquired"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.Held.since","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.Held.since","product":"core","slug":"io-github-libtmux-paneinput-paneinput-held-since"},{"id":"io.github.libtmux.PaneInput.PaneInput.Held.holdingThread","name":"holdingThread","kind":"method","parent":"io.github.libtmux.PaneInput.PaneInput.Held","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the name of the thread that holds it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.Held.holdingThread","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.Held.holdingThread","product":"core","slug":"io-github-libtmux-paneinput-paneinput-held-holdingthread"},{"id":"io.github.libtmux.PaneInput.PaneInput.Lease","name":"Lease","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.PaneInput.PaneInput","signatures":[],"doc":{"summary":"Releases one matching hold. Closing twice releases once. Any thread may close it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","line":148,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.Lease","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.Lease","product":"core","slug":"io-github-libtmux-paneinput-paneinput-lease","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneInput.PaneInput.Lease.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneInput.PaneInput.Lease","signatures":[{"params":[],"returns":"void","raw":"@Override\n public void close()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","line":162,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.Lease.close","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.Lease.close","product":"core","slug":"io-github-libtmux-paneinput-paneinput-lease-close"},{"id":"io.github.libtmux.PaneMode.PaneMode","name":"PaneMode","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"A mode a pane can be in, as tmux names them.","body":"A pane in a mode shows something other than its program: its own scrollback, a clock, or one of\nthe choosers. Every mode below exists on each supported release."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode","product":"core","slug":"io-github-libtmux-panemode-panemode","typeScopeBoundary":false},{"id":"io.github.libtmux.PaneMode.PaneMode.COPY","name":"COPY","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[],"doc":{"summary":"Scrollback, navigable and selectable. Entered by {@link Pane#copyMode()}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.COPY","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.COPY","product":"core","slug":"io-github-libtmux-panemode-panemode-copy","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneMode.PaneMode.VIEW","name":"VIEW","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[],"doc":{"summary":"Scrollback without the selection commands.","body":"tmux enters this itself, for the output of a command it was asked to display; no command\nhere puts a pane into it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.VIEW","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.VIEW","product":"core","slug":"io-github-libtmux-panemode-panemode-view","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneMode.PaneMode.CLOCK","name":"CLOCK","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[],"doc":{"summary":"A clock, entered by tmux's {@code clock-mode}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.CLOCK","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.CLOCK","product":"core","slug":"io-github-libtmux-panemode-panemode-clock","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneMode.PaneMode.TREE","name":"TREE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[],"doc":{"summary":"The session and window browser, which the window finder also opens."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.TREE","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.TREE","product":"core","slug":"io-github-libtmux-panemode-panemode-tree","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneMode.PaneMode.CLIENT","name":"CLIENT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[],"doc":{"summary":"The attached-client browser."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.CLIENT","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.CLIENT","product":"core","slug":"io-github-libtmux-panemode-panemode-client","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneMode.PaneMode.BUFFER","name":"BUFFER","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[],"doc":{"summary":"The paste-buffer browser."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.BUFFER","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.BUFFER","product":"core","slug":"io-github-libtmux-panemode-panemode-buffer","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneMode.PaneMode.OPTIONS","name":"OPTIONS","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[],"doc":{"summary":"The option browser, entered by tmux's {@code customize-mode}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.OPTIONS","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.OPTIONS","product":"core","slug":"io-github-libtmux-panemode-panemode-options","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneMode.PaneMode.PaneMode","name":"PaneMode","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[{"params":[{"name":"reported","type":"String"}],"raw":"PaneMode(String reported)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":42,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.PaneMode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.PaneMode","product":"core","slug":"io-github-libtmux-panemode-panemode-panemode"},{"id":"io.github.libtmux.PaneMode.PaneMode.reported","name":"reported","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[{"params":[],"returns":"String","raw":"public String reported()","typeScopeBoundary":false}],"doc":{"summary":"What tmux calls it, which is what {@code #{pane_mode}} expands to."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.reported","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.reported","product":"core","slug":"io-github-libtmux-panemode-panemode-reported"},{"id":"io.github.libtmux.PaneMode.PaneMode.of","name":"of","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[{"params":[{"name":"reported","type":"String"}],"returns":"PaneMode","raises":[{"type":"LibTmuxException","doc":"if this tmux named a mode this release range does not have"}],"raw":"static PaneMode of(String reported)","typeScopeBoundary":true}],"doc":{"summary":"Reads what tmux reported."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.of","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.of","product":"core","slug":"io-github-libtmux-panemode-panemode-of"},{"id":"io.github.libtmux.PanePosition.PanePosition","name":"PanePosition","kind":"class","modifiers":[],"signatures":[{"raw":"public record PanePosition(int left, int top)","params":[{"name":"left","type":"int","doc":"columns from the window's left edge"},{"name":"top","type":"int","doc":"rows from the window's top edge"}]}],"doc":{"summary":"Where a pane's top-left corner sits in its window, in terminal cells.","body":"A pair rather than two loose numbers, for the reason {@link Dimensions} gives: read together,\nand a call site that took them separately could transpose them without the compiler noticing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PanePosition.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PanePosition","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PanePosition.PanePosition","product":"core","slug":"io-github-libtmux-paneposition-paneposition","typeScopeBoundary":false},{"id":"io.github.libtmux.PanePosition.PanePosition.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.PanePosition.PanePosition","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PanePosition.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PanePosition.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PanePosition.PanePosition.toString","product":"core","slug":"io-github-libtmux-paneposition-paneposition-tostring"},{"id":"io.github.libtmux.PanePosition.PanePosition.left","name":"left","kind":"method","parent":"io.github.libtmux.PanePosition.PanePosition","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"columns from the window's left edge"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PanePosition.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PanePosition.left","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PanePosition.PanePosition.left","product":"core","slug":"io-github-libtmux-paneposition-paneposition-left"},{"id":"io.github.libtmux.PanePosition.PanePosition.top","name":"top","kind":"method","parent":"io.github.libtmux.PanePosition.PanePosition","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"rows from the window's top edge"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PanePosition.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PanePosition.top","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PanePosition.PanePosition.top","product":"core","slug":"io-github-libtmux-paneposition-paneposition-top"},{"id":"io.github.libtmux.PaneRun.PaneRun","name":"PaneRun","kind":"class","modifiers":[],"signatures":[{"raw":"public record PaneRun(\n Outcome outcome, OptionalInt exitStatus, @ReadOnly List output, boolean exact)","params":[{"name":"outcome","type":"Outcome","doc":"why the wait ended"},{"name":"exitStatus","type":"OptionalInt","doc":"the command's exit status, present once it finished and its end was read"},{"name":"output","type":"List","doc":"what the command printed, one element per line, without the plumbing around it. Lines tmux wrapped are rejoined"},{"name":"exact","type":"boolean","doc":"whether the output was cut out between both of its markers, so it is the command's and nothing else. False when the output outgrew the pane's history or the command cleared the screen, or when the command had not finished by the deadline"}]}],"doc":{"summary":"How a command run in a pane with {@link Pane#run} ended, and what it printed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun","product":"core","slug":"io-github-libtmux-panerun-panerun","typeScopeBoundary":false},{"id":"io.github.libtmux.PaneRun.PaneRun.Outcome","name":"Outcome","kind":"enum","modifiers":[],"parent":"io.github.libtmux.PaneRun.PaneRun","signatures":[],"doc":{"summary":"Why a run's wait ended."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun.Outcome","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun.Outcome","product":"core","slug":"io-github-libtmux-panerun-panerun-outcome","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneRun.PaneRun.Outcome.FINISHED","name":"FINISHED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneRun.PaneRun.Outcome","signatures":[],"doc":{"summary":"The command ended; its status is in {@link #exitStatus()}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun.Outcome.FINISHED","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun.Outcome.FINISHED","product":"core","slug":"io-github-libtmux-panerun-panerun-outcome-finished","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneRun.PaneRun.Outcome.TIMED_OUT","name":"TIMED_OUT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneRun.PaneRun.Outcome","signatures":[],"doc":{"summary":"The deadline passed with the command still running. The output is what it had printed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun.Outcome.TIMED_OUT","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun.Outcome.TIMED_OUT","product":"core","slug":"io-github-libtmux-panerun-panerun-outcome-timed_out","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneRun.PaneRun.Outcome.SERVER_GONE","name":"SERVER_GONE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneRun.PaneRun.Outcome","signatures":[],"doc":{"summary":"The server went away underneath the command, so nothing about it can be relied on."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun.Outcome.SERVER_GONE","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun.Outcome.SERVER_GONE","product":"core","slug":"io-github-libtmux-panerun-panerun-outcome-server_gone","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneRun.PaneRun.succeeded","name":"succeeded","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneRun.PaneRun","signatures":[{"params":[],"returns":"boolean","raw":"public boolean succeeded()","typeScopeBoundary":false}],"doc":{"summary":"Whether the command finished with status zero."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun.succeeded","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun.succeeded","product":"core","slug":"io-github-libtmux-panerun-panerun-succeeded"},{"id":"io.github.libtmux.PaneRun.PaneRun.outcome","name":"outcome","kind":"method","parent":"io.github.libtmux.PaneRun.PaneRun","modifiers":[],"signatures":[{"params":[],"returns":"Outcome"}],"doc":{"summary":"why the wait ended"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun.outcome","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun.outcome","product":"core","slug":"io-github-libtmux-panerun-panerun-outcome-3ji4"},{"id":"io.github.libtmux.PaneRun.PaneRun.exitStatus","name":"exitStatus","kind":"method","parent":"io.github.libtmux.PaneRun.PaneRun","modifiers":[],"signatures":[{"params":[],"returns":"OptionalInt"}],"doc":{"summary":"the command's exit status, present once it finished and its end was read"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun.exitStatus","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun.exitStatus","product":"core","slug":"io-github-libtmux-panerun-panerun-exitstatus"},{"id":"io.github.libtmux.PaneRun.PaneRun.output","name":"output","kind":"method","parent":"io.github.libtmux.PaneRun.PaneRun","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"what the command printed, one element per line, without the plumbing around it. Lines tmux wrapped are rejoined"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun.output","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun.output","product":"core","slug":"io-github-libtmux-panerun-panerun-output"},{"id":"io.github.libtmux.PaneRun.PaneRun.exact","name":"exact","kind":"method","parent":"io.github.libtmux.PaneRun.PaneRun","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether the output was cut out between both of its markers, so it is the command's and nothing else. False when the output outgrew the pane's history or the command cleared the screen, or when the command had not finished by the deadline"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun.exact","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun.exact","product":"core","slug":"io-github-libtmux-panerun-panerun-exact"},{"id":"io.github.libtmux.PaneSize.PaneSize","name":"PaneSize","kind":"interface","modifiers":[],"signatures":[],"doc":{"summary":"How big a new pane should be.","body":"One value with two spellings, not a size and a percentage. tmux takes both through {@code -l},\nso there is no pair of fields to hold consistent and no \"both were given\" error to raise — the\nPython sibling's {@code size}/{@code percentage} pair and the {@code ValueError} guarding it both\ndisappear.\n\ntmux's own {@code -p} flag is never emitted. It is broken in 3.4, which reads the {@code -l}\nargument while handling {@code -p} and fails with {@code size missing}; {@code -l 25%} produces the\nsame pane on every supported release."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneSize.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneSize","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneSize.PaneSize","product":"core","slug":"io-github-libtmux-panesize-panesize","typeScopeBoundary":false},{"id":"io.github.libtmux.PaneSize.PaneSize.Cells","name":"Cells","kind":"class","modifiers":[],"parent":"io.github.libtmux.PaneSize.PaneSize","signatures":[{"raw":"record Cells(int count) implements PaneSize","params":[{"name":"count","type":"int"}]}],"doc":{"summary":"A size in terminal cells."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneSize.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneSize.Cells","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneSize.PaneSize.Cells","product":"core","slug":"io-github-libtmux-panesize-panesize-cells-csva","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneSize.PaneSize.Cells.count","name":"count","kind":"method","parent":"io.github.libtmux.PaneSize.PaneSize.Cells","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneSize.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneSize.Cells.count","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneSize.PaneSize.Cells.count","product":"core","slug":"io-github-libtmux-panesize-panesize-cells-count"},{"id":"io.github.libtmux.PaneSize.PaneSize.Percent","name":"Percent","kind":"class","modifiers":[],"parent":"io.github.libtmux.PaneSize.PaneSize","signatures":[{"raw":"record Percent(int share) implements PaneSize","params":[{"name":"share","type":"int"}]}],"doc":{"summary":"A share of what is being split."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneSize.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneSize.Percent","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneSize.PaneSize.Percent","product":"core","slug":"io-github-libtmux-panesize-panesize-percent-30sw","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneSize.PaneSize.Percent.share","name":"share","kind":"method","parent":"io.github.libtmux.PaneSize.PaneSize.Percent","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneSize.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneSize.Percent.share","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneSize.PaneSize.Percent.share","product":"core","slug":"io-github-libtmux-panesize-panesize-percent-share"},{"id":"io.github.libtmux.PaneSize.PaneSize.cells","name":"cells","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneSize.PaneSize","signatures":[{"params":[{"name":"count","type":"int"}],"returns":"PaneSize","raw":"static PaneSize cells(int count)","typeScopeBoundary":true}],"doc":{"summary":"A size in terminal cells."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneSize.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneSize.cells","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneSize.PaneSize.cells","product":"core","slug":"io-github-libtmux-panesize-panesize-cells-11uj"},{"id":"io.github.libtmux.PaneSize.PaneSize.percent","name":"percent","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneSize.PaneSize","signatures":[{"params":[{"name":"share","type":"int"}],"returns":"PaneSize","raw":"static PaneSize percent(int share)","typeScopeBoundary":true}],"doc":{"summary":"A share of what is being split, between 1 and 100."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneSize.java","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneSize.percent","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneSize.PaneSize.percent","product":"core","slug":"io-github-libtmux-panesize-panesize-percent-1ojv"},{"id":"io.github.libtmux.PaneSize.PaneSize.flagValue","name":"flagValue","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneSize.PaneSize","signatures":[{"params":[],"returns":"String","raw":"default String flagValue()","typeScopeBoundary":false}],"doc":{"summary":"What follows {@code -l}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneSize.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneSize.flagValue","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneSize.PaneSize.flagValue","product":"core","slug":"io-github-libtmux-panesize-panesize-flagvalue"},{"id":"io.github.libtmux.PaneStart.PaneStart","name":"PaneStart","kind":"interface","modifiers":[],"signatures":[],"doc":{"summary":"What runs in a new pane.","body":"One choice rather than a command field beside an emptiness flag. tmux refuses the pair —\n{@code command cannot be given for empty pane} — and refuses it before spawning anything, so the\ncombination is not a state the server will ever be in. Sealing it means no value can carry both."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneStart.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneStart","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneStart.PaneStart","product":"core","slug":"io-github-libtmux-panestart-panestart","typeScopeBoundary":false},{"id":"io.github.libtmux.PaneStart.PaneStart.Shell","name":"Shell","kind":"class","modifiers":[],"parent":"io.github.libtmux.PaneStart.PaneStart","signatures":[{"raw":"record Shell() implements PaneStart","params":[]}],"doc":{"summary":"Whatever the session's {@code default-command} or shell is."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneStart.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneStart.Shell","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneStart.PaneStart.Shell","product":"core","slug":"io-github-libtmux-panestart-panestart-shell-x755","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneStart.PaneStart.Command","name":"Command","kind":"class","modifiers":[],"parent":"io.github.libtmux.PaneStart.PaneStart","signatures":[{"raw":"record Command(@ReadOnly List argv) implements PaneStart","params":[{"name":"argv","type":"List","doc":"the command and its arguments"}]}],"doc":{"summary":"A command, which closes the pane when it exits unless the pane is kept."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneStart.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneStart.Command","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneStart.PaneStart.Command","product":"core","slug":"io-github-libtmux-panestart-panestart-command-o9ni","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneStart.PaneStart.Command.argv","name":"argv","kind":"method","parent":"io.github.libtmux.PaneStart.PaneStart.Command","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the command and its arguments"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneStart.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneStart.Command.argv","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneStart.PaneStart.Command.argv","product":"core","slug":"io-github-libtmux-panestart-panestart-command-argv"},{"id":"io.github.libtmux.PaneStart.PaneStart.Empty","name":"Empty","kind":"class","modifiers":[],"parent":"io.github.libtmux.PaneStart.PaneStart","signatures":[{"raw":"record Empty() implements PaneStart","params":[]}],"doc":{"summary":"No process at all. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneStart.java","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneStart.Empty","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneStart.PaneStart.Empty","product":"core","slug":"io-github-libtmux-panestart-panestart-empty-1qmp","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneStart.PaneStart.shell","name":"shell","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneStart.PaneStart","signatures":[{"params":[],"returns":"PaneStart","raw":"static PaneStart shell()","typeScopeBoundary":true}],"doc":{"summary":"Whatever the session's shell is."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneStart.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneStart.shell","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneStart.PaneStart.shell","product":"core","slug":"io-github-libtmux-panestart-panestart-shell-kfg3"},{"id":"io.github.libtmux.PaneStart.PaneStart.command","name":"command","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneStart.PaneStart","signatures":[{"params":[{"name":"argv","type":"String","variadic":"positional"}],"returns":"PaneStart","raw":"static PaneStart command(String... argv)","typeScopeBoundary":true}],"doc":{"summary":"A command, which closes the pane when it exits unless the pane is kept."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneStart.java","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneStart.command","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneStart.PaneStart.command","product":"core","slug":"io-github-libtmux-panestart-panestart-command-vfqq"},{"id":"io.github.libtmux.PaneStart.PaneStart.empty","name":"empty","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneStart.PaneStart","signatures":[{"params":[],"returns":"PaneStart","raw":"static PaneStart empty()","typeScopeBoundary":true}],"doc":{"summary":"No process at all. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneStart.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneStart.empty","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneStart.PaneStart.empty","product":"core","slug":"io-github-libtmux-panestart-panestart-empty-1dv0"},{"id":"io.github.libtmux.PaneWait.PaneWait","name":"PaneWait","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Polls a pane on a timer for {@link Pane#awaitText} and {@link Pane#await}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneWait.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneWait","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneWait.PaneWait","product":"core","slug":"io-github-libtmux-panewait-panewait","typeScopeBoundary":false},{"id":"io.github.libtmux.PaneWait.PaneWait.POLL","name":"POLL","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.PaneWait.PaneWait","signatures":[],"type":"Duration","value":"Duration.ofMillis(50)","doc":{"summary":"How often a wait looks again.","body":"Short enough that a wait reports promptly, long enough that a wait held open for minutes\nis not thousands of tmux invocations. A caller who needs an exact moment wants a signal on a\n{@link Channel}, not a shorter interval here."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneWait.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneWait.POLL","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneWait.PaneWait.POLL","product":"core","slug":"io-github-libtmux-panewait-panewait-poll","typeScopeBoundary":true},{"id":"io.github.libtmux.PaneWait.PaneWait.awaitText","name":"awaitText","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneWait.PaneWait","signatures":[{"params":[{"name":"pane","type":"Pane"},{"name":"text","type":"String"},{"name":"timeout","type":"Duration"},{"name":"every","type":"Duration"}],"returns":"TextOutcome","raw":"static TextOutcome awaitText(Pane pane, String text, Duration timeout, Duration every) throws InterruptedException","typeScopeBoundary":true}],"doc":{"summary":"{@link Pane#awaitText(String, Duration, Duration)}'s implementation."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneWait.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneWait.awaitText","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneWait.PaneWait.awaitText","product":"core","slug":"io-github-libtmux-panewait-panewait-awaittext"},{"id":"io.github.libtmux.PaneWait.PaneWait.await","name":"await","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneWait.PaneWait","signatures":[{"params":[{"name":"pane","type":"Pane"},{"name":"settled","type":"Predicate"},{"name":"timeout","type":"Duration"},{"name":"every","type":"Duration"}],"returns":"WakeReason","raw":"static WakeReason await(Pane pane, Predicate settled, Duration timeout, Duration every)\n throws InterruptedException","typeScopeBoundary":true}],"doc":{"summary":"{@link Pane#await(Predicate, Duration, Duration)}'s implementation."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneWait.java","line":60,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneWait.await","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneWait.PaneWait.await","product":"core","slug":"io-github-libtmux-panewait-panewait-await"},{"id":"io.github.libtmux.PrintedText.PrintedText","name":"PrintedText","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Decodes tmux's printed output against the version the server actually reports, framed with process-local markers so a reply is read back exactly whatever quirks that version's own printing has."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PrintedText.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PrintedText","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PrintedText.PrintedText","product":"core","slug":"io-github-libtmux-printedtext-printedtext","typeScopeBoundary":false},{"id":"io.github.libtmux.PrintedText.PrintedText.END_MARK","name":"END_MARK","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.PrintedText.PrintedText","signatures":[],"type":"String","value":"Tokens.perProcess() + \"-end\"","doc":{"summary":"Printed after what a command printed. tmux ends its output with a line break and the transport drops trailing blank lines, so text that itself ends in line breaks would lose them; with this after it, nothing trailing is blank."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PrintedText.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PrintedText.END_MARK","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PrintedText.PrintedText.END_MARK","product":"core","slug":"io-github-libtmux-printedtext-printedtext-end_mark","typeScopeBoundary":true},{"id":"io.github.libtmux.PrintedText.PrintedText.expansion","name":"expansion","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PrintedText.PrintedText","signatures":[{"params":[{"name":"format","type":"String"}],"returns":"String","raw":"static String expansion(String format)","typeScopeBoundary":true}],"doc":{"summary":"A format for {@code display-message -p} that {@link #printed(List)} reads back exactly."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PrintedText.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PrintedText.expansion","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PrintedText.PrintedText.expansion","product":"core","slug":"io-github-libtmux-printedtext-printedtext-expansion"},{"id":"io.github.libtmux.PrintedText.PrintedText.versioned","name":"versioned","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PrintedText.PrintedText","signatures":[{"params":[{"name":"format","type":"String"}],"returns":"String","raw":"static String versioned(String format)","typeScopeBoundary":true}],"doc":{"summary":"This format with the server's version expanded ahead of it, so the reply can be decoded without another tmux process. See {@link TmuxFormats#printed(String, TmuxVersion)}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PrintedText.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PrintedText.versioned","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PrintedText.PrintedText.versioned","product":"core","slug":"io-github-libtmux-printedtext-printedtext-versioned"},{"id":"io.github.libtmux.PrintedText.PrintedText.printed","name":"printed","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PrintedText.PrintedText","signatures":[{"params":[{"name":"reported","type":"List"}],"returns":"String","raw":"static String printed(List reported)","typeScopeBoundary":true}],"doc":{"summary":"The expansion of a {@link #versioned} format, as tmux held the text."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PrintedText.java","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PrintedText.printed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PrintedText.PrintedText.printed","product":"core","slug":"io-github-libtmux-printedtext-printedtext-printed"},{"id":"io.github.libtmux.PrintedText.PrintedText.printedRows","name":"printedRows","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PrintedText.PrintedText","signatures":[{"params":[{"name":"rows","type":"List"}],"returns":"List","raw":"static List printedRows(List rows)","typeScopeBoundary":true}],"doc":{"summary":"As {@link #printed(List)}, for a listing whose every row began with {@link #versioned}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PrintedText.java","line":57,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PrintedText.printedRows","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PrintedText.PrintedText.printedRows","product":"core","slug":"io-github-libtmux-printedtext-printedtext-printedrows"},{"id":"io.github.libtmux.PrintedText.PrintedText.framed","name":"framed","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PrintedText.PrintedText","signatures":[{"params":[{"name":"argv","type":"List"}],"returns":"List>","raw":"static List> framed(List argv)","typeScopeBoundary":true}],"doc":{"summary":"The three commands {@link Server#printed(io.github.libtmux.snapshot.ServerSnapshot, List)} sends as one group."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PrintedText.java","line":66,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PrintedText.framed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PrintedText.PrintedText.framed","product":"core","slug":"io-github-libtmux-printedtext-printedtext-framed"},{"id":"io.github.libtmux.PrintedText.PrintedText.unwrap","name":"unwrap","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PrintedText.PrintedText","signatures":[{"params":[{"name":"result","type":"CommandResult"}],"returns":"CommandResult","raw":"static CommandResult unwrap(CommandResult result)","typeScopeBoundary":true}],"doc":{"summary":"Strips the version line and end mark {@link #framed} added, decoding what is left."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PrintedText.java","line":72,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PrintedText.unwrap","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PrintedText.PrintedText.unwrap","product":"core","slug":"io-github-libtmux-printedtext-printedtext-unwrap"},{"id":"io.github.libtmux.Prompt.Prompt","name":"Prompt","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"The server's command-prompt history.","body":"Whether the commands exist is asked of the daemon, not inferred from a version string."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Prompt.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Prompt","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Prompt.Prompt","product":"core","slug":"io-github-libtmux-prompt-prompt","typeScopeBoundary":false},{"id":"io.github.libtmux.Prompt.Prompt.Prompt","name":"Prompt","kind":"method","modifiers":[],"parent":"io.github.libtmux.Prompt.Prompt","signatures":[{"params":[{"name":"server","type":"Server"}],"raw":"Prompt(Server server)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Prompt.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Prompt.Prompt","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Prompt.Prompt.Prompt","product":"core","slug":"io-github-libtmux-prompt-prompt-prompt"},{"id":"io.github.libtmux.Prompt.Prompt.history","name":"history","kind":"method","modifiers":[],"parent":"io.github.libtmux.Prompt.Prompt","signatures":[{"params":[],"returns":"List","raises":[{"type":"UnsupportedFeatureException","doc":"if this tmux has no such command"}],"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List history()","typeScopeBoundary":false}],"doc":{"summary":"What has been typed at the prompt, oldest first."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Prompt.java","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Prompt.history","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Prompt.Prompt.history","product":"core","slug":"io-github-libtmux-prompt-prompt-history"},{"id":"io.github.libtmux.Prompt.Prompt.clear","name":"clear","kind":"method","modifiers":[],"parent":"io.github.libtmux.Prompt.Prompt","signatures":[{"params":[],"returns":"void","raises":[{"type":"UnsupportedFeatureException","doc":"if this tmux has no such command"}],"raw":"@Operation(Kind.MUTATION)\n public void clear()","typeScopeBoundary":false}],"doc":{"summary":"Forgets what has been typed at the prompt."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Prompt.java","line":42,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Prompt.clear","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Prompt.Prompt.clear","product":"core","slug":"io-github-libtmux-prompt-prompt-clear"},{"id":"io.github.libtmux.query.FieldKind.FieldKind","name":"FieldKind","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"The value kind a field reads.","body":"Carried explicitly because exactness must not rest on the operand's runtime class. A number\nfield's operand happens to box to {@code Integer}, and reading the kind off that accident would\nsilently pick tmux's lexical comparison where the caller meant arithmetic."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldKind.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldKind","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldKind.FieldKind","product":"core","slug":"io-github-libtmux-query-fieldkind-fieldkind","typeScopeBoundary":false},{"id":"io.github.libtmux.query.FieldKind.FieldKind.TEXT","name":"TEXT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.FieldKind.FieldKind","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldKind.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldKind.TEXT","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldKind.FieldKind.TEXT","product":"core","slug":"io-github-libtmux-query-fieldkind-fieldkind-text","typeScopeBoundary":true},{"id":"io.github.libtmux.query.FieldKind.FieldKind.NUMBER","name":"NUMBER","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.FieldKind.FieldKind","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldKind.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldKind.NUMBER","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldKind.FieldKind.NUMBER","product":"core","slug":"io-github-libtmux-query-fieldkind-fieldkind-number","typeScopeBoundary":true},{"id":"io.github.libtmux.query.FieldKind.FieldKind.FLAG","name":"FLAG","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.FieldKind.FieldKind","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldKind.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldKind.FLAG","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldKind.FieldKind.FLAG","product":"core","slug":"io-github-libtmux-query-fieldkind-fieldkind-flag","typeScopeBoundary":true},{"id":"io.github.libtmux.query.FieldRef.FieldRef","name":"FieldRef","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"A named, kinded accessor.","body":"The name makes a built expression printable; the kind makes consumers independent of the\noperand's runtime class. A serializer or compiler must bind the exact handle against its own\nmodel before trusting the name to describe what the accessor reads."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldRef.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldRef","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldRef.FieldRef","product":"core","slug":"io-github-libtmux-query-fieldref-fieldref","typeParams":["T","V"],"typeParamNames":["T","V"],"typeScopeBoundary":false},{"id":"io.github.libtmux.query.FieldRef.FieldRef.FieldRef","name":"FieldRef","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FieldRef.FieldRef","signatures":[{"params":[{"name":"id","type":"String"},{"name":"kind","type":"FieldKind"},{"name":"accessor","type":"Function"}],"raw":"FieldRef(String id, FieldKind kind, Function accessor)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldRef.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldRef.FieldRef","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldRef.FieldRef.FieldRef","product":"core","slug":"io-github-libtmux-query-fieldref-fieldref-fieldref"},{"id":"io.github.libtmux.query.FieldRef.FieldRef.requireId","name":"requireId","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.FieldRef.FieldRef","signatures":[{"params":[{"name":"id","type":"String"}],"returns":"String","raw":"static String requireId(String id)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldRef.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldRef.requireId","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldRef.FieldRef.requireId","product":"core","slug":"io-github-libtmux-query-fieldref-fieldref-requireid"},{"id":"io.github.libtmux.query.FieldRef.FieldRef.id","name":"id","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FieldRef.FieldRef","signatures":[{"params":[],"returns":"String","raw":"public String id()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldRef.java","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldRef.id","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldRef.FieldRef.id","product":"core","slug":"io-github-libtmux-query-fieldref-fieldref-id"},{"id":"io.github.libtmux.query.FieldRef.FieldRef.kind","name":"kind","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FieldRef.FieldRef","signatures":[{"params":[],"returns":"FieldKind","raw":"public FieldKind kind()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldRef.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldRef.kind","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldRef.FieldRef.kind","product":"core","slug":"io-github-libtmux-query-fieldref-fieldref-kind"},{"id":"io.github.libtmux.query.FieldRef.FieldRef.accessor","name":"accessor","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FieldRef.FieldRef","signatures":[{"params":[],"returns":"Function","raw":"public Function accessor()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldRef.java","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldRef.accessor","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldRef.FieldRef.accessor","product":"core","slug":"io-github-libtmux-query-fieldref-fieldref-accessor"},{"id":"io.github.libtmux.query.Fields.Fields","name":"Fields","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Typed field handles.","body":"A caller supplies each accessor, so no backend may trust the name without matching this exact\nhandle against a model it owns.\n\nEach kind exposes only the operators its type supports, so {@code Pane_.index().startsWith(..)}\nis a compile error rather than a runtime class cast. This is the half of the metamodel that has to\nexist by hand or by generator; the generator only writes the accessors, never the semantics."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields","product":"core","slug":"io-github-libtmux-query-fields-fields","typeScopeBoundary":false},{"id":"io.github.libtmux.query.Fields.Fields.text","name":"text","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[{"params":[{"name":"id","type":"String"},{"name":"accessor","type":"Function"}],"returns":"TextField","typeParams":["T"],"raw":"public static TextField text(String id, Function accessor)","typeParamNames":["T"],"typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.text","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.text","product":"core","slug":"io-github-libtmux-query-fields-fields-text"},{"id":"io.github.libtmux.query.Fields.Fields.number","name":"number","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[{"params":[{"name":"id","type":"String"},{"name":"accessor","type":"Function"}],"returns":"NumberField","typeParams":["T"],"raw":"public static NumberField number(String id, Function accessor)","typeParamNames":["T"],"typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.number","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.number","product":"core","slug":"io-github-libtmux-query-fields-fields-number"},{"id":"io.github.libtmux.query.Fields.Fields.flag","name":"flag","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[{"params":[{"name":"id","type":"String"},{"name":"accessor","type":"Function"}],"returns":"FlagField","typeParams":["T"],"raw":"public static FlagField flag(String id, Function accessor)","typeParamNames":["T"],"typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.flag","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.flag","product":"core","slug":"io-github-libtmux-query-fields-fields-flag"},{"id":"io.github.libtmux.query.Fields.Fields.toMany","name":"toMany","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[{"params":[{"name":"id","type":"String"},{"name":"navigate","type":"Function>"}],"returns":"ToManyRef","typeParams":["T","R"],"raw":"public static ToManyRef toMany(String id, Function> navigate)","typeParamNames":["T","R"],"typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.toMany","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.toMany","product":"core","slug":"io-github-libtmux-query-fields-fields-tomany"},{"id":"io.github.libtmux.query.Fields.Fields.toOne","name":"toOne","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[{"params":[{"name":"id","type":"String"},{"name":"navigate","type":"Function>"}],"returns":"ToOneRef","typeParams":["T","R"],"raw":"public static ToOneRef toOne(String id, Function> navigate)","typeParamNames":["T","R"],"typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.toOne","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.toOne","product":"core","slug":"io-github-libtmux-query-fields-fields-toone"},{"id":"io.github.libtmux.query.Fields.Fields.TextField","name":"TextField","kind":"class","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[{"raw":"public record TextField(FieldRef ref)","params":[{"name":"ref","type":"FieldRef"}],"typeParams":["T"],"typeParamNames":["T"]}],"doc":{"summary":"String-valued field."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":45,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.TextField","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.TextField","product":"core","slug":"io-github-libtmux-query-fields-fields-textfield","typeParams":["T"],"typeParamNames":["T"],"typeScopeBoundary":true},{"id":"io.github.libtmux.query.Fields.Fields.TextField.is","name":"is","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.TextField","signatures":[{"params":[{"name":"value","type":"String"}],"returns":"FilterExpr","raw":"public FilterExpr is(String value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.TextField.is","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.TextField.is","product":"core","slug":"io-github-libtmux-query-fields-fields-textfield-is"},{"id":"io.github.libtmux.query.Fields.Fields.TextField.isNot","name":"isNot","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.TextField","signatures":[{"params":[{"name":"value","type":"String"}],"returns":"FilterExpr","raw":"public FilterExpr isNot(String value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.TextField.isNot","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.TextField.isNot","product":"core","slug":"io-github-libtmux-query-fields-fields-textfield-isnot"},{"id":"io.github.libtmux.query.Fields.Fields.TextField.contains","name":"contains","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.TextField","signatures":[{"params":[{"name":"value","type":"String"}],"returns":"FilterExpr","raw":"public FilterExpr contains(String value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":55,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.TextField.contains","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.TextField.contains","product":"core","slug":"io-github-libtmux-query-fields-fields-textfield-contains"},{"id":"io.github.libtmux.query.Fields.Fields.TextField.startsWith","name":"startsWith","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.TextField","signatures":[{"params":[{"name":"value","type":"String"}],"returns":"FilterExpr","raw":"public FilterExpr startsWith(String value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.TextField.startsWith","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.TextField.startsWith","product":"core","slug":"io-github-libtmux-query-fields-fields-textfield-startswith"},{"id":"io.github.libtmux.query.Fields.Fields.TextField.endsWith","name":"endsWith","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.TextField","signatures":[{"params":[{"name":"value","type":"String"}],"returns":"FilterExpr","raw":"public FilterExpr endsWith(String value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.TextField.endsWith","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.TextField.endsWith","product":"core","slug":"io-github-libtmux-query-fields-fields-textfield-endswith"},{"id":"io.github.libtmux.query.Fields.Fields.TextField.matches","name":"matches","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.TextField","signatures":[{"params":[{"name":"value","type":"Pattern"}],"returns":"FilterExpr","raw":"public FilterExpr matches(Pattern value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":67,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.TextField.matches","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.TextField.matches","product":"core","slug":"io-github-libtmux-query-fields-fields-textfield-matches"},{"id":"io.github.libtmux.query.Fields.Fields.TextField.in","name":"in","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.TextField","signatures":[{"params":[{"name":"values","type":"Collection"}],"returns":"FilterExpr","raw":"public FilterExpr in(Collection values)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":71,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.TextField.in","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.TextField.in","product":"core","slug":"io-github-libtmux-query-fields-fields-textfield-in"},{"id":"io.github.libtmux.query.Fields.Fields.TextField.ref","name":"ref","kind":"method","parent":"io.github.libtmux.query.Fields.Fields.TextField","modifiers":[],"signatures":[{"params":[],"returns":"FieldRef"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.TextField.ref","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.TextField.ref","product":"core","slug":"io-github-libtmux-query-fields-fields-textfield-ref"},{"id":"io.github.libtmux.query.Fields.Fields.NumberField","name":"NumberField","kind":"class","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[{"raw":"public record NumberField(FieldRef ref)","params":[{"name":"ref","type":"FieldRef"}],"typeParams":["T"],"typeParamNames":["T"]}],"doc":{"summary":"Integer-valued field. No text operators reach it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.NumberField","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.NumberField","product":"core","slug":"io-github-libtmux-query-fields-fields-numberfield","typeParams":["T"],"typeParamNames":["T"],"typeScopeBoundary":true},{"id":"io.github.libtmux.query.Fields.Fields.NumberField.is","name":"is","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.NumberField","signatures":[{"params":[{"name":"value","type":"int"}],"returns":"FilterExpr","raw":"public FilterExpr is(int value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":79,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.NumberField.is","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.NumberField.is","product":"core","slug":"io-github-libtmux-query-fields-fields-numberfield-is"},{"id":"io.github.libtmux.query.Fields.Fields.NumberField.isNot","name":"isNot","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.NumberField","signatures":[{"params":[{"name":"value","type":"int"}],"returns":"FilterExpr","raw":"public FilterExpr isNot(int value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":83,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.NumberField.isNot","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.NumberField.isNot","product":"core","slug":"io-github-libtmux-query-fields-fields-numberfield-isnot"},{"id":"io.github.libtmux.query.Fields.Fields.NumberField.lessThan","name":"lessThan","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.NumberField","signatures":[{"params":[{"name":"value","type":"int"}],"returns":"FilterExpr","raw":"public FilterExpr lessThan(int value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":87,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.NumberField.lessThan","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.NumberField.lessThan","product":"core","slug":"io-github-libtmux-query-fields-fields-numberfield-lessthan"},{"id":"io.github.libtmux.query.Fields.Fields.NumberField.atMost","name":"atMost","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.NumberField","signatures":[{"params":[{"name":"value","type":"int"}],"returns":"FilterExpr","raw":"public FilterExpr atMost(int value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":91,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.NumberField.atMost","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.NumberField.atMost","product":"core","slug":"io-github-libtmux-query-fields-fields-numberfield-atmost"},{"id":"io.github.libtmux.query.Fields.Fields.NumberField.greaterThan","name":"greaterThan","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.NumberField","signatures":[{"params":[{"name":"value","type":"int"}],"returns":"FilterExpr","raw":"public FilterExpr greaterThan(int value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":95,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.NumberField.greaterThan","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.NumberField.greaterThan","product":"core","slug":"io-github-libtmux-query-fields-fields-numberfield-greaterthan"},{"id":"io.github.libtmux.query.Fields.Fields.NumberField.atLeast","name":"atLeast","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.NumberField","signatures":[{"params":[{"name":"value","type":"int"}],"returns":"FilterExpr","raw":"public FilterExpr atLeast(int value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":99,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.NumberField.atLeast","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.NumberField.atLeast","product":"core","slug":"io-github-libtmux-query-fields-fields-numberfield-atleast"},{"id":"io.github.libtmux.query.Fields.Fields.NumberField.ref","name":"ref","kind":"method","parent":"io.github.libtmux.query.Fields.Fields.NumberField","modifiers":[],"signatures":[{"params":[],"returns":"FieldRef"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.NumberField.ref","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.NumberField.ref","product":"core","slug":"io-github-libtmux-query-fields-fields-numberfield-ref"},{"id":"io.github.libtmux.query.Fields.Fields.FlagField","name":"FlagField","kind":"class","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[{"raw":"public record FlagField(FieldRef ref)","params":[{"name":"ref","type":"FieldRef"}],"typeParams":["T"],"typeParamNames":["T"]}],"doc":{"summary":"Boolean-valued field."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":105,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.FlagField","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.FlagField","product":"core","slug":"io-github-libtmux-query-fields-fields-flagfield","typeParams":["T"],"typeParamNames":["T"],"typeScopeBoundary":true},{"id":"io.github.libtmux.query.Fields.Fields.FlagField.is","name":"is","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.FlagField","signatures":[{"params":[{"name":"value","type":"boolean"}],"returns":"FilterExpr","raw":"public FilterExpr is(boolean value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":107,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.FlagField.is","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.FlagField.is","product":"core","slug":"io-github-libtmux-query-fields-fields-flagfield-is"},{"id":"io.github.libtmux.query.Fields.Fields.FlagField.isNot","name":"isNot","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.FlagField","signatures":[{"params":[{"name":"value","type":"boolean"}],"returns":"FilterExpr","raw":"public FilterExpr isNot(boolean value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":111,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.FlagField.isNot","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.FlagField.isNot","product":"core","slug":"io-github-libtmux-query-fields-fields-flagfield-isnot"},{"id":"io.github.libtmux.query.Fields.Fields.FlagField.isTrue","name":"isTrue","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.FlagField","signatures":[{"params":[],"returns":"FilterExpr","raw":"public FilterExpr isTrue()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":115,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.FlagField.isTrue","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.FlagField.isTrue","product":"core","slug":"io-github-libtmux-query-fields-fields-flagfield-istrue"},{"id":"io.github.libtmux.query.Fields.Fields.FlagField.isFalse","name":"isFalse","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.FlagField","signatures":[{"params":[],"returns":"FilterExpr","raw":"public FilterExpr isFalse()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":119,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.FlagField.isFalse","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.FlagField.isFalse","product":"core","slug":"io-github-libtmux-query-fields-fields-flagfield-isfalse"},{"id":"io.github.libtmux.query.Fields.Fields.FlagField.ref","name":"ref","kind":"method","parent":"io.github.libtmux.query.Fields.Fields.FlagField","modifiers":[],"signatures":[{"params":[],"returns":"FieldRef"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.FlagField.ref","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.FlagField.ref","product":"core","slug":"io-github-libtmux-query-fields-fields-flagfield-ref"},{"id":"io.github.libtmux.query.Fields.Fields.ToManyRef","name":"ToManyRef","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[],"doc":{"summary":"To-many relation. Quantifiers are the only way in, so an unquantified relation cannot compile."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":125,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToManyRef","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToManyRef","product":"core","slug":"io-github-libtmux-query-fields-fields-tomanyref","typeParams":["T","R"],"typeParamNames":["T","R"],"typeScopeBoundary":true},{"id":"io.github.libtmux.query.Fields.Fields.ToManyRef.id","name":"id","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.ToManyRef","signatures":[{"params":[],"returns":"String","raw":"public String id()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":135,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToManyRef.id","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToManyRef.id","product":"core","slug":"io-github-libtmux-query-fields-fields-tomanyref-id"},{"id":"io.github.libtmux.query.Fields.Fields.ToManyRef.navigate","name":"navigate","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.ToManyRef","signatures":[{"params":[],"returns":"Function>","raw":"public Function> navigate()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":139,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToManyRef.navigate","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToManyRef.navigate","product":"core","slug":"io-github-libtmux-query-fields-fields-tomanyref-navigate"},{"id":"io.github.libtmux.query.Fields.Fields.ToManyRef.any","name":"any","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.ToManyRef","signatures":[{"params":[{"name":"predicate","type":"FilterExpr"}],"returns":"FilterExpr.ToMany","raw":"public FilterExpr.ToMany any(FilterExpr predicate)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":143,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToManyRef.any","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToManyRef.any","product":"core","slug":"io-github-libtmux-query-fields-fields-tomanyref-any"},{"id":"io.github.libtmux.query.Fields.Fields.ToManyRef.all","name":"all","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.ToManyRef","signatures":[{"params":[{"name":"predicate","type":"FilterExpr"}],"returns":"FilterExpr.ToMany","raw":"public FilterExpr.ToMany all(FilterExpr predicate)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":147,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToManyRef.all","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToManyRef.all","product":"core","slug":"io-github-libtmux-query-fields-fields-tomanyref-all"},{"id":"io.github.libtmux.query.Fields.Fields.ToManyRef.none","name":"none","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.ToManyRef","signatures":[{"params":[{"name":"predicate","type":"FilterExpr"}],"returns":"FilterExpr.ToMany","raw":"public FilterExpr.ToMany none(FilterExpr predicate)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":151,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToManyRef.none","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToManyRef.none","product":"core","slug":"io-github-libtmux-query-fields-fields-tomanyref-none"},{"id":"io.github.libtmux.query.Fields.Fields.ToOneRef","name":"ToOneRef","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[],"doc":{"summary":"To-one relation."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":157,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToOneRef","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToOneRef","product":"core","slug":"io-github-libtmux-query-fields-fields-tooneref","typeParams":["T","R"],"typeParamNames":["T","R"],"typeScopeBoundary":true},{"id":"io.github.libtmux.query.Fields.Fields.ToOneRef.id","name":"id","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.ToOneRef","signatures":[{"params":[],"returns":"String","raw":"public String id()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":167,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToOneRef.id","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToOneRef.id","product":"core","slug":"io-github-libtmux-query-fields-fields-tooneref-id"},{"id":"io.github.libtmux.query.Fields.Fields.ToOneRef.navigate","name":"navigate","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.ToOneRef","signatures":[{"params":[],"returns":"Function>","raw":"public Function> navigate()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":171,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToOneRef.navigate","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToOneRef.navigate","product":"core","slug":"io-github-libtmux-query-fields-fields-tooneref-navigate"},{"id":"io.github.libtmux.query.Fields.Fields.ToOneRef.is","name":"is","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.ToOneRef","signatures":[{"params":[{"name":"predicate","type":"FilterExpr"}],"returns":"FilterExpr.ToOne","raw":"public FilterExpr.ToOne is(FilterExpr predicate)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":175,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToOneRef.is","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToOneRef.is","product":"core","slug":"io-github-libtmux-query-fields-fields-tooneref-is"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr","name":"FilterExpr","kind":"interface","modifiers":[],"signatures":[],"doc":{"summary":"A filter that is both runnable and readable.","body":"It extends {@link Predicate}, so {@code stream().filter(expr)} works with no adapter, and it is\na sealed tree of records, so the same value can be printed, serialized, or later compiled into a\ntmux {@code -f} filter. A lambda can do the first of those and none of the rest, which is why\nnamed expressions are built from these nodes instead.\n\nEvaluation is a total function over the tree: every consumer switches exhaustively, so adding a\nnode breaks compilation at each site that has to learn about it rather than at runtime."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr","typeParams":["T"],"typeParamNames":["T"],"typeScopeBoundary":false},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.describe","name":"describe","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"params":[],"returns":"String","raw":"String describe();","typeScopeBoundary":false}],"doc":{"summary":"Renders the expression as inspectable text. Deliberately not {@code toString} on records."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.describe","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.describe","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-describe"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.and","name":"and","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"params":[{"name":"operands","type":"List>"}],"returns":"FilterExpr","typeParams":["T"],"raw":"static FilterExpr and(List> operands)","typeParamNames":["T"],"typeScopeBoundary":true},{"params":[{"name":"other","type":"FilterExpr"}],"returns":"FilterExpr","raw":"default FilterExpr and(FilterExpr other)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.and","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.and","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-and-12cg"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.or","name":"or","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"params":[{"name":"operands","type":"List>"}],"returns":"FilterExpr","typeParams":["T"],"raw":"static FilterExpr or(List> operands)","typeParamNames":["T"],"typeScopeBoundary":true},{"params":[{"name":"other","type":"FilterExpr"}],"returns":"FilterExpr","raw":"default FilterExpr or(FilterExpr other)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.or","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.or","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-or-6b3f"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.negate","name":"negate","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"params":[],"returns":"FilterExpr","raw":"@Override\n default FilterExpr negate()","typeScopeBoundary":false}],"doc":{"summary":"Negation, narrowed to an expression.","body":"{@code and} and {@code or} below are deliberately *overloads* of the inherited\n{@link Predicate} methods rather than overrides: their parameter is a {@code FilterExpr}, so\ncombining two expressions stays an expression, while passing a bare lambda selects the\ninherited method and yields a plain predicate. That is the intended boundary — a lambda cannot\nbe printed or serialized, so an expression built from one must not claim to be inspectable."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.negate","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.negate","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-negate"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.And","name":"And","kind":"class","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"raw":"record And(@ReadOnly List> operands) implements FilterExpr","params":[{"name":"operands","type":"List>"}],"typeParams":["T"],"typeParamNames":["T"]}],"doc":{"summary":"Conjunction. An empty conjunction is true, which is what makes it a safe identity."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.And","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.And","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-and-b05l","typeParams":["T"],"typeParamNames":["T"],"typeScopeBoundary":true},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.And.test","name":"test","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.And","signatures":[{"params":[{"name":"value","type":"T"}],"returns":"boolean","raw":"@Override\n public boolean test(T value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":68,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.And.test","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.And.test","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-and-test"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.And.describe","name":"describe","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.And","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String describe()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.And.describe","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.And.describe","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-and-describe"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.And.operands","name":"operands","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.And","modifiers":[],"signatures":[{"params":[],"returns":"List>"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.And.operands","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.And.operands","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-and-operands"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Or","name":"Or","kind":"class","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"raw":"record Or(@ReadOnly List> operands) implements FilterExpr","params":[{"name":"operands","type":"List>"}],"typeParams":["T"],"typeParamNames":["T"]}],"doc":{"summary":"Disjunction. An empty disjunction is false."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":90,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Or","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Or","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-or-9f1f","typeParams":["T"],"typeParamNames":["T"],"typeScopeBoundary":true},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Or.test","name":"test","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Or","signatures":[{"params":[{"name":"value","type":"T"}],"returns":"boolean","raw":"@Override\n public boolean test(T value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":96,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Or.test","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Or.test","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-or-test"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Or.describe","name":"describe","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Or","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String describe()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":106,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Or.describe","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Or.describe","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-or-describe"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Or.operands","name":"operands","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Or","modifiers":[],"signatures":[{"params":[],"returns":"List>"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Or.operands","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Or.operands","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-or-operands"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Not","name":"Not","kind":"class","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"raw":"record Not(FilterExpr operand) implements FilterExpr","params":[{"name":"operand","type":"FilterExpr"}],"typeParams":["T"],"typeParamNames":["T"]}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":117,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Not","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Not","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-not","typeParams":["T"],"typeParamNames":["T"],"typeScopeBoundary":true},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Not.test","name":"test","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Not","signatures":[{"params":[{"name":"value","type":"T"}],"returns":"boolean","raw":"@Override\n public boolean test(T value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":119,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Not.test","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Not.test","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-not-test"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Not.describe","name":"describe","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Not","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String describe()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":124,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Not.describe","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Not.describe","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-not-describe"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Not.operand","name":"operand","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Not","modifiers":[],"signatures":[{"params":[],"returns":"FilterExpr"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Not.operand","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Not.operand","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-not-operand"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare","name":"Compare","kind":"class","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"raw":"record Compare(FieldRef field, Operator operator, Object operand) implements FilterExpr","params":[{"name":"field","type":"FieldRef"},{"name":"operator","type":"Operator"},{"name":"operand","type":"Object"}],"typeParams":["T","V"],"typeParamNames":["T","V"]}],"doc":{"summary":"One scalar field compared to one operand."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":131,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Compare","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-compare","typeParams":["T","V"],"typeParamNames":["T","V"],"typeScopeBoundary":true},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.test","name":"test","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare","signatures":[{"params":[{"name":"value","type":"T"}],"returns":"boolean","raw":"@Override\n public boolean test(T value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":142,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Compare.test","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.test","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-compare-test"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.describe","name":"describe","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String describe()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":147,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Compare.describe","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.describe","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-compare-describe"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.equals","name":"equals","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare","signatures":[{"params":[{"name":"other","type":"Object"}],"returns":"boolean","raw":"@Override\n public boolean equals(Object other)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":152,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Compare.equals","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.equals","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-compare-equals"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.hashCode","name":"hashCode","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare","signatures":[{"params":[],"returns":"int","raw":"@Override\n public int hashCode()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":160,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Compare.hashCode","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.hashCode","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-compare-hashcode"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.field","name":"field","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare","modifiers":[],"signatures":[{"params":[],"returns":"FieldRef"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Compare.field","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.field","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-compare-field"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.operator","name":"operator","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare","modifiers":[],"signatures":[{"params":[],"returns":"Operator"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Compare.operator","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.operator","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-compare-operator"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.operand","name":"operand","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare","modifiers":[],"signatures":[{"params":[],"returns":"Object"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Compare.operand","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.operand","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-compare-operand"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany","name":"ToMany","kind":"class","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"raw":"record ToMany(Fields.ToManyRef relation, Quantifier quantifier, FilterExpr predicate)\n implements FilterExpr","params":[{"name":"relation","type":"Fields.ToManyRef"},{"name":"quantifier","type":"Quantifier"},{"name":"predicate","type":"FilterExpr"}],"typeParams":["T","R"],"typeParamNames":["T","R"]}],"doc":{"summary":"A quantified filter over a to-many relation.","body":"{@code ALL} over an empty relation is true. That is the standard vacuous reading and it is\nthe one tmux users expect: a session with no windows does not fail \"all windows are zoomed\"."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":181,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToMany","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-tomany","typeParams":["T","R"],"typeParamNames":["T","R"],"typeScopeBoundary":true},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.test","name":"test","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany","signatures":[{"params":[{"name":"value","type":"T"}],"returns":"boolean","raw":"@Override\n public boolean test(T value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":190,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToMany.test","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.test","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-tomany-test"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.describe","name":"describe","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String describe()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":200,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToMany.describe","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.describe","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-tomany-describe"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.relation","name":"relation","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany","modifiers":[],"signatures":[{"params":[],"returns":"Fields.ToManyRef"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToMany.relation","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.relation","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-tomany-relation"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.quantifier","name":"quantifier","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany","modifiers":[],"signatures":[{"params":[],"returns":"Quantifier"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToMany.quantifier","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.quantifier","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-tomany-quantifier"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.predicate","name":"predicate","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany","modifiers":[],"signatures":[{"params":[],"returns":"FilterExpr"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToMany.predicate","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.predicate","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-tomany-predicate"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne","name":"ToOne","kind":"class","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"raw":"record ToOne(Fields.ToOneRef relation, FilterExpr predicate) implements FilterExpr","params":[{"name":"relation","type":"Fields.ToOneRef"},{"name":"predicate","type":"FilterExpr"}],"typeParams":["T","R"],"typeParamNames":["T","R"]}],"doc":{"summary":"A to-one relation. An absent target does not satisfy the filter."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":207,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToOne","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-toone","typeParams":["T","R"],"typeParamNames":["T","R"],"typeScopeBoundary":true},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne.test","name":"test","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne","signatures":[{"params":[{"name":"value","type":"T"}],"returns":"boolean","raw":"@Override\n public boolean test(T value)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":214,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToOne.test","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne.test","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-toone-test"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne.describe","name":"describe","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String describe()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":219,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToOne.describe","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne.describe","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-toone-describe"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne.relation","name":"relation","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne","modifiers":[],"signatures":[{"params":[],"returns":"Fields.ToOneRef"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToOne.relation","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne.relation","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-toone-relation"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne.predicate","name":"predicate","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne","modifiers":[],"signatures":[{"params":[],"returns":"FilterExpr"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToOne.predicate","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne.predicate","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-toone-predicate"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier","name":"Quantifier","kind":"enum","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":225,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Quantifier","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-quantifier","typeScopeBoundary":true},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier.ANY","name":"ANY","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":226,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Quantifier.ANY","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier.ANY","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-quantifier-any","typeScopeBoundary":true},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier.ALL","name":"ALL","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":227,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Quantifier.ALL","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier.ALL","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-quantifier-all","typeScopeBoundary":true},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier.NONE","name":"NONE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":228,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Quantifier.NONE","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier.NONE","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-quantifier-none","typeScopeBoundary":true},{"id":"io.github.libtmux.query.Operator.Operator","name":"Operator","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"The scalar comparisons an expression can hold. Evaluation stays a total switch."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator","product":"core","slug":"io-github-libtmux-query-operator-operator","typeScopeBoundary":false},{"id":"io.github.libtmux.query.Operator.Operator.EQUALS","name":"EQUALS","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":9,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.EQUALS","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.EQUALS","product":"core","slug":"io-github-libtmux-query-operator-operator-equals","typeScopeBoundary":true},{"id":"io.github.libtmux.query.Operator.Operator.NOT_EQUALS","name":"NOT_EQUALS","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.NOT_EQUALS","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.NOT_EQUALS","product":"core","slug":"io-github-libtmux-query-operator-operator-not_equals","typeScopeBoundary":true},{"id":"io.github.libtmux.query.Operator.Operator.CONTAINS","name":"CONTAINS","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.CONTAINS","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.CONTAINS","product":"core","slug":"io-github-libtmux-query-operator-operator-contains","typeScopeBoundary":true},{"id":"io.github.libtmux.query.Operator.Operator.STARTS_WITH","name":"STARTS_WITH","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.STARTS_WITH","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.STARTS_WITH","product":"core","slug":"io-github-libtmux-query-operator-operator-starts_with","typeScopeBoundary":true},{"id":"io.github.libtmux.query.Operator.Operator.ENDS_WITH","name":"ENDS_WITH","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.ENDS_WITH","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.ENDS_WITH","product":"core","slug":"io-github-libtmux-query-operator-operator-ends_with","typeScopeBoundary":true},{"id":"io.github.libtmux.query.Operator.Operator.MATCHES","name":"MATCHES","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.MATCHES","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.MATCHES","product":"core","slug":"io-github-libtmux-query-operator-operator-matches-1lrg","typeScopeBoundary":true},{"id":"io.github.libtmux.query.Operator.Operator.LESS_THAN","name":"LESS_THAN","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.LESS_THAN","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.LESS_THAN","product":"core","slug":"io-github-libtmux-query-operator-operator-less_than","typeScopeBoundary":true},{"id":"io.github.libtmux.query.Operator.Operator.AT_MOST","name":"AT_MOST","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.AT_MOST","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.AT_MOST","product":"core","slug":"io-github-libtmux-query-operator-operator-at_most","typeScopeBoundary":true},{"id":"io.github.libtmux.query.Operator.Operator.GREATER_THAN","name":"GREATER_THAN","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.GREATER_THAN","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.GREATER_THAN","product":"core","slug":"io-github-libtmux-query-operator-operator-greater_than","typeScopeBoundary":true},{"id":"io.github.libtmux.query.Operator.Operator.AT_LEAST","name":"AT_LEAST","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.AT_LEAST","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.AT_LEAST","product":"core","slug":"io-github-libtmux-query-operator-operator-at_least","typeScopeBoundary":true},{"id":"io.github.libtmux.query.Operator.Operator.IN","name":"IN","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.IN","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.IN","product":"core","slug":"io-github-libtmux-query-operator-operator-in","typeScopeBoundary":true},{"id":"io.github.libtmux.query.Operator.Operator.Operator","name":"Operator","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[{"params":[{"name":"symbol","type":"String"}],"raw":"Operator(String symbol)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.Operator","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.Operator","product":"core","slug":"io-github-libtmux-query-operator-operator-operator"},{"id":"io.github.libtmux.query.Operator.Operator.symbol","name":"symbol","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[{"params":[],"returns":"String","raw":"public String symbol()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.symbol","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.symbol","product":"core","slug":"io-github-libtmux-query-operator-operator-symbol"},{"id":"io.github.libtmux.query.Operator.Operator.requireOperand","name":"requireOperand","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[{"params":[{"name":"kind","type":"FieldKind"},{"name":"operand","type":"Object"}],"returns":"void","raw":"void requireOperand(FieldKind kind, Object operand)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.requireOperand","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.requireOperand","product":"core","slug":"io-github-libtmux-query-operator-operator-requireoperand"},{"id":"io.github.libtmux.query.Operator.Operator.matches","name":"matches","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[{"params":[{"name":"actual","type":"Object"},{"name":"operand","type":"Object"}],"returns":"boolean","raw":"@SuppressWarnings(\"unchecked\")\n boolean matches(Object actual, Object operand)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":65,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.matches","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.matches","product":"core","slug":"io-github-libtmux-query-operator-operator-matches-80y7"},{"id":"io.github.libtmux.query.Selections.Selections","name":"Selections","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Cardinality with the ambiguity removed.","body":"\"No session matched\" and \"several sessions matched\" are different bugs in a caller's code, so\nthey get different exceptions. {@code findFirst} stays on {@link java.util.stream.Stream} where it\nalready belongs; only the strict shapes need helpers."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Selections.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Selections","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Selections.Selections","product":"core","slug":"io-github-libtmux-query-selections-selections","typeScopeBoundary":false},{"id":"io.github.libtmux.query.Selections.Selections.exactlyOne","name":"exactlyOne","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.Selections.Selections","signatures":[{"params":[{"name":"matches","type":"Iterable"}],"returns":"T","typeParams":["T"],"raises":[{"type":"CardinalityException.NoMatch","doc":"if nothing matched"},{"type":"CardinalityException.MultipleMatches","doc":"if more than one did; the scan stops at the second match, so its count is two"}],"raw":"public static T exactlyOne(Iterable matches)","typeParamNames":["T"],"typeScopeBoundary":true}],"doc":{"summary":"The single match, or a failure naming which way the count was wrong."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Selections.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Selections.exactlyOne","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Selections.Selections.exactlyOne","product":"core","slug":"io-github-libtmux-query-selections-selections-exactlyone"},{"id":"io.github.libtmux.query.Selections.Selections.oneOrEmpty","name":"oneOrEmpty","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.Selections.Selections","signatures":[{"params":[{"name":"matches","type":"Iterable"}],"returns":"Optional","typeParams":["T"],"raises":[{"type":"CardinalityException.MultipleMatches","doc":"if more than one matched"}],"raw":"public static Optional oneOrEmpty(Iterable matches)","typeParamNames":["T"],"typeScopeBoundary":true}],"doc":{"summary":"The single match if there is one, empty if there is none — but still a failure for several.","body":"Returning the first of many would make a caller's ambiguous query look answered."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Selections.java","line":44,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Selections.oneOrEmpty","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Selections.Selections.oneOrEmpty","product":"core","slug":"io-github-libtmux-query-selections-selections-oneorempty"},{"id":"io.github.libtmux.query.TmuxFilters.TmuxFilters","name":"TmuxFilters","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Lowers a {@link FilterExpr} to a tmux {@code -f} format when every node is one tmux can apply.","body":"Relations, a Java regular expression, and any operand containing {@code ,}, `#`,\n`{`, `}`, {@code :}, or a backslash, are refused. Those stay a local filter over a capture. tmux\ncompiles {@code #{m/r:}} with its own dialect, so a pattern Java would match can select nothing.\nA compiled format is a hint to tmux, not a promise that the local reading would differ: callers\nstill apply the expression to the rows that come back."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/TmuxFilters.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.TmuxFilters","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.TmuxFilters.TmuxFilters","product":"core","slug":"io-github-libtmux-query-tmuxfilters-tmuxfilters","typeScopeBoundary":false},{"id":"io.github.libtmux.query.TmuxFilters.TmuxFilters.format","name":"format","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.TmuxFilters.TmuxFilters","signatures":[{"params":[{"name":"expression","type":"FilterExpr"}],"returns":"Optional","raw":"public static Optional format(FilterExpr expression)","typeScopeBoundary":true}],"doc":{"summary":"A tmux format for {@code -f}, or empty when this expression is not a safe subset."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/TmuxFilters.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.TmuxFilters.format","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.TmuxFilters.TmuxFilters.format","product":"core","slug":"io-github-libtmux-query-tmuxfilters-tmuxfilters-format"},{"id":"io.github.libtmux.query.TmuxFilters.TmuxFilters.literal","name":"literal","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.TmuxFilters.TmuxFilters","signatures":[{"params":[{"name":"value","type":"String"}],"returns":"boolean","raw":"public static boolean literal(String value)","typeScopeBoundary":true}],"doc":{"summary":"Whether this text can sit inside a tmux format argument without changing its shape. A backslash escapes the next character in a format, so a trailing one swallows the closing brace."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/TmuxFilters.java","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.TmuxFilters.literal","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.TmuxFilters.TmuxFilters.literal","product":"core","slug":"io-github-libtmux-query-tmuxfilters-tmuxfilters-literal"},{"id":"io.github.libtmux.Server.Server","name":"Server","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Manages sessions, windows, and panes on a tmux server.","body":"Use {@link #open} with a {@link ServerConfig} to select a server by socket name or path.\nFrom this object, create sessions or query the server's existing sessions, windows, and panes.\nEach {@link Session} contains windows, and each {@link Window} contains panes.\n\nOwnership is decided at construction and never inferred. {@link #open} creates a transport this\nserver closes exactly once; {@link #using} borrows one the caller keeps, so several servers can\nshare a transport and closing one leaves the others working.\n\nClosing this object releases its owned transport. The tmux server and its sessions keep\nrunning. Call {@link #killServer()} to stop the tmux server.\n\nClose it anyway. A server that owns its transport holds the threads that drain tmux's output,\nand those are not daemons, so that a reply being read when a program ends is finished rather than\ntruncated. They do let go once they have been idle, so forgetting to close delays a JVM's exit by\nseconds instead of preventing it — but only closing releases them at once.\n\n**Threads.** Share one freely. A server holds nothing a call changes, its transport\nis thread-safe by contract, and the record of what was typed into each pane is concurrent; calls\nfrom several threads run side by side, bounded by the transport's own admission. The same goes\nfor every {@link Session}, {@link Window} and {@link Pane} it hands out: each is an immutable view\nof one capture, and a method that changes tmux changes tmux rather than the handle. Close it once,\nafter the last call on any thread.","examples":[{"lang":"console","intro":"Connect to a private tmux server. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/Connect.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/Connect.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport java.nio.file.Path;\n\n/** Connect to a private tmux server. */\npublic final class Connect {\n private Connect() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n System.out.println(\"connected=\" + server.isAlive());\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.Connect && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"connected=true\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":73,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server","product":"core","slug":"io-github-libtmux-server-server","typeScopeBoundary":false},{"id":"io.github.libtmux.Server.Server.echo","name":"echo","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"PaneEcho","raw":"PaneEcho echo()","typeScopeBoundary":false}],"doc":{"summary":"What this library last typed into each of this server's panes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":106,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.echo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.echo","product":"core","slug":"io-github-libtmux-server-server-echo"},{"id":"io.github.libtmux.Server.Server.capture","name":"capture","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"SnapshotCapture","raw":"SnapshotCapture capture()","typeScopeBoundary":false}],"doc":{"summary":"How this server's own hierarchy is read back, for helpers that need one listing directly."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":111,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.capture","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.capture","product":"core","slug":"io-github-libtmux-server-server-capture"},{"id":"io.github.libtmux.Server.Server.newSession","name":"newSession","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"Session","raw":"@Operation(Kind.MUTATION)\n public Session newSession(String name)","typeScopeBoundary":false},{"params":[{"name":"configure","type":"Consumer","doc":"receives a builder holding tmux's defaults"}],"returns":"Session","raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something this server does not have"}],"raw":"@Operation(Kind.MUTATION)\n public Session newSession(Consumer configure)","typeScopeBoundary":false},{"params":[{"name":"spec","type":"SessionSpec"}],"returns":"Session","raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something this server does not have"}],"raw":"@Operation(Kind.MUTATION)\n public Session newSession(SessionSpec spec)","typeScopeBoundary":false}],"doc":{"summary":"Creates a detached session and returns that exact session.","body":"tmux reports which session it made, so the result is exact even when another session\nalready carries the same name.\n\nKeep {@code :} and {@code .} out of the name. tmux decides what to do with them and changes\nits mind across the supported range: 3.2a through 3.6 rewrite each one to {@code _}, 3.7\nrefuses the name, and 3.7a onwards keeps it — where a bare {@code -t} target still misreads the\ndelimiter, so {@link #hasSession} and {@link #killSession} resolve the id by comparing names\ninstead of building one. {@link Session#name()} reports what tmux settled on.","examples":[{"lang":"console","intro":"Create a session running cat. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/NewSession.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/NewSession.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport io.github.libtmux.SessionSpec;\nimport java.nio.file.Path;\n\n/** Create a session running cat. */\npublic final class NewSession {\n private NewSession() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n var session = server.newSession(SessionSpec.builder()\n .named(\"api-session\")\n .running(\"/bin/cat\")\n .build());\n System.out.println(\"created=\" + session.name());\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.NewSession && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"created=api-session\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":127,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.newSession","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.newSession","product":"core","slug":"io-github-libtmux-server-server-newsession"},{"id":"io.github.libtmux.Server.Server.hasSession","name":"hasSession","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"boolean","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"}],"raw":"@Operation(Kind.READ)\n public boolean hasSession(String name)","typeScopeBoundary":false}],"doc":{"summary":"Whether a session with this name exists."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":173,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.hasSession","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.hasSession","product":"core","slug":"io-github-libtmux-server-server-hassession"},{"id":"io.github.libtmux.Server.Server.killSession","name":"killSession","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"void","raises":[{"type":"LibTmuxException","doc":"if no session carries the name"}],"raw":"@Operation(Kind.MUTATION)\n public void killSession(String name)","typeScopeBoundary":false}],"doc":{"summary":"Ends the session with this name, and everything in it.","body":"The name is matched exactly. tmux would otherwise take a prefix, so asking to kill\n{@code build} could end {@code build-cache} instead."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":187,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.killSession","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.killSession","product":"core","slug":"io-github-libtmux-server-server-killsession"},{"id":"io.github.libtmux.Server.Server.isAlive","name":"isAlive","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"boolean","raw":"@Operation(Kind.READ)\n public boolean isAlive()","typeScopeBoundary":false},{"params":[{"name":"timeout","type":"Duration","doc":"how long to wait for an answer before treating the server as unreachable"}],"returns":"boolean","raw":"@Operation(Kind.READ)\n public boolean isAlive(Duration timeout)","typeScopeBoundary":false}],"doc":{"summary":"Whether the server is running and answering.","body":"Returns false when tmux refuses the probe. Transport failures still throw."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":200,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.isAlive","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.isAlive","product":"core","slug":"io-github-libtmux-server-server-isalive"},{"id":"io.github.libtmux.Server.Server.requireAlive","name":"requireAlive","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"void","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is there to answer"},{"type":"LibTmuxException","doc":"if one is, and could not be reached — a socket this user cannot open, or a binary that is not tmux, which starting a server would not fix"}],"raw":"@Operation(Kind.READ)\n public void requireAlive()","typeScopeBoundary":false}],"doc":{"summary":"Requires a running tmux daemon that answers the liveness probe."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":226,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.requireAlive","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.requireAlive","product":"core","slug":"io-github-libtmux-server-server-requirealive"},{"id":"io.github.libtmux.Server.Server.failed","name":"failed","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"command","type":"String"},{"name":"result","type":"CommandResult"}],"returns":"LibTmuxException","raw":"LibTmuxException failed(String command, CommandResult result)","typeScopeBoundary":false},{"params":[{"name":"command","type":"String"},{"name":"status","type":"String"},{"name":"stderr","type":"List"}],"returns":"LibTmuxException","raw":"LibTmuxException failed(String command, String status, List stderr)","typeScopeBoundary":false}],"doc":{"summary":"One sentence for a tmux command that did not succeed.","body":"Built in one place because a message that omits the exit status, or says nothing at all\nwhen tmux printed nothing, is how a misconfigured binary reads as a tmux that simply refused:\npointing a server at {@code /bin/false} used to raise \"tmux display-message failed: \" and\nstop there."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":247,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.failed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.failed","product":"core","slug":"io-github-libtmux-server-server-failed"},{"id":"io.github.libtmux.Server.Server.failure","name":"failure","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"command","type":"String"},{"name":"binary","type":"String"},{"name":"status","type":"String","doc":"how the command ended, as an exit code or, inside a group, tmux's own outcome for it — a batch reports which of its commands never ran, which no single exit code says"},{"name":"stderr","type":"List"}],"returns":"String","raw":"static String failure(String command, String binary, String status, List stderr)","typeScopeBoundary":true}],"doc":{"summary":""},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":272,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.failure","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.failure","product":"core","slug":"io-github-libtmux-server-server-failure"},{"id":"io.github.libtmux.Server.Server.serverAbsent","name":"serverAbsent","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"message","type":"String"}],"returns":"boolean","raw":"static boolean serverAbsent(String message)","typeScopeBoundary":true}],"doc":{"summary":"Whether a failed command's stderr says the daemon itself is gone, rather than refusing the request."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":279,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.serverAbsent","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.serverAbsent","product":"core","slug":"io-github-libtmux-server-server-serverabsent"},{"id":"io.github.libtmux.Server.Server.killServer","name":"killServer","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void killServer()","typeScopeBoundary":false},{"params":[{"name":"timeout","type":"Duration","doc":"how long to allow for each of the two commands"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void killServer(Duration timeout)","typeScopeBoundary":false}],"doc":{"summary":"Ends the tmux server and every session on it.","body":"Deliberately explicit and deliberately not what {@link #close()} does: closing a client is\nnot a reason to end everyone else's sessions.\n\nKilling a server that has already gone is not a failure. Which is harder to detect than it\nsounds: tmux answers a doomed request with {@code no server running} most of the time, but\nwith {@code server exited unexpectedly} when it reaches a socket whose server is still\nexiting — on every release from 3.3a onwards, and on one in five attempts on 3.7. So the\npostcondition is checked rather than the wording, which has changed before and says nothing\na second look cannot answer better."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":298,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.killServer","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.killServer","product":"core","slug":"io-github-libtmux-server-server-killserver"},{"id":"io.github.libtmux.Server.Server.batch","name":"batch","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"Batch","raw":"@Operation(Kind.CAPTURED)\n public Batch batch()","typeScopeBoundary":false}],"doc":{"summary":"Collects several commands to run in one tmux invocation.","body":"Each operation gets its own outcome. tmux discards a group after the first failure, so a\nsingle exit status cannot say which command failed or which never ran."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":386,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.batch","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.batch","product":"core","slug":"io-github-libtmux-server-server-batch"},{"id":"io.github.libtmux.Server.Server.chain","name":"chain","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"CommandChain","raw":"@Operation(Kind.CAPTURED)\n public CommandChain chain()","typeScopeBoundary":false}],"doc":{"summary":"Starts a chain of commands where each one acts on what the last one made.","body":"tmux moves its own current target as a group runs, so a chain needs no round trip to learn\nthe id of a window or pane it just created."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":397,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.chain","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.chain","product":"core","slug":"io-github-libtmux-server-server-chain"},{"id":"io.github.libtmux.Server.Server.expand","name":"expand","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"format","type":"String","doc":"a tmux format, usually of the shape {@code #{name}}"}],"returns":"String","returnsDoc":"the expansion, whole when it spans lines and empty when the format expanded to nothing","raw":"@Operation(Kind.READ)\n public String expand(String format)","typeScopeBoundary":false}],"doc":{"summary":"Expands a tmux format against the server, and answers with what it came to.","body":"The server-wide counterpart to {@link Pane#expand}: fields such as {@code #{pid}} and\n{@code #{version}} that belong to no session in particular."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":412,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.expand","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.expand","product":"core","slug":"io-github-libtmux-server-server-expand"},{"id":"io.github.libtmux.Server.Server.printed","name":"printed","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"snapshot","type":"ServerSnapshot"},{"name":"argv","type":"List"}],"returns":"CommandResult","raw":"CommandResult printed(@Nullable ServerSnapshot snapshot, List argv)","typeScopeBoundary":false}],"doc":{"summary":"Runs one read with the server's version printed first in the same invocation, and answers with its output as tmux held the text, and without that version line. Line breaks at the end of the output are kept."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":424,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.printed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.printed","product":"core","slug":"io-github-libtmux-server-server-printed"},{"id":"io.github.libtmux.Server.Server.shell","name":"shell","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"Shell","raw":"@Operation(Kind.CAPTURED)\n public Shell shell()","typeScopeBoundary":false}],"doc":{"summary":"Shell commands run by tmux, and tmux commands chosen by a shell exit status."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":433,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.shell","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.shell","product":"core","slug":"io-github-libtmux-server-server-shell"},{"id":"io.github.libtmux.Server.Server.commands","name":"commands","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"Commands","raw":"@Operation(Kind.CAPTURED)\n public Commands commands()","typeScopeBoundary":false}],"doc":{"summary":"The commands this tmux knows."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":439,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.commands","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.commands","product":"core","slug":"io-github-libtmux-server-server-commands"},{"id":"io.github.libtmux.Server.Server.lock","name":"lock","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void lock()","typeScopeBoundary":false}],"doc":{"summary":"Locks every client attached to this server."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":445,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.lock","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.lock","product":"core","slug":"io-github-libtmux-server-server-lock"},{"id":"io.github.libtmux.Server.Server.messageLog","name":"messageLog","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"MessageLog","raw":"@Operation(Kind.CAPTURED)\n public MessageLog messageLog()","typeScopeBoundary":false}],"doc":{"summary":"The server's message log."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":451,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.messageLog","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.messageLog","product":"core","slug":"io-github-libtmux-server-server-messagelog"},{"id":"io.github.libtmux.Server.Server.prompt","name":"prompt","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"Prompt","raw":"@Operation(Kind.CAPTURED)\n public Prompt prompt()","typeScopeBoundary":false}],"doc":{"summary":"The command prompt's history."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":457,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.prompt","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.prompt","product":"core","slug":"io-github-libtmux-server-server-prompt"},{"id":"io.github.libtmux.Server.Server.withoutStartingServer","name":"withoutStartingServer","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"command","type":"List"}],"returns":"CommandResult","raw":"CommandResult withoutStartingServer(List command)","typeScopeBoundary":false}],"doc":{"summary":"Runs a read that tmux would otherwise answer by starting a daemon.","body":"{@code list-keys} and {@code list-commands} are answered from the binary's own tables, and\ntmux starts a server to do it rather than reporting that there is none — so reading the key\nbindings of an endpoint nothing serves left a daemon behind, which is the opposite of a read.\n{@code -N} says not to, on every supported release, and tmux then reports the absent server\nthe way every other read does."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":471,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.withoutStartingServer","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.withoutStartingServer","product":"core","slug":"io-github-libtmux-server-server-withoutstartingserver"},{"id":"io.github.libtmux.Server.Server.channel","name":"channel","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"Channel","raw":"@Operation(Kind.CAPTURED)\n public Channel channel(String name)","typeScopeBoundary":false}],"doc":{"summary":"One of this server's wait-for channels, which is where a signal is sent and waited for."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":483,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.channel","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.channel","product":"core","slug":"io-github-libtmux-server-server-channel"},{"id":"io.github.libtmux.Server.Server.variables","name":"variables","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"names","type":"List"}],"returns":"Map","raw":"@ReadOnly\n @Operation(Kind.READ)\n public Map variables(List names)","typeScopeBoundary":false}],"doc":{"summary":"Reads only validated tmux variable names, never caller-authored format syntax."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":489,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.variables","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.variables","product":"core","slug":"io-github-libtmux-server-server-variables"},{"id":"io.github.libtmux.Server.Server.paneFields","name":"paneFields","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"names","type":"List","doc":"tmux format variable names, at most 32"}],"returns":"Map>","returnsDoc":"each pane's values keyed by the names asked for, in tmux's pane order","raises":[{"type":"IllegalArgumentException","doc":"if a name is not a tmux variable name"},{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the listing otherwise fails"}],"raw":"@ReadOnly\n @Operation(Kind.READ)\n public Map> paneFields(List names)","typeScopeBoundary":false}],"doc":{"summary":"Chosen fields for every pane on the server, from one listing.","body":"For what a capture does not carry — {@code pane_tty}, {@code pane_dead_status}, {@code\npane_start_command}, any of tmux's pane formats. Asking each pane is a tmux process per pane\nand a view no single moment held; this is one {@code list-panes}, so every value is from the\nsame instant.","examples":[{"lang":"java","code":"Map> ttys = server.paneFields(List.of(\"pane_tty\", \"pane_dead\"));"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":530,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.paneFields","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.paneFields","product":"core","slug":"io-github-libtmux-server-server-panefields"},{"id":"io.github.libtmux.Server.Server.awaitChannel","name":"awaitChannel","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"channel","type":"String"},{"name":"timeout","type":"Duration"},{"name":"reserveSignalCapacity","type":"boolean"}],"returns":"WakeReason","raw":"WakeReason awaitChannel(String channel, Duration timeout, boolean reserveSignalCapacity)\n throws InterruptedException","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":566,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.awaitChannel","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.awaitChannel","product":"core","slug":"io-github-libtmux-server-server-awaitchannel"},{"id":"io.github.libtmux.Server.Server.keys","name":"keys","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"Keys","raw":"@Operation(Kind.CAPTURED)\n public Keys keys()","typeScopeBoundary":false}],"doc":{"summary":"The server's key bindings: {@code prefix} when binding, every table when listing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":608,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.keys","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.keys","product":"core","slug":"io-github-libtmux-server-server-keys"},{"id":"io.github.libtmux.Server.Server.buffers","name":"buffers","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"Buffers","raw":"@Operation(Kind.CAPTURED)\n public Buffers buffers()","typeScopeBoundary":false}],"doc":{"summary":"The server's paste buffers, which every session shares."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":614,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.buffers","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.buffers","product":"core","slug":"io-github-libtmux-server-server-buffers"},{"id":"io.github.libtmux.Server.Server.sourceFile","name":"sourceFile","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"file","type":"Path"}],"returns":"void","raises":[{"type":"LibTmuxException","doc":"if tmux could not read or run it"}],"raw":"@Operation(Kind.MUTATION)\n public void sourceFile(Path file)","typeScopeBoundary":false}],"doc":{"summary":"Runs a file of tmux commands, as a configuration file would be run."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":624,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.sourceFile","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.sourceFile","product":"core","slug":"io-github-libtmux-server-server-sourcefile"},{"id":"io.github.libtmux.Server.Server.options","name":"options","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"Options","raw":"@Operation(Kind.CAPTURED)\n public Options options()","typeScopeBoundary":false}],"doc":{"summary":"The server-wide options, the ones tmux keeps once per server."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":630,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.options","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.options","product":"core","slug":"io-github-libtmux-server-server-options"},{"id":"io.github.libtmux.Server.Server.globalOptions","name":"globalOptions","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"Options","raw":"@Operation(Kind.CAPTURED)\n public Options globalOptions()","typeScopeBoundary":false}],"doc":{"summary":"The global session options every session inherits unless it sets its own."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":636,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.globalOptions","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.globalOptions","product":"core","slug":"io-github-libtmux-server-server-globaloptions"},{"id":"io.github.libtmux.Server.Server.environment","name":"environment","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"Environment","raw":"@Operation(Kind.CAPTURED)\n public Environment environment()","typeScopeBoundary":false}],"doc":{"summary":"The server's environment, which every session inherits and every new process is given.","body":"Set here to change what a pane opened later sees — a refreshed {@code SSH_AUTH_SOCK} after\nreconnecting, say. A pane already running has its own copy and is not affected."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":647,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.environment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.environment","product":"core","slug":"io-github-libtmux-server-server-environment"},{"id":"io.github.libtmux.Server.Server.hooks","name":"hooks","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"Hooks","raw":"@Operation(Kind.CAPTURED)\n public Hooks hooks()","typeScopeBoundary":false}],"doc":{"summary":"The global hooks every session inherits."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":653,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.hooks","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.hooks","product":"core","slug":"io-github-libtmux-server-server-hooks"},{"id":"io.github.libtmux.Server.Server.version","name":"version","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"TmuxVersion","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"}],"raw":"@Operation(Kind.READ)\n public TmuxVersion version()","typeScopeBoundary":false}],"doc":{"summary":"Which tmux this server is running.","body":"Asked of the running server rather than of the binary, because the server may have been\nstarted by a different build than the one this client is invoking."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":666,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.version","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.version","product":"core","slug":"io-github-libtmux-server-server-version"},{"id":"io.github.libtmux.Server.Server.identity","name":"identity","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"ServerIdentity","raw":"@Operation(Kind.CAPTURED)\n public ServerIdentity identity()","typeScopeBoundary":false}],"doc":{"summary":"Which server this is. Every handle taken from it is scoped by this."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":678,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.identity","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.identity","product":"core","slug":"io-github-libtmux-server-server-identity"},{"id":"io.github.libtmux.Server.Server.requireSameServer","name":"requireSameServer","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"other","type":"Server"}],"returns":"void","raw":"void requireSameServer(Server other)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":683,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.requireSameServer","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.requireSameServer","product":"core","slug":"io-github-libtmux-server-server-requiresameserver"},{"id":"io.github.libtmux.Server.Server.requireSameIncarnation","name":"requireSameIncarnation","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"snapshot","type":"ServerSnapshot"},{"name":"other","type":"Server"},{"name":"otherSnapshot","type":"ServerSnapshot"}],"returns":"void","raw":"void requireSameIncarnation(ServerSnapshot snapshot, Server other, ServerSnapshot otherSnapshot)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":687,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.requireSameIncarnation","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.requireSameIncarnation","product":"core","slug":"io-github-libtmux-server-server-requiresameincarnation"},{"id":"io.github.libtmux.Server.Server.open","name":"open","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"config","type":"ServerConfig"}],"returns":"Server","raw":"@Operation(Kind.LIFECYCLE)\n public static Server open(ServerConfig config)","typeScopeBoundary":true}],"doc":{"summary":"A server over a transport it owns and closes.","examples":[{"lang":"console","intro":"Connect to a private tmux server. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/Connect.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/Connect.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport java.nio.file.Path;\n\n/** Connect to a private tmux server. */\npublic final class Connect {\n private Connect() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n System.out.println(\"connected=\" + server.isAlive());\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.Connect && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"connected=true\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":696,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.open","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.open","product":"core","slug":"io-github-libtmux-server-server-open"},{"id":"io.github.libtmux.Server.Server.using","name":"using","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"config","type":"ServerConfig"},{"name":"transport","type":"TmuxTransport"}],"returns":"Server","raw":"@Operation(Kind.LIFECYCLE)\n public static Server using(ServerConfig config, TmuxTransport transport)","typeScopeBoundary":true}],"doc":{"summary":"A server over a transport the caller owns. Closing this server never closes it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":705,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.using","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.using","product":"core","slug":"io-github-libtmux-server-server-using"},{"id":"io.github.libtmux.Server.Server.within","name":"within","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"timeout","type":"Duration"}],"returns":"Server","raises":[{"type":"IllegalArgumentException","doc":"if the timeout is not positive"}],"raw":"@Operation(Kind.LIFECYCLE)\n public Server within(Duration timeout)","typeScopeBoundary":false}],"doc":{"summary":"This server, with every command bounded by a deadline of the caller's choosing.","body":"The per-call deadline. Every read and change made through the result, and through every\nhandle taken from it, gives tmux this long rather than the server's default:\n\nShares this server's transport, so it has the same identity and its handles compare equal\nto this server's; closing it releases nothing. {@link #toBuilder} is not how to spell this: a\nserver that owns its transport hands a derived server a transport of its own, which a caller\nbounding many calls would multiply.","examples":[{"lang":"java","code":"List screen = server.within(Duration.ofMillis(500)).panes().get(0).capture();"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":737,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.within","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.within","product":"core","slug":"io-github-libtmux-server-server-within"},{"id":"io.github.libtmux.Server.Server.builder","name":"builder","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"Builder","raw":"@Operation(Kind.LIFECYCLE)\n public static Builder builder()","typeScopeBoundary":true}],"doc":{"summary":"A builder holding the documented defaults."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":747,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.builder","product":"core","slug":"io-github-libtmux-server-server-builder-3ftd"},{"id":"io.github.libtmux.Server.Server.config","name":"config","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"ServerConfig","raw":"@Operation(Kind.CAPTURED)\n public ServerConfig config()","typeScopeBoundary":false}],"doc":{"summary":"How this server was configured."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":753,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.config","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.config","product":"core","slug":"io-github-libtmux-server-server-config"},{"id":"io.github.libtmux.Server.Server.cmd","name":"cmd","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"argv","type":"String","variadic":"positional","doc":"the tmux command and its arguments, each already a separate element"}],"returns":"CommandResult","returnsDoc":"the result, in which a nonzero exit is data rather than a failure","raw":"@Operation(Kind.MUTATION)\n public CommandResult cmd(String... argv)","typeScopeBoundary":false},{"params":[{"name":"argv","type":"List"}],"returns":"CommandResult","raw":"@Operation(Kind.MUTATION)\n public CommandResult cmd(List argv)","typeScopeBoundary":false},{"params":[{"name":"argv","type":"List"},{"name":"timeout","type":"Duration"}],"returns":"CommandResult","raw":"@Operation(Kind.MUTATION)\n public CommandResult cmd(List argv, Duration timeout)","typeScopeBoundary":false}],"doc":{"summary":"Runs one tmux command against this server."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":764,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.cmd","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.cmd","product":"core","slug":"io-github-libtmux-server-server-cmd"},{"id":"io.github.libtmux.Server.Server.control","name":"control","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"session","type":"Session","doc":"a session captured from this server"}],"returns":"ControlClient","raises":[{"type":"TargetGoneException","doc":"if that process is no longer the one on this socket"},{"type":"IllegalArgumentException","doc":"if the session belongs to another server"},{"type":"IllegalStateException","doc":"if this server is closed, or its transport starts no control client"}],"raw":"@Operation(Kind.LIFECYCLE)\n public ControlClient control(Session session)","typeScopeBoundary":false},{"params":[{"name":"session","type":"Session"},{"name":"timeout","type":"Duration","doc":"how long to wait for the client to become ready"}],"returns":"ControlClient","raw":"@Operation(Kind.LIFECYCLE)\n public ControlClient control(Session session, Duration timeout)","typeScopeBoundary":false}],"doc":{"summary":"Attaches a control client to this session's server, and only to the process this capture named.","body":"The client is started by this server's transport. A transport that cannot start processes\nfails here rather than attaching on the local machine. The process id is checked before the\nclient starts and again on the client itself; a server that has taken over the socket is\ndetached before this client changes it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":815,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.control","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.control","product":"core","slug":"io-github-libtmux-server-server-control"},{"id":"io.github.libtmux.Server.Server.snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"ServerSnapshot","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if a listing otherwise fails or the listings cannot form one valid snapshot"}],"raw":"@Operation(Kind.READ)\n public ServerSnapshot snapshot()","typeScopeBoundary":false}],"doc":{"summary":"Captures the whole hierarchy in at most four listings, retrying once if the server is replaced.","body":"One server-wide listing per kind of object, so ordering and membership stay tmux's decision\nrather than being re-derived from another listing's rows.\n\nA failed read throws, including when no daemon is running. An empty graph means a live\nserver successfully reported no sessions."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":875,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.snapshot","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.snapshot","product":"core","slug":"io-github-libtmux-server-server-snapshot"},{"id":"io.github.libtmux.Server.Server.sessions","name":"sessions","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","returnsDoc":"an immutable list in tmux order","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}],"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List sessions(FilterExpr expression)","typeScopeBoundary":false},{"params":[],"returns":"List","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}],"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List sessions()","typeScopeBoundary":false}],"doc":{"summary":"The sessions this expression matches, captured now.","body":"A safe expression is sent as {@code list-sessions -f}. The sessions that come back are still\ntested with the expression. A relation, or an expression tmux cannot apply, reads the whole server and\nfilters that capture; a filtered read that finds nothing is the answer.","examples":[{"lang":"console","intro":"List the sessions returned by a server read. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/ListSessions.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/ListSessions.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport java.nio.file.Path;\nimport java.util.stream.Collectors;\n\n/** List the sessions returned by a server read. */\npublic final class ListSessions {\n private ListSessions() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n System.out.println(\"sessions=\"\n + server.sessions().stream()\n .map(session -> session.name())\n .sorted()\n .collect(Collectors.joining(\",\")));\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.ListSessions && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"sessions=work-one,work-two\n"},{"lang":"console","intro":"Select sessions with a typed name filter. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/Query.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/Query.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport io.github.libtmux.Session_;\nimport java.nio.file.Path;\nimport java.util.stream.Collectors;\n\n/** Select sessions with a typed name filter. */\npublic final class Query {\n private Query() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n var matches = server.sessions(Session_.name().is(\"work-one\"));\n System.out.println(\"matches=\"\n + matches.stream()\n .map(session -> session.name())\n .sorted()\n .collect(Collectors.joining(\",\")));\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.Query && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"matches=work-one\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":901,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.sessions","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.sessions","product":"core","slug":"io-github-libtmux-server-server-sessions"},{"id":"io.github.libtmux.Server.Server.windows","name":"windows","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"List","returnsDoc":"an immutable list in tmux order","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}],"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List windows()","typeScopeBoundary":false},{"params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","returnsDoc":"an immutable list in tmux order","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}],"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List windows(FilterExpr expression)","typeScopeBoundary":false},{"params":[{"name":"id","type":"WindowId"}],"returns":"List","returnsDoc":"an immutable list in tmux order, empty if the window was not found","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}],"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List windows(WindowId id)","typeScopeBoundary":false}],"doc":{"summary":"Captures every winlink, preserving each session and index placement.","examples":[{"lang":"console","intro":"List all windows, then the windows captured for one session. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/ListWindows.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/ListWindows.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport java.nio.file.Path;\nimport java.util.stream.Collectors;\n\n/** List all windows, then the windows captured for one session. */\npublic final class ListWindows {\n private ListWindows() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n System.out.println(\"windows=\"\n + server.windows().stream()\n .map(window -> window.name())\n .sorted()\n .collect(Collectors.joining(\",\")));\n var session = server.session(\"work-one\").orElseThrow();\n System.out.println(\"session-windows=\"\n + session.windows().stream()\n .map(window -> window.name())\n .sorted()\n .collect(Collectors.joining(\",\")));\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.ListWindows && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"windows=editor,editor,logs\nsession-windows=editor,logs\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":936,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.windows","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.windows","product":"core","slug":"io-github-libtmux-server-server-windows"},{"id":"io.github.libtmux.Server.Server.panes","name":"panes","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"List","returnsDoc":"an immutable list in tmux order","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}],"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List panes()","typeScopeBoundary":false},{"params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","returnsDoc":"an immutable list in tmux order","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}],"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List panes(FilterExpr expression)","typeScopeBoundary":false}],"doc":{"summary":"Captures every pane on the server.","examples":[{"lang":"console","intro":"List all panes, then the panes captured for one window. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/ListPanes.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/ListPanes.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport java.nio.file.Path;\n\n/** List all panes, then the panes captured for one window. */\npublic final class ListPanes {\n private ListPanes() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n System.out.println(\"panes=\" + server.panes().size());\n var session = server.session(\"work-one\").orElseThrow();\n var window = session.windows().stream()\n .filter(item -> item.name().equals(\"editor\"))\n .findFirst()\n .orElseThrow();\n System.out.println(\"window-panes=\" + window.panes().size());\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.ListPanes && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"panes=4\nwindow-panes=2\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":974,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.panes","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.panes","product":"core","slug":"io-github-libtmux-server-server-panes"},{"id":"io.github.libtmux.Server.Server.session","name":"session","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"expression","type":"FilterExpr"}],"returns":"Optional","raises":[{"type":"CardinalityException.MultipleMatches","doc":"if more than one session matches; its count is exact, since the whole capture is in hand"},{"type":"ServerUnavailableException","doc":"if no daemon is running"}],"raw":"@Operation(Kind.READ)\n public Optional session(FilterExpr expression)","typeScopeBoundary":false},{"params":[{"name":"name","type":"String"}],"returns":"Optional","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}],"raw":"@Operation(Kind.READ)\n public Optional session(String name)","typeScopeBoundary":false},{"params":[{"name":"id","type":"SessionId"}],"returns":"Optional","returnsDoc":"empty only when a successful capture contains no match","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}],"raw":"@Operation(Kind.READ)\n public Optional session(SessionId id)","typeScopeBoundary":false}],"doc":{"summary":"The one session this expression matches, captured now, or empty when none does.","body":"Reads as {@link #sessions(FilterExpr)} does."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1014,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.session","product":"core","slug":"io-github-libtmux-server-server-session"},{"id":"io.github.libtmux.Server.Server.window","name":"window","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"expression","type":"FilterExpr"}],"returns":"Optional","raises":[{"type":"CardinalityException.MultipleMatches","doc":"if more than one link matches"},{"type":"ServerUnavailableException","doc":"if no daemon is running"}],"raw":"@Operation(Kind.READ)\n public Optional window(FilterExpr expression)","typeScopeBoundary":false},{"params":[{"name":"context","type":"WindowContext"}],"returns":"Optional","returnsDoc":"empty only when a successful capture contains no match","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}],"raw":"@Operation(Kind.READ)\n public Optional window(WindowContext context)","typeScopeBoundary":false}],"doc":{"summary":"The one window link this expression matches, captured now, or empty when none does.","body":"Reads as {@link #windows(FilterExpr)} does. A window linked into two sessions is two links,\nso an expression naming it matches twice."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1028,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.window","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.window","product":"core","slug":"io-github-libtmux-server-server-window"},{"id":"io.github.libtmux.Server.Server.pane","name":"pane","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"expression","type":"FilterExpr"}],"returns":"Optional","raises":[{"type":"CardinalityException.MultipleMatches","doc":"if more than one pane matches"},{"type":"ServerUnavailableException","doc":"if no daemon is running"}],"raw":"@Operation(Kind.READ)\n public Optional pane(FilterExpr expression)","typeScopeBoundary":false},{"params":[{"name":"id","type":"PaneId"}],"returns":"Optional","returnsDoc":"empty only when a successful capture contains no match","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}],"raw":"@Operation(Kind.READ)\n public Optional pane(PaneId id)","typeScopeBoundary":false}],"doc":{"summary":"The one pane this expression matches, captured now, or empty when none does.","body":"Reads as {@link #panes(FilterExpr)} does."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1041,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.pane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.pane","product":"core","slug":"io-github-libtmux-server-server-pane"},{"id":"io.github.libtmux.Server.Server.admissionBound","name":"admissionBound","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"int","returnsDoc":"the bound, or {@link Integer#MAX_VALUE} for a transport that sets none","raw":"@Operation(Kind.CAPTURED)\n public int admissionBound()","typeScopeBoundary":false}],"doc":{"summary":"How many tmux commands this server's transport runs at once, from {@link ServerConfig#maxConcurrentCommands()} for a server {@link #open}ed here."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1064,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.admissionBound","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.admissionBound","product":"core","slug":"io-github-libtmux-server-server-admissionbound"},{"id":"io.github.libtmux.Server.Server.clients","name":"clients","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"List","returnsDoc":"an immutable list in tmux order","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}],"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List clients()","typeScopeBoundary":false}],"doc":{"summary":"Captures every attached client."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1189,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.clients","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.clients","product":"core","slug":"io-github-libtmux-server-server-clients"},{"id":"io.github.libtmux.Server.Server.attachedSessions","name":"attachedSessions","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"List","returnsDoc":"an immutable list in tmux order","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}],"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List attachedSessions()","typeScopeBoundary":false}],"doc":{"summary":"Captures every session a client is attached to."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1205,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.attachedSessions","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.attachedSessions","product":"core","slug":"io-github-libtmux-server-server-attachedsessions"},{"id":"io.github.libtmux.Server.Server.run","name":"run","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"argv","type":"List"}],"returns":"CommandResult","raises":[{"type":"LibTmuxException","doc":"if tmux reported a nonzero exit"}],"raw":"@Operation(Kind.MUTATION)\n public CommandResult run(List argv)","typeScopeBoundary":false}],"doc":{"summary":"Runs a command that is expected to work, and raises when it did not.","body":"The counterpart to {@link #cmd}: use this when a nonzero exit means the thing you asked for\ndid not happen, and {@code cmd} when a nonzero exit is an answer you want to inspect. tmux\nreports an ordinary miss and a real problem the same way, so only the caller knows which it is."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1220,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.run","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.run","product":"core","slug":"io-github-libtmux-server-server-run"},{"id":"io.github.libtmux.Server.Server.runTogether","name":"runTogether","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"snapshot","type":"ServerSnapshot"},{"name":"commands","type":"List>"}],"returns":"CommandResult","raw":"CommandResult runTogether(ServerSnapshot snapshot, List> commands)","typeScopeBoundary":false},{"params":[{"name":"snapshot","type":"ServerSnapshot"},{"name":"input","type":"String"},{"name":"commands","type":"List>"}],"returns":"CommandResult","raw":"CommandResult runTogether(ServerSnapshot snapshot, String input, List> commands)","typeScopeBoundary":false}],"doc":{"summary":"Runs several commands in one invocation, so nothing of this caller's happens between them.","body":"tmux carries a group to its server as one message and runs it there, so a caller that stops\npartway cannot leave the group half applied. That is what an operation whose second command\ncleans up after its first needs."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1265,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.runTogether","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.runTogether","product":"core","slug":"io-github-libtmux-server-server-runtogether"},{"id":"io.github.libtmux.Server.Server.refresh","name":"refresh","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[{"name":"previous","type":"ServerSnapshot"}],"returns":"ServerSnapshot","raw":"ServerSnapshot refresh(ServerSnapshot previous)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1284,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.refresh","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.refresh","product":"core","slug":"io-github-libtmux-server-server-refresh"},{"id":"io.github.libtmux.Server.Server.toBuilder","name":"toBuilder","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"Builder","raw":"@Operation(Kind.CAPTURED)\n public Builder toBuilder()","typeScopeBoundary":false}],"doc":{"summary":"A builder holding every configuration and ownership choice this server made."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1293,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.toBuilder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.toBuilder","product":"core","slug":"io-github-libtmux-server-server-tobuilder"},{"id":"io.github.libtmux.Server.Server.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.LIFECYCLE)\n @Override\n public void close()","typeScopeBoundary":false}],"doc":{"summary":"Releases an owned transport. Idempotent, and never kills tmux."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1300,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.close","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.close","product":"core","slug":"io-github-libtmux-server-server-close"},{"id":"io.github.libtmux.Server.Server.Builder","name":"Builder","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.Server.Server","signatures":[],"doc":{"summary":"Collects configuration and the ownership choice, then builds a server."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1312,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.Builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.Builder","product":"core","slug":"io-github-libtmux-server-server-builder-dv7l","typeScopeBoundary":true},{"id":"io.github.libtmux.Server.Server.Builder.binary","name":"binary","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server.Builder","signatures":[{"params":[{"name":"binary","type":"String"}],"returns":"Builder","raw":"public Builder binary(String binary)","typeScopeBoundary":false}],"doc":{"summary":"Sets the tmux executable."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1323,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.Builder.binary","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.Builder.binary","product":"core","slug":"io-github-libtmux-server-server-builder-binary"},{"id":"io.github.libtmux.Server.Server.Builder.endpoint","name":"endpoint","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server.Builder","signatures":[{"params":[{"name":"endpoint","type":"ServerEndpoint"}],"returns":"Builder","raw":"public Builder endpoint(ServerEndpoint endpoint)","typeScopeBoundary":false}],"doc":{"summary":"Sets which server to talk to."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1329,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.Builder.endpoint","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.Builder.endpoint","product":"core","slug":"io-github-libtmux-server-server-builder-endpoint"},{"id":"io.github.libtmux.Server.Server.Builder.configFile","name":"configFile","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server.Builder","signatures":[{"params":[{"name":"configFile","type":"Path"}],"returns":"Builder","raw":"public Builder configFile(Path configFile)","typeScopeBoundary":false}],"doc":{"summary":"Pins the config file tmux reads."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1335,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.Builder.configFile","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.Builder.configFile","product":"core","slug":"io-github-libtmux-server-server-builder-configfile"},{"id":"io.github.libtmux.Server.Server.Builder.defaultTimeout","name":"defaultTimeout","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server.Builder","signatures":[{"params":[{"name":"defaultTimeout","type":"Duration"}],"returns":"Builder","raw":"public Builder defaultTimeout(Duration defaultTimeout)","typeScopeBoundary":false}],"doc":{"summary":"Sets the deadline a request gets when the caller does not supply one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1341,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.Builder.defaultTimeout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.Builder.defaultTimeout","product":"core","slug":"io-github-libtmux-server-server-builder-defaulttimeout"},{"id":"io.github.libtmux.Server.Server.Builder.force256Colors","name":"force256Colors","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server.Builder","signatures":[{"params":[{"name":"force256Colors","type":"boolean"}],"returns":"Builder","raw":"public Builder force256Colors(boolean force256Colors)","typeScopeBoundary":false}],"doc":{"summary":"Forces 256-color client support; false preserves terminal detection."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1347,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.Builder.force256Colors","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.Builder.force256Colors","product":"core","slug":"io-github-libtmux-server-server-builder-force256colors"},{"id":"io.github.libtmux.Server.Server.Builder.transport","name":"transport","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server.Builder","signatures":[{"params":[{"name":"transport","type":"TmuxTransport"}],"returns":"Builder","raw":"public Builder transport(TmuxTransport transport)","typeScopeBoundary":false}],"doc":{"summary":"Borrows a caller-owned transport, which the built server will never close."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1353,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.Builder.transport","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.Builder.transport","product":"core","slug":"io-github-libtmux-server-server-builder-transport"},{"id":"io.github.libtmux.Server.Server.Builder.build","name":"build","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server.Builder","signatures":[{"params":[],"returns":"Server","raw":"public Server build()","typeScopeBoundary":false}],"doc":{"summary":"Builds the server, owning a new transport unless one was borrowed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1359,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.Builder.build","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.Builder.build","product":"core","slug":"io-github-libtmux-server-server-builder-build"},{"id":"io.github.libtmux.ServerConfig.ServerConfig","name":"ServerConfig","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"What a server needs to know before it runs anything: which tmux, which server, which config.","body":"Deliberately a builder-built class rather than a record. tmux keeps growing flags, and a\nrecord's canonical constructor is public API: every field added later would break both source and\nbinary compatibility for anyone who had constructed one.\n\nNothing here contacts tmux. A config can be built, stored and compared on a machine that has\nno tmux installed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig","typeScopeBoundary":false},{"id":"io.github.libtmux.ServerConfig.ServerConfig.builder","name":"builder","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"params":[],"returns":"Builder","raw":"public static Builder builder()","typeScopeBoundary":true}],"doc":{"summary":"A builder holding the documented defaults."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.builder","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-yotf"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.binary","name":"binary","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"params":[],"returns":"String","raw":"public String binary()","typeScopeBoundary":false}],"doc":{"summary":"The tmux executable, resolved on {@code PATH} unless it is an absolute path."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":55,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.binary","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.binary","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-binary"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.binaryPath","name":"binaryPath","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"params":[],"returns":"String","raw":"public String binaryPath()","typeScopeBoundary":false}],"doc":{"summary":"The binary as a path, resolved the way this process resolves it.","body":"What to write into a command a pane will run. A pane resolves a bare name against the\nuser's {@code PATH} rather than this process's, and a tmux client built from a different\nrelease than the server it reaches is dropped rather than served. Falls back to the name when\nnothing on {@code PATH} matches, which leaves the caller no worse off."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":67,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.binaryPath","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.binaryPath","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-binarypath"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.endpoint","name":"endpoint","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"params":[],"returns":"ServerEndpoint","raw":"public ServerEndpoint endpoint()","typeScopeBoundary":false}],"doc":{"summary":"Which tmux server to talk to."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":88,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.endpoint","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.endpoint","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-endpoint"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.configFile","name":"configFile","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"params":[],"returns":"Optional","raw":"public Optional configFile()","typeScopeBoundary":false}],"doc":{"summary":"The config file tmux should read, if the caller pinned one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":93,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.configFile","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.configFile","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-configfile"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.defaultTimeout","name":"defaultTimeout","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"params":[],"returns":"Duration","raw":"public Duration defaultTimeout()","typeScopeBoundary":false}],"doc":{"summary":"How long a request waits when the caller does not say."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":98,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.defaultTimeout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.defaultTimeout","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-defaulttimeout"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.force256Colors","name":"force256Colors","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"params":[],"returns":"boolean","raw":"public boolean force256Colors()","typeScopeBoundary":false}],"doc":{"summary":"Whether tmux clients advertise 256-color support regardless of terminal detection."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":103,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.force256Colors","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.force256Colors","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-force256colors"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.observer","name":"observer","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"params":[],"returns":"OperationObserver","raw":"public OperationObserver observer()","typeScopeBoundary":false}],"doc":{"summary":"Where each command's report goes. {@link OperationObserver#NONE} until a caller sets one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":108,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.observer","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.observer","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-observer"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.endpointCommand","name":"endpointCommand","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"params":[],"returns":"List","raw":"@ReadOnly\n public List endpointCommand()","typeScopeBoundary":false}],"doc":{"summary":"The argv prefix every command on this server begins with: the binary, {@code -u}, optional color flag, the server selection, and the config file if one was pinned.","body":"{@code -u} says this client reads UTF-8. Without it tmux decides from {@code LC_ALL},\n{@code LC_CTYPE} and {@code LANG}, and a client it judges not to be UTF-8 has every non-ASCII\ncharacter in every reply replaced with {@code _} before it is sent — so a session named\n{@code café} reads back as {@code caf_}, and a pane's directory becomes a path that does not\nexist. The flag is in tmux's option string on every supported release.\n\nDeliberately the flag rather than {@code LC_ALL} in the child's environment, which would\nreach the same conclusion and then be inherited by every pane the server spawns from this\nclient."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":126,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.endpointCommand","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.endpointCommand","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-endpointcommand"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.maxConcurrentCommands","name":"maxConcurrentCommands","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"params":[],"returns":"int","raw":"public int maxConcurrentCommands()","typeScopeBoundary":false}],"doc":{"summary":"How many tmux commands {@link Server#open} lets run at once; more wait their turn.","body":"A coroutine dispatcher or effect pool that runs blocking calls for this server gains nothing\nfrom more threads than this: the rest would only wait for admission."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":146,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.maxConcurrentCommands","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.maxConcurrentCommands","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-maxconcurrentcommands"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.toBuilder","name":"toBuilder","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"params":[],"returns":"Builder","raw":"public Builder toBuilder()","typeScopeBoundary":false}],"doc":{"summary":"A builder holding every choice this config made."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":151,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.toBuilder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.toBuilder","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-tobuilder"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.Builder","name":"Builder","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[],"doc":{"summary":"Collects the choices; {@link #build()} checks them."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":164,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.Builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.Builder","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-ly8z","typeScopeBoundary":true},{"id":"io.github.libtmux.ServerConfig.ServerConfig.Builder.binary","name":"binary","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig.Builder","signatures":[{"params":[{"name":"binary","type":"String"}],"returns":"Builder","raw":"public Builder binary(String binary)","typeScopeBoundary":false}],"doc":{"summary":"Sets the tmux executable."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":177,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.Builder.binary","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.Builder.binary","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-binary"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.Builder.endpoint","name":"endpoint","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig.Builder","signatures":[{"params":[{"name":"endpoint","type":"ServerEndpoint"}],"returns":"Builder","raw":"public Builder endpoint(ServerEndpoint endpoint)","typeScopeBoundary":false}],"doc":{"summary":"Sets which server to talk to."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":183,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.Builder.endpoint","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.Builder.endpoint","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-endpoint"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.Builder.configFile","name":"configFile","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig.Builder","signatures":[{"params":[{"name":"configFile","type":"Path"}],"returns":"Builder","raw":"public Builder configFile(Path configFile)","typeScopeBoundary":false}],"doc":{"summary":"Pins the config file tmux reads, which is how a test isolates itself from a user's own."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":189,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.Builder.configFile","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.Builder.configFile","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-configfile"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.Builder.defaultTimeout","name":"defaultTimeout","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig.Builder","signatures":[{"params":[{"name":"defaultTimeout","type":"Duration"}],"returns":"Builder","raw":"public Builder defaultTimeout(Duration defaultTimeout)","typeScopeBoundary":false}],"doc":{"summary":"Sets the deadline a request gets when the caller does not supply one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":195,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.Builder.defaultTimeout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.Builder.defaultTimeout","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-defaulttimeout"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.Builder.force256Colors","name":"force256Colors","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig.Builder","signatures":[{"params":[{"name":"force256Colors","type":"boolean"}],"returns":"Builder","raw":"public Builder force256Colors(boolean force256Colors)","typeScopeBoundary":false}],"doc":{"summary":"Forces 256-color client support with tmux's {@code -2}; false uses terminal detection."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":201,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.Builder.force256Colors","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.Builder.force256Colors","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-force256colors"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.Builder.observer","name":"observer","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig.Builder","signatures":[{"params":[{"name":"observer","type":"OperationObserver"}],"returns":"Builder","raw":"public Builder observer(OperationObserver observer)","typeScopeBoundary":false}],"doc":{"summary":"Receives a report after each command. The report names verbs, not arguments."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":207,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.Builder.observer","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.Builder.observer","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-observer"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.Builder.maxConcurrentCommands","name":"maxConcurrentCommands","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig.Builder","signatures":[{"params":[{"name":"maxConcurrentCommands","type":"int"}],"returns":"Builder","raises":[{"type":"IllegalArgumentException","doc":"if {@code maxConcurrentCommands} is not positive"}],"raw":"public Builder maxConcurrentCommands(int maxConcurrentCommands)","typeScopeBoundary":false}],"doc":{"summary":"Sets how many tmux commands {@link Server#open} lets run at once, four unless set."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":217,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.Builder.maxConcurrentCommands","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.Builder.maxConcurrentCommands","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-maxconcurrentcommands"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.Builder.build","name":"build","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig.Builder","signatures":[{"params":[],"returns":"ServerConfig","raises":[{"type":"IllegalArgumentException","doc":"if a choice would only fail later"}],"raw":"public ServerConfig build()","typeScopeBoundary":false}],"doc":{"summary":"Builds an immutable config, rejecting choices that could only fail later."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":230,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.Builder.build","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.Builder.build","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-build"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint","name":"ServerEndpoint","kind":"interface","modifiers":[],"signatures":[],"doc":{"summary":"Which tmux server to talk to.","body":"A value, decided and comparable before any process runs. Two endpoints are equal when they name\nthe same server lexically; nothing here resolves symlinks, contacts the filesystem, or opens a\nsocket. That matters because an endpoint is routinely built, logged and compared while the socket\nit names does not exist yet.\n\nValidation that needs tmux — above all whether a socket path fits the platform's\n{@code sun_path} — happens at dispatch, where the error can carry the command that hit it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint","typeScopeBoundary":false},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.flags","name":"flags","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint","signatures":[{"params":[],"returns":"List","raw":"@ReadOnly\n List flags();","typeScopeBoundary":false}],"doc":{"summary":"The flags that select this server, in argv order."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.flags","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.flags","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-flags"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.defaultSocket","name":"defaultSocket","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint","signatures":[{"params":[],"returns":"ServerEndpoint","raw":"static ServerEndpoint defaultSocket()","typeScopeBoundary":true}],"doc":{"summary":"tmux's own default server, wherever tmux decides that is."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.defaultSocket","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.defaultSocket","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-defaultsocket"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.namedSocket","name":"namedSocket","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"ServerEndpoint","raw":"static ServerEndpoint namedSocket(String name)","typeScopeBoundary":true}],"doc":{"summary":"A server named with {@code -L}, resolved by tmux under its own socket directory."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.namedSocket","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.namedSocket","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-namedsocket-uymy"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.socketPath","name":"socketPath","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint","signatures":[{"params":[{"name":"path","type":"Path"}],"returns":"ServerEndpoint","raw":"static ServerEndpoint socketPath(Path path)","typeScopeBoundary":true}],"doc":{"summary":"A server at an exact socket path, selected with {@code -S}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.socketPath","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.socketPath","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-socketpath-l4dk"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.Default","name":"Default","kind":"class","modifiers":[],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint","signatures":[{"raw":"record Default() implements ServerEndpoint","params":[]}],"doc":{"summary":"Adds no flags, so tmux applies its own default socket resolution."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.Default","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.Default","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-default","typeScopeBoundary":true},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.Default.flags","name":"flags","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint.Default","signatures":[{"params":[],"returns":"List","raw":"@Override\n @ReadOnly\n public List flags()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":42,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.Default.flags","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.Default.flags","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-default-flags"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.NamedSocket","name":"NamedSocket","kind":"class","modifiers":[],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint","signatures":[{"raw":"record NamedSocket(String name) implements ServerEndpoint","params":[{"name":"name","type":"String","doc":"a bare name, with no path separator"}]}],"doc":{"summary":"A server tmux locates by name under its own socket directory."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.NamedSocket","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.NamedSocket","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-namedsocket-1lu0","typeScopeBoundary":true},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.NamedSocket.flags","name":"flags","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint.NamedSocket","signatures":[{"params":[],"returns":"List","raw":"@Override\n @ReadOnly\n public List flags()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":68,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.NamedSocket.flags","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.NamedSocket.flags","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-namedsocket-flags"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.NamedSocket.name","name":"name","kind":"method","parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint.NamedSocket","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"a bare name, with no path separator"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.NamedSocket.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.NamedSocket.name","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-namedsocket-name"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.SocketPath","name":"SocketPath","kind":"class","modifiers":[],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint","signatures":[{"raw":"record SocketPath(Path path) implements ServerEndpoint","params":[{"name":"path","type":"Path","doc":"the socket path, anchored and lexically normalized so equal sockets compare equal"}]}],"doc":{"summary":"A server at an exact socket path."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":80,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.SocketPath","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.SocketPath","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-socketpath-1obc","typeScopeBoundary":true},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.SocketPath.flags","name":"flags","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint.SocketPath","signatures":[{"params":[],"returns":"List","raw":"@Override\n @ReadOnly\n public List flags()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":90,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.SocketPath.flags","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.SocketPath.flags","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-socketpath-flags"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.SocketPath.path","name":"path","kind":"method","parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint.SocketPath","modifiers":[],"signatures":[{"params":[],"returns":"Path"}],"doc":{"summary":"the socket path, anchored and lexically normalized so equal sockets compare equal"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.SocketPath.path","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.SocketPath.path","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-socketpath-path"},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity","name":"ServerIdentity","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Which tmux server a handle belongs to.","body":"Two entities with the same id are the same entity only if they came from the same server. The\nrealm exists because socket text alone is not enough: two unrelated execution realms — a local\nprocess and a container, say — can both hold a server at {@code /tmp/s}, and entities from them\nmust not compare equal.\n\nThe server is identified by a digest of its endpoint rather than by the endpoint itself, so an\nidentity can be logged, compared and embedded in a message without carrying a socket path."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerIdentity.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerIdentity","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerIdentity.ServerIdentity","product":"core","slug":"io-github-libtmux-serveridentity-serveridentity","typeScopeBoundary":false},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity.of","name":"of","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.ServerIdentity.ServerIdentity","signatures":[{"params":[{"name":"realm","type":"String"},{"name":"endpoint","type":"ServerEndpoint"}],"returns":"ServerIdentity","raw":"static ServerIdentity of(String realm, ServerEndpoint endpoint)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerIdentity.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerIdentity.of","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerIdentity.ServerIdentity.of","product":"core","slug":"io-github-libtmux-serveridentity-serveridentity-of"},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity.at","name":"at","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerIdentity.ServerIdentity","signatures":[{"params":[{"name":"pid","type":"long"},{"name":"startTime","type":"OptionalLong"}],"returns":"ServerIdentity","raw":"ServerIdentity at(long pid, OptionalLong startTime)","typeScopeBoundary":false}],"doc":{"summary":"This server as one process: a pid alone can be reused, so its start time is part of it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerIdentity.java","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerIdentity.at","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerIdentity.ServerIdentity.at","product":"core","slug":"io-github-libtmux-serveridentity-serveridentity-at"},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity.realm","name":"realm","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerIdentity.ServerIdentity","signatures":[{"params":[],"returns":"String","raw":"public String realm()","typeScopeBoundary":false}],"doc":{"summary":"The execution realm the transport reaches tmux through."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerIdentity.java","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerIdentity.realm","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerIdentity.ServerIdentity.realm","product":"core","slug":"io-github-libtmux-serveridentity-serveridentity-realm"},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity.server","name":"server","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerIdentity.ServerIdentity","signatures":[{"params":[],"returns":"String","raw":"public String server()","typeScopeBoundary":false}],"doc":{"summary":"A stable opaque key for the server, carrying no socket path."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerIdentity.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerIdentity.server","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerIdentity.ServerIdentity.server","product":"core","slug":"io-github-libtmux-serveridentity-serveridentity-server"},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity.processId","name":"processId","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerIdentity.ServerIdentity","signatures":[{"params":[],"returns":"OptionalLong","raw":"public OptionalLong processId()","typeScopeBoundary":false}],"doc":{"summary":"The live tmux process, present on an identity bound to a captured handle."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerIdentity.java","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerIdentity.processId","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerIdentity.ServerIdentity.processId","product":"core","slug":"io-github-libtmux-serveridentity-serveridentity-processid"},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity.equals","name":"equals","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerIdentity.ServerIdentity","signatures":[{"params":[{"name":"other","type":"Object"}],"returns":"boolean","raw":"@Override\n public boolean equals(Object other)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerIdentity.java","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerIdentity.equals","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerIdentity.ServerIdentity.equals","product":"core","slug":"io-github-libtmux-serveridentity-serveridentity-equals"},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity.hashCode","name":"hashCode","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerIdentity.ServerIdentity","signatures":[{"params":[],"returns":"int","raw":"@Override\n public int hashCode()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerIdentity.java","line":72,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerIdentity.hashCode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerIdentity.ServerIdentity.hashCode","product":"core","slug":"io-github-libtmux-serveridentity-serveridentity-hashcode"},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerIdentity.ServerIdentity","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerIdentity.java","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerIdentity.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerIdentity.ServerIdentity.toString","product":"core","slug":"io-github-libtmux-serveridentity-serveridentity-tostring"},{"id":"io.github.libtmux.Session.Session","name":"Session","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"One tmux session, as one capture saw it.","body":"Identity is the server and the session id. A name is state: a user can rename a session at any\ntime, and a handle whose equality included the name would stop matching itself the moment they\ndid.\n\n{@link #windows()} reads the capture this handle came from and issues no command. To see newer\nstate, take a new capture.\n\nA method named for a captured field returns what {@link #info()} holds and does no I/O;\n{@link #refresh()} reads again. Every other method asks tmux now."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session","product":"core","slug":"io-github-libtmux-session-session","typeScopeBoundary":false},{"id":"io.github.libtmux.Session.Session.Session","name":"Session","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"state","type":"SessionState"}],"raw":"Session(Server server, ServerSnapshot snapshot, SessionState state)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.Session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.Session","product":"core","slug":"io-github-libtmux-session-session-session"},{"id":"io.github.libtmux.Session.Session.info","name":"info","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"SessionState","raw":"@Operation(Kind.CAPTURED)\n public SessionState info()","typeScopeBoundary":false}],"doc":{"summary":"The fields this capture stored. A later rename is not visible here."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.info","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.info","product":"core","slug":"io-github-libtmux-session-session-info"},{"id":"io.github.libtmux.Session.Session.id","name":"id","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"SessionId","raw":"@Operation(Kind.CAPTURED)\n public SessionId id()","typeScopeBoundary":false}],"doc":{"summary":"The session's stable id."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.id","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.id","product":"core","slug":"io-github-libtmux-session-session-id"},{"id":"io.github.libtmux.Session.Session.name","name":"name","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"String","raw":"@Operation(Kind.CAPTURED)\n public String name()","typeScopeBoundary":false}],"doc":{"summary":"The session name, which a user may change at any time."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.name","product":"core","slug":"io-github-libtmux-session-session-name"},{"id":"io.github.libtmux.Session.Session.attached","name":"attached","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"boolean","raw":"@Operation(Kind.CAPTURED)\n public boolean attached()","typeScopeBoundary":false}],"doc":{"summary":"Whether a client was attached when this was captured."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":65,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.attached","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.attached","product":"core","slug":"io-github-libtmux-session-session-attached"},{"id":"io.github.libtmux.Session.Session.server","name":"server","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"Server","raw":"@Operation(Kind.CAPTURED)\n public Server server()","typeScopeBoundary":false}],"doc":{"summary":"The server this session lives on."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":71,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.server","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.server","product":"core","slug":"io-github-libtmux-session-session-server"},{"id":"io.github.libtmux.Session.Session.snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"ServerSnapshot","raw":"ServerSnapshot snapshot()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":76,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.snapshot","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.snapshot","product":"core","slug":"io-github-libtmux-session-session-snapshot"},{"id":"io.github.libtmux.Session.Session.activeWindow","name":"activeWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"Optional","raw":"@Operation(Kind.CAPTURED)\n public Optional activeWindow()","typeScopeBoundary":false}],"doc":{"summary":"The window tmux had active in this session. A pure read of the capture."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":81,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.activeWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.activeWindow","product":"core","slug":"io-github-libtmux-session-session-activewindow"},{"id":"io.github.libtmux.Session.Session.activePane","name":"activePane","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"Optional","raw":"@Operation(Kind.CAPTURED)\n public Optional activePane()","typeScopeBoundary":false}],"doc":{"summary":"The active pane of the active window. A pure read of the capture."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":87,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.activePane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.activePane","product":"core","slug":"io-github-libtmux-session-session-activepane"},{"id":"io.github.libtmux.Session.Session.selectWindow","name":"selectWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[{"name":"window","type":"Window"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void selectWindow(Window window)","typeScopeBoundary":false}],"doc":{"summary":"Makes a window of this session the active one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":93,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.selectWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.selectWindow","product":"core","slug":"io-github-libtmux-session-session-selectwindow"},{"id":"io.github.libtmux.Session.Session.nextWindow","name":"nextWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void nextWindow()","typeScopeBoundary":false}],"doc":{"summary":"Moves to the next window in this session, wrapping at the end."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":110,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.nextWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.nextWindow","product":"core","slug":"io-github-libtmux-session-session-nextwindow"},{"id":"io.github.libtmux.Session.Session.previousWindow","name":"previousWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void previousWindow()","typeScopeBoundary":false}],"doc":{"summary":"Moves to the previous window in this session, wrapping at the start."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":116,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.previousWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.previousWindow","product":"core","slug":"io-github-libtmux-session-session-previouswindow"},{"id":"io.github.libtmux.Session.Session.lastWindow","name":"lastWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"void","raises":[{"type":"LibTmuxException","doc":"if nothing else has been active yet, which tmux reports rather than silently staying put"}],"raw":"@Operation(Kind.MUTATION)\n public void lastWindow()","typeScopeBoundary":false}],"doc":{"summary":"Returns to the window that was active before this one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":127,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.lastWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.lastWindow","product":"core","slug":"io-github-libtmux-session-session-lastwindow"},{"id":"io.github.libtmux.Session.Session.detachClients","name":"detachClients","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void detachClients()","typeScopeBoundary":false}],"doc":{"summary":"Detaches every client attached to this session, leaving the session running."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":133,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.detachClients","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.detachClients","product":"core","slug":"io-github-libtmux-session-session-detachclients"},{"id":"io.github.libtmux.Session.Session.options","name":"options","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"Options","raw":"@Operation(Kind.CAPTURED)\n public Options options()","typeScopeBoundary":false}],"doc":{"summary":"This session's own options."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":139,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.options","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.options","product":"core","slug":"io-github-libtmux-session-session-options"},{"id":"io.github.libtmux.Session.Session.environment","name":"environment","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"Environment","raw":"@Operation(Kind.CAPTURED)\n public Environment environment()","typeScopeBoundary":false}],"doc":{"summary":"This session's own environment, which a process started in it is given on top of the server's."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":148,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.environment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.environment","product":"core","slug":"io-github-libtmux-session-session-environment"},{"id":"io.github.libtmux.Session.Session.hooks","name":"hooks","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"Hooks","raw":"@Operation(Kind.CAPTURED)\n public Hooks hooks()","typeScopeBoundary":false}],"doc":{"summary":"This session's own hooks."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":154,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.hooks","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.hooks","product":"core","slug":"io-github-libtmux-session-session-hooks"},{"id":"io.github.libtmux.Session.Session.setHistoryLimit","name":"setHistoryLimit","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[{"name":"lines","type":"int"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void setHistoryLimit(int lines)","typeScopeBoundary":false}],"doc":{"summary":"Sets the scrollback retained by panes created in this session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":160,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.setHistoryLimit","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.setHistoryLimit","product":"core","slug":"io-github-libtmux-session-session-sethistorylimit"},{"id":"io.github.libtmux.Session.Session.windows","name":"windows","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"List","raw":"@ReadOnly\n @Operation(Kind.CAPTURED)\n public List windows()","typeScopeBoundary":false}],"doc":{"summary":"This session's windows, in tmux's order. A pure read of the capture.","examples":[{"lang":"console","intro":"List all windows, then the windows captured for one session. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/ListWindows.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/ListWindows.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport java.nio.file.Path;\nimport java.util.stream.Collectors;\n\n/** List all windows, then the windows captured for one session. */\npublic final class ListWindows {\n private ListWindows() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n System.out.println(\"windows=\"\n + server.windows().stream()\n .map(window -> window.name())\n .sorted()\n .collect(Collectors.joining(\",\")));\n var session = server.session(\"work-one\").orElseThrow();\n System.out.println(\"session-windows=\"\n + session.windows().stream()\n .map(window -> window.name())\n .sorted()\n .collect(Collectors.joining(\",\")));\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.ListWindows && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"windows=editor,editor,logs\nsession-windows=editor,logs\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":169,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.windows","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.windows","product":"core","slug":"io-github-libtmux-session-session-windows"},{"id":"io.github.libtmux.Session.Session.newWindow","name":"newWindow","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[{"name":"name","type":"String","doc":"the window name"}],"returns":"Window","returnsDoc":"a handle on the created window, from a fresh capture","raw":"@Operation(Kind.MUTATION)\n public Window newWindow(String name)","typeScopeBoundary":false},{"params":[{"name":"configure","type":"Consumer","doc":"receives a builder holding tmux's defaults"}],"returns":"Window","returnsDoc":"a handle on the created window, from a fresh capture","raw":"@Operation(Kind.MUTATION)\n public Window newWindow(Consumer configure)","typeScopeBoundary":false},{"params":[{"name":"spec","type":"WindowSpec"}],"returns":"Window","returnsDoc":"a handle on the created window, from a fresh capture","raw":"@Operation(Kind.MUTATION)\n public Window newWindow(WindowSpec spec)","typeScopeBoundary":false}],"doc":{"summary":"Creates a window in this session and returns that exact window.","body":"The creating command reports which window it made, rather than the name being looked up\nafterwards: two windows may share a name, and then a lookup cannot say which one is new.","examples":[{"lang":"console","intro":"Create a window and read the updated session. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/NewWindow.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/NewWindow.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport io.github.libtmux.WindowSpec;\nimport java.nio.file.Path;\nimport java.util.stream.Collectors;\n\n/** Create a window and read the updated session. */\npublic final class NewWindow {\n private NewWindow() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n var session = server.session(\"work-one\").orElseThrow();\n var window = session.newWindow(WindowSpec.builder()\n .named(\"api-window\")\n .running(\"/bin/cat\")\n .build());\n System.out.println(\"created=\" + window.name());\n var refreshed = server.session(\"work-one\").orElseThrow();\n System.out.println(\"windows=\"\n + refreshed.windows().stream()\n .map(item -> item.name())\n .sorted()\n .collect(Collectors.joining(\",\")));\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.NewWindow && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"created=api-window\nwindows=api-window,editor,logs\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":186,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.newWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.newWindow","product":"core","slug":"io-github-libtmux-session-session-newwindow"},{"id":"io.github.libtmux.Session.Session.expand","name":"expand","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[{"name":"format","type":"String","doc":"a tmux format, usually of the shape {@code #{name}}"}],"returns":"String","returnsDoc":"the expansion, whole when it spans lines and empty when the format expanded to nothing","raw":"@Operation(Kind.READ)\n public String expand(String format)","typeScopeBoundary":false}],"doc":{"summary":"Expands a tmux format in this session's context, and answers with what it came to.","body":"The same escape hatch {@link Pane#expand} gives, resolved against this session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":247,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.expand","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.expand","product":"core","slug":"io-github-libtmux-session-session-expand"},{"id":"io.github.libtmux.Session.Session.rename","name":"rename","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"Session","raw":"@CheckReturnValue\n @Operation(Kind.MUTATION)\n public Session rename(String name)","typeScopeBoundary":false}],"doc":{"summary":"Renames this session and returns its replacement capture.","body":"Retain the result to read the changed name. This handle keeps its original captured state."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":261,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.rename","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.rename","product":"core","slug":"io-github-libtmux-session-session-rename"},{"id":"io.github.libtmux.Session.Session.kill","name":"kill","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void kill()","typeScopeBoundary":false}],"doc":{"summary":"Ends this session. Every window in it goes with it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":269,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.kill","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.kill","product":"core","slug":"io-github-libtmux-session-session-kill"},{"id":"io.github.libtmux.Session.Session.refresh","name":"refresh","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"Session","raises":[{"type":"TargetGoneException","doc":"if the session is gone from a server that still answers"},{"type":"ServerUnavailableException","doc":"if no daemon is running"}],"raw":"@CheckReturnValue\n @Operation(Kind.READ)\n public Session refresh()","typeScopeBoundary":false}],"doc":{"summary":"Takes a new capture and returns this session as it is now.","body":"This handle remains unchanged. Use the returned handle for subsequent state reads."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":282,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.refresh","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.refresh","product":"core","slug":"io-github-libtmux-session-session-refresh"},{"id":"io.github.libtmux.Session.Session.equals","name":"equals","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[{"name":"other","type":"Object"}],"returns":"boolean","raw":"@Override\n public boolean equals(Object other)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":291,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.equals","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.equals","product":"core","slug":"io-github-libtmux-session-session-equals"},{"id":"io.github.libtmux.Session.Session.hashCode","name":"hashCode","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"int","raw":"@Override\n public int hashCode()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":298,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.hashCode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.hashCode","product":"core","slug":"io-github-libtmux-session-session-hashcode"},{"id":"io.github.libtmux.Session.Session.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":303,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.toString","product":"core","slug":"io-github-libtmux-session-session-tostring"},{"id":"io.github.libtmux.SessionCreation.SessionCreation","name":"SessionCreation","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Assembles the pieces {@link Server#newSession(SessionSpec)} needs before tmux has a session yet."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionCreation.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionCreation","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionCreation.SessionCreation","product":"core","slug":"io-github-libtmux-sessioncreation-sessioncreation","typeScopeBoundary":false},{"id":"io.github.libtmux.SessionCreation.SessionCreation.failureMessage","name":"failureMessage","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.SessionCreation.SessionCreation","signatures":[{"params":[{"name":"config","type":"ServerConfig"},{"name":"result","type":"CommandResult"}],"returns":"String","raw":"static String failureMessage(ServerConfig config, CommandResult result)","typeScopeBoundary":true}],"doc":{"summary":"tmux exits 0 even when nothing was created: an explicit {@code -S} under a directory that does not exist prints its own {@code error creating ...} and still returns success, and a binary that is not tmux at all can exit 0 with nothing on stdout the same way {@code run} cannot tell apart from a real session id. Reads tmux's own words when it spoke and names the configured binary when it did not, rather than letting an empty list reach {@code SessionId} and throw an unchecked collection exception with neither in it.","body":"tmux 3.2a says nothing at all when it cannot create its socket: the server queues the\nerror and tells the client to exit at once, and the client leaves before the error reaches\nit. So a silent exit checks the one cause this client can see for itself."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionCreation.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionCreation.failureMessage","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionCreation.SessionCreation.failureMessage","product":"core","slug":"io-github-libtmux-sessioncreation-sessioncreation-failuremessage"},{"id":"io.github.libtmux.SessionCreation.SessionCreation.versionForCreation","name":"versionForCreation","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.SessionCreation.SessionCreation","signatures":[{"params":[{"name":"server","type":"Server"}],"returns":"TmuxVersion","raw":"static TmuxVersion versionForCreation(Server server)","typeScopeBoundary":true}],"doc":{"summary":"The version to gate a session-creation spec against.","body":"{@code new-session} may be the first command said to a fresh socket, where {@link\nServer#version()} fails for want of a daemon. So this asks a running daemon when one answers,\nsince it may be a different build than the configured binary, and otherwise asks the binary\nthrough {@link #binaryVersion}.\n\nReads {@link SnapshotCapture#processForCreation()} rather than {@link Server#version()}: a\ndaemon too old to talk to fails the identity probe as one never started does (\"server exited\nunexpectedly\"), and {@link ServerUnavailableException} does not keep that distinction.\nFalling back to {@code binaryVersion} for such a daemon would report the binary's version as\nthe daemon's."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionCreation.java","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionCreation.versionForCreation","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionCreation.SessionCreation.versionForCreation","product":"core","slug":"io-github-libtmux-sessioncreation-sessioncreation-versionforcreation"},{"id":"io.github.libtmux.SessionId.SessionId","name":"SessionId","kind":"class","modifiers":[],"signatures":[{"raw":"public record SessionId(String value)","params":[{"name":"value","type":"String","doc":"the id including its {@code $} sigil"}]}],"doc":{"summary":"A tmux session id, such as {@code $0}.","body":"Stable for the life of the session, unlike a session name, which a user can change at any\ntime. A separate type from {@link WindowId} and {@link PaneId} because tmux accepts any of them\nas {@code -t} syntax: passing the wrong one is not an error tmux reports, it simply addresses\nnothing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionId.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionId","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionId.SessionId","product":"core","slug":"io-github-libtmux-sessionid-sessionid","typeScopeBoundary":false},{"id":"io.github.libtmux.SessionId.SessionId.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionId.SessionId","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionId.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionId.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionId.SessionId.toString","product":"core","slug":"io-github-libtmux-sessionid-sessionid-tostring"},{"id":"io.github.libtmux.SessionId.SessionId.value","name":"value","kind":"method","parent":"io.github.libtmux.SessionId.SessionId","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the id including its {@code $} sigil"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionId.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionId.value","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionId.SessionId.value","product":"core","slug":"io-github-libtmux-sessionid-sessionid-value"},{"id":"io.github.libtmux.SessionLookup.SessionLookup","name":"SessionLookup","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Resolves a caller-given session name to the id tmux keeps it under."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionLookup.java","line":9,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionLookup","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionLookup.SessionLookup","product":"core","slug":"io-github-libtmux-sessionlookup-sessionlookup","typeScopeBoundary":false},{"id":"io.github.libtmux.SessionLookup.SessionLookup.named","name":"named","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.SessionLookup.SessionLookup","signatures":[{"params":[{"name":"server","type":"Server"},{"name":"name","type":"String"}],"returns":"Optional","raw":"static Optional named(Server server, String name)","typeScopeBoundary":true}],"doc":{"summary":"The id of the session tmux keeps under this name, read from one listing.","body":"Not a {@code -t =name} target: tmux reads {@code .} and {@code :} in a target as window and\npane separators, and it may have stored the name differently from how it was given."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionLookup.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionLookup.named","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionLookup.SessionLookup.named","product":"core","slug":"io-github-libtmux-sessionlookup-sessionlookup-named"},{"id":"io.github.libtmux.SessionSpec.SessionSpec","name":"SessionSpec","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"How a session should be made.","body":"The shape {@link SplitSpec} and {@link WindowSpec} use. tmux's {@code -A}, which attaches when\nthe name is taken, is deliberately absent: attaching needs a terminal, and it fails with\n{@code open terminal failed} on every supported release when there is none. Asking\n{@link Server#hasSession} first does the same job from a process that has no tty, which is where a\nlibrary usually runs.","examples":[{"lang":"java","code":"Session build = server.newSession(s -> s.named(\"build\").sized(new Dimensions(120, 40)));"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec","typeScopeBoundary":false},{"id":"io.github.libtmux.SessionSpec.SessionSpec.builder","name":"builder","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"params":[],"returns":"Builder","raw":"public static Builder builder()","typeScopeBoundary":true}],"doc":{"summary":"A builder holding tmux's own defaults: a detached session tmux names itself."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.builder","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-1p4q"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.name","name":"name","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"params":[],"returns":"Optional","raw":"public Optional name()","typeScopeBoundary":false}],"doc":{"summary":"The session name, or empty to let tmux number it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":67,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.name","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-name"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.directory","name":"directory","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"params":[],"returns":"Optional","raw":"public Optional directory()","typeScopeBoundary":false}],"doc":{"summary":"Where the session's first pane starts, or empty to inherit."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":72,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.directory","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.directory","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-directory"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.environment","name":"environment","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"params":[],"returns":"Map","raw":"@ReadOnly\n public Map environment()","typeScopeBoundary":false}],"doc":{"summary":"Variables set for the new session, in the order they were given."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.environment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.environment","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-environment"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.detached","name":"detached","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"params":[],"returns":"boolean","raw":"public boolean detached()","typeScopeBoundary":false}],"doc":{"summary":"Always true, and not a choice.","body":"{@code new-session} attaches unless told not to, and attaching needs a terminal — from a\nprocess without one it fails with {@code open terminal failed}. A library is usually called\nfrom something that has no tty, so the session is always created detached. {@link WindowSpec}\nand {@link SplitSpec} default the other way, because their commands need no terminal."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":90,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.detached","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.detached","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-detached"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.windowName","name":"windowName","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"params":[],"returns":"Optional","raw":"public Optional windowName()","typeScopeBoundary":false}],"doc":{"summary":"The name of the session's first window, or empty for tmux's choice."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":95,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.windowName","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.windowName","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-windowname"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.size","name":"size","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"params":[],"returns":"Optional","raw":"public Optional size()","typeScopeBoundary":false}],"doc":{"summary":"How big the session is, or empty for tmux's default. Requires tmux 3.3."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":100,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.size","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.size","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-size"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.withoutSize","name":"withoutSize","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"params":[],"returns":"boolean","raw":"public boolean withoutSize()","typeScopeBoundary":false}],"doc":{"summary":"Whether tmux is told not to give the session a size at all."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":105,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.withoutSize","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.withoutSize","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-withoutsize"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.detachOthers","name":"detachOthers","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"params":[],"returns":"boolean","raw":"public boolean detachOthers()","typeScopeBoundary":false}],"doc":{"summary":"Whether other clients on this session are detached."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":110,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.detachOthers","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.detachOthers","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-detachothers"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.clientFlags","name":"clientFlags","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"params":[],"returns":"List","raw":"@ReadOnly\n public List clientFlags()","typeScopeBoundary":false}],"doc":{"summary":"Client flags, which tmux takes as one comma-separated list."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":115,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.clientFlags","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.clientFlags","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-clientflags"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.command","name":"command","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"params":[],"returns":"List","raw":"@ReadOnly\n public List command()","typeScopeBoundary":false}],"doc":{"summary":"What the session's first pane runs, empty for the default shell."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":121,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.command","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.command","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-command"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.argv","name":"argv","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"params":[{"name":"format","type":"String","doc":"the row format the caller will read the result back with"},{"name":"running","type":"Supplier","doc":"what the server about to run this is, asked only if it matters"}],"returns":"List","raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something {@code running} does not have"}],"raw":"List argv(String format, Supplier running)","typeScopeBoundary":false}],"doc":{"summary":"The command that makes this session, reporting it through {@code format}.","body":"The version arrives as a supplier because this is the one creating call that may run when\nthere is no server yet, and asking a socket with nothing behind it for its version fails.\nNothing asks unless the spec depends on the answer."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":137,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.argv","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.argv","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-argv"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":192,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.toString","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-tostring"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder","name":"Builder","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[],"doc":{"summary":"Collects the choices, each named for what it does rather than for the field it sets."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":198,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-3lof","typeScopeBoundary":true},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.named","name":"named","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"Builder","raw":"public Builder named(String name)","typeScopeBoundary":false}],"doc":{"summary":"Names the session, where tmux would otherwise number it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":213,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.named","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.named","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-named"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.firstWindowNamed","name":"firstWindowNamed","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"params":[{"name":"windowName","type":"String"}],"returns":"Builder","raw":"public Builder firstWindowNamed(String windowName)","typeScopeBoundary":false}],"doc":{"summary":"Names the session's first window."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":219,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.firstWindowNamed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.firstWindowNamed","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-firstwindownamed"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.running","name":"running","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"params":[{"name":"argv","type":"String","variadic":"positional"}],"returns":"Builder","raw":"public Builder running(String... argv)","typeScopeBoundary":false}],"doc":{"summary":"Runs a command instead of the default shell. tmux reports the session before the command has started, so wait for its pane's command with {@link Pane#await(java.util.function.Predicate, java.time.Duration)} rather than reading it at once."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":228,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.running","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.running","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-running"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.in","name":"in","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"params":[{"name":"directory","type":"Path"}],"returns":"Builder","raw":"public Builder in(Path directory)","typeScopeBoundary":false}],"doc":{"summary":"Starts the session in this directory, resolved against this process's when relative."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":238,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.in","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.in","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-in"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.env","name":"env","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"params":[{"name":"name","type":"String"},{"name":"value","type":"String"}],"returns":"Builder","raw":"public Builder env(String name, String value)","typeScopeBoundary":false}],"doc":{"summary":"Sets one variable in the new session's environment."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":244,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.env","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.env","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-env"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.environment","name":"environment","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"params":[{"name":"variables","type":"Map"}],"returns":"Builder","raw":"public Builder environment(Map variables)","typeScopeBoundary":false}],"doc":{"summary":"Adds several variables to the new session's environment, keeping any already set."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":250,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.environment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.environment","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-environment"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.sized","name":"sized","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"params":[{"name":"size","type":"Dimensions"}],"returns":"Builder","raw":"public Builder sized(Dimensions size)","typeScopeBoundary":false}],"doc":{"summary":"Gives the session a size, which a detached session has no client to take one from."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":256,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.sized","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.sized","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-sized"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.withoutSize","name":"withoutSize","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder withoutSize()","typeScopeBoundary":false}],"doc":{"summary":"Asks tmux not to give the session a size at all."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":262,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.withoutSize","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.withoutSize","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-withoutsize"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.detachOthers","name":"detachOthers","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder detachOthers()","typeScopeBoundary":false}],"doc":{"summary":"Detaches any other client already on this session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":268,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.detachOthers","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.detachOthers","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-detachothers"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.clientFlags","name":"clientFlags","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"params":[{"name":"flags","type":"String","variadic":"positional"}],"returns":"Builder","raw":"public Builder clientFlags(String... flags)","typeScopeBoundary":false}],"doc":{"summary":"Sets the client flags tmux applies, which it reads as one comma-separated list."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":274,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.clientFlags","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.clientFlags","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-clientflags"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.build","name":"build","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"params":[],"returns":"SessionSpec","raw":"public SessionSpec build()","typeScopeBoundary":false}],"doc":{"summary":"The finished spec."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":280,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.build","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.build","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-build"},{"id":"io.github.libtmux.Shell.Shell","name":"Shell","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"A shell command run by tmux, and a tmux command chosen by a shell command's exit status.","body":"tmux expands {@code #(...)} in these strings before a shell sees them. Pass an interpolated\nvalue through {@link TmuxFormats#literal} unless that expansion is what you want."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Shell.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Shell","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Shell.Shell","product":"core","slug":"io-github-libtmux-shell-shell","typeScopeBoundary":false},{"id":"io.github.libtmux.Shell.Shell.Shell","name":"Shell","kind":"method","modifiers":[],"parent":"io.github.libtmux.Shell.Shell","signatures":[{"params":[{"name":"server","type":"Server"}],"raw":"Shell(Server server)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Shell.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Shell.Shell","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Shell.Shell.Shell","product":"core","slug":"io-github-libtmux-shell-shell-shell"},{"id":"io.github.libtmux.Shell.Shell.run","name":"run","kind":"method","modifiers":[],"parent":"io.github.libtmux.Shell.Shell","signatures":[{"params":[{"name":"command","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void run(String command)","typeScopeBoundary":false}],"doc":{"summary":"Runs a shell command for its effect. Nothing is claimed about what it printed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Shell.java","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Shell.run","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Shell.Shell.run","product":"core","slug":"io-github-libtmux-shell-shell-run"},{"id":"io.github.libtmux.Shell.Shell.capturing","name":"capturing","kind":"method","modifiers":[],"parent":"io.github.libtmux.Shell.Shell","signatures":[{"params":[{"name":"command","type":"String"}],"returns":"List","raises":[{"type":"UnsupportedFeatureException","doc":"on tmux 3.3a and 3.4, which run the command and report nothing"}],"raw":"@ReadOnly\n @Operation(Kind.MUTATION)\n public List capturing(String command)","typeScopeBoundary":false}],"doc":{"summary":"Runs a shell command and answers with what it printed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Shell.java","line":45,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Shell.capturing","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Shell.Shell.capturing","product":"core","slug":"io-github-libtmux-shell-shell-capturing"},{"id":"io.github.libtmux.Shell.Shell.choose","name":"choose","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Shell.Shell","signatures":[{"params":[{"name":"condition","type":"String","doc":"a shell command, judged by its exit status"},{"name":"whenTrue","type":"String","doc":"the tmux command to run when the condition succeeds"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void choose(String condition, String whenTrue)","typeScopeBoundary":false},{"params":[{"name":"condition","type":"String"},{"name":"whenTrue","type":"String"},{"name":"whenFalse","type":"String","doc":"the tmux command to run when the condition does not succeed"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void choose(String condition, String whenTrue, String whenFalse)","typeScopeBoundary":false}],"doc":{"summary":"Runs one tmux command when a shell command succeeds."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Shell.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Shell.choose","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Shell.Shell.choose","product":"core","slug":"io-github-libtmux-shell-shell-choose"},{"id":"io.github.libtmux.snapshot.ClientState.ClientState","name":"ClientState","kind":"class","modifiers":[],"signatures":[{"raw":"public record ClientState(String name, Optional session)","params":[{"name":"name","type":"String","doc":"the client's terminal name, which is how tmux addresses it"},{"name":"session","type":"Optional","doc":"the session it was attached to, if any"}]}],"doc":{"summary":"A client as one capture saw it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ClientState.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ClientState","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ClientState.ClientState","product":"core","slug":"io-github-libtmux-snapshot-clientstate-clientstate","typeScopeBoundary":false},{"id":"io.github.libtmux.snapshot.ClientState.ClientState.name","name":"name","kind":"method","parent":"io.github.libtmux.snapshot.ClientState.ClientState","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the client's terminal name, which is how tmux addresses it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ClientState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ClientState.name","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ClientState.ClientState.name","product":"core","slug":"io-github-libtmux-snapshot-clientstate-clientstate-name"},{"id":"io.github.libtmux.snapshot.ClientState.ClientState.session","name":"session","kind":"method","parent":"io.github.libtmux.snapshot.ClientState.ClientState","modifiers":[],"signatures":[{"params":[],"returns":"Optional"}],"doc":{"summary":"the session it was attached to, if any"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ClientState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ClientState.session","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ClientState.ClientState.session","product":"core","slug":"io-github-libtmux-snapshot-clientstate-clientstate-session"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState","name":"PaneState","kind":"class","modifiers":[],"signatures":[{"raw":"public record PaneState(\n WindowContext context,\n PaneId id,\n int index,\n boolean active,\n String currentCommand,\n Dimensions size,\n PanePosition position,\n String title,\n String currentPath,\n OptionalLong pid,\n PaneEdges edges,\n Optional floating)","params":[{"name":"context","type":"WindowContext","doc":"the winlink the pane was reached through"},{"name":"id","type":"PaneId","doc":"the pane's stable id"},{"name":"index","type":"int","doc":"the pane's position, which shifts as neighbours come and go"},{"name":"active","type":"boolean","doc":"whether it was the active pane of its window"},{"name":"currentCommand","type":"String","doc":"the command tmux reported running in it"},{"name":"size","type":"Dimensions","doc":"how large the pane was, in terminal cells"},{"name":"position","type":"PanePosition","doc":"where the pane's top-left corner sat in its window, in terminal cells"},{"name":"title","type":"String","doc":"the pane title, which a program inside it can change"},{"name":"currentPath","type":"String","doc":"the working directory tmux reported for it, as text. Not a {@link java.nio.file.Path}: a directory name is bytes to tmux, and converting one this JVM's encoding cannot represent throws — which, in a capture, would lose every other pane over one pane's directory. {@code Pane.currentPath()} converts on request instead"},{"name":"pid","type":"OptionalLong","doc":"the process id of the program running in it, or empty when tmux reports no process at all — never a literal zero, so a caller cannot mistake the sentinel for a real pid"},{"name":"edges","type":"PaneEdges","doc":"which sides of its window the pane touches"},{"name":"floating","type":"Optional","doc":"whether the pane floats, or empty when the running tmux cannot say. Before 3.7 the format expands to nothing at all, and reporting that as {@code false} would be indistinguishable from a tmux that looked and found the pane was not floating."}]}],"doc":{"summary":"A pane as one capture saw it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate","typeScopeBoundary":false},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.context","name":"context","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"WindowContext"}],"doc":{"summary":"the winlink the pane was reached through"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.context","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.context","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-context"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.id","name":"id","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"PaneId"}],"doc":{"summary":"the pane's stable id"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.id","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.id","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-id"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.index","name":"index","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"the pane's position, which shifts as neighbours come and go"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.index","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.index","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-index"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.active","name":"active","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether it was the active pane of its window"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.active","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.active","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-active"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.currentCommand","name":"currentCommand","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the command tmux reported running in it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.currentCommand","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.currentCommand","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-currentcommand"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.size","name":"size","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"Dimensions"}],"doc":{"summary":"how large the pane was, in terminal cells"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.size","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.size","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-size"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.position","name":"position","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"PanePosition"}],"doc":{"summary":"where the pane's top-left corner sat in its window, in terminal cells"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.position","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.position","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-position"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.title","name":"title","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the pane title, which a program inside it can change"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.title","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.title","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-title"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.currentPath","name":"currentPath","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the working directory tmux reported for it, as text. Not a {@link java.nio.file.Path}: a directory name is bytes to tmux, and converting one this JVM's encoding cannot represent throws — which, in a capture, would lose every other pane over one pane's directory. {@code Pane.currentPath()} converts on request instead"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.currentPath","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.currentPath","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-currentpath"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.pid","name":"pid","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"OptionalLong"}],"doc":{"summary":"the process id of the program running in it, or empty when tmux reports no process at all — never a literal zero, so a caller cannot mistake the sentinel for a real pid"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.pid","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.pid","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-pid"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.edges","name":"edges","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"PaneEdges"}],"doc":{"summary":"which sides of its window the pane touches"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.edges","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.edges","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-edges"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.floating","name":"floating","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"Optional"}],"doc":{"summary":"whether the pane floats, or empty when the running tmux cannot say. Before 3.7 the format expands to nothing at all, and reporting that as {@code false} would be indistinguishable from a tmux that looked and found the pane was not floating."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.floating","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.floating","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-floating"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","name":"ServerMirror","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"A live copy of one tmux server's sessions, windows, panes and clients, rebuilt whenever tmux announces a change.","body":"A control client attached through an anchor session hears what tmux announces. Any\nannouncement, or a {@link Delivery.Gap} in them, starts a fresh {@link Server#snapshot()} — never\na patch of the last one, since an announcement says that something changed, not everything that\ndid. Announcements that arrive while a snapshot is being taken collapse into one more rebuild, and\na rebuild that finds nothing different publishes nothing. Each published {@link View} carries an\nepoch one above the last, counted by this mirror; it is not a number tmux keeps.\n\ntmux keeps no history of what it announced. When the control client ends, the mirror finds\nthe anchor session again by its id and attaches through it with a fresh snapshot; if the session\nhas gone, the mirror ends with {@link TargetGoneException}, and if the server has, with the\nfailure that said so. A change tmux does not announce to this client, such as a pane retitled in\nanother session, is seen at the next rebuild, or within {@code refreshEvery} when one is given.\n\nThread-safe. One virtual thread per mirror listens and rebuilds; {@link #close()} ends it and\nthe control client with it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror","typeScopeBoundary":false},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.View","name":"View","kind":"class","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","signatures":[{"raw":"public record View(long epoch, ServerSnapshot snapshot)","params":[{"name":"epoch","type":"long","doc":"how many views this mirror published before this one"},{"name":"snapshot","type":"ServerSnapshot","doc":"the server as the rebuild captured it"}]}],"doc":{"summary":"One published state of the server."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.View","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.View","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-view","typeScopeBoundary":true},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.View.epoch","name":"epoch","kind":"method","parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.View","modifiers":[],"signatures":[{"params":[],"returns":"long"}],"doc":{"summary":"how many views this mirror published before this one"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.View.epoch","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.View.epoch","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-view-epoch"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.View.snapshot","name":"snapshot","kind":"method","parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.View","modifiers":[],"signatures":[{"params":[],"returns":"ServerSnapshot"}],"doc":{"summary":"the server as the rebuild captured it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.View.snapshot","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.View.snapshot","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-view-snapshot"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.open","name":"open","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","signatures":[{"params":[{"name":"anchor","type":"Session"}],"returns":"ServerMirror","raises":[{"type":"TargetGoneException","doc":"if the anchor session or its server has gone"}],"raw":"@Operation(Kind.LIFECYCLE)\n public static ServerMirror open(Session anchor)","typeScopeBoundary":true},{"params":[{"name":"anchor","type":"Session"},{"name":"refreshEvery","type":"Duration","doc":"how long a quiet mirror waits before rebuilding anyway; zero never does"}],"returns":"ServerMirror","raises":[{"type":"IllegalArgumentException","doc":"if {@code refreshEvery} is negative"}],"raw":"@Operation(Kind.LIFECYCLE)\n public static ServerMirror open(Session anchor, Duration refreshEvery)","typeScopeBoundary":true}],"doc":{"summary":"Mirrors the server {@code anchor} belongs to, listening through a control client attached to {@code anchor}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":96,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.open","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.open","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-open"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.current","name":"current","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","signatures":[{"params":[],"returns":"View","raw":"@Operation(Kind.CAPTURED)\n public View current()","typeScopeBoundary":false}],"doc":{"summary":"The latest published view."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":121,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.current","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.current","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-current"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.awaitNewer","name":"awaitNewer","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","signatures":[{"params":[{"name":"epoch","type":"long"},{"name":"timeout","type":"Duration"}],"returns":"Optional","returnsDoc":"the newer view, or empty when {@code timeout} passed first or the mirror ended; {@link #isEnded()} and {@link #cause()} tell those apart","raises":[{"type":"InterruptedException","doc":"if the waiting thread is interrupted"}],"raw":"@Operation(Kind.WAIT)\n public Optional awaitNewer(long epoch, Duration timeout) throws InterruptedException","typeScopeBoundary":false}],"doc":{"summary":"Waits for a view newer than {@code epoch}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":138,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.awaitNewer","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.awaitNewer","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-awaitnewer"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.onNewer","name":"onNewer","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","signatures":[{"params":[{"name":"epoch","type":"long"},{"name":"callback","type":"Runnable"}],"returns":"void","raises":[{"type":"IllegalStateException","doc":"if a callback is already armed"}],"raw":"@Operation(Kind.CAPTURED)\n public void onNewer(long epoch, Runnable callback)","typeScopeBoundary":false}],"doc":{"summary":"Arms a one-shot wakeup for when a view newer than {@code epoch} is published or the mirror ends.","body":"Runs {@code callback} at once, on this thread, when such a view already exists or the mirror\nhas ended; otherwise once, on the mirror's own thread. The callback must not block."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":160,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.onNewer","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.onNewer","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-onnewer"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.clearNewer","name":"clearNewer","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.CAPTURED)\n public void clearNewer()","typeScopeBoundary":false}],"doc":{"summary":"Disarms the callback {@link #onNewer} armed, if one is armed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":183,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.clearNewer","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.clearNewer","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-clearnewer"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.isEnded","name":"isEnded","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","signatures":[{"params":[],"returns":"boolean","raw":"@Operation(Kind.CAPTURED)\n public boolean isEnded()","typeScopeBoundary":false}],"doc":{"summary":"Whether this mirror has stopped publishing, because it was closed or its anchor has gone."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":194,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.isEnded","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.isEnded","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-isended"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.cause","name":"cause","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","signatures":[{"params":[],"returns":"Optional","raw":"@Operation(Kind.CAPTURED)\n public Optional cause()","typeScopeBoundary":false}],"doc":{"summary":"Why this mirror ended, when something other than {@link #close()} ended it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":205,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.cause","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.cause","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-cause"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","signatures":[{"params":[],"returns":"void","raw":"@Override\n @Operation(Kind.LIFECYCLE)\n public void close()","typeScopeBoundary":false}],"doc":{"summary":"Stops listening and detaches the control client. The last view stays readable. Idempotent."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":216,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.close","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.close","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-close"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","name":"ServerSnapshot","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"One tmux hierarchy, as it was at one moment.","body":"Every question below is answered from what was captured, so traversing a snapshot issues no\ncommands and cannot observe a half-changed server. It claims a moment rather than current truth:\ntmux offers no transaction across separate listings, and pretending otherwise would be a promise\nthis cannot keep."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot","typeScopeBoundary":false},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.of","name":"of","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"params":[{"name":"capturedAt","type":"Instant"},{"name":"serverPid","type":"long"},{"name":"serverVersion","type":"TmuxVersion"},{"name":"sessions","type":"List"},{"name":"windows","type":"List"},{"name":"panes","type":"List"},{"name":"clients","type":"List"}],"returns":"ServerSnapshot","raw":"public static ServerSnapshot of(\n Instant capturedAt,\n long serverPid,\n TmuxVersion serverVersion,\n List sessions,\n List windows,\n List panes,\n List clients)","typeScopeBoundary":true},{"params":[{"name":"capturedAt","type":"Instant"},{"name":"serverPid","type":"long"},{"name":"serverStartTime","type":"long"},{"name":"serverVersion","type":"TmuxVersion"},{"name":"sessions","type":"List"},{"name":"windows","type":"List"},{"name":"panes","type":"List"},{"name":"clients","type":"List"}],"returns":"ServerSnapshot","raw":"public static ServerSnapshot of(\n Instant capturedAt,\n long serverPid,\n long serverStartTime,\n TmuxVersion serverVersion,\n List sessions,\n List windows,\n List panes,\n List clients)","typeScopeBoundary":true}],"doc":{"summary":"Assembles a capture tied to the live tmux process and version that produced it, with no start time: a handle made from it is fenced by the process id alone."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":107,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.of","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.of","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-of"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.capturedAt","name":"capturedAt","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"params":[],"returns":"Instant","raw":"public Instant capturedAt()","typeScopeBoundary":false}],"doc":{"summary":"When this capture was taken."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":235,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.capturedAt","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.capturedAt","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-capturedat"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.serverPid","name":"serverPid","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"params":[],"returns":"OptionalLong","raw":"public OptionalLong serverPid()","typeScopeBoundary":false}],"doc":{"summary":"The tmux process that produced this capture, absent when assembled from detached state."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":240,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.serverPid","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.serverPid","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-serverpid"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.serverStartTime","name":"serverStartTime","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"params":[],"returns":"OptionalLong","raw":"public OptionalLong serverStartTime()","typeScopeBoundary":false}],"doc":{"summary":"When the tmux process that produced this capture started, in seconds since the epoch, as {@code #{start_time}} reports it. Absent when the capture was assembled without it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":248,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.serverStartTime","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.serverStartTime","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-serverstarttime"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.serverVersion","name":"serverVersion","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"params":[],"returns":"Optional","raw":"public Optional serverVersion()","typeScopeBoundary":false}],"doc":{"summary":"The tmux version that produced this capture, absent when assembled from detached state."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":253,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.serverVersion","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.serverVersion","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-serverversion"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.sessions","name":"sessions","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"params":[],"returns":"List","raw":"@ReadOnly\n public List sessions()","typeScopeBoundary":false}],"doc":{"summary":"Every session, in tmux's order."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":258,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.sessions","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.sessions","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-sessions"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.windows","name":"windows","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"params":[],"returns":"List","raw":"@ReadOnly\n public List windows()","typeScopeBoundary":false}],"doc":{"summary":"Every winlink, in tmux's order, including a window linked into more than one session twice."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":264,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.windows","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.windows","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-windows"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.panes","name":"panes","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"params":[],"returns":"List","raw":"@ReadOnly\n public List panes()","typeScopeBoundary":false}],"doc":{"summary":"Every pane, in tmux's order."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":270,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.panes","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.panes","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-panes"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.clients","name":"clients","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"params":[],"returns":"List","raw":"@ReadOnly\n public List clients()","typeScopeBoundary":false}],"doc":{"summary":"Every attached client."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":276,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.clients","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.clients","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-clients"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.session","name":"session","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"params":[{"name":"id","type":"SessionId"}],"returns":"Optional","raw":"public Optional session(SessionId id)","typeScopeBoundary":false},{"params":[{"name":"name","type":"String"}],"returns":"Optional","raw":"public Optional session(String name)","typeScopeBoundary":false}],"doc":{"summary":"The session with this id, if the capture saw it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":282,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.session","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.session","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-session"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.window","name":"window","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"params":[{"name":"context","type":"WindowContext"}],"returns":"Optional","raw":"public Optional window(WindowContext context)","typeScopeBoundary":false}],"doc":{"summary":"The winlink at this exact position, if the capture saw it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":292,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.window","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.window","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-window"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.windowsOf","name":"windowsOf","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"params":[{"name":"session","type":"SessionId"}],"returns":"List","raw":"@ReadOnly\n public List windowsOf(SessionId session)","typeScopeBoundary":false}],"doc":{"summary":"The winlinks in one session, in order. Empty when the capture never saw that session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":297,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.windowsOf","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.windowsOf","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-windowsof"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.panesOf","name":"panesOf","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"params":[{"name":"context","type":"WindowContext"}],"returns":"List","raw":"@ReadOnly\n public List panesOf(WindowContext context)","typeScopeBoundary":false}],"doc":{"summary":"The panes under one winlink, in order. Empty when the capture never saw that winlink."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":303,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.panesOf","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.panesOf","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-panesof"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":308,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.toString","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.toString","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-tostring"},{"id":"io.github.libtmux.snapshot.SessionState.SessionState","name":"SessionState","kind":"class","modifiers":[],"signatures":[{"raw":"public record SessionState(SessionId id, String name, boolean attached, int windows)","params":[{"name":"id","type":"SessionId","doc":"the session's stable id"},{"name":"name","type":"String","doc":"the session name, which a user may change at any time"},{"name":"attached","type":"boolean","doc":"whether a client was attached to it"},{"name":"windows","type":"int","doc":"how many windows it contained"}]}],"doc":{"summary":"A session as one capture saw it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/SessionState.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.SessionState","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.SessionState.SessionState","product":"core","slug":"io-github-libtmux-snapshot-sessionstate-sessionstate","typeScopeBoundary":false},{"id":"io.github.libtmux.snapshot.SessionState.SessionState.id","name":"id","kind":"method","parent":"io.github.libtmux.snapshot.SessionState.SessionState","modifiers":[],"signatures":[{"params":[],"returns":"SessionId"}],"doc":{"summary":"the session's stable id"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/SessionState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.SessionState.id","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.SessionState.SessionState.id","product":"core","slug":"io-github-libtmux-snapshot-sessionstate-sessionstate-id"},{"id":"io.github.libtmux.snapshot.SessionState.SessionState.name","name":"name","kind":"method","parent":"io.github.libtmux.snapshot.SessionState.SessionState","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the session name, which a user may change at any time"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/SessionState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.SessionState.name","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.SessionState.SessionState.name","product":"core","slug":"io-github-libtmux-snapshot-sessionstate-sessionstate-name"},{"id":"io.github.libtmux.snapshot.SessionState.SessionState.attached","name":"attached","kind":"method","parent":"io.github.libtmux.snapshot.SessionState.SessionState","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether a client was attached to it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/SessionState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.SessionState.attached","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.SessionState.SessionState.attached","product":"core","slug":"io-github-libtmux-snapshot-sessionstate-sessionstate-attached"},{"id":"io.github.libtmux.snapshot.SessionState.SessionState.windows","name":"windows","kind":"method","parent":"io.github.libtmux.snapshot.SessionState.SessionState","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"how many windows it contained"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/SessionState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.SessionState.windows","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.SessionState.SessionState.windows","product":"core","slug":"io-github-libtmux-snapshot-sessionstate-sessionstate-windows"},{"id":"io.github.libtmux.snapshot.WindowContext.WindowContext","name":"WindowContext","kind":"class","modifiers":[],"signatures":[{"raw":"public record WindowContext(SessionId session, WindowIndex index, WindowId window)","params":[{"name":"session","type":"SessionId","doc":"the session this link belongs to"},{"name":"index","type":"WindowIndex","doc":"where the window sits in that session"},{"name":"window","type":"WindowId","doc":"the underlying window, shared across links"}]}],"doc":{"summary":"One tmux winlink: a window as it appears in one session, at one index.","body":"The unit relations are keyed on. A window linked into two sessions has one {@link WindowId}\nand two contexts, and tmux treats those two positions as distinct."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowContext.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowContext","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowContext.WindowContext","product":"core","slug":"io-github-libtmux-snapshot-windowcontext-windowcontext","typeScopeBoundary":false},{"id":"io.github.libtmux.snapshot.WindowContext.WindowContext.session","name":"session","kind":"method","parent":"io.github.libtmux.snapshot.WindowContext.WindowContext","modifiers":[],"signatures":[{"params":[],"returns":"SessionId"}],"doc":{"summary":"the session this link belongs to"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowContext.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowContext.session","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowContext.WindowContext.session","product":"core","slug":"io-github-libtmux-snapshot-windowcontext-windowcontext-session"},{"id":"io.github.libtmux.snapshot.WindowContext.WindowContext.index","name":"index","kind":"method","parent":"io.github.libtmux.snapshot.WindowContext.WindowContext","modifiers":[],"signatures":[{"params":[],"returns":"WindowIndex"}],"doc":{"summary":"where the window sits in that session"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowContext.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowContext.index","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowContext.WindowContext.index","product":"core","slug":"io-github-libtmux-snapshot-windowcontext-windowcontext-index"},{"id":"io.github.libtmux.snapshot.WindowContext.WindowContext.window","name":"window","kind":"method","parent":"io.github.libtmux.snapshot.WindowContext.WindowContext","modifiers":[],"signatures":[{"params":[],"returns":"WindowId"}],"doc":{"summary":"the underlying window, shared across links"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowContext.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowContext.window","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowContext.WindowContext.window","product":"core","slug":"io-github-libtmux-snapshot-windowcontext-windowcontext-window"},{"id":"io.github.libtmux.snapshot.WindowState.WindowState","name":"WindowState","kind":"class","modifiers":[],"signatures":[{"raw":"public record WindowState(\n WindowContext context,\n String name,\n boolean active,\n int panes,\n boolean linked,\n Dimensions size,\n String layout)","params":[{"name":"context","type":"WindowContext","doc":"which session and index this link occupies"},{"name":"name","type":"String","doc":"the window name"},{"name":"active","type":"boolean","doc":"whether it was the active window of its session"},{"name":"panes","type":"int","doc":"how many panes it contained"},{"name":"linked","type":"boolean","doc":"whether the window is linked into more than one session"},{"name":"size","type":"Dimensions","doc":"how large the window was, in terminal cells"},{"name":"layout","type":"String","doc":"tmux's own serialized layout, which can be handed back to select-layout"}]}],"doc":{"summary":"A window as one capture saw it, at one of its positions."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowState.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowState","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowState.WindowState","product":"core","slug":"io-github-libtmux-snapshot-windowstate-windowstate","typeScopeBoundary":false},{"id":"io.github.libtmux.snapshot.WindowState.WindowState.context","name":"context","kind":"method","parent":"io.github.libtmux.snapshot.WindowState.WindowState","modifiers":[],"signatures":[{"params":[],"returns":"WindowContext"}],"doc":{"summary":"which session and index this link occupies"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowState.context","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowState.WindowState.context","product":"core","slug":"io-github-libtmux-snapshot-windowstate-windowstate-context"},{"id":"io.github.libtmux.snapshot.WindowState.WindowState.name","name":"name","kind":"method","parent":"io.github.libtmux.snapshot.WindowState.WindowState","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the window name"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowState.name","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowState.WindowState.name","product":"core","slug":"io-github-libtmux-snapshot-windowstate-windowstate-name"},{"id":"io.github.libtmux.snapshot.WindowState.WindowState.active","name":"active","kind":"method","parent":"io.github.libtmux.snapshot.WindowState.WindowState","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether it was the active window of its session"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowState.active","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowState.WindowState.active","product":"core","slug":"io-github-libtmux-snapshot-windowstate-windowstate-active"},{"id":"io.github.libtmux.snapshot.WindowState.WindowState.panes","name":"panes","kind":"method","parent":"io.github.libtmux.snapshot.WindowState.WindowState","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"how many panes it contained"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowState.panes","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowState.WindowState.panes","product":"core","slug":"io-github-libtmux-snapshot-windowstate-windowstate-panes"},{"id":"io.github.libtmux.snapshot.WindowState.WindowState.linked","name":"linked","kind":"method","parent":"io.github.libtmux.snapshot.WindowState.WindowState","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether the window is linked into more than one session"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowState.linked","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowState.WindowState.linked","product":"core","slug":"io-github-libtmux-snapshot-windowstate-windowstate-linked"},{"id":"io.github.libtmux.snapshot.WindowState.WindowState.size","name":"size","kind":"method","parent":"io.github.libtmux.snapshot.WindowState.WindowState","modifiers":[],"signatures":[{"params":[],"returns":"Dimensions"}],"doc":{"summary":"how large the window was, in terminal cells"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowState.size","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowState.WindowState.size","product":"core","slug":"io-github-libtmux-snapshot-windowstate-windowstate-size"},{"id":"io.github.libtmux.snapshot.WindowState.WindowState.layout","name":"layout","kind":"method","parent":"io.github.libtmux.snapshot.WindowState.WindowState","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"tmux's own serialized layout, which can be handed back to select-layout"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowState.layout","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowState.WindowState.layout","product":"core","slug":"io-github-libtmux-snapshot-windowstate-windowstate-layout"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture","name":"SnapshotCapture","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Reads a whole tmux server into one snapshot.","body":"One server-wide listing per kind of object, so ordering and membership stay tmux's decision\nrather than being re-derived from another listing's rows.\n\nTwo commands: who the server is, then the listings as one group fenced against both halves of\nthat answer, its pid and its version. tmux runs a group in the server, so rows cannot come from\ntwo of them, and a server that is not the one probed is refused before a listing runs rather than\ndetected afterwards. Retrying is {@link Server#snapshot()}'s decision, not this one's."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture","typeScopeBoundary":false},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.SnapshotCapture","name":"SnapshotCapture","kind":"method","modifiers":[],"parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture","signatures":[{"params":[{"name":"server","type":"Server"}],"raw":"SnapshotCapture(Server server)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":94,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.SnapshotCapture","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.SnapshotCapture","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-snapshotcapture"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.attempt","name":"attempt","kind":"method","modifiers":[],"parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture","signatures":[{"params":[],"returns":"Optional","raw":"Optional attempt()","typeScopeBoundary":false}],"doc":{"summary":"One attempt, empty when the server was replaced under it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":99,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.attempt","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.attempt","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-attempt"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.process","name":"process","kind":"method","modifiers":[],"parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture","signatures":[{"params":[],"returns":"Optional","raw":"Optional process()","typeScopeBoundary":false}],"doc":{"summary":"Reads process identity and version together so neither can come from a different server."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":123,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.process","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.process","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-process"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.processForCreation","name":"processForCreation","kind":"method","modifiers":[],"parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture","signatures":[{"params":[],"returns":"Optional","raw":"Optional processForCreation()","typeScopeBoundary":false}],"doc":{"summary":"As {@link #process}, except a live daemon this client cannot actually talk to is never folded into \"no daemon\" - used only by {@link SessionCreation#versionForCreation}, the one caller for which that distinction matters.","body":"tmux reports both the same way from a client's side: \"no server running\"/\"(No such file or\ndirectory)\" for a socket nothing is listening on, and \"server exited unexpectedly\" for a\ndaemon that refused this client's handshake - confirmed against the matrix, a 3.2a client\nagainst a 3.7c daemon on the same socket fails the second way, rc 1. {@link #process} still\nfolds both into \"no daemon\" for every other caller, which asks \"is there a server I can read\nfrom\" and for which a daemon this client cannot use is no more usable than none at all."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":139,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.processForCreation","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.processForCreation","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-processforcreation"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.oneSession","name":"oneSession","kind":"method","modifiers":[],"parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture","signatures":[{"params":[{"name":"target","type":"String","doc":"the session name or id passed to {@code -t}"},{"name":"field","type":"String","doc":"{@code session_name} or {@code session_id}"}],"returns":"Optional","raw":"Optional oneSession(String target, String field)","typeScopeBoundary":false}],"doc":{"summary":"One session, its windows, and its panes. Empty when that session is absent. Other sessions are not read."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":224,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.oneSession","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.oneSession","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-onesession"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.sessionsNamed","name":"sessionsNamed","kind":"method","modifiers":[],"parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"Optional","raw":"Optional sessionsNamed(String name)","typeScopeBoundary":false}],"doc":{"summary":"The sessions stored under any name tmux may keep for this one, read in one fenced call, and an empty capture when there are none. Empty when a candidate cannot sit inside a format, and the caller reads the whole server instead."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":240,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.sessionsNamed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.sessionsNamed","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-sessionsnamed"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.sessionsWhere","name":"sessionsWhere","kind":"method","modifiers":[],"parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture","signatures":[{"params":[{"name":"format","type":"String"},{"name":"command","type":"String","variadic":"positional","doc":"{@code list-sessions}, {@code list-windows -a}, or {@code list-panes -a}"}],"returns":"ServerSnapshot","raw":"ServerSnapshot sessionsWhere(String format, String... command)","typeScopeBoundary":false}],"doc":{"summary":"The sessions holding a row that {@code format} selects in this listing, read in full in one fenced call, and a capture holding nothing when none does.","body":"Nothing is a real answer: every operator {@link io.github.libtmux.query.TmuxFilters} writes\nexists from the oldest supported tmux, so a format it lowers is never one tmux cannot evaluate.\nA window or pane format is lifted to its session by looping that session's windows and panes,\nso the one call that reads the sessions also decides which ones to read."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":266,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.sessionsWhere","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.sessionsWhere","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-sessionswhere"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.sessionsHolding","name":"sessionsHolding","kind":"method","modifiers":[],"parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture","signatures":[{"params":[{"name":"id","type":"PaneId"}],"returns":"Optional","raw":"Optional sessionsHolding(PaneId id)","typeScopeBoundary":false}],"doc":{"summary":"The sessions holding this pane, with their windows and panes, in one fenced call. Empty when no session holds it.","body":"The filter loops each listed row's own session, so every listing keeps whole sessions, and a\nwindow linked into two sessions brings both. tmux evaluates this loop inside {@code -f} the same\nway on every release from 3.2a; see {@code docs/decisions/0005-pushdown-lowering-is-exact-or-refused.md}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":339,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.sessionsHolding","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.sessionsHolding","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-sessionsholding"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess","name":"ServerProcess","kind":"class","modifiers":[],"parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture","signatures":[{"raw":"record ServerProcess(long pid, TmuxVersion version, long startTime)","params":[{"name":"pid","type":"long"},{"name":"version","type":"TmuxVersion"},{"name":"startTime","type":"long"}]}],"doc":{"summary":"The server a capture reads, named by its process and when that process started."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":455,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.ServerProcess","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-serverprocess","typeScopeBoundary":true},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess.pid","name":"pid","kind":"method","parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess","modifiers":[],"signatures":[{"params":[],"returns":"long"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.ServerProcess.pid","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess.pid","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-serverprocess-pid"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess.version","name":"version","kind":"method","parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess","modifiers":[],"signatures":[{"params":[],"returns":"TmuxVersion"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.ServerProcess.version","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess.version","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-serverprocess-version"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess.startTime","name":"startTime","kind":"method","parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess","modifiers":[],"signatures":[{"params":[],"returns":"long"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.ServerProcess.startTime","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess.startTime","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-serverprocess-starttime"},{"id":"io.github.libtmux.SplitDirection.SplitDirection","name":"SplitDirection","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Where a new pane goes relative to the one being split.","body":"Separate from {@link Direction}, which moves and grows existing panes with {@code -U -D -L -R}.\nSplitting speaks a different dialect: an axis, and whether the new pane comes first."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitDirection.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitDirection","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitDirection.SplitDirection","product":"core","slug":"io-github-libtmux-splitdirection-splitdirection","typeScopeBoundary":false},{"id":"io.github.libtmux.SplitDirection.SplitDirection.BELOW","name":"BELOW","kind":"constant","modifiers":[],"parent":"io.github.libtmux.SplitDirection.SplitDirection","signatures":[],"doc":{"summary":"Below the target, which is what tmux does when asked for nothing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitDirection.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitDirection.BELOW","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitDirection.SplitDirection.BELOW","product":"core","slug":"io-github-libtmux-splitdirection-splitdirection-below","typeScopeBoundary":true},{"id":"io.github.libtmux.SplitDirection.SplitDirection.ABOVE","name":"ABOVE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.SplitDirection.SplitDirection","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitDirection.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitDirection.ABOVE","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitDirection.SplitDirection.ABOVE","product":"core","slug":"io-github-libtmux-splitdirection-splitdirection-above","typeScopeBoundary":true},{"id":"io.github.libtmux.SplitDirection.SplitDirection.RIGHT","name":"RIGHT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.SplitDirection.SplitDirection","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitDirection.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitDirection.RIGHT","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitDirection.SplitDirection.RIGHT","product":"core","slug":"io-github-libtmux-splitdirection-splitdirection-right","typeScopeBoundary":true},{"id":"io.github.libtmux.SplitDirection.SplitDirection.LEFT","name":"LEFT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.SplitDirection.SplitDirection","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitDirection.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitDirection.LEFT","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitDirection.SplitDirection.LEFT","product":"core","slug":"io-github-libtmux-splitdirection-splitdirection-left","typeScopeBoundary":true},{"id":"io.github.libtmux.SplitDirection.SplitDirection.SplitDirection","name":"SplitDirection","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitDirection.SplitDirection","signatures":[{"params":[{"name":"axis","type":"String"},{"name":"first","type":"boolean"}],"raw":"SplitDirection(String axis, boolean first)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitDirection.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitDirection.SplitDirection","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitDirection.SplitDirection.SplitDirection","product":"core","slug":"io-github-libtmux-splitdirection-splitdirection-splitdirection"},{"id":"io.github.libtmux.SplitDirection.SplitDirection.flags","name":"flags","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitDirection.SplitDirection","signatures":[{"params":[],"returns":"List","raw":"List flags()","typeScopeBoundary":false}],"doc":{"summary":"The tmux flags that place a pane this way."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitDirection.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitDirection.flags","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitDirection.SplitDirection.flags","product":"core","slug":"io-github-libtmux-splitdirection-splitdirection-flags"},{"id":"io.github.libtmux.SplitSpec.SplitSpec","name":"SplitSpec","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"How a pane should be split.","body":"A description rather than an action: it can be built once, named, and applied to as many panes\nas it suits. Nothing here contacts tmux, so a spec can be assembled on a machine that has none,\nand the version rules it depends on are checked when it is applied rather than when it is written\n— the same spec is legal against one server and not another.\n\nA builder-built class rather than a record for the reason {@link ServerConfig} gives: a\nrecord's canonical constructor is public API, and tmux keeps adding flags to {@code split-window}\n— six of them in 3.7 alone.","examples":[{"lang":"java","code":"Pane side = pane.split(s -> s.toRight().percent(30));\n\nSplitSpec sidebar = SplitSpec.builder().toRight().percent(25).build();\nleft.split(sidebar);\nright.split(sidebar);"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec","product":"core","slug":"io-github-libtmux-splitspec-splitspec","typeScopeBoundary":false},{"id":"io.github.libtmux.SplitSpec.SplitSpec.builder","name":"builder","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"params":[],"returns":"Builder","raw":"public static Builder builder()","typeScopeBoundary":true}],"doc":{"summary":"A builder holding tmux's own defaults: below the target, half its size, running a shell."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.builder","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-zmnf"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.direction","name":"direction","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"params":[],"returns":"SplitDirection","raw":"public SplitDirection direction()","typeScopeBoundary":false}],"doc":{"summary":"Where the new pane goes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":83,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.direction","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.direction","product":"core","slug":"io-github-libtmux-splitspec-splitspec-direction"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.size","name":"size","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"params":[],"returns":"Optional","raw":"public Optional size()","typeScopeBoundary":false}],"doc":{"summary":"How big the new pane should be, or empty to let tmux halve the target."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":88,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.size","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.size","product":"core","slug":"io-github-libtmux-splitspec-splitspec-size"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.start","name":"start","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"params":[],"returns":"PaneStart","raw":"public PaneStart start()","typeScopeBoundary":false}],"doc":{"summary":"What runs in the new pane."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":93,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.start","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.start","product":"core","slug":"io-github-libtmux-splitspec-splitspec-start"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.directory","name":"directory","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"params":[],"returns":"Optional","raw":"public Optional directory()","typeScopeBoundary":false}],"doc":{"summary":"Where the new pane starts, or empty to inherit."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":98,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.directory","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.directory","product":"core","slug":"io-github-libtmux-splitspec-splitspec-directory"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.environment","name":"environment","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"params":[],"returns":"Map","raw":"@ReadOnly\n public Map environment()","typeScopeBoundary":false}],"doc":{"summary":"Variables set for the new pane, in the order they were given."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":103,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.environment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.environment","product":"core","slug":"io-github-libtmux-splitspec-splitspec-environment"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.detached","name":"detached","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"params":[],"returns":"boolean","raw":"public boolean detached()","typeScopeBoundary":false}],"doc":{"summary":"Whether the new pane is left unfocused.","body":"False by default, which is what {@code split-window} itself does. A session created through\n{@link SessionSpec} is the opposite, because tmux cannot make one without attaching unless it\nis told to detach."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":115,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.detached","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.detached","product":"core","slug":"io-github-libtmux-splitspec-splitspec-detached"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.fullWindow","name":"fullWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"params":[],"returns":"boolean","raw":"public boolean fullWindow()","typeScopeBoundary":false}],"doc":{"summary":"Whether the split spans the whole window rather than just the target pane."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":120,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.fullWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.fullWindow","product":"core","slug":"io-github-libtmux-splitspec-splitspec-fullwindow"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.zoomed","name":"zoomed","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"params":[],"returns":"boolean","raw":"public boolean zoomed()","typeScopeBoundary":false}],"doc":{"summary":"Whether the new pane is zoomed on arrival."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":125,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.zoomed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.zoomed","product":"core","slug":"io-github-libtmux-splitspec-splitspec-zoomed"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.keepOnExit","name":"keepOnExit","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"params":[],"returns":"boolean","raw":"public boolean keepOnExit()","typeScopeBoundary":false}],"doc":{"summary":"Whether the pane stays after its command exits. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":130,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.keepOnExit","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.keepOnExit","product":"core","slug":"io-github-libtmux-splitspec-splitspec-keeponexit"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.exitMessage","name":"exitMessage","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"params":[],"returns":"Optional","raw":"public Optional exitMessage()","typeScopeBoundary":false}],"doc":{"summary":"What a kept pane shows once its command has exited. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":135,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.exitMessage","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.exitMessage","product":"core","slug":"io-github-libtmux-splitspec-splitspec-exitmessage"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.style","name":"style","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"params":[],"returns":"Optional","raw":"public Optional style()","typeScopeBoundary":false}],"doc":{"summary":"The new pane's {@code window-style}. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":140,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.style","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.style","product":"core","slug":"io-github-libtmux-splitspec-splitspec-style"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.activeBorderStyle","name":"activeBorderStyle","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"params":[],"returns":"Optional","raw":"public Optional activeBorderStyle()","typeScopeBoundary":false}],"doc":{"summary":"The new pane's {@code pane-active-border-style}. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":145,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.activeBorderStyle","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.activeBorderStyle","product":"core","slug":"io-github-libtmux-splitspec-splitspec-activeborderstyle"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.inactiveBorderStyle","name":"inactiveBorderStyle","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"params":[],"returns":"Optional","raw":"public Optional inactiveBorderStyle()","typeScopeBoundary":false}],"doc":{"summary":"The new pane's {@code pane-border-style}. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":150,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.inactiveBorderStyle","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.inactiveBorderStyle","product":"core","slug":"io-github-libtmux-splitspec-splitspec-inactiveborderstyle"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.argv","name":"argv","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"params":[{"name":"target","type":"String","doc":"what to split, as a tmux target"},{"name":"format","type":"String","doc":"the row format the caller will read the result back with"},{"name":"running","type":"TmuxVersion","doc":"the version of the server about to run this"}],"returns":"List","raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something {@code running} does not have"}],"raw":"List argv(String target, String format, TmuxVersion running)","typeScopeBoundary":false}],"doc":{"summary":"The command that performs this split, reporting the new pane through {@code format}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":162,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.argv","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.argv","product":"core","slug":"io-github-libtmux-splitspec-splitspec-argv"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":272,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.toString","product":"core","slug":"io-github-libtmux-splitspec-splitspec-tostring"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder","name":"Builder","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[],"doc":{"summary":"Collects the choices, each named for what it does rather than for the field it sets."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":279,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-kfol","typeScopeBoundary":true},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.below","name":"below","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder below()","typeScopeBoundary":false}],"doc":{"summary":"Puts the new pane below the target, which is what tmux does by default."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":298,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.below","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.below","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-below"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.above","name":"above","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder above()","typeScopeBoundary":false}],"doc":{"summary":"Puts the new pane above the target."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":304,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.above","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.above","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-above"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.toRight","name":"toRight","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder toRight()","typeScopeBoundary":false}],"doc":{"summary":"Puts the new pane to the right of the target."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":310,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.toRight","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.toRight","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-toright"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.toLeft","name":"toLeft","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder toLeft()","typeScopeBoundary":false}],"doc":{"summary":"Puts the new pane to the left of the target."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":316,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.toLeft","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.toLeft","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-toleft"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.cells","name":"cells","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[{"name":"count","type":"int"}],"returns":"Builder","raw":"public Builder cells(int count)","typeScopeBoundary":false}],"doc":{"summary":"Gives the new pane this many terminal cells."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":322,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.cells","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.cells","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-cells"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.percent","name":"percent","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[{"name":"share","type":"int"}],"returns":"Builder","raw":"public Builder percent(int share)","typeScopeBoundary":false}],"doc":{"summary":"Gives the new pane this share of what is being split."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":328,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.percent","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.percent","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-percent"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.running","name":"running","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[{"name":"argv","type":"String","variadic":"positional"}],"returns":"Builder","raw":"public Builder running(String... argv)","typeScopeBoundary":false}],"doc":{"summary":"Runs a command, which closes the pane when it exits unless {@link #keepOnExit} is set.","body":"A command that exits fast enough races {@link Pane#split}'s own read-back: tmux can\ndestroy the pane before the second listing that confirms it runs, and the split then\nthrows {@code TargetGoneException} even though tmux made the pane and ran the\ncommand in it. {@link #keepOnExit} removes the race by keeping the pane there to be read.\n\ntmux also reports the pane before its process has become this command, so a read at once\ncan still see the process about to exec it: wait for the command with {@link Pane#await(java.util.function.Predicate, java.time.Duration)}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":344,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.running","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.running","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-running"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.empty","name":"empty","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder empty()","typeScopeBoundary":false}],"doc":{"summary":"Creates a pane with no process in it. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":350,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.empty","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.empty","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-empty"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.start","name":"start","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[{"name":"start","type":"PaneStart"}],"returns":"Builder","raw":"public Builder start(PaneStart start)","typeScopeBoundary":false}],"doc":{"summary":"Sets what runs, for a caller holding a {@link PaneStart} already."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":356,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.start","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.start","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-start"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.in","name":"in","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[{"name":"directory","type":"Path"}],"returns":"Builder","raw":"public Builder in(Path directory)","typeScopeBoundary":false}],"doc":{"summary":"Starts the new pane in this directory, resolved against this process's when relative."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":362,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.in","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.in","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-in"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.env","name":"env","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[{"name":"name","type":"String"},{"name":"value","type":"String"}],"returns":"Builder","raw":"public Builder env(String name, String value)","typeScopeBoundary":false}],"doc":{"summary":"Sets one variable in the new pane's environment."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":368,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.env","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.env","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-env"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.environment","name":"environment","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[{"name":"variables","type":"Map"}],"returns":"Builder","raw":"public Builder environment(Map variables)","typeScopeBoundary":false}],"doc":{"summary":"Adds several variables to the new pane's environment, keeping any already set."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":374,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.environment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.environment","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-environment"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.detached","name":"detached","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder detached()","typeScopeBoundary":false}],"doc":{"summary":"Leaves the target pane focused, where tmux would move to the new one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":380,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.detached","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.detached","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-detached"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.fullWindow","name":"fullWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder fullWindow()","typeScopeBoundary":false}],"doc":{"summary":"Splits the whole window rather than just the target pane."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":386,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.fullWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.fullWindow","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-fullwindow"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.zoomed","name":"zoomed","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder zoomed()","typeScopeBoundary":false}],"doc":{"summary":"Zooms the new pane on arrival."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":392,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.zoomed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.zoomed","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-zoomed"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.keepOnExit","name":"keepOnExit","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder keepOnExit()","typeScopeBoundary":false},{"params":[{"name":"message","type":"String"}],"returns":"Builder","raw":"public Builder keepOnExit(String message)","typeScopeBoundary":false}],"doc":{"summary":"Keeps the pane after its command exits. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":398,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.keepOnExit","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.keepOnExit","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-keeponexit"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.style","name":"style","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[{"name":"style","type":"String"}],"returns":"Builder","raw":"public Builder style(String style)","typeScopeBoundary":false}],"doc":{"summary":"Sets the new pane's {@code window-style}. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":411,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.style","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.style","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-style"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.activeBorderStyle","name":"activeBorderStyle","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[{"name":"style","type":"String"}],"returns":"Builder","raw":"public Builder activeBorderStyle(String style)","typeScopeBoundary":false}],"doc":{"summary":"Sets the new pane's {@code pane-active-border-style}. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":417,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.activeBorderStyle","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.activeBorderStyle","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-activeborderstyle"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.inactiveBorderStyle","name":"inactiveBorderStyle","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[{"name":"style","type":"String"}],"returns":"Builder","raw":"public Builder inactiveBorderStyle(String style)","typeScopeBoundary":false}],"doc":{"summary":"Sets the new pane's {@code pane-border-style}. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":423,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.inactiveBorderStyle","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.inactiveBorderStyle","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-inactiveborderstyle"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.build","name":"build","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"params":[],"returns":"SplitSpec","raw":"public SplitSpec build()","typeScopeBoundary":false}],"doc":{"summary":"The finished spec."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":429,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.build","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.build","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-build"},{"id":"io.github.libtmux.TargetIds.TargetIds","name":"TargetIds","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Shared validation for the sigil-prefixed ids tmux hands out."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TargetIds.java","line":6,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TargetIds","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TargetIds.TargetIds","product":"core","slug":"io-github-libtmux-targetids-targetids","typeScopeBoundary":false},{"id":"io.github.libtmux.TargetIds.TargetIds.require","name":"require","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.TargetIds.TargetIds","signatures":[{"params":[{"name":"value","type":"String"},{"name":"sigil","type":"char"},{"name":"kind","type":"String"}],"returns":"void","raw":"static void require(String value, char sigil, String kind)","typeScopeBoundary":true}],"doc":{"summary":"Rejects anything tmux would not read as an id of this kind.","body":"A bare {@code 0} is the case worth catching: tmux would accept it as a target and resolve\nit as a name or an index, silently addressing something else."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TargetIds.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TargetIds.require","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TargetIds.TargetIds.require","product":"core","slug":"io-github-libtmux-targetids-targetids-require"},{"id":"io.github.libtmux.TextOutcome.TextOutcome","name":"TextOutcome","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Why a wait for text on a pane ended.","body":"Separate from {@link WakeReason}, which answers for a tmux channel, because this wait reads a\nscreen rather than blocking on a signal and so can end a way a channel never does: with the text\nalready there. A pane that has said {@code ready} since an hour ago must not answer a wait for\n{@code ready} the way output that just arrived does, and it must not be reported as a timeout\neither — a caller told only \"not found\" would go looking for text that is in plain sight.\n\n{@link Pane#await(java.util.function.Predicate, Duration)} keeps {@link WakeReason}: a caller\nwrote that condition and can test it before waiting, so the library is not the only thing that can\nsee it was already true."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TextOutcome.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TextOutcome","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TextOutcome.TextOutcome","product":"core","slug":"io-github-libtmux-textoutcome-textoutcome","typeScopeBoundary":false},{"id":"io.github.libtmux.TextOutcome.TextOutcome.APPEARED","name":"APPEARED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.TextOutcome.TextOutcome","signatures":[],"doc":{"summary":"The text appeared while the wait was running."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TextOutcome.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TextOutcome.APPEARED","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TextOutcome.TextOutcome.APPEARED","product":"core","slug":"io-github-libtmux-textoutcome-textoutcome-appeared","typeScopeBoundary":true},{"id":"io.github.libtmux.TextOutcome.TextOutcome.PRESENT_AT_ENTRY","name":"PRESENT_AT_ENTRY","kind":"constant","modifiers":[],"parent":"io.github.libtmux.TextOutcome.TextOutcome","signatures":[],"doc":{"summary":"The first look already showed the text, so this wait did not see it arrive.","body":"Exactly that, and no more. It may be output from a command the caller started a moment ago\nand that finished before the first read, or it may have been on the pane for an hour — a\nscreen cannot tell those apart, and reporting them as the same thing would be the claim this\noutcome exists to avoid. A caller that needs the difference should not be reading a screen:\nappend {@code ; tmux wait-for -S name} to its own command and block on {@link Server#channel},\nwhich is exact.\n\nAn echo of what this library typed is never what is found here; that is the caller's own\nquestion coming back, and it is discounted."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TextOutcome.java","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TextOutcome.PRESENT_AT_ENTRY","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TextOutcome.TextOutcome.PRESENT_AT_ENTRY","product":"core","slug":"io-github-libtmux-textoutcome-textoutcome-present_at_entry","typeScopeBoundary":true},{"id":"io.github.libtmux.TextOutcome.TextOutcome.TIMED_OUT","name":"TIMED_OUT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.TextOutcome.TextOutcome","signatures":[],"doc":{"summary":"The deadline passed with the text absent."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TextOutcome.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TextOutcome.TIMED_OUT","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TextOutcome.TextOutcome.TIMED_OUT","product":"core","slug":"io-github-libtmux-textoutcome-textoutcome-timed_out","typeScopeBoundary":true},{"id":"io.github.libtmux.TextOutcome.TextOutcome.SERVER_GONE","name":"SERVER_GONE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.TextOutcome.TextOutcome","signatures":[],"doc":{"summary":"The server went away underneath the wait, so nothing it was guarding can be relied on."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TextOutcome.java","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TextOutcome.SERVER_GONE","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TextOutcome.TextOutcome.SERVER_GONE","product":"core","slug":"io-github-libtmux-textoutcome-textoutcome-server_gone","typeScopeBoundary":true},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","name":"TmuxEnvironment","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"What tmux tells a program running inside one of its panes.","body":"tmux exports {@code TMUX} as {@code ,,} and {@code TMUX_PANE} as\nthe pane's id. That is how a process discovers the server it is already inside, without being told\nwhere to look.\n\nReading is separated from the environment itself, so the parsing is testable without a process\never having to be started inside tmux: {@link #of} takes the variables, {@link #current} is the\none-line wrapper that fetches them.\n\nA class rather than a record for the reason {@link ServerConfig} gives — and because the pane\nis genuinely absent sometimes, which an {@link Optional} accessor says better than a nullable\nrecord component.","examples":[{"lang":"java","code":"TmuxEnvironment here = TmuxEnvironment.current().orElseThrow();\n\ntry (Server server = Server.open(here.config())) {\nSession mine = server.sessions().stream()\n.filter(session -> session.id().equals(here.session()))\n.findFirst()\n.orElseThrow();\n}"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxEnvironment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","product":"core","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment","typeScopeBoundary":false},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.current","name":"current","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","signatures":[{"params":[],"returns":"Optional","returnsDoc":"what tmux said, or empty when this is not running inside tmux","raw":"public static Optional current()","typeScopeBoundary":true}],"doc":{"summary":"Reads this process's own environment."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxEnvironment.current","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.current","product":"core","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment-current"},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.of","name":"of","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","signatures":[{"params":[{"name":"environment","type":"Map","doc":"the variables to read, typically {@code System.getenv()}"}],"returns":"Optional","returnsDoc":"what tmux said, or empty when {@code TMUX} is absent or unreadable","raw":"public static Optional of(Map environment)","typeScopeBoundary":true}],"doc":{"summary":"Reads a set of environment variables."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxEnvironment.of","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.of","product":"core","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment-of"},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.socket","name":"socket","kind":"method","modifiers":[],"parent":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","signatures":[{"params":[],"returns":"Path","raw":"public Path socket()","typeScopeBoundary":false}],"doc":{"summary":"The socket the server is listening on."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java","line":97,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxEnvironment.socket","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.socket","product":"core","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment-socket"},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.serverPid","name":"serverPid","kind":"method","modifiers":[],"parent":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","signatures":[{"params":[],"returns":"long","raw":"public long serverPid()","typeScopeBoundary":false}],"doc":{"summary":"The process id of the tmux server, which is not the pane's process."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java","line":102,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxEnvironment.serverPid","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.serverPid","product":"core","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment-serverpid"},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.session","name":"session","kind":"method","modifiers":[],"parent":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","signatures":[{"params":[],"returns":"SessionId","raw":"public SessionId session()","typeScopeBoundary":false}],"doc":{"summary":"The session this process is running in."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java","line":107,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxEnvironment.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.session","product":"core","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment-session"},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.pane","name":"pane","kind":"method","modifiers":[],"parent":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","signatures":[{"params":[],"returns":"Optional","raw":"public Optional pane()","typeScopeBoundary":false}],"doc":{"summary":"The pane this process is running in, absent when {@code TMUX_PANE} was not set."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java","line":112,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxEnvironment.pane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.pane","product":"core","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment-pane"},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.config","name":"config","kind":"method","modifiers":[],"parent":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","signatures":[{"params":[],"returns":"ServerConfig","raw":"public ServerConfig config()","typeScopeBoundary":false}],"doc":{"summary":"A config addressing this server, ready for {@link Server#open}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java","line":117,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxEnvironment.config","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.config","product":"core","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment-config"},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java","line":123,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxEnvironment.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.toString","product":"core","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment-tostring"},{"id":"io.github.libtmux.TmuxFormats.TmuxFormats","name":"TmuxFormats","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Values handed to a tmux argument position that expands formats.","body":"tmux expands {@code #{...}} and {@code #(...)} in many argument positions, and {@code #(...)}\nruns a shell command. For the arguments this library composes itself — a window name, a pane\ntitle, a working directory — it applies {@link #literal} at the construction boundary, so a\ncaller's {@code #} stays a {@code #}.\n\nIt cannot do that for an argument the caller composes: {@link Pane#pipeTo},\n{@link Window#displayPopup}, {@link Shell#run}, {@link Shell#capturing} and {@link Shell#choose}\nall take a whole shell command, where format expansion is a documented\ntmux feature a caller may want — {@code #{pane_id}} in a filename, for instance. A caller\ninterpolating an untrusted value into one of those needs {@link #literal} on that value, which is\nwhy this is public.\n\nShell quoting does not substitute for it. tmux expands the format *before* the shell\nsees the string, so a {@code #(...)} inside single quotes still runs. Measured on tmux 3.7d, with\nthe interpolated value quoted as a careful caller would quote it: {@code run-shell} executed it,\nand {@code pipe-pane -O} executed it as soon as the pane produced output."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxFormats.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxFormats","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxFormats.TmuxFormats","product":"core","slug":"io-github-libtmux-tmuxformats-tmuxformats","typeScopeBoundary":false},{"id":"io.github.libtmux.TmuxFormats.TmuxFormats.literal","name":"literal","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.TmuxFormats.TmuxFormats","signatures":[{"params":[{"name":"value","type":"String","doc":"a value to be read as text rather than expanded"}],"returns":"String","returnsDoc":"the value with every {@code #} doubled","raw":"public static String literal(String value)","typeScopeBoundary":true}],"doc":{"summary":"Makes one caller value literal at one construction boundary.","body":"Doubling {@code #} is tmux's own escape for it, so the value arrives as itself."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxFormats.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxFormats.literal","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxFormats.TmuxFormats.literal","product":"core","slug":"io-github-libtmux-tmuxformats-tmuxformats-literal"},{"id":"io.github.libtmux.TmuxFormats.TmuxFormats.printed","name":"printed","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.TmuxFormats.TmuxFormats","signatures":[{"params":[{"name":"line","type":"String"},{"name":"version","type":"TmuxVersion"}],"returns":"String","raw":"static String printed(String line, TmuxVersion version)","typeScopeBoundary":true},{"params":[{"name":"lines","type":"java.util.List"},{"name":"version","type":"TmuxVersion"}],"returns":"java.util.List","raw":"static java.util.List printed(java.util.List lines, TmuxVersion version)","typeScopeBoundary":true}],"doc":{"summary":"Text as tmux held it, from a line it printed.","body":"tmux 3.4 alone puts a backslash before every {@code $} that an ASCII letter, {@code _}, or\n`{` follows, in everything it prints: formats, listings, and {@code show-options\n-v}. 3.5 stopped ({@code 692ce59b}). Each escape is exactly one backslash in that position, so\nremoving it restores the text on 3.4 and changes nothing elsewhere.\n\n3.4 through 3.5a also print a control character as a C escape or three octal digits,\n{@code \\033} for ESC, and leave a backslash as it is. That is not undone: {@code \\033} could as well be those\nfour characters, which a {@code terminal-overrides} entry often holds, so the text is left as\ntmux printed it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxFormats.java","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxFormats.printed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxFormats.TmuxFormats.printed","product":"core","slug":"io-github-libtmux-tmuxformats-tmuxformats-printed"},{"id":"io.github.libtmux.TmuxFormats.TmuxFormats.storedNames","name":"storedNames","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.TmuxFormats.TmuxFormats","signatures":[{"params":[{"name":"name","type":"String"},{"name":"version","type":"TmuxVersion"}],"returns":"java.util.List","raw":"static java.util.List storedNames(String name, TmuxVersion version)","typeScopeBoundary":true}],"doc":{"summary":"The names to look for when a caller names a session: the one this release stores for it, then the name exactly as given, which is what {@link Session#name} already reports.","body":"tmux doubles each backslash; 3.2a through 3.4 put a backslash before a {@code $} that a\nletter, {@code _}, or `{` follows; 3.2a through 3.6 store {@code .} and {@code :}\nas {@code _} and a control character as a C escape or three octal digits. 3.7 and later refuse\ncontrol characters. The stored form is an escaping, so it names at most one session; only a\nname that is itself some other name's stored form is ambiguous, and the stored form wins."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxFormats.java","line":83,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxFormats.storedNames","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxFormats.TmuxFormats.storedNames","product":"core","slug":"io-github-libtmux-tmuxformats-tmuxformats-storednames"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion","name":"TmuxVersion","kind":"class","modifiers":[],"signatures":[{"raw":"public record TmuxVersion(int major, int minor, String patch, boolean development, String preRelease)\n implements Comparable","params":[{"name":"major","type":"int","doc":"the major number"},{"name":"minor","type":"int","doc":"the minor number"},{"name":"patch","type":"String","doc":"the patch letter, or empty for an unlettered release"},{"name":"development","type":"boolean","doc":"whether this is a {@code next-M.m} build rather than the release {@code M.m} itself"},{"name":"preRelease","type":"String","doc":"the release candidate this is, such as {@code rc} or {@code rc2}, or empty for a release"}]}],"doc":{"summary":"A released tmux version, ordered the way tmux releases are.","body":"tmux numbers a patch release with a letter rather than a third number: 3.7a follows 3.7, and\n3.2a follows 3.2. Comparing the text alone gets that wrong in both directions, and a feature gate\nthat gets it wrong reads a format the running tmux does not have.\n\nBetween releases, tmux reports itself as {@code next-M.m}: a development build tracking toward\nthe release named, not that release itself. It has everything the previous release shipped and\nnothing later's patches guarantee, so it sorts strictly between the two — above every patch of the\nrelease before it, below the release it names and every patch of that.\n\nA release candidate, {@code 3.8-rc}, compares equal to the release it names. tmux freezes\nfeatures at the candidate, so it has everything the release will and differs only in fixes —\nmeasured, not assumed: a 3.8 candidate writes JSON layouts and empties a dead pane's pid exactly\nas 3.8 does, and a feature gated on 3.8 works on it. It is not {@code equals} to the release, and\nit is written back exactly as tmux wrote it, which matters beyond display: every capture is\nfenced on the version tmux reports, and a candidate printed as {@code 3.8} failed that fence on\nevery read."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion","typeScopeBoundary":false},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.TmuxVersion","name":"TmuxVersion","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.TmuxVersion.TmuxVersion","signatures":[{"params":[{"name":"major","type":"int"},{"name":"minor","type":"int"},{"name":"patch","type":"String"},{"name":"development","type":"boolean"}],"raw":"public TmuxVersion(int major, int minor, String patch, boolean development)","typeScopeBoundary":false},{"params":[{"name":"major","type":"int"},{"name":"minor","type":"int"},{"name":"patch","type":"String"}],"raw":"public TmuxVersion(int major, int minor, String patch)","typeScopeBoundary":false}],"doc":{"summary":"A release or a development build, without a release candidate."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.TmuxVersion","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.TmuxVersion","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-tmuxversion"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.parse","name":"parse","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.TmuxVersion.TmuxVersion","signatures":[{"params":[{"name":"reported","type":"String"}],"returns":"TmuxVersion","raises":[{"type":"IllegalArgumentException","doc":"if the text does not begin with a release number, optionally preceded by {@code next-}; a build that reports something else is one this cannot make version decisions about"}],"raw":"public static TmuxVersion parse(String reported)","typeScopeBoundary":true}],"doc":{"summary":"Reads what tmux reports for {@code #{version}}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.parse","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.parse","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-parse"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.atLeast","name":"atLeast","kind":"method","modifiers":[],"parent":"io.github.libtmux.TmuxVersion.TmuxVersion","signatures":[{"params":[{"name":"other","type":"TmuxVersion"}],"returns":"boolean","raw":"public boolean atLeast(TmuxVersion other)","typeScopeBoundary":false}],"doc":{"summary":"Whether this version has everything the given one has."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","line":76,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.atLeast","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.atLeast","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-atleast"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.compareTo","name":"compareTo","kind":"method","modifiers":[],"parent":"io.github.libtmux.TmuxVersion.TmuxVersion","signatures":[{"params":[{"name":"other","type":"TmuxVersion"}],"returns":"int","raw":"@Override\n public int compareTo(TmuxVersion other)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","line":80,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.compareTo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.compareTo","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-compareto"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.TmuxVersion.TmuxVersion","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","line":100,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.toString","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-tostring"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.major","name":"major","kind":"method","parent":"io.github.libtmux.TmuxVersion.TmuxVersion","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"the major number"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.major","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.major","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-major"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.minor","name":"minor","kind":"method","parent":"io.github.libtmux.TmuxVersion.TmuxVersion","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"the minor number"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.minor","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.minor","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-minor"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.patch","name":"patch","kind":"method","parent":"io.github.libtmux.TmuxVersion.TmuxVersion","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the patch letter, or empty for an unlettered release"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.patch","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.patch","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-patch"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.development","name":"development","kind":"method","parent":"io.github.libtmux.TmuxVersion.TmuxVersion","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether this is a {@code next-M.m} build rather than the release {@code M.m} itself"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.development","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.development","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-development"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.preRelease","name":"preRelease","kind":"method","parent":"io.github.libtmux.TmuxVersion.TmuxVersion","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the release candidate this is, such as {@code rc} or {@code rc2}, or empty for a release"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.preRelease","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.preRelease","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-prerelease"},{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest","name":"CommandRequest","kind":"class","modifiers":[],"signatures":[{"raw":"public record CommandRequest(\n @ReadOnly List endpoint, @ReadOnly List> commands, Duration timeout, String input)","params":[{"name":"endpoint","type":"List","doc":"the tmux executable and its server selection, such as {@code [tmux, -S, path]}. tmux reads these before it parses commands, so they are passed through untouched"},{"name":"commands","type":"List>","doc":"one or more tmux commands, each an argv of literal words. tmux runs them in order and discards the rest after the first failure"},{"name":"timeout","type":"Duration","doc":"how long the caller will wait for the whole invocation"},{"name":"input","type":"String","doc":"what the commands read from tmux's standard input, empty for the commands that read none. A tmux argument is bounded by MAX_IMSGSIZE, so text too large to be one travels here instead."}]}],"doc":{"summary":"One tmux invocation: how to reach the server, then the commands to run there.","body":"Commands are held literally. tmux ends a command at an argument whose last byte is {@code ;},\nso a value ending in one would otherwise be truncated with no error; a transport encodes for the\nparser it feeds, and {@link #commands()} answers with what the caller meant.\n\nThe timeout rides on the request instead of the transport because the same server serves both\na listing that should answer immediately and an attach that never returns."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandRequest.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandRequest","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandRequest.CommandRequest","product":"core","slug":"io-github-libtmux-transport-commandrequest-commandrequest","typeScopeBoundary":false},{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest.of","name":"of","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.transport.CommandRequest.CommandRequest","signatures":[{"params":[{"name":"endpoint","type":"List"},{"name":"argv","type":"List"},{"name":"timeout","type":"Duration"}],"returns":"CommandRequest","raw":"public static CommandRequest of(List endpoint, List argv, Duration timeout)","typeScopeBoundary":true},{"params":[{"name":"endpoint","type":"List"},{"name":"argv","type":"List"},{"name":"timeout","type":"Duration"},{"name":"input","type":"String"}],"returns":"CommandRequest","raw":"public static CommandRequest of(List endpoint, List argv, Duration timeout, String input)","typeScopeBoundary":true}],"doc":{"summary":"A request for one command, which is every request but a batch."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandRequest.java","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandRequest.of","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandRequest.CommandRequest.of","product":"core","slug":"io-github-libtmux-transport-commandrequest-commandrequest-of"},{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest.idempotence","name":"idempotence","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.CommandRequest.CommandRequest","signatures":[{"params":[],"returns":"Idempotence","raw":"public Idempotence idempotence()","typeScopeBoundary":false}],"doc":{"summary":"Whether sending this request twice leaves tmux as sending it once does: {@link Idempotence#IDEMPOTENT} only when every command in it reads."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandRequest.java","line":69,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandRequest.idempotence","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandRequest.CommandRequest.idempotence","product":"core","slug":"io-github-libtmux-transport-commandrequest-commandrequest-idempotence"},{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest.commandLine","name":"commandLine","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.CommandRequest.CommandRequest","signatures":[{"params":[],"returns":"List","raw":"@ReadOnly\n public List commandLine()","typeScopeBoundary":false}],"doc":{"summary":"The full argv to hand a process builder, encoded for tmux's own argv parser."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandRequest.java","line":74,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandRequest.commandLine","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandRequest.CommandRequest.commandLine","product":"core","slug":"io-github-libtmux-transport-commandrequest-commandrequest-commandline"},{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.CommandRequest.CommandRequest","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"doc":{"summary":"Counts only. Commands carry pane content and socket paths, and this value reaches log lines and failed assertions."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandRequest.java","line":87,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandRequest.toString","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandRequest.CommandRequest.toString","product":"core","slug":"io-github-libtmux-transport-commandrequest-commandrequest-tostring"},{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest.endpoint","name":"endpoint","kind":"method","parent":"io.github.libtmux.transport.CommandRequest.CommandRequest","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the tmux executable and its server selection, such as {@code [tmux, -S, path]}. tmux reads these before it parses commands, so they are passed through untouched"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandRequest.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandRequest.endpoint","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandRequest.CommandRequest.endpoint","product":"core","slug":"io-github-libtmux-transport-commandrequest-commandrequest-endpoint"},{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest.commands","name":"commands","kind":"method","parent":"io.github.libtmux.transport.CommandRequest.CommandRequest","modifiers":[],"signatures":[{"params":[],"returns":"List>"}],"doc":{"summary":"one or more tmux commands, each an argv of literal words. tmux runs them in order and discards the rest after the first failure"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandRequest.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandRequest.commands","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandRequest.CommandRequest.commands","product":"core","slug":"io-github-libtmux-transport-commandrequest-commandrequest-commands"},{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest.timeout","name":"timeout","kind":"method","parent":"io.github.libtmux.transport.CommandRequest.CommandRequest","modifiers":[],"signatures":[{"params":[],"returns":"Duration"}],"doc":{"summary":"how long the caller will wait for the whole invocation"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandRequest.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandRequest.timeout","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandRequest.CommandRequest.timeout","product":"core","slug":"io-github-libtmux-transport-commandrequest-commandrequest-timeout"},{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest.input","name":"input","kind":"method","parent":"io.github.libtmux.transport.CommandRequest.CommandRequest","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"what the commands read from tmux's standard input, empty for the commands that read none. A tmux argument is bounded by MAX_IMSGSIZE, so text too large to be one travels here instead."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandRequest.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandRequest.input","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandRequest.CommandRequest.input","product":"core","slug":"io-github-libtmux-transport-commandrequest-commandrequest-input"},{"id":"io.github.libtmux.transport.CommandResult.CommandResult","name":"CommandResult","kind":"class","modifiers":[],"signatures":[{"raw":"public record CommandResult(\n int exitCode,\n @ReadOnly List stdout,\n @ReadOnly List stderr)","params":[{"name":"exitCode","type":"int","doc":"the process exit status"},{"name":"stdout","type":"List","doc":"stdout split at LF, preserving carriage returns and interior blanks"},{"name":"stderr","type":"List","doc":"stderr split into lines, with blanks dropped"}]}],"doc":{"summary":"One completed invocation.","body":"A nonzero exit is data, not a failure. tmux reports an ordinary \"no such pane\" the same way it\nreports a real problem, so only a higher-level method knows which one should raise."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandResult.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandResult","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandResult.CommandResult","product":"core","slug":"io-github-libtmux-transport-commandresult-commandresult","typeScopeBoundary":false},{"id":"io.github.libtmux.transport.CommandResult.CommandResult.succeeded","name":"succeeded","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.CommandResult.CommandResult","signatures":[{"params":[],"returns":"boolean","raw":"public boolean succeeded()","typeScopeBoundary":false}],"doc":{"summary":"Whether tmux reported success."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandResult.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandResult.succeeded","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandResult.CommandResult.succeeded","product":"core","slug":"io-github-libtmux-transport-commandresult-commandresult-succeeded"},{"id":"io.github.libtmux.transport.CommandResult.CommandResult.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.CommandResult.CommandResult","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"doc":{"summary":"Counts only, because both channels carry captured terminal content."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandResult.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandResult.toString","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandResult.CommandResult.toString","product":"core","slug":"io-github-libtmux-transport-commandresult-commandresult-tostring"},{"id":"io.github.libtmux.transport.CommandResult.CommandResult.exitCode","name":"exitCode","kind":"method","parent":"io.github.libtmux.transport.CommandResult.CommandResult","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"the process exit status"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandResult.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandResult.exitCode","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandResult.CommandResult.exitCode","product":"core","slug":"io-github-libtmux-transport-commandresult-commandresult-exitcode"},{"id":"io.github.libtmux.transport.CommandResult.CommandResult.stdout","name":"stdout","kind":"method","parent":"io.github.libtmux.transport.CommandResult.CommandResult","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"stdout split at LF, preserving carriage returns and interior blanks"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandResult.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandResult.stdout","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandResult.CommandResult.stdout","product":"core","slug":"io-github-libtmux-transport-commandresult-commandresult-stdout"},{"id":"io.github.libtmux.transport.CommandResult.CommandResult.stderr","name":"stderr","kind":"method","parent":"io.github.libtmux.transport.CommandResult.CommandResult","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"stderr split into lines, with blanks dropped"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandResult.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandResult.stderr","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandResult.CommandResult.stderr","product":"core","slug":"io-github-libtmux-transport-commandresult-commandresult-stderr"},{"id":"io.github.libtmux.transport.ControlCarrier.ControlCarrier","name":"ControlCarrier","kind":"interface","modifiers":[],"signatures":[],"doc":{"summary":"Starts a long-lived tmux process in a transport's realm.","body":"A control client stays attached, so it cannot borrow a command permit. It still has to be\nstarted by the same carrier as the commands, or a custom transport's realm is silently ignored\nand the client attaches to whatever the local machine calls tmux."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ControlCarrier.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ControlCarrier","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ControlCarrier.ControlCarrier","product":"core","slug":"io-github-libtmux-transport-controlcarrier-controlcarrier","typeScopeBoundary":false},{"id":"io.github.libtmux.transport.ControlCarrier.ControlCarrier.start","name":"start","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.ControlCarrier.ControlCarrier","signatures":[{"params":[{"name":"command","type":"List","doc":"the tmux invocation, arguments already separate"}],"returns":"Process","returnsDoc":"the running process","raises":[{"type":"IOException","doc":"if the process cannot be started"}],"raw":"Process start(List command) throws IOException;","typeScopeBoundary":false}],"doc":{"summary":"Starts the process. The caller owns it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ControlCarrier.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ControlCarrier.start","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ControlCarrier.ControlCarrier.start","product":"core","slug":"io-github-libtmux-transport-controlcarrier-controlcarrier-start"},{"id":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome","name":"DispatchOutcome","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"How certain the transport is that tmux applied a request."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/DispatchOutcome.java","line":4,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.DispatchOutcome","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome","product":"core","slug":"io-github-libtmux-transport-dispatchoutcome-dispatchoutcome","typeScopeBoundary":false},{"id":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome.NOT_DISPATCHED","name":"NOT_DISPATCHED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome","signatures":[],"doc":{"summary":"The process never started, so tmux cannot have applied anything."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/DispatchOutcome.java","line":6,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.DispatchOutcome.NOT_DISPATCHED","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome.NOT_DISPATCHED","product":"core","slug":"io-github-libtmux-transport-dispatchoutcome-dispatchoutcome-not_dispatched","typeScopeBoundary":true},{"id":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome.COMPLETE","name":"COMPLETE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome","signatures":[],"doc":{"summary":"The process ran to completion and both channels were drained."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/DispatchOutcome.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.DispatchOutcome.COMPLETE","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome.COMPLETE","product":"core","slug":"io-github-libtmux-transport-dispatchoutcome-dispatchoutcome-complete","typeScopeBoundary":true},{"id":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome.UNKNOWN","name":"UNKNOWN","kind":"constant","modifiers":[],"parent":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome","signatures":[],"doc":{"summary":"tmux may already have applied the command; the result is not knowable."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/DispatchOutcome.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.DispatchOutcome.UNKNOWN","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome.UNKNOWN","product":"core","slug":"io-github-libtmux-transport-dispatchoutcome-dispatchoutcome-unknown","typeScopeBoundary":true},{"id":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome.canRetryVerbatim","name":"canRetryVerbatim","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome","signatures":[{"params":[{"name":"idempotence","type":"Idempotence","doc":"whether every command in the request only reads"}],"returns":"boolean","raw":"public boolean canRetryVerbatim(Idempotence idempotence)","typeScopeBoundary":false}],"doc":{"summary":"Whether the exact same request may be sent again after this outcome.","body":"A request that never reached tmux may always be resent. One that may have reached it may be\nresent only when it changes nothing. One that completed is not a dispatch question at all:\nwhether to act on tmux's answer is the caller's decision, so this answers {@code false}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/DispatchOutcome.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.DispatchOutcome.canRetryVerbatim","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome.canRetryVerbatim","product":"core","slug":"io-github-libtmux-transport-dispatchoutcome-dispatchoutcome-canretryverbatim"},{"id":"io.github.libtmux.transport.Idempotence.Idempotence","name":"Idempotence","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Whether running a request twice leaves tmux as running it once does.","body":"Decided from the commands themselves: a request is idempotent only when every command in it\nreads and changes nothing. Anything this library cannot tell is a read counts as a change, so a\nfailure never reports a mutation as safe to resend."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/Idempotence.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.Idempotence","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.Idempotence.Idempotence","product":"core","slug":"io-github-libtmux-transport-idempotence-idempotence","typeScopeBoundary":false},{"id":"io.github.libtmux.transport.Idempotence.Idempotence.IDEMPOTENT","name":"IDEMPOTENT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.transport.Idempotence.Idempotence","signatures":[],"doc":{"summary":"Every command only reads; sending it again cannot change tmux."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/Idempotence.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.Idempotence.IDEMPOTENT","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.Idempotence.Idempotence.IDEMPOTENT","product":"core","slug":"io-github-libtmux-transport-idempotence-idempotence-idempotent","typeScopeBoundary":true},{"id":"io.github.libtmux.transport.Idempotence.Idempotence.NOT_IDEMPOTENT","name":"NOT_IDEMPOTENT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.transport.Idempotence.Idempotence","signatures":[],"doc":{"summary":"At least one command may change tmux, so a second send may apply it twice."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/Idempotence.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.Idempotence.NOT_IDEMPOTENT","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.Idempotence.Idempotence.NOT_IDEMPOTENT","product":"core","slug":"io-github-libtmux-transport-idempotence-idempotence-not_idempotent","typeScopeBoundary":true},{"id":"io.github.libtmux.transport.Idempotence.Idempotence.of","name":"of","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.transport.Idempotence.Idempotence","signatures":[{"params":[{"name":"commands","type":"List>"}],"returns":"Idempotence","raw":"public static Idempotence of(List> commands)","typeScopeBoundary":true}],"doc":{"summary":"The idempotence of a request made of {@code commands}, each an argv."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/Idempotence.java","line":55,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.Idempotence.of","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.Idempotence.Idempotence.of","product":"core","slug":"io-github-libtmux-transport-idempotence-idempotence-of"},{"id":"io.github.libtmux.transport.OperationObserver.OperationObserver","name":"OperationObserver","kind":"interface","modifiers":[],"signatures":[],"doc":{"summary":"Receives one {@link OperationReport} after each command.","body":"The transport still throws on failure. This does not retry. A report whose {@link\nOperationReport#certainty() certainty} is {@link DispatchOutcome#NOT_DISPATCHED} was never\napplied. {@link DispatchOutcome#UNKNOWN} must not be sent again blindly."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationObserver.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationObserver","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationObserver.OperationObserver","product":"core","slug":"io-github-libtmux-transport-operationobserver-operationobserver","typeScopeBoundary":false},{"id":"io.github.libtmux.transport.OperationObserver.OperationObserver.accept","name":"accept","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.OperationObserver.OperationObserver","signatures":[{"params":[{"name":"report","type":"OperationReport"}],"returns":"void","raw":"void accept(OperationReport report);","typeScopeBoundary":false}],"doc":{"summary":"Called once, after the command ends, on the thread that ran it.","body":"An exception thrown here does not change the command's result, since the command has\nalready run: failing it would invite a retry of something tmux may have done. The exception is\nlogged at {@code WARNING}, with its stack trace, by the logger of the transport or control\nclient that ran the command."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationObserver.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationObserver.accept","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationObserver.OperationObserver.accept","product":"core","slug":"io-github-libtmux-transport-operationobserver-operationobserver-accept"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport","name":"OperationReport","kind":"class","modifiers":[],"signatures":[{"raw":"public record OperationReport(\n long id,\n @ReadOnly List verbs,\n DispatchOutcome certainty,\n OptionalInt exitCode,\n int stdoutLines,\n int stderrLines,\n String boundedError,\n Duration queued,\n Duration elapsed)","params":[{"name":"id","type":"long","doc":"a counter for this transport, so one call can be told from the next"},{"name":"verbs","type":"List","doc":"the commands, without their arguments"},{"name":"certainty","type":"DispatchOutcome","doc":"whether tmux never started, finished, or might have applied the command"},{"name":"exitCode","type":"OptionalInt","doc":"the process exit status, empty when the process did not finish"},{"name":"stdoutLines","type":"int","doc":"how many stdout lines came back"},{"name":"stderrLines","type":"int","doc":"how many stderr lines came back"},{"name":"boundedError","type":"String","doc":"stderr text, at most {@link #ERROR_LIMIT} characters"},{"name":"queued","type":"Duration","doc":"how long the call waited for a free process or writer slot"},{"name":"elapsed","type":"Duration","doc":"how long the command itself ran after that wait"}]}],"doc":{"summary":"One command a transport finished or failed to finish.","body":"The verbs are the first word of each command. Arguments, standard input, and stdout are not\nhere: they carry session names, socket paths, and whatever a caller typed. {@link #boundedError()}\nis stderr, cut off, and {@link #toString()} leaves it out."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport","typeScopeBoundary":false},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.ERROR_LIMIT","name":"ERROR_LIMIT","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.transport.OperationReport.OperationReport","signatures":[],"type":"int","value":"240","doc":{"summary":"How much stderr text a report keeps."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.ERROR_LIMIT","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.ERROR_LIMIT","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-error_limit","typeScopeBoundary":true},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.bound","name":"bound","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.transport.OperationReport.OperationReport","signatures":[{"params":[{"name":"stderr","type":"List"}],"returns":"String","raw":"public static String bound(List stderr)","typeScopeBoundary":true}],"doc":{"summary":"Joins stderr lines and cuts them at {@link #ERROR_LIMIT}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","line":52,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.bound","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.bound","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-bound"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.OperationReport.OperationReport","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"doc":{"summary":"Counts and timings only. The error text stays on {@link #boundedError()}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","line":57,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.toString","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.toString","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-tostring"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.id","name":"id","kind":"method","parent":"io.github.libtmux.transport.OperationReport.OperationReport","modifiers":[],"signatures":[{"params":[],"returns":"long"}],"doc":{"summary":"a counter for this transport, so one call can be told from the next"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.id","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.id","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-id"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.verbs","name":"verbs","kind":"method","parent":"io.github.libtmux.transport.OperationReport.OperationReport","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the commands, without their arguments"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.verbs","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.verbs","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-verbs"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.certainty","name":"certainty","kind":"method","parent":"io.github.libtmux.transport.OperationReport.OperationReport","modifiers":[],"signatures":[{"params":[],"returns":"DispatchOutcome"}],"doc":{"summary":"whether tmux never started, finished, or might have applied the command"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.certainty","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.certainty","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-certainty"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.exitCode","name":"exitCode","kind":"method","parent":"io.github.libtmux.transport.OperationReport.OperationReport","modifiers":[],"signatures":[{"params":[],"returns":"OptionalInt"}],"doc":{"summary":"the process exit status, empty when the process did not finish"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.exitCode","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.exitCode","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-exitcode"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.stdoutLines","name":"stdoutLines","kind":"method","parent":"io.github.libtmux.transport.OperationReport.OperationReport","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"how many stdout lines came back"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.stdoutLines","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.stdoutLines","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-stdoutlines"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.stderrLines","name":"stderrLines","kind":"method","parent":"io.github.libtmux.transport.OperationReport.OperationReport","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"how many stderr lines came back"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.stderrLines","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.stderrLines","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-stderrlines"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.boundedError","name":"boundedError","kind":"method","parent":"io.github.libtmux.transport.OperationReport.OperationReport","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"stderr text, at most {@link #ERROR_LIMIT} characters"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.boundedError","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.boundedError","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-boundederror"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.queued","name":"queued","kind":"method","parent":"io.github.libtmux.transport.OperationReport.OperationReport","modifiers":[],"signatures":[{"params":[],"returns":"Duration"}],"doc":{"summary":"how long the call waited for a free process or writer slot"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.queued","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.queued","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-queued"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.elapsed","name":"elapsed","kind":"method","parent":"io.github.libtmux.transport.OperationReport.OperationReport","modifiers":[],"signatures":[{"params":[],"returns":"Duration"}],"doc":{"summary":"how long the command itself ran after that wait"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.elapsed","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.elapsed","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-elapsed"},{"id":"io.github.libtmux.transport.OutputDecoder.OutputDecoder","name":"OutputDecoder","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Turns a drained pipe into lines while preserving tmux values.","body":"tmux emits pane content, so the bytes are not guaranteed to be UTF-8. A malformed byte is\nescaped as {@code \\xNN} rather than replaced with U+FFFD, which keeps the original byte\nrecoverable and matches what CPython's {@code backslashreplace} produces.\n\ntmux frames stdout with LF; CR is value data, including before LF. Stdout keeps interior blank\nlines and drops trailing ones. Diagnostic stderr normalizes CRLF and CR to LF and drops all blanks."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OutputDecoder.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OutputDecoder","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OutputDecoder.OutputDecoder","product":"core","slug":"io-github-libtmux-transport-outputdecoder-outputdecoder","typeScopeBoundary":false},{"id":"io.github.libtmux.transport.OutputDecoder.OutputDecoder.stdoutLines","name":"stdoutLines","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.transport.OutputDecoder.OutputDecoder","signatures":[{"params":[{"name":"bytes","type":"byte[]"}],"returns":"List","raw":"static List stdoutLines(byte[] bytes)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OutputDecoder.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OutputDecoder.stdoutLines","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OutputDecoder.OutputDecoder.stdoutLines","product":"core","slug":"io-github-libtmux-transport-outputdecoder-outputdecoder-stdoutlines"},{"id":"io.github.libtmux.transport.OutputDecoder.OutputDecoder.stderrLines","name":"stderrLines","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.transport.OutputDecoder.OutputDecoder","signatures":[{"params":[{"name":"bytes","type":"byte[]"}],"returns":"List","raw":"static List stderrLines(byte[] bytes)","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OutputDecoder.java","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OutputDecoder.stderrLines","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OutputDecoder.OutputDecoder.stderrLines","product":"core","slug":"io-github-libtmux-transport-outputdecoder-outputdecoder-stderrlines"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","name":"ProcessTransport","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"The default transport: one child process per call, drained by a bounded pool of platform threads.","body":"A caller takes one admission permit before launching, and the pool holds exactly three workers\nper permit, so holding a permit means both drains and the input pump are already free. Without\nthat coupling a caller can start a child whose pipes nobody is reading, or block forever writing\nto one that stopped reading.\n\nA request declared as waiting also takes one of all but one admission permits. The remaining\nprocess stays available for the ordinary request that observes or releases those waits, without\nincreasing the total process or pump bound. An additional waiter is refused before dispatch, so\nits caller knows it was never registered.\n\nThe caller itself may be a virtual thread: {@code Process.waitFor} releases its carrier. The\ndrains stay platform threads, although on JDK 25 neither a monitor nor a pipe read pins a virtual\nthread any more. A virtual thread is always a daemon, and a drain has to finish the reply it is\nreading rather than be dropped at exit; and a library does not own the scheduler, where a\ncaller's CPU-bound task that never blocks keeps its carrier and a drain waiting behind it lets\nthe pipe fill.\n\nLaunching and closing are ordered by an explicit gate rather than a flag, because checking a\nflag and then acting on it lets a caller start a child after {@code close()} has already decided\nthere was nothing left to destroy."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":66,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport","typeScopeBoundary":false},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ProcessTransport","name":"ProcessTransport","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","signatures":[{"params":[],"raw":"public ProcessTransport()","typeScopeBoundary":false},{"params":[{"name":"maxConcurrentProcesses","type":"int","doc":"how many tmux processes may run at once ({@code executeWaiting} requires at least two)"}],"raw":"public ProcessTransport(int maxConcurrentProcesses)","typeScopeBoundary":false},{"params":[{"name":"maxConcurrentProcesses","type":"int","doc":"how many tmux processes may run at once"},{"name":"maxOutputBytes","type":"int","doc":"maximum bytes accepted from each output channel of one process"}],"raw":"public ProcessTransport(int maxConcurrentProcesses, int maxOutputBytes)","typeScopeBoundary":false}],"doc":{"summary":"A transport allowing four concurrent tmux processes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":106,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ProcessTransport","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-processtransport"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.controlCarrier","name":"controlCarrier","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","signatures":[{"params":[],"returns":"Optional","raw":"@Override\n public Optional controlCarrier()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":161,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.controlCarrier","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.controlCarrier","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-controlcarrier"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.admissionBound","name":"admissionBound","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","signatures":[{"params":[],"returns":"int","raw":"@Override\n public int admissionBound()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":169,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.admissionBound","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.admissionBound","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-admissionbound"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.observe","name":"observe","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","signatures":[{"params":[{"name":"observer","type":"OperationObserver"}],"returns":"void","raw":"@Override\n public void observe(OperationObserver observer)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":174,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.observe","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.observe","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-observe"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.execute","name":"execute","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","signatures":[{"params":[{"name":"request","type":"CommandRequest"}],"returns":"CommandResult","raw":"@Override\n public CommandResult execute(CommandRequest request)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":179,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.execute","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.execute","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-execute"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.executeWaiting","name":"executeWaiting","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","signatures":[{"params":[{"name":"request","type":"CommandRequest"}],"returns":"CommandResult","raw":"@Override\n public CommandResult executeWaiting(CommandRequest request)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":184,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.executeWaiting","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.executeWaiting","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-executewaiting"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","signatures":[{"params":[],"returns":"void","raw":"@Override\n public void close()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":331,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.close","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.close","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-close"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ProcessStarter","name":"ProcessStarter","kind":"interface","modifiers":[],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":733,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.ProcessStarter","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ProcessStarter","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-processstarter","typeScopeBoundary":true},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ProcessStarter.start","name":"start","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ProcessStarter","signatures":[{"params":[{"name":"command","type":"List"}],"returns":"Process","raw":"Process start(List command) throws IOException;","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":735,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.ProcessStarter.start","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ProcessStarter.start","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-processstarter-start"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ResourceNotReclaimed","name":"ResourceNotReclaimed","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","signatures":[],"doc":{"summary":"A worker could not be recovered. Distinct from {@link IllegalStateException}, which this transport reserves for use after close."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":801,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.ResourceNotReclaimed","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ResourceNotReclaimed","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-resourcenotreclaimed","typeScopeBoundary":true},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ResourceNotReclaimed.ResourceNotReclaimed","name":"ResourceNotReclaimed","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ResourceNotReclaimed","signatures":[{"params":[{"name":"message","type":"String"}],"raw":"ResourceNotReclaimed(String message)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":804,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.ResourceNotReclaimed.ResourceNotReclaimed","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ResourceNotReclaimed.ResourceNotReclaimed","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-resourcenotreclaimed-resourcenotreclaimed"},{"id":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","name":"TmuxTransport","kind":"interface","modifiers":[],"signatures":[],"doc":{"summary":"Runs one tmux command and blocks until it has an answer.","body":"Implementations are thread-safe and {@link #close()} is idempotent. A call begun before close\neither completes under the documented contract or fails with its dispatch certainty intact; a\ncall begun after close fails with {@link io.github.libtmux.exception.ServerClosedException}, an\n{@link IllegalStateException}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/TmuxTransport.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.TmuxTransport","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","product":"core","slug":"io-github-libtmux-transport-tmuxtransport-tmuxtransport","typeScopeBoundary":false},{"id":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.execute","name":"execute","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","signatures":[{"params":[{"name":"request","type":"CommandRequest","doc":"what to run, what it reads, and how long to wait"}],"returns":"CommandResult","returnsDoc":"the exit status and both channels; a nonzero exit is a result, not a failure","raises":[{"type":"DispatchException","doc":"if the command could not be run to completion, carrying how certain it is that tmux applied it"},{"type":"IllegalStateException","doc":"if this transport is closed"}],"raw":"CommandResult execute(CommandRequest request);","typeScopeBoundary":false}],"doc":{"summary":"Runs the request to completion.","body":"An implementation writes {@link CommandRequest#input()} to tmux's standard input and\ncloses it. A command that reads standard input and is given none reads end of file, which\ntmux reports as success over an empty result rather than as a failure."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/TmuxTransport.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.TmuxTransport.execute","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.execute","product":"core","slug":"io-github-libtmux-transport-tmuxtransport-tmuxtransport-execute"},{"id":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.executeWaiting","name":"executeWaiting","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","signatures":[{"params":[{"name":"request","type":"CommandRequest"}],"returns":"CommandResult","raw":"default CommandResult executeWaiting(CommandRequest request)","typeScopeBoundary":false}],"doc":{"summary":"Runs a request expected to remain blocked until another request through this transport releases it.","body":"The default shares ordinary admission. A transport with bounded concurrency may override\nthis to keep release and observation requests from queuing behind every waiter."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/TmuxTransport.java","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.TmuxTransport.executeWaiting","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.executeWaiting","product":"core","slug":"io-github-libtmux-transport-tmuxtransport-tmuxtransport-executewaiting"},{"id":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.realm","name":"realm","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","signatures":[{"params":[],"returns":"String","returnsDoc":"a stable realm name; the default is the local process's own view of the filesystem","raw":"default String realm()","typeScopeBoundary":false}],"doc":{"summary":"Names the execution realm this transport reaches tmux through.","body":"Entity identity is scoped by it. Two unrelated realms can both hold a server at the same\nsocket path, and entities from them must not compare equal, so a transport that reaches a\ndifferent machine, container or user should return something stable and distinct."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/TmuxTransport.java","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.TmuxTransport.realm","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.realm","product":"core","slug":"io-github-libtmux-transport-tmuxtransport-tmuxtransport-realm"},{"id":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.controlCarrier","name":"controlCarrier","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","signatures":[{"params":[],"returns":"Optional","raw":"default Optional controlCarrier()","typeScopeBoundary":false}],"doc":{"summary":"How this transport starts a process that stays attached.","body":"Empty when the transport cannot. A command-only fake is in that set, and so is any realm\nthat has not said how its processes are born. Callers that need a control client then fail\ninstead of starting one on the local machine."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/TmuxTransport.java","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.TmuxTransport.controlCarrier","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.controlCarrier","product":"core","slug":"io-github-libtmux-transport-tmuxtransport-tmuxtransport-controlcarrier"},{"id":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.observe","name":"observe","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","signatures":[{"params":[{"name":"observer","type":"OperationObserver"}],"returns":"void","raw":"default void observe(OperationObserver observer)","typeScopeBoundary":false}],"doc":{"summary":"Receives a report after each command this transport runs.","body":"The default ignores it. A transport that cannot see its own commands leaves the observer\nunset rather than inventing timings."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/TmuxTransport.java","line":72,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.TmuxTransport.observe","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.observe","product":"core","slug":"io-github-libtmux-transport-tmuxtransport-tmuxtransport-observe"},{"id":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.admissionBound","name":"admissionBound","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","signatures":[{"params":[],"returns":"int","returnsDoc":"the bound, or {@link Integer#MAX_VALUE} for a transport that sets none","raw":"default int admissionBound()","typeScopeBoundary":false}],"doc":{"summary":"How many requests this transport runs at once; the rest wait for a turn."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/TmuxTransport.java","line":79,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.TmuxTransport.admissionBound","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.admissionBound","product":"core","slug":"io-github-libtmux-transport-tmuxtransport-tmuxtransport-admissionbound"},{"id":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","signatures":[{"params":[],"returns":"void","raw":"@Override\n void close();","typeScopeBoundary":false}],"doc":{"summary":"Releases every resource and destroys every child still running. Idempotent."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/TmuxTransport.java","line":84,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.TmuxTransport.close","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.close","product":"core","slug":"io-github-libtmux-transport-tmuxtransport-tmuxtransport-close"},{"id":"io.github.libtmux.TypedText.TypedText","name":"TypedText","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Discounts input recorded by this library when reading a pane's output.","body":"Create one instance per wait. Each read refreshes pending input and retains submitted echoes\nalready observed, even after the shared record expires. This mutable view is not thread-safe."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TypedText.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TypedText","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TypedText.TypedText","product":"core","slug":"io-github-libtmux-typedtext-typedtext","typeScopeBoundary":false},{"id":"io.github.libtmux.TypedText.TypedText.in","name":"in","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.TypedText.TypedText","signatures":[{"params":[{"name":"pane","type":"Pane"}],"returns":"TypedText","raw":"public static TypedText in(Pane pane)","typeScopeBoundary":true}],"doc":{"summary":"What this library has typed into the pane recently enough to still be on its screen."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TypedText.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TypedText.in","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TypedText.TypedText.in","product":"core","slug":"io-github-libtmux-typedtext-typedtext-in"},{"id":"io.github.libtmux.TypedText.TypedText.withoutEcho","name":"withoutEcho","kind":"method","modifiers":[],"parent":"io.github.libtmux.TypedText.TypedText","signatures":[{"params":[{"name":"lines","type":"List"}],"returns":"List","raw":"@ReadOnly\n public List withoutEcho(List lines)","typeScopeBoundary":false}],"doc":{"summary":"The lines with each recorded echo taken out, wherever it stands as an echo does.","body":"An occurrence is taken out only where it is not part of a longer word on either side. That is\nwhat keeps the answer when the answer merely contains the question — {@code id} comes off\n{@code $ id} and stays inside {@code uid=1000} — while still taking out every copy of an echo a\nshell drew more than once, and one a shell drew something straight after. A row the echo shared\nwith real output keeps that output.\n\nWhat no rule can do is tell an echo from output that repeats the whole typed line as a line\nof its own. Wait for something the command prints rather than something it says.\n\nThe lines are scanned as one string, so an echo the terminal broke across rows is still\nfound. Pass lines with wrapping already rejoined when the text being watched for can itself be\nbroken across rows. A shell redraw or truncated capture that retains only part of an echo\ncannot be recognized reliably."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TypedText.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TypedText.withoutEcho","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TypedText.TypedText.withoutEcho","product":"core","slug":"io-github-libtmux-typedtext-typedtext-withoutecho"},{"id":"io.github.libtmux.TypedText.TypedText.isEmpty","name":"isEmpty","kind":"method","modifiers":[],"parent":"io.github.libtmux.TypedText.TypedText","signatures":[{"params":[],"returns":"boolean","raw":"public boolean isEmpty()","typeScopeBoundary":false}],"doc":{"summary":"Whether anything typed into the pane is live enough, right now, to still be discounted."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TypedText.java","line":70,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TypedText.isEmpty","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TypedText.TypedText.isEmpty","product":"core","slug":"io-github-libtmux-typedtext-typedtext-isempty"},{"id":"io.github.libtmux.TypedText.TypedText.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.TypedText.TypedText","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/TypedText.java","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TypedText.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TypedText.TypedText.toString","product":"core","slug":"io-github-libtmux-typedtext-typedtext-tostring"},{"id":"io.github.libtmux.WakeReason.WakeReason","name":"WakeReason","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Why a wait on a tmux channel ended.","body":"An enum rather than a boolean, and rather than nothing at all, because tmux's own\n{@code wait-for} cannot distinguish these: it exits successfully both when the channel is\nsignalled and when the server dies underneath the waiter."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WakeReason.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WakeReason","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WakeReason.WakeReason","product":"core","slug":"io-github-libtmux-wakereason-wakereason","typeScopeBoundary":false},{"id":"io.github.libtmux.WakeReason.WakeReason.SIGNALLED","name":"SIGNALLED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.WakeReason.WakeReason","signatures":[],"doc":{"summary":"The channel was signalled."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WakeReason.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WakeReason.SIGNALLED","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WakeReason.WakeReason.SIGNALLED","product":"core","slug":"io-github-libtmux-wakereason-wakereason-signalled","typeScopeBoundary":true},{"id":"io.github.libtmux.WakeReason.WakeReason.TIMED_OUT","name":"TIMED_OUT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.WakeReason.WakeReason","signatures":[],"doc":{"summary":"Nothing signalled the channel before the caller's deadline."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WakeReason.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WakeReason.TIMED_OUT","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WakeReason.WakeReason.TIMED_OUT","product":"core","slug":"io-github-libtmux-wakereason-wakereason-timed_out","typeScopeBoundary":true},{"id":"io.github.libtmux.WakeReason.WakeReason.SERVER_GONE","name":"SERVER_GONE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.WakeReason.WakeReason","signatures":[],"doc":{"summary":"The server is gone. tmux reports this as a successful wake, so it is checked for rather than believed; a caller cannot rely on anything the wait was guarding."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WakeReason.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WakeReason.SERVER_GONE","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WakeReason.WakeReason.SERVER_GONE","product":"core","slug":"io-github-libtmux-wakereason-wakereason-server_gone","typeScopeBoundary":true},{"id":"io.github.libtmux.Window.Window","name":"Window","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"One tmux window at one of its positions, as one capture saw it.","body":"Identity is the winlink: the server, the session, the index and the window. A window linked\ninto two sessions is one window and two handles, because tmux orders and addresses those\npositions separately. {@link #id()} stays available for asking whether two links are the same\nunderlying window.\n\nA method named for a captured field returns what {@link #info()} holds and does no I/O;\n{@link #refresh()} reads again. Every other method asks tmux now."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window","product":"core","slug":"io-github-libtmux-window-window","typeScopeBoundary":false},{"id":"io.github.libtmux.Window.Window.Window","name":"Window","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"state","type":"WindowState"}],"raw":"Window(Server server, ServerSnapshot snapshot, WindowState state)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.Window","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.Window","product":"core","slug":"io-github-libtmux-window-window-window"},{"id":"io.github.libtmux.Window.Window.info","name":"info","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"WindowState","raw":"@Operation(Kind.CAPTURED)\n public WindowState info()","typeScopeBoundary":false}],"doc":{"summary":"The fields this capture stored. A later rename is not visible here."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":44,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.info","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.info","product":"core","slug":"io-github-libtmux-window-window-info"},{"id":"io.github.libtmux.Window.Window.id","name":"id","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"WindowId","raw":"@Operation(Kind.CAPTURED)\n public WindowId id()","typeScopeBoundary":false}],"doc":{"summary":"The underlying window, shared by every link to it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.id","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.id","product":"core","slug":"io-github-libtmux-window-window-id"},{"id":"io.github.libtmux.Window.Window.index","name":"index","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"WindowIndex","raw":"@Operation(Kind.CAPTURED)\n public WindowIndex index()","typeScopeBoundary":false}],"doc":{"summary":"Where this link sits in its session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.index","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.index","product":"core","slug":"io-github-libtmux-window-window-index"},{"id":"io.github.libtmux.Window.Window.context","name":"context","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"WindowContext","raw":"@Operation(Kind.CAPTURED)\n public WindowContext context()","typeScopeBoundary":false}],"doc":{"summary":"The winlink this handle addresses."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.context","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.context","product":"core","slug":"io-github-libtmux-window-window-context"},{"id":"io.github.libtmux.Window.Window.name","name":"name","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"String","raw":"@Operation(Kind.CAPTURED)\n public String name()","typeScopeBoundary":false}],"doc":{"summary":"The window name."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":68,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.name","product":"core","slug":"io-github-libtmux-window-window-name"},{"id":"io.github.libtmux.Window.Window.active","name":"active","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"boolean","raw":"@Operation(Kind.CAPTURED)\n public boolean active()","typeScopeBoundary":false}],"doc":{"summary":"Whether this was its session's active window when captured."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":74,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.active","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.active","product":"core","slug":"io-github-libtmux-window-window-active"},{"id":"io.github.libtmux.Window.Window.linked","name":"linked","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"boolean","raw":"@Operation(Kind.CAPTURED)\n public boolean linked()","typeScopeBoundary":false}],"doc":{"summary":"Whether the underlying window is linked into more than one session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":80,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.linked","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.linked","product":"core","slug":"io-github-libtmux-window-window-linked"},{"id":"io.github.libtmux.Window.Window.size","name":"size","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"Dimensions","raw":"@Operation(Kind.CAPTURED)\n public Dimensions size()","typeScopeBoundary":false}],"doc":{"summary":"How large the window was when captured, in terminal cells."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":86,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.size","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.size","product":"core","slug":"io-github-libtmux-window-window-size"},{"id":"io.github.libtmux.Window.Window.layout","name":"layout","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"WindowLayout","raw":"@Operation(Kind.CAPTURED)\n public WindowLayout layout()","typeScopeBoundary":false}],"doc":{"summary":"tmux's own layout for this window, in whichever form this server writes it.","body":"Classic before tmux 3.8 and JSON from it, and the type says which. Hand it back with {@link\n#applyLayout(WindowLayout)}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":97,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.layout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.layout","product":"core","slug":"io-github-libtmux-window-window-layout"},{"id":"io.github.libtmux.Window.Window.activePane","name":"activePane","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"Optional","raw":"@Operation(Kind.CAPTURED)\n public Optional activePane()","typeScopeBoundary":false}],"doc":{"summary":"The pane tmux had active here. A pure read of the capture.","body":"Empty only when the capture holds no pane marked active for this window, which a complete\ncapture of a live window does not."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":108,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.activePane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.activePane","product":"core","slug":"io-github-libtmux-window-window-activepane"},{"id":"io.github.libtmux.Window.Window.select","name":"select","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void select()","typeScopeBoundary":false}],"doc":{"summary":"Makes this the active window of its session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":114,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.select","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.select","product":"core","slug":"io-github-libtmux-window-window-select"},{"id":"io.github.libtmux.Window.Window.server","name":"server","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"Server","raw":"@Operation(Kind.CAPTURED)\n public Server server()","typeScopeBoundary":false}],"doc":{"summary":"The server this window lives on."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":120,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.server","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.server","product":"core","slug":"io-github-libtmux-window-window-server"},{"id":"io.github.libtmux.Window.Window.snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"ServerSnapshot","raw":"ServerSnapshot snapshot()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":125,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.snapshot","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.snapshot","product":"core","slug":"io-github-libtmux-window-window-snapshot"},{"id":"io.github.libtmux.Window.Window.session","name":"session","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"Session","raw":"@Operation(Kind.CAPTURED)\n public Session session()","typeScopeBoundary":false}],"doc":{"summary":"The session this link belongs to. A pure read of the capture."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":130,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.session","product":"core","slug":"io-github-libtmux-window-window-session"},{"id":"io.github.libtmux.Window.Window.hooks","name":"hooks","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"Hooks","raw":"@Operation(Kind.CAPTURED)\n public Hooks hooks()","typeScopeBoundary":false}],"doc":{"summary":"This window's own hooks, which every link to it shares."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":139,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.hooks","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.hooks","product":"core","slug":"io-github-libtmux-window-window-hooks"},{"id":"io.github.libtmux.Window.Window.options","name":"options","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"Options","raw":"@Operation(Kind.CAPTURED)\n public Options options()","typeScopeBoundary":false}],"doc":{"summary":"This window's own options, which every link to it shares."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":145,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.options","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.options","product":"core","slug":"io-github-libtmux-window-window-options"},{"id":"io.github.libtmux.Window.Window.panes","name":"panes","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"List","raw":"@ReadOnly\n @Operation(Kind.CAPTURED)\n public List panes()","typeScopeBoundary":false}],"doc":{"summary":"This link's panes, in tmux's order. A pure read of the capture.","examples":[{"lang":"console","intro":"List all panes, then the panes captured for one window. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/ListPanes.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/ListPanes.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport java.nio.file.Path;\n\n/** List all panes, then the panes captured for one window. */\npublic final class ListPanes {\n private ListPanes() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n System.out.println(\"panes=\" + server.panes().size());\n var session = server.session(\"work-one\").orElseThrow();\n var window = session.windows().stream()\n .filter(item -> item.name().equals(\"editor\"))\n .findFirst()\n .orElseThrow();\n System.out.println(\"window-panes=\" + window.panes().size());\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.ListPanes && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"panes=4\nwindow-panes=2\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":151,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.panes","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.panes","product":"core","slug":"io-github-libtmux-window-window-panes"},{"id":"io.github.libtmux.Window.Window.split","name":"split","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"Pane","returnsDoc":"the pane that appeared","raw":"@Operation(Kind.MUTATION)\n public Pane split()","typeScopeBoundary":false},{"params":[{"name":"configure","type":"Consumer","doc":"receives a builder holding tmux's defaults"}],"returns":"Pane","returnsDoc":"the pane that appeared","raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something this server does not have"}],"raw":"@Operation(Kind.MUTATION)\n public Pane split(Consumer configure)","typeScopeBoundary":false},{"params":[{"name":"spec","type":"SplitSpec"}],"returns":"Pane","returnsDoc":"the pane that appeared","raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something this server does not have"}],"raw":"@Operation(Kind.MUTATION)\n public Pane split(SplitSpec spec)","typeScopeBoundary":false}],"doc":{"summary":"Splits this window's active pane in half, putting the new one below it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":164,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.split","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.split","product":"core","slug":"io-github-libtmux-window-window-split"},{"id":"io.github.libtmux.Window.Window.expand","name":"expand","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[{"name":"format","type":"String","doc":"a tmux format, usually of the shape {@code #{name}}"}],"returns":"String","returnsDoc":"the expansion, whole when it spans lines and empty when the format expanded to nothing","raw":"@Operation(Kind.READ)\n public String expand(String format)","typeScopeBoundary":false}],"doc":{"summary":"Expands a tmux format in this window's context, and answers with what it came to.","body":"The same escape hatch {@link Pane#expand} gives, resolved against this window."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":203,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.expand","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.expand","product":"core","slug":"io-github-libtmux-window-window-expand"},{"id":"io.github.libtmux.Window.Window.rename","name":"rename","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"Window","raw":"@CheckReturnValue\n @Operation(Kind.MUTATION)\n public Window rename(String name)","typeScopeBoundary":false}],"doc":{"summary":"Renames this window and returns its replacement capture.","body":"Retain the result to read the changed name. This handle keeps its original captured state.\n\nA {@code :} or {@code .} is kept as written on every supported release but 3.7, which\nrefuses the name. A kept delimiter cannot then address the window, since a target splits on\nboth. Unlike a session name, a window name is never rewritten."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":222,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.rename","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.rename","product":"core","slug":"io-github-libtmux-window-window-rename"},{"id":"io.github.libtmux.Window.Window.linkTo","name":"linkTo","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[{"name":"session","type":"Session"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void linkTo(Session session)","typeScopeBoundary":false}],"doc":{"summary":"Links this window into another session, so one window sits in both."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":230,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.linkTo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.linkTo","product":"core","slug":"io-github-libtmux-window-window-linkto"},{"id":"io.github.libtmux.Window.Window.unlink","name":"unlink","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"void","raises":[{"type":"LibTmuxException","doc":"if this is the window's only link, which tmux refuses to remove"}],"raw":"@Operation(Kind.MUTATION)\n public void unlink()","typeScopeBoundary":false}],"doc":{"summary":"Removes this link, leaving the window wherever else it is linked."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":244,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.unlink","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.unlink","product":"core","slug":"io-github-libtmux-window-window-unlink"},{"id":"io.github.libtmux.Window.Window.moveTo","name":"moveTo","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[{"name":"session","type":"Session"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void moveTo(Session session)","typeScopeBoundary":false},{"params":[{"name":"session","type":"Session"},{"name":"index","type":"int"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void moveTo(Session session, int index)","typeScopeBoundary":false}],"doc":{"summary":"Moves this window into another session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":250,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.moveTo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.moveTo","product":"core","slug":"io-github-libtmux-window-window-moveto"},{"id":"io.github.libtmux.Window.Window.resizeTo","name":"resizeTo","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[{"name":"size","type":"Dimensions"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void resizeTo(Dimensions size)","typeScopeBoundary":false}],"doc":{"summary":"Resizes this window in terminal cells."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":275,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.resizeTo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.resizeTo","product":"core","slug":"io-github-libtmux-window-window-resizeto"},{"id":"io.github.libtmux.Window.Window.synchronizePanes","name":"synchronizePanes","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void synchronizePanes()","typeScopeBoundary":false}],"doc":{"summary":"Copies input to one pane into every pane in this window, until {@link #stopSynchronizingPanes}.","body":"A verb pair rather than a boolean parameter, so a call site says which it means — as\n{@link Pane#pipeTo} and {@link Pane#stopPiping} already do for the other state a window\ncarries."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":297,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.synchronizePanes","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.synchronizePanes","product":"core","slug":"io-github-libtmux-window-window-synchronizepanes"},{"id":"io.github.libtmux.Window.Window.stopSynchronizingPanes","name":"stopSynchronizingPanes","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void stopSynchronizingPanes()","typeScopeBoundary":false}],"doc":{"summary":"Stops copying input between this window's panes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":303,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.stopSynchronizingPanes","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.stopSynchronizingPanes","product":"core","slug":"io-github-libtmux-window-window-stopsynchronizingpanes"},{"id":"io.github.libtmux.Window.Window.rotate","name":"rotate","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void rotate()","typeScopeBoundary":false}],"doc":{"summary":"Rotates the panes within this window."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":309,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.rotate","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.rotate","product":"core","slug":"io-github-libtmux-window-window-rotate"},{"id":"io.github.libtmux.Window.Window.selectLayout","name":"selectLayout","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[{"name":"layout","type":"Layout"}],"returns":"void","raises":[{"type":"UnsupportedFeatureException","doc":"if the layout arrived after the release this server runs"}],"raw":"@Operation(Kind.MUTATION)\n public void selectLayout(Layout layout)","typeScopeBoundary":false}],"doc":{"summary":"Rearranges this window's panes into one of tmux's built-in layouts."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":319,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.selectLayout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.selectLayout","product":"core","slug":"io-github-libtmux-window-window-selectlayout"},{"id":"io.github.libtmux.Window.Window.nextLayout","name":"nextLayout","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void nextLayout()","typeScopeBoundary":false}],"doc":{"summary":"Moves to the next built-in layout, as tmux's own binding does."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":327,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.nextLayout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.nextLayout","product":"core","slug":"io-github-libtmux-window-window-nextlayout"},{"id":"io.github.libtmux.Window.Window.previousLayout","name":"previousLayout","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void previousLayout()","typeScopeBoundary":false}],"doc":{"summary":"Moves to the previous built-in layout, as tmux's own binding does."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":333,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.previousLayout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.previousLayout","product":"core","slug":"io-github-libtmux-window-window-previouslayout"},{"id":"io.github.libtmux.Window.Window.applyLayout","name":"applyLayout","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[{"name":"layout","type":"WindowLayout"}],"returns":"void","raises":[{"type":"IllegalArgumentException","doc":"if the string is not a layout tmux wrote"},{"type":"UnsupportedFeatureException","doc":"if it is JSON-shaped but this server predates JSON layouts"}],"raw":"@Operation(Kind.MUTATION)\n public void applyLayout(WindowLayout layout)","typeScopeBoundary":false},{"params":[{"name":"layout","type":"String"}],"returns":"void","raises":[{"type":"IllegalArgumentException","doc":"if the string is not a layout tmux wrote"},{"type":"UnsupportedFeatureException","doc":"if it is JSON-shaped but this server predates JSON layouts"}],"raw":"@Operation(Kind.MUTATION)\n public void applyLayout(String layout)","typeScopeBoundary":false}],"doc":{"summary":"Restores an exact arrangement previously read from {@link #layout()}.","body":"The string is checked here rather than by tmux, because tmux 3.3a does not survive being\nhanded one it cannot parse: it ends the server and every session on the socket. Every other\nsupported release answers {@code invalid layout}. The classic form carries tmux's own\nchecksum, so a wrong one is detectable without asking; since 3.8 tmux may instead hand back\nJSON, which carries no checksum, so that shape is only trusted from a server new enough to\nhave written it.\n\n\"Exact\" holds in full only for a JSON layout, since that is the one form carrying each\npane's id. A classic string — every release before 3.8, or an older reader against a newer\nserver — restores the geometry but names no pane, so which process lands in which cell can\ndiffer from where it started; whether it does depends on whether the pane list still happens\nto match the order the layout was saved in. Confirmed by hand on 3.2a and 3.7c."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":358,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.applyLayout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.applyLayout","product":"core","slug":"io-github-libtmux-window-window-applylayout"},{"id":"io.github.libtmux.Window.Window.respawn","name":"respawn","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void respawn()","typeScopeBoundary":false}],"doc":{"summary":"Kills what is running in this window and starts it again."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":380,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.respawn","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.respawn","product":"core","slug":"io-github-libtmux-window-window-respawn"},{"id":"io.github.libtmux.Window.Window.displayPopup","name":"displayPopup","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[{"name":"shellCommand","type":"String"}],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void displayPopup(String shellCommand)","typeScopeBoundary":false}],"doc":{"summary":"Shows a popup over this window, running a command in it.","body":"tmux draws a popup for a client, so this needs one attached; on a detached session tmux\nreports that it has no current client.\n\ntmux expands {@code #(...)} in this command before a shell sees it, and shell quoting does\nnot prevent that. Pass any interpolated value through {@link TmuxFormats#literal} unless you\nmean it to be expanded."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":395,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.displayPopup","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.displayPopup","product":"core","slug":"io-github-libtmux-window-window-displaypopup"},{"id":"io.github.libtmux.Window.Window.kill","name":"kill","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"void","raw":"@Operation(Kind.MUTATION)\n public void kill()","typeScopeBoundary":false}],"doc":{"summary":"Closes this window."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":401,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.kill","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.kill","product":"core","slug":"io-github-libtmux-window-window-kill"},{"id":"io.github.libtmux.Window.Window.refresh","name":"refresh","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"Window","raises":[{"type":"TargetGoneException","doc":"if this window is no longer linked here, from a server that still answers"},{"type":"ServerUnavailableException","doc":"if no daemon is running"}],"raw":"@CheckReturnValue\n @Operation(Kind.READ)\n public Window refresh()","typeScopeBoundary":false}],"doc":{"summary":"Takes a new capture and returns this winlink as it is now."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":413,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.refresh","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.refresh","product":"core","slug":"io-github-libtmux-window-window-refresh"},{"id":"io.github.libtmux.Window.Window.equals","name":"equals","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[{"name":"other","type":"Object"}],"returns":"boolean","raw":"@Override\n public boolean equals(Object other)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":432,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.equals","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.equals","product":"core","slug":"io-github-libtmux-window-window-equals"},{"id":"io.github.libtmux.Window.Window.hashCode","name":"hashCode","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"int","raw":"@Override\n public int hashCode()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":439,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.hashCode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.hashCode","product":"core","slug":"io-github-libtmux-window-window-hashcode"},{"id":"io.github.libtmux.Window.Window.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":444,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.toString","product":"core","slug":"io-github-libtmux-window-window-tostring"},{"id":"io.github.libtmux.WindowId.WindowId","name":"WindowId","kind":"class","modifiers":[],"signatures":[{"raw":"public record WindowId(String value)","params":[{"name":"value","type":"String","doc":"the id including its {@code @} sigil"}]}],"doc":{"summary":"A tmux window id, such as {@code @1}.","body":"Identifies the window itself, not where it sits. A window linked into two sessions has one id\nand two positions, so this is what to compare when asking whether two links are the same window."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowId.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowId","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowId.WindowId","product":"core","slug":"io-github-libtmux-windowid-windowid","typeScopeBoundary":false},{"id":"io.github.libtmux.WindowId.WindowId.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowId.WindowId","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowId.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowId.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowId.WindowId.toString","product":"core","slug":"io-github-libtmux-windowid-windowid-tostring"},{"id":"io.github.libtmux.WindowId.WindowId.value","name":"value","kind":"method","parent":"io.github.libtmux.WindowId.WindowId","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the id including its {@code @} sigil"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowId.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowId.value","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowId.WindowId.value","product":"core","slug":"io-github-libtmux-windowid-windowid-value"},{"id":"io.github.libtmux.WindowIndex.WindowIndex","name":"WindowIndex","kind":"class","modifiers":[],"signatures":[{"raw":"public record WindowIndex(int value)","params":[{"name":"value","type":"int","doc":"the index, as tmux reports it"}]}],"doc":{"summary":"Where a window sits in one session.","body":"A position, not an identity: tmux renumbering moves a window to a different index, and the\nsame window linked into two sessions can hold a different index in each."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowIndex.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowIndex","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowIndex.WindowIndex","product":"core","slug":"io-github-libtmux-windowindex-windowindex","typeScopeBoundary":false},{"id":"io.github.libtmux.WindowIndex.WindowIndex.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowIndex.WindowIndex","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowIndex.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowIndex.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowIndex.WindowIndex.toString","product":"core","slug":"io-github-libtmux-windowindex-windowindex-tostring"},{"id":"io.github.libtmux.WindowIndex.WindowIndex.value","name":"value","kind":"method","parent":"io.github.libtmux.WindowIndex.WindowIndex","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"the index, as tmux reports it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowIndex.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowIndex.value","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowIndex.WindowIndex.value","product":"core","slug":"io-github-libtmux-windowindex-windowindex-value"},{"id":"io.github.libtmux.WindowLayout.WindowLayout","name":"WindowLayout","kind":"interface","modifiers":[],"signatures":[],"doc":{"summary":"A window's layout as tmux reported it, in whichever of its two forms it used.","body":"tmux writes a layout in its classic checksummed form — {@code c3a4,80x24,0,0,1} — on every\nrelease before 3.8, and as JSON from 3.8, which also names the pane in each cell. The same window\ntherefore reports a differently shaped string depending on the server, and a caller that parses it\nneeds to know which it has. This says, so the compiler can carry what used to be a comment:\n\nEither form is an opaque token to hand back to tmux, which {@link Window#applyLayout(WindowLayout)}\ndoes; parsing one is tmux's job, and {@link #value()} is the text for a caller who wants to anyway.","examples":[{"lang":"java","code":"switch (window.layout()) {\ncase WindowLayout.Json json -> restorePanes(json.value());\ncase WindowLayout.Classic classic -> restoreGeometry(classic.value());\n}"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowLayout.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowLayout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowLayout.WindowLayout","product":"core","slug":"io-github-libtmux-windowlayout-windowlayout","typeScopeBoundary":false},{"id":"io.github.libtmux.WindowLayout.WindowLayout.value","name":"value","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowLayout.WindowLayout","signatures":[{"params":[],"returns":"String","raw":"String value();","typeScopeBoundary":false}],"doc":{"summary":"The layout exactly as tmux reported it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowLayout.java","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowLayout.value","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowLayout.WindowLayout.value","product":"core","slug":"io-github-libtmux-windowlayout-windowlayout-value"},{"id":"io.github.libtmux.WindowLayout.WindowLayout.Classic","name":"Classic","kind":"class","modifiers":[],"parent":"io.github.libtmux.WindowLayout.WindowLayout","signatures":[{"raw":"record Classic(String value) implements WindowLayout","params":[{"name":"value","type":"String"}]}],"doc":{"summary":"The checksummed form every release writes before 3.8. It carries geometry and no pane ids."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowLayout.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowLayout.Classic","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowLayout.WindowLayout.Classic","product":"core","slug":"io-github-libtmux-windowlayout-windowlayout-classic","typeScopeBoundary":true},{"id":"io.github.libtmux.WindowLayout.WindowLayout.Classic.value","name":"value","kind":"method","parent":"io.github.libtmux.WindowLayout.WindowLayout.Classic","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowLayout.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowLayout.Classic.value","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowLayout.WindowLayout.Classic.value","product":"core","slug":"io-github-libtmux-windowlayout-windowlayout-classic-value"},{"id":"io.github.libtmux.WindowLayout.WindowLayout.Json","name":"Json","kind":"class","modifiers":[],"parent":"io.github.libtmux.WindowLayout.WindowLayout","signatures":[{"raw":"record Json(String value) implements WindowLayout","params":[{"name":"value","type":"String"}]}],"doc":{"summary":"The JSON form tmux writes from 3.8, which names the pane in each cell."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowLayout.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowLayout.Json","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowLayout.WindowLayout.Json","product":"core","slug":"io-github-libtmux-windowlayout-windowlayout-json","typeScopeBoundary":true},{"id":"io.github.libtmux.WindowLayout.WindowLayout.Json.value","name":"value","kind":"method","parent":"io.github.libtmux.WindowLayout.WindowLayout.Json","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowLayout.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowLayout.Json.value","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowLayout.WindowLayout.Json.value","product":"core","slug":"io-github-libtmux-windowlayout-windowlayout-json-value"},{"id":"io.github.libtmux.WindowLayout.WindowLayout.of","name":"of","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.WindowLayout.WindowLayout","signatures":[{"params":[{"name":"reported","type":"String"}],"returns":"WindowLayout","raw":"static WindowLayout of(String reported)","typeScopeBoundary":true}],"doc":{"summary":"Which form a reported layout is in.","body":"Decided as tmux decides it, on whether the first non-blank character opens a JSON object —\n{@code layout_construct} in {@code layout-custom.c} dispatches on nothing more."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowLayout.java","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowLayout.of","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowLayout.WindowLayout.of","product":"core","slug":"io-github-libtmux-windowlayout-windowlayout-of"},{"id":"io.github.libtmux.WindowPlacement.WindowPlacement","name":"WindowPlacement","kind":"enum","modifiers":[],"signatures":[],"doc":{"summary":"Where a new window is inserted relative to the current one.","body":"Absent rather than a third constant when the caller does not care: tmux picking the next free\nindex is a different thing from being asked for a particular side, and a {@code DEFAULT} member\nwould have no flag to produce."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowPlacement.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowPlacement","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowPlacement.WindowPlacement","product":"core","slug":"io-github-libtmux-windowplacement-windowplacement","typeScopeBoundary":false},{"id":"io.github.libtmux.WindowPlacement.WindowPlacement.AFTER","name":"AFTER","kind":"constant","modifiers":[],"parent":"io.github.libtmux.WindowPlacement.WindowPlacement","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowPlacement.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowPlacement.AFTER","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowPlacement.WindowPlacement.AFTER","product":"core","slug":"io-github-libtmux-windowplacement-windowplacement-after","typeScopeBoundary":true},{"id":"io.github.libtmux.WindowPlacement.WindowPlacement.BEFORE","name":"BEFORE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.WindowPlacement.WindowPlacement","signatures":[],"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowPlacement.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowPlacement.BEFORE","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowPlacement.WindowPlacement.BEFORE","product":"core","slug":"io-github-libtmux-windowplacement-windowplacement-before","typeScopeBoundary":true},{"id":"io.github.libtmux.WindowPlacement.WindowPlacement.WindowPlacement","name":"WindowPlacement","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowPlacement.WindowPlacement","signatures":[{"params":[{"name":"flag","type":"String"}],"raw":"WindowPlacement(String flag)","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowPlacement.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowPlacement.WindowPlacement","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowPlacement.WindowPlacement.WindowPlacement","product":"core","slug":"io-github-libtmux-windowplacement-windowplacement-windowplacement"},{"id":"io.github.libtmux.WindowPlacement.WindowPlacement.flag","name":"flag","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowPlacement.WindowPlacement","signatures":[{"params":[],"returns":"String","raw":"String flag()","typeScopeBoundary":false}],"doc":{"summary":"The tmux flag that places a window this way."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowPlacement.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowPlacement.flag","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowPlacement.WindowPlacement.flag","product":"core","slug":"io-github-libtmux-windowplacement-windowplacement-flag"},{"id":"io.github.libtmux.WindowSpec.WindowSpec","name":"WindowSpec","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"How a window should be made.","body":"The shape {@link SplitSpec} uses, for the same reasons: a description that contacts nothing, so\nit can be named, reused, and applied wherever it fits.","examples":[{"lang":"java","code":"Window logs = session.newWindow(w -> w.named(\"logs\").running(\"journalctl\", \"-f\"));"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec","product":"core","slug":"io-github-libtmux-windowspec-windowspec","typeScopeBoundary":false},{"id":"io.github.libtmux.WindowSpec.WindowSpec.builder","name":"builder","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"params":[],"returns":"Builder","raw":"public static Builder builder()","typeScopeBoundary":true}],"doc":{"summary":"A builder holding tmux's own defaults: a detached window at the end, running a shell."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.builder","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-1sop"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.name","name":"name","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"params":[],"returns":"Optional","raw":"public Optional name()","typeScopeBoundary":false}],"doc":{"summary":"The name the window is created with, or empty to let tmux choose."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.name","product":"core","slug":"io-github-libtmux-windowspec-windowspec-name"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.directory","name":"directory","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"params":[],"returns":"Optional","raw":"public Optional directory()","typeScopeBoundary":false}],"doc":{"summary":"Where the window's first pane starts, or empty to inherit."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.directory","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.directory","product":"core","slug":"io-github-libtmux-windowspec-windowspec-directory"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.environment","name":"environment","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"params":[],"returns":"Map","raw":"@ReadOnly\n public Map environment()","typeScopeBoundary":false}],"doc":{"summary":"Variables set for the new window, in the order they were given."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.environment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.environment","product":"core","slug":"io-github-libtmux-windowspec-windowspec-environment"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.detached","name":"detached","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"params":[],"returns":"boolean","raw":"public boolean detached()","typeScopeBoundary":false}],"doc":{"summary":"Whether the window is left unselected.","body":"False by default, which is what {@code new-window} itself does."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":74,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.detached","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.detached","product":"core","slug":"io-github-libtmux-windowspec-windowspec-detached"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.placement","name":"placement","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"params":[],"returns":"Optional","raw":"public Optional placement()","typeScopeBoundary":false}],"doc":{"summary":"Where the window is inserted, or empty for tmux's own choice of index."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":79,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.placement","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.placement","product":"core","slug":"io-github-libtmux-windowspec-windowspec-placement"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.index","name":"index","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"params":[],"returns":"Optional","raw":"public Optional index()","typeScopeBoundary":false}],"doc":{"summary":"The index the window is created at, or empty for the next one tmux has free."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":84,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.index","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.index","product":"core","slug":"io-github-libtmux-windowspec-windowspec-index"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.replaceExisting","name":"replaceExisting","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"params":[],"returns":"boolean","raw":"public boolean replaceExisting()","typeScopeBoundary":false}],"doc":{"summary":"Whether a window already at the target index is destroyed to make room.","body":"Only means anything alongside {@link Builder#atIndex}: tmux has nothing to replace when it\nis choosing the index itself."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":94,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.replaceExisting","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.replaceExisting","product":"core","slug":"io-github-libtmux-windowspec-windowspec-replaceexisting"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.reuseExisting","name":"reuseExisting","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"params":[],"returns":"boolean","raw":"public boolean reuseExisting()","typeScopeBoundary":false}],"doc":{"summary":"Whether a window that already carries this name is selected instead of a second being made."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":99,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.reuseExisting","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.reuseExisting","product":"core","slug":"io-github-libtmux-windowspec-windowspec-reuseexisting"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.command","name":"command","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"params":[],"returns":"List","raw":"@ReadOnly\n public List command()","typeScopeBoundary":false}],"doc":{"summary":"What the window's first pane runs, empty for the session's shell."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":104,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.command","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.command","product":"core","slug":"io-github-libtmux-windowspec-windowspec-command"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.argv","name":"argv","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"params":[{"name":"target","type":"String","doc":"the session, or the index, to create in"},{"name":"format","type":"String","doc":"the row format the caller will read the result back with"}],"returns":"List","raw":"List argv(String target, String format)","typeScopeBoundary":false}],"doc":{"summary":"The command that makes this window, reporting it through {@code format}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":115,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.argv","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.argv","product":"core","slug":"io-github-libtmux-windowspec-windowspec-argv"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"params":[],"returns":"String","raw":"@Override\n public String toString()","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":157,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.toString","product":"core","slug":"io-github-libtmux-windowspec-windowspec-tostring"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder","name":"Builder","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[],"doc":{"summary":"Collects the choices, each named for what it does rather than for the field it sets."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":163,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-1f6n","typeScopeBoundary":true},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.named","name":"named","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"Builder","raw":"public Builder named(String name)","typeScopeBoundary":false}],"doc":{"summary":"Names the window, where tmux would otherwise name it after what runs in it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":178,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.named","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.named","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-named"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.after","name":"after","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder after()","typeScopeBoundary":false}],"doc":{"summary":"Puts the window immediately after the current one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":184,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.after","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.after","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-after"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.before","name":"before","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder before()","typeScopeBoundary":false}],"doc":{"summary":"Puts the window immediately before the current one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":190,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.before","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.before","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-before"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.running","name":"running","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"params":[{"name":"argv","type":"String","variadic":"positional"}],"returns":"Builder","raw":"public Builder running(String... argv)","typeScopeBoundary":false}],"doc":{"summary":"Runs a command instead of the session's shell. tmux reports the window before the command has started, so wait for its pane's command with {@link Pane#await(java.util.function.Predicate, java.time.Duration)} rather than reading it at once."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":199,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.running","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.running","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-running"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.in","name":"in","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"params":[{"name":"directory","type":"Path"}],"returns":"Builder","raw":"public Builder in(Path directory)","typeScopeBoundary":false}],"doc":{"summary":"Starts the window in this directory. A relative one resolves against this process's working directory, on every release: tmux 3.2a would resolve it against the server's."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":212,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.in","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.in","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-in"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.env","name":"env","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"params":[{"name":"name","type":"String"},{"name":"value","type":"String"}],"returns":"Builder","raw":"public Builder env(String name, String value)","typeScopeBoundary":false}],"doc":{"summary":"Sets one variable in the new window's environment."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":218,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.env","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.env","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-env"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.environment","name":"environment","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"params":[{"name":"variables","type":"Map"}],"returns":"Builder","raw":"public Builder environment(Map variables)","typeScopeBoundary":false}],"doc":{"summary":"Adds several variables to the new window's environment, keeping any already set."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":224,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.environment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.environment","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-environment"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.detached","name":"detached","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder detached()","typeScopeBoundary":false}],"doc":{"summary":"Leaves the current window selected, where tmux would move to the new one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":230,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.detached","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.detached","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-detached"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.atIndex","name":"atIndex","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"params":[{"name":"index","type":"int"}],"returns":"Builder","raw":"public Builder atIndex(int index)","typeScopeBoundary":false}],"doc":{"summary":"Creates the window at a chosen index rather than the next one tmux has free."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":236,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.atIndex","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.atIndex","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-atindex"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.replaceExisting","name":"replaceExisting","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder replaceExisting()","typeScopeBoundary":false}],"doc":{"summary":"Destroys whatever window already sits at the index chosen by {@link #atIndex}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":245,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.replaceExisting","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.replaceExisting","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-replaceexisting"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.reuseExisting","name":"reuseExisting","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"params":[],"returns":"Builder","raw":"public Builder reuseExisting()","typeScopeBoundary":false}],"doc":{"summary":"Selects a window that already carries this name rather than making a second.","body":"tmux reports nothing when it reuses one, so the answer comes from a lookup. Every other\ncreating call in this library is told what it made; this is the exception."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":256,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.reuseExisting","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.reuseExisting","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-reuseexisting"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.build","name":"build","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"params":[],"returns":"WindowSpec","raw":"public WindowSpec build()","typeScopeBoundary":false}],"doc":{"summary":"The finished spec."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":262,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.build","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.build","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-build"},{"id":"io.github.libtmux.Client_.Client_","name":"Client_","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Typed fields of {@link Client}."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Client_.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client_","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client_.Client_","product":"core","slug":"io-github-libtmux-client_-client_","typeScopeBoundary":false},{"id":"io.github.libtmux.Client_.Client_.name","name":"name","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Client_.Client_","signatures":[{"params":[],"returns":"Fields.TextField","raw":"public static Fields.TextField name()","typeScopeBoundary":true}],"doc":{"summary":"The client's terminal name, which is how tmux addresses it."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Client_.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client_.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client_.Client_.name","product":"core","slug":"io-github-libtmux-client_-client_-name"},{"id":"io.github.libtmux.Client_.Client_.session","name":"session","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Client_.Client_","signatures":[{"params":[],"returns":"Fields.ToOneRef","raw":"public static Fields.ToOneRef session()","typeScopeBoundary":true}],"doc":{"summary":"The session this client was attached to, if any."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Client_.java","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client_.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client_.Client_.session","product":"core","slug":"io-github-libtmux-client_-client_-session"},{"id":"io.github.libtmux.Pane_.Pane_","name":"Pane_","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Typed fields of {@link Pane}."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_","product":"core","slug":"io-github-libtmux-pane_-pane_","typeScopeBoundary":false},{"id":"io.github.libtmux.Pane_.Pane_.id","name":"id","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"params":[],"returns":"Fields.TextField","raw":"public static Fields.TextField id()","typeScopeBoundary":true}],"doc":{"summary":"The pane id."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.id","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.id","product":"core","slug":"io-github-libtmux-pane_-pane_-id"},{"id":"io.github.libtmux.Pane_.Pane_.command","name":"command","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"params":[],"returns":"Fields.TextField","raw":"public static Fields.TextField command()","typeScopeBoundary":true}],"doc":{"summary":"The command tmux reported running in the pane."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.command","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.command","product":"core","slug":"io-github-libtmux-pane_-pane_-command"},{"id":"io.github.libtmux.Pane_.Pane_.index","name":"index","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"params":[],"returns":"Fields.NumberField","raw":"public static Fields.NumberField index()","typeScopeBoundary":true}],"doc":{"summary":"The pane's position in its window."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":57,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.index","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.index","product":"core","slug":"io-github-libtmux-pane_-pane_-index"},{"id":"io.github.libtmux.Pane_.Pane_.active","name":"active","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"params":[],"returns":"Fields.FlagField","raw":"public static Fields.FlagField active()","typeScopeBoundary":true}],"doc":{"summary":"Whether this was its window's active pane."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.active","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.active","product":"core","slug":"io-github-libtmux-pane_-pane_-active"},{"id":"io.github.libtmux.Pane_.Pane_.title","name":"title","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"params":[],"returns":"Fields.TextField","raw":"public static Fields.TextField title()","typeScopeBoundary":true}],"doc":{"summary":"The pane's title, which a program running in it can set."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":71,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.title","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.title","product":"core","slug":"io-github-libtmux-pane_-pane_-title"},{"id":"io.github.libtmux.Pane_.Pane_.path","name":"path","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"params":[],"returns":"Fields.TextField","raw":"public static Fields.TextField path()","typeScopeBoundary":true}],"doc":{"summary":"The pane's working directory, as the text tmux reported."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.path","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.path","product":"core","slug":"io-github-libtmux-pane_-pane_-path"},{"id":"io.github.libtmux.Pane_.Pane_.width","name":"width","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"params":[],"returns":"Fields.NumberField","raw":"public static Fields.NumberField width()","typeScopeBoundary":true}],"doc":{"summary":"The pane's width, in cells."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":85,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.width","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.width","product":"core","slug":"io-github-libtmux-pane_-pane_-width"},{"id":"io.github.libtmux.Pane_.Pane_.height","name":"height","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"params":[],"returns":"Fields.NumberField","raw":"public static Fields.NumberField height()","typeScopeBoundary":true}],"doc":{"summary":"The pane's height, in cells."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":92,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.height","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.height","product":"core","slug":"io-github-libtmux-pane_-pane_-height"},{"id":"io.github.libtmux.Pane_.Pane_.left","name":"left","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"params":[],"returns":"Fields.NumberField","raw":"public static Fields.NumberField left()","typeScopeBoundary":true}],"doc":{"summary":"The column of the pane's left edge in its window."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":99,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.left","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.left","product":"core","slug":"io-github-libtmux-pane_-pane_-left"},{"id":"io.github.libtmux.Pane_.Pane_.top","name":"top","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"params":[],"returns":"Fields.NumberField","raw":"public static Fields.NumberField top()","typeScopeBoundary":true}],"doc":{"summary":"The row of the pane's top edge in its window."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":106,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.top","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.top","product":"core","slug":"io-github-libtmux-pane_-pane_-top"},{"id":"io.github.libtmux.Pane_.Pane_.atTop","name":"atTop","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"params":[],"returns":"Fields.FlagField","raw":"public static Fields.FlagField atTop()","typeScopeBoundary":true}],"doc":{"summary":"Whether the pane touches the top of its window."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":113,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.atTop","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.atTop","product":"core","slug":"io-github-libtmux-pane_-pane_-attop"},{"id":"io.github.libtmux.Pane_.Pane_.atBottom","name":"atBottom","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"params":[],"returns":"Fields.FlagField","raw":"public static Fields.FlagField atBottom()","typeScopeBoundary":true}],"doc":{"summary":"Whether the pane touches the bottom of its window."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":120,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.atBottom","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.atBottom","product":"core","slug":"io-github-libtmux-pane_-pane_-atbottom"},{"id":"io.github.libtmux.Pane_.Pane_.atLeft","name":"atLeft","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"params":[],"returns":"Fields.FlagField","raw":"public static Fields.FlagField atLeft()","typeScopeBoundary":true}],"doc":{"summary":"Whether the pane touches the left of its window."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":127,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.atLeft","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.atLeft","product":"core","slug":"io-github-libtmux-pane_-pane_-atleft"},{"id":"io.github.libtmux.Pane_.Pane_.atRight","name":"atRight","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"params":[],"returns":"Fields.FlagField","raw":"public static Fields.FlagField atRight()","typeScopeBoundary":true}],"doc":{"summary":"Whether the pane touches the right of its window."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":134,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.atRight","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.atRight","product":"core","slug":"io-github-libtmux-pane_-pane_-atright"},{"id":"io.github.libtmux.Session_.Session_","name":"Session_","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Typed fields of {@link Session}, for building an expression that can be read as well as run.","body":"Each field exposes only the operators its type supports, so asking a flag to start with a\nstring does not compile. Every field names a tmux format, so a backend model can bind the handle\nbefore translating the expression into tmux's own {@code -f} filter."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Session_.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session_","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session_.Session_","product":"core","slug":"io-github-libtmux-session_-session_","typeScopeBoundary":false},{"id":"io.github.libtmux.Session_.Session_.id","name":"id","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Session_.Session_","signatures":[{"params":[],"returns":"Fields.TextField","raw":"public static Fields.TextField id()","typeScopeBoundary":true}],"doc":{"summary":"The session id, as text, so it can be compared and listed."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Session_.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session_.id","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session_.Session_.id","product":"core","slug":"io-github-libtmux-session_-session_-id"},{"id":"io.github.libtmux.Session_.Session_.name","name":"name","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Session_.Session_","signatures":[{"params":[],"returns":"Fields.TextField","raw":"public static Fields.TextField name()","typeScopeBoundary":true}],"doc":{"summary":"The session name."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Session_.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session_.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session_.Session_.name","product":"core","slug":"io-github-libtmux-session_-session_-name"},{"id":"io.github.libtmux.Session_.Session_.attached","name":"attached","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Session_.Session_","signatures":[{"params":[],"returns":"Fields.FlagField","raw":"public static Fields.FlagField attached()","typeScopeBoundary":true}],"doc":{"summary":"Whether a client was attached when this was captured."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Session_.java","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session_.attached","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session_.Session_.attached","product":"core","slug":"io-github-libtmux-session_-session_-attached"},{"id":"io.github.libtmux.Session_.Session_.windowCount","name":"windowCount","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Session_.Session_","signatures":[{"params":[],"returns":"Fields.NumberField","raw":"public static Fields.NumberField windowCount()","typeScopeBoundary":true}],"doc":{"summary":"How many windows this session holds."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Session_.java","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session_.windowCount","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session_.Session_.windowCount","product":"core","slug":"io-github-libtmux-session_-session_-windowcount"},{"id":"io.github.libtmux.Session_.Session_.windows","name":"windows","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Session_.Session_","signatures":[{"params":[],"returns":"Fields.ToManyRef","raw":"public static Fields.ToManyRef windows()","typeScopeBoundary":true}],"doc":{"summary":"This session's windows."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Session_.java","line":57,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session_.windows","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session_.Session_.windows","product":"core","slug":"io-github-libtmux-session_-session_-windows"},{"id":"io.github.libtmux.Window_.Window_","name":"Window_","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Typed fields of {@link Window}."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_","product":"core","slug":"io-github-libtmux-window_-window_","typeScopeBoundary":false},{"id":"io.github.libtmux.Window_.Window_.id","name":"id","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"params":[],"returns":"Fields.TextField","raw":"public static Fields.TextField id()","typeScopeBoundary":true}],"doc":{"summary":"The underlying window id, shared by every link to it."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.id","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.id","product":"core","slug":"io-github-libtmux-window_-window_-id"},{"id":"io.github.libtmux.Window_.Window_.name","name":"name","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"params":[],"returns":"Fields.TextField","raw":"public static Fields.TextField name()","typeScopeBoundary":true}],"doc":{"summary":"The window name."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":42,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.name","product":"core","slug":"io-github-libtmux-window_-window_-name"},{"id":"io.github.libtmux.Window_.Window_.index","name":"index","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"params":[],"returns":"Fields.NumberField","raw":"public static Fields.NumberField index()","typeScopeBoundary":true}],"doc":{"summary":"Where this link sits in its session."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.index","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.index","product":"core","slug":"io-github-libtmux-window_-window_-index"},{"id":"io.github.libtmux.Window_.Window_.active","name":"active","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"params":[],"returns":"Fields.FlagField","raw":"public static Fields.FlagField active()","typeScopeBoundary":true}],"doc":{"summary":"Whether this was its session's active window."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.active","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.active","product":"core","slug":"io-github-libtmux-window_-window_-active"},{"id":"io.github.libtmux.Window_.Window_.linked","name":"linked","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"params":[],"returns":"Fields.FlagField","raw":"public static Fields.FlagField linked()","typeScopeBoundary":true}],"doc":{"summary":"Whether the underlying window is linked into more than one session."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.linked","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.linked","product":"core","slug":"io-github-libtmux-window_-window_-linked"},{"id":"io.github.libtmux.Window_.Window_.width","name":"width","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"params":[],"returns":"Fields.NumberField","raw":"public static Fields.NumberField width()","typeScopeBoundary":true}],"doc":{"summary":"The window's width, in cells."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":70,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.width","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.width","product":"core","slug":"io-github-libtmux-window_-window_-width"},{"id":"io.github.libtmux.Window_.Window_.height","name":"height","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"params":[],"returns":"Fields.NumberField","raw":"public static Fields.NumberField height()","typeScopeBoundary":true}],"doc":{"summary":"The window's height, in cells."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.height","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.height","product":"core","slug":"io-github-libtmux-window_-window_-height"},{"id":"io.github.libtmux.Window_.Window_.paneCount","name":"paneCount","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"params":[],"returns":"Fields.NumberField","raw":"public static Fields.NumberField paneCount()","typeScopeBoundary":true}],"doc":{"summary":"How many panes this link holds."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":84,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.paneCount","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.paneCount","product":"core","slug":"io-github-libtmux-window_-window_-panecount"},{"id":"io.github.libtmux.Window_.Window_.panes","name":"panes","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"params":[],"returns":"Fields.ToManyRef","raw":"public static Fields.ToManyRef panes()","typeScopeBoundary":true}],"doc":{"summary":"This link's panes."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":91,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.panes","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.panes","product":"core","slug":"io-github-libtmux-window_-window_-panes"},{"id":"io.github.libtmux.Window_.Window_.session","name":"session","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"params":[],"returns":"Fields.ToOneRef","raw":"public static Fields.ToOneRef session()","typeScopeBoundary":true}],"doc":{"summary":"The session this link belongs to."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":98,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.session","product":"core","slug":"io-github-libtmux-window_-window_-session"},{"id":"io.github.libtmux.workspace.PaneSpec.PaneSpec","name":"PaneSpec","kind":"class","modifiers":[],"signatures":[{"raw":"public record PaneSpec(List commands)","params":[{"name":"commands","type":"List","doc":"the commands to send, in order; a pane with none is left at its shell"}]}],"doc":{"summary":"One pane and what to run in it."},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/PaneSpec.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.PaneSpec","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.PaneSpec.PaneSpec","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-panespec-panespec","typeScopeBoundary":false},{"id":"io.github.libtmux.workspace.PaneSpec.PaneSpec.commands","name":"commands","kind":"method","parent":"io.github.libtmux.workspace.PaneSpec.PaneSpec","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the commands to send, in order; a pane with none is left at its shell"},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/PaneSpec.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.PaneSpec.commands","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.PaneSpec.PaneSpec.commands","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-panespec-panespec-commands"},{"id":"io.github.libtmux.workspace.WindowSpec.WindowSpec","name":"WindowSpec","kind":"class","modifiers":[],"signatures":[{"raw":"public record WindowSpec(String name, Optional layout, List panes)","params":[{"name":"name","type":"String","doc":"the window name"},{"name":"layout","type":"Optional","doc":"the tmux layout to apply once the panes exist, if the file asked for one"},{"name":"panes","type":"List","doc":"the panes to create, in order; a window always has at least one"}]}],"doc":{"summary":"One window, its panes, and how they are arranged."},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WindowSpec.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WindowSpec","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WindowSpec.WindowSpec","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-windowspec-windowspec","typeScopeBoundary":false},{"id":"io.github.libtmux.workspace.WindowSpec.WindowSpec.name","name":"name","kind":"method","parent":"io.github.libtmux.workspace.WindowSpec.WindowSpec","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the window name"},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WindowSpec.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WindowSpec.name","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WindowSpec.WindowSpec.name","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-windowspec-windowspec-name"},{"id":"io.github.libtmux.workspace.WindowSpec.WindowSpec.layout","name":"layout","kind":"method","parent":"io.github.libtmux.workspace.WindowSpec.WindowSpec","modifiers":[],"signatures":[{"params":[],"returns":"Optional"}],"doc":{"summary":"the tmux layout to apply once the panes exist, if the file asked for one"},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WindowSpec.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WindowSpec.layout","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WindowSpec.WindowSpec.layout","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-windowspec-windowspec-layout"},{"id":"io.github.libtmux.workspace.WindowSpec.WindowSpec.panes","name":"panes","kind":"method","parent":"io.github.libtmux.workspace.WindowSpec.WindowSpec","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the panes to create, in order; a window always has at least one"},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WindowSpec.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WindowSpec.panes","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WindowSpec.WindowSpec.panes","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-windowspec-windowspec-panes"},{"id":"io.github.libtmux.workspace.Workspace.Workspace","name":"Workspace","kind":"class","modifiers":[],"signatures":[{"raw":"public record Workspace(String sessionName, List windows)","params":[{"name":"sessionName","type":"String","doc":"the session to create"},{"name":"windows","type":"List","doc":"the windows to create, in order"}]}],"doc":{"summary":"A session described in a file, before anything has been built."},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/Workspace.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.Workspace","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.Workspace.Workspace","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-workspace-workspace","typeScopeBoundary":false},{"id":"io.github.libtmux.workspace.Workspace.Workspace.sessionName","name":"sessionName","kind":"method","parent":"io.github.libtmux.workspace.Workspace.Workspace","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the session to create"},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/Workspace.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.Workspace.sessionName","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.Workspace.Workspace.sessionName","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-workspace-workspace-sessionname"},{"id":"io.github.libtmux.workspace.Workspace.Workspace.windows","name":"windows","kind":"method","parent":"io.github.libtmux.workspace.Workspace.Workspace","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the windows to create, in order"},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/Workspace.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.Workspace.windows","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.Workspace.Workspace.windows","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-workspace-workspace-windows"},{"id":"io.github.libtmux.workspace.WorkspaceApplier.WorkspaceApplier","name":"WorkspaceApplier","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Applies a validated workspace as one session and attempts to remove it after a failure."},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WorkspaceApplier.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WorkspaceApplier","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WorkspaceApplier.WorkspaceApplier","product":"workspace","apiScope":"internal","slug":"io-github-libtmux-workspace-workspaceapplier-workspaceapplier","typeScopeBoundary":false},{"id":"io.github.libtmux.workspace.WorkspaceApplier.WorkspaceApplier.build","name":"build","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.workspace.WorkspaceApplier.WorkspaceApplier","signatures":[{"params":[{"name":"server","type":"Server"},{"name":"workspace","type":"Workspace"}],"returns":"Session","raw":"static Session build(Server server, Workspace workspace)","typeScopeBoundary":true}],"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WorkspaceApplier.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WorkspaceApplier.build","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WorkspaceApplier.WorkspaceApplier.build","product":"workspace","apiScope":"internal","slug":"io-github-libtmux-workspace-workspaceapplier-workspaceapplier-build"},{"id":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder","name":"WorkspaceBuilder","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Builds a tmux session from a written description.","body":"Reads the shape of a tmuxp workspace file. Full runtime compatibility with tmuxp is not the\naim; starting from a file somebody already has is.\n\nReading and building are separate. A file that describes something tmux would refuse is\nrejected while it is still text, before any session exists to leave half-built.\n\nThe {@code tmux-workspace} command is a separate implementation with a wider document\nlanguage and its own behaviour around building; see this package's documentation for what\ndiffers. Code against this class for what this class does."},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WorkspaceBuilder.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WorkspaceBuilder","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-workspacebuilder-workspacebuilder","typeScopeBoundary":false},{"id":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder.read","name":"read","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder","signatures":[{"params":[{"name":"file","type":"Path"}],"returns":"Workspace","raw":"public static Workspace read(Path file)","typeScopeBoundary":true}],"doc":{"summary":"Reads a workspace from a file."},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WorkspaceBuilder.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WorkspaceBuilder.read","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder.read","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-workspacebuilder-workspacebuilder-read"},{"id":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder.parse","name":"parse","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder","signatures":[{"params":[{"name":"yaml","type":"String"}],"returns":"Workspace","raises":[{"type":"IllegalArgumentException","doc":"if the description is one tmux could not build, including a layout name tmux would not recognise"}],"raw":"public static Workspace parse(String yaml)","typeScopeBoundary":true}],"doc":{"summary":"Reads a workspace from YAML text."},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WorkspaceBuilder.java","line":42,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WorkspaceBuilder.parse","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder.parse","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-workspacebuilder-workspacebuilder-parse"},{"id":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder.build","name":"build","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder","signatures":[{"params":[{"name":"server","type":"Server"},{"name":"workspace","type":"Workspace"}],"returns":"Session","returnsDoc":"the session, from a capture taken once everything exists","raw":"public static Session build(Server server, Workspace workspace)","typeScopeBoundary":true}],"doc":{"summary":"Creates the described session on a server."},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WorkspaceBuilder.java","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WorkspaceBuilder.build","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder.build","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-workspacebuilder-workspacebuilder-build"},{"id":"io.github.libtmux.workspace.WorkspaceParser.WorkspaceParser","name":"WorkspaceParser","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Converts the supported YAML shape into immutable workspace values."},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WorkspaceParser.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WorkspaceParser","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WorkspaceParser.WorkspaceParser","product":"workspace","apiScope":"internal","slug":"io-github-libtmux-workspace-workspaceparser-workspaceparser","typeScopeBoundary":false},{"id":"io.github.libtmux.workspace.WorkspaceParser.WorkspaceParser.parse","name":"parse","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.workspace.WorkspaceParser.WorkspaceParser","signatures":[{"params":[{"name":"yaml","type":"String"}],"returns":"Workspace","raw":"static Workspace parse(String yaml)","typeScopeBoundary":true}],"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WorkspaceParser.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WorkspaceParser.parse","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WorkspaceParser.WorkspaceParser.parse","product":"workspace","apiScope":"internal","slug":"io-github-libtmux-workspace-workspaceparser-workspaceparser-parse"},{"id":"io.github.libtmux.jackson.FilterJson.FilterJson","name":"FilterJson","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"The versioned wire form of a filter expression.","body":"Writing and reading both require a model. Expressions hold executable accessors and navigators,\nwhile documents carry only their ids; the model is the authority that binds one to the other.\nRegex operands retain {@link java.util.regex.Pattern} syntax and flag bits.\n\nEverything unrecognised fails. An expression read wrongly does not announce itself — it\nsilently matches the wrong things, and a caller who wanted a filter gets one, just not theirs."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterJson.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterJson","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterJson.FilterJson","product":"core","slug":"io-github-libtmux-jackson-filterjson-filterjson","typeScopeBoundary":false},{"id":"io.github.libtmux.jackson.FilterJson.FilterJson.SCHEMA","name":"SCHEMA","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.jackson.FilterJson.FilterJson","signatures":[],"type":"String","value":"\"libtmux.filter/1\"","doc":{"summary":"The schema this version reads and writes. Immutable once published."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterJson.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterJson.SCHEMA","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterJson.FilterJson.SCHEMA","product":"core","slug":"io-github-libtmux-jackson-filterjson-filterjson-schema","typeScopeBoundary":true},{"id":"io.github.libtmux.jackson.FilterJson.FilterJson.write","name":"write","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.jackson.FilterJson.FilterJson","signatures":[{"params":[{"name":"expression","type":"FilterExpr"},{"name":"model","type":"FilterModel"}],"returns":"ObjectNode","typeParams":["T"],"raises":[{"type":"SchemaException","doc":"if any field or relation is not the exact handle declared by the model"}],"raw":"public static ObjectNode write(FilterExpr expression, FilterModel model)","typeParamNames":["T"],"typeScopeBoundary":true}],"doc":{"summary":"Writes an expression as a document for the model that declared all of its fields and relations."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterJson.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterJson.write","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterJson.FilterJson.write","product":"core","slug":"io-github-libtmux-jackson-filterjson-filterjson-write"},{"id":"io.github.libtmux.jackson.FilterJson.FilterJson.writeString","name":"writeString","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.jackson.FilterJson.FilterJson","signatures":[{"params":[{"name":"expression","type":"FilterExpr"},{"name":"model","type":"FilterModel"}],"returns":"String","typeParams":["T"],"raw":"public static String writeString(FilterExpr expression, FilterModel model)","typeParamNames":["T"],"typeScopeBoundary":true}],"doc":{"summary":"Writes an expression as compact JSON text."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterJson.java","line":55,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterJson.writeString","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterJson.FilterJson.writeString","product":"core","slug":"io-github-libtmux-jackson-filterjson-filterjson-writestring"},{"id":"io.github.libtmux.jackson.FilterJson.FilterJson.read","name":"read","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.jackson.FilterJson.FilterJson","signatures":[{"params":[{"name":"document","type":"JsonNode"},{"name":"model","type":"FilterModel"}],"returns":"FilterExpr","typeParams":["T"],"raises":[{"type":"SchemaException","doc":"if the schema version, the model, a field, a relation, an operator or a node shape is not one this version knows"}],"raw":"public static FilterExpr read(JsonNode document, FilterModel model)","typeParamNames":["T"],"typeScopeBoundary":true}],"doc":{"summary":"Reads a document back as an expression over the given model."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterJson.java","line":65,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterJson.read","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterJson.FilterJson.read","product":"core","slug":"io-github-libtmux-jackson-filterjson-filterjson-read"},{"id":"io.github.libtmux.jackson.FilterJson.FilterJson.readString","name":"readString","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.jackson.FilterJson.FilterJson","signatures":[{"params":[{"name":"json","type":"String"},{"name":"model","type":"FilterModel"}],"returns":"FilterExpr","typeParams":["T"],"raw":"public static FilterExpr readString(String json, FilterModel model)","typeParamNames":["T"],"typeScopeBoundary":true}],"doc":{"summary":"Reads a document from JSON text."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterJson.java","line":80,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterJson.readString","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterJson.FilterJson.readString","product":"core","slug":"io-github-libtmux-jackson-filterjson-filterjson-readstring"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel","name":"FilterModel","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"What a document's field and relation ids mean.","body":"Expressions carry executable field and relation handles, while documents carry only their ids.\nThis model binds those forms and gives each nested relation its target model."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel","typeParams":["T"],"typeParamNames":["T"],"typeScopeBoundary":false},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.named","name":"named","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[{"params":[{"name":"id","type":"String"}],"returns":"Builder","typeParams":["T"],"raw":"public static Builder named(String id)","typeParamNames":["T"],"typeScopeBoundary":true},{"params":[{"name":"id","type":"String"},{"name":"entityType","type":"Class"}],"returns":"Builder","typeParams":["T"],"raw":"public static Builder named(String id, Class entityType)","typeParamNames":["T"],"typeScopeBoundary":true}],"doc":{"summary":"Starts a caller-owned model. Its id must identify the caller's namespace."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":39,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.named","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.named","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-named"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.builtIn","name":"builtIn","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[{"params":[{"name":"id","type":"String"}],"returns":"Builder","typeParams":["T"],"raw":"static Builder builtIn(String id)","typeParamNames":["T"],"typeScopeBoundary":true}],"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":57,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.builtIn","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.builtIn","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-builtin"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.id","name":"id","kind":"method","modifiers":[],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[{"params":[],"returns":"String","raw":"public String id()","typeScopeBoundary":false}],"doc":{"summary":"The id documents name this model by."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":66,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.id","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.id","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-id"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.fieldNames","name":"fieldNames","kind":"method","modifiers":[],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[{"params":[],"returns":"Set","raw":"public Set fieldNames()","typeScopeBoundary":false}],"doc":{"summary":"Every field a document may compare on, in declaration order."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":71,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.fieldNames","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.fieldNames","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-fieldnames"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.relationNames","name":"relationNames","kind":"method","modifiers":[],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[{"params":[],"returns":"Set","raw":"public Set relationNames()","typeScopeBoundary":false}],"doc":{"summary":"Every relation a document may navigate."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":76,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.relationNames","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.relationNames","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-relationnames"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.field","name":"field","kind":"method","modifiers":[],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[{"params":[{"name":"fieldId","type":"String"}],"returns":"FieldRef","raw":"FieldRef field(String fieldId)","typeScopeBoundary":false}],"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":82,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.field","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.field","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-field"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.toMany","name":"toMany","kind":"method","modifiers":[],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[{"params":[{"name":"relation","type":"String"}],"returns":"Relation","raw":"Relation toMany(String relation)","typeScopeBoundary":false}],"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":90,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.toMany","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.toMany","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-tomany"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.toOne","name":"toOne","kind":"method","modifiers":[],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[{"params":[{"name":"relation","type":"String"}],"returns":"Relation","raw":"Relation toOne(String relation)","typeScopeBoundary":false}],"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":94,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.toOne","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.toOne","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-toone"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation","name":"Relation","kind":"class","modifiers":[],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[{"raw":"record Relation(\n Fields.@Nullable ToManyRef toMany,\n Fields.@Nullable ToOneRef toOne,\n Supplier> targetModel)","params":[{"name":"toMany","type":"Fields.@Nullable ToManyRef"},{"name":"toOne","type":"Fields.@Nullable ToOneRef"},{"name":"targetModel","type":"Supplier>"}],"typeParams":["T","R"],"typeParamNames":["T","R"]}],"doc":{"summary":"A relation handle paired with the model its far side is described by."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":107,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Relation","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-relation","typeParams":["T","R"],"typeParamNames":["T","R"],"typeScopeBoundary":true},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation.target","name":"target","kind":"method","modifiers":[],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation","signatures":[{"params":[],"returns":"FilterModel","raw":"FilterModel target()","typeScopeBoundary":false}],"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":116,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Relation.target","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation.target","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-relation-target"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation.toMany","name":"toMany","kind":"method","parent":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation","modifiers":[],"signatures":[{"params":[],"returns":"Fields.@Nullable ToManyRef"}],"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Relation.toMany","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation.toMany","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-relation-tomany"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation.toOne","name":"toOne","kind":"method","parent":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation","modifiers":[],"signatures":[{"params":[],"returns":"Fields.@Nullable ToOneRef"}],"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Relation.toOne","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation.toOne","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-relation-toone"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation.targetModel","name":"targetModel","kind":"method","parent":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation","modifiers":[],"signatures":[{"params":[],"returns":"Supplier>"}],"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Relation.targetModel","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation.targetModel","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-relation-targetmodel"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder","name":"Builder","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[],"doc":{"summary":"Collects the exact handles and unique ids a document may name."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":122,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Builder","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-builder","typeParams":["T"],"typeParamNames":["T"],"typeScopeBoundary":true},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder.field","name":"field","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder","signatures":[{"params":[{"name":"field","type":"Fields.TextField"}],"returns":"Builder","raw":"public Builder field(Fields.TextField field)","typeScopeBoundary":false},{"params":[{"name":"field","type":"Fields.NumberField"}],"returns":"Builder","raw":"public Builder field(Fields.NumberField field)","typeScopeBoundary":false},{"params":[{"name":"field","type":"Fields.FlagField"}],"returns":"Builder","raw":"public Builder field(Fields.FlagField field)","typeScopeBoundary":false}],"doc":{"summary":"Declares a text field by the handle a metamodel already mints."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":134,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Builder.field","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder.field","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-builder-field"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder.toMany","name":"toMany","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder","signatures":[{"params":[{"name":"relation","type":"Fields.ToManyRef"},{"name":"target","type":"FilterModel"}],"returns":"Builder","typeParams":["R"],"raw":"public Builder toMany(Fields.ToManyRef relation, FilterModel target)","typeParamNames":["R"],"typeScopeBoundary":false},{"params":[{"name":"relation","type":"Fields.ToManyRef"},{"name":"target","type":"Supplier>"}],"returns":"Builder","typeParams":["R"],"raw":"public Builder toMany(Fields.ToManyRef relation, Supplier> target)","typeParamNames":["R"],"typeScopeBoundary":false}],"doc":{"summary":"Declares a to-many relation and the model describing what it reaches."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":149,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Builder.toMany","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder.toMany","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-builder-tomany"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder.toOne","name":"toOne","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder","signatures":[{"params":[{"name":"relation","type":"Fields.ToOneRef"},{"name":"target","type":"FilterModel"}],"returns":"Builder","typeParams":["R"],"raw":"public Builder toOne(Fields.ToOneRef relation, FilterModel target)","typeParamNames":["R"],"typeScopeBoundary":false},{"params":[{"name":"relation","type":"Fields.ToOneRef"},{"name":"target","type":"Supplier>"}],"returns":"Builder","typeParams":["R"],"raw":"public Builder toOne(Fields.ToOneRef relation, Supplier> target)","typeParamNames":["R"],"typeScopeBoundary":false}],"doc":{"summary":"Declares a to-one relation and the model describing what it reaches."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":163,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Builder.toOne","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder.toOne","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-builder-toone"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder.build","name":"build","kind":"method","modifiers":[],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder","signatures":[{"params":[],"returns":"FilterModel","raw":"public FilterModel build()","typeScopeBoundary":false}],"doc":{"summary":"Builds the model."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":190,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Builder.build","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder.build","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-builder-build"},{"id":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels","name":"LibTmuxModels","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"The wire ids for this library's own entities.","body":"The ids are tmux's format names, which is what makes a document readable by something that is\nnot this library: another implementation already knows what {@code pane_current_command} means."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/LibTmuxModels.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.LibTmuxModels","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels","product":"core","slug":"io-github-libtmux-jackson-libtmuxmodels-libtmuxmodels","typeScopeBoundary":false},{"id":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels.pane","name":"pane","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels","signatures":[{"params":[],"returns":"FilterModel","raw":"public static FilterModel pane()","typeScopeBoundary":true}],"doc":{"summary":"The model documents name {@code pane}."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/LibTmuxModels.java","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.LibTmuxModels.pane","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels.pane","product":"core","slug":"io-github-libtmux-jackson-libtmuxmodels-libtmuxmodels-pane"},{"id":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels.window","name":"window","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels","signatures":[{"params":[],"returns":"FilterModel","raw":"public static FilterModel window()","typeScopeBoundary":true}],"doc":{"summary":"The model documents name {@code window}, reaching panes."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/LibTmuxModels.java","line":67,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.LibTmuxModels.window","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels.window","product":"core","slug":"io-github-libtmux-jackson-libtmuxmodels-libtmuxmodels-window"},{"id":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels.session","name":"session","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels","signatures":[{"params":[],"returns":"FilterModel","raw":"public static FilterModel session()","typeScopeBoundary":true}],"doc":{"summary":"The model documents name {@code session}, reaching windows."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/LibTmuxModels.java","line":72,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.LibTmuxModels.session","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels.session","product":"core","slug":"io-github-libtmux-jackson-libtmuxmodels-libtmuxmodels-session"},{"id":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels.client","name":"client","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels","signatures":[{"params":[],"returns":"FilterModel","raw":"public static FilterModel client()","typeScopeBoundary":true}],"doc":{"summary":"The model documents name {@code client}, reaching its session."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/LibTmuxModels.java","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.LibTmuxModels.client","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels.client","product":"core","slug":"io-github-libtmux-jackson-libtmuxmodels-libtmuxmodels-client"},{"id":"io.github.libtmux.jackson.SchemaException.SchemaException","name":"SchemaException","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"A document could not be read as the expression it claims to be.","body":"Every failure here is a refusal rather than a best effort. An expression read wrongly does not\nannounce itself: it silently matches the wrong things, which is worse than not loading at all. An\n{@link IllegalArgumentException}, since the fault is in the document, not in talking to tmux."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/SchemaException.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.SchemaException","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.SchemaException.SchemaException","product":"core","slug":"io-github-libtmux-jackson-schemaexception-schemaexception","typeScopeBoundary":false},{"id":"io.github.libtmux.jackson.SchemaException.SchemaException.SchemaException","name":"SchemaException","kind":"method","modifiers":[],"parent":"io.github.libtmux.jackson.SchemaException.SchemaException","signatures":[{"params":[{"name":"message","type":"String"}],"raw":"public SchemaException(String message)","typeScopeBoundary":false}],"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/SchemaException.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.SchemaException.SchemaException","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.SchemaException.SchemaException.SchemaException","product":"core","slug":"io-github-libtmux-jackson-schemaexception-schemaexception-schemaexception"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","name":"FakeControlClient","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"A {@code tmux -C} client of a {@link FakeTmux}, as the process a control client talks to.","body":"It reads one command line at a time, has the fake answer it, and writes the reply block tmux\nwould: {@code %begin}, the output, then {@code %end} or {@code %error}. Pushed output and\nnotifications are written between replies, never inside one, as tmux writes them. It ends, with\n{@code %exit}, when the fake restarts or the client closes its input."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.FakeControlClient","name":"FakeControlClient","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"params":[{"name":"answer","type":"Function>, CommandResult>"}],"raw":"FakeControlClient(Function>, CommandResult> answer)","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":39,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.FakeControlClient","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-fakecontrolclient"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.push","name":"push","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"params":[{"name":"line","type":"String"}],"returns":"void","raw":"void push(String line)","typeScopeBoundary":false}],"doc":{"summary":"Writes an unprompted line, such as {@code %output}, between replies."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":55,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.push","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.push","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-push"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.end","name":"end","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"params":[],"returns":"void","raw":"void end()","typeScopeBoundary":false}],"doc":{"summary":"Ends the client as a server that went away does."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":60,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.end","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.end","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-end"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.parse","name":"parse","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"params":[{"name":"line","type":"String"}],"returns":"List>","raw":"static List> parse(String line)","typeScopeBoundary":true}],"doc":{"summary":"A command line as tmux's parser reads the ones this library writes: each argument single quoted, a quote as {@code '\\''}, a newline or return as {@code \"\\n\"} or {@code \"\\r\"}, and an unquoted {@code ;} between commands."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":83,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.parse","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.parse","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-parse"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.getOutputStream","name":"getOutputStream","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"params":[],"returns":"OutputStream","raw":"@Override\n public OutputStream getOutputStream()","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":188,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.getOutputStream","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.getOutputStream","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-getoutputstream"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.getInputStream","name":"getInputStream","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"params":[],"returns":"InputStream","raw":"@Override\n public InputStream getInputStream()","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":193,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.getInputStream","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.getInputStream","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-getinputstream"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.getErrorStream","name":"getErrorStream","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"params":[],"returns":"InputStream","raw":"@Override\n public InputStream getErrorStream()","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":198,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.getErrorStream","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.getErrorStream","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-geterrorstream"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.waitFor","name":"waitFor","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"params":[],"returns":"int","raw":"@Override\n public int waitFor() throws InterruptedException","typeScopeBoundary":false},{"params":[{"name":"timeout","type":"long"},{"name":"unit","type":"TimeUnit"}],"returns":"boolean","raw":"@Override\n public boolean waitFor(long timeout, TimeUnit unit) throws InterruptedException","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":203,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.waitFor","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.waitFor","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-waitfor"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.exitValue","name":"exitValue","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"params":[],"returns":"int","raw":"@Override\n public int exitValue()","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":214,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.exitValue","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.exitValue","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-exitvalue"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.isAlive","name":"isAlive","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"params":[],"returns":"boolean","raw":"@Override\n public boolean isAlive()","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":222,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.isAlive","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.isAlive","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-isalive"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.destroy","name":"destroy","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"params":[],"returns":"void","raw":"@Override\n public void destroy()","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":227,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.destroy","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.destroy","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-destroy"},{"id":"io.github.libtmux.junit5.FakePane.FakePane","name":"FakePane","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"One pane in a {@link FakeWindow}."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakePane.java","line":4,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakePane","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakePane.FakePane","product":"core","slug":"io-github-libtmux-junit5-fakepane-fakepane","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.FakePane.FakePane.id","name":"id","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakePane.FakePane","signatures":[],"type":"String","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakePane.java","line":5,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakePane.id","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakePane.FakePane.id","product":"core","slug":"io-github-libtmux-junit5-fakepane-fakepane-id","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.FakePane.FakePane.index","name":"index","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakePane.FakePane","signatures":[],"type":"int","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakePane.java","line":6,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakePane.index","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakePane.FakePane.index","product":"core","slug":"io-github-libtmux-junit5-fakepane-fakepane-index","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.FakePane.FakePane.command","name":"command","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakePane.FakePane","signatures":[],"type":"String","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakePane.java","line":7,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakePane.command","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakePane.FakePane.command","product":"core","slug":"io-github-libtmux-junit5-fakepane-fakepane-command","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.FakePane.FakePane.directory","name":"directory","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakePane.FakePane","signatures":[],"type":"String","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakePane.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakePane.directory","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakePane.FakePane.directory","product":"core","slug":"io-github-libtmux-junit5-fakepane-fakepane-directory","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.FakePane.FakePane.pid","name":"pid","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakePane.FakePane","signatures":[],"type":"long","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakePane.java","line":9,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakePane.pid","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakePane.FakePane.pid","product":"core","slug":"io-github-libtmux-junit5-fakepane-fakepane-pid","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.FakePane.FakePane.title","name":"title","kind":"attribute","modifiers":[],"parent":"io.github.libtmux.junit5.FakePane.FakePane","signatures":[],"type":"String","value":"\"\"","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakePane.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakePane.title","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakePane.FakePane.title","product":"core","slug":"io-github-libtmux-junit5-fakepane-fakepane-title","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.FakePane.FakePane.FakePane","name":"FakePane","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakePane.FakePane","signatures":[{"params":[{"name":"id","type":"String"},{"name":"index","type":"int"},{"name":"command","type":"String"},{"name":"directory","type":"String"},{"name":"pid","type":"long"}],"raw":"FakePane(String id, int index, String command, String directory, long pid)","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakePane.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakePane.FakePane","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakePane.FakePane.FakePane","product":"core","slug":"io-github-libtmux-junit5-fakepane-fakepane-fakepane"},{"id":"io.github.libtmux.junit5.FakeSession.FakeSession","name":"FakeSession","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"One session in a {@link FakeTmux}, holding its windows in creation order."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeSession.java","line":7,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeSession","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeSession.FakeSession","product":"core","slug":"io-github-libtmux-junit5-fakesession-fakesession","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.FakeSession.FakeSession.id","name":"id","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakeSession.FakeSession","signatures":[],"type":"String","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeSession.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeSession.id","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeSession.FakeSession.id","product":"core","slug":"io-github-libtmux-junit5-fakesession-fakesession-id","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.FakeSession.FakeSession.name","name":"name","kind":"attribute","modifiers":[],"parent":"io.github.libtmux.junit5.FakeSession.FakeSession","signatures":[],"type":"String","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeSession.java","line":9,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeSession.name","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeSession.FakeSession.name","product":"core","slug":"io-github-libtmux-junit5-fakesession-fakesession-name","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.FakeSession.FakeSession.windows","name":"windows","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakeSession.FakeSession","signatures":[],"type":"List","value":"new ArrayList<>()","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeSession.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeSession.windows","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeSession.FakeSession.windows","product":"core","slug":"io-github-libtmux-junit5-fakesession-fakesession-windows","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.FakeSession.FakeSession.FakeSession","name":"FakeSession","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeSession.FakeSession","signatures":[{"params":[{"name":"id","type":"String"},{"name":"name","type":"String"}],"raw":"FakeSession(String id, String name)","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeSession.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeSession.FakeSession","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeSession.FakeSession.FakeSession","product":"core","slug":"io-github-libtmux-junit5-fakesession-fakesession-fakesession"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux","name":"FakeTmux","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"A tmux server that is not there, for testing code that uses this library without starting one.","body":"It answers the way tmux answers, not the way a stub would: a listing is rendered from the\ntemplate the library sends, so a snapshot of a fake server is a real snapshot and every handle\nworks; a handle command is fenced on the server's identity and refused once the fake is replaced,\nas tmux refuses it; a group stops at its first failure. What it models is the hierarchy —\nsessions, windows, panes and their names and titles — and what each pane shows. What it does not\nmodel is a shell: keys sent to a pane are recorded, not run, and a pane shows what the test says.\n\nFor behaviour that depends on tmux itself — what a release does with a flag, how a real shell\nechoes — test against real tmux with {@link TmuxExtension} instead. This is for code whose\ninterest in tmux ends at the calls it makes.","examples":[{"lang":"java","code":"FakeTmux tmux = new FakeTmux();\nPaneId editor = tmux.addSession(\"work\");\ntmux.show(editor, \"$ make\", \"make: Nothing to be done for 'all'.\");\n\ntry (Server server = tmux.server()) {\nPane pane = server.pane(editor).orElseThrow();\npane.capture(); // → [$ make, make: Nothing to be done for 'all'.]\npane.sendLine(\"make test\");\n}\n\ntmux.sent(); // every command, as the library sent it"}]},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.FakeTmux","name":"FakeTmux","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"params":[],"raw":"public FakeTmux()","typeScopeBoundary":false}],"doc":{"summary":"A fake server with no sessions, as tmux is before anything has been created."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":171,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.FakeTmux","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.FakeTmux","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-faketmux"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.server","name":"server","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"params":[],"returns":"Server","raw":"public Server server()","typeScopeBoundary":false}],"doc":{"summary":"A server this transport answers for.","body":"Borrowed rather than owned, so closing it leaves this fake as it is and a test can inspect\nit afterwards."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":185,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.server","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.server","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-server"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.addSession","name":"addSession","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"params":[{"name":"name","type":"String"}],"returns":"PaneId","returnsDoc":"the pane, so a test can say what it shows","raw":"public synchronized PaneId addSession(String name)","typeScopeBoundary":false}],"doc":{"summary":"Adds a session with one window and one pane running {@code sh}, as {@code new-session} makes."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":198,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.addSession","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.addSession","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-addsession"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.restart","name":"restart","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"params":[],"returns":"void","raw":"public synchronized void restart()","typeScopeBoundary":false}],"doc":{"summary":"Replaces the server, as a restart does: a new process, and nothing in it.","body":"Handles made before this are refused from now on, which is what a test of code that has to\nsurvive a server restarting under it needs to see."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":209,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.restart","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.restart","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-restart"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.show","name":"show","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"params":[{"name":"pane","type":"PaneId"},{"name":"lines","type":"String","variadic":"positional"}],"returns":"void","raw":"public synchronized void show(PaneId pane, String... lines)","typeScopeBoundary":false}],"doc":{"summary":"What the pane shows, one element per line, which is what capturing it answers."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":219,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.show","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.show","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-show"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.sent","name":"sent","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"params":[],"returns":"List>","raw":"public synchronized List> sent()","typeScopeBoundary":false}],"doc":{"summary":"Every command the library sent, in order, each as the words tmux would have read.","body":"Unwrapped: a command the library fenced on the server's identity or sent in a group is here\nas itself, and the plumbing that carried it is not."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":229,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.sent","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.sent","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-sent"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.sessions","name":"sessions","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"params":[],"returns":"List","raw":"public synchronized List sessions()","typeScopeBoundary":false}],"doc":{"summary":"The sessions the fake holds now, by id."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":234,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.sessions","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.sessions","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-sessions"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.execute","name":"execute","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"params":[{"name":"request","type":"CommandRequest"}],"returns":"CommandResult","raw":"@Override\n public synchronized CommandResult execute(CommandRequest request)","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":238,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.execute","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.execute","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-execute"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.controlCarrier","name":"controlCarrier","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"params":[],"returns":"Optional","raw":"@Override\n public Optional controlCarrier()","typeScopeBoundary":false}],"doc":{"summary":"Control clients of this fake: {@code server.control(session)} attaches one, its commands are answered as this fake answers any other, and it hears what {@link #output} and {@link #notify} push. A restart ends every client attached, as a server that went away does."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":248,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.controlCarrier","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.controlCarrier","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-controlcarrier"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.output","name":"output","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"params":[{"name":"pane","type":"PaneId"},{"name":"text","type":"String"}],"returns":"void","raw":"public synchronized void output(PaneId pane, String text)","typeScopeBoundary":false}],"doc":{"summary":"Pushes what a pane wrote to every attached control client, as tmux's {@code %output}: a control byte or a backslash as three octal digits, and the rest as it is."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":267,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.output","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.output","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-output"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.notify","name":"notify","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"params":[{"name":"line","type":"String"}],"returns":"void","raw":"public synchronized void notify(String line)","typeScopeBoundary":false}],"doc":{"summary":"Pushes a notification line, such as {@code %window-renamed @1 logs}, to every attached client."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":285,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.notify","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.notify","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-notify"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"params":[],"returns":"void","raw":"@Override\n public void close()","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":294,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.close","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.close","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-close"},{"id":"io.github.libtmux.junit5.FakeWindow.FakeWindow","name":"FakeWindow","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"One window in a {@link FakeSession}, holding its panes in creation order."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeWindow.java","line":7,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeWindow","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeWindow.FakeWindow","product":"core","slug":"io-github-libtmux-junit5-fakewindow-fakewindow","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.FakeWindow.FakeWindow.id","name":"id","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakeWindow.FakeWindow","signatures":[],"type":"String","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeWindow.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeWindow.id","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeWindow.FakeWindow.id","product":"core","slug":"io-github-libtmux-junit5-fakewindow-fakewindow-id","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.FakeWindow.FakeWindow.index","name":"index","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakeWindow.FakeWindow","signatures":[],"type":"int","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeWindow.java","line":9,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeWindow.index","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeWindow.FakeWindow.index","product":"core","slug":"io-github-libtmux-junit5-fakewindow-fakewindow-index","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.FakeWindow.FakeWindow.name","name":"name","kind":"attribute","modifiers":[],"parent":"io.github.libtmux.junit5.FakeWindow.FakeWindow","signatures":[],"type":"String","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeWindow.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeWindow.name","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeWindow.FakeWindow.name","product":"core","slug":"io-github-libtmux-junit5-fakewindow-fakewindow-name","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.FakeWindow.FakeWindow.active","name":"active","kind":"attribute","modifiers":["overload"],"parent":"io.github.libtmux.junit5.FakeWindow.FakeWindow","signatures":[{"params":[],"returns":"FakePane"}],"type":"boolean","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeWindow.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeWindow.active","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeWindow.FakeWindow.active","product":"core","slug":"io-github-libtmux-junit5-fakewindow-fakewindow-active","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.FakeWindow.FakeWindow.panes","name":"panes","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakeWindow.FakeWindow","signatures":[],"type":"List","value":"new ArrayList<>()","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeWindow.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeWindow.panes","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeWindow.FakeWindow.panes","product":"core","slug":"io-github-libtmux-junit5-fakewindow-fakewindow-panes","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.FakeWindow.FakeWindow.FakeWindow","name":"FakeWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeWindow.FakeWindow","signatures":[{"params":[{"name":"id","type":"String"},{"name":"index","type":"int"},{"name":"name","type":"String"}],"raw":"FakeWindow(String id, int index, String name)","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeWindow.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeWindow.FakeWindow","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeWindow.FakeWindow.FakeWindow","product":"core","slug":"io-github-libtmux-junit5-fakewindow-fakewindow-fakewindow"},{"id":"io.github.libtmux.junit5.Flags.Flags","name":"Flags","kind":"class","modifiers":[],"signatures":[{"raw":"record Flags(Map values, Set switches, List positional)","params":[{"name":"values","type":"Map"},{"name":"switches","type":"Set"},{"name":"positional","type":"List"}]}],"doc":{"summary":"A command's flags and the words after them, read as tmux's argument parser reads them."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Flags.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Flags","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Flags.Flags","product":"core","slug":"io-github-libtmux-junit5-flags-flags","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.Flags.Flags.parse","name":"parse","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.Flags.Flags","signatures":[{"params":[{"name":"argv","type":"List"}],"returns":"Flags","raw":"static Flags parse(List argv)","typeScopeBoundary":true}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Flags.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Flags.parse","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Flags.Flags.parse","product":"core","slug":"io-github-libtmux-junit5-flags-flags-parse"},{"id":"io.github.libtmux.junit5.Flags.Flags.has","name":"has","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.Flags.Flags","signatures":[{"params":[{"name":"flag","type":"String"}],"returns":"boolean","raw":"boolean has(String flag)","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Flags.java","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Flags.has","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Flags.Flags.has","product":"core","slug":"io-github-libtmux-junit5-flags-flags-has"},{"id":"io.github.libtmux.junit5.Flags.Flags.value","name":"value","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.Flags.Flags","signatures":[{"params":[{"name":"flag","type":"String"}],"returns":"String","raw":"@Nullable\n String value(String flag)","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Flags.java","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Flags.value","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Flags.Flags.value","product":"core","slug":"io-github-libtmux-junit5-flags-flags-value"},{"id":"io.github.libtmux.junit5.Flags.Flags.values","name":"values","kind":"method","parent":"io.github.libtmux.junit5.Flags.Flags","modifiers":[],"signatures":[{"params":[],"returns":"Map"}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Flags.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Flags.values","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Flags.Flags.values","product":"core","slug":"io-github-libtmux-junit5-flags-flags-values"},{"id":"io.github.libtmux.junit5.Flags.Flags.switches","name":"switches","kind":"method","parent":"io.github.libtmux.junit5.Flags.Flags","modifiers":[],"signatures":[{"params":[],"returns":"Set"}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Flags.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Flags.switches","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Flags.Flags.switches","product":"core","slug":"io-github-libtmux-junit5-flags-flags-switches"},{"id":"io.github.libtmux.junit5.Flags.Flags.positional","name":"positional","kind":"method","parent":"io.github.libtmux.junit5.Flags.Flags","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Flags.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Flags.positional","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Flags.Flags.positional","product":"core","slug":"io-github-libtmux-junit5-flags-flags-positional"},{"id":"io.github.libtmux.junit5.Formats.Formats","name":"Formats","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"The part of tmux's format language the library sends: variables, comparisons, {@code &&} and {@code ||}, {@code ?} conditionals, and the {@code W:} and {@code P:} loops."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Formats.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Formats","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Formats.Formats","product":"core","slug":"io-github-libtmux-junit5-formats-formats","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.Formats.Formats.Scope","name":"Scope","kind":"interface","modifiers":[],"parent":"io.github.libtmux.junit5.Formats.Formats","signatures":[],"doc":{"summary":"What a format is expanded against: a row's variables, and the rows a loop visits."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Formats.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Formats.Scope","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Formats.Formats.Scope","product":"core","slug":"io-github-libtmux-junit5-formats-formats-scope","typeScopeBoundary":true},{"id":"io.github.libtmux.junit5.Formats.Formats.Scope.get","name":"get","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.Formats.Formats.Scope","signatures":[{"params":[{"name":"variable","type":"String"}],"returns":"String","raw":"@Nullable\n String get(String variable);","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Formats.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Formats.Scope.get","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Formats.Formats.Scope.get","product":"core","slug":"io-github-libtmux-junit5-formats-formats-scope-get"},{"id":"io.github.libtmux.junit5.Formats.Formats.Scope.windows","name":"windows","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.Formats.Formats.Scope","signatures":[{"params":[],"returns":"List","raw":"List windows();","typeScopeBoundary":false}],"doc":{"summary":"The windows of this row's session, each at its active pane."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Formats.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Formats.Scope.windows","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Formats.Formats.Scope.windows","product":"core","slug":"io-github-libtmux-junit5-formats-formats-scope-windows"},{"id":"io.github.libtmux.junit5.Formats.Formats.Scope.panes","name":"panes","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.Formats.Formats.Scope","signatures":[{"params":[],"returns":"List","raw":"List panes();","typeScopeBoundary":false}],"doc":{"summary":"The panes of this row's window."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Formats.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Formats.Scope.panes","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Formats.Formats.Scope.panes","product":"core","slug":"io-github-libtmux-junit5-formats-formats-scope-panes"},{"id":"io.github.libtmux.junit5.Formats.Formats.literal","name":"literal","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.Formats.Formats","signatures":[{"params":[{"name":"value","type":"String"}],"returns":"String","raw":"static String literal(String value)","typeScopeBoundary":true}],"doc":{"summary":"Undoes {@code TmuxFormats.literal}: tmux reads {@code ##} in a format as one {@code #}."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Formats.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Formats.literal","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Formats.Formats.literal","product":"core","slug":"io-github-libtmux-junit5-formats-formats-literal"},{"id":"io.github.libtmux.junit5.Formats.Formats.expand","name":"expand","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.junit5.Formats.Formats","signatures":[{"params":[{"name":"format","type":"String"},{"name":"variables","type":"Function"}],"returns":"String","raw":"static String expand(String format, Function variables)","typeScopeBoundary":true},{"params":[{"name":"format","type":"String"},{"name":"variables","type":"Scope"}],"returns":"String","raw":"static String expand(String format, Scope variables)","typeScopeBoundary":true}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Formats.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Formats.expand","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Formats.Formats.expand","product":"core","slug":"io-github-libtmux-junit5-formats-formats-expand"},{"id":"io.github.libtmux.junit5.Formats.Formats.truthy","name":"truthy","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.Formats.Formats","signatures":[{"params":[{"name":"value","type":"String"}],"returns":"boolean","raw":"static boolean truthy(String value)","typeScopeBoundary":true}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Formats.java","line":177,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Formats.truthy","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Formats.Formats.truthy","product":"core","slug":"io-github-libtmux-junit5-formats-formats-truthy"},{"id":"io.github.libtmux.junit5.Groups.Groups","name":"Groups","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Reads a command group the way tmux's command parser reads it: words in single quotes, a quote spelled {@code '\\''}, a line break spelled {@code \"\\n\"}, commands separated by {@code ;}."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Groups.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Groups","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Groups.Groups","product":"core","slug":"io-github-libtmux-junit5-groups-groups","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.Groups.Groups.parse","name":"parse","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.Groups.Groups","signatures":[{"params":[{"name":"text","type":"String"}],"returns":"List>","raw":"static List> parse(String text)","typeScopeBoundary":true}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Groups.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Groups.parse","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Groups.Groups.parse","product":"core","slug":"io-github-libtmux-junit5-groups-groups-parse"},{"id":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture","name":"NamedServerFixture","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Owns the safe teardown of a tmux server addressed by socket name."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/NamedServerFixture.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.NamedServerFixture","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture","product":"core","slug":"io-github-libtmux-junit5-namedserverfixture-namedserverfixture","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture.own","name":"own","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture","signatures":[{"params":[{"name":"server","type":"Server","doc":"the server this test started"},{"name":"expectedName","type":"String","doc":"the exact socket name the test supplied to tmux"},{"name":"quarantine","type":"Path","doc":"the {@code TMUX_TMPDIR} assigned to this test task"}],"returns":"NamedServerFixture","returnsDoc":"cleanup bound to the reported process, path, and socket inode","raises":[{"type":"IOException","doc":"if the endpoint cannot be inspected"}],"raw":"public static NamedServerFixture own(Server server, String expectedName, Path quarantine) throws IOException","typeScopeBoundary":true},{"params":[{"name":"server","type":"Server","doc":"the server this test started"},{"name":"expectedSocket","type":"Path","doc":"the exact socket path the test supplied to tmux"},{"name":"quarantine","type":"Path","doc":"the owned root that must contain the socket"}],"returns":"NamedServerFixture","returnsDoc":"cleanup bound to the reported process, path, and socket inode","raises":[{"type":"IOException","doc":"if the endpoint cannot be inspected"}],"raw":"public static NamedServerFixture own(Server server, Path expectedSocket, Path quarantine) throws IOException","typeScopeBoundary":true}],"doc":{"summary":"Authenticates a live named server and takes responsibility for ending it."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/NamedServerFixture.java","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.NamedServerFixture.own","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture.own","product":"core","slug":"io-github-libtmux-junit5-namedserverfixture-namedserverfixture-own"},{"id":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture.socket","name":"socket","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture","signatures":[{"params":[],"returns":"Path","raw":"public Path socket()","typeScopeBoundary":false}],"doc":{"summary":"Returns the exact socket path authenticated when ownership was taken."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/NamedServerFixture.java","line":117,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.NamedServerFixture.socket","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture.socket","product":"core","slug":"io-github-libtmux-junit5-namedserverfixture-namedserverfixture-socket"},{"id":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture","signatures":[{"params":[],"returns":"void","raw":"@Override\n public synchronized void close() throws IOException","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/NamedServerFixture.java","line":121,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.NamedServerFixture.close","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture.close","product":"core","slug":"io-github-libtmux-junit5-namedserverfixture-namedserverfixture-close"},{"id":"io.github.libtmux.junit5.Target.Target","name":"Target","kind":"class","modifiers":[],"signatures":[{"raw":"record Target(FakeSession session, FakeWindow window, FakePane pane)","params":[{"name":"session","type":"FakeSession"},{"name":"window","type":"FakeWindow"},{"name":"pane","type":"FakePane"}]}],"doc":{"summary":"A session, one of its windows, and one of that window's panes: what a command is scoped to."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Target.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Target","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Target.Target","product":"core","slug":"io-github-libtmux-junit5-target-target","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.Target.Target.active","name":"active","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.Target.Target","signatures":[{"params":[{"name":"sessions","type":"List"}],"returns":"Optional","raw":"static Optional active(List sessions)","typeScopeBoundary":true}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Target.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Target.active","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Target.Target.active","product":"core","slug":"io-github-libtmux-junit5-target-target-active"},{"id":"io.github.libtmux.junit5.Target.Target.resolve","name":"resolve","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.Target.Target","signatures":[{"params":[{"name":"sessions","type":"List"},{"name":"spec","type":"String"}],"returns":"Optional","raw":"static Optional resolve(List sessions, @Nullable String spec)","typeScopeBoundary":true}],"doc":{"summary":"Resolves {@code $id}, {@code @id}, {@code %id} and {@code =name}, with any trailing separator."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Target.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Target.resolve","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Target.Target.resolve","product":"core","slug":"io-github-libtmux-junit5-target-target-resolve"},{"id":"io.github.libtmux.junit5.Target.Target.session","name":"session","kind":"method","parent":"io.github.libtmux.junit5.Target.Target","modifiers":[],"signatures":[{"params":[],"returns":"FakeSession"}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Target.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Target.session","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Target.Target.session","product":"core","slug":"io-github-libtmux-junit5-target-target-session"},{"id":"io.github.libtmux.junit5.Target.Target.window","name":"window","kind":"method","parent":"io.github.libtmux.junit5.Target.Target","modifiers":[],"signatures":[{"params":[],"returns":"FakeWindow"}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Target.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Target.window","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Target.Target.window","product":"core","slug":"io-github-libtmux-junit5-target-target-window"},{"id":"io.github.libtmux.junit5.Target.Target.pane","name":"pane","kind":"method","parent":"io.github.libtmux.junit5.Target.Target","modifiers":[],"signatures":[{"params":[],"returns":"FakePane"}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Target.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Target.pane","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Target.Target.pane","product":"core","slug":"io-github-libtmux-junit5-target-target-pane"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","name":"TmuxExtension","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Gives each test its own tmux server and guarantees it is gone afterwards.","body":"All state lives in the extension store, never in fields. JUnit reuses one declaratively\nregistered extension instance for every test in a class, so a field is shared state the moment\ntests run in parallel, and one test's teardown then reaches another test's server.\n\nThe server is started eagerly, before the test body, and the aggregate that owns it is\nregistered before any process exists. Registering afterwards leaves a window in which a failure\npartway through setup leaks a running tmux that nothing is left holding.\n\nTeardown is driven from a lifecycle callback and the aggregate is also {@link AutoCloseable}\nfor the framework's own store handling. Relying on store auto-close alone is a silent dependency\non a configuration property: with it disabled that design releases nothing and reports nothing.\nThe aggregate closes exactly once, so either path alone is sufficient."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.fixtureRoot","name":"fixtureRoot","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","signatures":[{"params":[],"returns":"Path","raw":"static Path fixtureRoot()","typeScopeBoundary":true}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":114,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.fixtureRoot","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.fixtureRoot","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-fixtureroot"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.reapAbandoned","name":"reapAbandoned","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","signatures":[{"params":[{"name":"root","type":"Path"}],"returns":"int","raw":"static int reapAbandoned(Path root)","typeScopeBoundary":true}],"doc":{"summary":"Ends every tmux server under {@code root} whose owning JVM is gone, and answers how many ended. Runs while other runs are using the same root, so it may only touch abandoned servers."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":122,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.reapAbandoned","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.reapAbandoned","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-reapabandoned"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.startOf","name":"startOf","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","signatures":[{"params":[{"name":"pid","type":"long"}],"returns":"Optional","raw":"static Optional startOf(long pid)","typeScopeBoundary":true}],"doc":{"summary":"When a process started, in a form every JVM on this machine reads the same way: the kernel's own ticks since boot on Linux, and the platform's start instant elsewhere."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":228,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.startOf","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.startOf","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-startof"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.deleteTree","name":"deleteTree","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","signatures":[{"params":[{"name":"root","type":"Path"}],"returns":"void","raw":"static void deleteTree(Path root)","typeScopeBoundary":true}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":255,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.deleteTree","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.deleteTree","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-deletetree"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.beforeEach","name":"beforeEach","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","signatures":[{"params":[{"name":"context","type":"ExtensionContext"}],"returns":"void","raw":"@Override\n public void beforeEach(ExtensionContext context)","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":272,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.beforeEach","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.beforeEach","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-beforeeach"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.supportsParameter","name":"supportsParameter","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","signatures":[{"params":[{"name":"parameter","type":"ParameterContext"},{"name":"context","type":"ExtensionContext"}],"returns":"boolean","raw":"@Override\n public boolean supportsParameter(ParameterContext parameter, ExtensionContext context)","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":277,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.supportsParameter","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.supportsParameter","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-supportsparameter"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.resolveParameter","name":"resolveParameter","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","signatures":[{"params":[{"name":"parameter","type":"ParameterContext"},{"name":"context","type":"ExtensionContext"}],"returns":"Object","raw":"@Override\n public Object resolveParameter(ParameterContext parameter, ExtensionContext context)","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":284,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.resolveParameter","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.resolveParameter","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-resolveparameter"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.afterEach","name":"afterEach","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","signatures":[{"params":[{"name":"context","type":"ExtensionContext"}],"returns":"void","raw":"@Override\n public void afterEach(ExtensionContext context)","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":292,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.afterEach","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.afterEach","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-aftereach"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture","name":"Fixture","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","signatures":[],"doc":{"summary":"One test's server, socket and directory, released exactly once."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":309,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.Fixture","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-fixture","typeScopeBoundary":true},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.start","name":"start","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture","signatures":[{"params":[],"returns":"void","raw":"synchronized void start()","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":320,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.Fixture.start","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.start","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-fixture-start"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.server","name":"server","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture","signatures":[{"params":[],"returns":"Server","raw":"Server server()","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":370,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.Fixture.server","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.server","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-fixture-server"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.socket","name":"socket","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture","signatures":[{"params":[],"returns":"Path","raw":"Path socket()","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":378,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.Fixture.socket","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.socket","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-fixture-socket"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture","signatures":[{"params":[],"returns":"void","raw":"@Override\n public synchronized void close()","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":386,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.Fixture.close","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.close","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-fixture-close"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.awaitExit","name":"awaitExit","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture","signatures":[{"params":[{"name":"server","type":"Server"}],"returns":"boolean","raw":"static boolean awaitExit(Server server)","typeScopeBoundary":true},{"params":[{"name":"server","type":"Server"},{"name":"timeoutMillis","type":"long"}],"returns":"boolean","raw":"static boolean awaitExit(Server server, long timeoutMillis)","typeScopeBoundary":true}],"doc":{"summary":"Exit is proved by asking, not assumed from a kill that may have raced."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":415,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.Fixture.awaitExit","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.awaitExit","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-fixture-awaitexit"},{"id":"io.github.libtmux.junit5.TmuxSocketPath.TmuxSocketPath","name":"TmuxSocketPath","kind":"class","modifiers":[],"signatures":[{"raw":"public record TmuxSocketPath(Path path)","params":[{"name":"path","type":"Path","doc":"the exact socket path this test's tmux was started with"}]}],"doc":{"summary":"The socket a fixture server is listening on.","body":"A distinct type rather than a bare {@link Path} so the extension can resolve it without\nclaiming every {@code Path} parameter a test might want from some other extension."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxSocketPath.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxSocketPath","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxSocketPath.TmuxSocketPath","product":"core","slug":"io-github-libtmux-junit5-tmuxsocketpath-tmuxsocketpath","typeScopeBoundary":false},{"id":"io.github.libtmux.junit5.TmuxSocketPath.TmuxSocketPath.path","name":"path","kind":"method","parent":"io.github.libtmux.junit5.TmuxSocketPath.TmuxSocketPath","modifiers":[],"signatures":[{"params":[],"returns":"Path"}],"doc":{"summary":"the exact socket path this test's tmux was started with"},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxSocketPath.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxSocketPath.path","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxSocketPath.TmuxSocketPath.path","product":"core","slug":"io-github-libtmux-junit5-tmuxsocketpath-tmuxsocketpath-path"},{"id":"io.github.libtmux.mcp.Main.Main","name":"Main","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Runs the tmux MCP server over stdin and stdout.","body":"An MCP client launches this as a subprocess and speaks JSON-RPC over its standard streams, so\n**nothing may write to stdout but the protocol**. Diagnostics go to stderr, which the\nclient is free to log or discard.\n\nWhich tmux server to expose is chosen the same way the library chooses it: a socket path, a\nsocket name, or tmux's own default.\n\nThe unordered toolset and named-tool environment variables resolve one immutable surface\nbefore tmux is opened. A tool outside it is neither listed nor callable.","examples":[{"lang":"java","code":"libtmux-mcp --socket /run/user/1000/tmux/default\nlibtmux-mcp --socket-name work --tmux /usr/local/bin/tmux"}]},"source":{"file":"libtmux-mcp/src/main/java/io/github/libtmux/mcp/Main.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.mcp.Main","namespace":"io.github.libtmux.mcp","publicId":"io.github.libtmux.mcp.Main.Main","product":"mcp","apiScope":"exported","slug":"io-github-libtmux-mcp-main-main","typeScopeBoundary":false},{"id":"io.github.libtmux.mcp.Main.Main.main","name":"main","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.mcp.Main.Main","signatures":[{"params":[{"name":"args","type":"String[]","doc":"{@code --socket PATH}, {@code --socket-name NAME}, {@code --tmux BINARY}"}],"returns":"void","raw":"public static void main(String[] args)","typeScopeBoundary":true}],"doc":{"summary":"Serves a tmux server over stdin and stdout until the client closes them."},"source":{"file":"libtmux-mcp/src/main/java/io/github/libtmux/mcp/Main.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.mcp.Main.main","namespace":"io.github.libtmux.mcp","publicId":"io.github.libtmux.mcp.Main.Main.main","product":"mcp","apiScope":"exported","slug":"io-github-libtmux-mcp-main-main-main"},{"id":"io.github.libtmux.mcp.Main.Main.configure","name":"configure","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.mcp.Main.Main","signatures":[{"params":[{"name":"args","type":"List"}],"returns":"ServerConfig","raw":"static ServerConfig configure(List args)","typeScopeBoundary":true},{"params":[{"name":"args","type":"List"},{"name":"environment","type":"Map"}],"returns":"ServerConfig","raw":"static ServerConfig configure(List args, Map environment)","typeScopeBoundary":true}],"source":{"file":"libtmux-mcp/src/main/java/io/github/libtmux/mcp/Main.java","line":76,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.mcp.Main.configure","namespace":"io.github.libtmux.mcp","publicId":"io.github.libtmux.mcp.Main.Main.configure","product":"mcp","apiScope":"exported","slug":"io-github-libtmux-mcp-main-main-configure"},{"id":"io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer","name":"TmuxMcpServer","kind":"class","modifiers":["readonly"],"signatures":[],"doc":{"summary":"Exposes a tmux server to a model over the Model Context Protocol.","body":"Thin by design. What the tools do lives in {@link Catalog} and the classes it names, which is\nwhat gets tested against real tmux; this class describes them to a client and turns their answers\ninto protocol.\n\nThe SDK dispatches synchronous handlers on its bounded worker scheduler, not the transport I/O\nthread. Core operations remain typed and synchronous; wait and channel operations retain their\nown cancellation and timeout contracts."},"source":{"file":"libtmux-mcp/src/main/java/io/github/libtmux/mcp/TmuxMcpServer.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.mcp.TmuxMcpServer","namespace":"io.github.libtmux.mcp","publicId":"io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer","product":"mcp","apiScope":"exported","slug":"io-github-libtmux-mcp-tmuxmcpserver-tmuxmcpserver","typeScopeBoundary":false},{"id":"io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer.overStdio","name":"overStdio","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer","signatures":[{"params":[{"name":"server","type":"Server"}],"returns":"McpSyncServer","raw":"public static McpSyncServer overStdio(Server server)","typeScopeBoundary":true}],"doc":{"summary":"Serves a tmux server over stdin and stdout, which is how an MCP client launches a tool."},"source":{"file":"libtmux-mcp/src/main/java/io/github/libtmux/mcp/TmuxMcpServer.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.mcp.TmuxMcpServer.overStdio","namespace":"io.github.libtmux.mcp","publicId":"io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer.overStdio","product":"mcp","apiScope":"exported","slug":"io-github-libtmux-mcp-tmuxmcpserver-tmuxmcpserver-overstdio"},{"id":"io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer.serving","name":"serving","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer","signatures":[{"params":[{"name":"server","type":"Server"},{"name":"transport","type":"McpServerTransportProvider"}],"returns":"McpSyncServer","raw":"public static McpSyncServer serving(Server server, McpServerTransportProvider transport)","typeScopeBoundary":true}],"doc":{"summary":"Serves a tmux server over a caller-supplied transport.","body":"The returned server owns the transport. Ownership transfers on entry, so failed startup\ncloses it too."},"source":{"file":"libtmux-mcp/src/main/java/io/github/libtmux/mcp/TmuxMcpServer.java","line":92,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.mcp.TmuxMcpServer.serving","namespace":"io.github.libtmux.mcp","publicId":"io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer.serving","product":"mcp","apiScope":"exported","slug":"io-github-libtmux-mcp-tmuxmcpserver-tmuxmcpserver-serving"},{"id":"io.github.libtmux.catalog.Advanced.Advanced","name":"Advanced","kind":"interface","modifiers":["annotation"],"signatures":[{"raw":"@Documented\n@Retention(RUNTIME)\n@Target({TYPE, METHOD})\npublic @interface Advanced","params":[]}],"doc":{"summary":"Public for orchestration across processes or clients, such as the MCP server's pane reservations; not part of the surface a language facade mirrors."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Advanced.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Advanced","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Advanced.Advanced","product":"core","slug":"io-github-libtmux-catalog-advanced-advanced","typeScopeBoundary":false},{"id":"io.github.libtmux.catalog.Operation.Operation","name":"Operation","kind":"interface","modifiers":["annotation"],"signatures":[{"raw":"@Documented\n@Retention(RUNTIME)\n@Target(METHOD)\npublic @interface Operation","params":[]}],"doc":{"summary":"Classifies one public method of the core API as a tmux operation of a given {@link Kind}.","body":"Every public method that performs or describes a tmux operation carries this, so a facade\nnever has to infer the shape of a call from its name or signature."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Operation.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Operation","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Operation.Operation","product":"core","slug":"io-github-libtmux-catalog-operation-operation","typeScopeBoundary":false},{"id":"io.github.libtmux.catalog.Operation.Operation.value","name":"value","kind":"method","modifiers":["annotation"],"parent":"io.github.libtmux.catalog.Operation.Operation","signatures":[{"raw":"Kind value();","params":[],"returns":"Kind","typeScopeBoundary":false}],"doc":{"summary":"What shape this operation gives a facade."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Operation.java","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Operation.value","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Operation.Operation.value","product":"core","slug":"io-github-libtmux-catalog-operation-operation-value"},{"id":"io.github.libtmux.catalog.Operation.Operation.tmuxSince","name":"tmuxSince","kind":"method","modifiers":["annotation"],"parent":"io.github.libtmux.catalog.Operation.Operation","signatures":[{"raw":"String tmuxSince() default \"\";","params":[],"returns":"String","typeScopeBoundary":false}],"value":"\"\"","doc":{"summary":"The first tmux release that has this operation, when it is newer than the supported floor, 3.2a. Empty when the whole supported range has it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Operation.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Operation.tmuxSince","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Operation.Operation.tmuxSince","product":"core","slug":"io-github-libtmux-catalog-operation-operation-tmuxsince"}],"sources":[{"product":"core","package":"io.github.libtmux:libtmux","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272","version":"0.0.1-alpha.17-SNAPSHOT"},{"product":"workspace","package":"libtmux-workspace","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272","version":"0.0.1-alpha.17-SNAPSHOT"},{"product":"mcp","package":"libtmux-mcp","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272","version":"0.0.1-alpha.17-SNAPSHOT"}],"generatedSources":{"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Client_.java":"package io.github.libtmux;\n\nimport io.github.libtmux.query.Fields;\n\n/**\n * Typed fields of {@link Client}.\n */\npublic final class Client_ {\n private static final Fields.TextField NAME = Fields.text(\"client_name\", Client::name);\n\n private static final Fields.ToOneRef SESSION = Fields.toOne(\"session\", Client::session);\n\n private Client_() {\n }\n\n /**\n * The client's terminal name, which is how tmux addresses it.\n */\n public static Fields.TextField name() {\n return NAME;\n }\n\n /**\n * The session this client was attached to, if any.\n */\n public static Fields.ToOneRef session() {\n return SESSION;\n }\n}\n","libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java":"package io.github.libtmux;\n\nimport io.github.libtmux.query.Fields;\n\n/**\n * Typed fields of {@link Pane}.\n */\npublic final class Pane_ {\n private static final Fields.TextField ID = Fields.text(\"pane_id\", pane -> pane.id().value());\n\n private static final Fields.TextField COMMAND = Fields.text(\"pane_current_command\", Pane::currentCommand);\n\n private static final Fields.NumberField INDEX = Fields.number(\"pane_index\", Pane::index);\n\n private static final Fields.FlagField ACTIVE = Fields.flag(\"pane_active\", Pane::active);\n\n private static final Fields.TextField TITLE = Fields.text(\"pane_title\", Pane::title);\n\n private static final Fields.TextField PATH = Fields.text(\"pane_current_path\", Pane::currentPathText);\n\n private static final Fields.NumberField WIDTH = Fields.number(\"pane_width\", pane -> pane.size().width());\n\n private static final Fields.NumberField HEIGHT = Fields.number(\"pane_height\", pane -> pane.size().height());\n\n private static final Fields.NumberField LEFT = Fields.number(\"pane_left\", pane -> pane.position().left());\n\n private static final Fields.NumberField TOP = Fields.number(\"pane_top\", pane -> pane.position().top());\n\n private static final Fields.FlagField AT_TOP = Fields.flag(\"pane_at_top\", pane -> pane.edges().top());\n\n private static final Fields.FlagField AT_BOTTOM = Fields.flag(\"pane_at_bottom\", pane -> pane.edges().bottom());\n\n private static final Fields.FlagField AT_LEFT = Fields.flag(\"pane_at_left\", pane -> pane.edges().left());\n\n private static final Fields.FlagField AT_RIGHT = Fields.flag(\"pane_at_right\", pane -> pane.edges().right());\n\n private Pane_() {\n }\n\n /**\n * The pane id.\n */\n public static Fields.TextField id() {\n return ID;\n }\n\n /**\n * The command tmux reported running in the pane.\n */\n public static Fields.TextField command() {\n return COMMAND;\n }\n\n /**\n * The pane's position in its window.\n */\n public static Fields.NumberField index() {\n return INDEX;\n }\n\n /**\n * Whether this was its window's active pane.\n */\n public static Fields.FlagField active() {\n return ACTIVE;\n }\n\n /**\n * The pane's title, which a program running in it can set.\n */\n public static Fields.TextField title() {\n return TITLE;\n }\n\n /**\n * The pane's working directory, as the text tmux reported.\n */\n public static Fields.TextField path() {\n return PATH;\n }\n\n /**\n * The pane's width, in cells.\n */\n public static Fields.NumberField width() {\n return WIDTH;\n }\n\n /**\n * The pane's height, in cells.\n */\n public static Fields.NumberField height() {\n return HEIGHT;\n }\n\n /**\n * The column of the pane's left edge in its window.\n */\n public static Fields.NumberField left() {\n return LEFT;\n }\n\n /**\n * The row of the pane's top edge in its window.\n */\n public static Fields.NumberField top() {\n return TOP;\n }\n\n /**\n * Whether the pane touches the top of its window.\n */\n public static Fields.FlagField atTop() {\n return AT_TOP;\n }\n\n /**\n * Whether the pane touches the bottom of its window.\n */\n public static Fields.FlagField atBottom() {\n return AT_BOTTOM;\n }\n\n /**\n * Whether the pane touches the left of its window.\n */\n public static Fields.FlagField atLeft() {\n return AT_LEFT;\n }\n\n /**\n * Whether the pane touches the right of its window.\n */\n public static Fields.FlagField atRight() {\n return AT_RIGHT;\n }\n}\n","libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Session_.java":"package io.github.libtmux;\n\nimport io.github.libtmux.query.Fields;\n\n/**\n * Typed fields of {@link Session}, for building an expression that can be read as well as run.\n *\n *

Each field exposes only the operators its type supports, so asking a flag to start with a\n * string does not compile. Every field names a tmux format, so a backend model can bind the handle\n * before translating the expression into tmux's own {@code -f} filter.\n */\npublic final class Session_ {\n private static final Fields.TextField ID = Fields.text(\"session_id\", session -> session.id().value());\n\n private static final Fields.TextField NAME = Fields.text(\"session_name\", Session::name);\n\n private static final Fields.FlagField ATTACHED = Fields.flag(\"session_attached\", Session::attached);\n\n private static final Fields.NumberField WINDOW_COUNT = Fields.number(\"session_windows\", session -> session.windows().size());\n\n private static final Fields.ToManyRef WINDOWS = Fields.toMany(\"windows\", Session::windows);\n\n private Session_() {\n }\n\n /**\n * The session id, as text, so it can be compared and listed.\n */\n public static Fields.TextField id() {\n return ID;\n }\n\n /**\n * The session name.\n */\n public static Fields.TextField name() {\n return NAME;\n }\n\n /**\n * Whether a client was attached when this was captured.\n */\n public static Fields.FlagField attached() {\n return ATTACHED;\n }\n\n /**\n * How many windows this session holds.\n */\n public static Fields.NumberField windowCount() {\n return WINDOW_COUNT;\n }\n\n /**\n * This session's windows.\n */\n public static Fields.ToManyRef windows() {\n return WINDOWS;\n }\n}\n","libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java":"package io.github.libtmux;\n\nimport io.github.libtmux.query.Fields;\n\n/**\n * Typed fields of {@link Window}.\n */\npublic final class Window_ {\n private static final Fields.TextField ID = Fields.text(\"window_id\", window -> window.id().value());\n\n private static final Fields.TextField NAME = Fields.text(\"window_name\", Window::name);\n\n private static final Fields.NumberField INDEX = Fields.number(\"window_index\", window -> window.index().value());\n\n private static final Fields.FlagField ACTIVE = Fields.flag(\"window_active\", Window::active);\n\n private static final Fields.FlagField LINKED = Fields.flag(\"window_linked\", Window::linked);\n\n private static final Fields.NumberField WIDTH = Fields.number(\"window_width\", window -> window.size().width());\n\n private static final Fields.NumberField HEIGHT = Fields.number(\"window_height\", window -> window.size().height());\n\n private static final Fields.NumberField PANE_COUNT = Fields.number(\"window_panes\", window -> window.panes().size());\n\n private static final Fields.ToManyRef PANES = Fields.toMany(\"panes\", Window::panes);\n\n private static final Fields.ToOneRef SESSION = Fields.toOne(\"session\", window -> java.util.Optional.of(window.session()));\n\n private Window_() {\n }\n\n /**\n * The underlying window id, shared by every link to it.\n */\n public static Fields.TextField id() {\n return ID;\n }\n\n /**\n * The window name.\n */\n public static Fields.TextField name() {\n return NAME;\n }\n\n /**\n * Where this link sits in its session.\n */\n public static Fields.NumberField index() {\n return INDEX;\n }\n\n /**\n * Whether this was its session's active window.\n */\n public static Fields.FlagField active() {\n return ACTIVE;\n }\n\n /**\n * Whether the underlying window is linked into more than one session.\n */\n public static Fields.FlagField linked() {\n return LINKED;\n }\n\n /**\n * The window's width, in cells.\n */\n public static Fields.NumberField width() {\n return WIDTH;\n }\n\n /**\n * The window's height, in cells.\n */\n public static Fields.NumberField height() {\n return HEIGHT;\n }\n\n /**\n * How many panes this link holds.\n */\n public static Fields.NumberField paneCount() {\n return PANE_COUNT;\n }\n\n /**\n * This link's panes.\n */\n public static Fields.ToManyRef panes() {\n return PANES;\n }\n\n /**\n * The session this link belongs to.\n */\n public static Fields.ToOneRef session() {\n return SESSION;\n }\n}\n"},"repo":"libtmux/libtmux-java"} +{"port":"java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractor":"@libtmux/api-model@0.0.1","symbols":[{"id":"io.github.libtmux.batch.Batch.Batch","name":"Batch","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Several tmux commands in one invocation, each with an outcome of its own.","body":"tmux runs a group until a command fails and then discards the rest, so the number of replies\ncannot say which command failed: an error in the first position and an error in the last both\ncome back as one nonzero exit. Counting replies is wrong in every position but one.\n\nA marker is therefore interleaved after each operation. Markers are discarded along with\neverything else after a failure, so the last marker seen is exactly the last operation tmux ran,\nand the operations either side of that boundary are known rather than guessed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/Batch.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.Batch","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.Batch.Batch","product":"core","slug":"io-github-libtmux-batch-batch-batch"},{"id":"io.github.libtmux.batch.Batch.Batch.Batch","name":"Batch","kind":"method","modifiers":[],"parent":"io.github.libtmux.batch.Batch.Batch","signatures":[{"raw":"public Batch(Function>, CommandResult> dispatch)","params":[{"name":"dispatch","type":"Function>, CommandResult>","doc":"runs the assembled commands in one invocation and returns tmux's raw reply"}],"typeScopeBoundary":false}],"doc":{"summary":"Collects operations to run together."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/Batch.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.Batch.Batch","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.Batch.Batch.Batch","product":"core","slug":"io-github-libtmux-batch-batch-batch-batch"},{"id":"io.github.libtmux.batch.Batch.Batch.add","name":"add","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.batch.Batch.Batch","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Batch add(String... argv)","params":[{"name":"argv","type":"String","variadic":"positional"}],"returns":"Batch","typeScopeBoundary":false},{"raw":"@Operation(Kind.CAPTURED)\n public Batch add(List argv)","params":[{"name":"argv","type":"List"}],"returns":"Batch","typeScopeBoundary":false}],"doc":{"summary":"Adds one tmux command, its arguments already separate elements."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/Batch.java","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.Batch.add","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.Batch.Batch.add","product":"core","slug":"io-github-libtmux-batch-batch-batch-add"},{"id":"io.github.libtmux.batch.Batch.Batch.size","name":"size","kind":"method","modifiers":[],"parent":"io.github.libtmux.batch.Batch.Batch","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public int size()","params":[],"returns":"int","typeScopeBoundary":false}],"doc":{"summary":"How many operations have been collected."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/Batch.java","line":57,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.Batch.size","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.Batch.Batch.size","product":"core","slug":"io-github-libtmux-batch-batch-batch-size"},{"id":"io.github.libtmux.batch.Batch.Batch.length","name":"length","kind":"method","modifiers":[],"parent":"io.github.libtmux.batch.Batch.Batch","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public int length()","params":[],"returns":"int","typeScopeBoundary":false}],"doc":{"summary":"How many bytes the collected operations come to as the one command tmux parses.","body":"tmux packs a command into MAX_IMSGSIZE, 16384 bytes, and refuses a longer one with\n{@code command too long}; measured, it takes about 16300 of them. A batch taken from a handle\ntravels as this one string plus the guard that fences it, so it costs this and a little more.\nOne dispatched as separate arguments costs less, since nothing there is quoted."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/Batch.java","line":70,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.Batch.length","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.Batch.Batch.length","product":"core","slug":"io-github-libtmux-batch-batch-batch-length"},{"id":"io.github.libtmux.batch.Batch.Batch.run","name":"run","kind":"method","modifiers":[],"parent":"io.github.libtmux.batch.Batch.Batch","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public BatchResult run()","params":[],"returns":"BatchResult","typeScopeBoundary":false,"returnsDoc":"one result per operation, in submission order"}],"doc":{"summary":"Runs every collected operation in one tmux invocation."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/Batch.java","line":80,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.Batch.run","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.Batch.Batch.run","product":"core","slug":"io-github-libtmux-batch-batch-batch-run"},{"id":"io.github.libtmux.batch.BatchResult.BatchResult","name":"BatchResult","kind":"class","modifiers":[],"signatures":[{"raw":"public record BatchResult(@ReadOnly List operations)","params":[{"name":"operations","type":"List","doc":"one result per submitted operation, in submission order"}]}],"typeScopeBoundary":false,"doc":{"summary":"What became of every operation in one batch."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/BatchResult.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.BatchResult","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.BatchResult.BatchResult","product":"core","slug":"io-github-libtmux-batch-batchresult-batchresult"},{"id":"io.github.libtmux.batch.BatchResult.BatchResult.succeeded","name":"succeeded","kind":"method","modifiers":[],"parent":"io.github.libtmux.batch.BatchResult.BatchResult","signatures":[{"raw":"public boolean succeeded()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether tmux ran every operation and all of them succeeded."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/BatchResult.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.BatchResult.succeeded","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.BatchResult.BatchResult.succeeded","product":"core","slug":"io-github-libtmux-batch-batchresult-batchresult-succeeded"},{"id":"io.github.libtmux.batch.BatchResult.BatchResult.failure","name":"failure","kind":"method","modifiers":[],"parent":"io.github.libtmux.batch.BatchResult.BatchResult","signatures":[{"raw":"public Optional failure()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The operation that failed, if one did. Everything after it was discarded by tmux."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/BatchResult.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.BatchResult.failure","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.BatchResult.BatchResult.failure","product":"core","slug":"io-github-libtmux-batch-batchresult-batchresult-failure"},{"id":"io.github.libtmux.batch.BatchResult.BatchResult.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.batch.BatchResult.BatchResult","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/BatchResult.java","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.BatchResult.toString","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.BatchResult.BatchResult.toString","product":"core","slug":"io-github-libtmux-batch-batchresult-batchresult-tostring"},{"id":"io.github.libtmux.batch.BatchResult.BatchResult.operations","name":"operations","kind":"method","parent":"io.github.libtmux.batch.BatchResult.BatchResult","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"one result per submitted operation, in submission order"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/BatchResult.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.BatchResult.operations","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.BatchResult.BatchResult.operations","product":"core","slug":"io-github-libtmux-batch-batchresult-batchresult-operations"},{"id":"io.github.libtmux.batch.OperationOutcome.OperationOutcome","name":"OperationOutcome","kind":"enum","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"What became of one operation in a batch."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationOutcome.java","line":4,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationOutcome","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationOutcome.OperationOutcome","product":"core","slug":"io-github-libtmux-batch-operationoutcome-operationoutcome"},{"id":"io.github.libtmux.batch.OperationOutcome.OperationOutcome.COMPLETE","name":"COMPLETE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.batch.OperationOutcome.OperationOutcome","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"tmux ran it and it succeeded."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationOutcome.java","line":6,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationOutcome.COMPLETE","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationOutcome.OperationOutcome.COMPLETE","product":"core","slug":"io-github-libtmux-batch-operationoutcome-operationoutcome-complete"},{"id":"io.github.libtmux.batch.OperationOutcome.OperationOutcome.FAILED","name":"FAILED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.batch.OperationOutcome.OperationOutcome","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"tmux ran it and it failed. Everything after it was discarded."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationOutcome.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationOutcome.FAILED","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationOutcome.OperationOutcome.FAILED","product":"core","slug":"io-github-libtmux-batch-operationoutcome-operationoutcome-failed"},{"id":"io.github.libtmux.batch.OperationOutcome.OperationOutcome.SKIPPED","name":"SKIPPED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.batch.OperationOutcome.OperationOutcome","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"tmux never reached it, because an earlier operation failed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationOutcome.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationOutcome.SKIPPED","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationOutcome.OperationOutcome.SKIPPED","product":"core","slug":"io-github-libtmux-batch-operationoutcome-operationoutcome-skipped"},{"id":"io.github.libtmux.batch.OperationOutcome.OperationOutcome.UNKNOWN","name":"UNKNOWN","kind":"constant","modifiers":[],"parent":"io.github.libtmux.batch.OperationOutcome.OperationOutcome","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Whether tmux applied it cannot be determined."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationOutcome.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationOutcome.UNKNOWN","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationOutcome.OperationOutcome.UNKNOWN","product":"core","slug":"io-github-libtmux-batch-operationoutcome-operationoutcome-unknown"},{"id":"io.github.libtmux.batch.OperationResult.OperationResult","name":"OperationResult","kind":"class","modifiers":[],"signatures":[{"raw":"public record OperationResult(\n @ReadOnly List argv,\n OperationOutcome outcome,\n @ReadOnly List stdout,\n @ReadOnly List stderr)","params":[{"name":"argv","type":"List","doc":"the operation as it was submitted"},{"name":"outcome","type":"OperationOutcome","doc":"what became of it"},{"name":"stdout","type":"List","doc":"the lines this operation produced, separated from its neighbours'"},{"name":"stderr","type":"List","doc":"the error text, which tmux emits without saying which operation produced it, so it is attached to the one that failed"}]}],"typeScopeBoundary":false,"doc":{"summary":"One operation's own result within a batch."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationResult.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationResult","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationResult.OperationResult","product":"core","slug":"io-github-libtmux-batch-operationresult-operationresult"},{"id":"io.github.libtmux.batch.OperationResult.OperationResult.succeeded","name":"succeeded","kind":"method","modifiers":[],"parent":"io.github.libtmux.batch.OperationResult.OperationResult","signatures":[{"raw":"public boolean succeeded()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether tmux ran this operation and it succeeded."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationResult.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationResult.succeeded","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationResult.OperationResult.succeeded","product":"core","slug":"io-github-libtmux-batch-operationresult-operationresult-succeeded"},{"id":"io.github.libtmux.batch.OperationResult.OperationResult.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.batch.OperationResult.OperationResult","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"Counts only: argv and output carry pane content and socket paths."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationResult.java","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationResult.toString","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationResult.OperationResult.toString","product":"core","slug":"io-github-libtmux-batch-operationresult-operationresult-tostring"},{"id":"io.github.libtmux.batch.OperationResult.OperationResult.argv","name":"argv","kind":"method","parent":"io.github.libtmux.batch.OperationResult.OperationResult","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the operation as it was submitted"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationResult.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationResult.argv","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationResult.OperationResult.argv","product":"core","slug":"io-github-libtmux-batch-operationresult-operationresult-argv"},{"id":"io.github.libtmux.batch.OperationResult.OperationResult.outcome","name":"outcome","kind":"method","parent":"io.github.libtmux.batch.OperationResult.OperationResult","modifiers":[],"signatures":[{"params":[],"returns":"OperationOutcome"}],"doc":{"summary":"what became of it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationResult.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationResult.outcome","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationResult.OperationResult.outcome","product":"core","slug":"io-github-libtmux-batch-operationresult-operationresult-outcome"},{"id":"io.github.libtmux.batch.OperationResult.OperationResult.stdout","name":"stdout","kind":"method","parent":"io.github.libtmux.batch.OperationResult.OperationResult","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the lines this operation produced, separated from its neighbours'"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationResult.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationResult.stdout","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationResult.OperationResult.stdout","product":"core","slug":"io-github-libtmux-batch-operationresult-operationresult-stdout"},{"id":"io.github.libtmux.batch.OperationResult.OperationResult.stderr","name":"stderr","kind":"method","parent":"io.github.libtmux.batch.OperationResult.OperationResult","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the error text, which tmux emits without saying which operation produced it, so it is attached to the one that failed"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/batch/OperationResult.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.batch.OperationResult.stderr","namespace":"io.github.libtmux.batch","publicId":"io.github.libtmux.batch.OperationResult.OperationResult.stderr","product":"core","slug":"io-github-libtmux-batch-operationresult-operationresult-stderr"},{"id":"io.github.libtmux.BufferInfo.BufferInfo","name":"BufferInfo","kind":"class","modifiers":[],"signatures":[{"raw":"public record BufferInfo(String name, int size)","params":[{"name":"name","type":"String","doc":"the buffer name, which is how every other buffer command addresses it"},{"name":"size","type":"int","doc":"how many bytes it holds"}]}],"typeScopeBoundary":false,"doc":{"summary":"One tmux paste buffer, as a listing described it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/BufferInfo.java","line":9,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.BufferInfo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.BufferInfo.BufferInfo","product":"core","slug":"io-github-libtmux-bufferinfo-bufferinfo"},{"id":"io.github.libtmux.BufferInfo.BufferInfo.name","name":"name","kind":"method","parent":"io.github.libtmux.BufferInfo.BufferInfo","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the buffer name, which is how every other buffer command addresses it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/BufferInfo.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.BufferInfo.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.BufferInfo.BufferInfo.name","product":"core","slug":"io-github-libtmux-bufferinfo-bufferinfo-name"},{"id":"io.github.libtmux.BufferInfo.BufferInfo.size","name":"size","kind":"method","parent":"io.github.libtmux.BufferInfo.BufferInfo","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"how many bytes it holds"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/BufferInfo.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.BufferInfo.size","namespace":"io.github.libtmux","publicId":"io.github.libtmux.BufferInfo.BufferInfo.size","product":"core","slug":"io-github-libtmux-bufferinfo-bufferinfo-size"},{"id":"io.github.libtmux.Buffers.Buffers","name":"Buffers","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The tmux server's paste buffers.","body":"Buffers are the server's, not a session's: anything copied in one session can be pasted into\nanother. They are addressed by name rather than by the stack position tmux also accepts, because\na position moves whenever anything else is copied."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Buffers.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Buffers","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Buffers.Buffers","product":"core","slug":"io-github-libtmux-buffers-buffers"},{"id":"io.github.libtmux.Buffers.Buffers.EXACT_NAMED_DELETE","name":"EXACT_NAMED_DELETE","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.Buffers.Buffers","signatures":[],"typeScopeBoundary":true,"type":"TmuxVersion","value":"new TmuxVersion(3, 4, \"\")","doc":{"summary":"tmux's own history dates the fix to {@code 0f6227f4} (\"When deleting or renaming a buffer and a buffer name is specified, complain if the buffer doesn't exist instead of silently deleting or renaming the most recent buffer\", GitHub issue 3205); {@code git tag --contains} places it on {@code 3.4} and nothing earlier, so 3.3 and 3.3a both have the bug. Confirmed on the matrix: {@code set-buffer -b a x; set-buffer -b b y; delete-buffer -b nope} answers {@code unknown buffer: nope} on 3.4 and leaves both buffers, but on 3.3a it exits 0 and takes {@code b}, the one {@code delete-buffer} was never told to touch."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Buffers.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Buffers.EXACT_NAMED_DELETE","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Buffers.Buffers.EXACT_NAMED_DELETE","product":"core","slug":"io-github-libtmux-buffers-buffers-exact_named_delete"},{"id":"io.github.libtmux.Buffers.Buffers.Buffers","name":"Buffers","kind":"method","modifiers":[],"parent":"io.github.libtmux.Buffers.Buffers","signatures":[{"raw":"Buffers(Server server)","params":[{"name":"server","type":"Server"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Buffers.java","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Buffers.Buffers","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Buffers.Buffers.Buffers","product":"core","slug":"io-github-libtmux-buffers-buffers-buffers"},{"id":"io.github.libtmux.Buffers.Buffers.list","name":"list","kind":"method","modifiers":[],"parent":"io.github.libtmux.Buffers.Buffers","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List list()","params":[],"returns":"List","typeScopeBoundary":false,"returnsDoc":"an immutable list, empty if the live server holds no buffers","raises":[{"type":"LibTmuxException","doc":"if the listing fails, including when no daemon is running"}]}],"doc":{"summary":"Captures every buffer the server holds, in tmux's order."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Buffers.java","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Buffers.list","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Buffers.Buffers.list","product":"core","slug":"io-github-libtmux-buffers-buffers-list"},{"id":"io.github.libtmux.Buffers.Buffers.set","name":"set","kind":"method","modifiers":[],"parent":"io.github.libtmux.Buffers.Buffers","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void set(String name, String contents)","params":[{"name":"name","type":"String"},{"name":"contents","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Puts text in a named buffer, replacing whatever was there.","body":"The contents end the options, because they are the one argument here tmux would otherwise\nread as flags: {@code set(\"clip\", \"-nfoo\")} used to rename the buffer to {@code foo} and write\nnothing, and report success."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Buffers.java","line":69,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Buffers.set","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Buffers.Buffers.set","product":"core","slug":"io-github-libtmux-buffers-buffers-set"},{"id":"io.github.libtmux.Buffers.Buffers.show","name":"show","kind":"method","modifiers":[],"parent":"io.github.libtmux.Buffers.Buffers","signatures":[{"raw":"@Operation(Kind.READ)\n public String show(String name)","params":[{"name":"name","type":"String"}],"returns":"String","typeScopeBoundary":false,"raises":[{"type":"TargetGoneException","doc":"if the server has no buffer by that name"},{"type":"ServerUnavailableException","doc":"if no daemon is running"}]}],"doc":{"summary":"What a buffer holds, without any line breaks it ends with.","body":"tmux prints a buffer as it is, and the transport drops trailing blank lines, so {@code \"a\"}\nand {@code \"a\\n\"} read the same. A marker printed after it cannot keep them: tmux writes a\nbuffer through its file stream, which a second command in the same invocation interrupts.\n{@link #save} writes the exact bytes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Buffers.java","line":85,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Buffers.show","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Buffers.Buffers.show","product":"core","slug":"io-github-libtmux-buffers-buffers-show"},{"id":"io.github.libtmux.Buffers.Buffers.delete","name":"delete","kind":"method","modifiers":[],"parent":"io.github.libtmux.Buffers.Buffers","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void delete(String name)","params":[{"name":"name","type":"String"}],"returns":"void","typeScopeBoundary":false,"raises":[{"type":"TargetGoneException","doc":"if the server has no buffer by that name"},{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"UnsupportedFeatureException","doc":"before tmux 3.4, whose named deletion silently removes the top buffer when the name is absent"}]}],"doc":{"summary":"Removes a buffer by its exact name."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Buffers.java","line":105,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Buffers.delete","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Buffers.Buffers.delete","product":"core","slug":"io-github-libtmux-buffers-buffers-delete"},{"id":"io.github.libtmux.Buffers.Buffers.save","name":"save","kind":"method","modifiers":[],"parent":"io.github.libtmux.Buffers.Buffers","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void save(String name, Path file)","params":[{"name":"name","type":"String"},{"name":"file","type":"Path"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Writes a buffer's contents to a file."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Buffers.java","line":121,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Buffers.save","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Buffers.Buffers.save","product":"core","slug":"io-github-libtmux-buffers-buffers-save"},{"id":"io.github.libtmux.Buffers.Buffers.load","name":"load","kind":"method","modifiers":[],"parent":"io.github.libtmux.Buffers.Buffers","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void load(String name, Path file)","params":[{"name":"name","type":"String"},{"name":"file","type":"Path"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Reads a file into a named buffer."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Buffers.java","line":127,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Buffers.load","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Buffers.Buffers.load","product":"core","slug":"io-github-libtmux-buffers-buffers-load"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec","name":"CaptureSpec","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"What part of a pane to read, and how.","body":"The shape {@link SplitSpec} uses. A plain {@link Pane#capture()} reads what is on screen; this\nis how to reach the scrollback above it, or to keep what tmux otherwise strips.\n\nLines are numbered from the top of the visible area, so {@code 0} is the first row on screen\nand negatives climb into the history. {@code fromStartOfHistory()} is the whole of what tmux\nkept.","examples":[{"lang":"java","code":"List everything = pane.capture(c -> c.fromStartOfHistory());\nList lastTen = pane.capture(c -> c.from(-10));"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec","product":"core","slug":"io-github-libtmux-capturespec-capturespec"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.builder","name":"builder","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec","signatures":[{"raw":"public static Builder builder()","params":[],"returns":"Builder","typeScopeBoundary":true}],"doc":{"summary":"A builder that reads what is on screen and nothing else."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":69,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.builder","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-17ql"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.argv","name":"argv","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec","signatures":[{"raw":"List argv(String target, TmuxVersion running)","params":[{"name":"target","type":"String"},{"name":"running","type":"TmuxVersion"}],"returns":"List","typeScopeBoundary":false,"raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something {@code running} does not have"}]}],"doc":{"summary":"The command that reads the pane."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.argv","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.argv","product":"core","slug":"io-github-libtmux-capturespec-capturespec-argv"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","name":"Builder","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Collects the choices, each named for what it does rather than for the flag it sets."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":123,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-v00t"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.from","name":"from","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"raw":"public Builder from(int line)","params":[{"name":"line","type":"int","doc":"{@code 0} is the first row on screen; negatives climb into the scrollback"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Starts at a line, counted from the top of the visible area."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":145,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.from","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.from","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-from"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.fromStartOfHistory","name":"fromStartOfHistory","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"raw":"public Builder fromStartOfHistory()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Starts at the oldest line tmux still has."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":151,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.fromStartOfHistory","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.fromStartOfHistory","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-fromstartofhistory"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.to","name":"to","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"raw":"public Builder to(int line)","params":[{"name":"line","type":"int"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Ends at a line, counted the same way as {@link #from}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":157,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.to","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.to","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-to"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.toEndOfHistory","name":"toEndOfHistory","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"raw":"public Builder toEndOfHistory()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Ends at the newest line, including anything below the visible area."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":163,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.toEndOfHistory","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.toEndOfHistory","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-toendofhistory"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.withEscapeSequences","name":"withEscapeSequences","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"raw":"public Builder withEscapeSequences()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Keeps the escape sequences that colour and position the text."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":169,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.withEscapeSequences","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.withEscapeSequences","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-withescapesequences"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.escapingNonPrintable","name":"escapingNonPrintable","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"raw":"public Builder escapingNonPrintable()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Writes anything unprintable as an octal escape rather than dropping it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":175,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.escapingNonPrintable","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.escapingNonPrintable","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-escapingnonprintable"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.joiningWrappedLines","name":"joiningWrappedLines","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"raw":"public Builder joiningWrappedLines()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Joins a line tmux wrapped back into the one line it was."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":181,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.joiningWrappedLines","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.joiningWrappedLines","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-joiningwrappedlines"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.preservingTrailingSpace","name":"preservingTrailingSpace","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"raw":"public Builder preservingTrailingSpace()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Keeps the spaces at the end of a line, which tmux otherwise drops."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":187,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.preservingTrailingSpace","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.preservingTrailingSpace","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-preservingtrailingspace"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.trimmingTrailingSpace","name":"trimmingTrailingSpace","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"raw":"public Builder trimmingTrailingSpace()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Drops trailing space and the empty lines below the content. Requires tmux 3.4."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":193,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.trimmingTrailingSpace","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.trimmingTrailingSpace","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-trimmingtrailingspace"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.fromAlternateScreen","name":"fromAlternateScreen","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"raw":"public Builder fromAlternateScreen()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Reads the alternate screen, which is what a full-screen program draws on."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":199,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.fromAlternateScreen","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.fromAlternateScreen","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-fromalternatescreen"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.pendingOnly","name":"pendingOnly","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"raw":"public Builder pendingOnly()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Reads only output tmux has not drawn yet."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":205,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.pendingOnly","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.pendingOnly","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-pendingonly"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.fromModeScreen","name":"fromModeScreen","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"raw":"public Builder fromModeScreen()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Reads what a mode is showing rather than the pane beneath it. Requires tmux 3.6."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":211,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.fromModeScreen","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.fromModeScreen","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-frommodescreen"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.withHyperlinks","name":"withHyperlinks","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"raw":"public Builder withHyperlinks()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Keeps hyperlink markers. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":217,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.withHyperlinks","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.withHyperlinks","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-withhyperlinks"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.withLineNumbers","name":"withLineNumbers","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"raw":"public Builder withLineNumbers()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Prefixes each line with its number. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":223,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.withLineNumbers","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.withLineNumbers","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-withlinenumbers"},{"id":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.build","name":"build","kind":"method","modifiers":[],"parent":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder","signatures":[{"raw":"public CaptureSpec build()","params":[],"returns":"CaptureSpec","typeScopeBoundary":false}],"doc":{"summary":"The finished spec."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CaptureSpec.java","line":229,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CaptureSpec.Builder.build","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CaptureSpec.CaptureSpec.Builder.build","product":"core","slug":"io-github-libtmux-capturespec-capturespec-builder-build"},{"id":"io.github.libtmux.catalog.Advanced.Advanced","name":"Advanced","kind":"interface","modifiers":["annotation"],"signatures":[{"raw":"@Documented\n@Retention(RUNTIME)\n@Target({TYPE, METHOD})\npublic @interface Advanced","params":[]}],"typeScopeBoundary":false,"doc":{"summary":"Public for orchestration across processes or clients, such as the MCP server's pane reservations; not part of the surface a language facade mirrors."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Advanced.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Advanced","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Advanced.Advanced","product":"core","slug":"io-github-libtmux-catalog-advanced-advanced"},{"id":"io.github.libtmux.catalog.Kind.Kind","name":"Kind","kind":"enum","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"What shape a facade needs to give one operation of the core API.","body":"A Kotlin or Scala wrapper, or a generated reference page, reads this off {@link Operation}\nrather than guessing from a method's name or return type."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Kind.java","line":9,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Kind","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Kind.Kind","product":"core","slug":"io-github-libtmux-catalog-kind-kind"},{"id":"io.github.libtmux.catalog.Kind.Kind.CAPTURED","name":"CAPTURED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.catalog.Kind.Kind","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"No tmux I/O: answers from the handle's own capture, or collects a command to send later. Field accessors, navigation within one capture, and building a batch or chain."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Kind.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Kind.CAPTURED","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Kind.Kind.CAPTURED","product":"core","slug":"io-github-libtmux-catalog-kind-kind-captured"},{"id":"io.github.libtmux.catalog.Kind.Kind.READ","name":"READ","kind":"constant","modifiers":[],"parent":"io.github.libtmux.catalog.Kind.Kind","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Contacts tmux and changes nothing: listings, captures, {@code show-*}, expansion, liveness, lookups."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Kind.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Kind.READ","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Kind.Kind.READ","product":"core","slug":"io-github-libtmux-catalog-kind-kind-read"},{"id":"io.github.libtmux.catalog.Kind.Kind.MUTATION","name":"MUTATION","kind":"constant","modifiers":[],"parent":"io.github.libtmux.catalog.Kind.Kind","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Changes tmux state: sending keys, renaming, killing, splitting, setting options, pasting, resizing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Kind.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Kind.MUTATION","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Kind.Kind.MUTATION","product":"core","slug":"io-github-libtmux-catalog-kind-kind-mutation"},{"id":"io.github.libtmux.catalog.Kind.Kind.WAIT","name":"WAIT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.catalog.Kind.Kind","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Blocks until something else happens; the waiting itself changes nothing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Kind.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Kind.WAIT","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Kind.Kind.WAIT","product":"core","slug":"io-github-libtmux-catalog-kind-kind-wait"},{"id":"io.github.libtmux.catalog.Kind.Kind.STREAM","name":"STREAM","kind":"constant","modifiers":[],"parent":"io.github.libtmux.catalog.Kind.Kind","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Returns a subscription, stream, or publisher of events."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Kind.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Kind.STREAM","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Kind.Kind.STREAM","product":"core","slug":"io-github-libtmux-catalog-kind-kind-stream"},{"id":"io.github.libtmux.catalog.Kind.Kind.LIFECYCLE","name":"LIFECYCLE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.catalog.Kind.Kind","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Opens, attaches, derives, or closes a resource."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Kind.java","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Kind.LIFECYCLE","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Kind.Kind.LIFECYCLE","product":"core","slug":"io-github-libtmux-catalog-kind-kind-lifecycle"},{"id":"io.github.libtmux.catalog.Operation.Operation","name":"Operation","kind":"interface","modifiers":["annotation"],"signatures":[{"raw":"@Documented\n@Retention(RUNTIME)\n@Target(METHOD)\npublic @interface Operation","params":[]}],"typeScopeBoundary":false,"doc":{"summary":"Classifies one public method of the core API as a tmux operation of a given {@link Kind}.","body":"Every public method that performs or describes a tmux operation carries this, so a facade\nnever has to infer the shape of a call from its name or signature."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Operation.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Operation","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Operation.Operation","product":"core","slug":"io-github-libtmux-catalog-operation-operation"},{"id":"io.github.libtmux.catalog.Operation.Operation.value","name":"value","kind":"method","modifiers":["annotation"],"parent":"io.github.libtmux.catalog.Operation.Operation","signatures":[{"raw":"Kind value();","params":[],"returns":"Kind","typeScopeBoundary":false}],"doc":{"summary":"What shape this operation gives a facade."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Operation.java","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Operation.value","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Operation.Operation.value","product":"core","slug":"io-github-libtmux-catalog-operation-operation-value"},{"id":"io.github.libtmux.catalog.Operation.Operation.tmuxSince","name":"tmuxSince","kind":"method","modifiers":["annotation"],"parent":"io.github.libtmux.catalog.Operation.Operation","signatures":[{"raw":"String tmuxSince() default \"\";","params":[],"returns":"String","typeScopeBoundary":false}],"value":"\"\"","doc":{"summary":"The first tmux release that has this operation, when it is newer than the supported floor, 3.2a. Empty when the whole supported range has it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/catalog/Operation.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.catalog.Operation.tmuxSince","namespace":"io.github.libtmux.catalog","publicId":"io.github.libtmux.catalog.Operation.Operation.tmuxSince","product":"core","slug":"io-github-libtmux-catalog-operation-operation-tmuxsince"},{"id":"io.github.libtmux.Channel.Channel","name":"Channel","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"One of tmux's wait-for channels, named once.","body":"A channel is server-wide and shared by everything on it, including programs running in panes.\nNothing creates or destroys one: a name either has a signal remembered against it or does not.\n\ntmux's own {@code wait-for} has two traps, and this exists to close both. It exits successfully\nwhen the server dies under the waiter, which is indistinguishable from a real signal, so the\nserver is checked afterwards rather than believed. And a signal sent when nobody is waiting is\nremembered, satisfying the next wait whenever that happens — possibly in a later run of a\ndifferent program — so {@link #drain()} is how a caller starts from a known state on a channel\nwhose history is not its own."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Channel.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Channel","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Channel.Channel","product":"core","slug":"io-github-libtmux-channel-channel"},{"id":"io.github.libtmux.Channel.Channel.Channel","name":"Channel","kind":"method","modifiers":[],"parent":"io.github.libtmux.Channel.Channel","signatures":[{"raw":"Channel(Server server, String name)","params":[{"name":"server","type":"Server"},{"name":"name","type":"String"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Channel.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Channel.Channel","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Channel.Channel.Channel","product":"core","slug":"io-github-libtmux-channel-channel-channel"},{"id":"io.github.libtmux.Channel.Channel.name","name":"name","kind":"method","modifiers":[],"parent":"io.github.libtmux.Channel.Channel","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public String name()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The name this channel is known by on its server."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Channel.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Channel.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Channel.Channel.name","product":"core","slug":"io-github-libtmux-channel-channel-name"},{"id":"io.github.libtmux.Channel.Channel.signal","name":"signal","kind":"method","modifiers":[],"parent":"io.github.libtmux.Channel.Channel","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void signal()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Signals the channel, waking one waiter, or being remembered until something waits.","body":"{@code -S} takes no argument of its own — it says which of wait-for's three modes this is —\nso the name that follows is a positional and needs the options ended before it, exactly as\nthe wait does."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Channel.java","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Channel.signal","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Channel.Channel.signal","product":"core","slug":"io-github-libtmux-channel-channel-signal"},{"id":"io.github.libtmux.Channel.Channel.await","name":"await","kind":"method","modifiers":[],"parent":"io.github.libtmux.Channel.Channel","signatures":[{"raw":"@Operation(Kind.WAIT)\n public WakeReason await(Duration timeout) throws InterruptedException","params":[{"name":"timeout","type":"Duration","doc":"how long to wait"}],"returns":"WakeReason","typeScopeBoundary":false,"returnsDoc":"why the wait ended, which is never simply \"successfully\"","raises":[{"type":"InterruptedException","doc":"if the waiting thread is interrupted, which is a cancellation rather than a timeout and so is not reported as one"}]}],"doc":{"summary":"Waits for something to signal the channel."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Channel.java","line":60,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Channel.await","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Channel.Channel.await","product":"core","slug":"io-github-libtmux-channel-channel-await"},{"id":"io.github.libtmux.Channel.Channel.awaitReservingCapacity","name":"awaitReservingCapacity","kind":"method","modifiers":[],"parent":"io.github.libtmux.Channel.Channel","signatures":[{"raw":"@Operation(Kind.WAIT)\n public WakeReason awaitReservingCapacity(Duration timeout) throws InterruptedException","params":[{"name":"timeout","type":"Duration"}],"returns":"WakeReason","typeScopeBoundary":false,"raises":[{"type":"io.github.libtmux.exception.DispatchException","doc":"if the wait could not be dispatched"},{"type":"InterruptedException","doc":"if the waiting thread is interrupted, which is a cancellation rather than a timeout and so is not reported as one"}]}],"doc":{"summary":"Waits while preserving process capacity for a call through this server that signals it.","body":"Use this when the waiter and its release share a bounded transport. A wait released outside\nthat transport should use {@link #await}; reserving capacity for it only rejects useful\nconcurrency."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Channel.java","line":76,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Channel.awaitReservingCapacity","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Channel.Channel.awaitReservingCapacity","product":"core","slug":"io-github-libtmux-channel-channel-awaitreservingcapacity"},{"id":"io.github.libtmux.Channel.Channel.drain","name":"drain","kind":"method","modifiers":[],"parent":"io.github.libtmux.Channel.Channel","signatures":[{"raw":"@Operation(Kind.WAIT)\n public boolean drain() throws InterruptedException","params":[],"returns":"boolean","typeScopeBoundary":false,"returnsDoc":"whether a signal was there to consume","raises":[{"type":"InterruptedException","doc":"if the waiting thread is interrupted"}]}],"doc":{"summary":"Consumes a signal already waiting, so a stale one cannot satisfy a later wait."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Channel.java","line":87,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Channel.drain","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Channel.Channel.drain","product":"core","slug":"io-github-libtmux-channel-channel-drain"},{"id":"io.github.libtmux.Channel.Channel.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.Channel.Channel","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Channel.java","line":92,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Channel.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Channel.Channel.toString","product":"core","slug":"io-github-libtmux-channel-channel-tostring"},{"id":"io.github.libtmux.Client.Client","name":"Client","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"One attached tmux client, as one capture saw it.","body":"Identity is the server and the client name, which is how tmux addresses it. What it is\nattached to is state: a client can switch sessions without becoming a different client.\n\n{@link #name()}, {@link #session()}, and {@link #attachment()} return what the capture holds\nand do no I/O; {@link #refresh()} reads again. Every other method asks tmux now."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client","product":"core","slug":"io-github-libtmux-client-client"},{"id":"io.github.libtmux.Client.Client.Client","name":"Client","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"raw":"Client(Server server, ServerSnapshot snapshot, ClientState state)","params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"state","type":"ClientState"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.Client","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.Client","product":"core","slug":"io-github-libtmux-client-client-client"},{"id":"io.github.libtmux.Client.Client.name","name":"name","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public String name()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The client's terminal name, which is how tmux addresses it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.name","product":"core","slug":"io-github-libtmux-client-client-name"},{"id":"io.github.libtmux.Client.Client.detach","name":"detach","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void detach()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Detaches this client, leaving whatever it was attached to running.","body":"Detaching is not killing: the session outlives the client, which is the reason tmux exists."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.detach","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.detach","product":"core","slug":"io-github-libtmux-client-client-detach"},{"id":"io.github.libtmux.Client.Client.detachOthers","name":"detachOthers","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void detachOthers()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Detaches every other client, leaving this one attached."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":52,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.detachOthers","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.detachOthers","product":"core","slug":"io-github-libtmux-client-client-detachothers"},{"id":"io.github.libtmux.Client.Client.switchTo","name":"switchTo","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void switchTo(Session session)","params":[{"name":"session","type":"Session"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Moves this client to another session.","body":"The client keeps its identity: switching is a change of what it is looking at, not a\ndetach and a fresh attach."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.switchTo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.switchTo","product":"core","slug":"io-github-libtmux-client-client-switchto"},{"id":"io.github.libtmux.Client.Client.redraw","name":"redraw","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void redraw()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Asks tmux to redraw this client.","body":"Not {@link #refresh()}, which takes a new capture of what tmux knows. This one is tmux's\n{@code refresh-client}, and it changes the terminal rather than this handle."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.redraw","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.redraw","product":"core","slug":"io-github-libtmux-client-client-redraw"},{"id":"io.github.libtmux.Client.Client.server","name":"server","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Server server()","params":[],"returns":"Server","typeScopeBoundary":false}],"doc":{"summary":"The server this client is connected to."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":84,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.server","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.server","product":"core","slug":"io-github-libtmux-client-client-server"},{"id":"io.github.libtmux.Client.Client.snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"raw":"ServerSnapshot snapshot()","params":[],"returns":"ServerSnapshot","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":89,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.snapshot","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.snapshot","product":"core","slug":"io-github-libtmux-client-client-snapshot"},{"id":"io.github.libtmux.Client.Client.session","name":"session","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Optional session()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The session this client was attached to when captured. A pure read of the capture."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":94,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.session","product":"core","slug":"io-github-libtmux-client-client-session"},{"id":"io.github.libtmux.Client.Client.attachment","name":"attachment","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Optional attachment()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"What this client was looking at when captured. A pure read: it issues no command.","body":"Empty when the capture shows the client attached to nothing, or shows a session whose\nactive window or pane the capture did not include."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":105,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.attachment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.attachment","product":"core","slug":"io-github-libtmux-client-client-attachment"},{"id":"io.github.libtmux.Client.Client.fetchAttachment","name":"fetchAttachment","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"raw":"@Operation(Kind.READ)\n public Optional fetchAttachment()","params":[],"returns":"Optional","typeScopeBoundary":false,"raises":[{"type":"TargetGoneException","doc":"if this client has detached"}]}],"doc":{"summary":"Takes a new capture and returns what this client is looking at now.","body":"Named to say it dispatches, unlike {@link #attachment()}. Every call is one live capture."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":120,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.fetchAttachment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.fetchAttachment","product":"core","slug":"io-github-libtmux-client-client-fetchattachment"},{"id":"io.github.libtmux.Client.Client.refresh","name":"refresh","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"raw":"@CheckReturnValue\n @Operation(Kind.READ)\n public Client refresh()","params":[],"returns":"Client","typeScopeBoundary":false,"raises":[{"type":"TargetGoneException","doc":"if this client has detached, or a different daemon answers on the endpoint"},{"type":"ServerUnavailableException","doc":"if no daemon is running"}]}],"doc":{"summary":"Takes a new capture and returns this client as it is now.","body":"This handle remains unchanged, as every handle's does."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":134,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.refresh","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.refresh","product":"core","slug":"io-github-libtmux-client-client-refresh"},{"id":"io.github.libtmux.Client.Client.equals","name":"equals","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"raw":"@Override\n public boolean equals(Object other)","params":[{"name":"other","type":"Object"}],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":145,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.equals","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.equals","product":"core","slug":"io-github-libtmux-client-client-equals"},{"id":"io.github.libtmux.Client.Client.hashCode","name":"hashCode","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"raw":"@Override\n public int hashCode()","params":[],"returns":"int","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":152,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.hashCode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.hashCode","product":"core","slug":"io-github-libtmux-client-client-hashcode"},{"id":"io.github.libtmux.Client.Client.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.Client.Client","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Client.java","line":157,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client.Client.toString","product":"core","slug":"io-github-libtmux-client-client-tostring"},{"id":"io.github.libtmux.ClientAttachment.ClientAttachment","name":"ClientAttachment","kind":"class","modifiers":[],"signatures":[{"raw":"public record ClientAttachment(Session session, Window activeWindow, Pane activePane)","params":[{"name":"session","type":"Session","doc":"the session the client is attached to"},{"name":"activeWindow","type":"Window","doc":"that session's active window"},{"name":"activePane","type":"Pane","doc":"that window's active pane, which is what the client's keystrokes reach"}]}],"typeScopeBoundary":false,"doc":{"summary":"What a client was looking at.","body":"All three are present together or not at all. A client attached to a session is looking at\nexactly one window of it and one pane of that window; an attachment holding only some of those\nwould describe a state tmux does not have."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ClientAttachment.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ClientAttachment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ClientAttachment.ClientAttachment","product":"core","slug":"io-github-libtmux-clientattachment-clientattachment"},{"id":"io.github.libtmux.ClientAttachment.ClientAttachment.session","name":"session","kind":"method","parent":"io.github.libtmux.ClientAttachment.ClientAttachment","modifiers":[],"signatures":[{"params":[],"returns":"Session"}],"doc":{"summary":"the session the client is attached to"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ClientAttachment.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ClientAttachment.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ClientAttachment.ClientAttachment.session","product":"core","slug":"io-github-libtmux-clientattachment-clientattachment-session"},{"id":"io.github.libtmux.ClientAttachment.ClientAttachment.activeWindow","name":"activeWindow","kind":"method","parent":"io.github.libtmux.ClientAttachment.ClientAttachment","modifiers":[],"signatures":[{"params":[],"returns":"Window"}],"doc":{"summary":"that session's active window"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ClientAttachment.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ClientAttachment.activeWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ClientAttachment.ClientAttachment.activeWindow","product":"core","slug":"io-github-libtmux-clientattachment-clientattachment-activewindow"},{"id":"io.github.libtmux.ClientAttachment.ClientAttachment.activePane","name":"activePane","kind":"method","parent":"io.github.libtmux.ClientAttachment.ClientAttachment","modifiers":[],"signatures":[{"params":[],"returns":"Pane"}],"doc":{"summary":"that window's active pane, which is what the client's keystrokes reach"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ClientAttachment.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ClientAttachment.activePane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ClientAttachment.ClientAttachment.activePane","product":"core","slug":"io-github-libtmux-clientattachment-clientattachment-activepane"},{"id":"io.github.libtmux.CommandChain.CommandChain","name":"CommandChain","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"A sequence of tmux commands where each one acts on what the last one made.","body":"tmux moves its own current target as a group runs: a {@code new-window} makes the new window\ncurrent, a following {@code split-window} splits that window, and a following {@code send-keys}\ntypes into the pane that split produced. None of these steps names a target, and that is the\npoint — the alternative is a round trip per step to learn the id of the thing just created.\n\nThe whole chain is one tmux invocation, and every step is attributed individually, so a chain\nthat fails halfway says which step failed and which never ran."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain","product":"core","slug":"io-github-libtmux-commandchain-commandchain"},{"id":"io.github.libtmux.CommandChain.CommandChain.CommandChain","name":"CommandChain","kind":"method","modifiers":[],"parent":"io.github.libtmux.CommandChain.CommandChain","signatures":[{"raw":"CommandChain(Batch batch, Supplier running)","params":[{"name":"batch","type":"Batch"},{"name":"running","type":"Supplier"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain.CommandChain","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain.CommandChain","product":"core","slug":"io-github-libtmux-commandchain-commandchain-commandchain"},{"id":"io.github.libtmux.CommandChain.CommandChain.newWindow","name":"newWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.CommandChain.CommandChain","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public CommandChain newWindow(String name)","params":[{"name":"name","type":"String"}],"returns":"CommandChain","typeScopeBoundary":false}],"doc":{"summary":"Creates a window and makes it the one following steps act on."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain.newWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain.newWindow","product":"core","slug":"io-github-libtmux-commandchain-commandchain-newwindow"},{"id":"io.github.libtmux.CommandChain.CommandChain.renameWindow","name":"renameWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.CommandChain.CommandChain","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public CommandChain renameWindow(String name)","params":[{"name":"name","type":"String"}],"returns":"CommandChain","typeScopeBoundary":false}],"doc":{"summary":"Renames the current window."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain.renameWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain.renameWindow","product":"core","slug":"io-github-libtmux-commandchain-commandchain-renamewindow"},{"id":"io.github.libtmux.CommandChain.CommandChain.splitLeftRight","name":"splitLeftRight","kind":"method","modifiers":[],"parent":"io.github.libtmux.CommandChain.CommandChain","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public CommandChain splitLeftRight()","params":[],"returns":"CommandChain","typeScopeBoundary":false}],"doc":{"summary":"Splits the current pane into a left and a right one.","body":"Named for what it produces rather than for tmux's {@code -h}, which reads as though it\ndescribed the divider."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain.splitLeftRight","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain.splitLeftRight","product":"core","slug":"io-github-libtmux-commandchain-commandchain-splitleftright"},{"id":"io.github.libtmux.CommandChain.CommandChain.splitTopBottom","name":"splitTopBottom","kind":"method","modifiers":[],"parent":"io.github.libtmux.CommandChain.CommandChain","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public CommandChain splitTopBottom()","params":[],"returns":"CommandChain","typeScopeBoundary":false}],"doc":{"summary":"Splits the current pane into a top and a bottom one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":57,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain.splitTopBottom","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain.splitTopBottom","product":"core","slug":"io-github-libtmux-commandchain-commandchain-splittopbottom"},{"id":"io.github.libtmux.CommandChain.CommandChain.sendLine","name":"sendLine","kind":"method","modifiers":[],"parent":"io.github.libtmux.CommandChain.CommandChain","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public CommandChain sendLine(String command)","params":[{"name":"command","type":"String"}],"returns":"CommandChain","typeScopeBoundary":false}],"doc":{"summary":"Types a line into the current pane and presses Enter, which is how a command gets run."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain.sendLine","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain.sendLine","product":"core","slug":"io-github-libtmux-commandchain-commandchain-sendline"},{"id":"io.github.libtmux.CommandChain.CommandChain.arrange","name":"arrange","kind":"method","modifiers":[],"parent":"io.github.libtmux.CommandChain.CommandChain","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public CommandChain arrange(String layout)","params":[{"name":"layout","type":"String"}],"returns":"CommandChain","typeScopeBoundary":false,"raises":[{"type":"IllegalArgumentException","doc":"if tmux would not recognise the layout, which on some versions ends the whole server rather than the command"},{"type":"UnsupportedFeatureException","doc":"if the layout name arrived after this release, which tmux cannot tell from any other name it does not know"}]}],"doc":{"summary":"Arranges the current window."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":76,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain.arrange","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain.arrange","product":"core","slug":"io-github-libtmux-commandchain-commandchain-arrange"},{"id":"io.github.libtmux.CommandChain.CommandChain.then","name":"then","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.CommandChain.CommandChain","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public CommandChain then(String... argv)","params":[{"name":"argv","type":"String","variadic":"positional"}],"returns":"CommandChain","typeScopeBoundary":false},{"raw":"@Operation(Kind.CAPTURED)\n public CommandChain then(List argv)","params":[{"name":"argv","type":"List"}],"returns":"CommandChain","typeScopeBoundary":false}],"doc":{"summary":"Adds any tmux command, for whatever this class does not name."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":82,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain.then","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain.then","product":"core","slug":"io-github-libtmux-commandchain-commandchain-then"},{"id":"io.github.libtmux.CommandChain.CommandChain.run","name":"run","kind":"method","modifiers":[],"parent":"io.github.libtmux.CommandChain.CommandChain","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public BatchResult run()","params":[],"returns":"BatchResult","typeScopeBoundary":false}],"doc":{"summary":"Runs the whole chain in one tmux invocation, attributing each step."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/CommandChain.java","line":96,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.CommandChain.run","namespace":"io.github.libtmux","publicId":"io.github.libtmux.CommandChain.CommandChain.run","product":"core","slug":"io-github-libtmux-commandchain-commandchain-run"},{"id":"io.github.libtmux.Commands.Commands","name":"Commands","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The commands this tmux knows, read without starting a server to answer."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Commands.java","line":9,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Commands","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Commands.Commands","product":"core","slug":"io-github-libtmux-commands-commands"},{"id":"io.github.libtmux.Commands.Commands.Commands","name":"Commands","kind":"method","modifiers":[],"parent":"io.github.libtmux.Commands.Commands","signatures":[{"raw":"Commands(Server server)","params":[{"name":"server","type":"Server"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Commands.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Commands.Commands","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Commands.Commands.Commands","product":"core","slug":"io-github-libtmux-commands-commands-commands"},{"id":"io.github.libtmux.Commands.Commands.list","name":"list","kind":"method","modifiers":[],"parent":"io.github.libtmux.Commands.Commands","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List list()","params":[],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"Every command, as tmux prints it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Commands.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Commands.list","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Commands.Commands.list","product":"core","slug":"io-github-libtmux-commands-commands-list"},{"id":"io.github.libtmux.control.ControlClient.ControlClient","name":"ControlClient","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"A tmux client that stays attached and answers one command at a time.","body":"This is what a semicolon group cannot be. tmux discards a group after its first failure, so a\nclient has to infer which command failed; here each request is independent, so a failure\ndiscards nothing behind it.\n\nReplies arrive in request order, so the writer sends one request at a time and matches its\nreply by position. A reply is the first block tmux writes for the request: an acknowledgement,\nwhich work the command deferred may outlive. What that command queued, as {@code if-shell}\nqueues its branch, and what a hook ran, arrive as blocks of their own, and none of them is taken\nfor the next request's reply. A deadline before the writer picks a request writes nothing; a\ndeadline after that point ends the client because the next reply could no longer be attributed\nsafely.\n\nThe reader and writer are platform threads. A library does not own the virtual-thread\nscheduler: a caller's CPU-bound task that never blocks keeps its carrier, and either thread\nunable to run stops the client from making progress. The reader only\nresolves replies and fills bounded subscription buffers; subscriber code runs on the thread that\npulls a value.\n\n**Threads.** {@link #send} may be called from several threads at once: requests\nqueue in the order they arrive and each caller gets its own reply. A subscription is read by one\nthread at a time.\n\n**Close it.** The client holds an attached tmux client, which is what makes tmux\npush output to it, and closing is what detaches that client and stops its threads. A client that\nis forgotten does not hold the JVM open — its threads are daemons — and the attached tmux client\nexits once the JVM does, because it reads its commands from a pipe that closes with it. Until then\nit is listed among the session's clients like any other."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":69,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.attachUnfenced","name":"attachUnfenced","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"raw":"@Operation(Kind.LIFECYCLE)\n public static ControlClient attachUnfenced(ServerConfig config, SessionId session)","params":[{"name":"config","type":"ServerConfig","doc":"which tmux and which server"},{"name":"session","type":"SessionId","doc":"the session to attach to"}],"returns":"ControlClient","typeScopeBoundary":true},{"raw":"@Operation(Kind.LIFECYCLE)\n public static ControlClient attachUnfenced(ServerConfig config, SessionId session, Duration timeout)","params":[{"name":"config","type":"ServerConfig","doc":"which tmux and which server"},{"name":"session","type":"SessionId","doc":"the session to attach to"},{"name":"timeout","type":"Duration","doc":"how long to wait for the client to become ready"}],"returns":"ControlClient","typeScopeBoundary":true}],"doc":{"summary":"Attaches a control client to whatever server now answers this endpoint.","body":"Attaching is what makes tmux push {@code %output}: a control client that never attaches is\ntold about command replies and nothing else.\n\nThis does not check which tmux process answered. A socket can be taken over by a new\nserver that reuses the same session id. {@link io.github.libtmux.Server#control} attaches to\nthe process a capture already named; prefer it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":141,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.attachUnfenced","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.attachUnfenced","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-attachunfenced"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.attach","name":"attach","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"raw":"@Operation(Kind.LIFECYCLE)\n public static ControlClient attach(\n ServerConfig config, SessionId session, long serverPid, String serverVersion, Duration timeout)","params":[{"name":"config","type":"ServerConfig"},{"name":"session","type":"SessionId"},{"name":"serverPid","type":"long","doc":"the tmux process a capture recorded"},{"name":"serverVersion","type":"String","doc":"the version text that process reported, compared as text"},{"name":"timeout","type":"Duration"}],"returns":"ControlClient","typeScopeBoundary":true},{"raw":"@Operation(Kind.LIFECYCLE)\n public static ControlClient attach(\n ControlCarrier carrier,\n ServerConfig config,\n SessionId session,\n long serverPid,\n java.util.OptionalLong serverStartTime,\n String serverVersion,\n Duration timeout)","params":[{"name":"carrier","type":"ControlCarrier"},{"name":"config","type":"ServerConfig"},{"name":"session","type":"SessionId"},{"name":"serverPid","type":"long"},{"name":"serverStartTime","type":"java.util.OptionalLong","doc":"when the captured process started, as {@code #{start_time}} reported it; compared when present, since a restarted tmux can be given the same pid and version"},{"name":"serverVersion","type":"String"},{"name":"timeout","type":"Duration"}],"returns":"ControlClient","typeScopeBoundary":true}],"doc":{"summary":"Attaches, then leaves unless the live server is still the process that was captured.","body":"A pid can be reused, so the version tmux reports is part of the check. A mismatch detaches\nbefore this client changes the server: layout refresh runs only after the check passes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":170,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.attach","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.attach","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-attach"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.send","name":"send","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public ControlReply send(String... argv)","params":[{"name":"argv","type":"String","variadic":"positional"}],"returns":"ControlReply","typeScopeBoundary":false},{"raw":"@Operation(Kind.MUTATION)\n public ControlReply send(List argv)","params":[{"name":"argv","type":"List"}],"returns":"ControlReply","typeScopeBoundary":false},{"raw":"@Operation(Kind.MUTATION)\n public ControlReply send(List argv, Duration timeout)","params":[{"name":"argv","type":"List","doc":"the command, its arguments already separate elements"},{"name":"timeout","type":"Duration","doc":"how long to wait for tmux to answer"}],"returns":"ControlReply","typeScopeBoundary":false,"returnsDoc":"tmux's reply","raises":[{"type":"DispatchException","doc":"if the request cannot complete; its {@link DispatchException#outcome() outcome} is {@link DispatchOutcome#NOT_DISPATCHED} until the writer picks the request and {@link DispatchOutcome#UNKNOWN} afterwards"}]}],"doc":{"summary":"Runs one command and waits for its reply."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":311,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.send","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.send","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-send"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.isAlive","name":"isAlive","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public boolean isAlive()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether the client is still running.","body":"A control client is a client of the server it talks to, so it ends when that server does.\nA carrier holding one needs to tell \"this command failed\" from \"there is no longer anything\nto send commands to\", which are the same exception until this is asked."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":408,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.isAlive","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.isAlive","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-isalive"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.subscribeOutput","name":"subscribeOutput","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"raw":"@Operation(Kind.STREAM)\n public EventSubscription subscribeOutput(int capacity)","params":[{"name":"capacity","type":"int","doc":"how many values this subscriber can retain before its oldest value is dropped"}],"returns":"EventSubscription","typeScopeBoundary":false,"returnsDoc":"a pull subscription owned by the caller","raises":[{"type":"IllegalArgumentException","doc":"if {@code capacity} is not positive"},{"type":"IllegalStateException","doc":"if the client has ended"}]}],"doc":{"summary":"Subscribes to terminal output tmux pushes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":421,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.subscribeOutput","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.subscribeOutput","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-subscribeoutput"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.subscribeEvents","name":"subscribeEvents","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"raw":"@Operation(Kind.STREAM)\n public EventSubscription subscribeEvents(int capacity)","params":[{"name":"capacity","type":"int","doc":"how many values this subscriber can retain before its oldest value is dropped"}],"returns":"EventSubscription","typeScopeBoundary":false,"returnsDoc":"a pull subscription owned by the caller","raises":[{"type":"IllegalArgumentException","doc":"if {@code capacity} is not positive"},{"type":"IllegalStateException","doc":"if the client has ended"}]}],"doc":{"summary":"Subscribes to state changes tmux volunteers."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":434,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.subscribeEvents","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.subscribeEvents","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-subscribeevents"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.watch","name":"watch","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public ControlReply watch(String name, String target, String format)","params":[{"name":"name","type":"String","doc":"what to call it; registering the same name again replaces the old one"},{"name":"target","type":"String","doc":"{@code %*} for every pane, {@code @*} for every window, a specific {@code %id} or {@code @id}, or the attached session (pass {@code \"\"} - see below)"},{"name":"format","type":"String","doc":"a tmux format, such as {@code #{pane_current_command}}"}],"returns":"ControlReply","typeScopeBoundary":false}],"doc":{"summary":"Asks tmux to report a format whenever its value changes.","body":"tmux re-expands the format about once a second and writes a {@code subscription-changed}\nevent only when the result differs from last time, so the comparison happens in the server and\na client that subscribes does nothing at all between changes. This is what makes watching a\nserver cost nothing while it is idle."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":452,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.watch","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.watch","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-watch"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.unwatch","name":"unwatch","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public ControlReply unwatch(String name)","params":[{"name":"name","type":"String"}],"returns":"ControlReply","typeScopeBoundary":false}],"doc":{"summary":"Stops a watch. tmux reads a name with no colon in it as one to remove."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":471,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.unwatch","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.unwatch","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-unwatch"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"raw":"@Operation(Kind.LIFECYCLE)\n @Override\n public void close()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Ends the client, rejecting queued requests and resolving picked requests as uncertain."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":477,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.close","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.close","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-close"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.line","name":"line","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"raw":"static String line(List argv)","params":[{"name":"argv","type":"List"}],"returns":"String","typeScopeBoundary":true}],"doc":{"summary":"tmux parses a control-mode request as one line, so an argument has to survive its lexer. Single quotes preserve everything except a single quote, which is closed, escaped and reopened."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":524,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.line","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.line","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-line"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.standardError","name":"standardError","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public String standardError()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The error text captured from this control process, at most 4096 bytes.","body":"Empty when the process wrote none. {@link #standardErrorTruncated()} says the stream\ncontinued past that bound. The text is whatever had been read when this is called."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":580,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.standardError","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.standardError","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-standarderror"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.standardErrorTruncated","name":"standardErrorTruncated","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public boolean standardErrorTruncated()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether {@link #standardError()} stopped before the process finished writing it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":588,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.standardErrorTruncated","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.standardErrorTruncated","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-standarderrortruncated"},{"id":"io.github.libtmux.control.ControlClient.ControlClient.unescape","name":"unescape","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.control.ControlClient.ControlClient","signatures":[{"raw":"static byte[] unescape(byte[] line, int from)","params":[{"name":"line","type":"byte[]"},{"name":"from","type":"int"}],"returns":"byte[]","typeScopeBoundary":true}],"doc":{"summary":"tmux writes a control byte or a backslash as a three-digit octal escape, and the rest raw."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlClient.java","line":721,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlClient.unescape","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlClient.ControlClient.unescape","product":"core","slug":"io-github-libtmux-control-controlclient-controlclient-unescape"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent","name":"ControlEvent","kind":"class","modifiers":[],"signatures":[{"raw":"public record ControlEvent(\n String kind, @ReadOnly List fields, Optional value, Notification notification)","params":[{"name":"kind","type":"String","doc":"the notification name, such as {@code window-add} or {@code subscription-changed}"},{"name":"fields","type":"List","doc":"the words that followed it, before any {@code :} separator"},{"name":"value","type":"Optional","doc":"what followed a {@code :} separator, which only a subscription carries"},{"name":"notification","type":"Notification","doc":"the same notification, typed"}]}],"typeScopeBoundary":false,"doc":{"summary":"Something tmux volunteered, rather than an answer to a request.","body":"A control client is told about changes as they happen — a window appearing, a session being\nrenamed, a layout moving — without anything asking. That is the difference between watching a\nserver and polling one.\n\nTwo readings of one line. {@link #notification()} is typed, for matching on: a sealed set of\nwhat tmux sends, with a {@link Notification.Unknown} case so that a notification a newer tmux adds\nstill arrives rather than being dropped. {@link #kind()}, {@link #fields()} and {@link #value()}\nare what tmux wrote, word by word, for anything the typed reading does not cover."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent.ControlEvent","name":"ControlEvent","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlEvent.ControlEvent","signatures":[{"raw":"public ControlEvent(String kind, List fields, Optional value)","params":[{"name":"kind","type":"String"},{"name":"fields","type":"List"},{"name":"value","type":"Optional"}],"typeScopeBoundary":false}],"doc":{"summary":"An event from its words, with the typed reading taken from them.","body":"A name is rejoined from the words with single spaces, so one tmux wrote with a run of them\nreads back with one. {@link #parse} reads the line tmux wrote and has no such loss."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","line":39,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent.ControlEvent","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent.ControlEvent","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent-controlevent"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent.parse","name":"parse","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.control.ControlEvent.ControlEvent","signatures":[{"raw":"static Optional parse(String line)","params":[{"name":"line","type":"String","doc":"the line as tmux wrote it, leading {@code %} and all"}],"returns":"Optional","typeScopeBoundary":true,"returnsDoc":"the event, or empty when the line is not a notification"}],"doc":{"summary":"Reads one notification line."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent.parse","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent.parse","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent-parse"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent.subscription","name":"subscription","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlEvent.ControlEvent","signatures":[{"raw":"public Optional subscription()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The name a subscription was registered under, for an event that came from one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","line":74,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent.subscription","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent.subscription","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent-subscription"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent.paneId","name":"paneId","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlEvent.ControlEvent","signatures":[{"raw":"public Optional paneId()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The first field naming a pane, which is how an event says which pane it is about."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","line":79,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent.paneId","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent.paneId","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent-paneid"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent.windowId","name":"windowId","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlEvent.ControlEvent","signatures":[{"raw":"public Optional windowId()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The first field naming a window."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","line":87,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent.windowId","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent.windowId","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent-windowid"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent.kind","name":"kind","kind":"method","parent":"io.github.libtmux.control.ControlEvent.ControlEvent","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the notification name, such as {@code window-add} or {@code subscription-changed}"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent.kind","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent.kind","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent-kind"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent.fields","name":"fields","kind":"method","parent":"io.github.libtmux.control.ControlEvent.ControlEvent","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the words that followed it, before any {@code :} separator"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent.fields","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent.fields","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent-fields"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent.value","name":"value","kind":"method","parent":"io.github.libtmux.control.ControlEvent.ControlEvent","modifiers":[],"signatures":[{"params":[],"returns":"Optional"}],"doc":{"summary":"what followed a {@code :} separator, which only a subscription carries"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent.value","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent.value","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent-value"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent.notification","name":"notification","kind":"method","parent":"io.github.libtmux.control.ControlEvent.ControlEvent","modifiers":[],"signatures":[{"params":[],"returns":"Notification"}],"doc":{"summary":"the same notification, typed"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlEvent.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlEvent.notification","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlEvent.ControlEvent.notification","product":"core","slug":"io-github-libtmux-control-controlevent-controlevent-notification"},{"id":"io.github.libtmux.control.ControlLineReader.ControlLineReader","name":"ControlLineReader","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Reads bounded physical lines from a control client's byte stream."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlLineReader.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlLineReader","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlLineReader.ControlLineReader","product":"core","slug":"io-github-libtmux-control-controllinereader-controllinereader"},{"id":"io.github.libtmux.control.ControlLineReader.ControlLineReader.ControlLineReader","name":"ControlLineReader","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlLineReader.ControlLineReader","signatures":[{"raw":"ControlLineReader(InputStream source, int maxBytes)","params":[{"name":"source","type":"InputStream"},{"name":"maxBytes","type":"int"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlLineReader.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlLineReader.ControlLineReader","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlLineReader.ControlLineReader.ControlLineReader","product":"core","slug":"io-github-libtmux-control-controllinereader-controllinereader-controllinereader"},{"id":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line","name":"Line","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.ControlLineReader.ControlLineReader","signatures":[{"raw":"@SuppressWarnings(\"ArrayRecordComponent\") // Internal: read once by the thread that made it.\n record Line(String text, int encodedBytes, byte[] bytes)","params":[{"name":"text","type":"String"},{"name":"encodedBytes","type":"int"},{"name":"bytes","type":"byte[]"}]}],"typeScopeBoundary":true,"doc":{"summary":"A line as text, its length on the wire, and its bytes without the line ending."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlLineReader.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlLineReader.Line","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line","product":"core","slug":"io-github-libtmux-control-controllinereader-controllinereader-line"},{"id":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line.text","name":"text","kind":"method","parent":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlLineReader.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlLineReader.Line.text","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line.text","product":"core","slug":"io-github-libtmux-control-controllinereader-controllinereader-line-text"},{"id":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line.encodedBytes","name":"encodedBytes","kind":"method","parent":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlLineReader.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlLineReader.Line.encodedBytes","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line.encodedBytes","product":"core","slug":"io-github-libtmux-control-controllinereader-controllinereader-line-encodedbytes"},{"id":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line.bytes","name":"bytes","kind":"method","parent":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line","modifiers":[],"signatures":[{"params":[],"returns":"byte[]"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlLineReader.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlLineReader.Line.bytes","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlLineReader.ControlLineReader.Line.bytes","product":"core","slug":"io-github-libtmux-control-controllinereader-controllinereader-line-bytes"},{"id":"io.github.libtmux.control.ControlLineReader.ControlLineReader.readLine","name":"readLine","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlLineReader.ControlLineReader","signatures":[{"raw":"@Nullable\n Line readLine() throws IOException","params":[],"returns":"Line","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlLineReader.java","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlLineReader.readLine","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlLineReader.ControlLineReader.readLine","product":"core","slug":"io-github-libtmux-control-controllinereader-controllinereader-readline"},{"id":"io.github.libtmux.control.ControlLineReader.ControlLineReader.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlLineReader.ControlLineReader","signatures":[{"raw":"@Override\n public void close() throws IOException","params":[],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlLineReader.java","line":58,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlLineReader.close","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlLineReader.ControlLineReader.close","product":"core","slug":"io-github-libtmux-control-controllinereader-controllinereader-close"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol","name":"ControlProtocol","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Frames control-mode replies and encodes requests for tmux's command parser."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.DEFAULT_MAX_REPLY_BYTES","name":"DEFAULT_MAX_REPLY_BYTES","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol","signatures":[],"typeScopeBoundary":true,"type":"int","value":"16 * 1024 * 1024","source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.DEFAULT_MAX_REPLY_BYTES","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.DEFAULT_MAX_REPLY_BYTES","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-default_max_reply_bytes"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.ControlProtocol","name":"ControlProtocol","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol","signatures":[{"raw":"ControlProtocol()","params":[],"typeScopeBoundary":false},{"raw":"ControlProtocol(int maxReplyBytes)","params":[{"name":"maxReplyBytes","type":"int"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.ControlProtocol","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.ControlProtocol","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-controlprotocol"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Result","name":"Result","kind":"interface","modifiers":[],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.Result","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Result","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-result"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Awaiting","name":"Awaiting","kind":"enum","modifiers":[],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.Awaiting","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Awaiting","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-awaiting"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Awaiting.INSTANCE","name":"INSTANCE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Awaiting","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.Awaiting.INSTANCE","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Awaiting.INSTANCE","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-awaiting-instance"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Notification","name":"Notification","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol","signatures":[{"raw":"record Notification(String line) implements Result","params":[{"name":"line","type":"String"}]}],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.Notification","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Notification","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-notification"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Notification.line","name":"line","kind":"method","parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Notification","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.Notification.line","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Notification.line","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-notification-line"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply","name":"Reply","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol","signatures":[{"raw":"record Reply(OperationOutcome outcome, @ReadOnly List lines, boolean requested) implements Result","params":[{"name":"outcome","type":"OperationOutcome"},{"name":"lines","type":"List"},{"name":"requested","type":"boolean"}]}],"typeScopeBoundary":true,"doc":{"summary":"One reply block. {@code requested} is tmux's guard flag: set for a command this client wrote, and for any that command queued, and clear for what a hook ran."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.Reply","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-reply"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply.outcome","name":"outcome","kind":"method","parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply","modifiers":[],"signatures":[{"params":[],"returns":"OperationOutcome"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.Reply.outcome","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply.outcome","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-reply-outcome"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply.lines","name":"lines","kind":"method","parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.Reply.lines","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply.lines","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-reply-lines"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply.requested","name":"requested","kind":"method","parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.Reply.requested","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.Reply.requested","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-reply-requested"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.accept","name":"accept","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol","signatures":[{"raw":"Result accept(String line)","params":[{"name":"line","type":"String"}],"returns":"Result","typeScopeBoundary":false},{"raw":"Result accept(String line, int encodedBytes)","params":[{"name":"line","type":"String"},{"name":"encodedBytes","type":"int"}],"returns":"Result","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.accept","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.accept","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-accept"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.line","name":"line","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol","signatures":[{"raw":"static String line(List argv)","params":[{"name":"argv","type":"List"}],"returns":"String","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":98,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.line","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.line","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-line"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.LimitExceeded","name":"LimitExceeded","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":113,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.LimitExceeded","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.LimitExceeded","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-limitexceeded"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol.LimitExceeded.LimitExceeded","name":"LimitExceeded","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlProtocol.ControlProtocol.LimitExceeded","signatures":[{"raw":"LimitExceeded(int limit)","params":[{"name":"limit","type":"int"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlProtocol.java","line":116,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlProtocol.LimitExceeded.LimitExceeded","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlProtocol.ControlProtocol.LimitExceeded.LimitExceeded","product":"core","slug":"io-github-libtmux-control-controlprotocol-controlprotocol-limitexceeded-limitexceeded"},{"id":"io.github.libtmux.control.ControlReply.ControlReply","name":"ControlReply","kind":"class","modifiers":[],"signatures":[{"raw":"public record ControlReply(\n OperationOutcome outcome, @ReadOnly List lines)","params":[{"name":"outcome","type":"OperationOutcome","doc":"what tmux said became of it; never {@code SKIPPED}, because control-mode requests are independent and a failure discards nothing behind it"},{"name":"lines","type":"List","doc":"the lines tmux produced between the reply's own begin and end markers"}]}],"typeScopeBoundary":false,"doc":{"summary":"One command's reply in control mode."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlReply.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlReply","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlReply.ControlReply","product":"core","slug":"io-github-libtmux-control-controlreply-controlreply"},{"id":"io.github.libtmux.control.ControlReply.ControlReply.succeeded","name":"succeeded","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlReply.ControlReply","signatures":[{"raw":"public boolean succeeded()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether tmux ran the command and it succeeded."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlReply.java","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlReply.succeeded","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlReply.ControlReply.succeeded","product":"core","slug":"io-github-libtmux-control-controlreply-controlreply-succeeded"},{"id":"io.github.libtmux.control.ControlReply.ControlReply.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlReply.ControlReply","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"Counts only: reply lines carry pane content."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlReply.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlReply.toString","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlReply.ControlReply.toString","product":"core","slug":"io-github-libtmux-control-controlreply-controlreply-tostring"},{"id":"io.github.libtmux.control.ControlReply.ControlReply.outcome","name":"outcome","kind":"method","parent":"io.github.libtmux.control.ControlReply.ControlReply","modifiers":[],"signatures":[{"params":[],"returns":"OperationOutcome"}],"doc":{"summary":"what tmux said became of it; never {@code SKIPPED}, because control-mode requests are independent and a failure discards nothing behind it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlReply.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlReply.outcome","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlReply.ControlReply.outcome","product":"core","slug":"io-github-libtmux-control-controlreply-controlreply-outcome"},{"id":"io.github.libtmux.control.ControlReply.ControlReply.lines","name":"lines","kind":"method","parent":"io.github.libtmux.control.ControlReply.ControlReply","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the lines tmux produced between the reply's own begin and end markers"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlReply.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlReply.lines","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlReply.ControlReply.lines","product":"core","slug":"io-github-libtmux-control-controlreply-controlreply-lines"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter","name":"ControlWriter","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Owns the process-pipe write and the FIFO that attributes replies to requests.","body":"A request's reply is the first block tmux writes for it: an acknowledgement, which deferred\nwork may outlive. But tmux answers every command another one queues with a block of its own, as\n{@code if-shell} queues its branch and {@code run-shell} reports its job, numbered like any other.\nSo each request line is followed by a second, {@code display-message -p} of a marker unique to it:\ntmux runs that after everything the request queued, whether the request failed or not. Blocks\nbetween a reply and its marker belong to the request already answered, and are not handed to\nthe next one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.DEFAULT_CAPACITY","name":"DEFAULT_CAPACITY","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[],"typeScopeBoundary":true,"type":"int","value":"64","source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.DEFAULT_CAPACITY","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.DEFAULT_CAPACITY","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-default_capacity"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.ControlWriter","name":"ControlWriter","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"raw":"ControlWriter(BufferedWriter output, int capacity, Consumer failed)","params":[{"name":"output","type":"BufferedWriter"},{"name":"capacity","type":"int"},{"name":"failed","type":"Consumer"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.ControlWriter","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.ControlWriter","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-controlwriter"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.expectInitial","name":"expectInitial","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"raw":"Request expectInitial(Duration timeout)","params":[{"name":"timeout","type":"Duration"}],"returns":"Request","typeScopeBoundary":false}],"doc":{"summary":"Records the attach request dispatched by the process invocation."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.expectInitial","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.expectInitial","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-expectinitial"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.start","name":"start","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"raw":"void start()","params":[],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":73,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.start","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.start","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-start"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.exchange","name":"exchange","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"raw":"ControlReply exchange(String line, Duration timeout)","params":[{"name":"line","type":"String"},{"name":"timeout","type":"Duration"}],"returns":"ControlReply","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.exchange","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.exchange","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-exchange"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.takeTiming","name":"takeTiming","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"raw":"long[] takeTiming(long elapsed)","params":[{"name":"elapsed","type":"long"}],"returns":"long[]","typeScopeBoundary":false}],"doc":{"summary":"Queue time, then run time, for the last exchange on this thread; {@code elapsed} as run time when this thread made none."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":110,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.takeTiming","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.takeTiming","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-taketiming"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.complete","name":"complete","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"raw":"void complete(OperationOutcome outcome, List lines, boolean requested)","params":[{"name":"outcome","type":"OperationOutcome"},{"name":"lines","type":"List"},{"name":"requested","type":"boolean","doc":"tmux's guard flag: clear for a block a hook ran, which answers no request"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Called by the reader for each reply block, in the order tmux wrote them."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":121,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.complete","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.complete","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-complete"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.readerEnded","name":"readerEnded","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"raw":"void readerEnded()","params":[],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":148,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.readerEnded","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.readerEnded","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-readerended"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"raw":"void close()","params":[],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":152,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.close","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.close","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-close"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.join","name":"join","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"raw":"void join(long timeoutMillis) throws InterruptedException","params":[{"name":"timeoutMillis","type":"long"}],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":156,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.join","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.join","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-join"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.await","name":"await","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[{"raw":"ControlReply await(Request request)","params":[{"name":"request","type":"Request"}],"returns":"ControlReply","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":170,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.await","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.await","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-await"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","name":"Request","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":329,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.pick","name":"pick","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"raw":"boolean pick()","params":[],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":356,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.pick","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.pick","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-pick"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.timing","name":"timing","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"raw":"long[] timing(long now)","params":[{"name":"now","type":"long"}],"returns":"long[]","typeScopeBoundary":false}],"doc":{"summary":"Queue time, then run time, up to now. A request never picked spent all of it queued."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":366,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.timing","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.timing","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-timing"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.cancel","name":"cancel","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"raw":"boolean cancel(DispatchException reason)","params":[{"name":"reason","type":"DispatchException"}],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":373,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.cancel","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.cancel","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-cancel"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.complete","name":"complete","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"raw":"void complete(ControlReply reply)","params":[{"name":"reply","type":"ControlReply"}],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":377,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.complete","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.complete","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-complete"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.fail","name":"fail","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"raw":"boolean fail(DispatchException reason)","params":[{"name":"reason","type":"DispatchException"}],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":381,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.fail","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.fail","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-fail"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.claimFailure","name":"claimFailure","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"raw":"boolean claimFailure()","params":[],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":389,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.claimFailure","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.claimFailure","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-claimfailure"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.publishFailure","name":"publishFailure","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"raw":"void publishFailure(DispatchException reason)","params":[{"name":"reason","type":"DispatchException"}],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":393,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.publishFailure","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.publishFailure","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-publishfailure"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.isDone","name":"isDone","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"raw":"boolean isDone()","params":[],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":406,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.isDone","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.isDone","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-isdone"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.remainingNanos","name":"remainingNanos","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"raw":"long remainingNanos()","params":[],"returns":"long","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":410,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.remainingNanos","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.remainingNanos","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-remainingnanos"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.await","name":"await","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"raw":"boolean await() throws InterruptedException","params":[],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":415,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.await","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.await","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-await"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.answer","name":"answer","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"raw":"ControlReply answer()","params":[],"returns":"ControlReply","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":419,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.answer","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.answer","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-answer"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.awaitTerminal","name":"awaitTerminal","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.ControlWriter.ControlWriter.Request","signatures":[{"raw":"void awaitTerminal()","params":[],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/ControlWriter.java","line":430,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.ControlWriter.Request.awaitTerminal","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.ControlWriter.ControlWriter.Request.awaitTerminal","product":"core","slug":"io-github-libtmux-control-controlwriter-controlwriter-request-awaitterminal"},{"id":"io.github.libtmux.control.Delivery.Delivery","name":"Delivery","kind":"interface","modifiers":[],"signatures":[],"typeScopeBoundary":false,"typeParams":["T"],"typeParamNames":["T"],"typeParameters":[{"name":"T","doc":"the event type"}],"doc":{"summary":"One step in a control subscription.","body":"A {@link Gap} sits in the sequence where events were discarded, ahead of the events that\nsurvived. It is not a side total: the next read is the gap, and the one after it is whatever\nremains."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Delivery.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Delivery","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Delivery.Delivery","product":"core","slug":"io-github-libtmux-control-delivery-delivery"},{"id":"io.github.libtmux.control.Delivery.Delivery.kept","name":"kept","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.control.Delivery.Delivery","signatures":[{"raw":"static T kept(Delivery step)","params":[{"name":"step","type":"Delivery","doc":"the subscription's next step"}],"returns":"T","typeParamNames":["T"],"typeScopeBoundary":true,"typeParams":["T"],"typeParameters":[{"name":"T","doc":"the event type"}],"returnsDoc":"the event","raises":[{"type":"IllegalStateException","doc":"if {@code step} is a gap"}]}],"doc":{"summary":"The event a strict reader kept. A gap fails the read."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Delivery.java","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Delivery.kept","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Delivery.Delivery.kept","product":"core","slug":"io-github-libtmux-control-delivery-delivery-kept"},{"id":"io.github.libtmux.control.Delivery.Delivery.Event","name":"Event","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Delivery.Delivery","signatures":[{"raw":"record Event(T value) implements Delivery","params":[{"name":"value","type":"T","doc":"the event"}],"typeParamNames":["T"],"typeParams":["T"],"typeParameters":[{"name":"T","doc":"the event type"}]}],"typeScopeBoundary":true,"typeParams":["T"],"typeParamNames":["T"],"typeParameters":[{"name":"T","doc":"the event type"}],"doc":{"summary":"An event the subscription kept."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Delivery.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Delivery.Event","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Delivery.Delivery.Event","product":"core","slug":"io-github-libtmux-control-delivery-delivery-event"},{"id":"io.github.libtmux.control.Delivery.Delivery.Event.value","name":"value","kind":"method","parent":"io.github.libtmux.control.Delivery.Delivery.Event","modifiers":[],"signatures":[{"params":[],"returns":"T"}],"doc":{"summary":"the event"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Delivery.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Delivery.Event.value","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Delivery.Delivery.Event.value","product":"core","slug":"io-github-libtmux-control-delivery-delivery-event-value"},{"id":"io.github.libtmux.control.Delivery.Delivery.Gap","name":"Gap","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Delivery.Delivery","signatures":[{"raw":"record Gap(long missed) implements Delivery","params":[{"name":"missed","type":"long","doc":"the number discarded, at least one"}],"typeParamNames":["T"],"typeParams":["T"],"typeParameters":[{"name":"T","doc":"the event type"}]}],"typeScopeBoundary":true,"typeParams":["T"],"typeParamNames":["T"],"typeParameters":[{"name":"T","doc":"the event type"}],"doc":{"summary":"How many events were discarded since the previous read because the buffer was full."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Delivery.java","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Delivery.Gap","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Delivery.Delivery.Gap","product":"core","slug":"io-github-libtmux-control-delivery-delivery-gap"},{"id":"io.github.libtmux.control.Delivery.Delivery.Gap.missed","name":"missed","kind":"method","parent":"io.github.libtmux.control.Delivery.Delivery.Gap","modifiers":[],"signatures":[{"params":[],"returns":"long"}],"doc":{"summary":"the number discarded, at least one"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Delivery.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Delivery.Gap.missed","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Delivery.Delivery.Gap.missed","product":"core","slug":"io-github-libtmux-control-delivery-delivery-gap-missed"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription","name":"EventSubscription","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"typeParams":["T"],"typeParamNames":["T"],"typeParameters":[{"name":"T","doc":"the event type"}],"doc":{"summary":"Pulls events volunteered by one control client.","body":"Each subscription owns a fixed-capacity buffer. When that buffer is full, the next event\nreplaces its oldest event. The read that follows is a {@link Delivery.Gap} naming how many were\ndiscarded since the previous read, and only then the events that remain. {@link #droppedCount()}\nis the total across the subscription's life. Another subscription has its own buffer and its own\ngaps. The control protocol reader only offers values to these buffers, and never runs subscriber\ncode beyond a {@link #onReady readiness callback}.\n\nOne reader at a time. Public operations are thread-safe, and reads from different threads one\nafter another are fine — a coroutine or a fiber moves between threads — but a read that overlaps\nanother, or any read once {@link #stream()} or {@link #publisher()} has taken the subscription, is\nrefused with {@link IllegalStateException}: two readers would split one sequence and its gaps\nbetween them. For a second reader, subscribe again; each subscription gets every event.\n\n{@link #next()} blocks. {@link #poll()} never does, and {@link #onReady(Runnable)} arms a\none-shot wakeup for when there is something to poll, so an event loop or a coroutine can read\nwithout holding a thread while nothing arrives.\n\nA subscription does not reconnect. When it ends, {@link #next()} returns empty. {@link\n#cause()} is empty when the caller closed it, and set when the control client ended it. Attach\nagain from the captured session and read a snapshot; nothing already missed is replayed.\n\nEnding is terminal and wakes threads blocked in {@link #next()}. A caller's {@link #close()}\ndiscards buffered events: the caller has chosen not to read them, so they are not overflow and do\nnot increment the loss count. When the control client ends a subscription, what it had already\ndelivered stays readable, a pending gap first, and only then does a read return empty with\n{@link #cause()} set."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.EventSubscription","name":"EventSubscription","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"raw":"EventSubscription(int capacity, Consumer> onClose)","params":[{"name":"capacity","type":"int"},{"name":"onClose","type":"Consumer>"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":74,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.EventSubscription","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.EventSubscription","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-eventsubscription"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.offer","name":"offer","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"raw":"void offer(T event)","params":[{"name":"event","type":"T"}],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":82,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.offer","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.offer","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-offer"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.droppedCount","name":"droppedCount","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public long droppedCount()","params":[],"returns":"long","typeScopeBoundary":false,"returnsDoc":"the monotonic loss count"}],"doc":{"summary":"Returns the exact number of events discarded because this subscription's buffer was full."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":118,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.droppedCount","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.droppedCount","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-droppedcount"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.cause","name":"cause","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Optional cause()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"Why this subscription ended, when the control client ended it.","body":"Empty when the subscription is still open, and empty when the caller closed it. A client\nthat died sets this before the read returns empty."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":134,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.cause","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.cause","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-cause"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.next","name":"next","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"raw":"@Operation(Kind.WAIT)\n public Optional> next() throws InterruptedException","params":[],"returns":"Optional>","typeScopeBoundary":false,"returnsDoc":"the next gap or event, or empty when the subscription has closed and no gap is waiting","raises":[{"type":"IllegalStateException","doc":"if another read is in progress, or a stream or publisher owns this subscription"},{"type":"InterruptedException","doc":"if the waiting thread is interrupted"}]},{"raw":"@Operation(Kind.WAIT)\n public Optional> next(Duration timeout) throws InterruptedException","params":[{"name":"timeout","type":"Duration","doc":"how long to wait, zero to inspect the buffer without waiting"}],"returns":"Optional>","typeScopeBoundary":false,"returnsDoc":"the next gap or event, or empty when none arrived before the deadline","raises":[{"type":"IllegalArgumentException","doc":"if {@code timeout} is negative"},{"type":"IllegalStateException","doc":"if another read is in progress, or a stream or publisher owns this subscription"},{"type":"InterruptedException","doc":"if the waiting thread is interrupted"}]}],"doc":{"summary":"Waits until the next step arrives or this subscription closes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":152,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.next","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.next","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-next"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.poll","name":"poll","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Optional> poll()","params":[],"returns":"Optional>","typeScopeBoundary":false,"returnsDoc":"the next gap or event, or empty when none is buffered; after the subscription has ended, empty once what it held is read","raises":[{"type":"IllegalStateException","doc":"if another read is in progress, or a stream or publisher owns this subscription"}]}],"doc":{"summary":"Returns the next step if one is waiting, without blocking."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":189,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.poll","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.poll","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-poll"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.onReady","name":"onReady","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public void onReady(Runnable callback)","params":[{"name":"callback","type":"Runnable"}],"returns":"void","typeScopeBoundary":false,"raises":[{"type":"IllegalStateException","doc":"if a callback is already armed, or a stream or publisher owns this subscription"}]}],"doc":{"summary":"Arms a one-shot wakeup for when this subscription has something to read, or has ended.","body":"Runs {@code callback} at once, on this thread, when a step is already waiting or the\nsubscription has ended. Otherwise it runs once, on the control client's reader thread, when the\nfirst step arrives or the subscription ends, and is then disarmed: drain with {@link #poll()}\nuntil it is empty, then arm again. Checking and arming happen under the lock that delivery\ntakes, so a step cannot slip between them unannounced.\n\nThe callback runs on the thread delivering events, so it must not block: resume a waiting\ncoroutine, complete a promise, and return. One that throws is logged and ignored, and delivery\ncontinues."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":220,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.onReady","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.onReady","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-onready"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.clearReady","name":"clearReady","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public void clearReady()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Disarms the readiness callback, if one is armed. For a reader that stopped waiting."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":245,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.clearReady","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.clearReady","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-clearready"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.stream","name":"stream","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"raw":"@Operation(Kind.STREAM)\n public java.util.stream.Stream> stream()","params":[],"returns":"java.util.stream.Stream>","typeScopeBoundary":false,"raises":[{"type":"io.github.libtmux.exception.LibTmuxException","doc":"from the stream if the reading thread is interrupted; its interrupt status is set again"}]}],"doc":{"summary":"The steps still to come, in order, each read by the thread consuming the stream.","body":"Pull-only: a step is read when the stream asks for one, and events that arrive meanwhile\nwait in this subscription's buffer, so its capacity alone decides what becomes a {@link\nDelivery.Gap}. The stream ends when this subscription closes. When the control client ended\nit, the stream fails with {@link #cause()}. Closing the stream closes this subscription, and\nclosing this subscription from another thread ends a stream that is waiting.","examples":[{"lang":"java","code":"try (Stream> steps = subscription.stream()) {\n steps.map(Delivery::kept).forEach(output -> System.out.print(output.data()));\n}"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":366,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.stream","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.stream","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-stream"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.publisher","name":"publisher","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"raw":"@Operation(Kind.STREAM)\n public Flow.Publisher> publisher()","params":[],"returns":"Flow.Publisher>","typeScopeBoundary":false},{"raw":"@Operation(Kind.STREAM)\n public Flow.Publisher> publisher(Executor executor)","params":[{"name":"executor","type":"Executor","doc":"where each blocking read for the subscriber runs; one that runs a task on the calling thread makes {@link Flow.Subscription#request request} block on tmux, which the Reactive Streams rules forbid"}],"returns":"Flow.Publisher>","typeScopeBoundary":false}],"doc":{"summary":"A {@link Flow.Publisher} view of this subscription's steps, delivered as demand allows.","body":"Reads that wait for the next step run on a fresh virtual thread, started only while a\nsubscriber has outstanding demand, so a subscriber that never asks never blocks anything. Use\n{@link #publisher(Executor)} to read somewhere else instead.\n\n@see #publisher(Executor)"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":406,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.publisher","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.publisher","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-publisher"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.isClosed","name":"isClosed","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public boolean isClosed()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether this subscription has reached its terminal state.","body":"This distinguishes a timed read that expired from one that returned empty because the\nsubscription ended. A pending gap can still be read after the subscription has closed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":685,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.isClosed","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.isClosed","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-isclosed"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"raw":"@Operation(Kind.LIFECYCLE)\n @Override\n public void close()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Discards buffered events, removes this subscriber, and wakes every waiting reader."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":696,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.close","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.close","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-close"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.end","name":"end","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"raw":"void end(@Nullable Throwable failure)","params":[{"name":"failure","type":"Throwable"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Ends this subscription as the control client saw it end, recording why. Unlike {@link #close()}, events already delivered stay readable."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":706,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.end","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.end","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-end"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription.finish","name":"finish","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.EventSubscription.EventSubscription","signatures":[{"raw":"void finish()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Ends this subscription as a producer with nothing more to send: not a failure, and nothing is discarded."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/EventSubscription.java","line":711,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.EventSubscription.finish","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.EventSubscription.EventSubscription.finish","product":"core","slug":"io-github-libtmux-control-eventsubscription-eventsubscription-finish"},{"id":"io.github.libtmux.control.Notification.Notification","name":"Notification","kind":"interface","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"What a control-mode notification says, typed, for matching on.","body":"Sealed, with {@link Unknown} as the case for everything else. tmux adds notifications between\nreleases, and a closed set with nowhere to put a new one would drop it; here a notification this\nlibrary does not model yet still arrives, as {@code Unknown}, and {@link ControlEvent#kind()} and\n{@link ControlEvent#fields()} still carry what tmux wrote.\n\nThe forms are tmux's own, from {@code control-notify.c}. A name — of a window, a session, a\nclient — is everything after the id, spaces included, as tmux writes it.","examples":[{"lang":"java","code":"switch (event.notification()) {\n case Notification.WindowRenamed(WindowId window, String name, boolean attached) -> relabel(window, name);\n case Notification.SessionsChanged changed -> refreshSessions();\n default -> {}\n}"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification","product":"core","slug":"io-github-libtmux-control-notification-notification"},{"id":"io.github.libtmux.control.Notification.Notification.WindowAdded","name":"WindowAdded","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record WindowAdded(WindowId window, boolean attached) implements Notification","params":[{"name":"window","type":"WindowId"},{"name":"attached","type":"boolean"}]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %window-add}: a window was created; {@code attached} is false for {@code unlinked-window-add}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowAdded","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowAdded","product":"core","slug":"io-github-libtmux-control-notification-notification-windowadded"},{"id":"io.github.libtmux.control.Notification.Notification.WindowAdded.window","name":"window","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.WindowAdded","modifiers":[],"signatures":[{"params":[],"returns":"WindowId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowAdded.window","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowAdded.window","product":"core","slug":"io-github-libtmux-control-notification-notification-windowadded-window"},{"id":"io.github.libtmux.control.Notification.Notification.WindowAdded.attached","name":"attached","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.WindowAdded","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowAdded.attached","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowAdded.attached","product":"core","slug":"io-github-libtmux-control-notification-notification-windowadded-attached"},{"id":"io.github.libtmux.control.Notification.Notification.WindowClosed","name":"WindowClosed","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record WindowClosed(WindowId window, boolean attached) implements Notification","params":[{"name":"window","type":"WindowId"},{"name":"attached","type":"boolean"}]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %window-close}: a window was destroyed; {@code attached} as for {@link WindowAdded}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowClosed","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowClosed","product":"core","slug":"io-github-libtmux-control-notification-notification-windowclosed"},{"id":"io.github.libtmux.control.Notification.Notification.WindowClosed.window","name":"window","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.WindowClosed","modifiers":[],"signatures":[{"params":[],"returns":"WindowId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowClosed.window","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowClosed.window","product":"core","slug":"io-github-libtmux-control-notification-notification-windowclosed-window"},{"id":"io.github.libtmux.control.Notification.Notification.WindowClosed.attached","name":"attached","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.WindowClosed","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowClosed.attached","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowClosed.attached","product":"core","slug":"io-github-libtmux-control-notification-notification-windowclosed-attached"},{"id":"io.github.libtmux.control.Notification.Notification.WindowRenamed","name":"WindowRenamed","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record WindowRenamed(WindowId window, String name, boolean attached) implements Notification","params":[{"name":"window","type":"WindowId"},{"name":"name","type":"String"},{"name":"attached","type":"boolean"}]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %window-renamed}: a window has a new name; {@code attached} as for {@link WindowAdded}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowRenamed","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowRenamed","product":"core","slug":"io-github-libtmux-control-notification-notification-windowrenamed"},{"id":"io.github.libtmux.control.Notification.Notification.WindowRenamed.window","name":"window","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.WindowRenamed","modifiers":[],"signatures":[{"params":[],"returns":"WindowId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowRenamed.window","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowRenamed.window","product":"core","slug":"io-github-libtmux-control-notification-notification-windowrenamed-window"},{"id":"io.github.libtmux.control.Notification.Notification.WindowRenamed.name","name":"name","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.WindowRenamed","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowRenamed.name","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowRenamed.name","product":"core","slug":"io-github-libtmux-control-notification-notification-windowrenamed-name"},{"id":"io.github.libtmux.control.Notification.Notification.WindowRenamed.attached","name":"attached","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.WindowRenamed","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowRenamed.attached","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowRenamed.attached","product":"core","slug":"io-github-libtmux-control-notification-notification-windowrenamed-attached"},{"id":"io.github.libtmux.control.Notification.Notification.WindowPaneChanged","name":"WindowPaneChanged","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record WindowPaneChanged(WindowId window, PaneId pane) implements Notification","params":[{"name":"window","type":"WindowId"},{"name":"pane","type":"PaneId"}]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %window-pane-changed}: a window's active pane changed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowPaneChanged","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowPaneChanged","product":"core","slug":"io-github-libtmux-control-notification-notification-windowpanechanged"},{"id":"io.github.libtmux.control.Notification.Notification.WindowPaneChanged.window","name":"window","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.WindowPaneChanged","modifiers":[],"signatures":[{"params":[],"returns":"WindowId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowPaneChanged.window","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowPaneChanged.window","product":"core","slug":"io-github-libtmux-control-notification-notification-windowpanechanged-window"},{"id":"io.github.libtmux.control.Notification.Notification.WindowPaneChanged.pane","name":"pane","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.WindowPaneChanged","modifiers":[],"signatures":[{"params":[],"returns":"PaneId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.WindowPaneChanged.pane","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.WindowPaneChanged.pane","product":"core","slug":"io-github-libtmux-control-notification-notification-windowpanechanged-pane"},{"id":"io.github.libtmux.control.Notification.Notification.LayoutChanged","name":"LayoutChanged","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record LayoutChanged(WindowId window, WindowLayout layout) implements Notification","params":[{"name":"window","type":"WindowId"},{"name":"layout","type":"WindowLayout"}]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %layout-change}: a window's layout changed, in whichever form tmux reports it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.LayoutChanged","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.LayoutChanged","product":"core","slug":"io-github-libtmux-control-notification-notification-layoutchanged"},{"id":"io.github.libtmux.control.Notification.Notification.LayoutChanged.window","name":"window","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.LayoutChanged","modifiers":[],"signatures":[{"params":[],"returns":"WindowId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.LayoutChanged.window","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.LayoutChanged.window","product":"core","slug":"io-github-libtmux-control-notification-notification-layoutchanged-window"},{"id":"io.github.libtmux.control.Notification.Notification.LayoutChanged.layout","name":"layout","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.LayoutChanged","modifiers":[],"signatures":[{"params":[],"returns":"WindowLayout"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.LayoutChanged.layout","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.LayoutChanged.layout","product":"core","slug":"io-github-libtmux-control-notification-notification-layoutchanged-layout"},{"id":"io.github.libtmux.control.Notification.Notification.SessionChanged","name":"SessionChanged","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record SessionChanged(SessionId session, String name) implements Notification","params":[{"name":"session","type":"SessionId"},{"name":"name","type":"String"}]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %session-changed}: the attached client is now attached to this session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionChanged","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionChanged","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionchanged"},{"id":"io.github.libtmux.control.Notification.Notification.SessionChanged.session","name":"session","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SessionChanged","modifiers":[],"signatures":[{"params":[],"returns":"SessionId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionChanged.session","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionChanged.session","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionchanged-session"},{"id":"io.github.libtmux.control.Notification.Notification.SessionChanged.name","name":"name","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SessionChanged","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionChanged.name","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionChanged.name","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionchanged-name"},{"id":"io.github.libtmux.control.Notification.Notification.SessionRenamed","name":"SessionRenamed","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record SessionRenamed(SessionId session, String name) implements Notification","params":[{"name":"session","type":"SessionId"},{"name":"name","type":"String"}]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %session-renamed}: a session has a new name."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionRenamed","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionRenamed","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionrenamed"},{"id":"io.github.libtmux.control.Notification.Notification.SessionRenamed.session","name":"session","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SessionRenamed","modifiers":[],"signatures":[{"params":[],"returns":"SessionId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionRenamed.session","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionRenamed.session","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionrenamed-session"},{"id":"io.github.libtmux.control.Notification.Notification.SessionRenamed.name","name":"name","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SessionRenamed","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionRenamed.name","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionRenamed.name","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionrenamed-name"},{"id":"io.github.libtmux.control.Notification.Notification.SessionsChanged","name":"SessionsChanged","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record SessionsChanged() implements Notification","params":[]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %sessions-changed}: a session was created or destroyed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":52,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionsChanged","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionsChanged","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionschanged"},{"id":"io.github.libtmux.control.Notification.Notification.SessionWindowChanged","name":"SessionWindowChanged","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record SessionWindowChanged(SessionId session, WindowId window) implements Notification","params":[{"name":"session","type":"SessionId"},{"name":"window","type":"WindowId"}]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %session-window-changed}: a session's current window changed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":55,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionWindowChanged","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionWindowChanged","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionwindowchanged"},{"id":"io.github.libtmux.control.Notification.Notification.SessionWindowChanged.session","name":"session","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SessionWindowChanged","modifiers":[],"signatures":[{"params":[],"returns":"SessionId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionWindowChanged.session","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionWindowChanged.session","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionwindowchanged-session"},{"id":"io.github.libtmux.control.Notification.Notification.SessionWindowChanged.window","name":"window","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SessionWindowChanged","modifiers":[],"signatures":[{"params":[],"returns":"WindowId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SessionWindowChanged.window","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SessionWindowChanged.window","product":"core","slug":"io-github-libtmux-control-notification-notification-sessionwindowchanged-window"},{"id":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged","name":"ClientSessionChanged","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record ClientSessionChanged(String client, SessionId session, String name) implements Notification","params":[{"name":"client","type":"String"},{"name":"session","type":"SessionId"},{"name":"name","type":"String"}]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %client-session-changed}: another client is now attached to this session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":58,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.ClientSessionChanged","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged","product":"core","slug":"io-github-libtmux-control-notification-notification-clientsessionchanged"},{"id":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged.client","name":"client","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.ClientSessionChanged.client","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged.client","product":"core","slug":"io-github-libtmux-control-notification-notification-clientsessionchanged-client"},{"id":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged.session","name":"session","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged","modifiers":[],"signatures":[{"params":[],"returns":"SessionId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.ClientSessionChanged.session","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged.session","product":"core","slug":"io-github-libtmux-control-notification-notification-clientsessionchanged-session"},{"id":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged.name","name":"name","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.ClientSessionChanged.name","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.ClientSessionChanged.name","product":"core","slug":"io-github-libtmux-control-notification-notification-clientsessionchanged-name"},{"id":"io.github.libtmux.control.Notification.Notification.ClientDetached","name":"ClientDetached","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record ClientDetached(String client) implements Notification","params":[{"name":"client","type":"String"}]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %client-detached}: a client detached."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":61,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.ClientDetached","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.ClientDetached","product":"core","slug":"io-github-libtmux-control-notification-notification-clientdetached"},{"id":"io.github.libtmux.control.Notification.Notification.ClientDetached.client","name":"client","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.ClientDetached","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.ClientDetached.client","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.ClientDetached.client","product":"core","slug":"io-github-libtmux-control-notification-notification-clientdetached-client"},{"id":"io.github.libtmux.control.Notification.Notification.PaneModeChanged","name":"PaneModeChanged","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record PaneModeChanged(PaneId pane) implements Notification","params":[{"name":"pane","type":"PaneId"}]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %pane-mode-changed}: a pane entered or left a mode."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.PaneModeChanged","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.PaneModeChanged","product":"core","slug":"io-github-libtmux-control-notification-notification-panemodechanged"},{"id":"io.github.libtmux.control.Notification.Notification.PaneModeChanged.pane","name":"pane","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.PaneModeChanged","modifiers":[],"signatures":[{"params":[],"returns":"PaneId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.PaneModeChanged.pane","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.PaneModeChanged.pane","product":"core","slug":"io-github-libtmux-control-notification-notification-panemodechanged-pane"},{"id":"io.github.libtmux.control.Notification.Notification.PasteBufferChanged","name":"PasteBufferChanged","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record PasteBufferChanged(String buffer) implements Notification","params":[{"name":"buffer","type":"String"}]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %paste-buffer-changed}: a paste buffer was created or changed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":67,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.PasteBufferChanged","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.PasteBufferChanged","product":"core","slug":"io-github-libtmux-control-notification-notification-pastebufferchanged"},{"id":"io.github.libtmux.control.Notification.Notification.PasteBufferChanged.buffer","name":"buffer","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.PasteBufferChanged","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.PasteBufferChanged.buffer","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.PasteBufferChanged.buffer","product":"core","slug":"io-github-libtmux-control-notification-notification-pastebufferchanged-buffer"},{"id":"io.github.libtmux.control.Notification.Notification.PasteBufferDeleted","name":"PasteBufferDeleted","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record PasteBufferDeleted(String buffer) implements Notification","params":[{"name":"buffer","type":"String"}]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %paste-buffer-deleted}: a paste buffer was deleted."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":70,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.PasteBufferDeleted","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.PasteBufferDeleted","product":"core","slug":"io-github-libtmux-control-notification-notification-pastebufferdeleted"},{"id":"io.github.libtmux.control.Notification.Notification.PasteBufferDeleted.buffer","name":"buffer","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.PasteBufferDeleted","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.PasteBufferDeleted.buffer","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.PasteBufferDeleted.buffer","product":"core","slug":"io-github-libtmux-control-notification-notification-pastebufferdeleted-buffer"},{"id":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged","name":"SubscriptionChanged","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record SubscriptionChanged(\n String name, String value, Optional session, Optional window, Optional pane)\n implements Notification","params":[{"name":"name","type":"String","doc":"what the subscription was registered under"},{"name":"value","type":"String","doc":"what the format expanded to"},{"name":"session","type":"Optional","doc":"the session it is about, when tmux named one"},{"name":"window","type":"Optional","doc":"the window, when tmux named one"},{"name":"pane","type":"Optional","doc":"the pane, when tmux named one"}]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %subscription-changed}: a watched format has a new value."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":81,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SubscriptionChanged","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged","product":"core","slug":"io-github-libtmux-control-notification-notification-subscriptionchanged"},{"id":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.name","name":"name","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"what the subscription was registered under"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SubscriptionChanged.name","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.name","product":"core","slug":"io-github-libtmux-control-notification-notification-subscriptionchanged-name"},{"id":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.value","name":"value","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"what the format expanded to"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SubscriptionChanged.value","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.value","product":"core","slug":"io-github-libtmux-control-notification-notification-subscriptionchanged-value"},{"id":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.session","name":"session","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged","modifiers":[],"signatures":[{"params":[],"returns":"Optional"}],"doc":{"summary":"the session it is about, when tmux named one"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SubscriptionChanged.session","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.session","product":"core","slug":"io-github-libtmux-control-notification-notification-subscriptionchanged-session"},{"id":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.window","name":"window","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged","modifiers":[],"signatures":[{"params":[],"returns":"Optional"}],"doc":{"summary":"the window, when tmux named one"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SubscriptionChanged.window","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.window","product":"core","slug":"io-github-libtmux-control-notification-notification-subscriptionchanged-window"},{"id":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.pane","name":"pane","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged","modifiers":[],"signatures":[{"params":[],"returns":"Optional"}],"doc":{"summary":"the pane, when tmux named one"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.SubscriptionChanged.pane","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.SubscriptionChanged.pane","product":"core","slug":"io-github-libtmux-control-notification-notification-subscriptionchanged-pane"},{"id":"io.github.libtmux.control.Notification.Notification.Pause","name":"Pause","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record Pause(PaneId pane) implements Notification","params":[{"name":"pane","type":"PaneId"}]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %pause}: tmux stopped sending a pane's output to this client, which turned flow control on with {@code refresh-client -f pause-after=N} and fell N seconds behind. {@code refresh-client -A '%1:continue'} resumes it. tmux 3.2 and later."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":90,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Pause","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Pause","product":"core","slug":"io-github-libtmux-control-notification-notification-pause"},{"id":"io.github.libtmux.control.Notification.Notification.Pause.pane","name":"pane","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.Pause","modifiers":[],"signatures":[{"params":[],"returns":"PaneId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Pause.pane","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Pause.pane","product":"core","slug":"io-github-libtmux-control-notification-notification-pause-pane"},{"id":"io.github.libtmux.control.Notification.Notification.Continue","name":"Continue","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record Continue(PaneId pane) implements Notification","params":[{"name":"pane","type":"PaneId"}]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %continue}: a paused pane's output flows to this client again. tmux 3.2 and later."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":93,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Continue","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Continue","product":"core","slug":"io-github-libtmux-control-notification-notification-continue"},{"id":"io.github.libtmux.control.Notification.Notification.Continue.pane","name":"pane","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.Continue","modifiers":[],"signatures":[{"params":[],"returns":"PaneId"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Continue.pane","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Continue.pane","product":"core","slug":"io-github-libtmux-control-notification-notification-continue-pane"},{"id":"io.github.libtmux.control.Notification.Notification.Message","name":"Message","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record Message(String text) implements Notification","params":[{"name":"text","type":"String"}]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %message}: text another client showed on this one with {@code display-message -c}. tmux 3.4 and later."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":96,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Message","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Message","product":"core","slug":"io-github-libtmux-control-notification-notification-message"},{"id":"io.github.libtmux.control.Notification.Notification.Message.text","name":"text","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.Message","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Message.text","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Message.text","product":"core","slug":"io-github-libtmux-control-notification-notification-message-text"},{"id":"io.github.libtmux.control.Notification.Notification.ConfigError","name":"ConfigError","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record ConfigError(String cause) implements Notification","params":[{"name":"cause","type":"String"}]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %config-error}: a configuration file tmux loaded for this client had an error. tmux 3.4 and later."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":99,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.ConfigError","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.ConfigError","product":"core","slug":"io-github-libtmux-control-notification-notification-configerror"},{"id":"io.github.libtmux.control.Notification.Notification.ConfigError.cause","name":"cause","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.ConfigError","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.ConfigError.cause","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.ConfigError.cause","product":"core","slug":"io-github-libtmux-control-notification-notification-configerror-cause"},{"id":"io.github.libtmux.control.Notification.Notification.Exit","name":"Exit","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record Exit(Optional reason) implements Notification","params":[{"name":"reason","type":"Optional"}]}],"typeScopeBoundary":true,"doc":{"summary":"{@code %exit}: the client is exiting, with tmux's reason when it gave one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":102,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Exit","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Exit","product":"core","slug":"io-github-libtmux-control-notification-notification-exit"},{"id":"io.github.libtmux.control.Notification.Notification.Exit.reason","name":"reason","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.Exit","modifiers":[],"signatures":[{"params":[],"returns":"Optional"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Exit.reason","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Exit.reason","product":"core","slug":"io-github-libtmux-control-notification-notification-exit-reason"},{"id":"io.github.libtmux.control.Notification.Notification.Unknown","name":"Unknown","kind":"class","modifiers":[],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"record Unknown(String kind) implements Notification","params":[{"name":"kind","type":"String"}]}],"typeScopeBoundary":true,"doc":{"summary":"A notification this library does not model; {@link ControlEvent} still carries all of it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":105,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Unknown","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Unknown","product":"core","slug":"io-github-libtmux-control-notification-notification-unknown"},{"id":"io.github.libtmux.control.Notification.Notification.Unknown.kind","name":"kind","kind":"method","parent":"io.github.libtmux.control.Notification.Notification.Unknown","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.Unknown.kind","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.Unknown.kind","product":"core","slug":"io-github-libtmux-control-notification-notification-unknown-kind"},{"id":"io.github.libtmux.control.Notification.Notification.read","name":"read","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.control.Notification.Notification","signatures":[{"raw":"static Notification read(String kind, String rest, Optional value)","params":[{"name":"kind","type":"String","doc":"the name without its {@code %}"},{"name":"rest","type":"String","doc":"what followed the name, as tmux wrote it, without any {@code \" : \"} value"},{"name":"value","type":"Optional","doc":"what followed {@code \" : \"}, which only a subscription carries"}],"returns":"Notification","typeScopeBoundary":true}],"doc":{"summary":"Reads one notification from its kind and the text after it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/Notification.java","line":114,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.Notification.read","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.Notification.Notification.read","product":"core","slug":"io-github-libtmux-control-notification-notification-read"},{"id":"io.github.libtmux.control.PaneOutput.PaneOutput","name":"PaneOutput","kind":"class","modifiers":[],"signatures":[{"raw":"public record PaneOutput(PaneId pane, String data, ByteBuffer bytes)","params":[{"name":"pane","type":"PaneId","doc":"the pane that produced it"},{"name":"data","type":"String","doc":"this piece as text"},{"name":"bytes","type":"ByteBuffer","doc":"this piece exactly, read-only"}]}],"typeScopeBoundary":false,"doc":{"summary":"Terminal output tmux pushed without being asked.","body":"tmux cuts a pane's output into pieces by byte count, not by character. {@code bytes} is\nexactly what one piece carried, so a pane's pieces concatenate to what it wrote. {@code data} is\nthe same output as text, decoded per pane: a character cut between two pieces arrives whole with\nthe later one, and a byte that is not UTF-8 is written {@code \\xHH}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/PaneOutput.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.PaneOutput","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.PaneOutput.PaneOutput","product":"core","slug":"io-github-libtmux-control-paneoutput-paneoutput"},{"id":"io.github.libtmux.control.PaneOutput.PaneOutput.PaneOutput","name":"PaneOutput","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.PaneOutput.PaneOutput","signatures":[{"raw":"public PaneOutput(PaneId pane, String data)","params":[{"name":"pane","type":"PaneId"},{"name":"data","type":"String"}],"typeScopeBoundary":false}],"doc":{"summary":"Output whose bytes are {@code data} in UTF-8."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/PaneOutput.java","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.PaneOutput.PaneOutput","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.PaneOutput.PaneOutput.PaneOutput","product":"core","slug":"io-github-libtmux-control-paneoutput-paneoutput-paneoutput"},{"id":"io.github.libtmux.control.PaneOutput.PaneOutput.bytes","name":"bytes","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.PaneOutput.PaneOutput","signatures":[{"raw":"@Override\n public ByteBuffer bytes()","params":[],"returns":"ByteBuffer","typeScopeBoundary":false}],"doc":{"summary":"This piece's bytes, read-only, positioned at the first."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/PaneOutput.java","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.PaneOutput.bytes","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.PaneOutput.PaneOutput.bytes","product":"core","slug":"io-github-libtmux-control-paneoutput-paneoutput-bytes"},{"id":"io.github.libtmux.control.PaneOutput.PaneOutput.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.control.PaneOutput.PaneOutput","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"Identifies the pane only: the data is terminal content."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/PaneOutput.java","line":44,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.PaneOutput.toString","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.PaneOutput.PaneOutput.toString","product":"core","slug":"io-github-libtmux-control-paneoutput-paneoutput-tostring"},{"id":"io.github.libtmux.control.PaneOutput.PaneOutput.pane","name":"pane","kind":"method","parent":"io.github.libtmux.control.PaneOutput.PaneOutput","modifiers":[],"signatures":[{"params":[],"returns":"PaneId"}],"doc":{"summary":"the pane that produced it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/PaneOutput.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.PaneOutput.pane","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.PaneOutput.PaneOutput.pane","product":"core","slug":"io-github-libtmux-control-paneoutput-paneoutput-pane"},{"id":"io.github.libtmux.control.PaneOutput.PaneOutput.data","name":"data","kind":"method","parent":"io.github.libtmux.control.PaneOutput.PaneOutput","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"this piece as text"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/control/PaneOutput.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.control.PaneOutput.data","namespace":"io.github.libtmux.control","publicId":"io.github.libtmux.control.PaneOutput.PaneOutput.data","product":"core","slug":"io-github-libtmux-control-paneoutput-paneoutput-data"},{"id":"io.github.libtmux.Dimensions.Dimensions","name":"Dimensions","kind":"class","modifiers":[],"signatures":[{"raw":"public record Dimensions(int width, int height)","params":[{"name":"width","type":"int","doc":"columns"},{"name":"height","type":"int","doc":"rows"}]}],"typeScopeBoundary":false,"doc":{"summary":"How big something is, in terminal cells.","body":"A pair rather than two loose numbers, because width and height are only meaningful together and\na call site that takes them separately can transpose them without the compiler noticing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Dimensions.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Dimensions","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Dimensions.Dimensions","product":"core","slug":"io-github-libtmux-dimensions-dimensions"},{"id":"io.github.libtmux.Dimensions.Dimensions.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.Dimensions.Dimensions","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Dimensions.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Dimensions.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Dimensions.Dimensions.toString","product":"core","slug":"io-github-libtmux-dimensions-dimensions-tostring"},{"id":"io.github.libtmux.Dimensions.Dimensions.width","name":"width","kind":"method","parent":"io.github.libtmux.Dimensions.Dimensions","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"columns"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Dimensions.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Dimensions.width","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Dimensions.Dimensions.width","product":"core","slug":"io-github-libtmux-dimensions-dimensions-width"},{"id":"io.github.libtmux.Dimensions.Dimensions.height","name":"height","kind":"method","parent":"io.github.libtmux.Dimensions.Dimensions","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"rows"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Dimensions.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Dimensions.height","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Dimensions.Dimensions.height","product":"core","slug":"io-github-libtmux-dimensions-dimensions-height"},{"id":"io.github.libtmux.Direction.Direction","name":"Direction","kind":"enum","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Which way to move or grow something.","body":"An enum rather than tmux's {@code -U -D -L -R} flags, so a call site says which way it means\nand a wrong direction cannot be spelled at all."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Direction.java","line":9,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Direction","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Direction.Direction","product":"core","slug":"io-github-libtmux-direction-direction"},{"id":"io.github.libtmux.Direction.Direction.UP","name":"UP","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Direction.Direction","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/Direction.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Direction.UP","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Direction.Direction.UP","product":"core","slug":"io-github-libtmux-direction-direction-up"},{"id":"io.github.libtmux.Direction.Direction.DOWN","name":"DOWN","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Direction.Direction","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/Direction.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Direction.DOWN","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Direction.Direction.DOWN","product":"core","slug":"io-github-libtmux-direction-direction-down"},{"id":"io.github.libtmux.Direction.Direction.LEFT","name":"LEFT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Direction.Direction","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/Direction.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Direction.LEFT","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Direction.Direction.LEFT","product":"core","slug":"io-github-libtmux-direction-direction-left"},{"id":"io.github.libtmux.Direction.Direction.RIGHT","name":"RIGHT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Direction.Direction","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/Direction.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Direction.RIGHT","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Direction.Direction.RIGHT","product":"core","slug":"io-github-libtmux-direction-direction-right"},{"id":"io.github.libtmux.Direction.Direction.Direction","name":"Direction","kind":"method","modifiers":[],"parent":"io.github.libtmux.Direction.Direction","signatures":[{"raw":"Direction(String flag)","params":[{"name":"flag","type":"String"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Direction.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Direction.Direction","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Direction.Direction.Direction","product":"core","slug":"io-github-libtmux-direction-direction-direction"},{"id":"io.github.libtmux.Direction.Direction.flag","name":"flag","kind":"method","modifiers":[],"parent":"io.github.libtmux.Direction.Direction","signatures":[{"raw":"String flag()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The tmux flag that selects this direction."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Direction.java","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Direction.flag","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Direction.Direction.flag","product":"core","slug":"io-github-libtmux-direction-direction-flag"},{"id":"io.github.libtmux.Environment.Environment","name":"Environment","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The environment tmux gives to processes it starts, at one scope.","body":"tmux keeps one environment per server and one per session, and hands the result to every\nprocess it spawns afterwards. That is what this is for: a pane opened later sees what is set here,\nso it is how a program refreshes a value that goes stale in a long-lived session — {@code\nSSH_AUTH_SOCK} after reconnecting, a token, a display.\n\nA scope is chosen when the view is obtained rather than passed to every call, as {@link\nOptions} does, so a caller cannot read one scope and write another. There are only the two scopes,\nbecause tmux has only those two.\n\nA name is in one of three states, and they are not the same question. It can be *set* to\na value, which {@link #get} answers. It can be *removed*, which is tmux's way of saying a\nnew process should not inherit it even though the server's own environment has it — {@link\n#isRemoved} answers that, and {@link #get} is empty for it. Or it can simply be absent, which is\nboth of those empty."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment","product":"core","slug":"io-github-libtmux-environment-environment"},{"id":"io.github.libtmux.Environment.Environment.global","name":"global","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"raw":"static Environment global(Server server)","params":[{"name":"server","type":"Server"}],"returns":"Environment","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":69,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.global","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.global","product":"core","slug":"io-github-libtmux-environment-environment-global"},{"id":"io.github.libtmux.Environment.Environment.session","name":"session","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"raw":"static Environment session(Server server, ServerSnapshot snapshot, SessionId session)","params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"session","type":"SessionId"}],"returns":"Environment","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":73,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.session","product":"core","slug":"io-github-libtmux-environment-environment-session"},{"id":"io.github.libtmux.Environment.Environment.get","name":"get","kind":"method","modifiers":[],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"raw":"@Operation(Kind.READ)\n public Optional get(String name)","params":[{"name":"name","type":"String"}],"returns":"Optional","typeScopeBoundary":false,"raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the read otherwise fails"}]}],"doc":{"summary":"The value set for this name, or empty when it is removed or absent."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":83,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.get","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.get","product":"core","slug":"io-github-libtmux-environment-environment-get"},{"id":"io.github.libtmux.Environment.Environment.isRemoved","name":"isRemoved","kind":"method","modifiers":[],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"raw":"@Operation(Kind.READ)\n public boolean isRemoved(String name)","params":[{"name":"name","type":"String"}],"returns":"boolean","typeScopeBoundary":false,"raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the read otherwise fails"}]}],"doc":{"summary":"Whether new processes are told not to inherit this name."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":94,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.isRemoved","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.isRemoved","product":"core","slug":"io-github-libtmux-environment-environment-isremoved"},{"id":"io.github.libtmux.Environment.Environment.all","name":"all","kind":"method","modifiers":[],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public Map all()","params":[],"returns":"Map","typeScopeBoundary":false}],"doc":{"summary":"Every name set at this scope, in tmux's order. Removed names are not values, so not here."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":100,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.all","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.all","product":"core","slug":"io-github-libtmux-environment-environment-all"},{"id":"io.github.libtmux.Environment.Environment.effective","name":"effective","kind":"method","modifiers":[],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public Map effective()","params":[],"returns":"Map","typeScopeBoundary":false,"raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if a read otherwise fails"}]}],"doc":{"summary":"What a process started from this scope is actually handed, both scopes taken together.","body":"{@link #all} answers for one scope, which is what a caller writing to it needs and not what\na pane opened later will see: tmux gives a new process the server's environment with the\nsession's laid over it, minus whatever the session marked as not to be inherited. At the\nserver scope the two are the same thing.\n\nThe counterpart to {@link Options#effective()}, and named after it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":123,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.effective","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.effective","product":"core","slug":"io-github-libtmux-environment-environment-effective"},{"id":"io.github.libtmux.Environment.Environment.removed","name":"removed","kind":"method","modifiers":[],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public Set removed()","params":[],"returns":"Set","typeScopeBoundary":false}],"doc":{"summary":"Every name this scope tells a new process not to inherit."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":136,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.removed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.removed","product":"core","slug":"io-github-libtmux-environment-environment-removed"},{"id":"io.github.libtmux.Environment.Environment.set","name":"set","kind":"method","modifiers":[],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void set(String name, String value)","params":[{"name":"name","type":"String"},{"name":"value","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Sets a name to a literal value.","body":"The value is not expanded: a {@code #{...}} in it arrives as those characters. {@link\n#setExpanded} is how to ask for the other thing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":154,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.set","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.set","product":"core","slug":"io-github-libtmux-environment-environment-set"},{"id":"io.github.libtmux.Environment.Environment.setExpanded","name":"setExpanded","kind":"method","modifiers":[],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void setExpanded(String name, String format)","params":[{"name":"name","type":"String"},{"name":"format","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Sets a name to what a tmux format expands to now."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":160,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.setExpanded","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.setExpanded","product":"core","slug":"io-github-libtmux-environment-environment-setexpanded"},{"id":"io.github.libtmux.Environment.Environment.unset","name":"unset","kind":"method","modifiers":[],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void unset(String name)","params":[{"name":"name","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Removes the name from this scope, so it is neither set nor marked."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":166,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.unset","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.unset","product":"core","slug":"io-github-libtmux-environment-environment-unset"},{"id":"io.github.libtmux.Environment.Environment.remove","name":"remove","kind":"method","modifiers":[],"parent":"io.github.libtmux.Environment.Environment","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void remove(String name)","params":[{"name":"name","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Tells processes started after this not to inherit the name.","body":"Different from {@link #unset}: the name is remembered, as removed, and tmux subtracts it\nfrom what a new process is given rather than simply not adding it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Environment.java","line":177,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Environment.remove","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Environment.Environment.remove","product":"core","slug":"io-github-libtmux-environment-environment-remove"},{"id":"io.github.libtmux.exception.CardinalityException.CardinalityException","name":"CardinalityException","kind":"class","modifiers":["abstract"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"A lookup that required exactly one match, or at most one, did not get it.","body":"Loosen or tighten the filter, or handle the case explicitly."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/CardinalityException.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.CardinalityException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.CardinalityException.CardinalityException","product":"core","slug":"io-github-libtmux-exception-cardinalityexception-cardinalityexception"},{"id":"io.github.libtmux.exception.CardinalityException.CardinalityException.CardinalityException","name":"CardinalityException","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.CardinalityException.CardinalityException","signatures":[{"raw":"CardinalityException(String message)","params":[{"name":"message","type":"String"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/CardinalityException.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.CardinalityException.CardinalityException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.CardinalityException.CardinalityException.CardinalityException","product":"core","slug":"io-github-libtmux-exception-cardinalityexception-cardinalityexception-cardinalityexception"},{"id":"io.github.libtmux.exception.CardinalityException.CardinalityException.NoMatch","name":"NoMatch","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.exception.CardinalityException.CardinalityException","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Nothing matched where the caller required something."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/CardinalityException.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.CardinalityException.NoMatch","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.CardinalityException.CardinalityException.NoMatch","product":"core","slug":"io-github-libtmux-exception-cardinalityexception-cardinalityexception-nomatch"},{"id":"io.github.libtmux.exception.CardinalityException.CardinalityException.NoMatch.NoMatch","name":"NoMatch","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.CardinalityException.CardinalityException.NoMatch","signatures":[{"raw":"public NoMatch(String message)","params":[{"name":"message","type":"String"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/CardinalityException.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.CardinalityException.NoMatch.NoMatch","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.CardinalityException.CardinalityException.NoMatch.NoMatch","product":"core","slug":"io-github-libtmux-exception-cardinalityexception-cardinalityexception-nomatch-nomatch"},{"id":"io.github.libtmux.exception.CardinalityException.CardinalityException.MultipleMatches","name":"MultipleMatches","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.exception.CardinalityException.CardinalityException","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"More than one thing matched where the caller required at most one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/CardinalityException.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.CardinalityException.MultipleMatches","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.CardinalityException.CardinalityException.MultipleMatches","product":"core","slug":"io-github-libtmux-exception-cardinalityexception-cardinalityexception-multiplematches"},{"id":"io.github.libtmux.exception.CardinalityException.CardinalityException.MultipleMatches.MultipleMatches","name":"MultipleMatches","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.CardinalityException.CardinalityException.MultipleMatches","signatures":[{"raw":"public MultipleMatches(String message, int atLeast)","params":[{"name":"message","type":"String"},{"name":"atLeast","type":"int","doc":"how many matched, at least; never less than two"}],"typeScopeBoundary":false}],"doc":{"summary":""},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/CardinalityException.java","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.CardinalityException.MultipleMatches.MultipleMatches","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.CardinalityException.CardinalityException.MultipleMatches.MultipleMatches","product":"core","slug":"io-github-libtmux-exception-cardinalityexception-cardinalityexception-multiplematches-multiplematches"},{"id":"io.github.libtmux.exception.CardinalityException.CardinalityException.MultipleMatches.atLeast","name":"atLeast","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.CardinalityException.CardinalityException.MultipleMatches","signatures":[{"raw":"public int atLeast()","params":[],"returns":"int","typeScopeBoundary":false}],"doc":{"summary":"How many matched, at least.","body":"Exact when the matches came from a capture this library holds, as a handle lookup's do.\n{@link io.github.libtmux.query.Selections} stops at the second match, since its source may be\nlazy or unbounded, so there it is two."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/CardinalityException.java","line":48,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.CardinalityException.MultipleMatches.atLeast","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.CardinalityException.CardinalityException.MultipleMatches.atLeast","product":"core","slug":"io-github-libtmux-exception-cardinalityexception-cardinalityexception-multiplematches-atleast"},{"id":"io.github.libtmux.exception.CommandRejectedException.CommandRejectedException","name":"CommandRejectedException","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"tmux ran a command to completion and refused it.","body":"The request reached a live server and tmux answered no: a duplicate session name, a target it\ncannot find, an option it does not know. Resending the same command gets the same answer, so read\n{@link #errorLines()} and change the request."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/CommandRejectedException.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.CommandRejectedException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.CommandRejectedException.CommandRejectedException","product":"core","slug":"io-github-libtmux-exception-commandrejectedexception-commandrejectedexception"},{"id":"io.github.libtmux.exception.CommandRejectedException.CommandRejectedException.CommandRejectedException","name":"CommandRejectedException","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.exception.CommandRejectedException.CommandRejectedException","signatures":[{"raw":"public CommandRejectedException(String message)","params":[{"name":"message","type":"String"}],"typeScopeBoundary":false},{"raw":"public CommandRejectedException(String message, String command, int exitCode, List errorLines)","params":[{"name":"message","type":"String"},{"name":"command","type":"String"},{"name":"exitCode","type":"int"},{"name":"errorLines","type":"List"}],"typeScopeBoundary":false}],"doc":{"summary":"A refusal of {@code command}, with tmux's exit status and the lines it printed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/CommandRejectedException.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.CommandRejectedException.CommandRejectedException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.CommandRejectedException.CommandRejectedException.CommandRejectedException","product":"core","slug":"io-github-libtmux-exception-commandrejectedexception-commandrejectedexception-commandrejectedexception"},{"id":"io.github.libtmux.exception.ControlEndedException.ControlEndedException","name":"ControlEndedException","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The control client ended, and anything reading from it will not resume.","body":"Attach again with {@link io.github.libtmux.Server#control} and read a snapshot: the events this\nclient did not deliver are not replayed, because tmux keeps no history of them. {@link\n#standardError()} is what the tmux process wrote to its error stream, bounded, and empty when it\nwrote nothing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/ControlEndedException.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.ControlEndedException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.ControlEndedException.ControlEndedException","product":"core","slug":"io-github-libtmux-exception-controlendedexception-controlendedexception"},{"id":"io.github.libtmux.exception.ControlEndedException.ControlEndedException.ControlEndedException","name":"ControlEndedException","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.ControlEndedException.ControlEndedException","signatures":[{"raw":"public ControlEndedException(String standardError, boolean standardErrorTruncated, @Nullable Throwable cause)","params":[{"name":"standardError","type":"String"},{"name":"standardErrorTruncated","type":"boolean"},{"name":"cause","type":"Throwable"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/ControlEndedException.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.ControlEndedException.ControlEndedException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.ControlEndedException.ControlEndedException.ControlEndedException","product":"core","slug":"io-github-libtmux-exception-controlendedexception-controlendedexception-controlendedexception"},{"id":"io.github.libtmux.exception.ControlEndedException.ControlEndedException.standardError","name":"standardError","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.ControlEndedException.ControlEndedException","signatures":[{"raw":"public String standardError()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The error text captured before the process ended, possibly truncated."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/ControlEndedException.java","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.ControlEndedException.standardError","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.ControlEndedException.ControlEndedException.standardError","product":"core","slug":"io-github-libtmux-exception-controlendedexception-controlendedexception-standarderror"},{"id":"io.github.libtmux.exception.ControlEndedException.ControlEndedException.standardErrorTruncated","name":"standardErrorTruncated","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.ControlEndedException.ControlEndedException","signatures":[{"raw":"public boolean standardErrorTruncated()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether the error stream continued past the captured bound."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/ControlEndedException.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.ControlEndedException.standardErrorTruncated","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.ControlEndedException.ControlEndedException.standardErrorTruncated","product":"core","slug":"io-github-libtmux-exception-controlendedexception-controlendedexception-standarderrortruncated"},{"id":"io.github.libtmux.exception.DispatchException.DispatchException","name":"DispatchException","kind":"class","modifiers":["abstract"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The request did not complete, with how certain it is that tmux applied it.","body":"\"tmux never started\" and \"tmux timed out halfway\" call for opposite recovery, so the certainty\ntravels with the failure. {@link #safeToRetry()} answers the question a caller usually has: whether\nsending the exact same request again can do harm."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/DispatchException.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.DispatchException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.DispatchException.DispatchException","product":"core","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception"},{"id":"io.github.libtmux.exception.DispatchException.DispatchException.DispatchException","name":"DispatchException","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.DispatchException.DispatchException","signatures":[{"raw":"DispatchException(String message, DispatchOutcome outcome, Idempotence idempotence, @Nullable Throwable cause)","params":[{"name":"message","type":"String"},{"name":"outcome","type":"DispatchOutcome"},{"name":"idempotence","type":"Idempotence"},{"name":"cause","type":"Throwable"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/DispatchException.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.DispatchException.DispatchException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.DispatchException.DispatchException.DispatchException","product":"core","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception-dispatchexception"},{"id":"io.github.libtmux.exception.DispatchException.DispatchException.outcome","name":"outcome","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.DispatchException.DispatchException","signatures":[{"raw":"public DispatchOutcome outcome()","params":[],"returns":"DispatchOutcome","typeScopeBoundary":false}],"doc":{"summary":"How certain the transport is that tmux applied the request."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/DispatchException.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.DispatchException.outcome","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.DispatchException.DispatchException.outcome","product":"core","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception-outcome"},{"id":"io.github.libtmux.exception.DispatchException.DispatchException.idempotence","name":"idempotence","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.DispatchException.DispatchException","signatures":[{"raw":"public Idempotence idempotence()","params":[],"returns":"Idempotence","typeScopeBoundary":false}],"doc":{"summary":"Whether every command in the request only reads, so running it twice changes nothing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/DispatchException.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.DispatchException.idempotence","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.DispatchException.DispatchException.idempotence","product":"core","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception-idempotence"},{"id":"io.github.libtmux.exception.DispatchException.DispatchException.safeToRetry","name":"safeToRetry","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.DispatchException.DispatchException","signatures":[{"raw":"public boolean safeToRetry()","params":[],"returns":"boolean","typeScopeBoundary":false,"returnsDoc":"{@link DispatchOutcome#canRetryVerbatim} for this failure's outcome and idempotence"}],"doc":{"summary":"Whether sending the exact same request again cannot apply it twice."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/DispatchException.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.DispatchException.safeToRetry","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.DispatchException.DispatchException.safeToRetry","product":"core","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception-safetoretry"},{"id":"io.github.libtmux.exception.DispatchException.DispatchException.Failed","name":"Failed","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.exception.DispatchException.DispatchException","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"The transport failed for a reason other than a deadline: tmux could not start, or the channel broke."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/DispatchException.java","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.DispatchException.Failed","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.DispatchException.DispatchException.Failed","product":"core","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception-failed"},{"id":"io.github.libtmux.exception.DispatchException.DispatchException.Failed.Failed","name":"Failed","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.exception.DispatchException.DispatchException.Failed","signatures":[{"raw":"public Failed(String message, DispatchOutcome outcome, @Nullable Throwable cause)","params":[{"name":"message","type":"String"},{"name":"outcome","type":"DispatchOutcome"},{"name":"cause","type":"Throwable"}],"typeScopeBoundary":false},{"raw":"public Failed(String message, DispatchOutcome outcome, Idempotence idempotence, @Nullable Throwable cause)","params":[{"name":"message","type":"String"},{"name":"outcome","type":"DispatchOutcome"},{"name":"idempotence","type":"Idempotence"},{"name":"cause","type":"Throwable"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/DispatchException.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.DispatchException.Failed.Failed","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.DispatchException.DispatchException.Failed.Failed","product":"core","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception-failed-failed"},{"id":"io.github.libtmux.exception.DispatchException.DispatchException.TimedOut","name":"TimedOut","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.exception.DispatchException.DispatchException","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"The deadline passed before the request finished."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/DispatchException.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.DispatchException.TimedOut","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.DispatchException.DispatchException.TimedOut","product":"core","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception-timedout"},{"id":"io.github.libtmux.exception.DispatchException.DispatchException.TimedOut.TimedOut","name":"TimedOut","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.exception.DispatchException.DispatchException.TimedOut","signatures":[{"raw":"public TimedOut(String message, DispatchOutcome outcome, @Nullable Throwable cause)","params":[{"name":"message","type":"String"},{"name":"outcome","type":"DispatchOutcome"},{"name":"cause","type":"Throwable"}],"typeScopeBoundary":false},{"raw":"public TimedOut(String message, DispatchOutcome outcome, Idempotence idempotence, @Nullable Throwable cause)","params":[{"name":"message","type":"String"},{"name":"outcome","type":"DispatchOutcome"},{"name":"idempotence","type":"Idempotence"},{"name":"cause","type":"Throwable"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/DispatchException.java","line":67,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.DispatchException.TimedOut.TimedOut","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.DispatchException.DispatchException.TimedOut.TimedOut","product":"core","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception-timedout-timedout"},{"id":"io.github.libtmux.exception.LibTmuxException.LibTmuxException","name":"LibTmuxException","kind":"class","modifiers":["abstract"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The root of every operational failure this library raises.","body":"Unchecked, because a tmux failure can arise from any call and forcing every caller to declare\nit would say nothing. Sealed, with every branch abstract, so matching on the permitted subtypes is\nexhaustive in Java, Kotlin and Scala alike.\n\nA failure that came from a tmux command carries that command, its exit status when it has one,\nand the error lines tmux printed. Those lines, and the message that quotes them, name what tmux\nnamed — sessions, windows, panes and buffers included."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/LibTmuxException.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.LibTmuxException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.LibTmuxException.LibTmuxException","product":"core","slug":"io-github-libtmux-exception-libtmuxexception-libtmuxexception"},{"id":"io.github.libtmux.exception.LibTmuxException.LibTmuxException.LibTmuxException","name":"LibTmuxException","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.exception.LibTmuxException.LibTmuxException","signatures":[{"raw":"LibTmuxException(String message, @Nullable Throwable cause)","params":[{"name":"message","type":"String"},{"name":"cause","type":"Throwable"}],"typeScopeBoundary":false},{"raw":"LibTmuxException(\n String message,\n @Nullable Throwable cause,\n @Nullable String command,\n int exitCode,\n List errorLines)","params":[{"name":"message","type":"String"},{"name":"cause","type":"Throwable"},{"name":"command","type":"String"},{"name":"exitCode","type":"int"},{"name":"errorLines","type":"List"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/LibTmuxException.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.LibTmuxException.LibTmuxException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.LibTmuxException.LibTmuxException.LibTmuxException","product":"core","slug":"io-github-libtmux-exception-libtmuxexception-libtmuxexception-libtmuxexception"},{"id":"io.github.libtmux.exception.LibTmuxException.LibTmuxException.command","name":"command","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.LibTmuxException.LibTmuxException","signatures":[{"raw":"public Optional command()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The command that failed, when this failure came from one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/LibTmuxException.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.LibTmuxException.command","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.LibTmuxException.LibTmuxException.command","product":"core","slug":"io-github-libtmux-exception-libtmuxexception-libtmuxexception-command"},{"id":"io.github.libtmux.exception.LibTmuxException.LibTmuxException.exitCode","name":"exitCode","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.LibTmuxException.LibTmuxException","signatures":[{"raw":"public OptionalInt exitCode()","params":[],"returns":"OptionalInt","typeScopeBoundary":false}],"doc":{"summary":"The process exit status, when the failure has one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/LibTmuxException.java","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.LibTmuxException.exitCode","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.LibTmuxException.LibTmuxException.exitCode","product":"core","slug":"io-github-libtmux-exception-libtmuxexception-libtmuxexception-exitcode"},{"id":"io.github.libtmux.exception.LibTmuxException.LibTmuxException.errorLines","name":"errorLines","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.LibTmuxException.LibTmuxException","signatures":[{"raw":"@ReadOnly\n public List errorLines()","params":[],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"The error lines tmux printed, in full. Empty when this failure has none."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/LibTmuxException.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.LibTmuxException.errorLines","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.LibTmuxException.LibTmuxException.errorLines","product":"core","slug":"io-github-libtmux-exception-libtmuxexception-libtmuxexception-errorlines"},{"id":"io.github.libtmux.exception.MalformedResponseException.MalformedResponseException","name":"MalformedResponseException","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"tmux answered, and the answer did not have the shape this library asked for.","body":"A listing row with the wrong number of fields, a number that did not parse, an identity that\nwas not one row: this library's own template disagreed with what tmux sent. Check the tmux release\nis inside the supported range, and report it if it is."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/MalformedResponseException.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.MalformedResponseException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.MalformedResponseException.MalformedResponseException","product":"core","slug":"io-github-libtmux-exception-malformedresponseexception-malformedresponseexception"},{"id":"io.github.libtmux.exception.MalformedResponseException.MalformedResponseException.MalformedResponseException","name":"MalformedResponseException","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.exception.MalformedResponseException.MalformedResponseException","signatures":[{"raw":"public MalformedResponseException(String message)","params":[{"name":"message","type":"String"}],"typeScopeBoundary":false},{"raw":"public MalformedResponseException(String message, Throwable cause)","params":[{"name":"message","type":"String"},{"name":"cause","type":"Throwable"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/MalformedResponseException.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.MalformedResponseException.MalformedResponseException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.MalformedResponseException.MalformedResponseException.MalformedResponseException","product":"core","slug":"io-github-libtmux-exception-malformedresponseexception-malformedresponseexception-malformedresponseexception"},{"id":"io.github.libtmux.exception.ServerClosedException.ServerClosedException","name":"ServerClosedException","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"A handle was used after the {@link io.github.libtmux.Server} it belongs to was closed.","body":"Programmer error, so deliberately outside {@link LibTmuxException}'s sealed tree: an exhaustive\nmatch over operational failures should not have to decide about a lifecycle bug. {@link\n#outcome()} says whether tmux may have run the call that raced the close."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/ServerClosedException.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.ServerClosedException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.ServerClosedException.ServerClosedException","product":"core","slug":"io-github-libtmux-exception-serverclosedexception-serverclosedexception"},{"id":"io.github.libtmux.exception.ServerClosedException.ServerClosedException.ServerClosedException","name":"ServerClosedException","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.ServerClosedException.ServerClosedException","signatures":[{"raw":"public ServerClosedException(String message, DispatchOutcome outcome)","params":[{"name":"message","type":"String"},{"name":"outcome","type":"DispatchOutcome"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/ServerClosedException.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.ServerClosedException.ServerClosedException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.ServerClosedException.ServerClosedException.ServerClosedException","product":"core","slug":"io-github-libtmux-exception-serverclosedexception-serverclosedexception-serverclosedexception"},{"id":"io.github.libtmux.exception.ServerClosedException.ServerClosedException.outcome","name":"outcome","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.ServerClosedException.ServerClosedException","signatures":[{"raw":"public DispatchOutcome outcome()","params":[],"returns":"DispatchOutcome","typeScopeBoundary":false}],"doc":{"summary":"{@link DispatchOutcome#NOT_DISPATCHED} when the server was closed before the call reached tmux, {@link DispatchOutcome#UNKNOWN} when a concurrent close ended a tmux already running it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/ServerClosedException.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.ServerClosedException.outcome","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.ServerClosedException.ServerClosedException.outcome","product":"core","slug":"io-github-libtmux-exception-serverclosedexception-serverclosedexception-outcome"},{"id":"io.github.libtmux.exception.ServerUnavailableException.ServerUnavailableException","name":"ServerUnavailableException","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"No tmux daemon answered on this endpoint.","body":"Nothing was there to answer, rather than an answer that could not be trusted. Start a server on\ndemand, or treat the endpoint as down."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/ServerUnavailableException.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.ServerUnavailableException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.ServerUnavailableException.ServerUnavailableException","product":"core","slug":"io-github-libtmux-exception-serverunavailableexception-serverunavailableexception"},{"id":"io.github.libtmux.exception.ServerUnavailableException.ServerUnavailableException.ServerUnavailableException","name":"ServerUnavailableException","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.exception.ServerUnavailableException.ServerUnavailableException","signatures":[{"raw":"public ServerUnavailableException(String message)","params":[{"name":"message","type":"String"}],"typeScopeBoundary":false},{"raw":"public ServerUnavailableException(String message, String command, int exitCode, List errorLines)","params":[{"name":"message","type":"String"},{"name":"command","type":"String"},{"name":"exitCode","type":"int"},{"name":"errorLines","type":"List"}],"typeScopeBoundary":false}],"doc":{"summary":"A daemon found absent by the command that tried to reach it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/ServerUnavailableException.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.ServerUnavailableException.ServerUnavailableException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.ServerUnavailableException.ServerUnavailableException.ServerUnavailableException","product":"core","slug":"io-github-libtmux-exception-serverunavailableexception-serverunavailableexception-serverunavailableexception"},{"id":"io.github.libtmux.exception.TargetGoneException.TargetGoneException","name":"TargetGoneException","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The server answered, and the session, window, pane, buffer or server incarnation a handle addresses is gone.","body":"Re-resolve the handle — run again the lookup or filter that produced it — or stop. An\nunreachable server is a {@link ServerUnavailableException} instead, which calls for something else\nentirely."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/TargetGoneException.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.TargetGoneException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.TargetGoneException.TargetGoneException","product":"core","slug":"io-github-libtmux-exception-targetgoneexception-targetgoneexception"},{"id":"io.github.libtmux.exception.TargetGoneException.TargetGoneException.TargetGoneException","name":"TargetGoneException","kind":"method","modifiers":[],"parent":"io.github.libtmux.exception.TargetGoneException.TargetGoneException","signatures":[{"raw":"public TargetGoneException(String message)","params":[{"name":"message","type":"String"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/TargetGoneException.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.TargetGoneException.TargetGoneException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.TargetGoneException.TargetGoneException.TargetGoneException","product":"core","slug":"io-github-libtmux-exception-targetgoneexception-targetgoneexception-targetgoneexception"},{"id":"io.github.libtmux.exception.UnencodableTextException.UnencodableTextException","name":"UnencodableTextException","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Text this JVM cannot hand to tmux intact, with no route left to send it by.","body":"A child process receives its arguments as bytes, and the JVM encodes them with the platform's\nnative encoding — which is the locale's, decided before {@code main} runs. In a locale that is\nnot UTF-8 that encoding cannot carry most of Unicode, so tmux would receive {@code ?} where a\ncaller wrote {@code é}. The process transport therefore sends such a command over tmux's standard\ninput instead, which this library encodes itself, and this is raised only when that route is\nalready taken — a command that reads standard input — or when the text is in the endpoint, the\nbinary or socket path, which nothing but an argument can carry.\n\nOnly the environment removes the limit: start the JVM with {@code LC_ALL} or {@code LANG}\nnaming a UTF-8 locale. {@code -Dsun.jnu.encoding} and {@code -Dfile.encoding} do not, because the\nnative encoding is read before either is applied.\n\nASCII text is unaffected on every locale, and so is everything tmux sends back: a reply is\ndecoded as the UTF-8 tmux wrote rather than through the platform's encoding."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/UnencodableTextException.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.UnencodableTextException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.UnencodableTextException.UnencodableTextException","product":"core","slug":"io-github-libtmux-exception-unencodabletextexception-unencodabletextexception"},{"id":"io.github.libtmux.exception.UnencodableTextException.UnencodableTextException.UnencodableTextException","name":"UnencodableTextException","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.exception.UnencodableTextException.UnencodableTextException","signatures":[{"raw":"public UnencodableTextException(String message)","params":[{"name":"message","type":"String"}],"typeScopeBoundary":false},{"raw":"public UnencodableTextException(String message, Throwable cause)","params":[{"name":"message","type":"String"},{"name":"cause","type":"Throwable"}],"typeScopeBoundary":false}],"doc":{"summary":"Text refused because of {@code cause}, such as a path the platform cannot represent."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/UnencodableTextException.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.UnencodableTextException.UnencodableTextException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.UnencodableTextException.UnencodableTextException.UnencodableTextException","product":"core","slug":"io-github-libtmux-exception-unencodabletextexception-unencodabletextexception-unencodabletextexception"},{"id":"io.github.libtmux.exception.UnsupportedFeatureException.UnsupportedFeatureException","name":"UnsupportedFeatureException","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The running tmux does not have something the call asked for.","body":"Raised instead of dropping the option. The Python sibling warns and carries on, which returns a\npane that differs from the one described in a way nothing downstream can detect; a caller who\nasked for an empty pane and got a shell has no way to notice before something runs in it. Skip the\nfeature, or require a newer tmux.\n\nThe feature and the versions are in the message and not in accessors: a throwable is\nserializable, so exposing a {@link TmuxVersion} here would mean making that serializable too."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/UnsupportedFeatureException.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.UnsupportedFeatureException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.UnsupportedFeatureException.UnsupportedFeatureException","product":"core","slug":"io-github-libtmux-exception-unsupportedfeatureexception-unsupportedfeatureexception"},{"id":"io.github.libtmux.exception.UnsupportedFeatureException.UnsupportedFeatureException.UnsupportedFeatureException","name":"UnsupportedFeatureException","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.exception.UnsupportedFeatureException.UnsupportedFeatureException","signatures":[{"raw":"public UnsupportedFeatureException(String feature, TmuxVersion required, TmuxVersion running)","params":[{"name":"feature","type":"String"},{"name":"required","type":"TmuxVersion"},{"name":"running","type":"TmuxVersion"}],"typeScopeBoundary":false},{"raw":"public UnsupportedFeatureException(String message)","params":[{"name":"message","type":"String"}],"typeScopeBoundary":false}],"doc":{"summary":"A feature that needs {@code required} or newer, on a server running {@code running}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/exception/UnsupportedFeatureException.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.exception.UnsupportedFeatureException.UnsupportedFeatureException","namespace":"io.github.libtmux.exception","publicId":"io.github.libtmux.exception.UnsupportedFeatureException.UnsupportedFeatureException.UnsupportedFeatureException","product":"core","slug":"io-github-libtmux-exception-unsupportedfeatureexception-unsupportedfeatureexception-unsupportedfeatureexception"},{"id":"io.github.libtmux.format.RowFormat.RowFormat","name":"RowFormat","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"A listing template and the reader for the rows it produces.","body":"tmux returns a listing as plain lines, so what separates one field from the next is whatever\nstring the client put between them — and tmux gives no character a special meaning there. Any\nfixed choice is therefore something a user can put in a window name. A window named with the\nseparator turns an n-field template into n+1 fields and shifts everything after it, so a pane id\narrives where a name belongs, and nothing downstream can tell.\n\nThe separator is generated once per process instead. Colliding with it means naming a window\nwith the exact token this process happened to produce."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.of","name":"of","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.format.RowFormat.RowFormat","signatures":[{"raw":"public static RowFormat of(String... fields)","params":[{"name":"fields","type":"String","variadic":"positional","doc":"tmux format names, without the surrounding {@code #{}}"}],"returns":"RowFormat","typeScopeBoundary":true}],"doc":{"summary":"A format over the given tmux format names, in the order rows will report them."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":45,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.of","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.of","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-of"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.template","name":"template","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat","signatures":[{"raw":"public String template()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The argument to pass to tmux's {@code -F}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.template","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.template","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-template"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.separator","name":"separator","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat","signatures":[{"raw":"public String separator()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The token this process separates fields with."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":58,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.separator","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.separator","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-separator"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.terminator","name":"terminator","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat","signatures":[{"raw":"String terminator()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.terminator","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.terminator","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-terminator"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.size","name":"size","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat","signatures":[{"raw":"public int size()","params":[],"returns":"int","typeScopeBoundary":false}],"doc":{"summary":"How many fields a row must have."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":67,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.size","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.size","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-size"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.Row","name":"Row","kind":"class","modifiers":["readonly"],"parent":"io.github.libtmux.format.RowFormat.RowFormat","signatures":[],"typeScopeBoundary":false,"doc":{"summary":"One row's values, addressed by the field name that asked for them."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":72,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.Row","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.Row","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-row"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.Row.text","name":"text","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat.Row","signatures":[{"raw":"public String text(String field)","params":[{"name":"field","type":"String"}],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The field's value as tmux printed it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":81,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.Row.text","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.Row.text","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-row-text"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.Row.number","name":"number","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat.Row","signatures":[{"raw":"public int number(String field)","params":[{"name":"field","type":"String"}],"returns":"int","typeScopeBoundary":false,"raises":[{"type":"MalformedResponseException","doc":"if tmux did not print one"}]}],"doc":{"summary":"The field as a whole number."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":90,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.Row.number","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.Row.number","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-row-number"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.Row.count","name":"count","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat.Row","signatures":[{"raw":"public long count(String field)","params":[{"name":"field","type":"String"}],"returns":"long","typeScopeBoundary":false,"raises":[{"type":"MalformedResponseException","doc":"if tmux did not print one"}]}],"doc":{"summary":"The field as a whole count."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":104,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.Row.count","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.Row.count","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-row-count"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.Row.flag","name":"flag","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat.Row","signatures":[{"raw":"public boolean flag(String field)","params":[{"name":"field","type":"String"}],"returns":"boolean","typeScopeBoundary":false,"raises":[{"type":"MalformedResponseException","doc":"if tmux printed anything else"}]}],"doc":{"summary":"The field as one of tmux's flags, which it prints as 0 or 1."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":118,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.Row.flag","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.Row.flag","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-row-flag"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.rows","name":"rows","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat","signatures":[{"raw":"@ReadOnly\n public List rows(List lines)","params":[{"name":"lines","type":"List","doc":"the listing as tmux printed it"}],"returns":"List","typeScopeBoundary":false,"raises":[{"type":"MalformedResponseException","doc":"if the listing ends mid-row, or a row does not have exactly the expected number of fields"}]}],"doc":{"summary":"Reads a whole listing back into rows.","body":"tmux ends a row with a newline and frames it no other way, so a listing's lines are not its\nrows: a value carrying a newline arrives as several. A working directory may contain one, and\nanything running in a pane may change into it, so this is caller-reachable rather than\ntheoretical. A row is closed by carrying every separator, not by the line ending."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":147,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.rows","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.rows","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-rows"},{"id":"io.github.libtmux.format.RowFormat.RowFormat.split","name":"split","kind":"method","modifiers":[],"parent":"io.github.libtmux.format.RowFormat.RowFormat","signatures":[{"raw":"@ReadOnly\n public List split(String row)","params":[{"name":"row","type":"String"}],"returns":"List","typeScopeBoundary":false,"raises":[{"type":"MalformedResponseException","doc":"if the row does not have exactly the expected number of fields, which is the only chance to notice that something shifted"}]}],"doc":{"summary":"Reads one row back into its fields."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/RowFormat.java","line":180,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.RowFormat.split","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.RowFormat.RowFormat.split","product":"core","slug":"io-github-libtmux-format-rowformat-rowformat-split"},{"id":"io.github.libtmux.format.Tokens.Tokens","name":"Tokens","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The token this process marks its own text with.","body":"tmux gives no character a special meaning in a name or in output, so any fixed marker is\nsomething a user can produce. One random token per process makes a collision mean naming a window\nwith the exact value this run generated.\n\nHexadecimal, because the token is spliced into tmux format templates and into regular\nexpressions and must be inert in both."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/Tokens.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.Tokens","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.Tokens.Tokens","product":"core","slug":"io-github-libtmux-format-tokens-tokens"},{"id":"io.github.libtmux.format.Tokens.Tokens.perProcess","name":"perProcess","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.format.Tokens.Tokens","signatures":[{"raw":"public static String perProcess()","params":[],"returns":"String","typeScopeBoundary":true}],"doc":{"summary":"A token generated once per process, shared by everything that needs to mark its own text."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/Tokens.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.Tokens.perProcess","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.Tokens.Tokens.perProcess","product":"core","slug":"io-github-libtmux-format-tokens-tokens-perprocess"},{"id":"io.github.libtmux.format.Tokens.Tokens.generate","name":"generate","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.format.Tokens.Tokens","signatures":[{"raw":"static String generate()","params":[],"returns":"String","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/format/Tokens.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.format.Tokens.generate","namespace":"io.github.libtmux.format","publicId":"io.github.libtmux.format.Tokens.Tokens.generate","product":"core","slug":"io-github-libtmux-format-tokens-tokens-generate"},{"id":"io.github.libtmux.Hooks.Hooks","name":"Hooks","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The tmux hooks at one scope.","body":"A hook binds a tmux command to an event, so tmux runs it without a client asking.\n\nEvery hook is an array: several commands can hang off one event, and tmux runs them in order.\nThat is why a listing answers with a list per event rather than a value — a hook set once is a\nlist of one, not a special case.\n\nEach hook lives at a particular scope, and not every hook lives at every one.\n{@code pane-focus-in} is a window hook, {@code alert-bell} a session hook. Setting one at a scope\nit does not belong to is accepted and then silently discarded, on every supported release — so a\nhook that never fires is worth checking against {@link #all()} before it is worth debugging."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks","product":"core","slug":"io-github-libtmux-hooks-hooks"},{"id":"io.github.libtmux.Hooks.Hooks.global","name":"global","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Hooks.Hooks","signatures":[{"raw":"static Hooks global(Server server)","params":[{"name":"server","type":"Server"}],"returns":"Hooks","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":42,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks.global","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks.global","product":"core","slug":"io-github-libtmux-hooks-hooks-global"},{"id":"io.github.libtmux.Hooks.Hooks.session","name":"session","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Hooks.Hooks","signatures":[{"raw":"static Hooks session(Server server, ServerSnapshot snapshot, SessionId session)","params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"session","type":"SessionId"}],"returns":"Hooks","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks.session","product":"core","slug":"io-github-libtmux-hooks-hooks-session"},{"id":"io.github.libtmux.Hooks.Hooks.window","name":"window","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Hooks.Hooks","signatures":[{"raw":"static Hooks window(Server server, ServerSnapshot snapshot, WindowId window)","params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"window","type":"WindowId"}],"returns":"Hooks","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks.window","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks.window","product":"core","slug":"io-github-libtmux-hooks-hooks-window"},{"id":"io.github.libtmux.Hooks.Hooks.pane","name":"pane","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Hooks.Hooks","signatures":[{"raw":"static Hooks pane(Server server, ServerSnapshot snapshot, PaneId pane)","params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"pane","type":"PaneId"}],"returns":"Hooks","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks.pane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks.pane","product":"core","slug":"io-github-libtmux-hooks-hooks-pane"},{"id":"io.github.libtmux.Hooks.Hooks.set","name":"set","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Hooks.Hooks","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void set(String event, String command)","params":[{"name":"event","type":"String"},{"name":"command","type":"String"}],"returns":"void","typeScopeBoundary":false},{"raw":"@Operation(Kind.MUTATION)\n public void set(String event, List command)","params":[{"name":"event","type":"String"},{"name":"command","type":"List"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Binds a tmux command to an event at this scope, replacing anything already bound to it.","body":"Replacing, not adding: tmux discards the whole array. {@link #append} is how a second\ncommand joins the first."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks.set","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks.set","product":"core","slug":"io-github-libtmux-hooks-hooks-set"},{"id":"io.github.libtmux.Hooks.Hooks.append","name":"append","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Hooks.Hooks","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void append(String event, List command)","params":[{"name":"event","type":"String"},{"name":"command","type":"List"}],"returns":"void","typeScopeBoundary":false},{"raw":"@Operation(Kind.MUTATION)\n public void append(String event, String command)","params":[{"name":"event","type":"String"},{"name":"command","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"As {@link #append(String, String)}, with the command as words."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":82,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks.append","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks.append","product":"core","slug":"io-github-libtmux-hooks-hooks-append"},{"id":"io.github.libtmux.Hooks.Hooks.unset","name":"unset","kind":"method","modifiers":[],"parent":"io.github.libtmux.Hooks.Hooks","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void unset(String event)","params":[{"name":"event","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Removes everything bound to an event at this scope."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":101,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks.unset","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks.unset","product":"core","slug":"io-github-libtmux-hooks-hooks-unset"},{"id":"io.github.libtmux.Hooks.Hooks.run","name":"run","kind":"method","modifiers":[],"parent":"io.github.libtmux.Hooks.Hooks","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void run(String event)","params":[{"name":"event","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Runs what is bound to an event now, without waiting for the event.","body":"tmux spells this {@code set-hook -R}, which reads as setting something. It runs the hook\nand binds nothing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":112,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks.run","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks.run","product":"core","slug":"io-github-libtmux-hooks-hooks-run"},{"id":"io.github.libtmux.Hooks.Hooks.all","name":"all","kind":"method","modifiers":[],"parent":"io.github.libtmux.Hooks.Hooks","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public Map> all()","params":[],"returns":"Map>","typeScopeBoundary":false}],"doc":{"summary":"Every hook at this scope, keyed by event, each with its commands in the order tmux runs them.","body":"tmux prints one line per entry, subscripted — {@code after-new-window[0]}. The subscript is\na position in the list rather than part of the name, so it becomes the ordering here and the\nkey stays the event a caller would look up."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Hooks.java","line":124,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Hooks.all","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Hooks.Hooks.all","product":"core","slug":"io-github-libtmux-hooks-hooks-all"},{"id":"io.github.libtmux.IncarnationFence.IncarnationFence","name":"IncarnationFence","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Which tmux server incarnation a handle or batch may act on: the pid tmux reports, and its start time when known, since a pid alone is reusable — a tmux started on the pid of one just probed, as a container's first processes often are, would otherwise answer as if it were that server.","body":"Every guarded command is sent as tmux's own {@code if-shell -F} test of this condition, so a\nserver that has been replaced under a stale handle is refused before anything runs, rather than\nacting on the wrong incarnation."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/IncarnationFence.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.IncarnationFence","namespace":"io.github.libtmux","publicId":"io.github.libtmux.IncarnationFence.IncarnationFence","product":"core","slug":"io-github-libtmux-incarnationfence-incarnationfence"},{"id":"io.github.libtmux.IncarnationFence.IncarnationFence.IncarnationFence","name":"IncarnationFence","kind":"method","modifiers":[],"parent":"io.github.libtmux.IncarnationFence.IncarnationFence","signatures":[{"raw":"IncarnationFence(Server server, ServerIdentity identity)","params":[{"name":"server","type":"Server"},{"name":"identity","type":"ServerIdentity"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/IncarnationFence.java","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.IncarnationFence.IncarnationFence","namespace":"io.github.libtmux","publicId":"io.github.libtmux.IncarnationFence.IncarnationFence.IncarnationFence","product":"core","slug":"io-github-libtmux-incarnationfence-incarnationfence-incarnationfence"},{"id":"io.github.libtmux.IncarnationFence.IncarnationFence.identity","name":"identity","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.IncarnationFence.IncarnationFence","signatures":[{"raw":"ServerIdentity identity()","params":[],"returns":"ServerIdentity","typeScopeBoundary":false},{"raw":"ServerIdentity identity(ServerSnapshot snapshot)","params":[{"name":"snapshot","type":"ServerSnapshot"}],"returns":"ServerIdentity","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/IncarnationFence.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.IncarnationFence.identity","namespace":"io.github.libtmux","publicId":"io.github.libtmux.IncarnationFence.IncarnationFence.identity","product":"core","slug":"io-github-libtmux-incarnationfence-incarnationfence-identity"},{"id":"io.github.libtmux.IncarnationFence.IncarnationFence.requireSameServer","name":"requireSameServer","kind":"method","modifiers":[],"parent":"io.github.libtmux.IncarnationFence.IncarnationFence","signatures":[{"raw":"void requireSameServer(Server other)","params":[{"name":"other","type":"Server"}],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/IncarnationFence.java","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.IncarnationFence.requireSameServer","namespace":"io.github.libtmux","publicId":"io.github.libtmux.IncarnationFence.IncarnationFence.requireSameServer","product":"core","slug":"io-github-libtmux-incarnationfence-incarnationfence-requiresameserver"},{"id":"io.github.libtmux.IncarnationFence.IncarnationFence.requireSameIncarnation","name":"requireSameIncarnation","kind":"method","modifiers":[],"parent":"io.github.libtmux.IncarnationFence.IncarnationFence","signatures":[{"raw":"void requireSameIncarnation(ServerSnapshot snapshot, Server other, ServerSnapshot otherSnapshot)","params":[{"name":"snapshot","type":"ServerSnapshot"},{"name":"other","type":"Server"},{"name":"otherSnapshot","type":"ServerSnapshot"}],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/IncarnationFence.java","line":48,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.IncarnationFence.requireSameIncarnation","namespace":"io.github.libtmux","publicId":"io.github.libtmux.IncarnationFence.IncarnationFence.requireSameIncarnation","product":"core","slug":"io-github-libtmux-incarnationfence-incarnationfence-requiresameincarnation"},{"id":"io.github.libtmux.IncarnationFence.IncarnationFence.incarnation","name":"incarnation","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.IncarnationFence.IncarnationFence","signatures":[{"raw":"static String incarnation(long pid, OptionalLong startTime)","params":[{"name":"pid","type":"long"},{"name":"startTime","type":"OptionalLong"}],"returns":"String","typeScopeBoundary":true}],"doc":{"summary":"A condition true only on the server a capture named: its pid, and its start time when known."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/IncarnationFence.java","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.IncarnationFence.incarnation","namespace":"io.github.libtmux","publicId":"io.github.libtmux.IncarnationFence.IncarnationFence.incarnation","product":"core","slug":"io-github-libtmux-incarnationfence-incarnationfence-incarnation"},{"id":"io.github.libtmux.IncarnationFence.IncarnationFence.guarded","name":"guarded","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.IncarnationFence.IncarnationFence","signatures":[{"raw":"CommandResult guarded(ServerSnapshot snapshot, String command)","params":[{"name":"snapshot","type":"ServerSnapshot"},{"name":"command","type":"String"}],"returns":"CommandResult","typeScopeBoundary":false},{"raw":"CommandResult guarded(ServerSnapshot snapshot, String command, String input)","params":[{"name":"snapshot","type":"ServerSnapshot"},{"name":"command","type":"String"},{"name":"input","type":"String"}],"returns":"CommandResult","typeScopeBoundary":false},{"raw":"CommandResult guarded(long pid, String condition, String command, String input)","params":[{"name":"pid","type":"long"},{"name":"condition","type":"String"},{"name":"command","type":"String"},{"name":"input","type":"String"}],"returns":"CommandResult","typeScopeBoundary":false}],"doc":{"summary":"Refuses to reach a tmux server that is not the one this handle was made against."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/IncarnationFence.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.IncarnationFence.guarded","namespace":"io.github.libtmux","publicId":"io.github.libtmux.IncarnationFence.IncarnationFence.guarded","product":"core","slug":"io-github-libtmux-incarnationfence-incarnationfence-guarded"},{"id":"io.github.libtmux.IncarnationFence.IncarnationFence.run","name":"run","kind":"method","modifiers":[],"parent":"io.github.libtmux.IncarnationFence.IncarnationFence","signatures":[{"raw":"CommandResult run(ServerSnapshot snapshot, WindowContext expected, List argv)","params":[{"name":"snapshot","type":"ServerSnapshot"},{"name":"expected","type":"WindowContext"},{"name":"argv","type":"List"}],"returns":"CommandResult","typeScopeBoundary":false}],"doc":{"summary":"As {@link #guarded(ServerSnapshot, String, String)}, refused as well once the window has gone."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/IncarnationFence.java","line":87,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.IncarnationFence.run","namespace":"io.github.libtmux","publicId":"io.github.libtmux.IncarnationFence.IncarnationFence.run","product":"core","slug":"io-github-libtmux-incarnationfence-incarnationfence-run"},{"id":"io.github.libtmux.internal.CommandStrings.CommandStrings","name":"CommandStrings","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Encodes a tmux command for each of the two parsers tmux reads commands with.","body":"Every argv this takes is literal: what a caller meant, with nothing escaped for either parser."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/CommandStrings.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.CommandStrings","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.CommandStrings.CommandStrings","product":"core","slug":"io-github-libtmux-internal-commandstrings-commandstrings"},{"id":"io.github.libtmux.internal.CommandStrings.CommandStrings.arguments","name":"arguments","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.internal.CommandStrings.CommandStrings","signatures":[{"raw":"public static List arguments(List> commands)","params":[{"name":"commands","type":"List>"}],"returns":"List","typeScopeBoundary":true}],"doc":{"summary":"Several commands as the flat argv tmux's own argv parser reads.","body":"tmux ends a command at an argument whose last byte is {@code ;}, and keeps the semicolon\ninstead when a backslash precedes it, so an argument ending in one is escaped here and a bare\n{@code ;} separates commands."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/CommandStrings.java","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.CommandStrings.arguments","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.CommandStrings.CommandStrings.arguments","product":"core","slug":"io-github-libtmux-internal-commandstrings-commandstrings-arguments"},{"id":"io.github.libtmux.internal.CommandStrings.CommandStrings.stringify","name":"stringify","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.internal.CommandStrings.CommandStrings","signatures":[{"raw":"public static String stringify(List argv)","params":[{"name":"argv","type":"List"}],"returns":"String","typeScopeBoundary":true}],"doc":{"summary":"One command as the string tmux's command parser reads, which is what {@code if-shell} takes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/CommandStrings.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.CommandStrings.stringify","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.CommandStrings.CommandStrings.stringify","product":"core","slug":"io-github-libtmux-internal-commandstrings-commandstrings-stringify"},{"id":"io.github.libtmux.internal.CommandStrings.CommandStrings.group","name":"group","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.internal.CommandStrings.CommandStrings","signatures":[{"raw":"public static String group(List> commands)","params":[{"name":"commands","type":"List>"}],"returns":"String","typeScopeBoundary":true}],"doc":{"summary":"Several commands as the one string tmux's parser reads as a group.","body":"Each argument is quoted, so a semicolon inside one stays part of it and only the separators\nbetween commands end a command."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/CommandStrings.java","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.CommandStrings.group","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.CommandStrings.CommandStrings.group","product":"core","slug":"io-github-libtmux-internal-commandstrings-commandstrings-group"},{"id":"io.github.libtmux.internal.ErrorText.ErrorText","name":"ErrorText","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"What tmux printed on its error stream, as it appears in a failure's message."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/ErrorText.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.ErrorText","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.ErrorText.ErrorText","product":"core","slug":"io-github-libtmux-internal-errortext-errortext"},{"id":"io.github.libtmux.internal.ErrorText.ErrorText.suffix","name":"suffix","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.internal.ErrorText.ErrorText","signatures":[{"raw":"public static String suffix(List stderr)","params":[{"name":"stderr","type":"List"}],"returns":"String","typeScopeBoundary":true}],"doc":{"summary":"{@code \": \"} and the non-blank lines joined by {@code \"; \"}, or nothing when tmux printed none.","body":"Capped at {@link OperationReport#ERROR_LIMIT} characters: a message lands in every log line\nthat prints the failure, and the failure's own {@code errorLines()} keeps the text whole."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/ErrorText.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.ErrorText.suffix","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.ErrorText.ErrorText.suffix","product":"core","slug":"io-github-libtmux-internal-errortext-errortext-suffix"},{"id":"io.github.libtmux.internal.ProcessTree.ProcessTree","name":"ProcessTree","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Owns bounded, idempotent termination of one process and its observable descendants."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/ProcessTree.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.ProcessTree","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.ProcessTree.ProcessTree","product":"core","slug":"io-github-libtmux-internal-processtree-processtree"},{"id":"io.github.libtmux.internal.ProcessTree.ProcessTree.ProcessTree","name":"ProcessTree","kind":"method","modifiers":[],"parent":"io.github.libtmux.internal.ProcessTree.ProcessTree","signatures":[{"raw":"public ProcessTree(Process root)","params":[{"name":"root","type":"Process"}],"typeScopeBoundary":false}],"doc":{"summary":"Takes ownership of terminating {@code root} and descendants visible from it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/ProcessTree.java","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.ProcessTree.ProcessTree","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.ProcessTree.ProcessTree.ProcessTree","product":"core","slug":"io-github-libtmux-internal-processtree-processtree-processtree"},{"id":"io.github.libtmux.internal.ProcessTree.ProcessTree.captureDescendants","name":"captureDescendants","kind":"method","modifiers":[],"parent":"io.github.libtmux.internal.ProcessTree.ProcessTree","signatures":[{"raw":"public synchronized void captureDescendants()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Retains descendants before another cleanup step can make the root disappear."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/ProcessTree.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.ProcessTree.captureDescendants","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.ProcessTree.ProcessTree.captureDescendants","product":"core","slug":"io-github-libtmux-internal-processtree-processtree-capturedescendants"},{"id":"io.github.libtmux.internal.ProcessTree.ProcessTree.terminate","name":"terminate","kind":"method","modifiers":[],"parent":"io.github.libtmux.internal.ProcessTree.ProcessTree","signatures":[{"raw":"public synchronized boolean terminate()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Terminates the known process tree, closes the root's streams, and reports reclamation."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/ProcessTree.java","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.ProcessTree.terminate","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.ProcessTree.ProcessTree.terminate","product":"core","slug":"io-github-libtmux-internal-processtree-processtree-terminate"},{"id":"io.github.libtmux.internal.Utf8.Utf8","name":"Utf8","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The UTF-8 boundary shared by process and control transports, in both directions."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/Utf8.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.Utf8","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.Utf8.Utf8","product":"core","slug":"io-github-libtmux-internal-utf8-utf8"},{"id":"io.github.libtmux.internal.Utf8.Utf8.requireEncodableArguments","name":"requireEncodableArguments","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.internal.Utf8.Utf8","signatures":[{"raw":"public static void requireEncodableArguments(List argv)","params":[{"name":"argv","type":"List"}],"returns":"void","typeScopeBoundary":true,"raises":[{"type":"UnencodableTextException","doc":"if an argument holds non-ASCII text and this JVM's native encoding is not UTF-8"}]}],"doc":{"summary":"Refuses argument text this JVM would corrupt on the way to tmux.","body":"Checked here rather than at each call site because every process this library starts is\nbuilt from one of these lists, and a value that reaches tmux mangled is indistinguishable\nthere from one the caller meant."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/Utf8.java","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.Utf8.requireEncodableArguments","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.Utf8.Utf8.requireEncodableArguments","product":"core","slug":"io-github-libtmux-internal-utf8-utf8-requireencodablearguments"},{"id":"io.github.libtmux.internal.Utf8.Utf8.encodable","name":"encodable","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.internal.Utf8.Utf8","signatures":[{"raw":"public static boolean encodable(List argv)","params":[{"name":"argv","type":"List"}],"returns":"boolean","typeScopeBoundary":true}],"doc":{"summary":"Whether this JVM can hand every one of these to a child process intact."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/Utf8.java","line":48,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.Utf8.encodable","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.Utf8.Utf8.encodable","product":"core","slug":"io-github-libtmux-internal-utf8-utf8-encodable"},{"id":"io.github.libtmux.internal.Utf8.Utf8.argumentsAreUtf8","name":"argumentsAreUtf8","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.internal.Utf8.Utf8","signatures":[{"raw":"static boolean argumentsAreUtf8(String encoding)","params":[{"name":"encoding","type":"String"}],"returns":"boolean","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/Utf8.java","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.Utf8.argumentsAreUtf8","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.Utf8.Utf8.argumentsAreUtf8","product":"core","slug":"io-github-libtmux-internal-utf8-utf8-argumentsareutf8"},{"id":"io.github.libtmux.internal.Utf8.Utf8.backslashReplace","name":"backslashReplace","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.internal.Utf8.Utf8","signatures":[{"raw":"public static String backslashReplace(byte[] bytes)","params":[{"name":"bytes","type":"byte[]"}],"returns":"String","typeScopeBoundary":true}],"doc":{"summary":"Decodes valid UTF-8 and writes each malformed byte as a recoverable {@code \\xNN} escape."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/Utf8.java","line":88,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.Utf8.backslashReplace","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.Utf8.Utf8.backslashReplace","product":"core","slug":"io-github-libtmux-internal-utf8-utf8-backslashreplace"},{"id":"io.github.libtmux.internal.Utf8.Utf8.Stream","name":"Stream","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.internal.Utf8.Utf8","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Decodes one byte stream that arrives in pieces cut anywhere, as {@link #backslashReplace} decodes a whole one. A character cut between two pieces is held back and returned whole with the later piece. One per stream, on one thread."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/Utf8.java","line":117,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.Utf8.Stream","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.Utf8.Utf8.Stream","product":"core","slug":"io-github-libtmux-internal-utf8-utf8-stream"},{"id":"io.github.libtmux.internal.Utf8.Utf8.Stream.decode","name":"decode","kind":"method","modifiers":[],"parent":"io.github.libtmux.internal.Utf8.Utf8.Stream","signatures":[{"raw":"public String decode(byte[] piece)","params":[{"name":"piece","type":"byte[]"}],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The text this piece completes, leaving a character it only starts for the next."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/internal/Utf8.java","line":126,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.internal.Utf8.Stream.decode","namespace":"io.github.libtmux.internal","publicId":"io.github.libtmux.internal.Utf8.Utf8.Stream.decode","product":"core","slug":"io-github-libtmux-internal-utf8-utf8-stream-decode"},{"id":"io.github.libtmux.JsonLayout.JsonLayout","name":"JsonLayout","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"tmux's restricted JSON grammar and layout cells, for pre-mutation workspace validation."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/JsonLayout.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.JsonLayout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.JsonLayout.JsonLayout","product":"core","slug":"io-github-libtmux-jsonlayout-jsonlayout"},{"id":"io.github.libtmux.JsonLayout.JsonLayout.leaves","name":"leaves","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.JsonLayout.JsonLayout","signatures":[{"raw":"static int leaves(String text)","params":[{"name":"text","type":"String"}],"returns":"int","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/JsonLayout.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.JsonLayout.leaves","namespace":"io.github.libtmux","publicId":"io.github.libtmux.JsonLayout.JsonLayout.leaves","product":"core","slug":"io-github-libtmux-jsonlayout-jsonlayout-leaves"},{"id":"io.github.libtmux.Keys.Keys","name":"Keys","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The server's key bindings, in one key table or across all of them.","body":"tmux keeps bindings in named tables: {@code prefix}, pressed after the prefix key, is where a\nbinding goes unless another table is named; {@code root} is pressed without it; the copy-mode\ntables belong to copy mode. {@link Server#keys()} answers for {@code prefix} when binding and for\nevery table when listing; {@link #in} names one.","examples":[{"lang":"java","code":"server.keys().bind(\"F12\", List.of(\"display-message\", \"hello\"));\nserver.keys().in(\"root\").bind(\"F11\", List.of(\"next-window\"));"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Keys.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Keys","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Keys.Keys","product":"core","slug":"io-github-libtmux-keys-keys"},{"id":"io.github.libtmux.Keys.Keys.Keys","name":"Keys","kind":"method","modifiers":[],"parent":"io.github.libtmux.Keys.Keys","signatures":[{"raw":"Keys(Server server, @Nullable String table)","params":[{"name":"server","type":"Server"},{"name":"table","type":"String"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Keys.java","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Keys.Keys","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Keys.Keys.Keys","product":"core","slug":"io-github-libtmux-keys-keys-keys"},{"id":"io.github.libtmux.Keys.Keys.in","name":"in","kind":"method","modifiers":[],"parent":"io.github.libtmux.Keys.Keys","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Keys in(String table)","params":[{"name":"table","type":"String"}],"returns":"Keys","typeScopeBoundary":false}],"doc":{"summary":"The same bindings, in one named table."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Keys.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Keys.in","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Keys.Keys.in","product":"core","slug":"io-github-libtmux-keys-keys-in"},{"id":"io.github.libtmux.Keys.Keys.bind","name":"bind","kind":"method","modifiers":[],"parent":"io.github.libtmux.Keys.Keys","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void bind(String key, List command)","params":[{"name":"key","type":"String"},{"name":"command","type":"List"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Binds a key to a tmux command, given as its words.","body":"Each word reaches tmux as itself: the command is passed as arguments, never as a line for\ntmux to split."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Keys.java","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Keys.bind","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Keys.Keys.bind","product":"core","slug":"io-github-libtmux-keys-keys-bind"},{"id":"io.github.libtmux.Keys.Keys.unbind","name":"unbind","kind":"method","modifiers":[],"parent":"io.github.libtmux.Keys.Keys","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void unbind(String key)","params":[{"name":"key","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Removes a key's binding."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Keys.java","line":66,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Keys.unbind","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Keys.Keys.unbind","product":"core","slug":"io-github-libtmux-keys-keys-unbind"},{"id":"io.github.libtmux.Keys.Keys.list","name":"list","kind":"method","modifiers":[],"parent":"io.github.libtmux.Keys.Keys","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List list()","params":[],"returns":"List","typeScopeBoundary":false,"raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"}]}],"doc":{"summary":"The bindings as tmux lists them, one per line.","body":"Every table unless one was named. Read without starting a daemon to answer, which tmux\nwould otherwise do for {@code list-keys}: its tables are compiled in, so it can answer an\nendpoint nothing serves by serving it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Keys.java","line":85,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Keys.list","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Keys.Keys.list","product":"core","slug":"io-github-libtmux-keys-keys-list"},{"id":"io.github.libtmux.Layout.Layout","name":"Layout","kind":"enum","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"One of tmux's built-in pane arrangements.","body":"An enum rather than a string, and not for tidiness: {@code select-layout} with a name tmux does\nnot recognise *ends the server* on 3.3a, taking every session on that socket with it —\nincluding sessions this program never created. Every other supported release answers\n{@code invalid layout} and carries on.\n\nA name that cannot be misspelled cannot trigger that. {@link Window#applyLayout} covers the\nother way in, a serialized layout string, by checking it before tmux sees it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout","product":"core","slug":"io-github-libtmux-layout-layout"},{"id":"io.github.libtmux.Layout.Layout.EVEN_HORIZONTAL","name":"EVEN_HORIZONTAL","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.EVEN_HORIZONTAL","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.EVEN_HORIZONTAL","product":"core","slug":"io-github-libtmux-layout-layout-even_horizontal"},{"id":"io.github.libtmux.Layout.Layout.EVEN_VERTICAL","name":"EVEN_VERTICAL","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.EVEN_VERTICAL","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.EVEN_VERTICAL","product":"core","slug":"io-github-libtmux-layout-layout-even_vertical"},{"id":"io.github.libtmux.Layout.Layout.MAIN_HORIZONTAL","name":"MAIN_HORIZONTAL","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.MAIN_HORIZONTAL","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.MAIN_HORIZONTAL","product":"core","slug":"io-github-libtmux-layout-layout-main_horizontal"},{"id":"io.github.libtmux.Layout.Layout.MAIN_VERTICAL","name":"MAIN_VERTICAL","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.MAIN_VERTICAL","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.MAIN_VERTICAL","product":"core","slug":"io-github-libtmux-layout-layout-main_vertical"},{"id":"io.github.libtmux.Layout.Layout.TILED","name":"TILED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.TILED","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.TILED","product":"core","slug":"io-github-libtmux-layout-layout-tiled"},{"id":"io.github.libtmux.Layout.Layout.MAIN_HORIZONTAL_MIRRORED","name":"MAIN_HORIZONTAL_MIRRORED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Requires tmux 3.5."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.MAIN_HORIZONTAL_MIRRORED","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.MAIN_HORIZONTAL_MIRRORED","product":"core","slug":"io-github-libtmux-layout-layout-main_horizontal_mirrored"},{"id":"io.github.libtmux.Layout.Layout.MAIN_VERTICAL_MIRRORED","name":"MAIN_VERTICAL_MIRRORED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Requires tmux 3.5."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.MAIN_VERTICAL_MIRRORED","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.MAIN_VERTICAL_MIRRORED","product":"core","slug":"io-github-libtmux-layout-layout-main_vertical_mirrored"},{"id":"io.github.libtmux.Layout.Layout.Layout","name":"Layout","kind":"method","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[{"raw":"Layout(String name)","params":[{"name":"name","type":"String"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.Layout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.Layout","product":"core","slug":"io-github-libtmux-layout-layout-layout"},{"id":"io.github.libtmux.Layout.Layout.tmuxName","name":"tmuxName","kind":"method","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[{"raw":"public String tmuxName()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The name tmux knows this by."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.tmuxName","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.tmuxName","product":"core","slug":"io-github-libtmux-layout-layout-tmuxname"},{"id":"io.github.libtmux.Layout.Layout.byTmuxName","name":"byTmuxName","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Layout.Layout","signatures":[{"raw":"public static Optional byTmuxName(String name)","params":[{"name":"name","type":"String"}],"returns":"Optional","typeScopeBoundary":true}],"doc":{"summary":"The layout with this exact tmux name, or empty if none matches.","body":"One map built once, so a caller that already has a canonical name does not repeat the scan\nover {@link #values()} that resolving an abbreviation already did."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.byTmuxName","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.byTmuxName","product":"core","slug":"io-github-libtmux-layout-layout-bytmuxname"},{"id":"io.github.libtmux.Layout.Layout.since","name":"since","kind":"method","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[{"raw":"TmuxVersion since()","params":[],"returns":"TmuxVersion","typeScopeBoundary":false}],"doc":{"summary":"The first supported release that has this layout.","body":"A switch rather than a field, so that adding a layout cannot compile until someone says\nwhich release brought it — and so the enum holds nothing but its name."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.since","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.since","product":"core","slug":"io-github-libtmux-layout-layout-since"},{"id":"io.github.libtmux.Layout.Layout.requireSupported","name":"requireSupported","kind":"method","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[{"raw":"public void requireSupported(TmuxVersion running)","params":[{"name":"running","type":"TmuxVersion"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Refuses this layout when the running tmux predates it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":71,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.requireSupported","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.requireSupported","product":"core","slug":"io-github-libtmux-layout-layout-requiresupported"},{"id":"io.github.libtmux.Layout.Layout.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.Layout.Layout","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layout.java","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layout.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layout.Layout.toString","product":"core","slug":"io-github-libtmux-layout-layout-tostring"},{"id":"io.github.libtmux.Layouts.Layouts","name":"Layouts","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Which layout names are safe to hand to tmux.","body":"Public because every path that can reach select-layout needs it, not only the one that reads\na workspace file. This check exists because an unrecognised layout name does not produce an error on every tmux:\non 3.3a it crashes the server, taking down every session on that socket, including ones this\nprogram never created. A workspace file is user-supplied text, so the name has to be checked\nbefore it is dispatched rather than after tmux has had it.\n\ntmux accepts either one of its named layouts or a serialized layout tmux itself produced. Since\n3.8 that serialized form is either the classic checksummed grammar or JSON, and {@code\nselect-layout} takes either back - but only JSON round-trips exactly. The classic grammar\ncarries no pane identity, only shape, so which process lands in which cell can differ from\nwhere it started; see {@link Window#applyLayout}. The classic checksum is verified here; a\nfour-hex-digit prefix alone does not make the rest safe for tmux to parse. JSON carries no such\nsignature, so a JSON-shaped string is only trusted once the running tmux is new enough to have\nwritten it - see {@link #requireSerialized}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layouts.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layouts","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layouts.Layouts","product":"core","slug":"io-github-libtmux-layouts-layouts"},{"id":"io.github.libtmux.Layouts.Layouts.require","name":"require","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.Layouts.Layouts","signatures":[{"raw":"public static String require(String layout)","params":[{"name":"layout","type":"String"}],"returns":"String","typeScopeBoundary":true,"raises":[{"type":"IllegalArgumentException","doc":"if tmux would not recognise the name, which on some versions is not a recoverable error"}]},{"raw":"public static String require(String layout, TmuxVersion running)","params":[{"name":"layout","type":"String"},{"name":"running","type":"TmuxVersion"}],"returns":"String","typeScopeBoundary":true,"raises":[{"type":"IllegalArgumentException","doc":"if tmux would not recognise the layout"},{"type":"UnsupportedFeatureException","doc":"if the name or the JSON format arrived after this release"}]},{"raw":"public static String require(String layout, Server server, int paneCount)","params":[{"name":"layout","type":"String","doc":"a built-in name, unique abbreviation or serialized tree"},{"name":"server","type":"Server","doc":"the endpoint which will apply the layout"},{"name":"paneCount","type":"int","doc":"the number of panes which the layout must accommodate"}],"returns":"String","typeScopeBoundary":true,"returnsDoc":"a full built-in name or the unchanged serialized layout","raises":[{"type":"IllegalArgumentException","doc":"if the layout is invalid or has too few pane cells"},{"type":"UnsupportedFeatureException","doc":"if an exact built-in name requires a newer daemon"},{"type":"LibTmuxException","doc":"if the daemon or client version cannot be read"}]}],"doc":{"summary":"Returns the layout unchanged, having checked tmux will recognise it.","body":"Accepts the classic checksummed form, a JSON layout (by shape only — a running version is\nneeded to say whether this server could have written it, which {@link #require(String,\nTmuxVersion)} does), a built-in name, or an unambiguous prefix of exactly one built-in name\n({@code layout_set_lookup} is a prefix match, so {@code tile} and {@code even-h} apply on\nevery tmux release). Ambiguity is judged against every name this library knows, not only the\nones the eventual server will have — the version to narrow that with is not available here."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layouts.java","line":61,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layouts.require","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layouts.Layouts.require","product":"core","slug":"io-github-libtmux-layouts-layouts-require"},{"id":"io.github.libtmux.Layouts.Layouts.builtIn","name":"builtIn","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Layouts.Layouts","signatures":[{"raw":"public static Optional builtIn(String layout, TmuxVersion running)","params":[{"name":"layout","type":"String"},{"name":"running","type":"TmuxVersion"}],"returns":"Optional","typeScopeBoundary":true}],"doc":{"summary":"The built-in layout a name or an unambiguous prefix of one denotes, resolved against what {@code running} actually supports — the same resolution {@link #require(String, TmuxVersion)} applies, exposed so a caller that must choose between the enum path and a raw string (a workspace file's own dispatch) makes the same choice the guard just validated."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layouts.java","line":122,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layouts.builtIn","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layouts.Layouts.builtIn","product":"core","slug":"io-github-libtmux-layouts-layouts-builtin"},{"id":"io.github.libtmux.Layouts.Layouts.requireSerialized","name":"requireSerialized","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Layouts.Layouts","signatures":[{"raw":"static String requireSerialized(String layout, TmuxVersion running)","params":[{"name":"layout","type":"String"},{"name":"running","type":"TmuxVersion"}],"returns":"String","typeScopeBoundary":true,"raises":[{"type":"IllegalArgumentException","doc":"if the string is not a layout tmux wrote"},{"type":"UnsupportedFeatureException","doc":"if it is JSON-shaped but {@code running} predates the format, so it cannot be one this server wrote"}]}],"doc":{"summary":"Requires an exact layout string rather than a built-in layout name.","body":"The classic form answers \"did tmux write this?\" by its own checksum, without needing to\nknow what tmux is running. JSON carries nothing equivalent, so the only question left to ask\nis \"could this tmux have written it?\" - which is a version, not a parse. Recognising the shape\nis as far as this goes: a JSON body that passes the shape check but is not real is tmux's own\nproblem to refuse, and it does, safely, on every release that understands the format at all\n(confirmed against next-3.9: malformed JSON answers an ordinary parse error, never a crash)."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Layouts.java","line":249,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Layouts.requireSerialized","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Layouts.Layouts.requireSerialized","product":"core","slug":"io-github-libtmux-layouts-layouts-requireserialized"},{"id":"io.github.libtmux.MessageLog.MessageLog","name":"MessageLog","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The server's own message log, newest last.","body":"tmux before 3.6 answers {@code no current client} when nothing is attached. A gate would\nrefuse the case that works: with a client attached the log is readable on every supported\nrelease. The failure tmux reports is left to reach the caller."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/MessageLog.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.MessageLog","namespace":"io.github.libtmux","publicId":"io.github.libtmux.MessageLog.MessageLog","product":"core","slug":"io-github-libtmux-messagelog-messagelog"},{"id":"io.github.libtmux.MessageLog.MessageLog.MessageLog","name":"MessageLog","kind":"method","modifiers":[],"parent":"io.github.libtmux.MessageLog.MessageLog","signatures":[{"raw":"MessageLog(Server server)","params":[{"name":"server","type":"Server"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/MessageLog.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.MessageLog.MessageLog","namespace":"io.github.libtmux","publicId":"io.github.libtmux.MessageLog.MessageLog.MessageLog","product":"core","slug":"io-github-libtmux-messagelog-messagelog-messagelog"},{"id":"io.github.libtmux.MessageLog.MessageLog.lines","name":"lines","kind":"method","modifiers":[],"parent":"io.github.libtmux.MessageLog.MessageLog","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List lines()","params":[],"returns":"List","typeScopeBoundary":false,"raises":[{"type":"LibTmuxException","doc":"before 3.6 when no client is attached"}]}],"doc":{"summary":"The log lines."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/MessageLog.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.MessageLog.lines","namespace":"io.github.libtmux","publicId":"io.github.libtmux.MessageLog.MessageLog.lines","product":"core","slug":"io-github-libtmux-messagelog-messagelog-lines"},{"id":"io.github.libtmux.OptionKey.OptionKey","name":"OptionKey","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"typeParams":["T"],"typeParamNames":["T"],"typeParameters":[{"name":"T","doc":"what the value reads as"}],"doc":{"summary":"A tmux option and the Java type its value reads as.","body":"Declared by the caller rather than catalogued here. tmux has hundreds of options, adds them\nbetween releases and changes a few of their types, so a closed catalogue would be wrong somewhere\non every release it did not track. A key says how to read one option; the name-and-string methods\non {@link Options} remain for anything else.\n\nThe constants are the ones whose type is the same on every supported release, checked against\ntmux's own option table from 3.2a to 3.7c. {@code status} is not among the flags for that reason:\ntmux reads it as a choice of {@code off}, {@code on} and a line count.","examples":[{"lang":"java","code":"session.options().set(OptionKey.HISTORY_LIMIT, 50_000);\nint kept = session.options().get(OptionKey.HISTORY_LIMIT).orElseThrow(); // → 50000\n\nOptionKey bell = OptionKey.flag(\"visual-bell\");"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey","product":"core","slug":"io-github-libtmux-optionkey-optionkey"},{"id":"io.github.libtmux.OptionKey.OptionKey.HISTORY_LIMIT","name":"HISTORY_LIMIT","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[],"typeScopeBoundary":true,"type":"OptionKey","value":"number(\"history-limit\")","doc":{"summary":"Lines of scrollback a pane keeps. A session option."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.HISTORY_LIMIT","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.HISTORY_LIMIT","product":"core","slug":"io-github-libtmux-optionkey-optionkey-history_limit"},{"id":"io.github.libtmux.OptionKey.OptionKey.BASE_INDEX","name":"BASE_INDEX","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[],"typeScopeBoundary":true,"type":"OptionKey","value":"number(\"base-index\")","doc":{"summary":"The index a session's first window gets. A session option."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.BASE_INDEX","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.BASE_INDEX","product":"core","slug":"io-github-libtmux-optionkey-optionkey-base_index"},{"id":"io.github.libtmux.OptionKey.OptionKey.ESCAPE_TIME","name":"ESCAPE_TIME","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[],"typeScopeBoundary":true,"type":"OptionKey","value":"number(\"escape-time\")","doc":{"summary":"How long tmux waits after an escape to see whether a key sequence follows. A server option."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.ESCAPE_TIME","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.ESCAPE_TIME","product":"core","slug":"io-github-libtmux-optionkey-optionkey-escape_time"},{"id":"io.github.libtmux.OptionKey.OptionKey.MOUSE","name":"MOUSE","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[],"typeScopeBoundary":true,"type":"OptionKey","value":"flag(\"mouse\")","doc":{"summary":"Whether the mouse is captured. A session option."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.MOUSE","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.MOUSE","product":"core","slug":"io-github-libtmux-optionkey-optionkey-mouse"},{"id":"io.github.libtmux.OptionKey.OptionKey.AUTOMATIC_RENAME","name":"AUTOMATIC_RENAME","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[],"typeScopeBoundary":true,"type":"OptionKey","value":"flag(\"automatic-rename\")","doc":{"summary":"Whether a window renames itself after what its pane runs. A window option."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.AUTOMATIC_RENAME","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.AUTOMATIC_RENAME","product":"core","slug":"io-github-libtmux-optionkey-optionkey-automatic_rename"},{"id":"io.github.libtmux.OptionKey.OptionKey.SYNCHRONIZE_PANES","name":"SYNCHRONIZE_PANES","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[],"typeScopeBoundary":true,"type":"OptionKey","value":"flag(\"synchronize-panes\")","doc":{"summary":"Whether keys typed into one pane go to every pane in the window. A window or pane option."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.SYNCHRONIZE_PANES","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.SYNCHRONIZE_PANES","product":"core","slug":"io-github-libtmux-optionkey-optionkey-synchronize_panes"},{"id":"io.github.libtmux.OptionKey.OptionKey.text","name":"text","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[{"raw":"public static OptionKey text(String name)","params":[{"name":"name","type":"String"}],"returns":"OptionKey","typeScopeBoundary":true}],"doc":{"summary":"An option read as the text tmux reports, which suits a string, a choice, a style or a colour."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.text","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.text","product":"core","slug":"io-github-libtmux-optionkey-optionkey-text"},{"id":"io.github.libtmux.OptionKey.OptionKey.number","name":"number","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[{"raw":"public static OptionKey number(String name)","params":[{"name":"name","type":"String"}],"returns":"OptionKey","typeScopeBoundary":true}],"doc":{"summary":"An option tmux holds as a number."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.number","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.number","product":"core","slug":"io-github-libtmux-optionkey-optionkey-number"},{"id":"io.github.libtmux.OptionKey.OptionKey.flag","name":"flag","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[{"raw":"public static OptionKey flag(String name)","params":[{"name":"name","type":"String"}],"returns":"OptionKey","typeScopeBoundary":true}],"doc":{"summary":"An option tmux holds as a flag, which it reports as {@code on} or {@code off}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":69,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.flag","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.flag","product":"core","slug":"io-github-libtmux-optionkey-optionkey-flag"},{"id":"io.github.libtmux.OptionKey.OptionKey.name","name":"name","kind":"method","modifiers":[],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[{"raw":"public String name()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The option's name, as tmux spells it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":74,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.name","product":"core","slug":"io-github-libtmux-optionkey-optionkey-name"},{"id":"io.github.libtmux.OptionKey.OptionKey.read","name":"read","kind":"method","modifiers":[],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[{"raw":"T read(String reported)","params":[{"name":"reported","type":"String"}],"returns":"T","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.read","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.read","product":"core","slug":"io-github-libtmux-optionkey-optionkey-read"},{"id":"io.github.libtmux.OptionKey.OptionKey.write","name":"write","kind":"method","modifiers":[],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[{"raw":"String write(T value)","params":[{"name":"value","type":"T"}],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":82,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.write","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.write","product":"core","slug":"io-github-libtmux-optionkey-optionkey-write"},{"id":"io.github.libtmux.OptionKey.OptionKey.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.OptionKey.OptionKey","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/OptionKey.java","line":105,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.OptionKey.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.OptionKey.OptionKey.toString","product":"core","slug":"io-github-libtmux-optionkey-optionkey-tostring"},{"id":"io.github.libtmux.Options.Options","name":"Options","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The tmux options at one scope.","body":"tmux keeps options on the server, on a session, on a window and on a pane, and the same option\nname can exist at more than one of them. A scope is therefore chosen when the view is obtained,\nnot passed to every call, so a caller cannot read one scope and write another.\n\nArray options keep the subscript tmux prints — {@code command-alias[0]} — because that is what\naddresses the individual entry when setting it back.\n\nEvery read asks the daemon its version in the same tmux invocation as the values, since how a\nvalue is printed depends on that version: tmux 3.4 and 3.5 print a carriage return and a literal\n{@code \\r} alike under {@code -v}, so on those two the escaped listing is decoded instead."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":39,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options","product":"core","slug":"io-github-libtmux-options-options"},{"id":"io.github.libtmux.Options.Options.server","name":"server","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Options.Options","signatures":[{"raw":"static Options server(Server server)","params":[{"name":"server","type":"Server"}],"returns":"Options","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.server","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.server","product":"core","slug":"io-github-libtmux-options-options-server"},{"id":"io.github.libtmux.Options.Options.global","name":"global","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Options.Options","signatures":[{"raw":"static Options global(Server server)","params":[{"name":"server","type":"Server"}],"returns":"Options","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":58,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.global","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.global","product":"core","slug":"io-github-libtmux-options-options-global"},{"id":"io.github.libtmux.Options.Options.session","name":"session","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Options.Options","signatures":[{"raw":"static Options session(Server server, ServerSnapshot snapshot, SessionId session)","params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"session","type":"SessionId"}],"returns":"Options","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.session","product":"core","slug":"io-github-libtmux-options-options-session"},{"id":"io.github.libtmux.Options.Options.window","name":"window","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Options.Options","signatures":[{"raw":"static Options window(Server server, ServerSnapshot snapshot, WindowId window)","params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"window","type":"WindowId"}],"returns":"Options","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":66,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.window","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.window","product":"core","slug":"io-github-libtmux-options-options-window"},{"id":"io.github.libtmux.Options.Options.pane","name":"pane","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Options.Options","signatures":[{"raw":"static Options pane(Server server, ServerSnapshot snapshot, PaneId pane)","params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"pane","type":"PaneId"}],"returns":"Options","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":70,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.pane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.pane","product":"core","slug":"io-github-libtmux-options-options-pane"},{"id":"io.github.libtmux.Options.Options.get","name":"get","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Options.Options","signatures":[{"raw":"@Operation(Kind.READ)\n public Optional get(String name)","params":[{"name":"name","type":"String"}],"returns":"Optional","typeScopeBoundary":false,"returnsDoc":"empty only when tmux does not know the option, which it reports as an error; an option genuinely set to the empty string comes back as an empty value, not as absent. A value spanning several lines comes back whole","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the read otherwise fails, including a name tmux finds ambiguous — option names may be abbreviated, and a prefix matching several is a question tmux declined to answer rather than an option it does not have"}]},{"raw":"@Operation(Kind.READ)\n public Optional get(OptionKey key)","params":[{"name":"key","type":"OptionKey"}],"returns":"Optional","typeParamNames":["T"],"typeScopeBoundary":false,"typeParams":["T"],"typeParameters":[{"name":"T"}],"raises":[{"type":"LibTmuxException","doc":"if tmux reports a value the key's type cannot hold, which means the key was declared with the wrong type"}]}],"doc":{"summary":"The value in effect at this scope, inherited from a parent scope when this one does not set it.","body":"This is what tmux itself will act on. To ask the narrower question — whether this scope\nsets the option at all — look for the name in {@link #all()}, which lists only what is set\nhere."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":89,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.get","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.get","product":"core","slug":"io-github-libtmux-options-options-get"},{"id":"io.github.libtmux.Options.Options.set","name":"set","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Options.Options","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void set(OptionKey key, T value)","params":[{"name":"key","type":"OptionKey"},{"name":"value","type":"T"}],"returns":"void","typeParamNames":["T"],"typeScopeBoundary":false,"typeParams":["T"],"typeParameters":[{"name":"T"}]},{"raw":"@Operation(Kind.MUTATION)\n public void set(String name, String value)","params":[{"name":"name","type":"String"},{"name":"value","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"As {@link #set(String, String)}, written the way tmux reads the key's type."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":130,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.set","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.set","product":"core","slug":"io-github-libtmux-options-options-set"},{"id":"io.github.libtmux.Options.Options.all","name":"all","kind":"method","modifiers":[],"parent":"io.github.libtmux.Options.Options","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public Map all()","params":[],"returns":"Map","typeScopeBoundary":false}],"doc":{"summary":"Every option set at this scope, in tmux's order. Inherited values are not listed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":137,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.all","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.all","product":"core","slug":"io-github-libtmux-options-options-all"},{"id":"io.github.libtmux.Options.Options.effective","name":"effective","kind":"method","modifiers":[],"parent":"io.github.libtmux.Options.Options","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public Map effective()","params":[],"returns":"Map","typeScopeBoundary":false}],"doc":{"summary":"Every option tmux lists at this scope, including inherited built-in values.","body":"Inherited user-option names are not listed by tmux. {@link #get(String)} still reads their\neffective values by name."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":316,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.effective","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.effective","product":"core","slug":"io-github-libtmux-options-options-effective"},{"id":"io.github.libtmux.Options.Options.setIfAbsent","name":"setIfAbsent","kind":"method","modifiers":[],"parent":"io.github.libtmux.Options.Options","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public boolean setIfAbsent(String name, String value)","params":[{"name":"name","type":"String"},{"name":"value","type":"String"}],"returns":"boolean","typeScopeBoundary":false,"returnsDoc":"whether the value was taken, false when this scope already set the option"}],"doc":{"summary":"Sets one option only if this scope does not already set it.","body":"tmux reports the already-set case as an error, which it is not: declining to overwrite is\nthe whole point of asking. The answer comes back as a value instead."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":336,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.setIfAbsent","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.setIfAbsent","product":"core","slug":"io-github-libtmux-options-options-setifabsent"},{"id":"io.github.libtmux.Options.Options.append","name":"append","kind":"method","modifiers":[],"parent":"io.github.libtmux.Options.Options","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void append(String name, String suffix)","params":[{"name":"name","type":"String"},{"name":"suffix","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Adds to the end of a string option, rather than replacing it.","body":"Appending to an option this scope has not set simply sets it, which is what tmux does and\nwhat a caller building a value up piece by piece wants."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":347,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.append","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.append","product":"core","slug":"io-github-libtmux-options-options-append"},{"id":"io.github.libtmux.Options.Options.setExpanded","name":"setExpanded","kind":"method","modifiers":[],"parent":"io.github.libtmux.Options.Options","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void setExpanded(String name, String format)","params":[{"name":"name","type":"String"},{"name":"format","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Sets one option to what a tmux format comes to, rather than to the format itself.","body":"{@code setExpanded(\"status-left\", \"in #{session_name}\")} stores {@code in base}. The\nexpansion happens once, when this is called; the option does not stay live.\n\nBecause tmux expands the format when this is called, a {@code #(...)} in it runs a command\nat that moment. Pass any interpolated value through {@link TmuxFormats#literal} unless you mean\nit to be expanded."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":362,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.setExpanded","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.setExpanded","product":"core","slug":"io-github-libtmux-options-options-setexpanded"},{"id":"io.github.libtmux.Options.Options.unset","name":"unset","kind":"method","modifiers":[],"parent":"io.github.libtmux.Options.Options","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void unset(String name)","params":[{"name":"name","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Removes one option at this scope, so it falls back to whatever it inherits."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Options.java","line":368,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Options.unset","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Options.Options.unset","product":"core","slug":"io-github-libtmux-options-options-unset"},{"id":"io.github.libtmux.Pane.Pane","name":"Pane","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"One tmux pane, as one capture saw it.","body":"Identity is the server and the pane id. An index is state: panes renumber as neighbours come\nand go.\n\nA method named for a captured field returns what {@link #info()} holds and does no I/O;\n{@link #refresh()} reads again. Every other method asks tmux now."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane","product":"core","slug":"io-github-libtmux-pane-pane"},{"id":"io.github.libtmux.Pane.Pane.Pane","name":"Pane","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"Pane(Server server, ServerSnapshot snapshot, PaneState state)","params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"state","type":"PaneState"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.Pane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.Pane","product":"core","slug":"io-github-libtmux-pane-pane-pane"},{"id":"io.github.libtmux.Pane.Pane.info","name":"info","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public PaneState info()","params":[],"returns":"PaneState","typeScopeBoundary":false}],"doc":{"summary":"The fields this capture stored. A later title change is not visible here."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":71,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.info","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.info","product":"core","slug":"io-github-libtmux-pane-pane-info"},{"id":"io.github.libtmux.Pane.Pane.id","name":"id","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public PaneId id()","params":[],"returns":"PaneId","typeScopeBoundary":false}],"doc":{"summary":"The pane's stable id."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.id","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.id","product":"core","slug":"io-github-libtmux-pane-pane-id"},{"id":"io.github.libtmux.Pane.Pane.index","name":"index","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public int index()","params":[],"returns":"int","typeScopeBoundary":false}],"doc":{"summary":"The pane's position, which shifts as neighbours come and go."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":83,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.index","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.index","product":"core","slug":"io-github-libtmux-pane-pane-index"},{"id":"io.github.libtmux.Pane.Pane.active","name":"active","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public boolean active()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether this was its window's active pane when captured."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":89,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.active","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.active","product":"core","slug":"io-github-libtmux-pane-pane-active"},{"id":"io.github.libtmux.Pane.Pane.currentCommand","name":"currentCommand","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public String currentCommand()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The command tmux reported running here."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":95,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.currentCommand","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.currentCommand","product":"core","slug":"io-github-libtmux-pane-pane-currentcommand"},{"id":"io.github.libtmux.Pane.Pane.floating","name":"floating","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Optional floating()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"Whether this pane floats, or empty when the running tmux cannot say.","body":"Empty is not \"no\". tmux before 3.7 expands the format to nothing, and answering {@code false}\nthere would be indistinguishable from a tmux that looked and found the pane was not floating."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":106,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.floating","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.floating","product":"core","slug":"io-github-libtmux-pane-pane-floating"},{"id":"io.github.libtmux.Pane.Pane.size","name":"size","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Dimensions size()","params":[],"returns":"Dimensions","typeScopeBoundary":false}],"doc":{"summary":"How large the pane was when captured, in terminal cells."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":112,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.size","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.size","product":"core","slug":"io-github-libtmux-pane-pane-size"},{"id":"io.github.libtmux.Pane.Pane.position","name":"position","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public PanePosition position()","params":[],"returns":"PanePosition","typeScopeBoundary":false}],"doc":{"summary":"Where the pane's top-left corner sat in its window when captured, in terminal cells."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":118,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.position","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.position","product":"core","slug":"io-github-libtmux-pane-pane-position"},{"id":"io.github.libtmux.Pane.Pane.title","name":"title","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public String title()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The pane title, which a program running inside it can change."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":124,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.title","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.title","product":"core","slug":"io-github-libtmux-pane-pane-title"},{"id":"io.github.libtmux.Pane.Pane.currentPath","name":"currentPath","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Path currentPath()","params":[],"returns":"Path","typeScopeBoundary":false,"raises":[{"type":"LibTmuxException","doc":"if this JVM's encoding cannot represent the name, which a UTF-8 locale fixes"}]}],"doc":{"summary":"The working directory tmux reported for the pane.","body":"Converted on request rather than when the pane was captured, because a directory name is\nbytes to tmux and this JVM cannot always represent one: converting at capture time would lose\nevery pane on the server over a single pane's directory. {@link #currentPathText()} is the\nvalue tmux actually reported, and never throws."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":140,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.currentPath","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.currentPath","product":"core","slug":"io-github-libtmux-pane-pane-currentpath"},{"id":"io.github.libtmux.Pane.Pane.currentPathText","name":"currentPathText","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public String currentPathText()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The working directory tmux reported for the pane, exactly as tmux reported it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":155,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.currentPathText","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.currentPathText","product":"core","slug":"io-github-libtmux-pane-pane-currentpathtext"},{"id":"io.github.libtmux.Pane.Pane.pid","name":"pid","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public OptionalLong pid()","params":[],"returns":"OptionalLong","typeScopeBoundary":false}],"doc":{"summary":"The process id of the program running in the pane, captured at the time of the read this handle came from.","body":"Empty means tmux reported no process — never a literal {@code 0}, which would be\nindistinguishable from a real pid. That covers two different situations this capture cannot\ntell apart: a pane that never ran one ({@link SplitSpec.Builder#empty()}) and, from tmux 3.8, a\npane that ran one and it has since died. Before 3.8 a dead pane still reports its stale pid.\n{@link #dead()} is the live read that tells a caller which."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":170,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.pid","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.pid","product":"core","slug":"io-github-libtmux-pane-pane-pid"},{"id":"io.github.libtmux.Pane.Pane.dead","name":"dead","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.READ)\n public boolean dead()","params":[],"returns":"boolean","typeScopeBoundary":false,"raises":[{"type":"TargetGoneException","doc":"if the pane is gone from a server that still answers"}]}],"doc":{"summary":"Whether this pane's process has exited, read fresh rather than from the capture.","body":"Dying is something that happens between reads, so a cached answer would report a pane that\ndied after this handle was captured as alive forever — the trap a snapshot-backed {@code\nisDead()} would set, which is why there is no such accessor on the capture itself. This asks\ntmux directly instead, every time.\n\nA dead pane is not necessarily a gone one: {@code remain-on-exit} keeps it around, still\nlisted, to be read. A pane with no {@code remain-on-exit} is simply removed once its process\nexits — {@link #refresh()} on this handle then throws {@link TargetGoneException}, and\nthis method throws too. Unlike every other command {@code Pane} sends, {@code display-message\n-t} does not error on a target it cannot resolve — it exits 0 with nothing on stdout — so a\ngone pane looks like a live one that answered nothing rather than like a failure. That empty\nread, and not a \"can't find pane\" from tmux, is what this method throws on: a real pane always\nanswers {@code 0} or {@code 1} for this format, never nothing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":194,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.dead","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.dead","product":"core","slug":"io-github-libtmux-pane-pane-dead"},{"id":"io.github.libtmux.Pane.Pane.resize","name":"resize","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void resize(Direction direction, int cells)","params":[{"name":"direction","type":"Direction","doc":"which way to grow, named rather than flagged"},{"name":"cells","type":"int","doc":"how many terminal cells to grow by"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Grows this pane by a number of cells in one direction."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":209,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.resize","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.resize","product":"core","slug":"io-github-libtmux-pane-pane-resize"},{"id":"io.github.libtmux.Pane.Pane.edges","name":"edges","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public PaneEdges edges()","params":[],"returns":"PaneEdges","typeScopeBoundary":false}],"doc":{"summary":"Which sides of its window the pane touches."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":219,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.edges","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.edges","product":"core","slug":"io-github-libtmux-pane-pane-edges"},{"id":"io.github.libtmux.Pane.Pane.copyMode","name":"copyMode","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void copyMode()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Puts this pane into copy mode, where its scrollback can be navigated."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":225,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.copyMode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.copyMode","product":"core","slug":"io-github-libtmux-pane-pane-copymode"},{"id":"io.github.libtmux.Pane.Pane.mode","name":"mode","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.READ)\n public Optional mode()","params":[],"returns":"Optional","typeScopeBoundary":false,"returnsDoc":"the mode, or empty when the pane is showing its program","raises":[{"type":"LibTmuxException","doc":"if this tmux named a mode outside the supported range"}]}],"doc":{"summary":"Which mode this pane is in at this moment, or empty when it is in none.","body":"Read live rather than from the capture, because entering a mode is something this library\ndoes and a caller wants to see the result of."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":239,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.mode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.mode","product":"core","slug":"io-github-libtmux-pane-pane-mode"},{"id":"io.github.libtmux.Pane.Pane.exitMode","name":"exitMode","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void exitMode()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Leaves whichever mode this pane is in.","body":"tmux spells this {@code copy-mode -q}, which quits any mode and not only copy mode — a clock\nand a chooser go the same way. The name is tmux's history rather than its behaviour, so it is\nnot the one exposed here."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":252,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.exitMode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.exitMode","product":"core","slug":"io-github-libtmux-pane-pane-exitmode"},{"id":"io.github.libtmux.Pane.Pane.select","name":"select","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void select()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Makes this the active pane of its window."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":258,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.select","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.select","product":"core","slug":"io-github-libtmux-pane-pane-select"},{"id":"io.github.libtmux.Pane.Pane.retitle","name":"retitle","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@CheckReturnValue\n @Operation(Kind.MUTATION)\n public Pane retitle(String title)","params":[{"name":"title","type":"String"}],"returns":"Pane","typeScopeBoundary":false}],"doc":{"summary":"Retitles this pane and returns its replacement capture.","body":"Retain the result to read the changed title. This handle keeps its original captured state.\n\nA program running in the pane can set its own title through an escape sequence, and tmux\nreports that one instead. This says what the title is now, not what it will stay."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":271,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.retitle","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.retitle","product":"core","slug":"io-github-libtmux-pane-pane-retitle"},{"id":"io.github.libtmux.Pane.Pane.resizeTo","name":"resizeTo","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void resizeTo(Dimensions size)","params":[{"name":"size","type":"Dimensions"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Resizes this pane."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":280,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.resizeTo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.resizeTo","product":"core","slug":"io-github-libtmux-pane-pane-resizeto"},{"id":"io.github.libtmux.Pane.Pane.server","name":"server","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Server server()","params":[],"returns":"Server","typeScopeBoundary":false}],"doc":{"summary":"The server this pane lives on."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":295,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.server","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.server","product":"core","slug":"io-github-libtmux-pane-pane-server"},{"id":"io.github.libtmux.Pane.Pane.batch","name":"batch","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Batch batch()","params":[],"returns":"Batch","typeScopeBoundary":false}],"doc":{"summary":"Collects commands fenced to the server incarnation that produced this pane."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":301,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.batch","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.batch","product":"core","slug":"io-github-libtmux-pane-pane-batch"},{"id":"io.github.libtmux.Pane.Pane.snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"ServerSnapshot snapshot()","params":[],"returns":"ServerSnapshot","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":306,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.snapshot","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.snapshot","product":"core","slug":"io-github-libtmux-pane-pane-snapshot"},{"id":"io.github.libtmux.Pane.Pane.window","name":"window","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Window window()","params":[],"returns":"Window","typeScopeBoundary":false}],"doc":{"summary":"The window link this pane was reached through. A pure read of the capture."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":311,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.window","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.window","product":"core","slug":"io-github-libtmux-pane-pane-window"},{"id":"io.github.libtmux.Pane.Pane.hooks","name":"hooks","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Hooks hooks()","params":[],"returns":"Hooks","typeScopeBoundary":false}],"doc":{"summary":"This pane's own hooks."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":320,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.hooks","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.hooks","product":"core","slug":"io-github-libtmux-pane-pane-hooks"},{"id":"io.github.libtmux.Pane.Pane.options","name":"options","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Options options()","params":[],"returns":"Options","typeScopeBoundary":false}],"doc":{"summary":"This pane's own options."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":326,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.options","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.options","product":"core","slug":"io-github-libtmux-pane-pane-options"},{"id":"io.github.libtmux.Pane.Pane.capture","name":"capture","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List capture()","params":[],"returns":"List","typeScopeBoundary":false},{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List capture(Consumer configure)","params":[{"name":"configure","type":"Consumer","doc":"receives a builder that reads the visible area and nothing else"}],"returns":"List","typeScopeBoundary":false,"raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something this server does not have"}]},{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List capture(CaptureSpec spec)","params":[{"name":"spec","type":"CaptureSpec"}],"returns":"List","typeScopeBoundary":false,"raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something this server does not have"}]}],"doc":{"summary":"This pane's visible content, one element per line.","examples":[{"lang":"console","intro":"Send input and wait for output before capturing the pane. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/Capture.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/Capture.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport io.github.libtmux.SessionSpec;\nimport io.github.libtmux.TextOutcome;\nimport java.nio.file.Path;\nimport java.time.Duration;\nimport java.util.List;\n\n/** Send input and wait for output before capturing the pane. */\npublic final class Capture {\n private Capture() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n var session = server.newSession(SessionSpec.builder()\n .named(\"api-capture\")\n .running(\"/bin/sh\")\n .build());\n var pane = session.windows().getFirst().panes().getFirst();\n pane.sendKeys(List.of(\"printf 'api-%s\\\\n' keys\", \"Enter\"));\n if (pane.awaitText(\"api-keys\", Duration.ofSeconds(5)) == TextOutcome.TIMED_OUT) {\n throw new IllegalStateException(\"timed out waiting for keys output\");\n }\n pane.sendLine(\"printf 'api-%s\\\\n' line\");\n if (pane.awaitText(\"api-line\", Duration.ofSeconds(5)) == TextOutcome.TIMED_OUT) {\n throw new IllegalStateException(\"timed out waiting for line output\");\n }\n var lines = pane.capture();\n for (String expected : List.of(\"api-keys\", \"api-line\")) {\n if (lines.stream().noneMatch(line -> line.strip().equals(expected))) {\n throw new IllegalStateException(\"capture is missing \" + expected);\n }\n System.out.println(expected);\n }\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.Capture && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"api-keys\napi-line\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":332,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.capture","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.capture","product":"core","slug":"io-github-libtmux-pane-pane-capture"},{"id":"io.github.libtmux.Pane.Pane.noteTyped","name":"noteTyped","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void noteTyped(String text)","params":[{"name":"text","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Notes text that reached this pane without going through this handle, so a wait discounts its echo the way it discounts text sent through {@link #sendLiteral}.","body":"Use this for input delivered outside this handle. Input sent through {@link #sendKeys}\nor {@link #sendLiteral} already records synchronized recipients. Include a trailing line break\nwhen the external write submitted its line; otherwise the text remains pending."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":346,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.noteTyped","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.noteTyped","product":"core","slug":"io-github-libtmux-pane-pane-notetyped"},{"id":"io.github.libtmux.Pane.Pane.awaitText","name":"awaitText","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.WAIT)\n public TextOutcome awaitText(String text, Duration timeout) throws InterruptedException","params":[{"name":"text","type":"String","doc":"the text to wait for, matched anywhere in a captured line"},{"name":"timeout","type":"Duration","doc":"how long to keep looking"}],"returns":"TextOutcome","typeScopeBoundary":false,"returnsDoc":"why the wait ended, which tells text that appeared from text that was already there","raises":[{"type":"LibTmuxException","doc":"if a read fails while the server is still answering — most often because this pane was killed, which is not a timeout"},{"type":"InterruptedException","doc":"if the waiting thread is interrupted, which is a cancellation rather than a timeout and so is not reported as one"}]},{"raw":"@Operation(Kind.WAIT)\n public TextOutcome awaitText(String text, Duration timeout, Duration every) throws InterruptedException","params":[{"name":"text","type":"String"},{"name":"timeout","type":"Duration"},{"name":"every","type":"Duration","doc":"how long to leave between looks, at least 10 ms"}],"returns":"TextOutcome","typeScopeBoundary":false,"raises":[{"type":"IllegalArgumentException","doc":"if {@code every} is shorter than 10 ms"}]}],"doc":{"summary":"Waits until this pane's text contains something, and says why the wait ended.","body":"**Reach for this last.** It reads the screen on a timer, which is a heuristic\nabout a program's output rather than a fact about it, and the cheaper waits are exact:\n\n - If you wrote the command, append {@code ; tmux wait-for -S name} to it and block on\n {@link Server#channel}. tmux blocks server-side and returns on the signal itself, so\n nothing is inferred from the screen and one tmux process covers the whole wait. That is\n the only deterministic wait here, and it is the right one whenever the command is yours.\n - If you did not write the command — a daemon printing that it is ready, a build somebody\n else started — this is the case polling is for.\n\nThe timeout bounds the whole wait, reads included. Each read is given only what is left of\nit, so a slow tmux cannot stretch a short wait out to the server's default deadline, and text\nthat first appears after the deadline is not reported. The first read alone is allowed at least\na quarter of a second, so a timeout shorter than one read can still answer\n{@link TextOutcome#PRESENT_AT_ENTRY}.\n\nWaiting longer is also less reliable, not more: tmux frees the oldest scrollback once\n{@code history-limit} is reached, so a long wait on a productive pane can end up reading past\nthe lines it was watching for.","examples":[{"lang":"console","intro":"Send input and wait for output before capturing the pane. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/Capture.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/Capture.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport io.github.libtmux.SessionSpec;\nimport io.github.libtmux.TextOutcome;\nimport java.nio.file.Path;\nimport java.time.Duration;\nimport java.util.List;\n\n/** Send input and wait for output before capturing the pane. */\npublic final class Capture {\n private Capture() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n var session = server.newSession(SessionSpec.builder()\n .named(\"api-capture\")\n .running(\"/bin/sh\")\n .build());\n var pane = session.windows().getFirst().panes().getFirst();\n pane.sendKeys(List.of(\"printf 'api-%s\\\\n' keys\", \"Enter\"));\n if (pane.awaitText(\"api-keys\", Duration.ofSeconds(5)) == TextOutcome.TIMED_OUT) {\n throw new IllegalStateException(\"timed out waiting for keys output\");\n }\n pane.sendLine(\"printf 'api-%s\\\\n' line\");\n if (pane.awaitText(\"api-line\", Duration.ofSeconds(5)) == TextOutcome.TIMED_OUT) {\n throw new IllegalStateException(\"timed out waiting for line output\");\n }\n var lines = pane.capture();\n for (String expected : List.of(\"api-keys\", \"api-line\")) {\n if (lines.stream().noneMatch(line -> line.strip().equals(expected))) {\n throw new IllegalStateException(\"capture is missing \" + expected);\n }\n System.out.println(expected);\n }\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.Capture && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"api-keys\napi-line\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":385,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.awaitText","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.awaitText","product":"core","slug":"io-github-libtmux-pane-pane-awaittext"},{"id":"io.github.libtmux.Pane.Pane.run","name":"run","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.WAIT)\n public PaneRun run(String command, Duration timeout) throws InterruptedException","params":[{"name":"command","type":"String","doc":"a line of shell, run as {@code eval} would run it"},{"name":"timeout","type":"Duration","doc":"how long to wait for it to end"}],"returns":"PaneRun","typeScopeBoundary":false,"raises":[{"type":"IllegalStateException","doc":"if the pane is not running a POSIX shell"},{"type":"InterruptedException","doc":"if the waiting thread is interrupted"}]}],"doc":{"summary":"Runs a shell command in this pane to its end, and answers with its exit status and output.","body":"**Reach for this first** whenever the command is yours. Nothing is inferred from\nthe screen: the command runs in a subshell of the pane's own shell, whose trap reports {@code $?}\nand signals a private {@code wait-for} channel, so the wait is tmux's and the status is the\nshell's. The trap covers interrupt and terminate as well as exit, so a command someone stops at\nthe pane ends this call with the status it was stopped with rather than leaving it waiting. The output is what the command printed and nothing else — not the typed line,\nnot the prompt — cut out between two markers the plumbing prints around it.\n\nIt runs in the shell a person set up — its directory, its environment, a virtualenv someone\nactivated — which is the reason to type it there rather than start a process of your own. The\npane has to be running a POSIX shell for the typed line to mean what it says.\n\nA command still running at the deadline keeps running; the answer carries what it had printed\nby then, and {@link PaneRun#exact()} is false.","examples":[{"lang":"java","code":"PaneRun built = pane.run(\"make test\", Duration.ofMinutes(5));\nif (!built.succeeded()) {\n System.err.println(String.join(\"\\n\", built.output()));\n}"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":435,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.run","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.run","product":"core","slug":"io-github-libtmux-pane-pane-run"},{"id":"io.github.libtmux.Pane.Pane.await","name":"await","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.WAIT)\n public WakeReason await(Predicate settled, Duration timeout) throws InterruptedException","params":[{"name":"settled","type":"Predicate","doc":"receives this pane as it is now"},{"name":"timeout","type":"Duration","doc":"how long to keep looking"}],"returns":"WakeReason","typeScopeBoundary":false,"returnsDoc":"why the wait ended","raises":[{"type":"TargetGoneException","doc":"if this pane is killed while its server stays up, which is not a timeout"},{"type":"InterruptedException","doc":"if the waiting thread is interrupted"}]},{"raw":"@Operation(Kind.WAIT)\n public WakeReason await(Predicate settled, Duration timeout, Duration every) throws InterruptedException","params":[{"name":"settled","type":"Predicate"},{"name":"timeout","type":"Duration"},{"name":"every","type":"Duration","doc":"how long to leave between looks, at least 10 ms"}],"returns":"WakeReason","typeScopeBoundary":false,"raises":[{"type":"IllegalArgumentException","doc":"if {@code every} is shorter than 10 ms"}]}],"doc":{"summary":"Waits until a condition holds for this pane as tmux reports it, and says why the wait ended.","body":"The pane is captured again before each test, so the condition reads fresh state rather than\nthe capture this handle was built from. What the condition receives is an ordinary handle on\nthis pane's server and can be kept. The ordering {@link #awaitText} describes applies here too —\na signal on a {@link Server#channel} is exact, and this is for when nothing signals — and so do\nits deadline rules.","examples":[{"lang":"java","code":"pane.await(fresh -> !fresh.currentCommand().equals(\"zsh\"), Duration.ofSeconds(5));"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":484,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.await","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.await","product":"core","slug":"io-github-libtmux-pane-pane-await"},{"id":"io.github.libtmux.Pane.Pane.through","name":"through","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"Pane through(Server via)","params":[{"name":"via","type":"Server"}],"returns":"Pane","typeScopeBoundary":false}],"doc":{"summary":"This pane's captured state, addressed through another view of the same server."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":502,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.through","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.through","product":"core","slug":"io-github-libtmux-pane-pane-through"},{"id":"io.github.libtmux.Pane.Pane.send","name":"send","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void send(String keys)","params":[{"name":"keys","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Sends keys to this pane without pressing Enter.","body":"Separate from {@link #sendLine} rather than a boolean, so a call site says which it means.\n\nRecorded as an echo before dispatch, through the same key model {@link #sendKeys} uses,\nbecause tmux types anything here that is not one of its key names and a terminal echoes what\nis typed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":546,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.send","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.send","product":"core","slug":"io-github-libtmux-pane-pane-send"},{"id":"io.github.libtmux.Pane.Pane.sendKeys","name":"sendKeys","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void sendKeys(List keys)","params":[{"name":"keys","type":"List"}],"returns":"void","typeScopeBoundary":false},{"raw":"@Operation(Kind.MUTATION)\n public void sendKeys(List keys, Runnable beforeSend)","params":[{"name":"keys","type":"List"},{"name":"beforeSend","type":"Runnable","doc":"validates current input ownership"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Sends an ordered group of key names to this pane, as tmux resolves them.","body":"Each entry is resolved through tmux's key table; an unknown name is typed as text.\nRecorded input includes effective synchronized recipients. Known dispatch failures undo the\nrecord; uncertain delivery retains it. {@link #sendLiteral} types every entry literally.","examples":[{"lang":"console","intro":"Send input and wait for output before capturing the pane. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/Capture.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/Capture.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport io.github.libtmux.SessionSpec;\nimport io.github.libtmux.TextOutcome;\nimport java.nio.file.Path;\nimport java.time.Duration;\nimport java.util.List;\n\n/** Send input and wait for output before capturing the pane. */\npublic final class Capture {\n private Capture() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n var session = server.newSession(SessionSpec.builder()\n .named(\"api-capture\")\n .running(\"/bin/sh\")\n .build());\n var pane = session.windows().getFirst().panes().getFirst();\n pane.sendKeys(List.of(\"printf 'api-%s\\\\n' keys\", \"Enter\"));\n if (pane.awaitText(\"api-keys\", Duration.ofSeconds(5)) == TextOutcome.TIMED_OUT) {\n throw new IllegalStateException(\"timed out waiting for keys output\");\n }\n pane.sendLine(\"printf 'api-%s\\\\n' line\");\n if (pane.awaitText(\"api-line\", Duration.ofSeconds(5)) == TextOutcome.TIMED_OUT) {\n throw new IllegalStateException(\"timed out waiting for line output\");\n }\n var lines = pane.capture();\n for (String expected : List.of(\"api-keys\", \"api-line\")) {\n if (lines.stream().noneMatch(line -> line.strip().equals(expected))) {\n throw new IllegalStateException(\"capture is missing \" + expected);\n }\n System.out.println(expected);\n }\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.Capture && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"api-keys\napi-line\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":558,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.sendKeys","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.sendKeys","product":"core","slug":"io-github-libtmux-pane-pane-sendkeys"},{"id":"io.github.libtmux.Pane.Pane.sendLiteral","name":"sendLiteral","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void sendLiteral(List keys)","params":[{"name":"keys","type":"List"}],"returns":"void","typeScopeBoundary":false},{"raw":"@Operation(Kind.MUTATION)\n public void sendLiteral(List keys, Runnable beforeSend)","params":[{"name":"keys","type":"List"},{"name":"beforeSend","type":"Runnable","doc":"validates current input ownership"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Sends an ordered group of strings to this pane as the characters they spell.","body":"Nothing is resolved as a key name, so {@code C-c} types those three characters. Recorded\nbefore dispatch, with a line break in the joined text treated as tmux treats it: a submit the\ninstant it reaches the pane, whether or not the caller also presses Enter afterward."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":599,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.sendLiteral","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.sendLiteral","product":"core","slug":"io-github-libtmux-pane-pane-sendliteral"},{"id":"io.github.libtmux.Pane.Pane.sendLine","name":"sendLine","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void sendLine(String command)","params":[{"name":"command","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Sends a line to this pane and presses Enter, which is how a command gets run.","examples":[{"lang":"console","intro":"Send input and wait for output before capturing the pane. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/Capture.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/Capture.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport io.github.libtmux.SessionSpec;\nimport io.github.libtmux.TextOutcome;\nimport java.nio.file.Path;\nimport java.time.Duration;\nimport java.util.List;\n\n/** Send input and wait for output before capturing the pane. */\npublic final class Capture {\n private Capture() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n var session = server.newSession(SessionSpec.builder()\n .named(\"api-capture\")\n .running(\"/bin/sh\")\n .build());\n var pane = session.windows().getFirst().panes().getFirst();\n pane.sendKeys(List.of(\"printf 'api-%s\\\\n' keys\", \"Enter\"));\n if (pane.awaitText(\"api-keys\", Duration.ofSeconds(5)) == TextOutcome.TIMED_OUT) {\n throw new IllegalStateException(\"timed out waiting for keys output\");\n }\n pane.sendLine(\"printf 'api-%s\\\\n' line\");\n if (pane.awaitText(\"api-line\", Duration.ofSeconds(5)) == TextOutcome.TIMED_OUT) {\n throw new IllegalStateException(\"timed out waiting for line output\");\n }\n var lines = pane.capture();\n for (String expected : List.of(\"api-keys\", \"api-line\")) {\n if (lines.stream().noneMatch(line -> line.strip().equals(expected))) {\n throw new IllegalStateException(\"capture is missing \" + expected);\n }\n System.out.println(expected);\n }\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.Capture && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"api-keys\napi-line\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":649,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.sendLine","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.sendLine","product":"core","slug":"io-github-libtmux-pane-pane-sendline"},{"id":"io.github.libtmux.Pane.Pane.identity","name":"identity","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"ServerIdentity identity()","params":[],"returns":"ServerIdentity","typeScopeBoundary":false}],"doc":{"summary":"Which server incarnation this pane belongs to: its echo record and its input hold."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":692,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.identity","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.identity","product":"core","slug":"io-github-libtmux-pane-pane-identity"},{"id":"io.github.libtmux.Pane.Pane.breakOut","name":"breakOut","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public Window breakOut()","params":[],"returns":"Window","typeScopeBoundary":false},{"raw":"@Operation(Kind.MUTATION)\n public Window breakOut(String windowName)","params":[{"name":"windowName","type":"String"}],"returns":"Window","typeScopeBoundary":false}],"doc":{"summary":"Moves this pane into a window of its own, leaving tmux to name it.","body":"On tmux 3.7 the name is supplied rather than left to tmux, because letting tmux choose it\nthere ends the server and every session on it. The name supplied is the one tmux would have\nchosen, so the result is the same window either way."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":703,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.breakOut","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.breakOut","product":"core","slug":"io-github-libtmux-pane-pane-breakout"},{"id":"io.github.libtmux.Pane.Pane.expand","name":"expand","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.READ)\n public String expand(String format)","params":[{"name":"format","type":"String","doc":"a tmux format, usually of the shape {@code #{name}}"}],"returns":"String","typeScopeBoundary":false,"returnsDoc":"the expansion, whole when it spans lines and empty when the format expanded to nothing"}],"doc":{"summary":"Expands a tmux format in this pane's context, and answers with what it came to.","body":"The way out of this library. Snapshots carry the fields worth carrying; a format reaches\neverything else tmux knows, including fields added by a release this code has never heard of.","examples":[{"lang":"java","code":"String title = pane.expand(\"#{pane_title}\");\nString where = pane.expand(\"#{session_name}:#{window_index}.#{pane_index}\");"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":732,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.expand","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.expand","product":"core","slug":"io-github-libtmux-pane-pane-expand"},{"id":"io.github.libtmux.Pane.Pane.variables","name":"variables","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public Map variables(List names)","params":[{"name":"names","type":"List"}],"returns":"Map","typeScopeBoundary":false}],"doc":{"summary":"Reads validated tmux variables in this pane's format context."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":742,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.variables","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.variables","product":"core","slug":"io-github-libtmux-pane-pane-variables"},{"id":"io.github.libtmux.Pane.Pane.respawn","name":"respawn","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void respawn()","params":[],"returns":"void","typeScopeBoundary":false},{"raw":"@Operation(Kind.MUTATION)\n public void respawn(String... command)","params":[{"name":"command","type":"String","variadic":"positional","doc":"the command and its arguments"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Kills whatever runs here and starts the pane's default command again.","body":"tmux refuses to respawn a pane that is still running something, on every supported release,\nso what is asked for is always the killing form. Restarting a live process is the whole point\nof the call."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":755,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.respawn","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.respawn","product":"core","slug":"io-github-libtmux-pane-pane-respawn"},{"id":"io.github.libtmux.Pane.Pane.respawnIn","name":"respawnIn","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void respawnIn(Path directory)","params":[{"name":"directory","type":"Path"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Restarts the configured pane process in a caller-supplied literal directory, resolved against this process's working directory when relative."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":764,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.respawnIn","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.respawnIn","product":"core","slug":"io-github-libtmux-pane-pane-respawnin"},{"id":"io.github.libtmux.Pane.Pane.respawnArgv","name":"respawnArgv","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"static List respawnArgv(PaneId pane, Path directory)","params":[{"name":"pane","type":"PaneId"},{"name":"directory","type":"Path"}],"returns":"List","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":770,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.respawnArgv","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.respawnArgv","product":"core","slug":"io-github-libtmux-pane-pane-respawnargv"},{"id":"io.github.libtmux.Pane.Pane.pipeTo","name":"pipeTo","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void pipeTo(String shellCommand)","params":[{"name":"shellCommand","type":"String","doc":"run by the user's shell, so it may redirect and pipe"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Sends everything this pane prints to a shell command, until {@link #stopPiping}.","body":"A second call replaces the first: tmux keeps one pipe per pane, not a list.\n\ntmux expands {@code #(...)} in this command before a shell sees it, and shell quoting does\nnot prevent that. Pass any interpolated value through {@link TmuxFormats#literal} unless you\nmean it to be expanded."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":807,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.pipeTo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.pipeTo","product":"core","slug":"io-github-libtmux-pane-pane-pipeto"},{"id":"io.github.libtmux.Pane.Pane.stopPiping","name":"stopPiping","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void stopPiping()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Stops sending this pane's output anywhere. Doing so twice is not an error."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":814,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.stopPiping","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.stopPiping","product":"core","slug":"io-github-libtmux-pane-pane-stoppiping"},{"id":"io.github.libtmux.Pane.Pane.split","name":"split","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public Pane split()","params":[],"returns":"Pane","typeScopeBoundary":false,"returnsDoc":"the pane that appeared"},{"raw":"@Operation(Kind.MUTATION)\n public Pane split(Consumer configure)","params":[{"name":"configure","type":"Consumer","doc":"receives a builder holding tmux's defaults"}],"returns":"Pane","typeScopeBoundary":false,"returnsDoc":"the pane that appeared","raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something this server does not have"},{"type":"TargetGoneException","doc":"if a command with no {@link SplitSpec.Builder#keepOnExit} exits before the pane it ran in can be read back — see {@link SplitSpec.Builder#running}. tmux still made the pane and ran the command; only this confirming read lost the race."}]},{"raw":"@Operation(Kind.MUTATION)\n public Pane split(SplitSpec spec)","params":[{"name":"spec","type":"SplitSpec"}],"returns":"Pane","typeScopeBoundary":false,"returnsDoc":"the pane that appeared","raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something this server does not have"},{"type":"TargetGoneException","doc":"if a command with no {@link SplitSpec.Builder#keepOnExit} exits before the pane it ran in can be read back — see {@link SplitSpec.Builder#running}. tmux still made the pane and ran the command; only this confirming read lost the race."}]}],"doc":{"summary":"Splits this pane in half, putting the new one below it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":855,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.split","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.split","product":"core","slug":"io-github-libtmux-pane-pane-split"},{"id":"io.github.libtmux.Pane.Pane.created","name":"created","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"static Pane created(Server server, ServerSnapshot previous, List argv)","params":[{"name":"server","type":"Server"},{"name":"previous","type":"ServerSnapshot"},{"name":"argv","type":"List"}],"returns":"Pane","typeScopeBoundary":true}],"doc":{"summary":"Runs a command that reports one new pane, and hands back a handle on it.","body":"The creating command names the pane it made, so the result is exact rather than whichever\npane a fresh listing happens to put last — two splits racing would otherwise be\nindistinguishable."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":903,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.created","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.created","product":"core","slug":"io-github-libtmux-pane-pane-created"},{"id":"io.github.libtmux.Pane.Pane.createdFormat","name":"createdFormat","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"static String createdFormat()","params":[],"returns":"String","typeScopeBoundary":true}],"doc":{"summary":"The format a creating command reports its new pane through."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":918,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.createdFormat","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.createdFormat","product":"core","slug":"io-github-libtmux-pane-pane-createdformat"},{"id":"io.github.libtmux.Pane.Pane.pasteBuffer","name":"pasteBuffer","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void pasteBuffer(String name)","params":[{"name":"name","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Pastes a named buffer into this pane, as though it had been typed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":923,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.pasteBuffer","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.pasteBuffer","product":"core","slug":"io-github-libtmux-pane-pane-pastebuffer"},{"id":"io.github.libtmux.Pane.Pane.paste","name":"paste","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void paste(String text)","params":[{"name":"text","type":"String"}],"returns":"void","typeScopeBoundary":false,"raises":[{"type":"IllegalArgumentException","doc":"if the text contains NUL, which a terminal cannot receive and {@link #send} refuses too"},{"type":"UnsupportedFeatureException","doc":"before tmux 3.4, where deleting the buffer left by a failed paste can remove one this did not create"}]},{"raw":"@Operation(Kind.MUTATION)\n public void paste(String text, Runnable beforePaste)","params":[{"name":"text","type":"String"},{"name":"beforePaste","type":"Runnable","doc":"runs after staging and immediately before the paste dispatch"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Pastes text into this pane as one block, leaving nothing behind on the server.","body":"Nothing in the text is looked up as a key name, so a line containing {@code Enter} or a\nbracket arrives as those characters. That is what an editor, a REPL, or anything reading a\nhere-document needs, and it is the difference from {@link #send}.\n\ntmux needs a buffer to paste from, and this one travels in the same invocation as the paste\nthat consumes it. A caller that stops in between therefore cannot leave the text in the paste\nhistory every session on the server can read.\n\nThe text goes to tmux on standard input rather than as an argument, so it is not bounded by\nthe size of a tmux command and never reaches tmux's parser."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":953,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.paste","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.paste","product":"core","slug":"io-github-libtmux-pane-pane-paste"},{"id":"io.github.libtmux.Pane.Pane.clearHistory","name":"clearHistory","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void clearHistory()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Discards this pane's scrollback."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":1050,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.clearHistory","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.clearHistory","product":"core","slug":"io-github-libtmux-pane-pane-clearhistory"},{"id":"io.github.libtmux.Pane.Pane.swapWith","name":"swapWith","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void swapWith(Pane other)","params":[{"name":"other","type":"Pane"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Swaps this pane's position with another's."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":1056,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.swapWith","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.swapWith","product":"core","slug":"io-github-libtmux-pane-pane-swapwith"},{"id":"io.github.libtmux.Pane.Pane.joinTo","name":"joinTo","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void joinTo(Window window)","params":[{"name":"window","type":"Window"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Moves this pane into another window, splitting it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":1066,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.joinTo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.joinTo","product":"core","slug":"io-github-libtmux-pane-pane-jointo"},{"id":"io.github.libtmux.Pane.Pane.kill","name":"kill","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void kill()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Closes this pane."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":1076,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.kill","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.kill","product":"core","slug":"io-github-libtmux-pane-pane-kill"},{"id":"io.github.libtmux.Pane.Pane.refresh","name":"refresh","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@CheckReturnValue\n @Operation(Kind.READ)\n public Pane refresh()","params":[],"returns":"Pane","typeScopeBoundary":false,"raises":[{"type":"TargetGoneException","doc":"if the pane is gone from a server that still answers"},{"type":"ServerUnavailableException","doc":"if no daemon is running"}]}],"doc":{"summary":"Takes a new capture and returns this pane as it is now.","body":"This handle remains unchanged. Use the returned handle for subsequent state reads."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":1090,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.refresh","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.refresh","product":"core","slug":"io-github-libtmux-pane-pane-refresh"},{"id":"io.github.libtmux.Pane.Pane.equals","name":"equals","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Override\n public boolean equals(Object other)","params":[{"name":"other","type":"Object"}],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":1101,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.equals","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.equals","product":"core","slug":"io-github-libtmux-pane-pane-equals"},{"id":"io.github.libtmux.Pane.Pane.hashCode","name":"hashCode","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Override\n public int hashCode()","params":[],"returns":"int","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":1108,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.hashCode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.hashCode","product":"core","slug":"io-github-libtmux-pane-pane-hashcode"},{"id":"io.github.libtmux.Pane.Pane.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.Pane.Pane","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Pane.java","line":1113,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane.Pane.toString","product":"core","slug":"io-github-libtmux-pane-pane-tostring"},{"id":"io.github.libtmux.PaneCommand.PaneCommand","name":"PaneCommand","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The line typed at a pane's shell to run one command to its end, and how its output is read back.","body":"Completion is not inferred from the screen. The command runs in a subshell whose trap prints an\nend marker carrying {@code $?} and then signals a private {@code wait-for} channel through the\nsame tmux binary and socket, so the wait is tmux's own and the status is the shell's. The trap\ncovers interrupt and terminate as well as exit, so a command someone stops with {@code C-c} ends\nthe run and reports the status it was stopped with — commonly 130 — rather than leaving a wait\nwith nothing to end it.\n\nThe output is cut out by framing: a start marker is printed before the command and the end\nmarker after it, and only lines strictly between them are returned. The shell echoes the whole\ntyped line, which contains both markers — but only inside quotes, never as a line of its own that\nequals a marker, so matching complete marker lines tells plumbing from output even when the echo\nwraps.\n\n{@link Pane#run} is built on this, and it is public for a caller that needs the same framing\naround orchestration of its own — the MCP server holds a pane for other clients while a run is\nuncertain, which the library has no reason to."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand","product":"core","slug":"io-github-libtmux-panecommand-panecommand"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.fresh","name":"fresh","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneCommand.PaneCommand","signatures":[{"raw":"public static PaneCommand fresh()","params":[],"returns":"PaneCommand","typeScopeBoundary":true}],"doc":{"summary":"A run with markers and a channel no other run shares."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","line":55,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.fresh","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.fresh","product":"core","slug":"io-github-libtmux-panecommand-panecommand-fresh"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.channel","name":"channel","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneCommand.PaneCommand","signatures":[{"raw":"public String channel()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The {@code wait-for} channel the typed line signals once the command has ended."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.channel","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.channel","product":"core","slug":"io-github-libtmux-panecommand-panecommand-channel"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.typed","name":"typed","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneCommand.PaneCommand","signatures":[{"raw":"public String typed(List tmux, String command)","params":[{"name":"tmux","type":"List","doc":"the client the pane's shell calls: an absolute binary and its {@code -S} socket"},{"name":"command","type":"String"}],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The line to type.","body":"Typed at the pane's own interactive shell rather than a fresh one, so the command sees the\nenvironment a person set up there — a virtualenv, a loaded module, a directory someone changed\ninto. The leading space asks bash ({@code HISTCONTROL=ignorespace}) and zsh ({@code\nHIST_IGNORE_SPACE}) to keep the plumbing out of the history; a shell set to neither records it.\nBuiltins are called as {@code \\\\trap}, {@code \\\\eval} and {@code \\\\exit} so an alias of the same\nname cannot take them over.\n\nThe line begins with that space; strip it to have the shell record the line like any other."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","line":80,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.typed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.typed","product":"core","slug":"io-github-libtmux-panecommand-panecommand-typed"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.frame","name":"frame","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneCommand.PaneCommand","signatures":[{"raw":"public Framed frame(List lines)","params":[{"name":"lines","type":"List"}],"returns":"Framed","typeScopeBoundary":false}],"doc":{"summary":"What lies between the two markers, and the status the end marker carried.","body":"The start marker is matched as a whole row after trimming, the end marker as the end of\none — never by containment, because the echo of the typed line holds both as substrings and\nmust not be mistaken for either. The asymmetry is the shell's: nothing can precede the start\nmarker on its row, since it prints before the command runs, while the command's own last line\nprecedes the end marker whenever it carried no closing newline. That line is output, and is\nreturned as such."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","line":102,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.frame","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.frame","product":"core","slug":"io-github-libtmux-panecommand-panecommand-frame"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.status","name":"status","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneCommand.PaneCommand","signatures":[{"raw":"public OptionalInt status(String line)","params":[{"name":"line","type":"String"}],"returns":"OptionalInt","typeScopeBoundary":false}],"doc":{"summary":"The exit status a row carries at its end, or empty when the row does not end in one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","line":174,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.status","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.status","product":"core","slug":"io-github-libtmux-panecommand-panecommand-status"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.Framed","name":"Framed","kind":"class","modifiers":[],"parent":"io.github.libtmux.PaneCommand.PaneCommand","signatures":[{"raw":"public record Framed(@ReadOnly List lines, boolean exact, OptionalInt status)","params":[{"name":"lines","type":"List","doc":"the command's output"},{"name":"exact","type":"boolean","doc":"whether both markers were found, so the lines are only the command's output"},{"name":"status","type":"OptionalInt","doc":"the exit status, when the end marker was read"}]}],"typeScopeBoundary":true,"doc":{"summary":"A run's output as read back from the screen."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","line":199,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.Framed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.Framed","product":"core","slug":"io-github-libtmux-panecommand-panecommand-framed"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.Framed.lines","name":"lines","kind":"method","parent":"io.github.libtmux.PaneCommand.PaneCommand.Framed","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the command's output"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.Framed.lines","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.Framed.lines","product":"core","slug":"io-github-libtmux-panecommand-panecommand-framed-lines"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.Framed.exact","name":"exact","kind":"method","parent":"io.github.libtmux.PaneCommand.PaneCommand.Framed","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether both markers were found, so the lines are only the command's output"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.Framed.exact","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.Framed.exact","product":"core","slug":"io-github-libtmux-panecommand-panecommand-framed-exact"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.Framed.status","name":"status","kind":"method","parent":"io.github.libtmux.PaneCommand.PaneCommand.Framed","modifiers":[],"signatures":[{"params":[],"returns":"OptionalInt"}],"doc":{"summary":"the exit status, when the end marker was read"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.Framed.status","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.Framed.status","product":"core","slug":"io-github-libtmux-panecommand-panecommand-framed-status"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.requirePosixShell","name":"requirePosixShell","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneCommand.PaneCommand","signatures":[{"raw":"static void requirePosixShell(String current)","params":[{"name":"current","type":"String"}],"returns":"void","typeScopeBoundary":true}],"doc":{"summary":"Refuses a pane whose shell would not read the typed line as written."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","line":207,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.requirePosixShell","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.requirePosixShell","product":"core","slug":"io-github-libtmux-panecommand-panecommand-requireposixshell"},{"id":"io.github.libtmux.PaneCommand.PaneCommand.quote","name":"quote","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneCommand.PaneCommand","signatures":[{"raw":"static String quote(String word)","params":[{"name":"word","type":"String"}],"returns":"String","typeScopeBoundary":true}],"doc":{"summary":"One word, quoted so a POSIX shell reads it as exactly the text given."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneCommand.java","line":220,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneCommand.quote","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneCommand.PaneCommand.quote","product":"core","slug":"io-github-libtmux-panecommand-panecommand-quote"},{"id":"io.github.libtmux.PaneEcho.PaneEcho","name":"PaneEcho","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Tracks pending and recently submitted input under each server incarnation and pane id."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho","product":"core","slug":"io-github-libtmux-paneecho-paneecho"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.Live","name":"Live","kind":"class","modifiers":[],"parent":"io.github.libtmux.PaneEcho.PaneEcho","signatures":[{"raw":"record Live(@ReadOnly List pending, @ReadOnly List recent)","params":[{"name":"pending","type":"List"},{"name":"recent","type":"List"}]}],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":48,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.Live","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.Live","product":"core","slug":"io-github-libtmux-paneecho-paneecho-live"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.Live.NONE","name":"NONE","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.PaneEcho.PaneEcho.Live","signatures":[],"typeScopeBoundary":true,"type":"Live","value":"new Live(List.of(), List.of())","source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.Live.NONE","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.Live.NONE","product":"core","slug":"io-github-libtmux-paneecho-paneecho-live-none"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.Live.pending","name":"pending","kind":"method","parent":"io.github.libtmux.PaneEcho.PaneEcho.Live","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.Live.pending","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.Live.pending","product":"core","slug":"io-github-libtmux-paneecho-paneecho-live-pending"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.Live.recent","name":"recent","kind":"method","parent":"io.github.libtmux.PaneEcho.PaneEcho.Live","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.Live.recent","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.Live.recent","product":"core","slug":"io-github-libtmux-paneecho-paneecho-live-recent"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.PaneEcho","name":"PaneEcho","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.PaneEcho.PaneEcho","signatures":[{"raw":"PaneEcho()","params":[],"typeScopeBoundary":false},{"raw":"PaneEcho(LongSupplier nanoTime)","params":[{"name":"nanoTime","type":"LongSupplier"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":246,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.PaneEcho","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.PaneEcho","product":"core","slug":"io-github-libtmux-paneecho-paneecho-paneecho"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.Recorded","name":"Recorded","kind":"class","modifiers":["readonly"],"parent":"io.github.libtmux.PaneEcho.PaneEcho","signatures":[],"typeScopeBoundary":false,"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":254,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.Recorded","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.Recorded","product":"core","slug":"io-github-libtmux-paneecho-paneecho-recorded"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.Recorded.confirm","name":"confirm","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneEcho.PaneEcho.Recorded","signatures":[{"raw":"void confirm()","params":[],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":269,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.Recorded.confirm","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.Recorded.confirm","product":"core","slug":"io-github-libtmux-paneecho-paneecho-recorded-confirm"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.Recorded.rollback","name":"rollback","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneEcho.PaneEcho.Recorded","signatures":[{"raw":"void rollback()","params":[],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":297,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.Recorded.rollback","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.Recorded.rollback","product":"core","slug":"io-github-libtmux-paneecho-paneecho-recorded-rollback"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.recordLiteral","name":"recordLiteral","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneEcho.PaneEcho","signatures":[{"raw":"Recorded recordLiteral(ServerIdentity identity, PaneId pane, String text)","params":[{"name":"identity","type":"ServerIdentity"},{"name":"pane","type":"PaneId"},{"name":"text","type":"String"}],"returns":"Recorded","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":366,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.recordLiteral","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.recordLiteral","product":"core","slug":"io-github-libtmux-paneecho-paneecho-recordliteral"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.recordKeys","name":"recordKeys","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneEcho.PaneEcho","signatures":[{"raw":"Recorded recordKeys(ServerIdentity identity, PaneId pane, List keys)","params":[{"name":"identity","type":"ServerIdentity"},{"name":"pane","type":"PaneId"},{"name":"keys","type":"List"}],"returns":"Recorded","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":370,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.recordKeys","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.recordKeys","product":"core","slug":"io-github-libtmux-paneecho-paneecho-recordkeys"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.size","name":"size","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneEcho.PaneEcho","signatures":[{"raw":"int size()","params":[],"returns":"int","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":374,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.size","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.size","product":"core","slug":"io-github-libtmux-paneecho-paneecho-size"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.forget","name":"forget","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneEcho.PaneEcho","signatures":[{"raw":"void forget(ServerIdentity identity, PaneId pane)","params":[{"name":"identity","type":"ServerIdentity"},{"name":"pane","type":"PaneId"}],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":378,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.forget","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.forget","product":"core","slug":"io-github-libtmux-paneecho-paneecho-forget"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.liveFor","name":"liveFor","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneEcho.PaneEcho","signatures":[{"raw":"Live liveFor(ServerIdentity identity, PaneId pane)","params":[{"name":"identity","type":"ServerIdentity"},{"name":"pane","type":"PaneId"}],"returns":"Live","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":382,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.liveFor","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.liveFor","product":"core","slug":"io-github-libtmux-paneecho-paneecho-livefor"},{"id":"io.github.libtmux.PaneEcho.PaneEcho.withoutEcho","name":"withoutEcho","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.PaneEcho.PaneEcho","signatures":[{"raw":"static List withoutEcho(List lines, List echoes)","params":[{"name":"lines","type":"List"},{"name":"echoes","type":"List"}],"returns":"List","typeScopeBoundary":true},{"raw":"static List withoutEcho(List lines, String echo)","params":[{"name":"lines","type":"List"},{"name":"echo","type":"String"}],"returns":"List","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEcho.java","line":396,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEcho.withoutEcho","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEcho.PaneEcho.withoutEcho","product":"core","slug":"io-github-libtmux-paneecho-paneecho-withoutecho"},{"id":"io.github.libtmux.PaneEdges.PaneEdges","name":"PaneEdges","kind":"class","modifiers":[],"signatures":[{"raw":"public record PaneEdges(boolean top, boolean bottom, boolean left, boolean right)","params":[{"name":"top","type":"boolean","doc":"whether the pane touches the top of its window"},{"name":"bottom","type":"boolean","doc":"whether it touches the bottom"},{"name":"left","type":"boolean","doc":"whether it touches the left"},{"name":"right","type":"boolean","doc":"whether it touches the right"}]}],"typeScopeBoundary":false,"doc":{"summary":"Which sides of its window a pane touches.","body":"Grouped rather than four loose flags, because they are read together to answer one question —\nwhere in the window this pane sits — and four booleans in a row is an invitation to transpose two."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEdges.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEdges","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEdges.PaneEdges","product":"core","slug":"io-github-libtmux-paneedges-paneedges"},{"id":"io.github.libtmux.PaneEdges.PaneEdges.fillsWindow","name":"fillsWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneEdges.PaneEdges","signatures":[{"raw":"public boolean fillsWindow()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether the pane fills its window, touching every side."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEdges.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEdges.fillsWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEdges.PaneEdges.fillsWindow","product":"core","slug":"io-github-libtmux-paneedges-paneedges-fillswindow"},{"id":"io.github.libtmux.PaneEdges.PaneEdges.top","name":"top","kind":"method","parent":"io.github.libtmux.PaneEdges.PaneEdges","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether the pane touches the top of its window"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEdges.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEdges.top","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEdges.PaneEdges.top","product":"core","slug":"io-github-libtmux-paneedges-paneedges-top"},{"id":"io.github.libtmux.PaneEdges.PaneEdges.bottom","name":"bottom","kind":"method","parent":"io.github.libtmux.PaneEdges.PaneEdges","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether it touches the bottom"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEdges.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEdges.bottom","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEdges.PaneEdges.bottom","product":"core","slug":"io-github-libtmux-paneedges-paneedges-bottom"},{"id":"io.github.libtmux.PaneEdges.PaneEdges.left","name":"left","kind":"method","parent":"io.github.libtmux.PaneEdges.PaneEdges","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether it touches the left"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEdges.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEdges.left","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEdges.PaneEdges.left","product":"core","slug":"io-github-libtmux-paneedges-paneedges-left"},{"id":"io.github.libtmux.PaneEdges.PaneEdges.right","name":"right","kind":"method","parent":"io.github.libtmux.PaneEdges.PaneEdges","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether it touches the right"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneEdges.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneEdges.right","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneEdges.PaneEdges.right","product":"core","slug":"io-github-libtmux-paneedges-paneedges-right"},{"id":"io.github.libtmux.PaneId.PaneId","name":"PaneId","kind":"class","modifiers":[],"signatures":[{"raw":"public record PaneId(String value)","params":[{"name":"value","type":"String","doc":"the id including its {@code %} sigil"}]}],"typeScopeBoundary":false,"doc":{"summary":"A tmux pane id, such as {@code %2}.","body":"Stable for the life of the pane, unlike a pane index, which shifts as neighbours come and go."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneId.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneId","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneId.PaneId","product":"core","slug":"io-github-libtmux-paneid-paneid"},{"id":"io.github.libtmux.PaneId.PaneId.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneId.PaneId","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneId.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneId.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneId.PaneId.toString","product":"core","slug":"io-github-libtmux-paneid-paneid-tostring"},{"id":"io.github.libtmux.PaneId.PaneId.value","name":"value","kind":"method","parent":"io.github.libtmux.PaneId.PaneId","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the id including its {@code %} sigil"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneId.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneId.value","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneId.PaneId.value","product":"core","slug":"io-github-libtmux-paneid-paneid-value"},{"id":"io.github.libtmux.PaneInput.PaneInput","name":"PaneInput","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"One writer at a time for a pane's keyboard, paste, and shell run.","body":"Those three share one screen. {@link #hold} throws if another thread already has the pane.\nThe same thread may hold it again; the pane is free when the outer hold closes. {@link\nPane#sendKeys}, {@link Pane#sendLiteral}, {@link Pane#paste}, {@link Pane#pasteBuffer}, and {@link\nPane#run} take a hold for the call and release it when they return. A command still running after\n{@code run} returns is not held unless the caller kept {@link #hold} or {@link #holdInterruptible}\naround that call. Raw commands and {@link CommandChain} steps do not take it.\n\n{@link #holdInterruptible} is that longer hold. Another thread may {@link #enterInterrupt} it\nto send a stop, and that entry does not take the pane. Closing the run's lease still releases\nit, including from the thread that notices the command has finished."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput","product":"core","slug":"io-github-libtmux-paneinput-paneinput"},{"id":"io.github.libtmux.PaneInput.PaneInput.hold","name":"hold","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneInput.PaneInput","signatures":[{"raw":"public static Lease hold(Pane pane)","params":[{"name":"pane","type":"Pane"}],"returns":"Lease","typeScopeBoundary":true}],"doc":{"summary":"Excludes other threads from this pane until the lease closes. The pane is the one its capture named: the same id on a server started since is another pane, and is not held."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.hold","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.hold","product":"core","slug":"io-github-libtmux-paneinput-paneinput-hold"},{"id":"io.github.libtmux.PaneInput.PaneInput.holdInterruptible","name":"holdInterruptible","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneInput.PaneInput","signatures":[{"raw":"public static Lease holdInterruptible(Pane pane)","params":[{"name":"pane","type":"Pane"}],"returns":"Lease","typeScopeBoundary":true}],"doc":{"summary":"Holds the pane for a command that another thread may have to stop.","body":"The stop uses {@link #enterInterrupt}. Any other attempt to {@link #hold} still fails."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.holdInterruptible","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.holdInterruptible","product":"core","slug":"io-github-libtmux-paneinput-paneinput-holdinterruptible"},{"id":"io.github.libtmux.PaneInput.PaneInput.enterInterrupt","name":"enterInterrupt","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneInput.PaneInput","signatures":[{"raw":"public static Lease enterInterrupt(Pane pane)","params":[{"name":"pane","type":"Pane"}],"returns":"Lease","typeScopeBoundary":true}],"doc":{"summary":"Enters a pane {@link #holdInterruptible} is holding, without taking it.","body":"Closing this lease leaves the run's hold in place. A pane that is free, or held by\n{@link #hold}, refuses the entry."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.enterInterrupt","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.enterInterrupt","product":"core","slug":"io-github-libtmux-paneinput-paneinput-enterinterrupt"},{"id":"io.github.libtmux.PaneInput.PaneInput.heldSince","name":"heldSince","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneInput.PaneInput","signatures":[{"raw":"public static Optional heldSince(Pane pane)","params":[{"name":"pane","type":"Pane"}],"returns":"Optional","typeScopeBoundary":true,"returnsDoc":"empty when the pane is not held"}],"doc":{"summary":"Reports when the current hold on this pane was acquired, so a lease nothing ever closes can be found from outside the thread holding it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.heldSince","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.heldSince","product":"core","slug":"io-github-libtmux-paneinput-paneinput-heldsince"},{"id":"io.github.libtmux.PaneInput.PaneInput.held","name":"held","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneInput.PaneInput","signatures":[{"raw":"@ReadOnly\n public static List held()","params":[],"returns":"List","typeScopeBoundary":true,"returnsDoc":"an immutable snapshot, one entry per held pane regardless of how many times its owning thread has re-entered it"}],"doc":{"summary":"Every pane held right now, for diagnosing a lease nothing ever closes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","line":94,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.held","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.held","product":"core","slug":"io-github-libtmux-paneinput-paneinput-held-16tz"},{"id":"io.github.libtmux.PaneInput.PaneInput.Held","name":"Held","kind":"class","modifiers":[],"parent":"io.github.libtmux.PaneInput.PaneInput","signatures":[{"raw":"public record Held(ServerIdentity server, PaneId pane, Instant since, String holdingThread)","params":[{"name":"server","type":"ServerIdentity","doc":"which server's pane this is"},{"name":"pane","type":"PaneId","doc":"the held pane"},{"name":"since","type":"Instant","doc":"when the hold was acquired"},{"name":"holdingThread","type":"String","doc":"the name of the thread that holds it"}]}],"typeScopeBoundary":true,"doc":{"summary":"One pane's outstanding hold."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","line":115,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.Held","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.Held","product":"core","slug":"io-github-libtmux-paneinput-paneinput-held-6kxu"},{"id":"io.github.libtmux.PaneInput.PaneInput.Held.server","name":"server","kind":"method","parent":"io.github.libtmux.PaneInput.PaneInput.Held","modifiers":[],"signatures":[{"params":[],"returns":"ServerIdentity"}],"doc":{"summary":"which server's pane this is"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.Held.server","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.Held.server","product":"core","slug":"io-github-libtmux-paneinput-paneinput-held-server"},{"id":"io.github.libtmux.PaneInput.PaneInput.Held.pane","name":"pane","kind":"method","parent":"io.github.libtmux.PaneInput.PaneInput.Held","modifiers":[],"signatures":[{"params":[],"returns":"PaneId"}],"doc":{"summary":"the held pane"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.Held.pane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.Held.pane","product":"core","slug":"io-github-libtmux-paneinput-paneinput-held-pane"},{"id":"io.github.libtmux.PaneInput.PaneInput.Held.since","name":"since","kind":"method","parent":"io.github.libtmux.PaneInput.PaneInput.Held","modifiers":[],"signatures":[{"params":[],"returns":"Instant"}],"doc":{"summary":"when the hold was acquired"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.Held.since","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.Held.since","product":"core","slug":"io-github-libtmux-paneinput-paneinput-held-since"},{"id":"io.github.libtmux.PaneInput.PaneInput.Held.holdingThread","name":"holdingThread","kind":"method","parent":"io.github.libtmux.PaneInput.PaneInput.Held","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the name of the thread that holds it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.Held.holdingThread","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.Held.holdingThread","product":"core","slug":"io-github-libtmux-paneinput-paneinput-held-holdingthread"},{"id":"io.github.libtmux.PaneInput.PaneInput.Lease","name":"Lease","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.PaneInput.PaneInput","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Releases one matching hold. Closing twice releases once. Any thread may close it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","line":148,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.Lease","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.Lease","product":"core","slug":"io-github-libtmux-paneinput-paneinput-lease"},{"id":"io.github.libtmux.PaneInput.PaneInput.Lease.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneInput.PaneInput.Lease","signatures":[{"raw":"@Override\n public void close()","params":[],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneInput.java","line":162,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneInput.Lease.close","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneInput.PaneInput.Lease.close","product":"core","slug":"io-github-libtmux-paneinput-paneinput-lease-close"},{"id":"io.github.libtmux.PaneMode.PaneMode","name":"PaneMode","kind":"enum","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"A mode a pane can be in, as tmux names them.","body":"A pane in a mode shows something other than its program: its own scrollback, a clock, or one of\nthe choosers. Every mode below exists on each supported release."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode","product":"core","slug":"io-github-libtmux-panemode-panemode"},{"id":"io.github.libtmux.PaneMode.PaneMode.COPY","name":"COPY","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Scrollback, navigable and selectable. Entered by {@link Pane#copyMode()}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.COPY","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.COPY","product":"core","slug":"io-github-libtmux-panemode-panemode-copy"},{"id":"io.github.libtmux.PaneMode.PaneMode.VIEW","name":"VIEW","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Scrollback without the selection commands.","body":"tmux enters this itself, for the output of a command it was asked to display; no command\nhere puts a pane into it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.VIEW","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.VIEW","product":"core","slug":"io-github-libtmux-panemode-panemode-view"},{"id":"io.github.libtmux.PaneMode.PaneMode.CLOCK","name":"CLOCK","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"A clock, entered by tmux's {@code clock-mode}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.CLOCK","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.CLOCK","product":"core","slug":"io-github-libtmux-panemode-panemode-clock"},{"id":"io.github.libtmux.PaneMode.PaneMode.TREE","name":"TREE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"The session and window browser, which the window finder also opens."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.TREE","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.TREE","product":"core","slug":"io-github-libtmux-panemode-panemode-tree"},{"id":"io.github.libtmux.PaneMode.PaneMode.CLIENT","name":"CLIENT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"The attached-client browser."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.CLIENT","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.CLIENT","product":"core","slug":"io-github-libtmux-panemode-panemode-client"},{"id":"io.github.libtmux.PaneMode.PaneMode.BUFFER","name":"BUFFER","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"The paste-buffer browser."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.BUFFER","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.BUFFER","product":"core","slug":"io-github-libtmux-panemode-panemode-buffer"},{"id":"io.github.libtmux.PaneMode.PaneMode.OPTIONS","name":"OPTIONS","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"The option browser, entered by tmux's {@code customize-mode}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.OPTIONS","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.OPTIONS","product":"core","slug":"io-github-libtmux-panemode-panemode-options"},{"id":"io.github.libtmux.PaneMode.PaneMode.PaneMode","name":"PaneMode","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[{"raw":"PaneMode(String reported)","params":[{"name":"reported","type":"String"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":42,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.PaneMode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.PaneMode","product":"core","slug":"io-github-libtmux-panemode-panemode-panemode"},{"id":"io.github.libtmux.PaneMode.PaneMode.reported","name":"reported","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[{"raw":"public String reported()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"What tmux calls it, which is what {@code #{pane_mode}} expands to."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.reported","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.reported","product":"core","slug":"io-github-libtmux-panemode-panemode-reported"},{"id":"io.github.libtmux.PaneMode.PaneMode.of","name":"of","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneMode.PaneMode","signatures":[{"raw":"static PaneMode of(String reported)","params":[{"name":"reported","type":"String"}],"returns":"PaneMode","typeScopeBoundary":true,"raises":[{"type":"LibTmuxException","doc":"if this tmux named a mode this release range does not have"}]}],"doc":{"summary":"Reads what tmux reported."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneMode.java","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneMode.of","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneMode.PaneMode.of","product":"core","slug":"io-github-libtmux-panemode-panemode-of"},{"id":"io.github.libtmux.PanePosition.PanePosition","name":"PanePosition","kind":"class","modifiers":[],"signatures":[{"raw":"public record PanePosition(int left, int top)","params":[{"name":"left","type":"int","doc":"columns from the window's left edge"},{"name":"top","type":"int","doc":"rows from the window's top edge"}]}],"typeScopeBoundary":false,"doc":{"summary":"Where a pane's top-left corner sits in its window, in terminal cells.","body":"A pair rather than two loose numbers, for the reason {@link Dimensions} gives: read together,\nand a call site that took them separately could transpose them without the compiler noticing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PanePosition.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PanePosition","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PanePosition.PanePosition","product":"core","slug":"io-github-libtmux-paneposition-paneposition"},{"id":"io.github.libtmux.PanePosition.PanePosition.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.PanePosition.PanePosition","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PanePosition.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PanePosition.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PanePosition.PanePosition.toString","product":"core","slug":"io-github-libtmux-paneposition-paneposition-tostring"},{"id":"io.github.libtmux.PanePosition.PanePosition.left","name":"left","kind":"method","parent":"io.github.libtmux.PanePosition.PanePosition","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"columns from the window's left edge"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PanePosition.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PanePosition.left","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PanePosition.PanePosition.left","product":"core","slug":"io-github-libtmux-paneposition-paneposition-left"},{"id":"io.github.libtmux.PanePosition.PanePosition.top","name":"top","kind":"method","parent":"io.github.libtmux.PanePosition.PanePosition","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"rows from the window's top edge"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PanePosition.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PanePosition.top","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PanePosition.PanePosition.top","product":"core","slug":"io-github-libtmux-paneposition-paneposition-top"},{"id":"io.github.libtmux.PaneRun.PaneRun","name":"PaneRun","kind":"class","modifiers":[],"signatures":[{"raw":"public record PaneRun(\n Outcome outcome, OptionalInt exitStatus, @ReadOnly List output, boolean exact)","params":[{"name":"outcome","type":"Outcome","doc":"why the wait ended"},{"name":"exitStatus","type":"OptionalInt","doc":"the command's exit status, present once it finished and its end was read"},{"name":"output","type":"List","doc":"what the command printed, one element per line, without the plumbing around it. Lines tmux wrapped are rejoined"},{"name":"exact","type":"boolean","doc":"whether the output was cut out between both of its markers, so it is the command's and nothing else. False when the output outgrew the pane's history or the command cleared the screen, or when the command had not finished by the deadline"}]}],"typeScopeBoundary":false,"doc":{"summary":"How a command run in a pane with {@link Pane#run} ended, and what it printed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun","product":"core","slug":"io-github-libtmux-panerun-panerun"},{"id":"io.github.libtmux.PaneRun.PaneRun.Outcome","name":"Outcome","kind":"enum","modifiers":[],"parent":"io.github.libtmux.PaneRun.PaneRun","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Why a run's wait ended."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun.Outcome","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun.Outcome","product":"core","slug":"io-github-libtmux-panerun-panerun-outcome"},{"id":"io.github.libtmux.PaneRun.PaneRun.Outcome.FINISHED","name":"FINISHED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneRun.PaneRun.Outcome","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"The command ended; its status is in {@link #exitStatus()}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun.Outcome.FINISHED","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun.Outcome.FINISHED","product":"core","slug":"io-github-libtmux-panerun-panerun-outcome-finished"},{"id":"io.github.libtmux.PaneRun.PaneRun.Outcome.TIMED_OUT","name":"TIMED_OUT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneRun.PaneRun.Outcome","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"The deadline passed with the command still running. The output is what it had printed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun.Outcome.TIMED_OUT","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun.Outcome.TIMED_OUT","product":"core","slug":"io-github-libtmux-panerun-panerun-outcome-timed_out"},{"id":"io.github.libtmux.PaneRun.PaneRun.Outcome.SERVER_GONE","name":"SERVER_GONE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.PaneRun.PaneRun.Outcome","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"The server went away underneath the command, so nothing about it can be relied on."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun.Outcome.SERVER_GONE","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun.Outcome.SERVER_GONE","product":"core","slug":"io-github-libtmux-panerun-panerun-outcome-server_gone"},{"id":"io.github.libtmux.PaneRun.PaneRun.succeeded","name":"succeeded","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneRun.PaneRun","signatures":[{"raw":"public boolean succeeded()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether the command finished with status zero."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun.succeeded","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun.succeeded","product":"core","slug":"io-github-libtmux-panerun-panerun-succeeded"},{"id":"io.github.libtmux.PaneRun.PaneRun.outcome","name":"outcome","kind":"method","parent":"io.github.libtmux.PaneRun.PaneRun","modifiers":[],"signatures":[{"params":[],"returns":"Outcome"}],"doc":{"summary":"why the wait ended"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun.outcome","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun.outcome","product":"core","slug":"io-github-libtmux-panerun-panerun-outcome-3ji4"},{"id":"io.github.libtmux.PaneRun.PaneRun.exitStatus","name":"exitStatus","kind":"method","parent":"io.github.libtmux.PaneRun.PaneRun","modifiers":[],"signatures":[{"params":[],"returns":"OptionalInt"}],"doc":{"summary":"the command's exit status, present once it finished and its end was read"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun.exitStatus","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun.exitStatus","product":"core","slug":"io-github-libtmux-panerun-panerun-exitstatus"},{"id":"io.github.libtmux.PaneRun.PaneRun.output","name":"output","kind":"method","parent":"io.github.libtmux.PaneRun.PaneRun","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"what the command printed, one element per line, without the plumbing around it. Lines tmux wrapped are rejoined"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun.output","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun.output","product":"core","slug":"io-github-libtmux-panerun-panerun-output"},{"id":"io.github.libtmux.PaneRun.PaneRun.exact","name":"exact","kind":"method","parent":"io.github.libtmux.PaneRun.PaneRun","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether the output was cut out between both of its markers, so it is the command's and nothing else. False when the output outgrew the pane's history or the command cleared the screen, or when the command had not finished by the deadline"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneRun.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneRun.exact","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneRun.PaneRun.exact","product":"core","slug":"io-github-libtmux-panerun-panerun-exact"},{"id":"io.github.libtmux.PaneSize.PaneSize","name":"PaneSize","kind":"interface","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"How big a new pane should be.","body":"One value with two spellings, not a size and a percentage. tmux takes both through {@code -l},\nso there is no pair of fields to hold consistent and no \"both were given\" error to raise — the\nPython sibling's {@code size}/{@code percentage} pair and the {@code ValueError} guarding it both\ndisappear.\n\ntmux's own {@code -p} flag is never emitted. It is broken in 3.4, which reads the {@code -l}\nargument while handling {@code -p} and fails with {@code size missing}; {@code -l 25%} produces the\nsame pane on every supported release."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneSize.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneSize","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneSize.PaneSize","product":"core","slug":"io-github-libtmux-panesize-panesize"},{"id":"io.github.libtmux.PaneSize.PaneSize.Cells","name":"Cells","kind":"class","modifiers":[],"parent":"io.github.libtmux.PaneSize.PaneSize","signatures":[{"raw":"record Cells(int count) implements PaneSize","params":[{"name":"count","type":"int"}]}],"typeScopeBoundary":true,"doc":{"summary":"A size in terminal cells."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneSize.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneSize.Cells","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneSize.PaneSize.Cells","product":"core","slug":"io-github-libtmux-panesize-panesize-cells-csva"},{"id":"io.github.libtmux.PaneSize.PaneSize.Cells.count","name":"count","kind":"method","parent":"io.github.libtmux.PaneSize.PaneSize.Cells","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneSize.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneSize.Cells.count","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneSize.PaneSize.Cells.count","product":"core","slug":"io-github-libtmux-panesize-panesize-cells-count"},{"id":"io.github.libtmux.PaneSize.PaneSize.Percent","name":"Percent","kind":"class","modifiers":[],"parent":"io.github.libtmux.PaneSize.PaneSize","signatures":[{"raw":"record Percent(int share) implements PaneSize","params":[{"name":"share","type":"int"}]}],"typeScopeBoundary":true,"doc":{"summary":"A share of what is being split."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneSize.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneSize.Percent","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneSize.PaneSize.Percent","product":"core","slug":"io-github-libtmux-panesize-panesize-percent-30sw"},{"id":"io.github.libtmux.PaneSize.PaneSize.Percent.share","name":"share","kind":"method","parent":"io.github.libtmux.PaneSize.PaneSize.Percent","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneSize.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneSize.Percent.share","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneSize.PaneSize.Percent.share","product":"core","slug":"io-github-libtmux-panesize-panesize-percent-share"},{"id":"io.github.libtmux.PaneSize.PaneSize.cells","name":"cells","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneSize.PaneSize","signatures":[{"raw":"static PaneSize cells(int count)","params":[{"name":"count","type":"int"}],"returns":"PaneSize","typeScopeBoundary":true}],"doc":{"summary":"A size in terminal cells."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneSize.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneSize.cells","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneSize.PaneSize.cells","product":"core","slug":"io-github-libtmux-panesize-panesize-cells-11uj"},{"id":"io.github.libtmux.PaneSize.PaneSize.percent","name":"percent","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneSize.PaneSize","signatures":[{"raw":"static PaneSize percent(int share)","params":[{"name":"share","type":"int"}],"returns":"PaneSize","typeScopeBoundary":true}],"doc":{"summary":"A share of what is being split, between 1 and 100."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneSize.java","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneSize.percent","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneSize.PaneSize.percent","product":"core","slug":"io-github-libtmux-panesize-panesize-percent-1ojv"},{"id":"io.github.libtmux.PaneSize.PaneSize.flagValue","name":"flagValue","kind":"method","modifiers":[],"parent":"io.github.libtmux.PaneSize.PaneSize","signatures":[{"raw":"default String flagValue()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"What follows {@code -l}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneSize.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneSize.flagValue","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneSize.PaneSize.flagValue","product":"core","slug":"io-github-libtmux-panesize-panesize-flagvalue"},{"id":"io.github.libtmux.PaneStart.PaneStart","name":"PaneStart","kind":"interface","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"What runs in a new pane.","body":"One choice rather than a command field beside an emptiness flag. tmux refuses the pair —\n{@code command cannot be given for empty pane} — and refuses it before spawning anything, so the\ncombination is not a state the server will ever be in. Sealing it means no value can carry both."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneStart.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneStart","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneStart.PaneStart","product":"core","slug":"io-github-libtmux-panestart-panestart"},{"id":"io.github.libtmux.PaneStart.PaneStart.Shell","name":"Shell","kind":"class","modifiers":[],"parent":"io.github.libtmux.PaneStart.PaneStart","signatures":[{"raw":"record Shell() implements PaneStart","params":[]}],"typeScopeBoundary":true,"doc":{"summary":"Whatever the session's {@code default-command} or shell is."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneStart.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneStart.Shell","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneStart.PaneStart.Shell","product":"core","slug":"io-github-libtmux-panestart-panestart-shell-x755"},{"id":"io.github.libtmux.PaneStart.PaneStart.Command","name":"Command","kind":"class","modifiers":[],"parent":"io.github.libtmux.PaneStart.PaneStart","signatures":[{"raw":"record Command(@ReadOnly List argv) implements PaneStart","params":[{"name":"argv","type":"List","doc":"the command and its arguments"}]}],"typeScopeBoundary":true,"doc":{"summary":"A command, which closes the pane when it exits unless the pane is kept."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneStart.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneStart.Command","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneStart.PaneStart.Command","product":"core","slug":"io-github-libtmux-panestart-panestart-command-o9ni"},{"id":"io.github.libtmux.PaneStart.PaneStart.Command.argv","name":"argv","kind":"method","parent":"io.github.libtmux.PaneStart.PaneStart.Command","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the command and its arguments"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneStart.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneStart.Command.argv","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneStart.PaneStart.Command.argv","product":"core","slug":"io-github-libtmux-panestart-panestart-command-argv"},{"id":"io.github.libtmux.PaneStart.PaneStart.Empty","name":"Empty","kind":"class","modifiers":[],"parent":"io.github.libtmux.PaneStart.PaneStart","signatures":[{"raw":"record Empty() implements PaneStart","params":[]}],"typeScopeBoundary":true,"doc":{"summary":"No process at all. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneStart.java","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneStart.Empty","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneStart.PaneStart.Empty","product":"core","slug":"io-github-libtmux-panestart-panestart-empty-1qmp"},{"id":"io.github.libtmux.PaneStart.PaneStart.shell","name":"shell","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneStart.PaneStart","signatures":[{"raw":"static PaneStart shell()","params":[],"returns":"PaneStart","typeScopeBoundary":true}],"doc":{"summary":"Whatever the session's shell is."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneStart.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneStart.shell","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneStart.PaneStart.shell","product":"core","slug":"io-github-libtmux-panestart-panestart-shell-kfg3"},{"id":"io.github.libtmux.PaneStart.PaneStart.command","name":"command","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneStart.PaneStart","signatures":[{"raw":"static PaneStart command(String... argv)","params":[{"name":"argv","type":"String","variadic":"positional"}],"returns":"PaneStart","typeScopeBoundary":true}],"doc":{"summary":"A command, which closes the pane when it exits unless the pane is kept."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneStart.java","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneStart.command","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneStart.PaneStart.command","product":"core","slug":"io-github-libtmux-panestart-panestart-command-vfqq"},{"id":"io.github.libtmux.PaneStart.PaneStart.empty","name":"empty","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneStart.PaneStart","signatures":[{"raw":"static PaneStart empty()","params":[],"returns":"PaneStart","typeScopeBoundary":true}],"doc":{"summary":"No process at all. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneStart.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneStart.empty","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneStart.PaneStart.empty","product":"core","slug":"io-github-libtmux-panestart-panestart-empty-1dv0"},{"id":"io.github.libtmux.PaneWait.PaneWait","name":"PaneWait","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Polls a pane on a timer for {@link Pane#awaitText} and {@link Pane#await}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneWait.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneWait","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneWait.PaneWait","product":"core","slug":"io-github-libtmux-panewait-panewait"},{"id":"io.github.libtmux.PaneWait.PaneWait.POLL","name":"POLL","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.PaneWait.PaneWait","signatures":[],"typeScopeBoundary":true,"type":"Duration","value":"Duration.ofMillis(50)","doc":{"summary":"How often a wait looks again.","body":"Short enough that a wait reports promptly, long enough that a wait held open for minutes\nis not thousands of tmux invocations. A caller who needs an exact moment wants a signal on a\n{@link Channel}, not a shorter interval here."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneWait.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneWait.POLL","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneWait.PaneWait.POLL","product":"core","slug":"io-github-libtmux-panewait-panewait-poll"},{"id":"io.github.libtmux.PaneWait.PaneWait.awaitText","name":"awaitText","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneWait.PaneWait","signatures":[{"raw":"static TextOutcome awaitText(Pane pane, String text, Duration timeout, Duration every) throws InterruptedException","params":[{"name":"pane","type":"Pane"},{"name":"text","type":"String"},{"name":"timeout","type":"Duration"},{"name":"every","type":"Duration"}],"returns":"TextOutcome","typeScopeBoundary":true}],"doc":{"summary":"{@link Pane#awaitText(String, Duration, Duration)}'s implementation."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneWait.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneWait.awaitText","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneWait.PaneWait.awaitText","product":"core","slug":"io-github-libtmux-panewait-panewait-awaittext"},{"id":"io.github.libtmux.PaneWait.PaneWait.await","name":"await","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PaneWait.PaneWait","signatures":[{"raw":"static WakeReason await(Pane pane, Predicate settled, Duration timeout, Duration every)\n throws InterruptedException","params":[{"name":"pane","type":"Pane"},{"name":"settled","type":"Predicate"},{"name":"timeout","type":"Duration"},{"name":"every","type":"Duration"}],"returns":"WakeReason","typeScopeBoundary":true}],"doc":{"summary":"{@link Pane#await(Predicate, Duration, Duration)}'s implementation."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PaneWait.java","line":60,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PaneWait.await","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PaneWait.PaneWait.await","product":"core","slug":"io-github-libtmux-panewait-panewait-await"},{"id":"io.github.libtmux.PrintedText.PrintedText","name":"PrintedText","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Decodes tmux's printed output against the version the server actually reports, framed with process-local markers so a reply is read back exactly whatever quirks that version's own printing has."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PrintedText.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PrintedText","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PrintedText.PrintedText","product":"core","slug":"io-github-libtmux-printedtext-printedtext"},{"id":"io.github.libtmux.PrintedText.PrintedText.END_MARK","name":"END_MARK","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.PrintedText.PrintedText","signatures":[],"typeScopeBoundary":true,"type":"String","value":"Tokens.perProcess() + \"-end\"","doc":{"summary":"Printed after what a command printed. tmux ends its output with a line break and the transport drops trailing blank lines, so text that itself ends in line breaks would lose them; with this after it, nothing trailing is blank."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PrintedText.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PrintedText.END_MARK","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PrintedText.PrintedText.END_MARK","product":"core","slug":"io-github-libtmux-printedtext-printedtext-end_mark"},{"id":"io.github.libtmux.PrintedText.PrintedText.expansion","name":"expansion","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PrintedText.PrintedText","signatures":[{"raw":"static String expansion(String format)","params":[{"name":"format","type":"String"}],"returns":"String","typeScopeBoundary":true}],"doc":{"summary":"A format for {@code display-message -p} that {@link #printed(List)} reads back exactly."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PrintedText.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PrintedText.expansion","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PrintedText.PrintedText.expansion","product":"core","slug":"io-github-libtmux-printedtext-printedtext-expansion"},{"id":"io.github.libtmux.PrintedText.PrintedText.versioned","name":"versioned","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PrintedText.PrintedText","signatures":[{"raw":"static String versioned(String format)","params":[{"name":"format","type":"String"}],"returns":"String","typeScopeBoundary":true}],"doc":{"summary":"This format with the server's version expanded ahead of it, so the reply can be decoded without another tmux process. See {@link TmuxFormats#printed(String, TmuxVersion)}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PrintedText.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PrintedText.versioned","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PrintedText.PrintedText.versioned","product":"core","slug":"io-github-libtmux-printedtext-printedtext-versioned"},{"id":"io.github.libtmux.PrintedText.PrintedText.printed","name":"printed","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PrintedText.PrintedText","signatures":[{"raw":"static String printed(List reported)","params":[{"name":"reported","type":"List"}],"returns":"String","typeScopeBoundary":true}],"doc":{"summary":"The expansion of a {@link #versioned} format, as tmux held the text."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PrintedText.java","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PrintedText.printed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PrintedText.PrintedText.printed","product":"core","slug":"io-github-libtmux-printedtext-printedtext-printed"},{"id":"io.github.libtmux.PrintedText.PrintedText.printedRows","name":"printedRows","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PrintedText.PrintedText","signatures":[{"raw":"static List printedRows(List rows)","params":[{"name":"rows","type":"List"}],"returns":"List","typeScopeBoundary":true}],"doc":{"summary":"As {@link #printed(List)}, for a listing whose every row began with {@link #versioned}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PrintedText.java","line":57,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PrintedText.printedRows","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PrintedText.PrintedText.printedRows","product":"core","slug":"io-github-libtmux-printedtext-printedtext-printedrows"},{"id":"io.github.libtmux.PrintedText.PrintedText.framed","name":"framed","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PrintedText.PrintedText","signatures":[{"raw":"static List> framed(List argv)","params":[{"name":"argv","type":"List"}],"returns":"List>","typeScopeBoundary":true}],"doc":{"summary":"The three commands {@link Server#printed(io.github.libtmux.snapshot.ServerSnapshot, List)} sends as one group."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PrintedText.java","line":66,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PrintedText.framed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PrintedText.PrintedText.framed","product":"core","slug":"io-github-libtmux-printedtext-printedtext-framed"},{"id":"io.github.libtmux.PrintedText.PrintedText.unwrap","name":"unwrap","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.PrintedText.PrintedText","signatures":[{"raw":"static CommandResult unwrap(CommandResult result)","params":[{"name":"result","type":"CommandResult"}],"returns":"CommandResult","typeScopeBoundary":true}],"doc":{"summary":"Strips the version line and end mark {@link #framed} added, decoding what is left."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/PrintedText.java","line":72,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.PrintedText.unwrap","namespace":"io.github.libtmux","publicId":"io.github.libtmux.PrintedText.PrintedText.unwrap","product":"core","slug":"io-github-libtmux-printedtext-printedtext-unwrap"},{"id":"io.github.libtmux.Prompt.Prompt","name":"Prompt","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The server's command-prompt history.","body":"Whether the commands exist is asked of the daemon, not inferred from a version string."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Prompt.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Prompt","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Prompt.Prompt","product":"core","slug":"io-github-libtmux-prompt-prompt"},{"id":"io.github.libtmux.Prompt.Prompt.Prompt","name":"Prompt","kind":"method","modifiers":[],"parent":"io.github.libtmux.Prompt.Prompt","signatures":[{"raw":"Prompt(Server server)","params":[{"name":"server","type":"Server"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Prompt.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Prompt.Prompt","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Prompt.Prompt.Prompt","product":"core","slug":"io-github-libtmux-prompt-prompt-prompt"},{"id":"io.github.libtmux.Prompt.Prompt.history","name":"history","kind":"method","modifiers":[],"parent":"io.github.libtmux.Prompt.Prompt","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List history()","params":[],"returns":"List","typeScopeBoundary":false,"raises":[{"type":"UnsupportedFeatureException","doc":"if this tmux has no such command"}]}],"doc":{"summary":"What has been typed at the prompt, oldest first."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Prompt.java","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Prompt.history","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Prompt.Prompt.history","product":"core","slug":"io-github-libtmux-prompt-prompt-history"},{"id":"io.github.libtmux.Prompt.Prompt.clear","name":"clear","kind":"method","modifiers":[],"parent":"io.github.libtmux.Prompt.Prompt","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void clear()","params":[],"returns":"void","typeScopeBoundary":false,"raises":[{"type":"UnsupportedFeatureException","doc":"if this tmux has no such command"}]}],"doc":{"summary":"Forgets what has been typed at the prompt."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Prompt.java","line":42,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Prompt.clear","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Prompt.Prompt.clear","product":"core","slug":"io-github-libtmux-prompt-prompt-clear"},{"id":"io.github.libtmux.query.FieldKind.FieldKind","name":"FieldKind","kind":"enum","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The value kind a field reads.","body":"Carried explicitly because exactness must not rest on the operand's runtime class. A number\nfield's operand happens to box to {@code Integer}, and reading the kind off that accident would\nsilently pick tmux's lexical comparison where the caller meant arithmetic."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldKind.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldKind","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldKind.FieldKind","product":"core","slug":"io-github-libtmux-query-fieldkind-fieldkind"},{"id":"io.github.libtmux.query.FieldKind.FieldKind.TEXT","name":"TEXT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.FieldKind.FieldKind","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldKind.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldKind.TEXT","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldKind.FieldKind.TEXT","product":"core","slug":"io-github-libtmux-query-fieldkind-fieldkind-text"},{"id":"io.github.libtmux.query.FieldKind.FieldKind.NUMBER","name":"NUMBER","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.FieldKind.FieldKind","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldKind.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldKind.NUMBER","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldKind.FieldKind.NUMBER","product":"core","slug":"io-github-libtmux-query-fieldkind-fieldkind-number"},{"id":"io.github.libtmux.query.FieldKind.FieldKind.FLAG","name":"FLAG","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.FieldKind.FieldKind","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldKind.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldKind.FLAG","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldKind.FieldKind.FLAG","product":"core","slug":"io-github-libtmux-query-fieldkind-fieldkind-flag"},{"id":"io.github.libtmux.query.FieldRef.FieldRef","name":"FieldRef","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"typeParams":["T","V"],"typeParamNames":["T","V"],"typeParameters":[{"name":"T"},{"name":"V"}],"doc":{"summary":"A named, kinded accessor.","body":"The name makes a built expression printable; the kind makes consumers independent of the\noperand's runtime class. A serializer or compiler must bind the exact handle against its own\nmodel before trusting the name to describe what the accessor reads."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldRef.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldRef","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldRef.FieldRef","product":"core","slug":"io-github-libtmux-query-fieldref-fieldref"},{"id":"io.github.libtmux.query.FieldRef.FieldRef.FieldRef","name":"FieldRef","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FieldRef.FieldRef","signatures":[{"raw":"FieldRef(String id, FieldKind kind, Function accessor)","params":[{"name":"id","type":"String"},{"name":"kind","type":"FieldKind"},{"name":"accessor","type":"Function"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldRef.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldRef.FieldRef","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldRef.FieldRef.FieldRef","product":"core","slug":"io-github-libtmux-query-fieldref-fieldref-fieldref"},{"id":"io.github.libtmux.query.FieldRef.FieldRef.requireId","name":"requireId","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.FieldRef.FieldRef","signatures":[{"raw":"static String requireId(String id)","params":[{"name":"id","type":"String"}],"returns":"String","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldRef.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldRef.requireId","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldRef.FieldRef.requireId","product":"core","slug":"io-github-libtmux-query-fieldref-fieldref-requireid"},{"id":"io.github.libtmux.query.FieldRef.FieldRef.id","name":"id","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FieldRef.FieldRef","signatures":[{"raw":"public String id()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldRef.java","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldRef.id","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldRef.FieldRef.id","product":"core","slug":"io-github-libtmux-query-fieldref-fieldref-id"},{"id":"io.github.libtmux.query.FieldRef.FieldRef.kind","name":"kind","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FieldRef.FieldRef","signatures":[{"raw":"public FieldKind kind()","params":[],"returns":"FieldKind","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldRef.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldRef.kind","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldRef.FieldRef.kind","product":"core","slug":"io-github-libtmux-query-fieldref-fieldref-kind"},{"id":"io.github.libtmux.query.FieldRef.FieldRef.accessor","name":"accessor","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FieldRef.FieldRef","signatures":[{"raw":"public Function accessor()","params":[],"returns":"Function","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FieldRef.java","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FieldRef.accessor","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FieldRef.FieldRef.accessor","product":"core","slug":"io-github-libtmux-query-fieldref-fieldref-accessor"},{"id":"io.github.libtmux.query.Fields.Fields","name":"Fields","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Typed field handles.","body":"A caller supplies each accessor, so no backend may trust the name without matching this exact\nhandle against a model it owns.\n\nEach kind exposes only the operators its type supports, so {@code Pane_.index().startsWith(..)}\nis a compile error rather than a runtime class cast. This is the half of the metamodel that has to\nexist by hand or by generator; the generator only writes the accessors, never the semantics."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields","product":"core","slug":"io-github-libtmux-query-fields-fields"},{"id":"io.github.libtmux.query.Fields.Fields.text","name":"text","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[{"raw":"public static TextField text(String id, Function accessor)","params":[{"name":"id","type":"String"},{"name":"accessor","type":"Function"}],"returns":"TextField","typeParamNames":["T"],"typeScopeBoundary":true,"typeParams":["T"],"typeParameters":[{"name":"T"}]}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.text","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.text","product":"core","slug":"io-github-libtmux-query-fields-fields-text"},{"id":"io.github.libtmux.query.Fields.Fields.number","name":"number","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[{"raw":"public static NumberField number(String id, Function accessor)","params":[{"name":"id","type":"String"},{"name":"accessor","type":"Function"}],"returns":"NumberField","typeParamNames":["T"],"typeScopeBoundary":true,"typeParams":["T"],"typeParameters":[{"name":"T"}]}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.number","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.number","product":"core","slug":"io-github-libtmux-query-fields-fields-number"},{"id":"io.github.libtmux.query.Fields.Fields.flag","name":"flag","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[{"raw":"public static FlagField flag(String id, Function accessor)","params":[{"name":"id","type":"String"},{"name":"accessor","type":"Function"}],"returns":"FlagField","typeParamNames":["T"],"typeScopeBoundary":true,"typeParams":["T"],"typeParameters":[{"name":"T"}]}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.flag","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.flag","product":"core","slug":"io-github-libtmux-query-fields-fields-flag"},{"id":"io.github.libtmux.query.Fields.Fields.toMany","name":"toMany","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[{"raw":"public static ToManyRef toMany(String id, Function> navigate)","params":[{"name":"id","type":"String"},{"name":"navigate","type":"Function>"}],"returns":"ToManyRef","typeParamNames":["T","R"],"typeScopeBoundary":true,"typeParams":["T","R"],"typeParameters":[{"name":"T"},{"name":"R"}]}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.toMany","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.toMany","product":"core","slug":"io-github-libtmux-query-fields-fields-tomany"},{"id":"io.github.libtmux.query.Fields.Fields.toOne","name":"toOne","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[{"raw":"public static ToOneRef toOne(String id, Function> navigate)","params":[{"name":"id","type":"String"},{"name":"navigate","type":"Function>"}],"returns":"ToOneRef","typeParamNames":["T","R"],"typeScopeBoundary":true,"typeParams":["T","R"],"typeParameters":[{"name":"T"},{"name":"R"}]}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.toOne","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.toOne","product":"core","slug":"io-github-libtmux-query-fields-fields-toone"},{"id":"io.github.libtmux.query.Fields.Fields.TextField","name":"TextField","kind":"class","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[{"raw":"public record TextField(FieldRef ref)","params":[{"name":"ref","type":"FieldRef"}],"typeParamNames":["T"],"typeParams":["T"],"typeParameters":[{"name":"T"}]}],"typeScopeBoundary":true,"typeParams":["T"],"typeParamNames":["T"],"typeParameters":[{"name":"T"}],"doc":{"summary":"String-valued field."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":45,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.TextField","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.TextField","product":"core","slug":"io-github-libtmux-query-fields-fields-textfield"},{"id":"io.github.libtmux.query.Fields.Fields.TextField.is","name":"is","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.TextField","signatures":[{"raw":"public FilterExpr is(String value)","params":[{"name":"value","type":"String"}],"returns":"FilterExpr","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.TextField.is","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.TextField.is","product":"core","slug":"io-github-libtmux-query-fields-fields-textfield-is"},{"id":"io.github.libtmux.query.Fields.Fields.TextField.isNot","name":"isNot","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.TextField","signatures":[{"raw":"public FilterExpr isNot(String value)","params":[{"name":"value","type":"String"}],"returns":"FilterExpr","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.TextField.isNot","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.TextField.isNot","product":"core","slug":"io-github-libtmux-query-fields-fields-textfield-isnot"},{"id":"io.github.libtmux.query.Fields.Fields.TextField.contains","name":"contains","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.TextField","signatures":[{"raw":"public FilterExpr contains(String value)","params":[{"name":"value","type":"String"}],"returns":"FilterExpr","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":55,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.TextField.contains","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.TextField.contains","product":"core","slug":"io-github-libtmux-query-fields-fields-textfield-contains"},{"id":"io.github.libtmux.query.Fields.Fields.TextField.startsWith","name":"startsWith","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.TextField","signatures":[{"raw":"public FilterExpr startsWith(String value)","params":[{"name":"value","type":"String"}],"returns":"FilterExpr","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.TextField.startsWith","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.TextField.startsWith","product":"core","slug":"io-github-libtmux-query-fields-fields-textfield-startswith"},{"id":"io.github.libtmux.query.Fields.Fields.TextField.endsWith","name":"endsWith","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.TextField","signatures":[{"raw":"public FilterExpr endsWith(String value)","params":[{"name":"value","type":"String"}],"returns":"FilterExpr","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.TextField.endsWith","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.TextField.endsWith","product":"core","slug":"io-github-libtmux-query-fields-fields-textfield-endswith"},{"id":"io.github.libtmux.query.Fields.Fields.TextField.matches","name":"matches","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.TextField","signatures":[{"raw":"public FilterExpr matches(Pattern value)","params":[{"name":"value","type":"Pattern"}],"returns":"FilterExpr","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":67,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.TextField.matches","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.TextField.matches","product":"core","slug":"io-github-libtmux-query-fields-fields-textfield-matches"},{"id":"io.github.libtmux.query.Fields.Fields.TextField.in","name":"in","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.TextField","signatures":[{"raw":"public FilterExpr in(Collection values)","params":[{"name":"values","type":"Collection"}],"returns":"FilterExpr","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":71,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.TextField.in","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.TextField.in","product":"core","slug":"io-github-libtmux-query-fields-fields-textfield-in"},{"id":"io.github.libtmux.query.Fields.Fields.TextField.ref","name":"ref","kind":"method","parent":"io.github.libtmux.query.Fields.Fields.TextField","modifiers":[],"signatures":[{"params":[],"returns":"FieldRef"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.TextField.ref","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.TextField.ref","product":"core","slug":"io-github-libtmux-query-fields-fields-textfield-ref"},{"id":"io.github.libtmux.query.Fields.Fields.NumberField","name":"NumberField","kind":"class","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[{"raw":"public record NumberField(FieldRef ref)","params":[{"name":"ref","type":"FieldRef"}],"typeParamNames":["T"],"typeParams":["T"],"typeParameters":[{"name":"T"}]}],"typeScopeBoundary":true,"typeParams":["T"],"typeParamNames":["T"],"typeParameters":[{"name":"T"}],"doc":{"summary":"Integer-valued field. No text operators reach it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.NumberField","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.NumberField","product":"core","slug":"io-github-libtmux-query-fields-fields-numberfield"},{"id":"io.github.libtmux.query.Fields.Fields.NumberField.is","name":"is","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.NumberField","signatures":[{"raw":"public FilterExpr is(int value)","params":[{"name":"value","type":"int"}],"returns":"FilterExpr","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":79,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.NumberField.is","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.NumberField.is","product":"core","slug":"io-github-libtmux-query-fields-fields-numberfield-is"},{"id":"io.github.libtmux.query.Fields.Fields.NumberField.isNot","name":"isNot","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.NumberField","signatures":[{"raw":"public FilterExpr isNot(int value)","params":[{"name":"value","type":"int"}],"returns":"FilterExpr","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":83,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.NumberField.isNot","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.NumberField.isNot","product":"core","slug":"io-github-libtmux-query-fields-fields-numberfield-isnot"},{"id":"io.github.libtmux.query.Fields.Fields.NumberField.lessThan","name":"lessThan","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.NumberField","signatures":[{"raw":"public FilterExpr lessThan(int value)","params":[{"name":"value","type":"int"}],"returns":"FilterExpr","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":87,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.NumberField.lessThan","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.NumberField.lessThan","product":"core","slug":"io-github-libtmux-query-fields-fields-numberfield-lessthan"},{"id":"io.github.libtmux.query.Fields.Fields.NumberField.atMost","name":"atMost","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.NumberField","signatures":[{"raw":"public FilterExpr atMost(int value)","params":[{"name":"value","type":"int"}],"returns":"FilterExpr","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":91,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.NumberField.atMost","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.NumberField.atMost","product":"core","slug":"io-github-libtmux-query-fields-fields-numberfield-atmost"},{"id":"io.github.libtmux.query.Fields.Fields.NumberField.greaterThan","name":"greaterThan","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.NumberField","signatures":[{"raw":"public FilterExpr greaterThan(int value)","params":[{"name":"value","type":"int"}],"returns":"FilterExpr","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":95,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.NumberField.greaterThan","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.NumberField.greaterThan","product":"core","slug":"io-github-libtmux-query-fields-fields-numberfield-greaterthan"},{"id":"io.github.libtmux.query.Fields.Fields.NumberField.atLeast","name":"atLeast","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.NumberField","signatures":[{"raw":"public FilterExpr atLeast(int value)","params":[{"name":"value","type":"int"}],"returns":"FilterExpr","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":99,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.NumberField.atLeast","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.NumberField.atLeast","product":"core","slug":"io-github-libtmux-query-fields-fields-numberfield-atleast"},{"id":"io.github.libtmux.query.Fields.Fields.NumberField.ref","name":"ref","kind":"method","parent":"io.github.libtmux.query.Fields.Fields.NumberField","modifiers":[],"signatures":[{"params":[],"returns":"FieldRef"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.NumberField.ref","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.NumberField.ref","product":"core","slug":"io-github-libtmux-query-fields-fields-numberfield-ref"},{"id":"io.github.libtmux.query.Fields.Fields.FlagField","name":"FlagField","kind":"class","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[{"raw":"public record FlagField(FieldRef ref)","params":[{"name":"ref","type":"FieldRef"}],"typeParamNames":["T"],"typeParams":["T"],"typeParameters":[{"name":"T"}]}],"typeScopeBoundary":true,"typeParams":["T"],"typeParamNames":["T"],"typeParameters":[{"name":"T"}],"doc":{"summary":"Boolean-valued field."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":105,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.FlagField","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.FlagField","product":"core","slug":"io-github-libtmux-query-fields-fields-flagfield"},{"id":"io.github.libtmux.query.Fields.Fields.FlagField.is","name":"is","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.FlagField","signatures":[{"raw":"public FilterExpr is(boolean value)","params":[{"name":"value","type":"boolean"}],"returns":"FilterExpr","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":107,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.FlagField.is","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.FlagField.is","product":"core","slug":"io-github-libtmux-query-fields-fields-flagfield-is"},{"id":"io.github.libtmux.query.Fields.Fields.FlagField.isNot","name":"isNot","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.FlagField","signatures":[{"raw":"public FilterExpr isNot(boolean value)","params":[{"name":"value","type":"boolean"}],"returns":"FilterExpr","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":111,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.FlagField.isNot","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.FlagField.isNot","product":"core","slug":"io-github-libtmux-query-fields-fields-flagfield-isnot"},{"id":"io.github.libtmux.query.Fields.Fields.FlagField.isTrue","name":"isTrue","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.FlagField","signatures":[{"raw":"public FilterExpr isTrue()","params":[],"returns":"FilterExpr","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":115,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.FlagField.isTrue","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.FlagField.isTrue","product":"core","slug":"io-github-libtmux-query-fields-fields-flagfield-istrue"},{"id":"io.github.libtmux.query.Fields.Fields.FlagField.isFalse","name":"isFalse","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.FlagField","signatures":[{"raw":"public FilterExpr isFalse()","params":[],"returns":"FilterExpr","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":119,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.FlagField.isFalse","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.FlagField.isFalse","product":"core","slug":"io-github-libtmux-query-fields-fields-flagfield-isfalse"},{"id":"io.github.libtmux.query.Fields.Fields.FlagField.ref","name":"ref","kind":"method","parent":"io.github.libtmux.query.Fields.Fields.FlagField","modifiers":[],"signatures":[{"params":[],"returns":"FieldRef"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.FlagField.ref","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.FlagField.ref","product":"core","slug":"io-github-libtmux-query-fields-fields-flagfield-ref"},{"id":"io.github.libtmux.query.Fields.Fields.ToManyRef","name":"ToManyRef","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[],"typeScopeBoundary":true,"typeParams":["T","R"],"typeParamNames":["T","R"],"typeParameters":[{"name":"T"},{"name":"R"}],"doc":{"summary":"To-many relation. Quantifiers are the only way in, so an unquantified relation cannot compile."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":125,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToManyRef","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToManyRef","product":"core","slug":"io-github-libtmux-query-fields-fields-tomanyref"},{"id":"io.github.libtmux.query.Fields.Fields.ToManyRef.id","name":"id","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.ToManyRef","signatures":[{"raw":"public String id()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":135,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToManyRef.id","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToManyRef.id","product":"core","slug":"io-github-libtmux-query-fields-fields-tomanyref-id"},{"id":"io.github.libtmux.query.Fields.Fields.ToManyRef.navigate","name":"navigate","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.ToManyRef","signatures":[{"raw":"public Function> navigate()","params":[],"returns":"Function>","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":139,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToManyRef.navigate","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToManyRef.navigate","product":"core","slug":"io-github-libtmux-query-fields-fields-tomanyref-navigate"},{"id":"io.github.libtmux.query.Fields.Fields.ToManyRef.any","name":"any","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.ToManyRef","signatures":[{"raw":"public FilterExpr.ToMany any(FilterExpr predicate)","params":[{"name":"predicate","type":"FilterExpr"}],"returns":"FilterExpr.ToMany","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":143,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToManyRef.any","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToManyRef.any","product":"core","slug":"io-github-libtmux-query-fields-fields-tomanyref-any"},{"id":"io.github.libtmux.query.Fields.Fields.ToManyRef.all","name":"all","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.ToManyRef","signatures":[{"raw":"public FilterExpr.ToMany all(FilterExpr predicate)","params":[{"name":"predicate","type":"FilterExpr"}],"returns":"FilterExpr.ToMany","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":147,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToManyRef.all","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToManyRef.all","product":"core","slug":"io-github-libtmux-query-fields-fields-tomanyref-all"},{"id":"io.github.libtmux.query.Fields.Fields.ToManyRef.none","name":"none","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.ToManyRef","signatures":[{"raw":"public FilterExpr.ToMany none(FilterExpr predicate)","params":[{"name":"predicate","type":"FilterExpr"}],"returns":"FilterExpr.ToMany","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":151,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToManyRef.none","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToManyRef.none","product":"core","slug":"io-github-libtmux-query-fields-fields-tomanyref-none"},{"id":"io.github.libtmux.query.Fields.Fields.ToOneRef","name":"ToOneRef","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.query.Fields.Fields","signatures":[],"typeScopeBoundary":true,"typeParams":["T","R"],"typeParamNames":["T","R"],"typeParameters":[{"name":"T"},{"name":"R"}],"doc":{"summary":"To-one relation."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":157,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToOneRef","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToOneRef","product":"core","slug":"io-github-libtmux-query-fields-fields-tooneref"},{"id":"io.github.libtmux.query.Fields.Fields.ToOneRef.id","name":"id","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.ToOneRef","signatures":[{"raw":"public String id()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":167,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToOneRef.id","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToOneRef.id","product":"core","slug":"io-github-libtmux-query-fields-fields-tooneref-id"},{"id":"io.github.libtmux.query.Fields.Fields.ToOneRef.navigate","name":"navigate","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.ToOneRef","signatures":[{"raw":"public Function> navigate()","params":[],"returns":"Function>","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":171,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToOneRef.navigate","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToOneRef.navigate","product":"core","slug":"io-github-libtmux-query-fields-fields-tooneref-navigate"},{"id":"io.github.libtmux.query.Fields.Fields.ToOneRef.is","name":"is","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Fields.Fields.ToOneRef","signatures":[{"raw":"public FilterExpr.ToOne is(FilterExpr predicate)","params":[{"name":"predicate","type":"FilterExpr"}],"returns":"FilterExpr.ToOne","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Fields.java","line":175,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Fields.ToOneRef.is","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Fields.Fields.ToOneRef.is","product":"core","slug":"io-github-libtmux-query-fields-fields-tooneref-is"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr","name":"FilterExpr","kind":"interface","modifiers":[],"signatures":[],"typeScopeBoundary":false,"typeParams":["T"],"typeParamNames":["T"],"typeParameters":[{"name":"T"}],"doc":{"summary":"A filter that is both runnable and readable.","body":"It extends {@link Predicate}, so {@code stream().filter(expr)} works with no adapter, and it is\na sealed tree of records, so the same value can be printed, serialized, or later compiled into a\ntmux {@code -f} filter. A lambda can do the first of those and none of the rest, which is why\nnamed expressions are built from these nodes instead.\n\nEvaluation is a total function over the tree: every consumer switches exhaustively, so adding a\nnode breaks compilation at each site that has to learn about it rather than at runtime."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.describe","name":"describe","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"raw":"String describe();","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"Renders the expression as inspectable text. Deliberately not {@code toString} on records."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.describe","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.describe","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-describe"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.and","name":"and","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"raw":"static FilterExpr and(List> operands)","params":[{"name":"operands","type":"List>"}],"returns":"FilterExpr","typeParamNames":["T"],"typeScopeBoundary":true,"typeParams":["T"],"typeParameters":[{"name":"T"}]},{"raw":"default FilterExpr and(FilterExpr other)","params":[{"name":"other","type":"FilterExpr"}],"returns":"FilterExpr","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.and","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.and","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-and-12cg"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.or","name":"or","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"raw":"static FilterExpr or(List> operands)","params":[{"name":"operands","type":"List>"}],"returns":"FilterExpr","typeParamNames":["T"],"typeScopeBoundary":true,"typeParams":["T"],"typeParameters":[{"name":"T"}]},{"raw":"default FilterExpr or(FilterExpr other)","params":[{"name":"other","type":"FilterExpr"}],"returns":"FilterExpr","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.or","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.or","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-or-6b3f"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.negate","name":"negate","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"raw":"@Override\n default FilterExpr negate()","params":[],"returns":"FilterExpr","typeScopeBoundary":false}],"doc":{"summary":"Negation, narrowed to an expression.","body":"{@code and} and {@code or} below are deliberately *overloads* of the inherited\n{@link Predicate} methods rather than overrides: their parameter is a {@code FilterExpr}, so\ncombining two expressions stays an expression, while passing a bare lambda selects the\ninherited method and yields a plain predicate. That is the intended boundary — a lambda cannot\nbe printed or serialized, so an expression built from one must not claim to be inspectable."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.negate","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.negate","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-negate"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.And","name":"And","kind":"class","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"raw":"record And(@ReadOnly List> operands) implements FilterExpr","params":[{"name":"operands","type":"List>"}],"typeParamNames":["T"],"typeParams":["T"],"typeParameters":[{"name":"T"}]}],"typeScopeBoundary":true,"typeParams":["T"],"typeParamNames":["T"],"typeParameters":[{"name":"T"}],"doc":{"summary":"Conjunction. An empty conjunction is true, which is what makes it a safe identity."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.And","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.And","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-and-b05l"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.And.test","name":"test","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.And","signatures":[{"raw":"@Override\n public boolean test(T value)","params":[{"name":"value","type":"T"}],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":68,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.And.test","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.And.test","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-and-test"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.And.describe","name":"describe","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.And","signatures":[{"raw":"@Override\n public String describe()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.And.describe","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.And.describe","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-and-describe"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.And.operands","name":"operands","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.And","modifiers":[],"signatures":[{"params":[],"returns":"List>"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.And.operands","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.And.operands","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-and-operands"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Or","name":"Or","kind":"class","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"raw":"record Or(@ReadOnly List> operands) implements FilterExpr","params":[{"name":"operands","type":"List>"}],"typeParamNames":["T"],"typeParams":["T"],"typeParameters":[{"name":"T"}]}],"typeScopeBoundary":true,"typeParams":["T"],"typeParamNames":["T"],"typeParameters":[{"name":"T"}],"doc":{"summary":"Disjunction. An empty disjunction is false."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":90,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Or","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Or","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-or-9f1f"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Or.test","name":"test","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Or","signatures":[{"raw":"@Override\n public boolean test(T value)","params":[{"name":"value","type":"T"}],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":96,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Or.test","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Or.test","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-or-test"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Or.describe","name":"describe","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Or","signatures":[{"raw":"@Override\n public String describe()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":106,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Or.describe","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Or.describe","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-or-describe"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Or.operands","name":"operands","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Or","modifiers":[],"signatures":[{"params":[],"returns":"List>"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Or.operands","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Or.operands","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-or-operands"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Not","name":"Not","kind":"class","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"raw":"record Not(FilterExpr operand) implements FilterExpr","params":[{"name":"operand","type":"FilterExpr"}],"typeParamNames":["T"],"typeParams":["T"],"typeParameters":[{"name":"T"}]}],"typeScopeBoundary":true,"typeParams":["T"],"typeParamNames":["T"],"typeParameters":[{"name":"T"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":117,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Not","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Not","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-not"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Not.test","name":"test","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Not","signatures":[{"raw":"@Override\n public boolean test(T value)","params":[{"name":"value","type":"T"}],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":119,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Not.test","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Not.test","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-not-test"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Not.describe","name":"describe","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Not","signatures":[{"raw":"@Override\n public String describe()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":124,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Not.describe","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Not.describe","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-not-describe"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Not.operand","name":"operand","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Not","modifiers":[],"signatures":[{"params":[],"returns":"FilterExpr"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Not.operand","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Not.operand","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-not-operand"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare","name":"Compare","kind":"class","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"raw":"record Compare(FieldRef field, Operator operator, Object operand) implements FilterExpr","params":[{"name":"field","type":"FieldRef"},{"name":"operator","type":"Operator"},{"name":"operand","type":"Object"}],"typeParamNames":["T","V"],"typeParams":["T","V"],"typeParameters":[{"name":"T"},{"name":"V"}]}],"typeScopeBoundary":true,"typeParams":["T","V"],"typeParamNames":["T","V"],"typeParameters":[{"name":"T"},{"name":"V"}],"doc":{"summary":"One scalar field compared to one operand."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":131,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Compare","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-compare"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.test","name":"test","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare","signatures":[{"raw":"@Override\n public boolean test(T value)","params":[{"name":"value","type":"T"}],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":142,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Compare.test","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.test","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-compare-test"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.describe","name":"describe","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare","signatures":[{"raw":"@Override\n public String describe()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":147,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Compare.describe","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.describe","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-compare-describe"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.equals","name":"equals","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare","signatures":[{"raw":"@Override\n public boolean equals(Object other)","params":[{"name":"other","type":"Object"}],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":152,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Compare.equals","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.equals","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-compare-equals"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.hashCode","name":"hashCode","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare","signatures":[{"raw":"@Override\n public int hashCode()","params":[],"returns":"int","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":160,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Compare.hashCode","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.hashCode","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-compare-hashcode"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.field","name":"field","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare","modifiers":[],"signatures":[{"params":[],"returns":"FieldRef"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Compare.field","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.field","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-compare-field"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.operator","name":"operator","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare","modifiers":[],"signatures":[{"params":[],"returns":"Operator"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Compare.operator","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.operator","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-compare-operator"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.operand","name":"operand","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare","modifiers":[],"signatures":[{"params":[],"returns":"Object"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Compare.operand","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Compare.operand","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-compare-operand"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany","name":"ToMany","kind":"class","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"raw":"record ToMany(Fields.ToManyRef relation, Quantifier quantifier, FilterExpr predicate)\n implements FilterExpr","params":[{"name":"relation","type":"Fields.ToManyRef"},{"name":"quantifier","type":"Quantifier"},{"name":"predicate","type":"FilterExpr"}],"typeParamNames":["T","R"],"typeParams":["T","R"],"typeParameters":[{"name":"T"},{"name":"R"}]}],"typeScopeBoundary":true,"typeParams":["T","R"],"typeParamNames":["T","R"],"typeParameters":[{"name":"T"},{"name":"R"}],"doc":{"summary":"A quantified filter over a to-many relation.","body":"{@code ALL} over an empty relation is true. That is the standard vacuous reading and it is\nthe one tmux users expect: a session with no windows does not fail \"all windows are zoomed\"."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":181,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToMany","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-tomany"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.test","name":"test","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany","signatures":[{"raw":"@Override\n public boolean test(T value)","params":[{"name":"value","type":"T"}],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":190,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToMany.test","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.test","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-tomany-test"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.describe","name":"describe","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany","signatures":[{"raw":"@Override\n public String describe()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":200,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToMany.describe","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.describe","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-tomany-describe"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.relation","name":"relation","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany","modifiers":[],"signatures":[{"params":[],"returns":"Fields.ToManyRef"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToMany.relation","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.relation","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-tomany-relation"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.quantifier","name":"quantifier","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany","modifiers":[],"signatures":[{"params":[],"returns":"Quantifier"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToMany.quantifier","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.quantifier","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-tomany-quantifier"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.predicate","name":"predicate","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany","modifiers":[],"signatures":[{"params":[],"returns":"FilterExpr"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToMany.predicate","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToMany.predicate","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-tomany-predicate"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne","name":"ToOne","kind":"class","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[{"raw":"record ToOne(Fields.ToOneRef relation, FilterExpr predicate) implements FilterExpr","params":[{"name":"relation","type":"Fields.ToOneRef"},{"name":"predicate","type":"FilterExpr"}],"typeParamNames":["T","R"],"typeParams":["T","R"],"typeParameters":[{"name":"T"},{"name":"R"}]}],"typeScopeBoundary":true,"typeParams":["T","R"],"typeParamNames":["T","R"],"typeParameters":[{"name":"T"},{"name":"R"}],"doc":{"summary":"A to-one relation. An absent target does not satisfy the filter."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":207,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToOne","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-toone"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne.test","name":"test","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne","signatures":[{"raw":"@Override\n public boolean test(T value)","params":[{"name":"value","type":"T"}],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":214,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToOne.test","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne.test","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-toone-test"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne.describe","name":"describe","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne","signatures":[{"raw":"@Override\n public String describe()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":219,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToOne.describe","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne.describe","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-toone-describe"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne.relation","name":"relation","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne","modifiers":[],"signatures":[{"params":[],"returns":"Fields.ToOneRef"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToOne.relation","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne.relation","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-toone-relation"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne.predicate","name":"predicate","kind":"method","parent":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne","modifiers":[],"signatures":[{"params":[],"returns":"FilterExpr"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.ToOne.predicate","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.ToOne.predicate","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-toone-predicate"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier","name":"Quantifier","kind":"enum","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":225,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Quantifier","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-quantifier"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier.ANY","name":"ANY","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":226,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Quantifier.ANY","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier.ANY","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-quantifier-any"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier.ALL","name":"ALL","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":227,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Quantifier.ALL","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier.ALL","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-quantifier-all"},{"id":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier.NONE","name":"NONE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/FilterExpr.java","line":228,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.FilterExpr.Quantifier.NONE","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.FilterExpr.FilterExpr.Quantifier.NONE","product":"core","slug":"io-github-libtmux-query-filterexpr-filterexpr-quantifier-none"},{"id":"io.github.libtmux.query.Operator.Operator","name":"Operator","kind":"enum","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The scalar comparisons an expression can hold. Evaluation stays a total switch."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator","product":"core","slug":"io-github-libtmux-query-operator-operator"},{"id":"io.github.libtmux.query.Operator.Operator.EQUALS","name":"EQUALS","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":9,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.EQUALS","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.EQUALS","product":"core","slug":"io-github-libtmux-query-operator-operator-equals"},{"id":"io.github.libtmux.query.Operator.Operator.NOT_EQUALS","name":"NOT_EQUALS","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.NOT_EQUALS","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.NOT_EQUALS","product":"core","slug":"io-github-libtmux-query-operator-operator-not_equals"},{"id":"io.github.libtmux.query.Operator.Operator.CONTAINS","name":"CONTAINS","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.CONTAINS","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.CONTAINS","product":"core","slug":"io-github-libtmux-query-operator-operator-contains"},{"id":"io.github.libtmux.query.Operator.Operator.STARTS_WITH","name":"STARTS_WITH","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.STARTS_WITH","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.STARTS_WITH","product":"core","slug":"io-github-libtmux-query-operator-operator-starts_with"},{"id":"io.github.libtmux.query.Operator.Operator.ENDS_WITH","name":"ENDS_WITH","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.ENDS_WITH","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.ENDS_WITH","product":"core","slug":"io-github-libtmux-query-operator-operator-ends_with"},{"id":"io.github.libtmux.query.Operator.Operator.MATCHES","name":"MATCHES","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.MATCHES","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.MATCHES","product":"core","slug":"io-github-libtmux-query-operator-operator-matches-1lrg"},{"id":"io.github.libtmux.query.Operator.Operator.LESS_THAN","name":"LESS_THAN","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.LESS_THAN","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.LESS_THAN","product":"core","slug":"io-github-libtmux-query-operator-operator-less_than"},{"id":"io.github.libtmux.query.Operator.Operator.AT_MOST","name":"AT_MOST","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.AT_MOST","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.AT_MOST","product":"core","slug":"io-github-libtmux-query-operator-operator-at_most"},{"id":"io.github.libtmux.query.Operator.Operator.GREATER_THAN","name":"GREATER_THAN","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.GREATER_THAN","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.GREATER_THAN","product":"core","slug":"io-github-libtmux-query-operator-operator-greater_than"},{"id":"io.github.libtmux.query.Operator.Operator.AT_LEAST","name":"AT_LEAST","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.AT_LEAST","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.AT_LEAST","product":"core","slug":"io-github-libtmux-query-operator-operator-at_least"},{"id":"io.github.libtmux.query.Operator.Operator.IN","name":"IN","kind":"constant","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.IN","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.IN","product":"core","slug":"io-github-libtmux-query-operator-operator-in"},{"id":"io.github.libtmux.query.Operator.Operator.Operator","name":"Operator","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[{"raw":"Operator(String symbol)","params":[{"name":"symbol","type":"String"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.Operator","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.Operator","product":"core","slug":"io-github-libtmux-query-operator-operator-operator"},{"id":"io.github.libtmux.query.Operator.Operator.symbol","name":"symbol","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[{"raw":"public String symbol()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.symbol","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.symbol","product":"core","slug":"io-github-libtmux-query-operator-operator-symbol"},{"id":"io.github.libtmux.query.Operator.Operator.requireOperand","name":"requireOperand","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[{"raw":"void requireOperand(FieldKind kind, Object operand)","params":[{"name":"kind","type":"FieldKind"},{"name":"operand","type":"Object"}],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.requireOperand","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.requireOperand","product":"core","slug":"io-github-libtmux-query-operator-operator-requireoperand"},{"id":"io.github.libtmux.query.Operator.Operator.matches","name":"matches","kind":"method","modifiers":[],"parent":"io.github.libtmux.query.Operator.Operator","signatures":[{"raw":"@SuppressWarnings(\"unchecked\")\n boolean matches(Object actual, Object operand)","params":[{"name":"actual","type":"Object"},{"name":"operand","type":"Object"}],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Operator.java","line":65,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Operator.matches","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Operator.Operator.matches","product":"core","slug":"io-github-libtmux-query-operator-operator-matches-80y7"},{"id":"io.github.libtmux.query.Selections.Selections","name":"Selections","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Cardinality with the ambiguity removed.","body":"\"No session matched\" and \"several sessions matched\" are different bugs in a caller's code, so\nthey get different exceptions. {@code findFirst} stays on {@link java.util.stream.Stream} where it\nalready belongs; only the strict shapes need helpers."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Selections.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Selections","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Selections.Selections","product":"core","slug":"io-github-libtmux-query-selections-selections"},{"id":"io.github.libtmux.query.Selections.Selections.exactlyOne","name":"exactlyOne","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.Selections.Selections","signatures":[{"raw":"public static T exactlyOne(Iterable matches)","params":[{"name":"matches","type":"Iterable"}],"returns":"T","typeParamNames":["T"],"typeScopeBoundary":true,"typeParams":["T"],"typeParameters":[{"name":"T"}],"raises":[{"type":"CardinalityException.NoMatch","doc":"if nothing matched"},{"type":"CardinalityException.MultipleMatches","doc":"if more than one did; the scan stops at the second match, so its count is two"}]}],"doc":{"summary":"The single match, or a failure naming which way the count was wrong."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Selections.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Selections.exactlyOne","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Selections.Selections.exactlyOne","product":"core","slug":"io-github-libtmux-query-selections-selections-exactlyone"},{"id":"io.github.libtmux.query.Selections.Selections.oneOrEmpty","name":"oneOrEmpty","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.Selections.Selections","signatures":[{"raw":"public static Optional oneOrEmpty(Iterable matches)","params":[{"name":"matches","type":"Iterable"}],"returns":"Optional","typeParamNames":["T"],"typeScopeBoundary":true,"typeParams":["T"],"typeParameters":[{"name":"T"}],"raises":[{"type":"CardinalityException.MultipleMatches","doc":"if more than one matched"}]}],"doc":{"summary":"The single match if there is one, empty if there is none — but still a failure for several.","body":"Returning the first of many would make a caller's ambiguous query look answered."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/Selections.java","line":44,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.Selections.oneOrEmpty","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.Selections.Selections.oneOrEmpty","product":"core","slug":"io-github-libtmux-query-selections-selections-oneorempty"},{"id":"io.github.libtmux.query.TmuxFilters.TmuxFilters","name":"TmuxFilters","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Lowers a {@link FilterExpr} to a tmux {@code -f} format when every node is one tmux can apply.","body":"Relations, a Java regular expression, and any operand containing {@code ,}, `#`,\n`{`, `}`, {@code :}, or a backslash, are refused. Those stay a local filter over a capture. tmux\ncompiles {@code #{m/r:}} with its own dialect, so a pattern Java would match can select nothing.\nA compiled format is a hint to tmux, not a promise that the local reading would differ: callers\nstill apply the expression to the rows that come back."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/TmuxFilters.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.TmuxFilters","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.TmuxFilters.TmuxFilters","product":"core","slug":"io-github-libtmux-query-tmuxfilters-tmuxfilters"},{"id":"io.github.libtmux.query.TmuxFilters.TmuxFilters.format","name":"format","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.TmuxFilters.TmuxFilters","signatures":[{"raw":"public static Optional format(FilterExpr expression)","params":[{"name":"expression","type":"FilterExpr"}],"returns":"Optional","typeScopeBoundary":true}],"doc":{"summary":"A tmux format for {@code -f}, or empty when this expression is not a safe subset."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/TmuxFilters.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.TmuxFilters.format","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.TmuxFilters.TmuxFilters.format","product":"core","slug":"io-github-libtmux-query-tmuxfilters-tmuxfilters-format"},{"id":"io.github.libtmux.query.TmuxFilters.TmuxFilters.literal","name":"literal","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.query.TmuxFilters.TmuxFilters","signatures":[{"raw":"public static boolean literal(String value)","params":[{"name":"value","type":"String"}],"returns":"boolean","typeScopeBoundary":true}],"doc":{"summary":"Whether this text can sit inside a tmux format argument without changing its shape. A backslash escapes the next character in a format, so a trailing one swallows the closing brace."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/query/TmuxFilters.java","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.query.TmuxFilters.literal","namespace":"io.github.libtmux.query","publicId":"io.github.libtmux.query.TmuxFilters.TmuxFilters.literal","product":"core","slug":"io-github-libtmux-query-tmuxfilters-tmuxfilters-literal"},{"id":"io.github.libtmux.Server.Server","name":"Server","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Manages sessions, windows, and panes on a tmux server.","body":"Use {@link #open} with a {@link ServerConfig} to select a server by socket name or path.\nFrom this object, create sessions or query the server's existing sessions, windows, and panes.\nEach {@link Session} contains windows, and each {@link Window} contains panes.\n\nOwnership is decided at construction and never inferred. {@link #open} creates a transport this\nserver closes exactly once; {@link #using} borrows one the caller keeps, so several servers can\nshare a transport and closing one leaves the others working.\n\nClosing this object releases its owned transport. The tmux server and its sessions keep\nrunning. Call {@link #killServer()} to stop the tmux server.\n\nClose it anyway. A server that owns its transport holds the threads that drain tmux's output,\nand those are not daemons, so that a reply being read when a program ends is finished rather than\ntruncated. They do let go once they have been idle, so forgetting to close delays a JVM's exit by\nseconds instead of preventing it — but only closing releases them at once.\n\n**Threads.** Share one freely. A server holds nothing a call changes, its transport\nis thread-safe by contract, and the record of what was typed into each pane is concurrent; calls\nfrom several threads run side by side, bounded by the transport's own admission. The same goes\nfor every {@link Session}, {@link Window} and {@link Pane} it hands out: each is an immutable view\nof one capture, and a method that changes tmux changes tmux rather than the handle. Close it once,\nafter the last call on any thread.","examples":[{"lang":"console","intro":"Connect to a private tmux server. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/Connect.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/Connect.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport java.nio.file.Path;\n\n/** Connect to a private tmux server. */\npublic final class Connect {\n private Connect() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n System.out.println(\"connected=\" + server.isAlive());\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.Connect && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"connected=true\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":73,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server","product":"core","slug":"io-github-libtmux-server-server"},{"id":"io.github.libtmux.Server.Server.echo","name":"echo","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"PaneEcho echo()","params":[],"returns":"PaneEcho","typeScopeBoundary":false}],"doc":{"summary":"What this library last typed into each of this server's panes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":106,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.echo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.echo","product":"core","slug":"io-github-libtmux-server-server-echo"},{"id":"io.github.libtmux.Server.Server.capture","name":"capture","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"SnapshotCapture capture()","params":[],"returns":"SnapshotCapture","typeScopeBoundary":false}],"doc":{"summary":"How this server's own hierarchy is read back, for helpers that need one listing directly."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":111,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.capture","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.capture","product":"core","slug":"io-github-libtmux-server-server-capture"},{"id":"io.github.libtmux.Server.Server.newSession","name":"newSession","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public Session newSession(String name)","params":[{"name":"name","type":"String"}],"returns":"Session","typeScopeBoundary":false},{"raw":"@Operation(Kind.MUTATION)\n public Session newSession(Consumer configure)","params":[{"name":"configure","type":"Consumer","doc":"receives a builder holding tmux's defaults"}],"returns":"Session","typeScopeBoundary":false,"raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something this server does not have"}]},{"raw":"@Operation(Kind.MUTATION)\n public Session newSession(SessionSpec spec)","params":[{"name":"spec","type":"SessionSpec"}],"returns":"Session","typeScopeBoundary":false,"raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something this server does not have"}]}],"doc":{"summary":"Creates a detached session and returns that exact session.","body":"tmux reports which session it made, so the result is exact even when another session\nalready carries the same name.\n\nKeep {@code :} and {@code .} out of the name. tmux decides what to do with them and changes\nits mind across the supported range: 3.2a through 3.6 rewrite each one to {@code _}, 3.7\nrefuses the name, and 3.7a onwards keeps it — where a bare {@code -t} target still misreads the\ndelimiter, so {@link #hasSession} and {@link #killSession} resolve the id by comparing names\ninstead of building one. {@link Session#name()} reports what tmux settled on.","examples":[{"lang":"console","intro":"Create a session running cat. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/NewSession.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/NewSession.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport io.github.libtmux.SessionSpec;\nimport java.nio.file.Path;\n\n/** Create a session running cat. */\npublic final class NewSession {\n private NewSession() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n var session = server.newSession(SessionSpec.builder()\n .named(\"api-session\")\n .running(\"/bin/cat\")\n .build());\n System.out.println(\"created=\" + session.name());\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.NewSession && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"created=api-session\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":127,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.newSession","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.newSession","product":"core","slug":"io-github-libtmux-server-server-newsession"},{"id":"io.github.libtmux.Server.Server.hasSession","name":"hasSession","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.READ)\n public boolean hasSession(String name)","params":[{"name":"name","type":"String"}],"returns":"boolean","typeScopeBoundary":false,"raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"}]}],"doc":{"summary":"Whether a session with this name exists."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":173,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.hasSession","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.hasSession","product":"core","slug":"io-github-libtmux-server-server-hassession"},{"id":"io.github.libtmux.Server.Server.killSession","name":"killSession","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void killSession(String name)","params":[{"name":"name","type":"String"}],"returns":"void","typeScopeBoundary":false,"raises":[{"type":"LibTmuxException","doc":"if no session carries the name"}]}],"doc":{"summary":"Ends the session with this name, and everything in it.","body":"The name is matched exactly. tmux would otherwise take a prefix, so asking to kill\n{@code build} could end {@code build-cache} instead."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":187,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.killSession","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.killSession","product":"core","slug":"io-github-libtmux-server-server-killsession"},{"id":"io.github.libtmux.Server.Server.isAlive","name":"isAlive","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.READ)\n public boolean isAlive()","params":[],"returns":"boolean","typeScopeBoundary":false},{"raw":"@Operation(Kind.READ)\n public boolean isAlive(Duration timeout)","params":[{"name":"timeout","type":"Duration","doc":"how long to wait for an answer before treating the server as unreachable"}],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether the server is running and answering.","body":"Returns false when tmux refuses the probe. Transport failures still throw."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":200,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.isAlive","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.isAlive","product":"core","slug":"io-github-libtmux-server-server-isalive"},{"id":"io.github.libtmux.Server.Server.requireAlive","name":"requireAlive","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.READ)\n public void requireAlive()","params":[],"returns":"void","typeScopeBoundary":false,"raises":[{"type":"ServerUnavailableException","doc":"if no daemon is there to answer"},{"type":"LibTmuxException","doc":"if one is, and could not be reached — a socket this user cannot open, or a binary that is not tmux, which starting a server would not fix"}]}],"doc":{"summary":"Requires a running tmux daemon that answers the liveness probe."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":226,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.requireAlive","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.requireAlive","product":"core","slug":"io-github-libtmux-server-server-requirealive"},{"id":"io.github.libtmux.Server.Server.failed","name":"failed","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"LibTmuxException failed(String command, CommandResult result)","params":[{"name":"command","type":"String"},{"name":"result","type":"CommandResult"}],"returns":"LibTmuxException","typeScopeBoundary":false},{"raw":"LibTmuxException failed(String command, String status, List stderr)","params":[{"name":"command","type":"String"},{"name":"status","type":"String"},{"name":"stderr","type":"List"}],"returns":"LibTmuxException","typeScopeBoundary":false}],"doc":{"summary":"One sentence for a tmux command that did not succeed.","body":"Built in one place because a message that omits the exit status, or says nothing at all\nwhen tmux printed nothing, is how a misconfigured binary reads as a tmux that simply refused:\npointing a server at {@code /bin/false} used to raise \"tmux display-message failed: \" and\nstop there."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":247,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.failed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.failed","product":"core","slug":"io-github-libtmux-server-server-failed"},{"id":"io.github.libtmux.Server.Server.failure","name":"failure","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"static String failure(String command, String binary, String status, List stderr)","params":[{"name":"command","type":"String"},{"name":"binary","type":"String"},{"name":"status","type":"String","doc":"how the command ended, as an exit code or, inside a group, tmux's own outcome for it — a batch reports which of its commands never ran, which no single exit code says"},{"name":"stderr","type":"List"}],"returns":"String","typeScopeBoundary":true}],"doc":{"summary":""},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":272,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.failure","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.failure","product":"core","slug":"io-github-libtmux-server-server-failure"},{"id":"io.github.libtmux.Server.Server.serverAbsent","name":"serverAbsent","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"static boolean serverAbsent(String message)","params":[{"name":"message","type":"String"}],"returns":"boolean","typeScopeBoundary":true}],"doc":{"summary":"Whether a failed command's stderr says the daemon itself is gone, rather than refusing the request."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":279,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.serverAbsent","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.serverAbsent","product":"core","slug":"io-github-libtmux-server-server-serverabsent"},{"id":"io.github.libtmux.Server.Server.killServer","name":"killServer","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void killServer()","params":[],"returns":"void","typeScopeBoundary":false},{"raw":"@Operation(Kind.MUTATION)\n public void killServer(Duration timeout)","params":[{"name":"timeout","type":"Duration","doc":"how long to allow for each of the two commands"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Ends the tmux server and every session on it.","body":"Deliberately explicit and deliberately not what {@link #close()} does: closing a client is\nnot a reason to end everyone else's sessions.\n\nKilling a server that has already gone is not a failure. Which is harder to detect than it\nsounds: tmux answers a doomed request with {@code no server running} most of the time, but\nwith {@code server exited unexpectedly} when it reaches a socket whose server is still\nexiting — on every release from 3.3a onwards, and on one in five attempts on 3.7. So the\npostcondition is checked rather than the wording, which has changed before and says nothing\na second look cannot answer better."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":298,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.killServer","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.killServer","product":"core","slug":"io-github-libtmux-server-server-killserver"},{"id":"io.github.libtmux.Server.Server.batch","name":"batch","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Batch batch()","params":[],"returns":"Batch","typeScopeBoundary":false}],"doc":{"summary":"Collects several commands to run in one tmux invocation.","body":"Each operation gets its own outcome. tmux discards a group after the first failure, so a\nsingle exit status cannot say which command failed or which never ran."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":386,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.batch","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.batch","product":"core","slug":"io-github-libtmux-server-server-batch"},{"id":"io.github.libtmux.Server.Server.chain","name":"chain","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public CommandChain chain()","params":[],"returns":"CommandChain","typeScopeBoundary":false}],"doc":{"summary":"Starts a chain of commands where each one acts on what the last one made.","body":"tmux moves its own current target as a group runs, so a chain needs no round trip to learn\nthe id of a window or pane it just created."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":397,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.chain","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.chain","product":"core","slug":"io-github-libtmux-server-server-chain"},{"id":"io.github.libtmux.Server.Server.expand","name":"expand","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.READ)\n public String expand(String format)","params":[{"name":"format","type":"String","doc":"a tmux format, usually of the shape {@code #{name}}"}],"returns":"String","typeScopeBoundary":false,"returnsDoc":"the expansion, whole when it spans lines and empty when the format expanded to nothing"}],"doc":{"summary":"Expands a tmux format against the server, and answers with what it came to.","body":"The server-wide counterpart to {@link Pane#expand}: fields such as {@code #{pid}} and\n{@code #{version}} that belong to no session in particular."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":412,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.expand","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.expand","product":"core","slug":"io-github-libtmux-server-server-expand"},{"id":"io.github.libtmux.Server.Server.printed","name":"printed","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"CommandResult printed(@Nullable ServerSnapshot snapshot, List argv)","params":[{"name":"snapshot","type":"ServerSnapshot"},{"name":"argv","type":"List"}],"returns":"CommandResult","typeScopeBoundary":false}],"doc":{"summary":"Runs one read with the server's version printed first in the same invocation, and answers with its output as tmux held the text, and without that version line. Line breaks at the end of the output are kept."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":424,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.printed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.printed","product":"core","slug":"io-github-libtmux-server-server-printed"},{"id":"io.github.libtmux.Server.Server.shell","name":"shell","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Shell shell()","params":[],"returns":"Shell","typeScopeBoundary":false}],"doc":{"summary":"Shell commands run by tmux, and tmux commands chosen by a shell exit status."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":433,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.shell","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.shell","product":"core","slug":"io-github-libtmux-server-server-shell"},{"id":"io.github.libtmux.Server.Server.commands","name":"commands","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Commands commands()","params":[],"returns":"Commands","typeScopeBoundary":false}],"doc":{"summary":"The commands this tmux knows."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":439,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.commands","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.commands","product":"core","slug":"io-github-libtmux-server-server-commands"},{"id":"io.github.libtmux.Server.Server.lock","name":"lock","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void lock()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Locks every client attached to this server."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":445,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.lock","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.lock","product":"core","slug":"io-github-libtmux-server-server-lock"},{"id":"io.github.libtmux.Server.Server.messageLog","name":"messageLog","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public MessageLog messageLog()","params":[],"returns":"MessageLog","typeScopeBoundary":false}],"doc":{"summary":"The server's message log."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":451,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.messageLog","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.messageLog","product":"core","slug":"io-github-libtmux-server-server-messagelog"},{"id":"io.github.libtmux.Server.Server.prompt","name":"prompt","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Prompt prompt()","params":[],"returns":"Prompt","typeScopeBoundary":false}],"doc":{"summary":"The command prompt's history."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":457,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.prompt","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.prompt","product":"core","slug":"io-github-libtmux-server-server-prompt"},{"id":"io.github.libtmux.Server.Server.withoutStartingServer","name":"withoutStartingServer","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"CommandResult withoutStartingServer(List command)","params":[{"name":"command","type":"List"}],"returns":"CommandResult","typeScopeBoundary":false}],"doc":{"summary":"Runs a read that tmux would otherwise answer by starting a daemon.","body":"{@code list-keys} and {@code list-commands} are answered from the binary's own tables, and\ntmux starts a server to do it rather than reporting that there is none — so reading the key\nbindings of an endpoint nothing serves left a daemon behind, which is the opposite of a read.\n{@code -N} says not to, on every supported release, and tmux then reports the absent server\nthe way every other read does."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":471,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.withoutStartingServer","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.withoutStartingServer","product":"core","slug":"io-github-libtmux-server-server-withoutstartingserver"},{"id":"io.github.libtmux.Server.Server.channel","name":"channel","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Channel channel(String name)","params":[{"name":"name","type":"String"}],"returns":"Channel","typeScopeBoundary":false}],"doc":{"summary":"One of this server's wait-for channels, which is where a signal is sent and waited for."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":483,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.channel","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.channel","product":"core","slug":"io-github-libtmux-server-server-channel"},{"id":"io.github.libtmux.Server.Server.variables","name":"variables","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public Map variables(List names)","params":[{"name":"names","type":"List"}],"returns":"Map","typeScopeBoundary":false}],"doc":{"summary":"Reads only validated tmux variable names, never caller-authored format syntax."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":489,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.variables","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.variables","product":"core","slug":"io-github-libtmux-server-server-variables"},{"id":"io.github.libtmux.Server.Server.paneFields","name":"paneFields","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public Map> paneFields(List names)","params":[{"name":"names","type":"List","doc":"tmux format variable names, at most 32"}],"returns":"Map>","typeScopeBoundary":false,"returnsDoc":"each pane's values keyed by the names asked for, in tmux's pane order","raises":[{"type":"IllegalArgumentException","doc":"if a name is not a tmux variable name"},{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the listing otherwise fails"}]}],"doc":{"summary":"Chosen fields for every pane on the server, from one listing.","body":"For what a capture does not carry — {@code pane_tty}, {@code pane_dead_status}, {@code\npane_start_command}, any of tmux's pane formats. Asking each pane is a tmux process per pane\nand a view no single moment held; this is one {@code list-panes}, so every value is from the\nsame instant.","examples":[{"lang":"java","code":"Map> ttys = server.paneFields(List.of(\"pane_tty\", \"pane_dead\"));"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":530,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.paneFields","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.paneFields","product":"core","slug":"io-github-libtmux-server-server-panefields"},{"id":"io.github.libtmux.Server.Server.awaitChannel","name":"awaitChannel","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"WakeReason awaitChannel(String channel, Duration timeout, boolean reserveSignalCapacity)\n throws InterruptedException","params":[{"name":"channel","type":"String"},{"name":"timeout","type":"Duration"},{"name":"reserveSignalCapacity","type":"boolean"}],"returns":"WakeReason","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":566,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.awaitChannel","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.awaitChannel","product":"core","slug":"io-github-libtmux-server-server-awaitchannel"},{"id":"io.github.libtmux.Server.Server.keys","name":"keys","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Keys keys()","params":[],"returns":"Keys","typeScopeBoundary":false}],"doc":{"summary":"The server's key bindings: {@code prefix} when binding, every table when listing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":608,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.keys","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.keys","product":"core","slug":"io-github-libtmux-server-server-keys"},{"id":"io.github.libtmux.Server.Server.buffers","name":"buffers","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Buffers buffers()","params":[],"returns":"Buffers","typeScopeBoundary":false}],"doc":{"summary":"The server's paste buffers, which every session shares."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":614,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.buffers","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.buffers","product":"core","slug":"io-github-libtmux-server-server-buffers"},{"id":"io.github.libtmux.Server.Server.sourceFile","name":"sourceFile","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void sourceFile(Path file)","params":[{"name":"file","type":"Path"}],"returns":"void","typeScopeBoundary":false,"raises":[{"type":"LibTmuxException","doc":"if tmux could not read or run it"}]}],"doc":{"summary":"Runs a file of tmux commands, as a configuration file would be run."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":624,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.sourceFile","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.sourceFile","product":"core","slug":"io-github-libtmux-server-server-sourcefile"},{"id":"io.github.libtmux.Server.Server.options","name":"options","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Options options()","params":[],"returns":"Options","typeScopeBoundary":false}],"doc":{"summary":"The server-wide options, the ones tmux keeps once per server."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":630,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.options","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.options","product":"core","slug":"io-github-libtmux-server-server-options"},{"id":"io.github.libtmux.Server.Server.globalOptions","name":"globalOptions","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Options globalOptions()","params":[],"returns":"Options","typeScopeBoundary":false}],"doc":{"summary":"The global session options every session inherits unless it sets its own."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":636,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.globalOptions","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.globalOptions","product":"core","slug":"io-github-libtmux-server-server-globaloptions"},{"id":"io.github.libtmux.Server.Server.environment","name":"environment","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Environment environment()","params":[],"returns":"Environment","typeScopeBoundary":false}],"doc":{"summary":"The server's environment, which every session inherits and every new process is given.","body":"Set here to change what a pane opened later sees — a refreshed {@code SSH_AUTH_SOCK} after\nreconnecting, say. A pane already running has its own copy and is not affected."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":647,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.environment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.environment","product":"core","slug":"io-github-libtmux-server-server-environment"},{"id":"io.github.libtmux.Server.Server.hooks","name":"hooks","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Hooks hooks()","params":[],"returns":"Hooks","typeScopeBoundary":false}],"doc":{"summary":"The global hooks every session inherits."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":653,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.hooks","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.hooks","product":"core","slug":"io-github-libtmux-server-server-hooks"},{"id":"io.github.libtmux.Server.Server.version","name":"version","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.READ)\n public TmuxVersion version()","params":[],"returns":"TmuxVersion","typeScopeBoundary":false,"raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"}]}],"doc":{"summary":"Which tmux this server is running.","body":"Asked of the running server rather than of the binary, because the server may have been\nstarted by a different build than the one this client is invoking."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":666,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.version","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.version","product":"core","slug":"io-github-libtmux-server-server-version"},{"id":"io.github.libtmux.Server.Server.identity","name":"identity","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public ServerIdentity identity()","params":[],"returns":"ServerIdentity","typeScopeBoundary":false}],"doc":{"summary":"Which server this is. Every handle taken from it is scoped by this."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":678,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.identity","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.identity","product":"core","slug":"io-github-libtmux-server-server-identity"},{"id":"io.github.libtmux.Server.Server.requireSameServer","name":"requireSameServer","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"void requireSameServer(Server other)","params":[{"name":"other","type":"Server"}],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":683,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.requireSameServer","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.requireSameServer","product":"core","slug":"io-github-libtmux-server-server-requiresameserver"},{"id":"io.github.libtmux.Server.Server.requireSameIncarnation","name":"requireSameIncarnation","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"void requireSameIncarnation(ServerSnapshot snapshot, Server other, ServerSnapshot otherSnapshot)","params":[{"name":"snapshot","type":"ServerSnapshot"},{"name":"other","type":"Server"},{"name":"otherSnapshot","type":"ServerSnapshot"}],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":687,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.requireSameIncarnation","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.requireSameIncarnation","product":"core","slug":"io-github-libtmux-server-server-requiresameincarnation"},{"id":"io.github.libtmux.Server.Server.open","name":"open","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.LIFECYCLE)\n public static Server open(ServerConfig config)","params":[{"name":"config","type":"ServerConfig"}],"returns":"Server","typeScopeBoundary":true}],"doc":{"summary":"A server over a transport it owns and closes.","examples":[{"lang":"console","intro":"Connect to a private tmux server. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/Connect.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/Connect.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport java.nio.file.Path;\n\n/** Connect to a private tmux server. */\npublic final class Connect {\n private Connect() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n System.out.println(\"connected=\" + server.isAlive());\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.Connect && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"connected=true\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":696,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.open","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.open","product":"core","slug":"io-github-libtmux-server-server-open"},{"id":"io.github.libtmux.Server.Server.using","name":"using","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.LIFECYCLE)\n public static Server using(ServerConfig config, TmuxTransport transport)","params":[{"name":"config","type":"ServerConfig"},{"name":"transport","type":"TmuxTransport"}],"returns":"Server","typeScopeBoundary":true}],"doc":{"summary":"A server over a transport the caller owns. Closing this server never closes it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":705,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.using","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.using","product":"core","slug":"io-github-libtmux-server-server-using"},{"id":"io.github.libtmux.Server.Server.within","name":"within","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.LIFECYCLE)\n public Server within(Duration timeout)","params":[{"name":"timeout","type":"Duration"}],"returns":"Server","typeScopeBoundary":false,"raises":[{"type":"IllegalArgumentException","doc":"if the timeout is not positive"}]}],"doc":{"summary":"This server, with every command bounded by a deadline of the caller's choosing.","body":"The per-call deadline. Every read and change made through the result, and through every\nhandle taken from it, gives tmux this long rather than the server's default:\n\nShares this server's transport, so it has the same identity and its handles compare equal\nto this server's; closing it releases nothing. {@link #toBuilder} is not how to spell this: a\nserver that owns its transport hands a derived server a transport of its own, which a caller\nbounding many calls would multiply.","examples":[{"lang":"java","code":"List screen = server.within(Duration.ofMillis(500)).panes().get(0).capture();"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":737,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.within","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.within","product":"core","slug":"io-github-libtmux-server-server-within"},{"id":"io.github.libtmux.Server.Server.builder","name":"builder","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.LIFECYCLE)\n public static Builder builder()","params":[],"returns":"Builder","typeScopeBoundary":true}],"doc":{"summary":"A builder holding the documented defaults."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":747,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.builder","product":"core","slug":"io-github-libtmux-server-server-builder-3ftd"},{"id":"io.github.libtmux.Server.Server.config","name":"config","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public ServerConfig config()","params":[],"returns":"ServerConfig","typeScopeBoundary":false}],"doc":{"summary":"How this server was configured."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":753,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.config","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.config","product":"core","slug":"io-github-libtmux-server-server-config"},{"id":"io.github.libtmux.Server.Server.cmd","name":"cmd","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public CommandResult cmd(String... argv)","params":[{"name":"argv","type":"String","variadic":"positional","doc":"the tmux command and its arguments, each already a separate element"}],"returns":"CommandResult","typeScopeBoundary":false,"returnsDoc":"the result, in which a nonzero exit is data rather than a failure"},{"raw":"@Operation(Kind.MUTATION)\n public CommandResult cmd(List argv)","params":[{"name":"argv","type":"List"}],"returns":"CommandResult","typeScopeBoundary":false},{"raw":"@Operation(Kind.MUTATION)\n public CommandResult cmd(List argv, Duration timeout)","params":[{"name":"argv","type":"List"},{"name":"timeout","type":"Duration"}],"returns":"CommandResult","typeScopeBoundary":false}],"doc":{"summary":"Runs one tmux command against this server."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":764,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.cmd","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.cmd","product":"core","slug":"io-github-libtmux-server-server-cmd"},{"id":"io.github.libtmux.Server.Server.control","name":"control","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.LIFECYCLE)\n public ControlClient control(Session session)","params":[{"name":"session","type":"Session","doc":"a session captured from this server"}],"returns":"ControlClient","typeScopeBoundary":false,"raises":[{"type":"TargetGoneException","doc":"if that process is no longer the one on this socket"},{"type":"IllegalArgumentException","doc":"if the session belongs to another server"},{"type":"IllegalStateException","doc":"if this server is closed, or its transport starts no control client"}]},{"raw":"@Operation(Kind.LIFECYCLE)\n public ControlClient control(Session session, Duration timeout)","params":[{"name":"session","type":"Session"},{"name":"timeout","type":"Duration","doc":"how long to wait for the client to become ready"}],"returns":"ControlClient","typeScopeBoundary":false}],"doc":{"summary":"Attaches a control client to this session's server, and only to the process this capture named.","body":"The client is started by this server's transport. A transport that cannot start processes\nfails here rather than attaching on the local machine. The process id is checked before the\nclient starts and again on the client itself; a server that has taken over the socket is\ndetached before this client changes it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":815,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.control","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.control","product":"core","slug":"io-github-libtmux-server-server-control"},{"id":"io.github.libtmux.Server.Server.snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.READ)\n public ServerSnapshot snapshot()","params":[],"returns":"ServerSnapshot","typeScopeBoundary":false,"raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if a listing otherwise fails or the listings cannot form one valid snapshot"}]}],"doc":{"summary":"Captures the whole hierarchy in at most four listings, retrying once if the server is replaced.","body":"One server-wide listing per kind of object, so ordering and membership stay tmux's decision\nrather than being re-derived from another listing's rows.\n\nA failed read throws, including when no daemon is running. An empty graph means a live\nserver successfully reported no sessions."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":875,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.snapshot","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.snapshot","product":"core","slug":"io-github-libtmux-server-server-snapshot"},{"id":"io.github.libtmux.Server.Server.sessions","name":"sessions","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List sessions(FilterExpr expression)","params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","typeScopeBoundary":false,"returnsDoc":"an immutable list in tmux order","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}]},{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List sessions()","params":[],"returns":"List","typeScopeBoundary":false,"raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}]}],"doc":{"summary":"The sessions this expression matches, captured now.","body":"A safe expression is sent as {@code list-sessions -f}. The sessions that come back are still\ntested with the expression. A relation, or an expression tmux cannot apply, reads the whole server and\nfilters that capture; a filtered read that finds nothing is the answer.","examples":[{"lang":"console","intro":"List the sessions returned by a server read. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/ListSessions.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/ListSessions.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport java.nio.file.Path;\nimport java.util.stream.Collectors;\n\n/** List the sessions returned by a server read. */\npublic final class ListSessions {\n private ListSessions() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n System.out.println(\"sessions=\"\n + server.sessions().stream()\n .map(session -> session.name())\n .sorted()\n .collect(Collectors.joining(\",\")));\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.ListSessions && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"sessions=work-one,work-two\n"},{"lang":"console","intro":"Select sessions with a typed name filter. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/Query.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/Query.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport io.github.libtmux.Session_;\nimport java.nio.file.Path;\nimport java.util.stream.Collectors;\n\n/** Select sessions with a typed name filter. */\npublic final class Query {\n private Query() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n var matches = server.sessions(Session_.name().is(\"work-one\"));\n System.out.println(\"matches=\"\n + matches.stream()\n .map(session -> session.name())\n .sorted()\n .collect(Collectors.joining(\",\")));\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.Query && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"matches=work-one\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":901,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.sessions","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.sessions","product":"core","slug":"io-github-libtmux-server-server-sessions"},{"id":"io.github.libtmux.Server.Server.windows","name":"windows","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List windows()","params":[],"returns":"List","typeScopeBoundary":false,"returnsDoc":"an immutable list in tmux order","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}]},{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List windows(FilterExpr expression)","params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","typeScopeBoundary":false,"returnsDoc":"an immutable list in tmux order","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}]},{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List windows(WindowId id)","params":[{"name":"id","type":"WindowId"}],"returns":"List","typeScopeBoundary":false,"returnsDoc":"an immutable list in tmux order, empty if the window was not found","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}]}],"doc":{"summary":"Captures every winlink, preserving each session and index placement.","examples":[{"lang":"console","intro":"List all windows, then the windows captured for one session. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/ListWindows.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/ListWindows.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport java.nio.file.Path;\nimport java.util.stream.Collectors;\n\n/** List all windows, then the windows captured for one session. */\npublic final class ListWindows {\n private ListWindows() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n System.out.println(\"windows=\"\n + server.windows().stream()\n .map(window -> window.name())\n .sorted()\n .collect(Collectors.joining(\",\")));\n var session = server.session(\"work-one\").orElseThrow();\n System.out.println(\"session-windows=\"\n + session.windows().stream()\n .map(window -> window.name())\n .sorted()\n .collect(Collectors.joining(\",\")));\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.ListWindows && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"windows=editor,editor,logs\nsession-windows=editor,logs\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":936,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.windows","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.windows","product":"core","slug":"io-github-libtmux-server-server-windows"},{"id":"io.github.libtmux.Server.Server.panes","name":"panes","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List panes()","params":[],"returns":"List","typeScopeBoundary":false,"returnsDoc":"an immutable list in tmux order","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}]},{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List panes(FilterExpr expression)","params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","typeScopeBoundary":false,"returnsDoc":"an immutable list in tmux order","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}]}],"doc":{"summary":"Captures every pane on the server.","examples":[{"lang":"console","intro":"List all panes, then the panes captured for one window. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/ListPanes.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/ListPanes.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport java.nio.file.Path;\n\n/** List all panes, then the panes captured for one window. */\npublic final class ListPanes {\n private ListPanes() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n System.out.println(\"panes=\" + server.panes().size());\n var session = server.session(\"work-one\").orElseThrow();\n var window = session.windows().stream()\n .filter(item -> item.name().equals(\"editor\"))\n .findFirst()\n .orElseThrow();\n System.out.println(\"window-panes=\" + window.panes().size());\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.ListPanes && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"panes=4\nwindow-panes=2\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":974,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.panes","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.panes","product":"core","slug":"io-github-libtmux-server-server-panes"},{"id":"io.github.libtmux.Server.Server.session","name":"session","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.READ)\n public Optional session(FilterExpr expression)","params":[{"name":"expression","type":"FilterExpr"}],"returns":"Optional","typeScopeBoundary":false,"raises":[{"type":"CardinalityException.MultipleMatches","doc":"if more than one session matches; its count is exact, since the whole capture is in hand"},{"type":"ServerUnavailableException","doc":"if no daemon is running"}]},{"raw":"@Operation(Kind.READ)\n public Optional session(String name)","params":[{"name":"name","type":"String"}],"returns":"Optional","typeScopeBoundary":false,"raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}]},{"raw":"@Operation(Kind.READ)\n public Optional session(SessionId id)","params":[{"name":"id","type":"SessionId"}],"returns":"Optional","typeScopeBoundary":false,"returnsDoc":"empty only when a successful capture contains no match","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}]}],"doc":{"summary":"The one session this expression matches, captured now, or empty when none does.","body":"Reads as {@link #sessions(FilterExpr)} does."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1014,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.session","product":"core","slug":"io-github-libtmux-server-server-session"},{"id":"io.github.libtmux.Server.Server.window","name":"window","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.READ)\n public Optional window(FilterExpr expression)","params":[{"name":"expression","type":"FilterExpr"}],"returns":"Optional","typeScopeBoundary":false,"raises":[{"type":"CardinalityException.MultipleMatches","doc":"if more than one link matches"},{"type":"ServerUnavailableException","doc":"if no daemon is running"}]},{"raw":"@Operation(Kind.READ)\n public Optional window(WindowContext context)","params":[{"name":"context","type":"WindowContext"}],"returns":"Optional","typeScopeBoundary":false,"returnsDoc":"empty only when a successful capture contains no match","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}]}],"doc":{"summary":"The one window link this expression matches, captured now, or empty when none does.","body":"Reads as {@link #windows(FilterExpr)} does. A window linked into two sessions is two links,\nso an expression naming it matches twice."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1028,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.window","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.window","product":"core","slug":"io-github-libtmux-server-server-window"},{"id":"io.github.libtmux.Server.Server.pane","name":"pane","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.READ)\n public Optional pane(FilterExpr expression)","params":[{"name":"expression","type":"FilterExpr"}],"returns":"Optional","typeScopeBoundary":false,"raises":[{"type":"CardinalityException.MultipleMatches","doc":"if more than one pane matches"},{"type":"ServerUnavailableException","doc":"if no daemon is running"}]},{"raw":"@Operation(Kind.READ)\n public Optional pane(PaneId id)","params":[{"name":"id","type":"PaneId"}],"returns":"Optional","typeScopeBoundary":false,"returnsDoc":"empty only when a successful capture contains no match","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}]}],"doc":{"summary":"The one pane this expression matches, captured now, or empty when none does.","body":"Reads as {@link #panes(FilterExpr)} does."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1041,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.pane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.pane","product":"core","slug":"io-github-libtmux-server-server-pane"},{"id":"io.github.libtmux.Server.Server.admissionBound","name":"admissionBound","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public int admissionBound()","params":[],"returns":"int","typeScopeBoundary":false,"returnsDoc":"the bound, or {@link Integer#MAX_VALUE} for a transport that sets none"}],"doc":{"summary":"How many tmux commands this server's transport runs at once, from {@link ServerConfig#maxConcurrentCommands()} for a server {@link #open}ed here."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1064,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.admissionBound","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.admissionBound","product":"core","slug":"io-github-libtmux-server-server-admissionbound"},{"id":"io.github.libtmux.Server.Server.clients","name":"clients","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List clients()","params":[],"returns":"List","typeScopeBoundary":false,"returnsDoc":"an immutable list in tmux order","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}]}],"doc":{"summary":"Captures every attached client."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1189,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.clients","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.clients","product":"core","slug":"io-github-libtmux-server-server-clients"},{"id":"io.github.libtmux.Server.Server.attachedSessions","name":"attachedSessions","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.READ)\n public List attachedSessions()","params":[],"returns":"List","typeScopeBoundary":false,"returnsDoc":"an immutable list in tmux order","raises":[{"type":"ServerUnavailableException","doc":"if no daemon is running"},{"type":"LibTmuxException","doc":"if the capture otherwise fails"}]}],"doc":{"summary":"Captures every session a client is attached to."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1205,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.attachedSessions","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.attachedSessions","product":"core","slug":"io-github-libtmux-server-server-attachedsessions"},{"id":"io.github.libtmux.Server.Server.run","name":"run","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public CommandResult run(List argv)","params":[{"name":"argv","type":"List"}],"returns":"CommandResult","typeScopeBoundary":false,"raises":[{"type":"LibTmuxException","doc":"if tmux reported a nonzero exit"}]}],"doc":{"summary":"Runs a command that is expected to work, and raises when it did not.","body":"The counterpart to {@link #cmd}: use this when a nonzero exit means the thing you asked for\ndid not happen, and {@code cmd} when a nonzero exit is an answer you want to inspect. tmux\nreports an ordinary miss and a real problem the same way, so only the caller knows which it is."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1220,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.run","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.run","product":"core","slug":"io-github-libtmux-server-server-run"},{"id":"io.github.libtmux.Server.Server.runTogether","name":"runTogether","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"CommandResult runTogether(ServerSnapshot snapshot, List> commands)","params":[{"name":"snapshot","type":"ServerSnapshot"},{"name":"commands","type":"List>"}],"returns":"CommandResult","typeScopeBoundary":false},{"raw":"CommandResult runTogether(ServerSnapshot snapshot, String input, List> commands)","params":[{"name":"snapshot","type":"ServerSnapshot"},{"name":"input","type":"String"},{"name":"commands","type":"List>"}],"returns":"CommandResult","typeScopeBoundary":false}],"doc":{"summary":"Runs several commands in one invocation, so nothing of this caller's happens between them.","body":"tmux carries a group to its server as one message and runs it there, so a caller that stops\npartway cannot leave the group half applied. That is what an operation whose second command\ncleans up after its first needs."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1265,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.runTogether","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.runTogether","product":"core","slug":"io-github-libtmux-server-server-runtogether"},{"id":"io.github.libtmux.Server.Server.refresh","name":"refresh","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"ServerSnapshot refresh(ServerSnapshot previous)","params":[{"name":"previous","type":"ServerSnapshot"}],"returns":"ServerSnapshot","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1284,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.refresh","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.refresh","product":"core","slug":"io-github-libtmux-server-server-refresh"},{"id":"io.github.libtmux.Server.Server.toBuilder","name":"toBuilder","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Builder toBuilder()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"A builder holding every configuration and ownership choice this server made."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1293,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.toBuilder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.toBuilder","product":"core","slug":"io-github-libtmux-server-server-tobuilder"},{"id":"io.github.libtmux.Server.Server.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server","signatures":[{"raw":"@Operation(Kind.LIFECYCLE)\n @Override\n public void close()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Releases an owned transport. Idempotent, and never kills tmux."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1300,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.close","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.close","product":"core","slug":"io-github-libtmux-server-server-close"},{"id":"io.github.libtmux.Server.Server.Builder","name":"Builder","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.Server.Server","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Collects configuration and the ownership choice, then builds a server."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1312,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.Builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.Builder","product":"core","slug":"io-github-libtmux-server-server-builder-dv7l"},{"id":"io.github.libtmux.Server.Server.Builder.binary","name":"binary","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server.Builder","signatures":[{"raw":"public Builder binary(String binary)","params":[{"name":"binary","type":"String"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Sets the tmux executable."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1323,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.Builder.binary","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.Builder.binary","product":"core","slug":"io-github-libtmux-server-server-builder-binary"},{"id":"io.github.libtmux.Server.Server.Builder.endpoint","name":"endpoint","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server.Builder","signatures":[{"raw":"public Builder endpoint(ServerEndpoint endpoint)","params":[{"name":"endpoint","type":"ServerEndpoint"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Sets which server to talk to."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1329,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.Builder.endpoint","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.Builder.endpoint","product":"core","slug":"io-github-libtmux-server-server-builder-endpoint"},{"id":"io.github.libtmux.Server.Server.Builder.configFile","name":"configFile","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server.Builder","signatures":[{"raw":"public Builder configFile(Path configFile)","params":[{"name":"configFile","type":"Path"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Pins the config file tmux reads."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1335,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.Builder.configFile","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.Builder.configFile","product":"core","slug":"io-github-libtmux-server-server-builder-configfile"},{"id":"io.github.libtmux.Server.Server.Builder.defaultTimeout","name":"defaultTimeout","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server.Builder","signatures":[{"raw":"public Builder defaultTimeout(Duration defaultTimeout)","params":[{"name":"defaultTimeout","type":"Duration"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Sets the deadline a request gets when the caller does not supply one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1341,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.Builder.defaultTimeout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.Builder.defaultTimeout","product":"core","slug":"io-github-libtmux-server-server-builder-defaulttimeout"},{"id":"io.github.libtmux.Server.Server.Builder.force256Colors","name":"force256Colors","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server.Builder","signatures":[{"raw":"public Builder force256Colors(boolean force256Colors)","params":[{"name":"force256Colors","type":"boolean"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Forces 256-color client support; false preserves terminal detection."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1347,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.Builder.force256Colors","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.Builder.force256Colors","product":"core","slug":"io-github-libtmux-server-server-builder-force256colors"},{"id":"io.github.libtmux.Server.Server.Builder.transport","name":"transport","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server.Builder","signatures":[{"raw":"public Builder transport(TmuxTransport transport)","params":[{"name":"transport","type":"TmuxTransport"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Borrows a caller-owned transport, which the built server will never close."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1353,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.Builder.transport","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.Builder.transport","product":"core","slug":"io-github-libtmux-server-server-builder-transport"},{"id":"io.github.libtmux.Server.Server.Builder.build","name":"build","kind":"method","modifiers":[],"parent":"io.github.libtmux.Server.Server.Builder","signatures":[{"raw":"public Server build()","params":[],"returns":"Server","typeScopeBoundary":false}],"doc":{"summary":"Builds the server, owning a new transport unless one was borrowed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Server.java","line":1359,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Server.Builder.build","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Server.Server.Builder.build","product":"core","slug":"io-github-libtmux-server-server-builder-build"},{"id":"io.github.libtmux.ServerConfig.ServerConfig","name":"ServerConfig","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"What a server needs to know before it runs anything: which tmux, which server, which config.","body":"Deliberately a builder-built class rather than a record. tmux keeps growing flags, and a\nrecord's canonical constructor is public API: every field added later would break both source and\nbinary compatibility for anyone who had constructed one.\n\nNothing here contacts tmux. A config can be built, stored and compared on a machine that has\nno tmux installed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.builder","name":"builder","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"raw":"public static Builder builder()","params":[],"returns":"Builder","typeScopeBoundary":true}],"doc":{"summary":"A builder holding the documented defaults."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.builder","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-yotf"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.binary","name":"binary","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"raw":"public String binary()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The tmux executable, resolved on {@code PATH} unless it is an absolute path."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":55,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.binary","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.binary","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-binary"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.binaryPath","name":"binaryPath","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"raw":"public String binaryPath()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The binary as a path, resolved the way this process resolves it.","body":"What to write into a command a pane will run. A pane resolves a bare name against the\nuser's {@code PATH} rather than this process's, and a tmux client built from a different\nrelease than the server it reaches is dropped rather than served. Falls back to the name when\nnothing on {@code PATH} matches, which leaves the caller no worse off."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":67,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.binaryPath","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.binaryPath","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-binarypath"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.endpoint","name":"endpoint","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"raw":"public ServerEndpoint endpoint()","params":[],"returns":"ServerEndpoint","typeScopeBoundary":false}],"doc":{"summary":"Which tmux server to talk to."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":88,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.endpoint","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.endpoint","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-endpoint"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.configFile","name":"configFile","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"raw":"public Optional configFile()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The config file tmux should read, if the caller pinned one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":93,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.configFile","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.configFile","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-configfile"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.defaultTimeout","name":"defaultTimeout","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"raw":"public Duration defaultTimeout()","params":[],"returns":"Duration","typeScopeBoundary":false}],"doc":{"summary":"How long a request waits when the caller does not say."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":98,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.defaultTimeout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.defaultTimeout","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-defaulttimeout"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.force256Colors","name":"force256Colors","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"raw":"public boolean force256Colors()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether tmux clients advertise 256-color support regardless of terminal detection."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":103,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.force256Colors","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.force256Colors","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-force256colors"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.observer","name":"observer","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"raw":"public OperationObserver observer()","params":[],"returns":"OperationObserver","typeScopeBoundary":false}],"doc":{"summary":"Where each command's report goes. {@link OperationObserver#NONE} until a caller sets one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":108,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.observer","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.observer","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-observer"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.endpointCommand","name":"endpointCommand","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"raw":"@ReadOnly\n public List endpointCommand()","params":[],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"The argv prefix every command on this server begins with: the binary, {@code -u}, optional color flag, the server selection, and the config file if one was pinned.","body":"{@code -u} says this client reads UTF-8. Without it tmux decides from {@code LC_ALL},\n{@code LC_CTYPE} and {@code LANG}, and a client it judges not to be UTF-8 has every non-ASCII\ncharacter in every reply replaced with {@code _} before it is sent — so a session named\n{@code café} reads back as {@code caf_}, and a pane's directory becomes a path that does not\nexist. The flag is in tmux's option string on every supported release.\n\nDeliberately the flag rather than {@code LC_ALL} in the child's environment, which would\nreach the same conclusion and then be inherited by every pane the server spawns from this\nclient."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":126,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.endpointCommand","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.endpointCommand","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-endpointcommand"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.maxConcurrentCommands","name":"maxConcurrentCommands","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"raw":"public int maxConcurrentCommands()","params":[],"returns":"int","typeScopeBoundary":false}],"doc":{"summary":"How many tmux commands {@link Server#open} lets run at once; more wait their turn.","body":"A coroutine dispatcher or effect pool that runs blocking calls for this server gains nothing\nfrom more threads than this: the rest would only wait for admission."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":146,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.maxConcurrentCommands","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.maxConcurrentCommands","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-maxconcurrentcommands"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.toBuilder","name":"toBuilder","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[{"raw":"public Builder toBuilder()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"A builder holding every choice this config made."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":151,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.toBuilder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.toBuilder","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-tobuilder"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.Builder","name":"Builder","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.ServerConfig.ServerConfig","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Collects the choices; {@link #build()} checks them."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":164,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.Builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.Builder","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-ly8z"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.Builder.binary","name":"binary","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig.Builder","signatures":[{"raw":"public Builder binary(String binary)","params":[{"name":"binary","type":"String"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Sets the tmux executable."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":177,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.Builder.binary","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.Builder.binary","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-binary"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.Builder.endpoint","name":"endpoint","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig.Builder","signatures":[{"raw":"public Builder endpoint(ServerEndpoint endpoint)","params":[{"name":"endpoint","type":"ServerEndpoint"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Sets which server to talk to."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":183,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.Builder.endpoint","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.Builder.endpoint","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-endpoint"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.Builder.configFile","name":"configFile","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig.Builder","signatures":[{"raw":"public Builder configFile(Path configFile)","params":[{"name":"configFile","type":"Path"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Pins the config file tmux reads, which is how a test isolates itself from a user's own."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":189,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.Builder.configFile","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.Builder.configFile","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-configfile"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.Builder.defaultTimeout","name":"defaultTimeout","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig.Builder","signatures":[{"raw":"public Builder defaultTimeout(Duration defaultTimeout)","params":[{"name":"defaultTimeout","type":"Duration"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Sets the deadline a request gets when the caller does not supply one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":195,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.Builder.defaultTimeout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.Builder.defaultTimeout","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-defaulttimeout"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.Builder.force256Colors","name":"force256Colors","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig.Builder","signatures":[{"raw":"public Builder force256Colors(boolean force256Colors)","params":[{"name":"force256Colors","type":"boolean"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Forces 256-color client support with tmux's {@code -2}; false uses terminal detection."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":201,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.Builder.force256Colors","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.Builder.force256Colors","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-force256colors"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.Builder.observer","name":"observer","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig.Builder","signatures":[{"raw":"public Builder observer(OperationObserver observer)","params":[{"name":"observer","type":"OperationObserver"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Receives a report after each command. The report names verbs, not arguments."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":207,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.Builder.observer","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.Builder.observer","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-observer"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.Builder.maxConcurrentCommands","name":"maxConcurrentCommands","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig.Builder","signatures":[{"raw":"public Builder maxConcurrentCommands(int maxConcurrentCommands)","params":[{"name":"maxConcurrentCommands","type":"int"}],"returns":"Builder","typeScopeBoundary":false,"raises":[{"type":"IllegalArgumentException","doc":"if {@code maxConcurrentCommands} is not positive"}]}],"doc":{"summary":"Sets how many tmux commands {@link Server#open} lets run at once, four unless set."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":217,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.Builder.maxConcurrentCommands","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.Builder.maxConcurrentCommands","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-maxconcurrentcommands"},{"id":"io.github.libtmux.ServerConfig.ServerConfig.Builder.build","name":"build","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerConfig.ServerConfig.Builder","signatures":[{"raw":"public ServerConfig build()","params":[],"returns":"ServerConfig","typeScopeBoundary":false,"raises":[{"type":"IllegalArgumentException","doc":"if a choice would only fail later"}]}],"doc":{"summary":"Builds an immutable config, rejecting choices that could only fail later."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerConfig.java","line":230,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerConfig.Builder.build","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerConfig.ServerConfig.Builder.build","product":"core","slug":"io-github-libtmux-serverconfig-serverconfig-builder-build"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint","name":"ServerEndpoint","kind":"interface","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Which tmux server to talk to.","body":"A value, decided and comparable before any process runs. Two endpoints are equal when they name\nthe same server lexically; nothing here resolves symlinks, contacts the filesystem, or opens a\nsocket. That matters because an endpoint is routinely built, logged and compared while the socket\nit names does not exist yet.\n\nValidation that needs tmux — above all whether a socket path fits the platform's\n{@code sun_path} — happens at dispatch, where the error can carry the command that hit it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.flags","name":"flags","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint","signatures":[{"raw":"@ReadOnly\n List flags();","params":[],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"The flags that select this server, in argv order."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.flags","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.flags","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-flags"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.defaultSocket","name":"defaultSocket","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint","signatures":[{"raw":"static ServerEndpoint defaultSocket()","params":[],"returns":"ServerEndpoint","typeScopeBoundary":true}],"doc":{"summary":"tmux's own default server, wherever tmux decides that is."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.defaultSocket","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.defaultSocket","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-defaultsocket"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.namedSocket","name":"namedSocket","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint","signatures":[{"raw":"static ServerEndpoint namedSocket(String name)","params":[{"name":"name","type":"String"}],"returns":"ServerEndpoint","typeScopeBoundary":true}],"doc":{"summary":"A server named with {@code -L}, resolved by tmux under its own socket directory."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.namedSocket","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.namedSocket","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-namedsocket-uymy"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.socketPath","name":"socketPath","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint","signatures":[{"raw":"static ServerEndpoint socketPath(Path path)","params":[{"name":"path","type":"Path"}],"returns":"ServerEndpoint","typeScopeBoundary":true}],"doc":{"summary":"A server at an exact socket path, selected with {@code -S}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.socketPath","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.socketPath","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-socketpath-l4dk"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.Default","name":"Default","kind":"class","modifiers":[],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint","signatures":[{"raw":"record Default() implements ServerEndpoint","params":[]}],"typeScopeBoundary":true,"doc":{"summary":"Adds no flags, so tmux applies its own default socket resolution."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.Default","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.Default","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-default"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.Default.flags","name":"flags","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint.Default","signatures":[{"raw":"@Override\n @ReadOnly\n public List flags()","params":[],"returns":"List","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":42,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.Default.flags","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.Default.flags","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-default-flags"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.NamedSocket","name":"NamedSocket","kind":"class","modifiers":[],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint","signatures":[{"raw":"record NamedSocket(String name) implements ServerEndpoint","params":[{"name":"name","type":"String","doc":"a bare name, with no path separator"}]}],"typeScopeBoundary":true,"doc":{"summary":"A server tmux locates by name under its own socket directory."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.NamedSocket","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.NamedSocket","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-namedsocket-1lu0"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.NamedSocket.flags","name":"flags","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint.NamedSocket","signatures":[{"raw":"@Override\n @ReadOnly\n public List flags()","params":[],"returns":"List","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":68,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.NamedSocket.flags","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.NamedSocket.flags","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-namedsocket-flags"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.NamedSocket.name","name":"name","kind":"method","parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint.NamedSocket","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"a bare name, with no path separator"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.NamedSocket.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.NamedSocket.name","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-namedsocket-name"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.SocketPath","name":"SocketPath","kind":"class","modifiers":[],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint","signatures":[{"raw":"record SocketPath(Path path) implements ServerEndpoint","params":[{"name":"path","type":"Path","doc":"the socket path, anchored and lexically normalized so equal sockets compare equal"}]}],"typeScopeBoundary":true,"doc":{"summary":"A server at an exact socket path."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":80,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.SocketPath","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.SocketPath","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-socketpath-1obc"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.SocketPath.flags","name":"flags","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint.SocketPath","signatures":[{"raw":"@Override\n @ReadOnly\n public List flags()","params":[],"returns":"List","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","line":90,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.SocketPath.flags","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.SocketPath.flags","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-socketpath-flags"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint.SocketPath.path","name":"path","kind":"method","parent":"io.github.libtmux.ServerEndpoint.ServerEndpoint.SocketPath","modifiers":[],"signatures":[{"params":[],"returns":"Path"}],"doc":{"summary":"the socket path, anchored and lexically normalized so equal sockets compare equal"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerEndpoint.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerEndpoint.SocketPath.path","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerEndpoint.ServerEndpoint.SocketPath.path","product":"core","slug":"io-github-libtmux-serverendpoint-serverendpoint-socketpath-path"},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity","name":"ServerIdentity","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Which tmux server a handle belongs to.","body":"Two entities with the same id are the same entity only if they came from the same server. The\nrealm exists because socket text alone is not enough: two unrelated execution realms — a local\nprocess and a container, say — can both hold a server at {@code /tmp/s}, and entities from them\nmust not compare equal.\n\nThe server is identified by a digest of its endpoint rather than by the endpoint itself, so an\nidentity can be logged, compared and embedded in a message without carrying a socket path."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerIdentity.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerIdentity","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerIdentity.ServerIdentity","product":"core","slug":"io-github-libtmux-serveridentity-serveridentity"},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity.of","name":"of","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.ServerIdentity.ServerIdentity","signatures":[{"raw":"static ServerIdentity of(String realm, ServerEndpoint endpoint)","params":[{"name":"realm","type":"String"},{"name":"endpoint","type":"ServerEndpoint"}],"returns":"ServerIdentity","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerIdentity.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerIdentity.of","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerIdentity.ServerIdentity.of","product":"core","slug":"io-github-libtmux-serveridentity-serveridentity-of"},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity.at","name":"at","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerIdentity.ServerIdentity","signatures":[{"raw":"ServerIdentity at(long pid, OptionalLong startTime)","params":[{"name":"pid","type":"long"},{"name":"startTime","type":"OptionalLong"}],"returns":"ServerIdentity","typeScopeBoundary":false}],"doc":{"summary":"This server as one process: a pid alone can be reused, so its start time is part of it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerIdentity.java","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerIdentity.at","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerIdentity.ServerIdentity.at","product":"core","slug":"io-github-libtmux-serveridentity-serveridentity-at"},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity.realm","name":"realm","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerIdentity.ServerIdentity","signatures":[{"raw":"public String realm()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The execution realm the transport reaches tmux through."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerIdentity.java","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerIdentity.realm","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerIdentity.ServerIdentity.realm","product":"core","slug":"io-github-libtmux-serveridentity-serveridentity-realm"},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity.server","name":"server","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerIdentity.ServerIdentity","signatures":[{"raw":"public String server()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"A stable opaque key for the server, carrying no socket path."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerIdentity.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerIdentity.server","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerIdentity.ServerIdentity.server","product":"core","slug":"io-github-libtmux-serveridentity-serveridentity-server"},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity.processId","name":"processId","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerIdentity.ServerIdentity","signatures":[{"raw":"public OptionalLong processId()","params":[],"returns":"OptionalLong","typeScopeBoundary":false}],"doc":{"summary":"The live tmux process, present on an identity bound to a captured handle."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerIdentity.java","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerIdentity.processId","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerIdentity.ServerIdentity.processId","product":"core","slug":"io-github-libtmux-serveridentity-serveridentity-processid"},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity.equals","name":"equals","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerIdentity.ServerIdentity","signatures":[{"raw":"@Override\n public boolean equals(Object other)","params":[{"name":"other","type":"Object"}],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerIdentity.java","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerIdentity.equals","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerIdentity.ServerIdentity.equals","product":"core","slug":"io-github-libtmux-serveridentity-serveridentity-equals"},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity.hashCode","name":"hashCode","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerIdentity.ServerIdentity","signatures":[{"raw":"@Override\n public int hashCode()","params":[],"returns":"int","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerIdentity.java","line":72,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerIdentity.hashCode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerIdentity.ServerIdentity.hashCode","product":"core","slug":"io-github-libtmux-serveridentity-serveridentity-hashcode"},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.ServerIdentity.ServerIdentity","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/ServerIdentity.java","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.ServerIdentity.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.ServerIdentity.ServerIdentity.toString","product":"core","slug":"io-github-libtmux-serveridentity-serveridentity-tostring"},{"id":"io.github.libtmux.Session.Session","name":"Session","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"One tmux session, as one capture saw it.","body":"Identity is the server and the session id. A name is state: a user can rename a session at any\ntime, and a handle whose equality included the name would stop matching itself the moment they\ndid.\n\n{@link #windows()} reads the capture this handle came from and issues no command. To see newer\nstate, take a new capture.\n\nA method named for a captured field returns what {@link #info()} holds and does no I/O;\n{@link #refresh()} reads again. Every other method asks tmux now."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session","product":"core","slug":"io-github-libtmux-session-session"},{"id":"io.github.libtmux.Session.Session.Session","name":"Session","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"Session(Server server, ServerSnapshot snapshot, SessionState state)","params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"state","type":"SessionState"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.Session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.Session","product":"core","slug":"io-github-libtmux-session-session-session"},{"id":"io.github.libtmux.Session.Session.info","name":"info","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public SessionState info()","params":[],"returns":"SessionState","typeScopeBoundary":false}],"doc":{"summary":"The fields this capture stored. A later rename is not visible here."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.info","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.info","product":"core","slug":"io-github-libtmux-session-session-info"},{"id":"io.github.libtmux.Session.Session.id","name":"id","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public SessionId id()","params":[],"returns":"SessionId","typeScopeBoundary":false}],"doc":{"summary":"The session's stable id."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.id","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.id","product":"core","slug":"io-github-libtmux-session-session-id"},{"id":"io.github.libtmux.Session.Session.name","name":"name","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public String name()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The session name, which a user may change at any time."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.name","product":"core","slug":"io-github-libtmux-session-session-name"},{"id":"io.github.libtmux.Session.Session.attached","name":"attached","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public boolean attached()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether a client was attached when this was captured."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":65,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.attached","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.attached","product":"core","slug":"io-github-libtmux-session-session-attached"},{"id":"io.github.libtmux.Session.Session.server","name":"server","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Server server()","params":[],"returns":"Server","typeScopeBoundary":false}],"doc":{"summary":"The server this session lives on."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":71,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.server","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.server","product":"core","slug":"io-github-libtmux-session-session-server"},{"id":"io.github.libtmux.Session.Session.snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"ServerSnapshot snapshot()","params":[],"returns":"ServerSnapshot","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":76,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.snapshot","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.snapshot","product":"core","slug":"io-github-libtmux-session-session-snapshot"},{"id":"io.github.libtmux.Session.Session.activeWindow","name":"activeWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Optional activeWindow()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The window tmux had active in this session. A pure read of the capture."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":81,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.activeWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.activeWindow","product":"core","slug":"io-github-libtmux-session-session-activewindow"},{"id":"io.github.libtmux.Session.Session.activePane","name":"activePane","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Optional activePane()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The active pane of the active window. A pure read of the capture."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":87,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.activePane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.activePane","product":"core","slug":"io-github-libtmux-session-session-activepane"},{"id":"io.github.libtmux.Session.Session.selectWindow","name":"selectWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void selectWindow(Window window)","params":[{"name":"window","type":"Window"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Makes a window of this session the active one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":93,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.selectWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.selectWindow","product":"core","slug":"io-github-libtmux-session-session-selectwindow"},{"id":"io.github.libtmux.Session.Session.nextWindow","name":"nextWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void nextWindow()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Moves to the next window in this session, wrapping at the end."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":110,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.nextWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.nextWindow","product":"core","slug":"io-github-libtmux-session-session-nextwindow"},{"id":"io.github.libtmux.Session.Session.previousWindow","name":"previousWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void previousWindow()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Moves to the previous window in this session, wrapping at the start."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":116,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.previousWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.previousWindow","product":"core","slug":"io-github-libtmux-session-session-previouswindow"},{"id":"io.github.libtmux.Session.Session.lastWindow","name":"lastWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void lastWindow()","params":[],"returns":"void","typeScopeBoundary":false,"raises":[{"type":"LibTmuxException","doc":"if nothing else has been active yet, which tmux reports rather than silently staying put"}]}],"doc":{"summary":"Returns to the window that was active before this one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":127,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.lastWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.lastWindow","product":"core","slug":"io-github-libtmux-session-session-lastwindow"},{"id":"io.github.libtmux.Session.Session.detachClients","name":"detachClients","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void detachClients()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Detaches every client attached to this session, leaving the session running."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":133,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.detachClients","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.detachClients","product":"core","slug":"io-github-libtmux-session-session-detachclients"},{"id":"io.github.libtmux.Session.Session.options","name":"options","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Options options()","params":[],"returns":"Options","typeScopeBoundary":false}],"doc":{"summary":"This session's own options."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":139,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.options","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.options","product":"core","slug":"io-github-libtmux-session-session-options"},{"id":"io.github.libtmux.Session.Session.environment","name":"environment","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Environment environment()","params":[],"returns":"Environment","typeScopeBoundary":false}],"doc":{"summary":"This session's own environment, which a process started in it is given on top of the server's."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":148,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.environment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.environment","product":"core","slug":"io-github-libtmux-session-session-environment"},{"id":"io.github.libtmux.Session.Session.hooks","name":"hooks","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Hooks hooks()","params":[],"returns":"Hooks","typeScopeBoundary":false}],"doc":{"summary":"This session's own hooks."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":154,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.hooks","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.hooks","product":"core","slug":"io-github-libtmux-session-session-hooks"},{"id":"io.github.libtmux.Session.Session.setHistoryLimit","name":"setHistoryLimit","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void setHistoryLimit(int lines)","params":[{"name":"lines","type":"int"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Sets the scrollback retained by panes created in this session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":160,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.setHistoryLimit","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.setHistoryLimit","product":"core","slug":"io-github-libtmux-session-session-sethistorylimit"},{"id":"io.github.libtmux.Session.Session.windows","name":"windows","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.CAPTURED)\n public List windows()","params":[],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"This session's windows, in tmux's order. A pure read of the capture.","examples":[{"lang":"console","intro":"List all windows, then the windows captured for one session. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/ListWindows.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/ListWindows.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport java.nio.file.Path;\nimport java.util.stream.Collectors;\n\n/** List all windows, then the windows captured for one session. */\npublic final class ListWindows {\n private ListWindows() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n System.out.println(\"windows=\"\n + server.windows().stream()\n .map(window -> window.name())\n .sorted()\n .collect(Collectors.joining(\",\")));\n var session = server.session(\"work-one\").orElseThrow();\n System.out.println(\"session-windows=\"\n + session.windows().stream()\n .map(window -> window.name())\n .sorted()\n .collect(Collectors.joining(\",\")));\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.ListWindows && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"windows=editor,editor,logs\nsession-windows=editor,logs\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":169,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.windows","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.windows","product":"core","slug":"io-github-libtmux-session-session-windows"},{"id":"io.github.libtmux.Session.Session.newWindow","name":"newWindow","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public Window newWindow(String name)","params":[{"name":"name","type":"String","doc":"the window name"}],"returns":"Window","typeScopeBoundary":false,"returnsDoc":"a handle on the created window, from a fresh capture"},{"raw":"@Operation(Kind.MUTATION)\n public Window newWindow(Consumer configure)","params":[{"name":"configure","type":"Consumer","doc":"receives a builder holding tmux's defaults"}],"returns":"Window","typeScopeBoundary":false,"returnsDoc":"a handle on the created window, from a fresh capture"},{"raw":"@Operation(Kind.MUTATION)\n public Window newWindow(WindowSpec spec)","params":[{"name":"spec","type":"WindowSpec"}],"returns":"Window","typeScopeBoundary":false,"returnsDoc":"a handle on the created window, from a fresh capture"}],"doc":{"summary":"Creates a window in this session and returns that exact window.","body":"The creating command reports which window it made, rather than the name being looked up\nafterwards: two windows may share a name, and then a lookup cannot say which one is new.","examples":[{"lang":"console","intro":"Create a window and read the updated session. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/NewWindow.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/NewWindow.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport io.github.libtmux.WindowSpec;\nimport java.nio.file.Path;\nimport java.util.stream.Collectors;\n\n/** Create a window and read the updated session. */\npublic final class NewWindow {\n private NewWindow() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n var session = server.session(\"work-one\").orElseThrow();\n var window = session.newWindow(WindowSpec.builder()\n .named(\"api-window\")\n .running(\"/bin/cat\")\n .build());\n System.out.println(\"created=\" + window.name());\n var refreshed = server.session(\"work-one\").orElseThrow();\n System.out.println(\"windows=\"\n + refreshed.windows().stream()\n .map(item -> item.name())\n .sorted()\n .collect(Collectors.joining(\",\")));\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.NewWindow && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"created=api-window\nwindows=api-window,editor,logs\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":186,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.newWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.newWindow","product":"core","slug":"io-github-libtmux-session-session-newwindow"},{"id":"io.github.libtmux.Session.Session.expand","name":"expand","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Operation(Kind.READ)\n public String expand(String format)","params":[{"name":"format","type":"String","doc":"a tmux format, usually of the shape {@code #{name}}"}],"returns":"String","typeScopeBoundary":false,"returnsDoc":"the expansion, whole when it spans lines and empty when the format expanded to nothing"}],"doc":{"summary":"Expands a tmux format in this session's context, and answers with what it came to.","body":"The same escape hatch {@link Pane#expand} gives, resolved against this session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":247,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.expand","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.expand","product":"core","slug":"io-github-libtmux-session-session-expand"},{"id":"io.github.libtmux.Session.Session.rename","name":"rename","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@CheckReturnValue\n @Operation(Kind.MUTATION)\n public Session rename(String name)","params":[{"name":"name","type":"String"}],"returns":"Session","typeScopeBoundary":false}],"doc":{"summary":"Renames this session and returns its replacement capture.","body":"Retain the result to read the changed name. This handle keeps its original captured state."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":261,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.rename","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.rename","product":"core","slug":"io-github-libtmux-session-session-rename"},{"id":"io.github.libtmux.Session.Session.kill","name":"kill","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void kill()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Ends this session. Every window in it goes with it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":269,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.kill","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.kill","product":"core","slug":"io-github-libtmux-session-session-kill"},{"id":"io.github.libtmux.Session.Session.refresh","name":"refresh","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@CheckReturnValue\n @Operation(Kind.READ)\n public Session refresh()","params":[],"returns":"Session","typeScopeBoundary":false,"raises":[{"type":"TargetGoneException","doc":"if the session is gone from a server that still answers"},{"type":"ServerUnavailableException","doc":"if no daemon is running"}]}],"doc":{"summary":"Takes a new capture and returns this session as it is now.","body":"This handle remains unchanged. Use the returned handle for subsequent state reads."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":282,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.refresh","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.refresh","product":"core","slug":"io-github-libtmux-session-session-refresh"},{"id":"io.github.libtmux.Session.Session.equals","name":"equals","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Override\n public boolean equals(Object other)","params":[{"name":"other","type":"Object"}],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":291,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.equals","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.equals","product":"core","slug":"io-github-libtmux-session-session-equals"},{"id":"io.github.libtmux.Session.Session.hashCode","name":"hashCode","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Override\n public int hashCode()","params":[],"returns":"int","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":298,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.hashCode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.hashCode","product":"core","slug":"io-github-libtmux-session-session-hashcode"},{"id":"io.github.libtmux.Session.Session.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.Session.Session","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Session.java","line":303,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session.Session.toString","product":"core","slug":"io-github-libtmux-session-session-tostring"},{"id":"io.github.libtmux.SessionCreation.SessionCreation","name":"SessionCreation","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Assembles the pieces {@link Server#newSession(SessionSpec)} needs before tmux has a session yet."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionCreation.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionCreation","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionCreation.SessionCreation","product":"core","slug":"io-github-libtmux-sessioncreation-sessioncreation"},{"id":"io.github.libtmux.SessionCreation.SessionCreation.failureMessage","name":"failureMessage","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.SessionCreation.SessionCreation","signatures":[{"raw":"static String failureMessage(ServerConfig config, CommandResult result)","params":[{"name":"config","type":"ServerConfig"},{"name":"result","type":"CommandResult"}],"returns":"String","typeScopeBoundary":true}],"doc":{"summary":"tmux exits 0 even when nothing was created: an explicit {@code -S} under a directory that does not exist prints its own {@code error creating ...} and still returns success, and a binary that is not tmux at all can exit 0 with nothing on stdout the same way {@code run} cannot tell apart from a real session id. Reads tmux's own words when it spoke and names the configured binary when it did not, rather than letting an empty list reach {@code SessionId} and throw an unchecked collection exception with neither in it.","body":"tmux 3.2a says nothing at all when it cannot create its socket: the server queues the\nerror and tells the client to exit at once, and the client leaves before the error reaches\nit. So a silent exit checks the one cause this client can see for itself."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionCreation.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionCreation.failureMessage","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionCreation.SessionCreation.failureMessage","product":"core","slug":"io-github-libtmux-sessioncreation-sessioncreation-failuremessage"},{"id":"io.github.libtmux.SessionCreation.SessionCreation.versionForCreation","name":"versionForCreation","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.SessionCreation.SessionCreation","signatures":[{"raw":"static TmuxVersion versionForCreation(Server server)","params":[{"name":"server","type":"Server"}],"returns":"TmuxVersion","typeScopeBoundary":true}],"doc":{"summary":"The version to gate a session-creation spec against.","body":"{@code new-session} may be the first command said to a fresh socket, where {@link\nServer#version()} fails for want of a daemon. So this asks a running daemon when one answers,\nsince it may be a different build than the configured binary, and otherwise asks the binary\nthrough {@link #binaryVersion}.\n\nReads {@link SnapshotCapture#processForCreation()} rather than {@link Server#version()}: a\ndaemon too old to talk to fails the identity probe as one never started does (\"server exited\nunexpectedly\"), and {@link ServerUnavailableException} does not keep that distinction.\nFalling back to {@code binaryVersion} for such a daemon would report the binary's version as\nthe daemon's."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionCreation.java","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionCreation.versionForCreation","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionCreation.SessionCreation.versionForCreation","product":"core","slug":"io-github-libtmux-sessioncreation-sessioncreation-versionforcreation"},{"id":"io.github.libtmux.SessionId.SessionId","name":"SessionId","kind":"class","modifiers":[],"signatures":[{"raw":"public record SessionId(String value)","params":[{"name":"value","type":"String","doc":"the id including its {@code $} sigil"}]}],"typeScopeBoundary":false,"doc":{"summary":"A tmux session id, such as {@code $0}.","body":"Stable for the life of the session, unlike a session name, which a user can change at any\ntime. A separate type from {@link WindowId} and {@link PaneId} because tmux accepts any of them\nas {@code -t} syntax: passing the wrong one is not an error tmux reports, it simply addresses\nnothing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionId.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionId","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionId.SessionId","product":"core","slug":"io-github-libtmux-sessionid-sessionid"},{"id":"io.github.libtmux.SessionId.SessionId.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionId.SessionId","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionId.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionId.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionId.SessionId.toString","product":"core","slug":"io-github-libtmux-sessionid-sessionid-tostring"},{"id":"io.github.libtmux.SessionId.SessionId.value","name":"value","kind":"method","parent":"io.github.libtmux.SessionId.SessionId","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the id including its {@code $} sigil"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionId.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionId.value","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionId.SessionId.value","product":"core","slug":"io-github-libtmux-sessionid-sessionid-value"},{"id":"io.github.libtmux.SessionLookup.SessionLookup","name":"SessionLookup","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Resolves a caller-given session name to the id tmux keeps it under."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionLookup.java","line":9,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionLookup","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionLookup.SessionLookup","product":"core","slug":"io-github-libtmux-sessionlookup-sessionlookup"},{"id":"io.github.libtmux.SessionLookup.SessionLookup.named","name":"named","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.SessionLookup.SessionLookup","signatures":[{"raw":"static Optional named(Server server, String name)","params":[{"name":"server","type":"Server"},{"name":"name","type":"String"}],"returns":"Optional","typeScopeBoundary":true}],"doc":{"summary":"The id of the session tmux keeps under this name, read from one listing.","body":"Not a {@code -t =name} target: tmux reads {@code .} and {@code :} in a target as window and\npane separators, and it may have stored the name differently from how it was given."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionLookup.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionLookup.named","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionLookup.SessionLookup.named","product":"core","slug":"io-github-libtmux-sessionlookup-sessionlookup-named"},{"id":"io.github.libtmux.SessionSpec.SessionSpec","name":"SessionSpec","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"How a session should be made.","body":"The shape {@link SplitSpec} and {@link WindowSpec} use. tmux's {@code -A}, which attaches when\nthe name is taken, is deliberately absent: attaching needs a terminal, and it fails with\n{@code open terminal failed} on every supported release when there is none. Asking\n{@link Server#hasSession} first does the same job from a process that has no tty, which is where a\nlibrary usually runs.","examples":[{"lang":"java","code":"Session build = server.newSession(s -> s.named(\"build\").sized(new Dimensions(120, 40)));"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.builder","name":"builder","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"raw":"public static Builder builder()","params":[],"returns":"Builder","typeScopeBoundary":true}],"doc":{"summary":"A builder holding tmux's own defaults: a detached session tmux names itself."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.builder","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-1p4q"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.name","name":"name","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"raw":"public Optional name()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The session name, or empty to let tmux number it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":67,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.name","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-name"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.directory","name":"directory","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"raw":"public Optional directory()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"Where the session's first pane starts, or empty to inherit."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":72,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.directory","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.directory","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-directory"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.environment","name":"environment","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"raw":"@ReadOnly\n public Map environment()","params":[],"returns":"Map","typeScopeBoundary":false}],"doc":{"summary":"Variables set for the new session, in the order they were given."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.environment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.environment","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-environment"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.detached","name":"detached","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"raw":"public boolean detached()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Always true, and not a choice.","body":"{@code new-session} attaches unless told not to, and attaching needs a terminal — from a\nprocess without one it fails with {@code open terminal failed}. A library is usually called\nfrom something that has no tty, so the session is always created detached. {@link WindowSpec}\nand {@link SplitSpec} default the other way, because their commands need no terminal."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":90,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.detached","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.detached","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-detached"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.windowName","name":"windowName","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"raw":"public Optional windowName()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The name of the session's first window, or empty for tmux's choice."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":95,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.windowName","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.windowName","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-windowname"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.size","name":"size","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"raw":"public Optional size()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"How big the session is, or empty for tmux's default. Requires tmux 3.3."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":100,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.size","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.size","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-size"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.withoutSize","name":"withoutSize","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"raw":"public boolean withoutSize()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether tmux is told not to give the session a size at all."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":105,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.withoutSize","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.withoutSize","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-withoutsize"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.detachOthers","name":"detachOthers","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"raw":"public boolean detachOthers()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether other clients on this session are detached."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":110,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.detachOthers","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.detachOthers","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-detachothers"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.clientFlags","name":"clientFlags","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"raw":"@ReadOnly\n public List clientFlags()","params":[],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"Client flags, which tmux takes as one comma-separated list."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":115,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.clientFlags","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.clientFlags","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-clientflags"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.command","name":"command","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"raw":"@ReadOnly\n public List command()","params":[],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"What the session's first pane runs, empty for the default shell."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":121,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.command","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.command","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-command"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.argv","name":"argv","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"raw":"List argv(String format, Supplier running)","params":[{"name":"format","type":"String","doc":"the row format the caller will read the result back with"},{"name":"running","type":"Supplier","doc":"what the server about to run this is, asked only if it matters"}],"returns":"List","typeScopeBoundary":false,"raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something {@code running} does not have"}]}],"doc":{"summary":"The command that makes this session, reporting it through {@code format}.","body":"The version arrives as a supplier because this is the one creating call that may run when\nthere is no server yet, and asking a socket with nothing behind it for its version fails.\nNothing asks unless the spec depends on the answer."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":137,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.argv","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.argv","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-argv"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":192,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.toString","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-tostring"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder","name":"Builder","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.SessionSpec.SessionSpec","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Collects the choices, each named for what it does rather than for the field it sets."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":198,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-3lof"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.named","name":"named","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"raw":"public Builder named(String name)","params":[{"name":"name","type":"String"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Names the session, where tmux would otherwise number it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":213,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.named","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.named","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-named"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.firstWindowNamed","name":"firstWindowNamed","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"raw":"public Builder firstWindowNamed(String windowName)","params":[{"name":"windowName","type":"String"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Names the session's first window."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":219,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.firstWindowNamed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.firstWindowNamed","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-firstwindownamed"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.running","name":"running","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"raw":"public Builder running(String... argv)","params":[{"name":"argv","type":"String","variadic":"positional"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Runs a command instead of the default shell. tmux reports the session before the command has started, so wait for its pane's command with {@link Pane#await(java.util.function.Predicate, java.time.Duration)} rather than reading it at once."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":228,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.running","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.running","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-running"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.in","name":"in","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"raw":"public Builder in(Path directory)","params":[{"name":"directory","type":"Path"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Starts the session in this directory, resolved against this process's when relative."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":238,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.in","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.in","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-in"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.env","name":"env","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"raw":"public Builder env(String name, String value)","params":[{"name":"name","type":"String"},{"name":"value","type":"String"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Sets one variable in the new session's environment."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":244,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.env","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.env","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-env"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.environment","name":"environment","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"raw":"public Builder environment(Map variables)","params":[{"name":"variables","type":"Map"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Adds several variables to the new session's environment, keeping any already set."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":250,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.environment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.environment","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-environment"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.sized","name":"sized","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"raw":"public Builder sized(Dimensions size)","params":[{"name":"size","type":"Dimensions"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Gives the session a size, which a detached session has no client to take one from."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":256,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.sized","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.sized","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-sized"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.withoutSize","name":"withoutSize","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"raw":"public Builder withoutSize()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Asks tmux not to give the session a size at all."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":262,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.withoutSize","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.withoutSize","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-withoutsize"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.detachOthers","name":"detachOthers","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"raw":"public Builder detachOthers()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Detaches any other client already on this session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":268,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.detachOthers","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.detachOthers","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-detachothers"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.clientFlags","name":"clientFlags","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"raw":"public Builder clientFlags(String... flags)","params":[{"name":"flags","type":"String","variadic":"positional"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Sets the client flags tmux applies, which it reads as one comma-separated list."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":274,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.clientFlags","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.clientFlags","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-clientflags"},{"id":"io.github.libtmux.SessionSpec.SessionSpec.Builder.build","name":"build","kind":"method","modifiers":[],"parent":"io.github.libtmux.SessionSpec.SessionSpec.Builder","signatures":[{"raw":"public SessionSpec build()","params":[],"returns":"SessionSpec","typeScopeBoundary":false}],"doc":{"summary":"The finished spec."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SessionSpec.java","line":280,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SessionSpec.Builder.build","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SessionSpec.SessionSpec.Builder.build","product":"core","slug":"io-github-libtmux-sessionspec-sessionspec-builder-build"},{"id":"io.github.libtmux.Shell.Shell","name":"Shell","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"A shell command run by tmux, and a tmux command chosen by a shell command's exit status.","body":"tmux expands {@code #(...)} in these strings before a shell sees them. Pass an interpolated\nvalue through {@link TmuxFormats#literal} unless that expansion is what you want."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Shell.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Shell","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Shell.Shell","product":"core","slug":"io-github-libtmux-shell-shell"},{"id":"io.github.libtmux.Shell.Shell.Shell","name":"Shell","kind":"method","modifiers":[],"parent":"io.github.libtmux.Shell.Shell","signatures":[{"raw":"Shell(Server server)","params":[{"name":"server","type":"Server"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Shell.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Shell.Shell","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Shell.Shell.Shell","product":"core","slug":"io-github-libtmux-shell-shell-shell"},{"id":"io.github.libtmux.Shell.Shell.run","name":"run","kind":"method","modifiers":[],"parent":"io.github.libtmux.Shell.Shell","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void run(String command)","params":[{"name":"command","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Runs a shell command for its effect. Nothing is claimed about what it printed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Shell.java","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Shell.run","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Shell.Shell.run","product":"core","slug":"io-github-libtmux-shell-shell-run"},{"id":"io.github.libtmux.Shell.Shell.capturing","name":"capturing","kind":"method","modifiers":[],"parent":"io.github.libtmux.Shell.Shell","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.MUTATION)\n public List capturing(String command)","params":[{"name":"command","type":"String"}],"returns":"List","typeScopeBoundary":false,"raises":[{"type":"UnsupportedFeatureException","doc":"on tmux 3.3a and 3.4, which run the command and report nothing"}]}],"doc":{"summary":"Runs a shell command and answers with what it printed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Shell.java","line":45,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Shell.capturing","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Shell.Shell.capturing","product":"core","slug":"io-github-libtmux-shell-shell-capturing"},{"id":"io.github.libtmux.Shell.Shell.choose","name":"choose","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Shell.Shell","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void choose(String condition, String whenTrue)","params":[{"name":"condition","type":"String","doc":"a shell command, judged by its exit status"},{"name":"whenTrue","type":"String","doc":"the tmux command to run when the condition succeeds"}],"returns":"void","typeScopeBoundary":false},{"raw":"@Operation(Kind.MUTATION)\n public void choose(String condition, String whenTrue, String whenFalse)","params":[{"name":"condition","type":"String"},{"name":"whenTrue","type":"String"},{"name":"whenFalse","type":"String","doc":"the tmux command to run when the condition does not succeed"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Runs one tmux command when a shell command succeeds."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Shell.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Shell.choose","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Shell.Shell.choose","product":"core","slug":"io-github-libtmux-shell-shell-choose"},{"id":"io.github.libtmux.snapshot.ClientState.ClientState","name":"ClientState","kind":"class","modifiers":[],"signatures":[{"raw":"public record ClientState(String name, Optional session)","params":[{"name":"name","type":"String","doc":"the client's terminal name, which is how tmux addresses it"},{"name":"session","type":"Optional","doc":"the session it was attached to, if any"}]}],"typeScopeBoundary":false,"doc":{"summary":"A client as one capture saw it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ClientState.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ClientState","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ClientState.ClientState","product":"core","slug":"io-github-libtmux-snapshot-clientstate-clientstate"},{"id":"io.github.libtmux.snapshot.ClientState.ClientState.name","name":"name","kind":"method","parent":"io.github.libtmux.snapshot.ClientState.ClientState","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the client's terminal name, which is how tmux addresses it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ClientState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ClientState.name","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ClientState.ClientState.name","product":"core","slug":"io-github-libtmux-snapshot-clientstate-clientstate-name"},{"id":"io.github.libtmux.snapshot.ClientState.ClientState.session","name":"session","kind":"method","parent":"io.github.libtmux.snapshot.ClientState.ClientState","modifiers":[],"signatures":[{"params":[],"returns":"Optional"}],"doc":{"summary":"the session it was attached to, if any"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ClientState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ClientState.session","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ClientState.ClientState.session","product":"core","slug":"io-github-libtmux-snapshot-clientstate-clientstate-session"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState","name":"PaneState","kind":"class","modifiers":[],"signatures":[{"raw":"public record PaneState(\n WindowContext context,\n PaneId id,\n int index,\n boolean active,\n String currentCommand,\n Dimensions size,\n PanePosition position,\n String title,\n String currentPath,\n OptionalLong pid,\n PaneEdges edges,\n Optional floating)","params":[{"name":"context","type":"WindowContext","doc":"the winlink the pane was reached through"},{"name":"id","type":"PaneId","doc":"the pane's stable id"},{"name":"index","type":"int","doc":"the pane's position, which shifts as neighbours come and go"},{"name":"active","type":"boolean","doc":"whether it was the active pane of its window"},{"name":"currentCommand","type":"String","doc":"the command tmux reported running in it"},{"name":"size","type":"Dimensions","doc":"how large the pane was, in terminal cells"},{"name":"position","type":"PanePosition","doc":"where the pane's top-left corner sat in its window, in terminal cells"},{"name":"title","type":"String","doc":"the pane title, which a program inside it can change"},{"name":"currentPath","type":"String","doc":"the working directory tmux reported for it, as text. Not a {@link java.nio.file.Path}: a directory name is bytes to tmux, and converting one this JVM's encoding cannot represent throws — which, in a capture, would lose every other pane over one pane's directory. {@code Pane.currentPath()} converts on request instead"},{"name":"pid","type":"OptionalLong","doc":"the process id of the program running in it, or empty when tmux reports no process at all — never a literal zero, so a caller cannot mistake the sentinel for a real pid"},{"name":"edges","type":"PaneEdges","doc":"which sides of its window the pane touches"},{"name":"floating","type":"Optional","doc":"whether the pane floats, or empty when the running tmux cannot say. Before 3.7 the format expands to nothing at all, and reporting that as {@code false} would be indistinguishable from a tmux that looked and found the pane was not floating."}]}],"typeScopeBoundary":false,"doc":{"summary":"A pane as one capture saw it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.context","name":"context","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"WindowContext"}],"doc":{"summary":"the winlink the pane was reached through"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.context","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.context","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-context"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.id","name":"id","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"PaneId"}],"doc":{"summary":"the pane's stable id"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.id","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.id","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-id"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.index","name":"index","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"the pane's position, which shifts as neighbours come and go"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.index","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.index","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-index"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.active","name":"active","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether it was the active pane of its window"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.active","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.active","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-active"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.currentCommand","name":"currentCommand","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the command tmux reported running in it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.currentCommand","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.currentCommand","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-currentcommand"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.size","name":"size","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"Dimensions"}],"doc":{"summary":"how large the pane was, in terminal cells"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.size","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.size","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-size"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.position","name":"position","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"PanePosition"}],"doc":{"summary":"where the pane's top-left corner sat in its window, in terminal cells"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.position","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.position","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-position"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.title","name":"title","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the pane title, which a program inside it can change"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.title","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.title","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-title"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.currentPath","name":"currentPath","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the working directory tmux reported for it, as text. Not a {@link java.nio.file.Path}: a directory name is bytes to tmux, and converting one this JVM's encoding cannot represent throws — which, in a capture, would lose every other pane over one pane's directory. {@code Pane.currentPath()} converts on request instead"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.currentPath","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.currentPath","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-currentpath"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.pid","name":"pid","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"OptionalLong"}],"doc":{"summary":"the process id of the program running in it, or empty when tmux reports no process at all — never a literal zero, so a caller cannot mistake the sentinel for a real pid"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.pid","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.pid","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-pid"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.edges","name":"edges","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"PaneEdges"}],"doc":{"summary":"which sides of its window the pane touches"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.edges","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.edges","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-edges"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState.floating","name":"floating","kind":"method","parent":"io.github.libtmux.snapshot.PaneState.PaneState","modifiers":[],"signatures":[{"params":[],"returns":"Optional"}],"doc":{"summary":"whether the pane floats, or empty when the running tmux cannot say. Before 3.7 the format expands to nothing at all, and reporting that as {@code false} would be indistinguishable from a tmux that looked and found the pane was not floating."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/PaneState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.PaneState.floating","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.PaneState.PaneState.floating","product":"core","slug":"io-github-libtmux-snapshot-panestate-panestate-floating"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","name":"ServerMirror","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"A live copy of one tmux server's sessions, windows, panes and clients, rebuilt whenever tmux announces a change.","body":"A control client attached through an anchor session hears what tmux announces. Any\nannouncement, or a {@link Delivery.Gap} in them, starts a fresh {@link Server#snapshot()} — never\na patch of the last one, since an announcement says that something changed, not everything that\ndid. Announcements that arrive while a snapshot is being taken collapse into one more rebuild, and\na rebuild that finds nothing different publishes nothing. Each published {@link View} carries an\nepoch one above the last, counted by this mirror; it is not a number tmux keeps.\n\ntmux keeps no history of what it announced. When the control client ends, the mirror finds\nthe anchor session again by its id and attaches through it with a fresh snapshot; if the session\nhas gone, the mirror ends with {@link TargetGoneException}, and if the server has, with the\nfailure that said so. A change tmux does not announce to this client, such as a pane retitled in\nanother session, is seen at the next rebuild, or within {@code refreshEvery} when one is given.\n\nThread-safe. One virtual thread per mirror listens and rebuilds; {@link #close()} ends it and\nthe control client with it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.View","name":"View","kind":"class","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","signatures":[{"raw":"public record View(long epoch, ServerSnapshot snapshot)","params":[{"name":"epoch","type":"long","doc":"how many views this mirror published before this one"},{"name":"snapshot","type":"ServerSnapshot","doc":"the server as the rebuild captured it"}]}],"typeScopeBoundary":true,"doc":{"summary":"One published state of the server."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.View","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.View","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-view"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.View.epoch","name":"epoch","kind":"method","parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.View","modifiers":[],"signatures":[{"params":[],"returns":"long"}],"doc":{"summary":"how many views this mirror published before this one"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.View.epoch","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.View.epoch","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-view-epoch"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.View.snapshot","name":"snapshot","kind":"method","parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.View","modifiers":[],"signatures":[{"params":[],"returns":"ServerSnapshot"}],"doc":{"summary":"the server as the rebuild captured it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.View.snapshot","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.View.snapshot","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-view-snapshot"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.open","name":"open","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","signatures":[{"raw":"@Operation(Kind.LIFECYCLE)\n public static ServerMirror open(Session anchor)","params":[{"name":"anchor","type":"Session"}],"returns":"ServerMirror","typeScopeBoundary":true,"raises":[{"type":"TargetGoneException","doc":"if the anchor session or its server has gone"}]},{"raw":"@Operation(Kind.LIFECYCLE)\n public static ServerMirror open(Session anchor, Duration refreshEvery)","params":[{"name":"anchor","type":"Session"},{"name":"refreshEvery","type":"Duration","doc":"how long a quiet mirror waits before rebuilding anyway; zero never does"}],"returns":"ServerMirror","typeScopeBoundary":true,"raises":[{"type":"IllegalArgumentException","doc":"if {@code refreshEvery} is negative"}]}],"doc":{"summary":"Mirrors the server {@code anchor} belongs to, listening through a control client attached to {@code anchor}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":96,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.open","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.open","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-open"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.current","name":"current","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public View current()","params":[],"returns":"View","typeScopeBoundary":false}],"doc":{"summary":"The latest published view."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":121,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.current","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.current","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-current"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.awaitNewer","name":"awaitNewer","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","signatures":[{"raw":"@Operation(Kind.WAIT)\n public Optional awaitNewer(long epoch, Duration timeout) throws InterruptedException","params":[{"name":"epoch","type":"long"},{"name":"timeout","type":"Duration"}],"returns":"Optional","typeScopeBoundary":false,"returnsDoc":"the newer view, or empty when {@code timeout} passed first or the mirror ended; {@link #isEnded()} and {@link #cause()} tell those apart","raises":[{"type":"InterruptedException","doc":"if the waiting thread is interrupted"}]}],"doc":{"summary":"Waits for a view newer than {@code epoch}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":138,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.awaitNewer","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.awaitNewer","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-awaitnewer"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.onNewer","name":"onNewer","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public void onNewer(long epoch, Runnable callback)","params":[{"name":"epoch","type":"long"},{"name":"callback","type":"Runnable"}],"returns":"void","typeScopeBoundary":false,"raises":[{"type":"IllegalStateException","doc":"if a callback is already armed"}]}],"doc":{"summary":"Arms a one-shot wakeup for when a view newer than {@code epoch} is published or the mirror ends.","body":"Runs {@code callback} at once, on this thread, when such a view already exists or the mirror\nhas ended; otherwise once, on the mirror's own thread. The callback must not block."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":160,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.onNewer","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.onNewer","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-onnewer"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.clearNewer","name":"clearNewer","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public void clearNewer()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Disarms the callback {@link #onNewer} armed, if one is armed."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":183,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.clearNewer","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.clearNewer","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-clearnewer"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.isEnded","name":"isEnded","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public boolean isEnded()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether this mirror has stopped publishing, because it was closed or its anchor has gone."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":194,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.isEnded","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.isEnded","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-isended"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.cause","name":"cause","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Optional cause()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"Why this mirror ended, when something other than {@link #close()} ended it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":205,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.cause","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.cause","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-cause"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","signatures":[{"raw":"@Override\n @Operation(Kind.LIFECYCLE)\n public void close()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Stops listening and detaches the control client. The last view stays readable. Idempotent."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerMirror.java","line":216,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerMirror.close","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerMirror.ServerMirror.close","product":"core","slug":"io-github-libtmux-snapshot-servermirror-servermirror-close"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","name":"ServerSnapshot","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"One tmux hierarchy, as it was at one moment.","body":"Every question below is answered from what was captured, so traversing a snapshot issues no\ncommands and cannot observe a half-changed server. It claims a moment rather than current truth:\ntmux offers no transaction across separate listings, and pretending otherwise would be a promise\nthis cannot keep."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.of","name":"of","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"raw":"public static ServerSnapshot of(\n Instant capturedAt,\n long serverPid,\n TmuxVersion serverVersion,\n List sessions,\n List windows,\n List panes,\n List clients)","params":[{"name":"capturedAt","type":"Instant"},{"name":"serverPid","type":"long"},{"name":"serverVersion","type":"TmuxVersion"},{"name":"sessions","type":"List"},{"name":"windows","type":"List"},{"name":"panes","type":"List"},{"name":"clients","type":"List"}],"returns":"ServerSnapshot","typeScopeBoundary":true},{"raw":"public static ServerSnapshot of(\n Instant capturedAt,\n long serverPid,\n long serverStartTime,\n TmuxVersion serverVersion,\n List sessions,\n List windows,\n List panes,\n List clients)","params":[{"name":"capturedAt","type":"Instant"},{"name":"serverPid","type":"long"},{"name":"serverStartTime","type":"long"},{"name":"serverVersion","type":"TmuxVersion"},{"name":"sessions","type":"List"},{"name":"windows","type":"List"},{"name":"panes","type":"List"},{"name":"clients","type":"List"}],"returns":"ServerSnapshot","typeScopeBoundary":true}],"doc":{"summary":"Assembles a capture tied to the live tmux process and version that produced it, with no start time: a handle made from it is fenced by the process id alone."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":107,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.of","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.of","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-of"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.capturedAt","name":"capturedAt","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"raw":"public Instant capturedAt()","params":[],"returns":"Instant","typeScopeBoundary":false}],"doc":{"summary":"When this capture was taken."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":235,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.capturedAt","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.capturedAt","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-capturedat"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.serverPid","name":"serverPid","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"raw":"public OptionalLong serverPid()","params":[],"returns":"OptionalLong","typeScopeBoundary":false}],"doc":{"summary":"The tmux process that produced this capture, absent when assembled from detached state."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":240,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.serverPid","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.serverPid","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-serverpid"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.serverStartTime","name":"serverStartTime","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"raw":"public OptionalLong serverStartTime()","params":[],"returns":"OptionalLong","typeScopeBoundary":false}],"doc":{"summary":"When the tmux process that produced this capture started, in seconds since the epoch, as {@code #{start_time}} reports it. Absent when the capture was assembled without it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":248,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.serverStartTime","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.serverStartTime","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-serverstarttime"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.serverVersion","name":"serverVersion","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"raw":"public Optional serverVersion()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The tmux version that produced this capture, absent when assembled from detached state."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":253,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.serverVersion","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.serverVersion","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-serverversion"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.sessions","name":"sessions","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"raw":"@ReadOnly\n public List sessions()","params":[],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"Every session, in tmux's order."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":258,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.sessions","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.sessions","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-sessions"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.windows","name":"windows","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"raw":"@ReadOnly\n public List windows()","params":[],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"Every winlink, in tmux's order, including a window linked into more than one session twice."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":264,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.windows","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.windows","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-windows"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.panes","name":"panes","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"raw":"@ReadOnly\n public List panes()","params":[],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"Every pane, in tmux's order."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":270,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.panes","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.panes","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-panes"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.clients","name":"clients","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"raw":"@ReadOnly\n public List clients()","params":[],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"Every attached client."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":276,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.clients","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.clients","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-clients"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.session","name":"session","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"raw":"public Optional session(SessionId id)","params":[{"name":"id","type":"SessionId"}],"returns":"Optional","typeScopeBoundary":false},{"raw":"public Optional session(String name)","params":[{"name":"name","type":"String"}],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The session with this id, if the capture saw it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":282,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.session","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.session","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-session"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.window","name":"window","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"raw":"public Optional window(WindowContext context)","params":[{"name":"context","type":"WindowContext"}],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The winlink at this exact position, if the capture saw it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":292,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.window","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.window","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-window"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.windowsOf","name":"windowsOf","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"raw":"@ReadOnly\n public List windowsOf(SessionId session)","params":[{"name":"session","type":"SessionId"}],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"The winlinks in one session, in order. Empty when the capture never saw that session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":297,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.windowsOf","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.windowsOf","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-windowsof"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.panesOf","name":"panesOf","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"raw":"@ReadOnly\n public List panesOf(WindowContext context)","params":[{"name":"context","type":"WindowContext"}],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"The panes under one winlink, in order. Empty when the capture never saw that winlink."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":303,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.panesOf","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.panesOf","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-panesof"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/ServerSnapshot.java","line":308,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.ServerSnapshot.toString","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot.toString","product":"core","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot-tostring"},{"id":"io.github.libtmux.snapshot.SessionState.SessionState","name":"SessionState","kind":"class","modifiers":[],"signatures":[{"raw":"public record SessionState(SessionId id, String name, boolean attached, int windows)","params":[{"name":"id","type":"SessionId","doc":"the session's stable id"},{"name":"name","type":"String","doc":"the session name, which a user may change at any time"},{"name":"attached","type":"boolean","doc":"whether a client was attached to it"},{"name":"windows","type":"int","doc":"how many windows it contained"}]}],"typeScopeBoundary":false,"doc":{"summary":"A session as one capture saw it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/SessionState.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.SessionState","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.SessionState.SessionState","product":"core","slug":"io-github-libtmux-snapshot-sessionstate-sessionstate"},{"id":"io.github.libtmux.snapshot.SessionState.SessionState.id","name":"id","kind":"method","parent":"io.github.libtmux.snapshot.SessionState.SessionState","modifiers":[],"signatures":[{"params":[],"returns":"SessionId"}],"doc":{"summary":"the session's stable id"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/SessionState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.SessionState.id","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.SessionState.SessionState.id","product":"core","slug":"io-github-libtmux-snapshot-sessionstate-sessionstate-id"},{"id":"io.github.libtmux.snapshot.SessionState.SessionState.name","name":"name","kind":"method","parent":"io.github.libtmux.snapshot.SessionState.SessionState","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the session name, which a user may change at any time"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/SessionState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.SessionState.name","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.SessionState.SessionState.name","product":"core","slug":"io-github-libtmux-snapshot-sessionstate-sessionstate-name"},{"id":"io.github.libtmux.snapshot.SessionState.SessionState.attached","name":"attached","kind":"method","parent":"io.github.libtmux.snapshot.SessionState.SessionState","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether a client was attached to it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/SessionState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.SessionState.attached","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.SessionState.SessionState.attached","product":"core","slug":"io-github-libtmux-snapshot-sessionstate-sessionstate-attached"},{"id":"io.github.libtmux.snapshot.SessionState.SessionState.windows","name":"windows","kind":"method","parent":"io.github.libtmux.snapshot.SessionState.SessionState","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"how many windows it contained"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/SessionState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.SessionState.windows","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.SessionState.SessionState.windows","product":"core","slug":"io-github-libtmux-snapshot-sessionstate-sessionstate-windows"},{"id":"io.github.libtmux.snapshot.WindowContext.WindowContext","name":"WindowContext","kind":"class","modifiers":[],"signatures":[{"raw":"public record WindowContext(SessionId session, WindowIndex index, WindowId window)","params":[{"name":"session","type":"SessionId","doc":"the session this link belongs to"},{"name":"index","type":"WindowIndex","doc":"where the window sits in that session"},{"name":"window","type":"WindowId","doc":"the underlying window, shared across links"}]}],"typeScopeBoundary":false,"doc":{"summary":"One tmux winlink: a window as it appears in one session, at one index.","body":"The unit relations are keyed on. A window linked into two sessions has one {@link WindowId}\nand two contexts, and tmux treats those two positions as distinct."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowContext.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowContext","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowContext.WindowContext","product":"core","slug":"io-github-libtmux-snapshot-windowcontext-windowcontext"},{"id":"io.github.libtmux.snapshot.WindowContext.WindowContext.session","name":"session","kind":"method","parent":"io.github.libtmux.snapshot.WindowContext.WindowContext","modifiers":[],"signatures":[{"params":[],"returns":"SessionId"}],"doc":{"summary":"the session this link belongs to"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowContext.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowContext.session","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowContext.WindowContext.session","product":"core","slug":"io-github-libtmux-snapshot-windowcontext-windowcontext-session"},{"id":"io.github.libtmux.snapshot.WindowContext.WindowContext.index","name":"index","kind":"method","parent":"io.github.libtmux.snapshot.WindowContext.WindowContext","modifiers":[],"signatures":[{"params":[],"returns":"WindowIndex"}],"doc":{"summary":"where the window sits in that session"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowContext.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowContext.index","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowContext.WindowContext.index","product":"core","slug":"io-github-libtmux-snapshot-windowcontext-windowcontext-index"},{"id":"io.github.libtmux.snapshot.WindowContext.WindowContext.window","name":"window","kind":"method","parent":"io.github.libtmux.snapshot.WindowContext.WindowContext","modifiers":[],"signatures":[{"params":[],"returns":"WindowId"}],"doc":{"summary":"the underlying window, shared across links"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowContext.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowContext.window","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowContext.WindowContext.window","product":"core","slug":"io-github-libtmux-snapshot-windowcontext-windowcontext-window"},{"id":"io.github.libtmux.snapshot.WindowState.WindowState","name":"WindowState","kind":"class","modifiers":[],"signatures":[{"raw":"public record WindowState(\n WindowContext context,\n String name,\n boolean active,\n int panes,\n boolean linked,\n Dimensions size,\n String layout)","params":[{"name":"context","type":"WindowContext","doc":"which session and index this link occupies"},{"name":"name","type":"String","doc":"the window name"},{"name":"active","type":"boolean","doc":"whether it was the active window of its session"},{"name":"panes","type":"int","doc":"how many panes it contained"},{"name":"linked","type":"boolean","doc":"whether the window is linked into more than one session"},{"name":"size","type":"Dimensions","doc":"how large the window was, in terminal cells"},{"name":"layout","type":"String","doc":"tmux's own serialized layout, which can be handed back to select-layout"}]}],"typeScopeBoundary":false,"doc":{"summary":"A window as one capture saw it, at one of its positions."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowState.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowState","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowState.WindowState","product":"core","slug":"io-github-libtmux-snapshot-windowstate-windowstate"},{"id":"io.github.libtmux.snapshot.WindowState.WindowState.context","name":"context","kind":"method","parent":"io.github.libtmux.snapshot.WindowState.WindowState","modifiers":[],"signatures":[{"params":[],"returns":"WindowContext"}],"doc":{"summary":"which session and index this link occupies"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowState.context","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowState.WindowState.context","product":"core","slug":"io-github-libtmux-snapshot-windowstate-windowstate-context"},{"id":"io.github.libtmux.snapshot.WindowState.WindowState.name","name":"name","kind":"method","parent":"io.github.libtmux.snapshot.WindowState.WindowState","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the window name"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowState.name","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowState.WindowState.name","product":"core","slug":"io-github-libtmux-snapshot-windowstate-windowstate-name"},{"id":"io.github.libtmux.snapshot.WindowState.WindowState.active","name":"active","kind":"method","parent":"io.github.libtmux.snapshot.WindowState.WindowState","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether it was the active window of its session"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowState.active","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowState.WindowState.active","product":"core","slug":"io-github-libtmux-snapshot-windowstate-windowstate-active"},{"id":"io.github.libtmux.snapshot.WindowState.WindowState.panes","name":"panes","kind":"method","parent":"io.github.libtmux.snapshot.WindowState.WindowState","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"how many panes it contained"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowState.panes","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowState.WindowState.panes","product":"core","slug":"io-github-libtmux-snapshot-windowstate-windowstate-panes"},{"id":"io.github.libtmux.snapshot.WindowState.WindowState.linked","name":"linked","kind":"method","parent":"io.github.libtmux.snapshot.WindowState.WindowState","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether the window is linked into more than one session"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowState.linked","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowState.WindowState.linked","product":"core","slug":"io-github-libtmux-snapshot-windowstate-windowstate-linked"},{"id":"io.github.libtmux.snapshot.WindowState.WindowState.size","name":"size","kind":"method","parent":"io.github.libtmux.snapshot.WindowState.WindowState","modifiers":[],"signatures":[{"params":[],"returns":"Dimensions"}],"doc":{"summary":"how large the window was, in terminal cells"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowState.size","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowState.WindowState.size","product":"core","slug":"io-github-libtmux-snapshot-windowstate-windowstate-size"},{"id":"io.github.libtmux.snapshot.WindowState.WindowState.layout","name":"layout","kind":"method","parent":"io.github.libtmux.snapshot.WindowState.WindowState","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"tmux's own serialized layout, which can be handed back to select-layout"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/snapshot/WindowState.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.snapshot.WindowState.layout","namespace":"io.github.libtmux.snapshot","publicId":"io.github.libtmux.snapshot.WindowState.WindowState.layout","product":"core","slug":"io-github-libtmux-snapshot-windowstate-windowstate-layout"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture","name":"SnapshotCapture","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Reads a whole tmux server into one snapshot.","body":"One server-wide listing per kind of object, so ordering and membership stay tmux's decision\nrather than being re-derived from another listing's rows.\n\nTwo commands: who the server is, then the listings as one group fenced against both halves of\nthat answer, its pid and its version. tmux runs a group in the server, so rows cannot come from\ntwo of them, and a server that is not the one probed is refused before a listing runs rather than\ndetected afterwards. Retrying is {@link Server#snapshot()}'s decision, not this one's."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.SnapshotCapture","name":"SnapshotCapture","kind":"method","modifiers":[],"parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture","signatures":[{"raw":"SnapshotCapture(Server server)","params":[{"name":"server","type":"Server"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":94,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.SnapshotCapture","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.SnapshotCapture","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-snapshotcapture"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.attempt","name":"attempt","kind":"method","modifiers":[],"parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture","signatures":[{"raw":"Optional attempt()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"One attempt, empty when the server was replaced under it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":99,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.attempt","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.attempt","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-attempt"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.process","name":"process","kind":"method","modifiers":[],"parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture","signatures":[{"raw":"Optional process()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"Reads process identity and version together so neither can come from a different server."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":123,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.process","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.process","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-process"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.processForCreation","name":"processForCreation","kind":"method","modifiers":[],"parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture","signatures":[{"raw":"Optional processForCreation()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"As {@link #process}, except a live daemon this client cannot actually talk to is never folded into \"no daemon\" - used only by {@link SessionCreation#versionForCreation}, the one caller for which that distinction matters.","body":"tmux reports both the same way from a client's side: \"no server running\"/\"(No such file or\ndirectory)\" for a socket nothing is listening on, and \"server exited unexpectedly\" for a\ndaemon that refused this client's handshake - confirmed against the matrix, a 3.2a client\nagainst a 3.7c daemon on the same socket fails the second way, rc 1. {@link #process} still\nfolds both into \"no daemon\" for every other caller, which asks \"is there a server I can read\nfrom\" and for which a daemon this client cannot use is no more usable than none at all."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":139,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.processForCreation","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.processForCreation","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-processforcreation"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.oneSession","name":"oneSession","kind":"method","modifiers":[],"parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture","signatures":[{"raw":"Optional oneSession(String target, String field)","params":[{"name":"target","type":"String","doc":"the session name or id passed to {@code -t}"},{"name":"field","type":"String","doc":"{@code session_name} or {@code session_id}"}],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"One session, its windows, and its panes. Empty when that session is absent. Other sessions are not read."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":224,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.oneSession","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.oneSession","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-onesession"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.sessionsNamed","name":"sessionsNamed","kind":"method","modifiers":[],"parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture","signatures":[{"raw":"Optional sessionsNamed(String name)","params":[{"name":"name","type":"String"}],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The sessions stored under any name tmux may keep for this one, read in one fenced call, and an empty capture when there are none. Empty when a candidate cannot sit inside a format, and the caller reads the whole server instead."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":240,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.sessionsNamed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.sessionsNamed","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-sessionsnamed"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.sessionsWhere","name":"sessionsWhere","kind":"method","modifiers":[],"parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture","signatures":[{"raw":"ServerSnapshot sessionsWhere(String format, String... command)","params":[{"name":"format","type":"String"},{"name":"command","type":"String","variadic":"positional","doc":"{@code list-sessions}, {@code list-windows -a}, or {@code list-panes -a}"}],"returns":"ServerSnapshot","typeScopeBoundary":false}],"doc":{"summary":"The sessions holding a row that {@code format} selects in this listing, read in full in one fenced call, and a capture holding nothing when none does.","body":"Nothing is a real answer: every operator {@link io.github.libtmux.query.TmuxFilters} writes\nexists from the oldest supported tmux, so a format it lowers is never one tmux cannot evaluate.\nA window or pane format is lifted to its session by looping that session's windows and panes,\nso the one call that reads the sessions also decides which ones to read."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":266,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.sessionsWhere","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.sessionsWhere","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-sessionswhere"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.sessionsHolding","name":"sessionsHolding","kind":"method","modifiers":[],"parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture","signatures":[{"raw":"Optional sessionsHolding(PaneId id)","params":[{"name":"id","type":"PaneId"}],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The sessions holding this pane, with their windows and panes, in one fenced call. Empty when no session holds it.","body":"The filter loops each listed row's own session, so every listing keeps whole sessions, and a\nwindow linked into two sessions brings both. tmux evaluates this loop inside {@code -f} the same\nway on every release from 3.2a; see {@code docs/decisions/0005-pushdown-lowering-is-exact-or-refused.md}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":339,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.sessionsHolding","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.sessionsHolding","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-sessionsholding"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess","name":"ServerProcess","kind":"class","modifiers":[],"parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture","signatures":[{"raw":"record ServerProcess(long pid, TmuxVersion version, long startTime)","params":[{"name":"pid","type":"long"},{"name":"version","type":"TmuxVersion"},{"name":"startTime","type":"long"}]}],"typeScopeBoundary":true,"doc":{"summary":"The server a capture reads, named by its process and when that process started."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","line":455,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.ServerProcess","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-serverprocess"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess.pid","name":"pid","kind":"method","parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess","modifiers":[],"signatures":[{"params":[],"returns":"long"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.ServerProcess.pid","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess.pid","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-serverprocess-pid"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess.version","name":"version","kind":"method","parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess","modifiers":[],"signatures":[{"params":[],"returns":"TmuxVersion"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.ServerProcess.version","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess.version","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-serverprocess-version"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess.startTime","name":"startTime","kind":"method","parent":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess","modifiers":[],"signatures":[{"params":[],"returns":"long"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/SnapshotCapture.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SnapshotCapture.ServerProcess.startTime","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SnapshotCapture.SnapshotCapture.ServerProcess.startTime","product":"core","slug":"io-github-libtmux-snapshotcapture-snapshotcapture-serverprocess-starttime"},{"id":"io.github.libtmux.SplitDirection.SplitDirection","name":"SplitDirection","kind":"enum","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Where a new pane goes relative to the one being split.","body":"Separate from {@link Direction}, which moves and grows existing panes with {@code -U -D -L -R}.\nSplitting speaks a different dialect: an axis, and whether the new pane comes first."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitDirection.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitDirection","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitDirection.SplitDirection","product":"core","slug":"io-github-libtmux-splitdirection-splitdirection"},{"id":"io.github.libtmux.SplitDirection.SplitDirection.BELOW","name":"BELOW","kind":"constant","modifiers":[],"parent":"io.github.libtmux.SplitDirection.SplitDirection","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Below the target, which is what tmux does when asked for nothing."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitDirection.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitDirection.BELOW","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitDirection.SplitDirection.BELOW","product":"core","slug":"io-github-libtmux-splitdirection-splitdirection-below"},{"id":"io.github.libtmux.SplitDirection.SplitDirection.ABOVE","name":"ABOVE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.SplitDirection.SplitDirection","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitDirection.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitDirection.ABOVE","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitDirection.SplitDirection.ABOVE","product":"core","slug":"io-github-libtmux-splitdirection-splitdirection-above"},{"id":"io.github.libtmux.SplitDirection.SplitDirection.RIGHT","name":"RIGHT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.SplitDirection.SplitDirection","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitDirection.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitDirection.RIGHT","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitDirection.SplitDirection.RIGHT","product":"core","slug":"io-github-libtmux-splitdirection-splitdirection-right"},{"id":"io.github.libtmux.SplitDirection.SplitDirection.LEFT","name":"LEFT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.SplitDirection.SplitDirection","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitDirection.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitDirection.LEFT","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitDirection.SplitDirection.LEFT","product":"core","slug":"io-github-libtmux-splitdirection-splitdirection-left"},{"id":"io.github.libtmux.SplitDirection.SplitDirection.SplitDirection","name":"SplitDirection","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitDirection.SplitDirection","signatures":[{"raw":"SplitDirection(String axis, boolean first)","params":[{"name":"axis","type":"String"},{"name":"first","type":"boolean"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitDirection.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitDirection.SplitDirection","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitDirection.SplitDirection.SplitDirection","product":"core","slug":"io-github-libtmux-splitdirection-splitdirection-splitdirection"},{"id":"io.github.libtmux.SplitDirection.SplitDirection.flags","name":"flags","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitDirection.SplitDirection","signatures":[{"raw":"List flags()","params":[],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"The tmux flags that place a pane this way."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitDirection.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitDirection.flags","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitDirection.SplitDirection.flags","product":"core","slug":"io-github-libtmux-splitdirection-splitdirection-flags"},{"id":"io.github.libtmux.SplitSpec.SplitSpec","name":"SplitSpec","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"How a pane should be split.","body":"A description rather than an action: it can be built once, named, and applied to as many panes\nas it suits. Nothing here contacts tmux, so a spec can be assembled on a machine that has none,\nand the version rules it depends on are checked when it is applied rather than when it is written\n— the same spec is legal against one server and not another.\n\nA builder-built class rather than a record for the reason {@link ServerConfig} gives: a\nrecord's canonical constructor is public API, and tmux keeps adding flags to {@code split-window}\n— six of them in 3.7 alone.","examples":[{"lang":"java","code":"Pane side = pane.split(s -> s.toRight().percent(30));\n\nSplitSpec sidebar = SplitSpec.builder().toRight().percent(25).build();\nleft.split(sidebar);\nright.split(sidebar);"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec","product":"core","slug":"io-github-libtmux-splitspec-splitspec"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.builder","name":"builder","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"raw":"public static Builder builder()","params":[],"returns":"Builder","typeScopeBoundary":true}],"doc":{"summary":"A builder holding tmux's own defaults: below the target, half its size, running a shell."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.builder","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-zmnf"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.direction","name":"direction","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"raw":"public SplitDirection direction()","params":[],"returns":"SplitDirection","typeScopeBoundary":false}],"doc":{"summary":"Where the new pane goes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":83,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.direction","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.direction","product":"core","slug":"io-github-libtmux-splitspec-splitspec-direction"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.size","name":"size","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"raw":"public Optional size()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"How big the new pane should be, or empty to let tmux halve the target."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":88,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.size","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.size","product":"core","slug":"io-github-libtmux-splitspec-splitspec-size"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.start","name":"start","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"raw":"public PaneStart start()","params":[],"returns":"PaneStart","typeScopeBoundary":false}],"doc":{"summary":"What runs in the new pane."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":93,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.start","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.start","product":"core","slug":"io-github-libtmux-splitspec-splitspec-start"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.directory","name":"directory","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"raw":"public Optional directory()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"Where the new pane starts, or empty to inherit."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":98,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.directory","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.directory","product":"core","slug":"io-github-libtmux-splitspec-splitspec-directory"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.environment","name":"environment","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"raw":"@ReadOnly\n public Map environment()","params":[],"returns":"Map","typeScopeBoundary":false}],"doc":{"summary":"Variables set for the new pane, in the order they were given."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":103,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.environment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.environment","product":"core","slug":"io-github-libtmux-splitspec-splitspec-environment"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.detached","name":"detached","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"raw":"public boolean detached()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether the new pane is left unfocused.","body":"False by default, which is what {@code split-window} itself does. A session created through\n{@link SessionSpec} is the opposite, because tmux cannot make one without attaching unless it\nis told to detach."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":115,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.detached","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.detached","product":"core","slug":"io-github-libtmux-splitspec-splitspec-detached"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.fullWindow","name":"fullWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"raw":"public boolean fullWindow()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether the split spans the whole window rather than just the target pane."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":120,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.fullWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.fullWindow","product":"core","slug":"io-github-libtmux-splitspec-splitspec-fullwindow"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.zoomed","name":"zoomed","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"raw":"public boolean zoomed()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether the new pane is zoomed on arrival."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":125,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.zoomed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.zoomed","product":"core","slug":"io-github-libtmux-splitspec-splitspec-zoomed"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.keepOnExit","name":"keepOnExit","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"raw":"public boolean keepOnExit()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether the pane stays after its command exits. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":130,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.keepOnExit","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.keepOnExit","product":"core","slug":"io-github-libtmux-splitspec-splitspec-keeponexit"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.exitMessage","name":"exitMessage","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"raw":"public Optional exitMessage()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"What a kept pane shows once its command has exited. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":135,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.exitMessage","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.exitMessage","product":"core","slug":"io-github-libtmux-splitspec-splitspec-exitmessage"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.style","name":"style","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"raw":"public Optional style()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The new pane's {@code window-style}. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":140,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.style","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.style","product":"core","slug":"io-github-libtmux-splitspec-splitspec-style"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.activeBorderStyle","name":"activeBorderStyle","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"raw":"public Optional activeBorderStyle()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The new pane's {@code pane-active-border-style}. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":145,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.activeBorderStyle","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.activeBorderStyle","product":"core","slug":"io-github-libtmux-splitspec-splitspec-activeborderstyle"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.inactiveBorderStyle","name":"inactiveBorderStyle","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"raw":"public Optional inactiveBorderStyle()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The new pane's {@code pane-border-style}. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":150,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.inactiveBorderStyle","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.inactiveBorderStyle","product":"core","slug":"io-github-libtmux-splitspec-splitspec-inactiveborderstyle"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.argv","name":"argv","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"raw":"List argv(String target, String format, TmuxVersion running)","params":[{"name":"target","type":"String","doc":"what to split, as a tmux target"},{"name":"format","type":"String","doc":"the row format the caller will read the result back with"},{"name":"running","type":"TmuxVersion","doc":"the version of the server about to run this"}],"returns":"List","typeScopeBoundary":false,"raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something {@code running} does not have"}]}],"doc":{"summary":"The command that performs this split, reporting the new pane through {@code format}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":162,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.argv","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.argv","product":"core","slug":"io-github-libtmux-splitspec-splitspec-argv"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":272,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.toString","product":"core","slug":"io-github-libtmux-splitspec-splitspec-tostring"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder","name":"Builder","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.SplitSpec.SplitSpec","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Collects the choices, each named for what it does rather than for the field it sets."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":279,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-kfol"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.below","name":"below","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public Builder below()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Puts the new pane below the target, which is what tmux does by default."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":298,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.below","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.below","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-below"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.above","name":"above","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public Builder above()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Puts the new pane above the target."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":304,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.above","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.above","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-above"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.toRight","name":"toRight","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public Builder toRight()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Puts the new pane to the right of the target."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":310,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.toRight","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.toRight","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-toright"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.toLeft","name":"toLeft","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public Builder toLeft()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Puts the new pane to the left of the target."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":316,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.toLeft","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.toLeft","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-toleft"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.cells","name":"cells","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public Builder cells(int count)","params":[{"name":"count","type":"int"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Gives the new pane this many terminal cells."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":322,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.cells","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.cells","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-cells"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.percent","name":"percent","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public Builder percent(int share)","params":[{"name":"share","type":"int"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Gives the new pane this share of what is being split."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":328,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.percent","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.percent","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-percent"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.running","name":"running","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public Builder running(String... argv)","params":[{"name":"argv","type":"String","variadic":"positional"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Runs a command, which closes the pane when it exits unless {@link #keepOnExit} is set.","body":"A command that exits fast enough races {@link Pane#split}'s own read-back: tmux can\ndestroy the pane before the second listing that confirms it runs, and the split then\nthrows {@code TargetGoneException} even though tmux made the pane and ran the\ncommand in it. {@link #keepOnExit} removes the race by keeping the pane there to be read.\n\ntmux also reports the pane before its process has become this command, so a read at once\ncan still see the process about to exec it: wait for the command with {@link Pane#await(java.util.function.Predicate, java.time.Duration)}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":344,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.running","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.running","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-running"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.empty","name":"empty","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public Builder empty()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Creates a pane with no process in it. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":350,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.empty","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.empty","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-empty"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.start","name":"start","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public Builder start(PaneStart start)","params":[{"name":"start","type":"PaneStart"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Sets what runs, for a caller holding a {@link PaneStart} already."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":356,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.start","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.start","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-start"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.in","name":"in","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public Builder in(Path directory)","params":[{"name":"directory","type":"Path"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Starts the new pane in this directory, resolved against this process's when relative."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":362,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.in","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.in","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-in"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.env","name":"env","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public Builder env(String name, String value)","params":[{"name":"name","type":"String"},{"name":"value","type":"String"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Sets one variable in the new pane's environment."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":368,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.env","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.env","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-env"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.environment","name":"environment","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public Builder environment(Map variables)","params":[{"name":"variables","type":"Map"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Adds several variables to the new pane's environment, keeping any already set."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":374,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.environment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.environment","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-environment"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.detached","name":"detached","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public Builder detached()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Leaves the target pane focused, where tmux would move to the new one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":380,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.detached","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.detached","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-detached"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.fullWindow","name":"fullWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public Builder fullWindow()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Splits the whole window rather than just the target pane."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":386,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.fullWindow","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.fullWindow","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-fullwindow"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.zoomed","name":"zoomed","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public Builder zoomed()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Zooms the new pane on arrival."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":392,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.zoomed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.zoomed","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-zoomed"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.keepOnExit","name":"keepOnExit","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public Builder keepOnExit()","params":[],"returns":"Builder","typeScopeBoundary":false},{"raw":"public Builder keepOnExit(String message)","params":[{"name":"message","type":"String"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Keeps the pane after its command exits. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":398,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.keepOnExit","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.keepOnExit","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-keeponexit"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.style","name":"style","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public Builder style(String style)","params":[{"name":"style","type":"String"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Sets the new pane's {@code window-style}. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":411,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.style","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.style","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-style"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.activeBorderStyle","name":"activeBorderStyle","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public Builder activeBorderStyle(String style)","params":[{"name":"style","type":"String"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Sets the new pane's {@code pane-active-border-style}. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":417,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.activeBorderStyle","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.activeBorderStyle","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-activeborderstyle"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.inactiveBorderStyle","name":"inactiveBorderStyle","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public Builder inactiveBorderStyle(String style)","params":[{"name":"style","type":"String"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Sets the new pane's {@code pane-border-style}. Requires tmux 3.7."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":423,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.inactiveBorderStyle","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.inactiveBorderStyle","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-inactiveborderstyle"},{"id":"io.github.libtmux.SplitSpec.SplitSpec.Builder.build","name":"build","kind":"method","modifiers":[],"parent":"io.github.libtmux.SplitSpec.SplitSpec.Builder","signatures":[{"raw":"public SplitSpec build()","params":[],"returns":"SplitSpec","typeScopeBoundary":false}],"doc":{"summary":"The finished spec."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/SplitSpec.java","line":429,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.SplitSpec.Builder.build","namespace":"io.github.libtmux","publicId":"io.github.libtmux.SplitSpec.SplitSpec.Builder.build","product":"core","slug":"io-github-libtmux-splitspec-splitspec-builder-build"},{"id":"io.github.libtmux.TargetIds.TargetIds","name":"TargetIds","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Shared validation for the sigil-prefixed ids tmux hands out."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TargetIds.java","line":6,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TargetIds","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TargetIds.TargetIds","product":"core","slug":"io-github-libtmux-targetids-targetids"},{"id":"io.github.libtmux.TargetIds.TargetIds.require","name":"require","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.TargetIds.TargetIds","signatures":[{"raw":"static void require(String value, char sigil, String kind)","params":[{"name":"value","type":"String"},{"name":"sigil","type":"char"},{"name":"kind","type":"String"}],"returns":"void","typeScopeBoundary":true}],"doc":{"summary":"Rejects anything tmux would not read as an id of this kind.","body":"A bare {@code 0} is the case worth catching: tmux would accept it as a target and resolve\nit as a name or an index, silently addressing something else."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TargetIds.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TargetIds.require","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TargetIds.TargetIds.require","product":"core","slug":"io-github-libtmux-targetids-targetids-require"},{"id":"io.github.libtmux.TextOutcome.TextOutcome","name":"TextOutcome","kind":"enum","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Why a wait for text on a pane ended.","body":"Separate from {@link WakeReason}, which answers for a tmux channel, because this wait reads a\nscreen rather than blocking on a signal and so can end a way a channel never does: with the text\nalready there. A pane that has said {@code ready} since an hour ago must not answer a wait for\n{@code ready} the way output that just arrived does, and it must not be reported as a timeout\neither — a caller told only \"not found\" would go looking for text that is in plain sight.\n\n{@link Pane#await(java.util.function.Predicate, Duration)} keeps {@link WakeReason}: a caller\nwrote that condition and can test it before waiting, so the library is not the only thing that can\nsee it was already true."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TextOutcome.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TextOutcome","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TextOutcome.TextOutcome","product":"core","slug":"io-github-libtmux-textoutcome-textoutcome"},{"id":"io.github.libtmux.TextOutcome.TextOutcome.APPEARED","name":"APPEARED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.TextOutcome.TextOutcome","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"The text appeared while the wait was running."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TextOutcome.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TextOutcome.APPEARED","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TextOutcome.TextOutcome.APPEARED","product":"core","slug":"io-github-libtmux-textoutcome-textoutcome-appeared"},{"id":"io.github.libtmux.TextOutcome.TextOutcome.PRESENT_AT_ENTRY","name":"PRESENT_AT_ENTRY","kind":"constant","modifiers":[],"parent":"io.github.libtmux.TextOutcome.TextOutcome","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"The first look already showed the text, so this wait did not see it arrive.","body":"Exactly that, and no more. It may be output from a command the caller started a moment ago\nand that finished before the first read, or it may have been on the pane for an hour — a\nscreen cannot tell those apart, and reporting them as the same thing would be the claim this\noutcome exists to avoid. A caller that needs the difference should not be reading a screen:\nappend {@code ; tmux wait-for -S name} to its own command and block on {@link Server#channel},\nwhich is exact.\n\nAn echo of what this library typed is never what is found here; that is the caller's own\nquestion coming back, and it is discounted."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TextOutcome.java","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TextOutcome.PRESENT_AT_ENTRY","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TextOutcome.TextOutcome.PRESENT_AT_ENTRY","product":"core","slug":"io-github-libtmux-textoutcome-textoutcome-present_at_entry"},{"id":"io.github.libtmux.TextOutcome.TextOutcome.TIMED_OUT","name":"TIMED_OUT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.TextOutcome.TextOutcome","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"The deadline passed with the text absent."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TextOutcome.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TextOutcome.TIMED_OUT","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TextOutcome.TextOutcome.TIMED_OUT","product":"core","slug":"io-github-libtmux-textoutcome-textoutcome-timed_out"},{"id":"io.github.libtmux.TextOutcome.TextOutcome.SERVER_GONE","name":"SERVER_GONE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.TextOutcome.TextOutcome","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"The server went away underneath the wait, so nothing it was guarding can be relied on."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TextOutcome.java","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TextOutcome.SERVER_GONE","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TextOutcome.TextOutcome.SERVER_GONE","product":"core","slug":"io-github-libtmux-textoutcome-textoutcome-server_gone"},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","name":"TmuxEnvironment","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"What tmux tells a program running inside one of its panes.","body":"tmux exports {@code TMUX} as {@code ,,} and {@code TMUX_PANE} as\nthe pane's id. That is how a process discovers the server it is already inside, without being told\nwhere to look.\n\nReading is separated from the environment itself, so the parsing is testable without a process\never having to be started inside tmux: {@link #of} takes the variables, {@link #current} is the\none-line wrapper that fetches them.\n\nA class rather than a record for the reason {@link ServerConfig} gives — and because the pane\nis genuinely absent sometimes, which an {@link Optional} accessor says better than a nullable\nrecord component.","examples":[{"lang":"java","code":"TmuxEnvironment here = TmuxEnvironment.current().orElseThrow();\n\ntry (Server server = Server.open(here.config())) {\n Session mine = server.sessions().stream()\n .filter(session -> session.id().equals(here.session()))\n .findFirst()\n .orElseThrow();\n}"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxEnvironment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","product":"core","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment"},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.current","name":"current","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","signatures":[{"raw":"public static Optional current()","params":[],"returns":"Optional","typeScopeBoundary":true,"returnsDoc":"what tmux said, or empty when this is not running inside tmux"}],"doc":{"summary":"Reads this process's own environment."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxEnvironment.current","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.current","product":"core","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment-current"},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.of","name":"of","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","signatures":[{"raw":"public static Optional of(Map environment)","params":[{"name":"environment","type":"Map","doc":"the variables to read, typically {@code System.getenv()}"}],"returns":"Optional","typeScopeBoundary":true,"returnsDoc":"what tmux said, or empty when {@code TMUX} is absent or unreadable"}],"doc":{"summary":"Reads a set of environment variables."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxEnvironment.of","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.of","product":"core","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment-of"},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.socket","name":"socket","kind":"method","modifiers":[],"parent":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","signatures":[{"raw":"public Path socket()","params":[],"returns":"Path","typeScopeBoundary":false}],"doc":{"summary":"The socket the server is listening on."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java","line":97,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxEnvironment.socket","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.socket","product":"core","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment-socket"},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.serverPid","name":"serverPid","kind":"method","modifiers":[],"parent":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","signatures":[{"raw":"public long serverPid()","params":[],"returns":"long","typeScopeBoundary":false}],"doc":{"summary":"The process id of the tmux server, which is not the pane's process."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java","line":102,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxEnvironment.serverPid","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.serverPid","product":"core","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment-serverpid"},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.session","name":"session","kind":"method","modifiers":[],"parent":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","signatures":[{"raw":"public SessionId session()","params":[],"returns":"SessionId","typeScopeBoundary":false}],"doc":{"summary":"The session this process is running in."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java","line":107,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxEnvironment.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.session","product":"core","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment-session"},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.pane","name":"pane","kind":"method","modifiers":[],"parent":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","signatures":[{"raw":"public Optional pane()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The pane this process is running in, absent when {@code TMUX_PANE} was not set."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java","line":112,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxEnvironment.pane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.pane","product":"core","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment-pane"},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.config","name":"config","kind":"method","modifiers":[],"parent":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","signatures":[{"raw":"public ServerConfig config()","params":[],"returns":"ServerConfig","typeScopeBoundary":false}],"doc":{"summary":"A config addressing this server, ready for {@link Server#open}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java","line":117,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxEnvironment.config","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.config","product":"core","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment-config"},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxEnvironment.java","line":123,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxEnvironment.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment.toString","product":"core","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment-tostring"},{"id":"io.github.libtmux.TmuxFormats.TmuxFormats","name":"TmuxFormats","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Values handed to a tmux argument position that expands formats.","body":"tmux expands {@code #{...}} and {@code #(...)} in many argument positions, and {@code #(...)}\nruns a shell command. For the arguments this library composes itself — a window name, a pane\ntitle, a working directory — it applies {@link #literal} at the construction boundary, so a\ncaller's {@code #} stays a {@code #}.\n\nIt cannot do that for an argument the caller composes: {@link Pane#pipeTo},\n{@link Window#displayPopup}, {@link Shell#run}, {@link Shell#capturing} and {@link Shell#choose}\nall take a whole shell command, where format expansion is a documented\ntmux feature a caller may want — {@code #{pane_id}} in a filename, for instance. A caller\ninterpolating an untrusted value into one of those needs {@link #literal} on that value, which is\nwhy this is public.\n\nShell quoting does not substitute for it. tmux expands the format *before* the shell\nsees the string, so a {@code #(...)} inside single quotes still runs. Measured on tmux 3.7d, with\nthe interpolated value quoted as a careful caller would quote it: {@code run-shell} executed it,\nand {@code pipe-pane -O} executed it as soon as the pane produced output."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxFormats.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxFormats","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxFormats.TmuxFormats","product":"core","slug":"io-github-libtmux-tmuxformats-tmuxformats"},{"id":"io.github.libtmux.TmuxFormats.TmuxFormats.literal","name":"literal","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.TmuxFormats.TmuxFormats","signatures":[{"raw":"public static String literal(String value)","params":[{"name":"value","type":"String","doc":"a value to be read as text rather than expanded"}],"returns":"String","typeScopeBoundary":true,"returnsDoc":"the value with every {@code #} doubled"}],"doc":{"summary":"Makes one caller value literal at one construction boundary.","body":"Doubling {@code #} is tmux's own escape for it, so the value arrives as itself."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxFormats.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxFormats.literal","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxFormats.TmuxFormats.literal","product":"core","slug":"io-github-libtmux-tmuxformats-tmuxformats-literal"},{"id":"io.github.libtmux.TmuxFormats.TmuxFormats.printed","name":"printed","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.TmuxFormats.TmuxFormats","signatures":[{"raw":"static String printed(String line, TmuxVersion version)","params":[{"name":"line","type":"String"},{"name":"version","type":"TmuxVersion"}],"returns":"String","typeScopeBoundary":true},{"raw":"static java.util.List printed(java.util.List lines, TmuxVersion version)","params":[{"name":"lines","type":"java.util.List"},{"name":"version","type":"TmuxVersion"}],"returns":"java.util.List","typeScopeBoundary":true}],"doc":{"summary":"Text as tmux held it, from a line it printed.","body":"tmux 3.4 alone puts a backslash before every {@code $} that an ASCII letter, {@code _}, or\n`{` follows, in everything it prints: formats, listings, and {@code show-options\n-v}. 3.5 stopped ({@code 692ce59b}). Each escape is exactly one backslash in that position, so\nremoving it restores the text on 3.4 and changes nothing elsewhere.\n\n3.4 through 3.5a also print a control character as a C escape or three octal digits,\n{@code \\033} for ESC, and leave a backslash as it is. That is not undone: {@code \\033} could as well be those\nfour characters, which a {@code terminal-overrides} entry often holds, so the text is left as\ntmux printed it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxFormats.java","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxFormats.printed","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxFormats.TmuxFormats.printed","product":"core","slug":"io-github-libtmux-tmuxformats-tmuxformats-printed"},{"id":"io.github.libtmux.TmuxFormats.TmuxFormats.storedNames","name":"storedNames","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.TmuxFormats.TmuxFormats","signatures":[{"raw":"static java.util.List storedNames(String name, TmuxVersion version)","params":[{"name":"name","type":"String"},{"name":"version","type":"TmuxVersion"}],"returns":"java.util.List","typeScopeBoundary":true}],"doc":{"summary":"The names to look for when a caller names a session: the one this release stores for it, then the name exactly as given, which is what {@link Session#name} already reports.","body":"tmux doubles each backslash; 3.2a through 3.4 put a backslash before a {@code $} that a\nletter, {@code _}, or `{` follows; 3.2a through 3.6 store {@code .} and {@code :}\nas {@code _} and a control character as a C escape or three octal digits. 3.7 and later refuse\ncontrol characters. The stored form is an escaping, so it names at most one session; only a\nname that is itself some other name's stored form is ambiguous, and the stored form wins."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxFormats.java","line":83,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxFormats.storedNames","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxFormats.TmuxFormats.storedNames","product":"core","slug":"io-github-libtmux-tmuxformats-tmuxformats-storednames"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion","name":"TmuxVersion","kind":"class","modifiers":[],"signatures":[{"raw":"public record TmuxVersion(int major, int minor, String patch, boolean development, String preRelease)\n implements Comparable","params":[{"name":"major","type":"int","doc":"the major number"},{"name":"minor","type":"int","doc":"the minor number"},{"name":"patch","type":"String","doc":"the patch letter, or empty for an unlettered release"},{"name":"development","type":"boolean","doc":"whether this is a {@code next-M.m} build rather than the release {@code M.m} itself"},{"name":"preRelease","type":"String","doc":"the release candidate this is, such as {@code rc} or {@code rc2}, or empty for a release"}]}],"typeScopeBoundary":false,"doc":{"summary":"A released tmux version, ordered the way tmux releases are.","body":"tmux numbers a patch release with a letter rather than a third number: 3.7a follows 3.7, and\n3.2a follows 3.2. Comparing the text alone gets that wrong in both directions, and a feature gate\nthat gets it wrong reads a format the running tmux does not have.\n\nBetween releases, tmux reports itself as {@code next-M.m}: a development build tracking toward\nthe release named, not that release itself. It has everything the previous release shipped and\nnothing later's patches guarantee, so it sorts strictly between the two — above every patch of the\nrelease before it, below the release it names and every patch of that.\n\nA release candidate, {@code 3.8-rc}, compares equal to the release it names. tmux freezes\nfeatures at the candidate, so it has everything the release will and differs only in fixes —\nmeasured, not assumed: a 3.8 candidate writes JSON layouts and empties a dead pane's pid exactly\nas 3.8 does, and a feature gated on 3.8 works on it. It is not {@code equals} to the release, and\nit is written back exactly as tmux wrote it, which matters beyond display: every capture is\nfenced on the version tmux reports, and a candidate printed as {@code 3.8} failed that fence on\nevery read."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.TmuxVersion","name":"TmuxVersion","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.TmuxVersion.TmuxVersion","signatures":[{"raw":"public TmuxVersion(int major, int minor, String patch, boolean development)","params":[{"name":"major","type":"int"},{"name":"minor","type":"int"},{"name":"patch","type":"String"},{"name":"development","type":"boolean"}],"typeScopeBoundary":false},{"raw":"public TmuxVersion(int major, int minor, String patch)","params":[{"name":"major","type":"int"},{"name":"minor","type":"int"},{"name":"patch","type":"String"}],"typeScopeBoundary":false}],"doc":{"summary":"A release or a development build, without a release candidate."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.TmuxVersion","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.TmuxVersion","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-tmuxversion"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.parse","name":"parse","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.TmuxVersion.TmuxVersion","signatures":[{"raw":"public static TmuxVersion parse(String reported)","params":[{"name":"reported","type":"String"}],"returns":"TmuxVersion","typeScopeBoundary":true,"raises":[{"type":"IllegalArgumentException","doc":"if the text does not begin with a release number, optionally preceded by {@code next-}; a build that reports something else is one this cannot make version decisions about"}]}],"doc":{"summary":"Reads what tmux reports for {@code #{version}}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.parse","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.parse","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-parse"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.atLeast","name":"atLeast","kind":"method","modifiers":[],"parent":"io.github.libtmux.TmuxVersion.TmuxVersion","signatures":[{"raw":"public boolean atLeast(TmuxVersion other)","params":[{"name":"other","type":"TmuxVersion"}],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether this version has everything the given one has."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","line":76,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.atLeast","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.atLeast","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-atleast"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.compareTo","name":"compareTo","kind":"method","modifiers":[],"parent":"io.github.libtmux.TmuxVersion.TmuxVersion","signatures":[{"raw":"@Override\n public int compareTo(TmuxVersion other)","params":[{"name":"other","type":"TmuxVersion"}],"returns":"int","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","line":80,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.compareTo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.compareTo","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-compareto"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.TmuxVersion.TmuxVersion","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","line":100,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.toString","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-tostring"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.major","name":"major","kind":"method","parent":"io.github.libtmux.TmuxVersion.TmuxVersion","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"the major number"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.major","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.major","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-major"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.minor","name":"minor","kind":"method","parent":"io.github.libtmux.TmuxVersion.TmuxVersion","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"the minor number"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.minor","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.minor","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-minor"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.patch","name":"patch","kind":"method","parent":"io.github.libtmux.TmuxVersion.TmuxVersion","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the patch letter, or empty for an unlettered release"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.patch","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.patch","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-patch"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.development","name":"development","kind":"method","parent":"io.github.libtmux.TmuxVersion.TmuxVersion","modifiers":[],"signatures":[{"params":[],"returns":"boolean"}],"doc":{"summary":"whether this is a {@code next-M.m} build rather than the release {@code M.m} itself"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.development","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.development","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-development"},{"id":"io.github.libtmux.TmuxVersion.TmuxVersion.preRelease","name":"preRelease","kind":"method","parent":"io.github.libtmux.TmuxVersion.TmuxVersion","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the release candidate this is, such as {@code rc} or {@code rc2}, or empty for a release"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TmuxVersion.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TmuxVersion.preRelease","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TmuxVersion.TmuxVersion.preRelease","product":"core","slug":"io-github-libtmux-tmuxversion-tmuxversion-prerelease"},{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest","name":"CommandRequest","kind":"class","modifiers":[],"signatures":[{"raw":"public record CommandRequest(\n @ReadOnly List endpoint, @ReadOnly List> commands, Duration timeout, String input)","params":[{"name":"endpoint","type":"List","doc":"the tmux executable and its server selection, such as {@code [tmux, -S, path]}. tmux reads these before it parses commands, so they are passed through untouched"},{"name":"commands","type":"List>","doc":"one or more tmux commands, each an argv of literal words. tmux runs them in order and discards the rest after the first failure"},{"name":"timeout","type":"Duration","doc":"how long the caller will wait for the whole invocation"},{"name":"input","type":"String","doc":"what the commands read from tmux's standard input, empty for the commands that read none. A tmux argument is bounded by MAX_IMSGSIZE, so text too large to be one travels here instead."}]}],"typeScopeBoundary":false,"doc":{"summary":"One tmux invocation: how to reach the server, then the commands to run there.","body":"Commands are held literally. tmux ends a command at an argument whose last byte is {@code ;},\nso a value ending in one would otherwise be truncated with no error; a transport encodes for the\nparser it feeds, and {@link #commands()} answers with what the caller meant.\n\nThe timeout rides on the request instead of the transport because the same server serves both\na listing that should answer immediately and an attach that never returns."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandRequest.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandRequest","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandRequest.CommandRequest","product":"core","slug":"io-github-libtmux-transport-commandrequest-commandrequest"},{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest.of","name":"of","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.transport.CommandRequest.CommandRequest","signatures":[{"raw":"public static CommandRequest of(List endpoint, List argv, Duration timeout)","params":[{"name":"endpoint","type":"List"},{"name":"argv","type":"List"},{"name":"timeout","type":"Duration"}],"returns":"CommandRequest","typeScopeBoundary":true},{"raw":"public static CommandRequest of(List endpoint, List argv, Duration timeout, String input)","params":[{"name":"endpoint","type":"List"},{"name":"argv","type":"List"},{"name":"timeout","type":"Duration"},{"name":"input","type":"String"}],"returns":"CommandRequest","typeScopeBoundary":true}],"doc":{"summary":"A request for one command, which is every request but a batch."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandRequest.java","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandRequest.of","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandRequest.CommandRequest.of","product":"core","slug":"io-github-libtmux-transport-commandrequest-commandrequest-of"},{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest.idempotence","name":"idempotence","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.CommandRequest.CommandRequest","signatures":[{"raw":"public Idempotence idempotence()","params":[],"returns":"Idempotence","typeScopeBoundary":false}],"doc":{"summary":"Whether sending this request twice leaves tmux as sending it once does: {@link Idempotence#IDEMPOTENT} only when every command in it reads."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandRequest.java","line":69,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandRequest.idempotence","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandRequest.CommandRequest.idempotence","product":"core","slug":"io-github-libtmux-transport-commandrequest-commandrequest-idempotence"},{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest.commandLine","name":"commandLine","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.CommandRequest.CommandRequest","signatures":[{"raw":"@ReadOnly\n public List commandLine()","params":[],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"The full argv to hand a process builder, encoded for tmux's own argv parser."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandRequest.java","line":74,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandRequest.commandLine","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandRequest.CommandRequest.commandLine","product":"core","slug":"io-github-libtmux-transport-commandrequest-commandrequest-commandline"},{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.CommandRequest.CommandRequest","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"Counts only. Commands carry pane content and socket paths, and this value reaches log lines and failed assertions."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandRequest.java","line":87,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandRequest.toString","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandRequest.CommandRequest.toString","product":"core","slug":"io-github-libtmux-transport-commandrequest-commandrequest-tostring"},{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest.endpoint","name":"endpoint","kind":"method","parent":"io.github.libtmux.transport.CommandRequest.CommandRequest","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the tmux executable and its server selection, such as {@code [tmux, -S, path]}. tmux reads these before it parses commands, so they are passed through untouched"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandRequest.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandRequest.endpoint","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandRequest.CommandRequest.endpoint","product":"core","slug":"io-github-libtmux-transport-commandrequest-commandrequest-endpoint"},{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest.commands","name":"commands","kind":"method","parent":"io.github.libtmux.transport.CommandRequest.CommandRequest","modifiers":[],"signatures":[{"params":[],"returns":"List>"}],"doc":{"summary":"one or more tmux commands, each an argv of literal words. tmux runs them in order and discards the rest after the first failure"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandRequest.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandRequest.commands","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandRequest.CommandRequest.commands","product":"core","slug":"io-github-libtmux-transport-commandrequest-commandrequest-commands"},{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest.timeout","name":"timeout","kind":"method","parent":"io.github.libtmux.transport.CommandRequest.CommandRequest","modifiers":[],"signatures":[{"params":[],"returns":"Duration"}],"doc":{"summary":"how long the caller will wait for the whole invocation"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandRequest.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandRequest.timeout","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandRequest.CommandRequest.timeout","product":"core","slug":"io-github-libtmux-transport-commandrequest-commandrequest-timeout"},{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest.input","name":"input","kind":"method","parent":"io.github.libtmux.transport.CommandRequest.CommandRequest","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"what the commands read from tmux's standard input, empty for the commands that read none. A tmux argument is bounded by MAX_IMSGSIZE, so text too large to be one travels here instead."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandRequest.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandRequest.input","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandRequest.CommandRequest.input","product":"core","slug":"io-github-libtmux-transport-commandrequest-commandrequest-input"},{"id":"io.github.libtmux.transport.CommandResult.CommandResult","name":"CommandResult","kind":"class","modifiers":[],"signatures":[{"raw":"public record CommandResult(\n int exitCode,\n @ReadOnly List stdout,\n @ReadOnly List stderr)","params":[{"name":"exitCode","type":"int","doc":"the process exit status"},{"name":"stdout","type":"List","doc":"stdout split at LF, preserving carriage returns and interior blanks"},{"name":"stderr","type":"List","doc":"stderr split into lines, with blanks dropped"}]}],"typeScopeBoundary":false,"doc":{"summary":"One completed invocation.","body":"A nonzero exit is data, not a failure. tmux reports an ordinary \"no such pane\" the same way it\nreports a real problem, so only a higher-level method knows which one should raise."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandResult.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandResult","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandResult.CommandResult","product":"core","slug":"io-github-libtmux-transport-commandresult-commandresult"},{"id":"io.github.libtmux.transport.CommandResult.CommandResult.succeeded","name":"succeeded","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.CommandResult.CommandResult","signatures":[{"raw":"public boolean succeeded()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether tmux reported success."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandResult.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandResult.succeeded","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandResult.CommandResult.succeeded","product":"core","slug":"io-github-libtmux-transport-commandresult-commandresult-succeeded"},{"id":"io.github.libtmux.transport.CommandResult.CommandResult.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.CommandResult.CommandResult","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"Counts only, because both channels carry captured terminal content."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandResult.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandResult.toString","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandResult.CommandResult.toString","product":"core","slug":"io-github-libtmux-transport-commandresult-commandresult-tostring"},{"id":"io.github.libtmux.transport.CommandResult.CommandResult.exitCode","name":"exitCode","kind":"method","parent":"io.github.libtmux.transport.CommandResult.CommandResult","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"the process exit status"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandResult.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandResult.exitCode","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandResult.CommandResult.exitCode","product":"core","slug":"io-github-libtmux-transport-commandresult-commandresult-exitcode"},{"id":"io.github.libtmux.transport.CommandResult.CommandResult.stdout","name":"stdout","kind":"method","parent":"io.github.libtmux.transport.CommandResult.CommandResult","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"stdout split at LF, preserving carriage returns and interior blanks"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandResult.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandResult.stdout","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandResult.CommandResult.stdout","product":"core","slug":"io-github-libtmux-transport-commandresult-commandresult-stdout"},{"id":"io.github.libtmux.transport.CommandResult.CommandResult.stderr","name":"stderr","kind":"method","parent":"io.github.libtmux.transport.CommandResult.CommandResult","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"stderr split into lines, with blanks dropped"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/CommandResult.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.CommandResult.stderr","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.CommandResult.CommandResult.stderr","product":"core","slug":"io-github-libtmux-transport-commandresult-commandresult-stderr"},{"id":"io.github.libtmux.transport.ControlCarrier.ControlCarrier","name":"ControlCarrier","kind":"interface","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Starts a long-lived tmux process in a transport's realm.","body":"A control client stays attached, so it cannot borrow a command permit. It still has to be\nstarted by the same carrier as the commands, or a custom transport's realm is silently ignored\nand the client attaches to whatever the local machine calls tmux."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ControlCarrier.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ControlCarrier","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ControlCarrier.ControlCarrier","product":"core","slug":"io-github-libtmux-transport-controlcarrier-controlcarrier"},{"id":"io.github.libtmux.transport.ControlCarrier.ControlCarrier.start","name":"start","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.ControlCarrier.ControlCarrier","signatures":[{"raw":"Process start(List command) throws IOException;","params":[{"name":"command","type":"List","doc":"the tmux invocation, arguments already separate"}],"returns":"Process","typeScopeBoundary":false,"returnsDoc":"the running process","raises":[{"type":"IOException","doc":"if the process cannot be started"}]}],"doc":{"summary":"Starts the process. The caller owns it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ControlCarrier.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ControlCarrier.start","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ControlCarrier.ControlCarrier.start","product":"core","slug":"io-github-libtmux-transport-controlcarrier-controlcarrier-start"},{"id":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome","name":"DispatchOutcome","kind":"enum","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"How certain the transport is that tmux applied a request."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/DispatchOutcome.java","line":4,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.DispatchOutcome","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome","product":"core","slug":"io-github-libtmux-transport-dispatchoutcome-dispatchoutcome"},{"id":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome.NOT_DISPATCHED","name":"NOT_DISPATCHED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"The process never started, so tmux cannot have applied anything."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/DispatchOutcome.java","line":6,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.DispatchOutcome.NOT_DISPATCHED","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome.NOT_DISPATCHED","product":"core","slug":"io-github-libtmux-transport-dispatchoutcome-dispatchoutcome-not_dispatched"},{"id":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome.COMPLETE","name":"COMPLETE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"The process ran to completion and both channels were drained."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/DispatchOutcome.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.DispatchOutcome.COMPLETE","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome.COMPLETE","product":"core","slug":"io-github-libtmux-transport-dispatchoutcome-dispatchoutcome-complete"},{"id":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome.UNKNOWN","name":"UNKNOWN","kind":"constant","modifiers":[],"parent":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"tmux may already have applied the command; the result is not knowable."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/DispatchOutcome.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.DispatchOutcome.UNKNOWN","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome.UNKNOWN","product":"core","slug":"io-github-libtmux-transport-dispatchoutcome-dispatchoutcome-unknown"},{"id":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome.canRetryVerbatim","name":"canRetryVerbatim","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome","signatures":[{"raw":"public boolean canRetryVerbatim(Idempotence idempotence)","params":[{"name":"idempotence","type":"Idempotence","doc":"whether every command in the request only reads"}],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether the exact same request may be sent again after this outcome.","body":"A request that never reached tmux may always be resent. One that may have reached it may be\nresent only when it changes nothing. One that completed is not a dispatch question at all:\nwhether to act on tmux's answer is the caller's decision, so this answers {@code false}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/DispatchOutcome.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.DispatchOutcome.canRetryVerbatim","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome.canRetryVerbatim","product":"core","slug":"io-github-libtmux-transport-dispatchoutcome-dispatchoutcome-canretryverbatim"},{"id":"io.github.libtmux.transport.Idempotence.Idempotence","name":"Idempotence","kind":"enum","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Whether running a request twice leaves tmux as running it once does.","body":"Decided from the commands themselves: a request is idempotent only when every command in it\nreads and changes nothing. Anything this library cannot tell is a read counts as a change, so a\nfailure never reports a mutation as safe to resend."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/Idempotence.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.Idempotence","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.Idempotence.Idempotence","product":"core","slug":"io-github-libtmux-transport-idempotence-idempotence"},{"id":"io.github.libtmux.transport.Idempotence.Idempotence.IDEMPOTENT","name":"IDEMPOTENT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.transport.Idempotence.Idempotence","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Every command only reads; sending it again cannot change tmux."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/Idempotence.java","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.Idempotence.IDEMPOTENT","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.Idempotence.Idempotence.IDEMPOTENT","product":"core","slug":"io-github-libtmux-transport-idempotence-idempotence-idempotent"},{"id":"io.github.libtmux.transport.Idempotence.Idempotence.NOT_IDEMPOTENT","name":"NOT_IDEMPOTENT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.transport.Idempotence.Idempotence","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"At least one command may change tmux, so a second send may apply it twice."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/Idempotence.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.Idempotence.NOT_IDEMPOTENT","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.Idempotence.Idempotence.NOT_IDEMPOTENT","product":"core","slug":"io-github-libtmux-transport-idempotence-idempotence-not_idempotent"},{"id":"io.github.libtmux.transport.Idempotence.Idempotence.of","name":"of","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.transport.Idempotence.Idempotence","signatures":[{"raw":"public static Idempotence of(List> commands)","params":[{"name":"commands","type":"List>"}],"returns":"Idempotence","typeScopeBoundary":true}],"doc":{"summary":"The idempotence of a request made of {@code commands}, each an argv."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/Idempotence.java","line":55,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.Idempotence.of","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.Idempotence.Idempotence.of","product":"core","slug":"io-github-libtmux-transport-idempotence-idempotence-of"},{"id":"io.github.libtmux.transport.OperationObserver.OperationObserver","name":"OperationObserver","kind":"interface","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Receives one {@link OperationReport} after each command.","body":"The transport still throws on failure. This does not retry. A report whose {@link\nOperationReport#certainty() certainty} is {@link DispatchOutcome#NOT_DISPATCHED} was never\napplied. {@link DispatchOutcome#UNKNOWN} must not be sent again blindly."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationObserver.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationObserver","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationObserver.OperationObserver","product":"core","slug":"io-github-libtmux-transport-operationobserver-operationobserver"},{"id":"io.github.libtmux.transport.OperationObserver.OperationObserver.accept","name":"accept","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.OperationObserver.OperationObserver","signatures":[{"raw":"void accept(OperationReport report);","params":[{"name":"report","type":"OperationReport"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Called once, after the command ends, on the thread that ran it.","body":"An exception thrown here does not change the command's result, since the command has\nalready run: failing it would invite a retry of something tmux may have done. The exception is\nlogged at {@code WARNING}, with its stack trace, by the logger of the transport or control\nclient that ran the command."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationObserver.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationObserver.accept","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationObserver.OperationObserver.accept","product":"core","slug":"io-github-libtmux-transport-operationobserver-operationobserver-accept"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport","name":"OperationReport","kind":"class","modifiers":[],"signatures":[{"raw":"public record OperationReport(\n long id,\n @ReadOnly List verbs,\n DispatchOutcome certainty,\n OptionalInt exitCode,\n int stdoutLines,\n int stderrLines,\n String boundedError,\n Duration queued,\n Duration elapsed)","params":[{"name":"id","type":"long","doc":"a counter for this transport, so one call can be told from the next"},{"name":"verbs","type":"List","doc":"the commands, without their arguments"},{"name":"certainty","type":"DispatchOutcome","doc":"whether tmux never started, finished, or might have applied the command"},{"name":"exitCode","type":"OptionalInt","doc":"the process exit status, empty when the process did not finish"},{"name":"stdoutLines","type":"int","doc":"how many stdout lines came back"},{"name":"stderrLines","type":"int","doc":"how many stderr lines came back"},{"name":"boundedError","type":"String","doc":"stderr text, at most {@link #ERROR_LIMIT} characters"},{"name":"queued","type":"Duration","doc":"how long the call waited for a free process or writer slot"},{"name":"elapsed","type":"Duration","doc":"how long the command itself ran after that wait"}]}],"typeScopeBoundary":false,"doc":{"summary":"One command a transport finished or failed to finish.","body":"The verbs are the first word of each command. Arguments, standard input, and stdout are not\nhere: they carry session names, socket paths, and whatever a caller typed. {@link #boundedError()}\nis stderr, cut off, and {@link #toString()} leaves it out."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.ERROR_LIMIT","name":"ERROR_LIMIT","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.transport.OperationReport.OperationReport","signatures":[],"typeScopeBoundary":true,"type":"int","value":"240","doc":{"summary":"How much stderr text a report keeps."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.ERROR_LIMIT","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.ERROR_LIMIT","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-error_limit"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.bound","name":"bound","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.transport.OperationReport.OperationReport","signatures":[{"raw":"public static String bound(List stderr)","params":[{"name":"stderr","type":"List"}],"returns":"String","typeScopeBoundary":true}],"doc":{"summary":"Joins stderr lines and cuts them at {@link #ERROR_LIMIT}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","line":52,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.bound","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.bound","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-bound"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.OperationReport.OperationReport","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"Counts and timings only. The error text stays on {@link #boundedError()}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","line":57,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.toString","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.toString","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-tostring"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.id","name":"id","kind":"method","parent":"io.github.libtmux.transport.OperationReport.OperationReport","modifiers":[],"signatures":[{"params":[],"returns":"long"}],"doc":{"summary":"a counter for this transport, so one call can be told from the next"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.id","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.id","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-id"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.verbs","name":"verbs","kind":"method","parent":"io.github.libtmux.transport.OperationReport.OperationReport","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the commands, without their arguments"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.verbs","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.verbs","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-verbs"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.certainty","name":"certainty","kind":"method","parent":"io.github.libtmux.transport.OperationReport.OperationReport","modifiers":[],"signatures":[{"params":[],"returns":"DispatchOutcome"}],"doc":{"summary":"whether tmux never started, finished, or might have applied the command"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.certainty","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.certainty","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-certainty"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.exitCode","name":"exitCode","kind":"method","parent":"io.github.libtmux.transport.OperationReport.OperationReport","modifiers":[],"signatures":[{"params":[],"returns":"OptionalInt"}],"doc":{"summary":"the process exit status, empty when the process did not finish"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.exitCode","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.exitCode","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-exitcode"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.stdoutLines","name":"stdoutLines","kind":"method","parent":"io.github.libtmux.transport.OperationReport.OperationReport","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"how many stdout lines came back"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.stdoutLines","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.stdoutLines","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-stdoutlines"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.stderrLines","name":"stderrLines","kind":"method","parent":"io.github.libtmux.transport.OperationReport.OperationReport","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"how many stderr lines came back"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.stderrLines","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.stderrLines","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-stderrlines"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.boundedError","name":"boundedError","kind":"method","parent":"io.github.libtmux.transport.OperationReport.OperationReport","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"stderr text, at most {@link #ERROR_LIMIT} characters"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.boundedError","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.boundedError","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-boundederror"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.queued","name":"queued","kind":"method","parent":"io.github.libtmux.transport.OperationReport.OperationReport","modifiers":[],"signatures":[{"params":[],"returns":"Duration"}],"doc":{"summary":"how long the call waited for a free process or writer slot"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.queued","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.queued","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-queued"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport.elapsed","name":"elapsed","kind":"method","parent":"io.github.libtmux.transport.OperationReport.OperationReport","modifiers":[],"signatures":[{"params":[],"returns":"Duration"}],"doc":{"summary":"how long the command itself ran after that wait"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OperationReport.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OperationReport.elapsed","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OperationReport.OperationReport.elapsed","product":"core","slug":"io-github-libtmux-transport-operationreport-operationreport-elapsed"},{"id":"io.github.libtmux.transport.OutputDecoder.OutputDecoder","name":"OutputDecoder","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Turns a drained pipe into lines while preserving tmux values.","body":"tmux emits pane content, so the bytes are not guaranteed to be UTF-8. A malformed byte is\nescaped as {@code \\xNN} rather than replaced with U+FFFD, which keeps the original byte\nrecoverable and matches what CPython's {@code backslashreplace} produces.\n\ntmux frames stdout with LF; CR is value data, including before LF. Stdout keeps interior blank\nlines and drops trailing ones. Diagnostic stderr normalizes CRLF and CR to LF and drops all blanks."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OutputDecoder.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OutputDecoder","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OutputDecoder.OutputDecoder","product":"core","slug":"io-github-libtmux-transport-outputdecoder-outputdecoder"},{"id":"io.github.libtmux.transport.OutputDecoder.OutputDecoder.stdoutLines","name":"stdoutLines","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.transport.OutputDecoder.OutputDecoder","signatures":[{"raw":"static List stdoutLines(byte[] bytes)","params":[{"name":"bytes","type":"byte[]"}],"returns":"List","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OutputDecoder.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OutputDecoder.stdoutLines","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OutputDecoder.OutputDecoder.stdoutLines","product":"core","slug":"io-github-libtmux-transport-outputdecoder-outputdecoder-stdoutlines"},{"id":"io.github.libtmux.transport.OutputDecoder.OutputDecoder.stderrLines","name":"stderrLines","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.transport.OutputDecoder.OutputDecoder","signatures":[{"raw":"static List stderrLines(byte[] bytes)","params":[{"name":"bytes","type":"byte[]"}],"returns":"List","typeScopeBoundary":true}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/OutputDecoder.java","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.OutputDecoder.stderrLines","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.OutputDecoder.OutputDecoder.stderrLines","product":"core","slug":"io-github-libtmux-transport-outputdecoder-outputdecoder-stderrlines"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","name":"ProcessTransport","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The default transport: one child process per call, drained by a bounded pool of platform threads.","body":"A caller takes one admission permit before launching, and the pool holds exactly three workers\nper permit, so holding a permit means both drains and the input pump are already free. Without\nthat coupling a caller can start a child whose pipes nobody is reading, or block forever writing\nto one that stopped reading.\n\nA request declared as waiting also takes one of all but one admission permits. The remaining\nprocess stays available for the ordinary request that observes or releases those waits, without\nincreasing the total process or pump bound. An additional waiter is refused before dispatch, so\nits caller knows it was never registered.\n\nThe caller itself may be a virtual thread: {@code Process.waitFor} releases its carrier. The\ndrains stay platform threads, although on JDK 25 neither a monitor nor a pipe read pins a virtual\nthread any more. A virtual thread is always a daemon, and a drain has to finish the reply it is\nreading rather than be dropped at exit; and a library does not own the scheduler, where a\ncaller's CPU-bound task that never blocks keeps its carrier and a drain waiting behind it lets\nthe pipe fill.\n\nLaunching and closing are ordered by an explicit gate rather than a flag, because checking a\nflag and then acting on it lets a caller start a child after {@code close()} has already decided\nthere was nothing left to destroy."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":66,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ProcessTransport","name":"ProcessTransport","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","signatures":[{"raw":"public ProcessTransport()","params":[],"typeScopeBoundary":false},{"raw":"public ProcessTransport(int maxConcurrentProcesses)","params":[{"name":"maxConcurrentProcesses","type":"int","doc":"how many tmux processes may run at once ({@code executeWaiting} requires at least two)"}],"typeScopeBoundary":false},{"raw":"public ProcessTransport(int maxConcurrentProcesses, int maxOutputBytes)","params":[{"name":"maxConcurrentProcesses","type":"int","doc":"how many tmux processes may run at once"},{"name":"maxOutputBytes","type":"int","doc":"maximum bytes accepted from each output channel of one process"}],"typeScopeBoundary":false}],"doc":{"summary":"A transport allowing four concurrent tmux processes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":106,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ProcessTransport","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-processtransport"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.controlCarrier","name":"controlCarrier","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","signatures":[{"raw":"@Override\n public Optional controlCarrier()","params":[],"returns":"Optional","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":161,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.controlCarrier","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.controlCarrier","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-controlcarrier"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.admissionBound","name":"admissionBound","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","signatures":[{"raw":"@Override\n public int admissionBound()","params":[],"returns":"int","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":169,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.admissionBound","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.admissionBound","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-admissionbound"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.observe","name":"observe","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","signatures":[{"raw":"@Override\n public void observe(OperationObserver observer)","params":[{"name":"observer","type":"OperationObserver"}],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":174,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.observe","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.observe","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-observe"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.execute","name":"execute","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","signatures":[{"raw":"@Override\n public CommandResult execute(CommandRequest request)","params":[{"name":"request","type":"CommandRequest"}],"returns":"CommandResult","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":179,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.execute","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.execute","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-execute"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.executeWaiting","name":"executeWaiting","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","signatures":[{"raw":"@Override\n public CommandResult executeWaiting(CommandRequest request)","params":[{"name":"request","type":"CommandRequest"}],"returns":"CommandResult","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":184,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.executeWaiting","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.executeWaiting","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-executewaiting"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","signatures":[{"raw":"@Override\n public void close()","params":[],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":331,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.close","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.close","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-close"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ProcessStarter","name":"ProcessStarter","kind":"interface","modifiers":[],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":733,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.ProcessStarter","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ProcessStarter","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-processstarter"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ProcessStarter.start","name":"start","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ProcessStarter","signatures":[{"raw":"Process start(List command) throws IOException;","params":[{"name":"command","type":"List"}],"returns":"Process","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":735,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.ProcessStarter.start","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ProcessStarter.start","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-processstarter-start"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ResourceNotReclaimed","name":"ResourceNotReclaimed","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"A worker could not be recovered. Distinct from {@link IllegalStateException}, which this transport reserves for use after close."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":801,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.ResourceNotReclaimed","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ResourceNotReclaimed","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-resourcenotreclaimed"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ResourceNotReclaimed.ResourceNotReclaimed","name":"ResourceNotReclaimed","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ResourceNotReclaimed","signatures":[{"raw":"ResourceNotReclaimed(String message)","params":[{"name":"message","type":"String"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/ProcessTransport.java","line":804,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.ProcessTransport.ResourceNotReclaimed.ResourceNotReclaimed","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.ProcessTransport.ProcessTransport.ResourceNotReclaimed.ResourceNotReclaimed","product":"core","slug":"io-github-libtmux-transport-processtransport-processtransport-resourcenotreclaimed-resourcenotreclaimed"},{"id":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","name":"TmuxTransport","kind":"interface","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Runs one tmux command and blocks until it has an answer.","body":"Implementations are thread-safe and {@link #close()} is idempotent. A call begun before close\neither completes under the documented contract or fails with its dispatch certainty intact; a\ncall begun after close fails with {@link io.github.libtmux.exception.ServerClosedException}, an\n{@link IllegalStateException}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/TmuxTransport.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.TmuxTransport","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","product":"core","slug":"io-github-libtmux-transport-tmuxtransport-tmuxtransport"},{"id":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.execute","name":"execute","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","signatures":[{"raw":"CommandResult execute(CommandRequest request);","params":[{"name":"request","type":"CommandRequest","doc":"what to run, what it reads, and how long to wait"}],"returns":"CommandResult","typeScopeBoundary":false,"returnsDoc":"the exit status and both channels; a nonzero exit is a result, not a failure","raises":[{"type":"DispatchException","doc":"if the command could not be run to completion, carrying how certain it is that tmux applied it"},{"type":"IllegalStateException","doc":"if this transport is closed"}]}],"doc":{"summary":"Runs the request to completion.","body":"An implementation writes {@link CommandRequest#input()} to tmux's standard input and\ncloses it. A command that reads standard input and is given none reads end of file, which\ntmux reports as success over an empty result rather than as a failure."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/TmuxTransport.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.TmuxTransport.execute","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.execute","product":"core","slug":"io-github-libtmux-transport-tmuxtransport-tmuxtransport-execute"},{"id":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.executeWaiting","name":"executeWaiting","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","signatures":[{"raw":"default CommandResult executeWaiting(CommandRequest request)","params":[{"name":"request","type":"CommandRequest"}],"returns":"CommandResult","typeScopeBoundary":false}],"doc":{"summary":"Runs a request expected to remain blocked until another request through this transport releases it.","body":"The default shares ordinary admission. A transport with bounded concurrency may override\nthis to keep release and observation requests from queuing behind every waiter."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/TmuxTransport.java","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.TmuxTransport.executeWaiting","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.executeWaiting","product":"core","slug":"io-github-libtmux-transport-tmuxtransport-tmuxtransport-executewaiting"},{"id":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.realm","name":"realm","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","signatures":[{"raw":"default String realm()","params":[],"returns":"String","typeScopeBoundary":false,"returnsDoc":"a stable realm name; the default is the local process's own view of the filesystem"}],"doc":{"summary":"Names the execution realm this transport reaches tmux through.","body":"Entity identity is scoped by it. Two unrelated realms can both hold a server at the same\nsocket path, and entities from them must not compare equal, so a transport that reaches a\ndifferent machine, container or user should return something stable and distinct."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/TmuxTransport.java","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.TmuxTransport.realm","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.realm","product":"core","slug":"io-github-libtmux-transport-tmuxtransport-tmuxtransport-realm"},{"id":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.controlCarrier","name":"controlCarrier","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","signatures":[{"raw":"default Optional controlCarrier()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"How this transport starts a process that stays attached.","body":"Empty when the transport cannot. A command-only fake is in that set, and so is any realm\nthat has not said how its processes are born. Callers that need a control client then fail\ninstead of starting one on the local machine."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/TmuxTransport.java","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.TmuxTransport.controlCarrier","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.controlCarrier","product":"core","slug":"io-github-libtmux-transport-tmuxtransport-tmuxtransport-controlcarrier"},{"id":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.observe","name":"observe","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","signatures":[{"raw":"default void observe(OperationObserver observer)","params":[{"name":"observer","type":"OperationObserver"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Receives a report after each command this transport runs.","body":"The default ignores it. A transport that cannot see its own commands leaves the observer\nunset rather than inventing timings."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/TmuxTransport.java","line":72,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.TmuxTransport.observe","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.observe","product":"core","slug":"io-github-libtmux-transport-tmuxtransport-tmuxtransport-observe"},{"id":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.admissionBound","name":"admissionBound","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","signatures":[{"raw":"default int admissionBound()","params":[],"returns":"int","typeScopeBoundary":false,"returnsDoc":"the bound, or {@link Integer#MAX_VALUE} for a transport that sets none"}],"doc":{"summary":"How many requests this transport runs at once; the rest wait for a turn."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/TmuxTransport.java","line":79,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.TmuxTransport.admissionBound","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.admissionBound","product":"core","slug":"io-github-libtmux-transport-tmuxtransport-tmuxtransport-admissionbound"},{"id":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","signatures":[{"raw":"@Override\n void close();","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Releases every resource and destroys every child still running. Idempotent."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/transport/TmuxTransport.java","line":84,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.transport.TmuxTransport.close","namespace":"io.github.libtmux.transport","publicId":"io.github.libtmux.transport.TmuxTransport.TmuxTransport.close","product":"core","slug":"io-github-libtmux-transport-tmuxtransport-tmuxtransport-close"},{"id":"io.github.libtmux.TypedText.TypedText","name":"TypedText","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Discounts input recorded by this library when reading a pane's output.","body":"Create one instance per wait. Each read refreshes pending input and retains submitted echoes\nalready observed, even after the shared record expires. This mutable view is not thread-safe."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TypedText.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TypedText","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TypedText.TypedText","product":"core","slug":"io-github-libtmux-typedtext-typedtext"},{"id":"io.github.libtmux.TypedText.TypedText.in","name":"in","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.TypedText.TypedText","signatures":[{"raw":"public static TypedText in(Pane pane)","params":[{"name":"pane","type":"Pane"}],"returns":"TypedText","typeScopeBoundary":true}],"doc":{"summary":"What this library has typed into the pane recently enough to still be on its screen."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TypedText.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TypedText.in","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TypedText.TypedText.in","product":"core","slug":"io-github-libtmux-typedtext-typedtext-in"},{"id":"io.github.libtmux.TypedText.TypedText.withoutEcho","name":"withoutEcho","kind":"method","modifiers":[],"parent":"io.github.libtmux.TypedText.TypedText","signatures":[{"raw":"@ReadOnly\n public List withoutEcho(List lines)","params":[{"name":"lines","type":"List"}],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"The lines with each recorded echo taken out, wherever it stands as an echo does.","body":"An occurrence is taken out only where it is not part of a longer word on either side. That is\nwhat keeps the answer when the answer merely contains the question — {@code id} comes off\n{@code $ id} and stays inside {@code uid=1000} — while still taking out every copy of an echo a\nshell drew more than once, and one a shell drew something straight after. A row the echo shared\nwith real output keeps that output.\n\nWhat no rule can do is tell an echo from output that repeats the whole typed line as a line\nof its own. Wait for something the command prints rather than something it says.\n\nThe lines are scanned as one string, so an echo the terminal broke across rows is still\nfound. Pass lines with wrapping already rejoined when the text being watched for can itself be\nbroken across rows. A shell redraw or truncated capture that retains only part of an echo\ncannot be recognized reliably."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TypedText.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TypedText.withoutEcho","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TypedText.TypedText.withoutEcho","product":"core","slug":"io-github-libtmux-typedtext-typedtext-withoutecho"},{"id":"io.github.libtmux.TypedText.TypedText.isEmpty","name":"isEmpty","kind":"method","modifiers":[],"parent":"io.github.libtmux.TypedText.TypedText","signatures":[{"raw":"public boolean isEmpty()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether anything typed into the pane is live enough, right now, to still be discounted."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/TypedText.java","line":70,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TypedText.isEmpty","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TypedText.TypedText.isEmpty","product":"core","slug":"io-github-libtmux-typedtext-typedtext-isempty"},{"id":"io.github.libtmux.TypedText.TypedText.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.TypedText.TypedText","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/TypedText.java","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.TypedText.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.TypedText.TypedText.toString","product":"core","slug":"io-github-libtmux-typedtext-typedtext-tostring"},{"id":"io.github.libtmux.WakeReason.WakeReason","name":"WakeReason","kind":"enum","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Why a wait on a tmux channel ended.","body":"An enum rather than a boolean, and rather than nothing at all, because tmux's own\n{@code wait-for} cannot distinguish these: it exits successfully both when the channel is\nsignalled and when the server dies underneath the waiter."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WakeReason.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WakeReason","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WakeReason.WakeReason","product":"core","slug":"io-github-libtmux-wakereason-wakereason"},{"id":"io.github.libtmux.WakeReason.WakeReason.SIGNALLED","name":"SIGNALLED","kind":"constant","modifiers":[],"parent":"io.github.libtmux.WakeReason.WakeReason","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"The channel was signalled."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WakeReason.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WakeReason.SIGNALLED","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WakeReason.WakeReason.SIGNALLED","product":"core","slug":"io-github-libtmux-wakereason-wakereason-signalled"},{"id":"io.github.libtmux.WakeReason.WakeReason.TIMED_OUT","name":"TIMED_OUT","kind":"constant","modifiers":[],"parent":"io.github.libtmux.WakeReason.WakeReason","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Nothing signalled the channel before the caller's deadline."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WakeReason.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WakeReason.TIMED_OUT","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WakeReason.WakeReason.TIMED_OUT","product":"core","slug":"io-github-libtmux-wakereason-wakereason-timed_out"},{"id":"io.github.libtmux.WakeReason.WakeReason.SERVER_GONE","name":"SERVER_GONE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.WakeReason.WakeReason","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"The server is gone. tmux reports this as a successful wake, so it is checked for rather than believed; a caller cannot rely on anything the wait was guarding."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WakeReason.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WakeReason.SERVER_GONE","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WakeReason.WakeReason.SERVER_GONE","product":"core","slug":"io-github-libtmux-wakereason-wakereason-server_gone"},{"id":"io.github.libtmux.Window.Window","name":"Window","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"One tmux window at one of its positions, as one capture saw it.","body":"Identity is the winlink: the server, the session, the index and the window. A window linked\ninto two sessions is one window and two handles, because tmux orders and addresses those\npositions separately. {@link #id()} stays available for asking whether two links are the same\nunderlying window.\n\nA method named for a captured field returns what {@link #info()} holds and does no I/O;\n{@link #refresh()} reads again. Every other method asks tmux now."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window","product":"core","slug":"io-github-libtmux-window-window"},{"id":"io.github.libtmux.Window.Window.Window","name":"Window","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"Window(Server server, ServerSnapshot snapshot, WindowState state)","params":[{"name":"server","type":"Server"},{"name":"snapshot","type":"ServerSnapshot"},{"name":"state","type":"WindowState"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.Window","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.Window","product":"core","slug":"io-github-libtmux-window-window-window"},{"id":"io.github.libtmux.Window.Window.info","name":"info","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public WindowState info()","params":[],"returns":"WindowState","typeScopeBoundary":false}],"doc":{"summary":"The fields this capture stored. A later rename is not visible here."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":44,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.info","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.info","product":"core","slug":"io-github-libtmux-window-window-info"},{"id":"io.github.libtmux.Window.Window.id","name":"id","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public WindowId id()","params":[],"returns":"WindowId","typeScopeBoundary":false}],"doc":{"summary":"The underlying window, shared by every link to it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.id","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.id","product":"core","slug":"io-github-libtmux-window-window-id"},{"id":"io.github.libtmux.Window.Window.index","name":"index","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public WindowIndex index()","params":[],"returns":"WindowIndex","typeScopeBoundary":false}],"doc":{"summary":"Where this link sits in its session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.index","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.index","product":"core","slug":"io-github-libtmux-window-window-index"},{"id":"io.github.libtmux.Window.Window.context","name":"context","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public WindowContext context()","params":[],"returns":"WindowContext","typeScopeBoundary":false}],"doc":{"summary":"The winlink this handle addresses."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.context","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.context","product":"core","slug":"io-github-libtmux-window-window-context"},{"id":"io.github.libtmux.Window.Window.name","name":"name","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public String name()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The window name."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":68,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.name","product":"core","slug":"io-github-libtmux-window-window-name"},{"id":"io.github.libtmux.Window.Window.active","name":"active","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public boolean active()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether this was its session's active window when captured."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":74,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.active","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.active","product":"core","slug":"io-github-libtmux-window-window-active"},{"id":"io.github.libtmux.Window.Window.linked","name":"linked","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public boolean linked()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether the underlying window is linked into more than one session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":80,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.linked","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.linked","product":"core","slug":"io-github-libtmux-window-window-linked"},{"id":"io.github.libtmux.Window.Window.size","name":"size","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Dimensions size()","params":[],"returns":"Dimensions","typeScopeBoundary":false}],"doc":{"summary":"How large the window was when captured, in terminal cells."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":86,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.size","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.size","product":"core","slug":"io-github-libtmux-window-window-size"},{"id":"io.github.libtmux.Window.Window.layout","name":"layout","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public WindowLayout layout()","params":[],"returns":"WindowLayout","typeScopeBoundary":false}],"doc":{"summary":"tmux's own layout for this window, in whichever form this server writes it.","body":"Classic before tmux 3.8 and JSON from it, and the type says which. Hand it back with {@link\n#applyLayout(WindowLayout)}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":97,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.layout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.layout","product":"core","slug":"io-github-libtmux-window-window-layout"},{"id":"io.github.libtmux.Window.Window.activePane","name":"activePane","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Optional activePane()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The pane tmux had active here. A pure read of the capture.","body":"Empty only when the capture holds no pane marked active for this window, which a complete\ncapture of a live window does not."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":108,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.activePane","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.activePane","product":"core","slug":"io-github-libtmux-window-window-activepane"},{"id":"io.github.libtmux.Window.Window.select","name":"select","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void select()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Makes this the active window of its session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":114,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.select","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.select","product":"core","slug":"io-github-libtmux-window-window-select"},{"id":"io.github.libtmux.Window.Window.server","name":"server","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Server server()","params":[],"returns":"Server","typeScopeBoundary":false}],"doc":{"summary":"The server this window lives on."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":120,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.server","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.server","product":"core","slug":"io-github-libtmux-window-window-server"},{"id":"io.github.libtmux.Window.Window.snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"ServerSnapshot snapshot()","params":[],"returns":"ServerSnapshot","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":125,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.snapshot","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.snapshot","product":"core","slug":"io-github-libtmux-window-window-snapshot"},{"id":"io.github.libtmux.Window.Window.session","name":"session","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Session session()","params":[],"returns":"Session","typeScopeBoundary":false}],"doc":{"summary":"The session this link belongs to. A pure read of the capture."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":130,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.session","product":"core","slug":"io-github-libtmux-window-window-session"},{"id":"io.github.libtmux.Window.Window.hooks","name":"hooks","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Hooks hooks()","params":[],"returns":"Hooks","typeScopeBoundary":false}],"doc":{"summary":"This window's own hooks, which every link to it shares."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":139,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.hooks","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.hooks","product":"core","slug":"io-github-libtmux-window-window-hooks"},{"id":"io.github.libtmux.Window.Window.options","name":"options","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.CAPTURED)\n public Options options()","params":[],"returns":"Options","typeScopeBoundary":false}],"doc":{"summary":"This window's own options, which every link to it shares."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":145,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.options","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.options","product":"core","slug":"io-github-libtmux-window-window-options"},{"id":"io.github.libtmux.Window.Window.panes","name":"panes","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@ReadOnly\n @Operation(Kind.CAPTURED)\n public List panes()","params":[],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"This link's panes, in tmux's order. A pure read of the capture.","examples":[{"lang":"console","intro":"List all panes, then the panes captured for one window. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/java/build.gradle.kts","code":"plugins {\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"java","intro":"Save this complete program as src/main/java/ListPanes.java. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/java/io/github/libtmux/examples/api/java/ListPanes.java","code":"package io.github.libtmux.examples.api.java;\n\nimport io.github.libtmux.Server;\nimport io.github.libtmux.ServerConfig;\nimport io.github.libtmux.ServerEndpoint;\nimport java.nio.file.Path;\n\n/** List all panes, then the panes captured for one window. */\npublic final class ListPanes {\n private ListPanes() {}\n\n public static void main(String[] args) {\n try {\n if (args.length != 3) {\n throw new IllegalArgumentException(\"expected: tmux-binary socket-path config-file\");\n }\n var config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build();\n try (Server server = Server.open(config)) {\n System.out.println(\"panes=\" + server.panes().size());\n var session = server.session(\"work-one\").orElseThrow();\n var window = session.windows().stream()\n .filter(item -> item.name().equals(\"editor\"))\n .findFirst()\n .orElseThrow();\n System.out.println(\"window-panes=\" + window.panes().size());\n }\n } catch (Exception error) {\n if (error instanceof InterruptedException) Thread.currentThread().interrupt();\n System.err.println(\"Example failed: \" + error.getMessage());\n System.exit(1);\n }\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.java.ListPanes && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"panes=4\nwindow-panes=2\n"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":151,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.panes","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.panes","product":"core","slug":"io-github-libtmux-window-window-panes"},{"id":"io.github.libtmux.Window.Window.split","name":"split","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public Pane split()","params":[],"returns":"Pane","typeScopeBoundary":false,"returnsDoc":"the pane that appeared"},{"raw":"@Operation(Kind.MUTATION)\n public Pane split(Consumer configure)","params":[{"name":"configure","type":"Consumer","doc":"receives a builder holding tmux's defaults"}],"returns":"Pane","typeScopeBoundary":false,"returnsDoc":"the pane that appeared","raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something this server does not have"}]},{"raw":"@Operation(Kind.MUTATION)\n public Pane split(SplitSpec spec)","params":[{"name":"spec","type":"SplitSpec"}],"returns":"Pane","typeScopeBoundary":false,"returnsDoc":"the pane that appeared","raises":[{"type":"UnsupportedFeatureException","doc":"if the spec asks for something this server does not have"}]}],"doc":{"summary":"Splits this window's active pane in half, putting the new one below it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":164,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.split","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.split","product":"core","slug":"io-github-libtmux-window-window-split"},{"id":"io.github.libtmux.Window.Window.expand","name":"expand","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.READ)\n public String expand(String format)","params":[{"name":"format","type":"String","doc":"a tmux format, usually of the shape {@code #{name}}"}],"returns":"String","typeScopeBoundary":false,"returnsDoc":"the expansion, whole when it spans lines and empty when the format expanded to nothing"}],"doc":{"summary":"Expands a tmux format in this window's context, and answers with what it came to.","body":"The same escape hatch {@link Pane#expand} gives, resolved against this window."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":203,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.expand","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.expand","product":"core","slug":"io-github-libtmux-window-window-expand"},{"id":"io.github.libtmux.Window.Window.rename","name":"rename","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@CheckReturnValue\n @Operation(Kind.MUTATION)\n public Window rename(String name)","params":[{"name":"name","type":"String"}],"returns":"Window","typeScopeBoundary":false}],"doc":{"summary":"Renames this window and returns its replacement capture.","body":"Retain the result to read the changed name. This handle keeps its original captured state.\n\nA {@code :} or {@code .} is kept as written on every supported release but 3.7, which\nrefuses the name. A kept delimiter cannot then address the window, since a target splits on\nboth. Unlike a session name, a window name is never rewritten."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":222,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.rename","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.rename","product":"core","slug":"io-github-libtmux-window-window-rename"},{"id":"io.github.libtmux.Window.Window.linkTo","name":"linkTo","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void linkTo(Session session)","params":[{"name":"session","type":"Session"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Links this window into another session, so one window sits in both."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":230,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.linkTo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.linkTo","product":"core","slug":"io-github-libtmux-window-window-linkto"},{"id":"io.github.libtmux.Window.Window.unlink","name":"unlink","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void unlink()","params":[],"returns":"void","typeScopeBoundary":false,"raises":[{"type":"LibTmuxException","doc":"if this is the window's only link, which tmux refuses to remove"}]}],"doc":{"summary":"Removes this link, leaving the window wherever else it is linked."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":244,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.unlink","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.unlink","product":"core","slug":"io-github-libtmux-window-window-unlink"},{"id":"io.github.libtmux.Window.Window.moveTo","name":"moveTo","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void moveTo(Session session)","params":[{"name":"session","type":"Session"}],"returns":"void","typeScopeBoundary":false},{"raw":"@Operation(Kind.MUTATION)\n public void moveTo(Session session, int index)","params":[{"name":"session","type":"Session"},{"name":"index","type":"int"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Moves this window into another session."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":250,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.moveTo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.moveTo","product":"core","slug":"io-github-libtmux-window-window-moveto"},{"id":"io.github.libtmux.Window.Window.resizeTo","name":"resizeTo","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void resizeTo(Dimensions size)","params":[{"name":"size","type":"Dimensions"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Resizes this window in terminal cells."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":275,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.resizeTo","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.resizeTo","product":"core","slug":"io-github-libtmux-window-window-resizeto"},{"id":"io.github.libtmux.Window.Window.synchronizePanes","name":"synchronizePanes","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void synchronizePanes()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Copies input to one pane into every pane in this window, until {@link #stopSynchronizingPanes}.","body":"A verb pair rather than a boolean parameter, so a call site says which it means — as\n{@link Pane#pipeTo} and {@link Pane#stopPiping} already do for the other state a window\ncarries."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":297,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.synchronizePanes","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.synchronizePanes","product":"core","slug":"io-github-libtmux-window-window-synchronizepanes"},{"id":"io.github.libtmux.Window.Window.stopSynchronizingPanes","name":"stopSynchronizingPanes","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void stopSynchronizingPanes()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Stops copying input between this window's panes."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":303,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.stopSynchronizingPanes","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.stopSynchronizingPanes","product":"core","slug":"io-github-libtmux-window-window-stopsynchronizingpanes"},{"id":"io.github.libtmux.Window.Window.rotate","name":"rotate","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void rotate()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Rotates the panes within this window."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":309,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.rotate","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.rotate","product":"core","slug":"io-github-libtmux-window-window-rotate"},{"id":"io.github.libtmux.Window.Window.selectLayout","name":"selectLayout","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void selectLayout(Layout layout)","params":[{"name":"layout","type":"Layout"}],"returns":"void","typeScopeBoundary":false,"raises":[{"type":"UnsupportedFeatureException","doc":"if the layout arrived after the release this server runs"}]}],"doc":{"summary":"Rearranges this window's panes into one of tmux's built-in layouts."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":319,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.selectLayout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.selectLayout","product":"core","slug":"io-github-libtmux-window-window-selectlayout"},{"id":"io.github.libtmux.Window.Window.nextLayout","name":"nextLayout","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void nextLayout()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Moves to the next built-in layout, as tmux's own binding does."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":327,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.nextLayout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.nextLayout","product":"core","slug":"io-github-libtmux-window-window-nextlayout"},{"id":"io.github.libtmux.Window.Window.previousLayout","name":"previousLayout","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void previousLayout()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Moves to the previous built-in layout, as tmux's own binding does."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":333,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.previousLayout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.previousLayout","product":"core","slug":"io-github-libtmux-window-window-previouslayout"},{"id":"io.github.libtmux.Window.Window.applyLayout","name":"applyLayout","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void applyLayout(WindowLayout layout)","params":[{"name":"layout","type":"WindowLayout"}],"returns":"void","typeScopeBoundary":false,"raises":[{"type":"IllegalArgumentException","doc":"if the string is not a layout tmux wrote"},{"type":"UnsupportedFeatureException","doc":"if it is JSON-shaped but this server predates JSON layouts"}]},{"raw":"@Operation(Kind.MUTATION)\n public void applyLayout(String layout)","params":[{"name":"layout","type":"String"}],"returns":"void","typeScopeBoundary":false,"raises":[{"type":"IllegalArgumentException","doc":"if the string is not a layout tmux wrote"},{"type":"UnsupportedFeatureException","doc":"if it is JSON-shaped but this server predates JSON layouts"}]}],"doc":{"summary":"Restores an exact arrangement previously read from {@link #layout()}.","body":"The string is checked here rather than by tmux, because tmux 3.3a does not survive being\nhanded one it cannot parse: it ends the server and every session on the socket. Every other\nsupported release answers {@code invalid layout}. The classic form carries tmux's own\nchecksum, so a wrong one is detectable without asking; since 3.8 tmux may instead hand back\nJSON, which carries no checksum, so that shape is only trusted from a server new enough to\nhave written it.\n\n\"Exact\" holds in full only for a JSON layout, since that is the one form carrying each\npane's id. A classic string — every release before 3.8, or an older reader against a newer\nserver — restores the geometry but names no pane, so which process lands in which cell can\ndiffer from where it started; whether it does depends on whether the pane list still happens\nto match the order the layout was saved in. Confirmed by hand on 3.2a and 3.7c."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":358,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.applyLayout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.applyLayout","product":"core","slug":"io-github-libtmux-window-window-applylayout"},{"id":"io.github.libtmux.Window.Window.respawn","name":"respawn","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void respawn()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Kills what is running in this window and starts it again."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":380,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.respawn","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.respawn","product":"core","slug":"io-github-libtmux-window-window-respawn"},{"id":"io.github.libtmux.Window.Window.displayPopup","name":"displayPopup","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void displayPopup(String shellCommand)","params":[{"name":"shellCommand","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Shows a popup over this window, running a command in it.","body":"tmux draws a popup for a client, so this needs one attached; on a detached session tmux\nreports that it has no current client.\n\ntmux expands {@code #(...)} in this command before a shell sees it, and shell quoting does\nnot prevent that. Pass any interpolated value through {@link TmuxFormats#literal} unless you\nmean it to be expanded."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":395,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.displayPopup","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.displayPopup","product":"core","slug":"io-github-libtmux-window-window-displaypopup"},{"id":"io.github.libtmux.Window.Window.kill","name":"kill","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Operation(Kind.MUTATION)\n public void kill()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Closes this window."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":401,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.kill","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.kill","product":"core","slug":"io-github-libtmux-window-window-kill"},{"id":"io.github.libtmux.Window.Window.refresh","name":"refresh","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@CheckReturnValue\n @Operation(Kind.READ)\n public Window refresh()","params":[],"returns":"Window","typeScopeBoundary":false,"raises":[{"type":"TargetGoneException","doc":"if this window is no longer linked here, from a server that still answers"},{"type":"ServerUnavailableException","doc":"if no daemon is running"}]}],"doc":{"summary":"Takes a new capture and returns this winlink as it is now."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":413,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.refresh","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.refresh","product":"core","slug":"io-github-libtmux-window-window-refresh"},{"id":"io.github.libtmux.Window.Window.equals","name":"equals","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Override\n public boolean equals(Object other)","params":[{"name":"other","type":"Object"}],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":432,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.equals","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.equals","product":"core","slug":"io-github-libtmux-window-window-equals"},{"id":"io.github.libtmux.Window.Window.hashCode","name":"hashCode","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Override\n public int hashCode()","params":[],"returns":"int","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":439,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.hashCode","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.hashCode","product":"core","slug":"io-github-libtmux-window-window-hashcode"},{"id":"io.github.libtmux.Window.Window.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.Window.Window","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/Window.java","line":444,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window.Window.toString","product":"core","slug":"io-github-libtmux-window-window-tostring"},{"id":"io.github.libtmux.WindowId.WindowId","name":"WindowId","kind":"class","modifiers":[],"signatures":[{"raw":"public record WindowId(String value)","params":[{"name":"value","type":"String","doc":"the id including its {@code @} sigil"}]}],"typeScopeBoundary":false,"doc":{"summary":"A tmux window id, such as {@code @1}.","body":"Identifies the window itself, not where it sits. A window linked into two sessions has one id\nand two positions, so this is what to compare when asking whether two links are the same window."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowId.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowId","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowId.WindowId","product":"core","slug":"io-github-libtmux-windowid-windowid"},{"id":"io.github.libtmux.WindowId.WindowId.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowId.WindowId","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowId.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowId.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowId.WindowId.toString","product":"core","slug":"io-github-libtmux-windowid-windowid-tostring"},{"id":"io.github.libtmux.WindowId.WindowId.value","name":"value","kind":"method","parent":"io.github.libtmux.WindowId.WindowId","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the id including its {@code @} sigil"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowId.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowId.value","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowId.WindowId.value","product":"core","slug":"io-github-libtmux-windowid-windowid-value"},{"id":"io.github.libtmux.WindowIndex.WindowIndex","name":"WindowIndex","kind":"class","modifiers":[],"signatures":[{"raw":"public record WindowIndex(int value)","params":[{"name":"value","type":"int","doc":"the index, as tmux reports it"}]}],"typeScopeBoundary":false,"doc":{"summary":"Where a window sits in one session.","body":"A position, not an identity: tmux renumbering moves a window to a different index, and the\nsame window linked into two sessions can hold a different index in each."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowIndex.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowIndex","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowIndex.WindowIndex","product":"core","slug":"io-github-libtmux-windowindex-windowindex"},{"id":"io.github.libtmux.WindowIndex.WindowIndex.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowIndex.WindowIndex","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowIndex.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowIndex.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowIndex.WindowIndex.toString","product":"core","slug":"io-github-libtmux-windowindex-windowindex-tostring"},{"id":"io.github.libtmux.WindowIndex.WindowIndex.value","name":"value","kind":"method","parent":"io.github.libtmux.WindowIndex.WindowIndex","modifiers":[],"signatures":[{"params":[],"returns":"int"}],"doc":{"summary":"the index, as tmux reports it"},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowIndex.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowIndex.value","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowIndex.WindowIndex.value","product":"core","slug":"io-github-libtmux-windowindex-windowindex-value"},{"id":"io.github.libtmux.WindowLayout.WindowLayout","name":"WindowLayout","kind":"interface","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"A window's layout as tmux reported it, in whichever of its two forms it used.","body":"tmux writes a layout in its classic checksummed form — {@code c3a4,80x24,0,0,1} — on every\nrelease before 3.8, and as JSON from 3.8, which also names the pane in each cell. The same window\ntherefore reports a differently shaped string depending on the server, and a caller that parses it\nneeds to know which it has. This says, so the compiler can carry what used to be a comment:\n\nEither form is an opaque token to hand back to tmux, which {@link Window#applyLayout(WindowLayout)}\ndoes; parsing one is tmux's job, and {@link #value()} is the text for a caller who wants to anyway.","examples":[{"lang":"java","code":"switch (window.layout()) {\n case WindowLayout.Json json -> restorePanes(json.value());\n case WindowLayout.Classic classic -> restoreGeometry(classic.value());\n}"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowLayout.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowLayout","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowLayout.WindowLayout","product":"core","slug":"io-github-libtmux-windowlayout-windowlayout"},{"id":"io.github.libtmux.WindowLayout.WindowLayout.value","name":"value","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowLayout.WindowLayout","signatures":[{"raw":"String value();","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The layout exactly as tmux reported it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowLayout.java","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowLayout.value","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowLayout.WindowLayout.value","product":"core","slug":"io-github-libtmux-windowlayout-windowlayout-value"},{"id":"io.github.libtmux.WindowLayout.WindowLayout.Classic","name":"Classic","kind":"class","modifiers":[],"parent":"io.github.libtmux.WindowLayout.WindowLayout","signatures":[{"raw":"record Classic(String value) implements WindowLayout","params":[{"name":"value","type":"String"}]}],"typeScopeBoundary":true,"doc":{"summary":"The checksummed form every release writes before 3.8. It carries geometry and no pane ids."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowLayout.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowLayout.Classic","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowLayout.WindowLayout.Classic","product":"core","slug":"io-github-libtmux-windowlayout-windowlayout-classic"},{"id":"io.github.libtmux.WindowLayout.WindowLayout.Classic.value","name":"value","kind":"method","parent":"io.github.libtmux.WindowLayout.WindowLayout.Classic","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowLayout.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowLayout.Classic.value","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowLayout.WindowLayout.Classic.value","product":"core","slug":"io-github-libtmux-windowlayout-windowlayout-classic-value"},{"id":"io.github.libtmux.WindowLayout.WindowLayout.Json","name":"Json","kind":"class","modifiers":[],"parent":"io.github.libtmux.WindowLayout.WindowLayout","signatures":[{"raw":"record Json(String value) implements WindowLayout","params":[{"name":"value","type":"String"}]}],"typeScopeBoundary":true,"doc":{"summary":"The JSON form tmux writes from 3.8, which names the pane in each cell."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowLayout.java","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowLayout.Json","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowLayout.WindowLayout.Json","product":"core","slug":"io-github-libtmux-windowlayout-windowlayout-json"},{"id":"io.github.libtmux.WindowLayout.WindowLayout.Json.value","name":"value","kind":"method","parent":"io.github.libtmux.WindowLayout.WindowLayout.Json","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowLayout.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowLayout.Json.value","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowLayout.WindowLayout.Json.value","product":"core","slug":"io-github-libtmux-windowlayout-windowlayout-json-value"},{"id":"io.github.libtmux.WindowLayout.WindowLayout.of","name":"of","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.WindowLayout.WindowLayout","signatures":[{"raw":"static WindowLayout of(String reported)","params":[{"name":"reported","type":"String"}],"returns":"WindowLayout","typeScopeBoundary":true}],"doc":{"summary":"Which form a reported layout is in.","body":"Decided as tmux decides it, on whether the first non-blank character opens a JSON object —\n{@code layout_construct} in {@code layout-custom.c} dispatches on nothing more."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowLayout.java","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowLayout.of","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowLayout.WindowLayout.of","product":"core","slug":"io-github-libtmux-windowlayout-windowlayout-of"},{"id":"io.github.libtmux.WindowPlacement.WindowPlacement","name":"WindowPlacement","kind":"enum","modifiers":[],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Where a new window is inserted relative to the current one.","body":"Absent rather than a third constant when the caller does not care: tmux picking the next free\nindex is a different thing from being asked for a particular side, and a {@code DEFAULT} member\nwould have no flag to produce."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowPlacement.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowPlacement","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowPlacement.WindowPlacement","product":"core","slug":"io-github-libtmux-windowplacement-windowplacement"},{"id":"io.github.libtmux.WindowPlacement.WindowPlacement.AFTER","name":"AFTER","kind":"constant","modifiers":[],"parent":"io.github.libtmux.WindowPlacement.WindowPlacement","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowPlacement.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowPlacement.AFTER","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowPlacement.WindowPlacement.AFTER","product":"core","slug":"io-github-libtmux-windowplacement-windowplacement-after"},{"id":"io.github.libtmux.WindowPlacement.WindowPlacement.BEFORE","name":"BEFORE","kind":"constant","modifiers":[],"parent":"io.github.libtmux.WindowPlacement.WindowPlacement","signatures":[],"typeScopeBoundary":true,"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowPlacement.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowPlacement.BEFORE","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowPlacement.WindowPlacement.BEFORE","product":"core","slug":"io-github-libtmux-windowplacement-windowplacement-before"},{"id":"io.github.libtmux.WindowPlacement.WindowPlacement.WindowPlacement","name":"WindowPlacement","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowPlacement.WindowPlacement","signatures":[{"raw":"WindowPlacement(String flag)","params":[{"name":"flag","type":"String"}],"typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowPlacement.java","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowPlacement.WindowPlacement","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowPlacement.WindowPlacement.WindowPlacement","product":"core","slug":"io-github-libtmux-windowplacement-windowplacement-windowplacement"},{"id":"io.github.libtmux.WindowPlacement.WindowPlacement.flag","name":"flag","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowPlacement.WindowPlacement","signatures":[{"raw":"String flag()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The tmux flag that places a window this way."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowPlacement.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowPlacement.flag","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowPlacement.WindowPlacement.flag","product":"core","slug":"io-github-libtmux-windowplacement-windowplacement-flag"},{"id":"io.github.libtmux.WindowSpec.WindowSpec","name":"WindowSpec","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"How a window should be made.","body":"The shape {@link SplitSpec} uses, for the same reasons: a description that contacts nothing, so\nit can be named, reused, and applied wherever it fits.","examples":[{"lang":"java","code":"Window logs = session.newWindow(w -> w.named(\"logs\").running(\"journalctl\", \"-f\"));"}]},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec","product":"core","slug":"io-github-libtmux-windowspec-windowspec"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.builder","name":"builder","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"raw":"public static Builder builder()","params":[],"returns":"Builder","typeScopeBoundary":true}],"doc":{"summary":"A builder holding tmux's own defaults: a detached window at the end, running a shell."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.builder","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-1sop"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.name","name":"name","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"raw":"public Optional name()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The name the window is created with, or empty to let tmux choose."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.name","product":"core","slug":"io-github-libtmux-windowspec-windowspec-name"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.directory","name":"directory","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"raw":"public Optional directory()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"Where the window's first pane starts, or empty to inherit."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.directory","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.directory","product":"core","slug":"io-github-libtmux-windowspec-windowspec-directory"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.environment","name":"environment","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"raw":"@ReadOnly\n public Map environment()","params":[],"returns":"Map","typeScopeBoundary":false}],"doc":{"summary":"Variables set for the new window, in the order they were given."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.environment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.environment","product":"core","slug":"io-github-libtmux-windowspec-windowspec-environment"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.detached","name":"detached","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"raw":"public boolean detached()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether the window is left unselected.","body":"False by default, which is what {@code new-window} itself does."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":74,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.detached","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.detached","product":"core","slug":"io-github-libtmux-windowspec-windowspec-detached"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.placement","name":"placement","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"raw":"public Optional placement()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"Where the window is inserted, or empty for tmux's own choice of index."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":79,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.placement","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.placement","product":"core","slug":"io-github-libtmux-windowspec-windowspec-placement"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.index","name":"index","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"raw":"public Optional index()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"The index the window is created at, or empty for the next one tmux has free."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":84,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.index","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.index","product":"core","slug":"io-github-libtmux-windowspec-windowspec-index"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.replaceExisting","name":"replaceExisting","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"raw":"public boolean replaceExisting()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether a window already at the target index is destroyed to make room.","body":"Only means anything alongside {@link Builder#atIndex}: tmux has nothing to replace when it\nis choosing the index itself."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":94,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.replaceExisting","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.replaceExisting","product":"core","slug":"io-github-libtmux-windowspec-windowspec-replaceexisting"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.reuseExisting","name":"reuseExisting","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"raw":"public boolean reuseExisting()","params":[],"returns":"boolean","typeScopeBoundary":false}],"doc":{"summary":"Whether a window that already carries this name is selected instead of a second being made."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":99,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.reuseExisting","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.reuseExisting","product":"core","slug":"io-github-libtmux-windowspec-windowspec-reuseexisting"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.command","name":"command","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"raw":"@ReadOnly\n public List command()","params":[],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"What the window's first pane runs, empty for the session's shell."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":104,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.command","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.command","product":"core","slug":"io-github-libtmux-windowspec-windowspec-command"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.argv","name":"argv","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"raw":"List argv(String target, String format)","params":[{"name":"target","type":"String","doc":"the session, or the index, to create in"},{"name":"format","type":"String","doc":"the row format the caller will read the result back with"}],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"The command that makes this window, reporting it through {@code format}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":115,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.argv","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.argv","product":"core","slug":"io-github-libtmux-windowspec-windowspec-argv"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.toString","name":"toString","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[{"raw":"@Override\n public String toString()","params":[],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":157,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.toString","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.toString","product":"core","slug":"io-github-libtmux-windowspec-windowspec-tostring"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder","name":"Builder","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.WindowSpec.WindowSpec","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"Collects the choices, each named for what it does rather than for the field it sets."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":163,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-1f6n"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.named","name":"named","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"raw":"public Builder named(String name)","params":[{"name":"name","type":"String"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Names the window, where tmux would otherwise name it after what runs in it."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":178,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.named","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.named","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-named"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.after","name":"after","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"raw":"public Builder after()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Puts the window immediately after the current one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":184,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.after","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.after","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-after"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.before","name":"before","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"raw":"public Builder before()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Puts the window immediately before the current one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":190,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.before","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.before","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-before"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.running","name":"running","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"raw":"public Builder running(String... argv)","params":[{"name":"argv","type":"String","variadic":"positional"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Runs a command instead of the session's shell. tmux reports the window before the command has started, so wait for its pane's command with {@link Pane#await(java.util.function.Predicate, java.time.Duration)} rather than reading it at once."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":199,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.running","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.running","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-running"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.in","name":"in","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"raw":"public Builder in(Path directory)","params":[{"name":"directory","type":"Path"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Starts the window in this directory. A relative one resolves against this process's working directory, on every release: tmux 3.2a would resolve it against the server's."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":212,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.in","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.in","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-in"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.env","name":"env","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"raw":"public Builder env(String name, String value)","params":[{"name":"name","type":"String"},{"name":"value","type":"String"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Sets one variable in the new window's environment."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":218,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.env","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.env","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-env"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.environment","name":"environment","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"raw":"public Builder environment(Map variables)","params":[{"name":"variables","type":"Map"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Adds several variables to the new window's environment, keeping any already set."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":224,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.environment","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.environment","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-environment"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.detached","name":"detached","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"raw":"public Builder detached()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Leaves the current window selected, where tmux would move to the new one."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":230,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.detached","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.detached","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-detached"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.atIndex","name":"atIndex","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"raw":"public Builder atIndex(int index)","params":[{"name":"index","type":"int"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Creates the window at a chosen index rather than the next one tmux has free."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":236,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.atIndex","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.atIndex","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-atindex"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.replaceExisting","name":"replaceExisting","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"raw":"public Builder replaceExisting()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Destroys whatever window already sits at the index chosen by {@link #atIndex}."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":245,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.replaceExisting","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.replaceExisting","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-replaceexisting"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.reuseExisting","name":"reuseExisting","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"raw":"public Builder reuseExisting()","params":[],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Selects a window that already carries this name rather than making a second.","body":"tmux reports nothing when it reuses one, so the answer comes from a lookup. Every other\ncreating call in this library is told what it made; this is the exception."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":256,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.reuseExisting","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.reuseExisting","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-reuseexisting"},{"id":"io.github.libtmux.WindowSpec.WindowSpec.Builder.build","name":"build","kind":"method","modifiers":[],"parent":"io.github.libtmux.WindowSpec.WindowSpec.Builder","signatures":[{"raw":"public WindowSpec build()","params":[],"returns":"WindowSpec","typeScopeBoundary":false}],"doc":{"summary":"The finished spec."},"source":{"file":"libtmux/src/main/java/io/github/libtmux/WindowSpec.java","line":262,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.WindowSpec.Builder.build","namespace":"io.github.libtmux","publicId":"io.github.libtmux.WindowSpec.WindowSpec.Builder.build","product":"core","slug":"io-github-libtmux-windowspec-windowspec-builder-build"},{"id":"io.github.libtmux.Client_.Client_","name":"Client_","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Typed fields of {@link Client}."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Client_.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client_","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client_.Client_","product":"core","slug":"io-github-libtmux-client_-client_"},{"id":"io.github.libtmux.Client_.Client_.name","name":"name","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Client_.Client_","signatures":[{"raw":"public static Fields.TextField name()","params":[],"returns":"Fields.TextField","typeScopeBoundary":true}],"doc":{"summary":"The client's terminal name, which is how tmux addresses it."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Client_.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client_.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client_.Client_.name","product":"core","slug":"io-github-libtmux-client_-client_-name"},{"id":"io.github.libtmux.Client_.Client_.session","name":"session","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Client_.Client_","signatures":[{"raw":"public static Fields.ToOneRef session()","params":[],"returns":"Fields.ToOneRef","typeScopeBoundary":true}],"doc":{"summary":"The session this client was attached to, if any."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Client_.java","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Client_.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Client_.Client_.session","product":"core","slug":"io-github-libtmux-client_-client_-session"},{"id":"io.github.libtmux.Pane_.Pane_","name":"Pane_","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Typed fields of {@link Pane}."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_","product":"core","slug":"io-github-libtmux-pane_-pane_"},{"id":"io.github.libtmux.Pane_.Pane_.id","name":"id","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"raw":"public static Fields.TextField id()","params":[],"returns":"Fields.TextField","typeScopeBoundary":true}],"doc":{"summary":"The pane id."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.id","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.id","product":"core","slug":"io-github-libtmux-pane_-pane_-id"},{"id":"io.github.libtmux.Pane_.Pane_.command","name":"command","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"raw":"public static Fields.TextField command()","params":[],"returns":"Fields.TextField","typeScopeBoundary":true}],"doc":{"summary":"The command tmux reported running in the pane."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.command","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.command","product":"core","slug":"io-github-libtmux-pane_-pane_-command"},{"id":"io.github.libtmux.Pane_.Pane_.index","name":"index","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"raw":"public static Fields.NumberField index()","params":[],"returns":"Fields.NumberField","typeScopeBoundary":true}],"doc":{"summary":"The pane's position in its window."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":57,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.index","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.index","product":"core","slug":"io-github-libtmux-pane_-pane_-index"},{"id":"io.github.libtmux.Pane_.Pane_.active","name":"active","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"raw":"public static Fields.FlagField active()","params":[],"returns":"Fields.FlagField","typeScopeBoundary":true}],"doc":{"summary":"Whether this was its window's active pane."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.active","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.active","product":"core","slug":"io-github-libtmux-pane_-pane_-active"},{"id":"io.github.libtmux.Pane_.Pane_.title","name":"title","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"raw":"public static Fields.TextField title()","params":[],"returns":"Fields.TextField","typeScopeBoundary":true}],"doc":{"summary":"The pane's title, which a program running in it can set."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":71,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.title","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.title","product":"core","slug":"io-github-libtmux-pane_-pane_-title"},{"id":"io.github.libtmux.Pane_.Pane_.path","name":"path","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"raw":"public static Fields.TextField path()","params":[],"returns":"Fields.TextField","typeScopeBoundary":true}],"doc":{"summary":"The pane's working directory, as the text tmux reported."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.path","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.path","product":"core","slug":"io-github-libtmux-pane_-pane_-path"},{"id":"io.github.libtmux.Pane_.Pane_.width","name":"width","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"raw":"public static Fields.NumberField width()","params":[],"returns":"Fields.NumberField","typeScopeBoundary":true}],"doc":{"summary":"The pane's width, in cells."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":85,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.width","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.width","product":"core","slug":"io-github-libtmux-pane_-pane_-width"},{"id":"io.github.libtmux.Pane_.Pane_.height","name":"height","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"raw":"public static Fields.NumberField height()","params":[],"returns":"Fields.NumberField","typeScopeBoundary":true}],"doc":{"summary":"The pane's height, in cells."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":92,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.height","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.height","product":"core","slug":"io-github-libtmux-pane_-pane_-height"},{"id":"io.github.libtmux.Pane_.Pane_.left","name":"left","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"raw":"public static Fields.NumberField left()","params":[],"returns":"Fields.NumberField","typeScopeBoundary":true}],"doc":{"summary":"The column of the pane's left edge in its window."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":99,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.left","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.left","product":"core","slug":"io-github-libtmux-pane_-pane_-left"},{"id":"io.github.libtmux.Pane_.Pane_.top","name":"top","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"raw":"public static Fields.NumberField top()","params":[],"returns":"Fields.NumberField","typeScopeBoundary":true}],"doc":{"summary":"The row of the pane's top edge in its window."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":106,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.top","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.top","product":"core","slug":"io-github-libtmux-pane_-pane_-top"},{"id":"io.github.libtmux.Pane_.Pane_.atTop","name":"atTop","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"raw":"public static Fields.FlagField atTop()","params":[],"returns":"Fields.FlagField","typeScopeBoundary":true}],"doc":{"summary":"Whether the pane touches the top of its window."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":113,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.atTop","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.atTop","product":"core","slug":"io-github-libtmux-pane_-pane_-attop"},{"id":"io.github.libtmux.Pane_.Pane_.atBottom","name":"atBottom","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"raw":"public static Fields.FlagField atBottom()","params":[],"returns":"Fields.FlagField","typeScopeBoundary":true}],"doc":{"summary":"Whether the pane touches the bottom of its window."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":120,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.atBottom","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.atBottom","product":"core","slug":"io-github-libtmux-pane_-pane_-atbottom"},{"id":"io.github.libtmux.Pane_.Pane_.atLeft","name":"atLeft","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"raw":"public static Fields.FlagField atLeft()","params":[],"returns":"Fields.FlagField","typeScopeBoundary":true}],"doc":{"summary":"Whether the pane touches the left of its window."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":127,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.atLeft","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.atLeft","product":"core","slug":"io-github-libtmux-pane_-pane_-atleft"},{"id":"io.github.libtmux.Pane_.Pane_.atRight","name":"atRight","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Pane_.Pane_","signatures":[{"raw":"public static Fields.FlagField atRight()","params":[],"returns":"Fields.FlagField","typeScopeBoundary":true}],"doc":{"summary":"Whether the pane touches the right of its window."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java","line":134,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Pane_.atRight","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Pane_.Pane_.atRight","product":"core","slug":"io-github-libtmux-pane_-pane_-atright"},{"id":"io.github.libtmux.Session_.Session_","name":"Session_","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Typed fields of {@link Session}, for building an expression that can be read as well as run.","body":"Each field exposes only the operators its type supports, so asking a flag to start with a\nstring does not compile. Every field names a tmux format, so a backend model can bind the handle\nbefore translating the expression into tmux's own {@code -f} filter."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Session_.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session_","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session_.Session_","product":"core","slug":"io-github-libtmux-session_-session_"},{"id":"io.github.libtmux.Session_.Session_.id","name":"id","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Session_.Session_","signatures":[{"raw":"public static Fields.TextField id()","params":[],"returns":"Fields.TextField","typeScopeBoundary":true}],"doc":{"summary":"The session id, as text, so it can be compared and listed."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Session_.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session_.id","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session_.Session_.id","product":"core","slug":"io-github-libtmux-session_-session_-id"},{"id":"io.github.libtmux.Session_.Session_.name","name":"name","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Session_.Session_","signatures":[{"raw":"public static Fields.TextField name()","params":[],"returns":"Fields.TextField","typeScopeBoundary":true}],"doc":{"summary":"The session name."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Session_.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session_.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session_.Session_.name","product":"core","slug":"io-github-libtmux-session_-session_-name"},{"id":"io.github.libtmux.Session_.Session_.attached","name":"attached","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Session_.Session_","signatures":[{"raw":"public static Fields.FlagField attached()","params":[],"returns":"Fields.FlagField","typeScopeBoundary":true}],"doc":{"summary":"Whether a client was attached when this was captured."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Session_.java","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session_.attached","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session_.Session_.attached","product":"core","slug":"io-github-libtmux-session_-session_-attached"},{"id":"io.github.libtmux.Session_.Session_.windowCount","name":"windowCount","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Session_.Session_","signatures":[{"raw":"public static Fields.NumberField windowCount()","params":[],"returns":"Fields.NumberField","typeScopeBoundary":true}],"doc":{"summary":"How many windows this session holds."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Session_.java","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session_.windowCount","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session_.Session_.windowCount","product":"core","slug":"io-github-libtmux-session_-session_-windowcount"},{"id":"io.github.libtmux.Session_.Session_.windows","name":"windows","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Session_.Session_","signatures":[{"raw":"public static Fields.ToManyRef windows()","params":[],"returns":"Fields.ToManyRef","typeScopeBoundary":true}],"doc":{"summary":"This session's windows."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Session_.java","line":57,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Session_.windows","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Session_.Session_.windows","product":"core","slug":"io-github-libtmux-session_-session_-windows"},{"id":"io.github.libtmux.Window_.Window_","name":"Window_","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Typed fields of {@link Window}."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_","product":"core","slug":"io-github-libtmux-window_-window_"},{"id":"io.github.libtmux.Window_.Window_.id","name":"id","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"raw":"public static Fields.TextField id()","params":[],"returns":"Fields.TextField","typeScopeBoundary":true}],"doc":{"summary":"The underlying window id, shared by every link to it."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.id","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.id","product":"core","slug":"io-github-libtmux-window_-window_-id"},{"id":"io.github.libtmux.Window_.Window_.name","name":"name","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"raw":"public static Fields.TextField name()","params":[],"returns":"Fields.TextField","typeScopeBoundary":true}],"doc":{"summary":"The window name."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":42,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.name","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.name","product":"core","slug":"io-github-libtmux-window_-window_-name"},{"id":"io.github.libtmux.Window_.Window_.index","name":"index","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"raw":"public static Fields.NumberField index()","params":[],"returns":"Fields.NumberField","typeScopeBoundary":true}],"doc":{"summary":"Where this link sits in its session."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.index","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.index","product":"core","slug":"io-github-libtmux-window_-window_-index"},{"id":"io.github.libtmux.Window_.Window_.active","name":"active","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"raw":"public static Fields.FlagField active()","params":[],"returns":"Fields.FlagField","typeScopeBoundary":true}],"doc":{"summary":"Whether this was its session's active window."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.active","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.active","product":"core","slug":"io-github-libtmux-window_-window_-active"},{"id":"io.github.libtmux.Window_.Window_.linked","name":"linked","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"raw":"public static Fields.FlagField linked()","params":[],"returns":"Fields.FlagField","typeScopeBoundary":true}],"doc":{"summary":"Whether the underlying window is linked into more than one session."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.linked","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.linked","product":"core","slug":"io-github-libtmux-window_-window_-linked"},{"id":"io.github.libtmux.Window_.Window_.width","name":"width","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"raw":"public static Fields.NumberField width()","params":[],"returns":"Fields.NumberField","typeScopeBoundary":true}],"doc":{"summary":"The window's width, in cells."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":70,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.width","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.width","product":"core","slug":"io-github-libtmux-window_-window_-width"},{"id":"io.github.libtmux.Window_.Window_.height","name":"height","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"raw":"public static Fields.NumberField height()","params":[],"returns":"Fields.NumberField","typeScopeBoundary":true}],"doc":{"summary":"The window's height, in cells."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.height","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.height","product":"core","slug":"io-github-libtmux-window_-window_-height"},{"id":"io.github.libtmux.Window_.Window_.paneCount","name":"paneCount","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"raw":"public static Fields.NumberField paneCount()","params":[],"returns":"Fields.NumberField","typeScopeBoundary":true}],"doc":{"summary":"How many panes this link holds."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":84,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.paneCount","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.paneCount","product":"core","slug":"io-github-libtmux-window_-window_-panecount"},{"id":"io.github.libtmux.Window_.Window_.panes","name":"panes","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"raw":"public static Fields.ToManyRef panes()","params":[],"returns":"Fields.ToManyRef","typeScopeBoundary":true}],"doc":{"summary":"This link's panes."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":91,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.panes","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.panes","product":"core","slug":"io-github-libtmux-window_-window_-panes"},{"id":"io.github.libtmux.Window_.Window_.session","name":"session","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.Window_.Window_","signatures":[{"raw":"public static Fields.ToOneRef session()","params":[],"returns":"Fields.ToOneRef","typeScopeBoundary":true}],"doc":{"summary":"The session this link belongs to."},"source":{"file":"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java","line":98,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.Window_.session","namespace":"io.github.libtmux","publicId":"io.github.libtmux.Window_.Window_.session","product":"core","slug":"io-github-libtmux-window_-window_-session"},{"id":"io.github.libtmux.workspace.PaneSpec.PaneSpec","name":"PaneSpec","kind":"class","modifiers":[],"signatures":[{"raw":"public record PaneSpec(List commands)","params":[{"name":"commands","type":"List","doc":"the commands to send, in order; a pane with none is left at its shell"}]}],"typeScopeBoundary":false,"doc":{"summary":"One pane and what to run in it."},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/PaneSpec.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.PaneSpec","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.PaneSpec.PaneSpec","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-panespec-panespec"},{"id":"io.github.libtmux.workspace.PaneSpec.PaneSpec.commands","name":"commands","kind":"method","parent":"io.github.libtmux.workspace.PaneSpec.PaneSpec","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the commands to send, in order; a pane with none is left at its shell"},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/PaneSpec.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.PaneSpec.commands","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.PaneSpec.PaneSpec.commands","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-panespec-panespec-commands"},{"id":"io.github.libtmux.workspace.WindowSpec.WindowSpec","name":"WindowSpec","kind":"class","modifiers":[],"signatures":[{"raw":"public record WindowSpec(String name, Optional layout, List panes)","params":[{"name":"name","type":"String","doc":"the window name"},{"name":"layout","type":"Optional","doc":"the tmux layout to apply once the panes exist, if the file asked for one"},{"name":"panes","type":"List","doc":"the panes to create, in order; a window always has at least one"}]}],"typeScopeBoundary":false,"doc":{"summary":"One window, its panes, and how they are arranged."},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WindowSpec.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WindowSpec","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WindowSpec.WindowSpec","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-windowspec-windowspec"},{"id":"io.github.libtmux.workspace.WindowSpec.WindowSpec.name","name":"name","kind":"method","parent":"io.github.libtmux.workspace.WindowSpec.WindowSpec","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the window name"},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WindowSpec.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WindowSpec.name","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WindowSpec.WindowSpec.name","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-windowspec-windowspec-name"},{"id":"io.github.libtmux.workspace.WindowSpec.WindowSpec.layout","name":"layout","kind":"method","parent":"io.github.libtmux.workspace.WindowSpec.WindowSpec","modifiers":[],"signatures":[{"params":[],"returns":"Optional"}],"doc":{"summary":"the tmux layout to apply once the panes exist, if the file asked for one"},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WindowSpec.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WindowSpec.layout","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WindowSpec.WindowSpec.layout","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-windowspec-windowspec-layout"},{"id":"io.github.libtmux.workspace.WindowSpec.WindowSpec.panes","name":"panes","kind":"method","parent":"io.github.libtmux.workspace.WindowSpec.WindowSpec","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the panes to create, in order; a window always has at least one"},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WindowSpec.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WindowSpec.panes","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WindowSpec.WindowSpec.panes","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-windowspec-windowspec-panes"},{"id":"io.github.libtmux.workspace.Workspace.Workspace","name":"Workspace","kind":"class","modifiers":[],"signatures":[{"raw":"public record Workspace(String sessionName, List windows)","params":[{"name":"sessionName","type":"String","doc":"the session to create"},{"name":"windows","type":"List","doc":"the windows to create, in order"}]}],"typeScopeBoundary":false,"doc":{"summary":"A session described in a file, before anything has been built."},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/Workspace.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.Workspace","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.Workspace.Workspace","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-workspace-workspace"},{"id":"io.github.libtmux.workspace.Workspace.Workspace.sessionName","name":"sessionName","kind":"method","parent":"io.github.libtmux.workspace.Workspace.Workspace","modifiers":[],"signatures":[{"params":[],"returns":"String"}],"doc":{"summary":"the session to create"},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/Workspace.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.Workspace.sessionName","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.Workspace.Workspace.sessionName","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-workspace-workspace-sessionname"},{"id":"io.github.libtmux.workspace.Workspace.Workspace.windows","name":"windows","kind":"method","parent":"io.github.libtmux.workspace.Workspace.Workspace","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"doc":{"summary":"the windows to create, in order"},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/Workspace.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.Workspace.windows","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.Workspace.Workspace.windows","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-workspace-workspace-windows"},{"id":"io.github.libtmux.workspace.WorkspaceApplier.WorkspaceApplier","name":"WorkspaceApplier","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Applies a validated workspace as one session and attempts to remove it after a failure."},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WorkspaceApplier.java","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WorkspaceApplier","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WorkspaceApplier.WorkspaceApplier","product":"workspace","apiScope":"internal","slug":"io-github-libtmux-workspace-workspaceapplier-workspaceapplier"},{"id":"io.github.libtmux.workspace.WorkspaceApplier.WorkspaceApplier.build","name":"build","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.workspace.WorkspaceApplier.WorkspaceApplier","signatures":[{"raw":"static Session build(Server server, Workspace workspace)","params":[{"name":"server","type":"Server"},{"name":"workspace","type":"Workspace"}],"returns":"Session","typeScopeBoundary":true}],"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WorkspaceApplier.java","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WorkspaceApplier.build","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WorkspaceApplier.WorkspaceApplier.build","product":"workspace","apiScope":"internal","slug":"io-github-libtmux-workspace-workspaceapplier-workspaceapplier-build"},{"id":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder","name":"WorkspaceBuilder","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Builds a tmux session from a written description.","body":"Reads the shape of a tmuxp workspace file. Full runtime compatibility with tmuxp is not the\naim; starting from a file somebody already has is.\n\nReading and building are separate. A file that describes something tmux would refuse is\nrejected while it is still text, before any session exists to leave half-built.\n\nThe {@code tmux-workspace} command is a separate implementation with a wider document\nlanguage and its own behaviour around building; see this package's documentation for what\ndiffers. Code against this class for what this class does."},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WorkspaceBuilder.java","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WorkspaceBuilder","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-workspacebuilder-workspacebuilder"},{"id":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder.read","name":"read","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder","signatures":[{"raw":"public static Workspace read(Path file)","params":[{"name":"file","type":"Path"}],"returns":"Workspace","typeScopeBoundary":true}],"doc":{"summary":"Reads a workspace from a file."},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WorkspaceBuilder.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WorkspaceBuilder.read","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder.read","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-workspacebuilder-workspacebuilder-read"},{"id":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder.parse","name":"parse","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder","signatures":[{"raw":"public static Workspace parse(String yaml)","params":[{"name":"yaml","type":"String"}],"returns":"Workspace","typeScopeBoundary":true,"raises":[{"type":"IllegalArgumentException","doc":"if the description is one tmux could not build, including a layout name tmux would not recognise"}]}],"doc":{"summary":"Reads a workspace from YAML text."},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WorkspaceBuilder.java","line":42,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WorkspaceBuilder.parse","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder.parse","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-workspacebuilder-workspacebuilder-parse"},{"id":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder.build","name":"build","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder","signatures":[{"raw":"public static Session build(Server server, Workspace workspace)","params":[{"name":"server","type":"Server"},{"name":"workspace","type":"Workspace"}],"returns":"Session","typeScopeBoundary":true,"returnsDoc":"the session, from a capture taken once everything exists"}],"doc":{"summary":"Creates the described session on a server."},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WorkspaceBuilder.java","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WorkspaceBuilder.build","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder.build","product":"workspace","apiScope":"exported","slug":"io-github-libtmux-workspace-workspacebuilder-workspacebuilder-build"},{"id":"io.github.libtmux.workspace.WorkspaceParser.WorkspaceParser","name":"WorkspaceParser","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Converts the supported YAML shape into immutable workspace values."},"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WorkspaceParser.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WorkspaceParser","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WorkspaceParser.WorkspaceParser","product":"workspace","apiScope":"internal","slug":"io-github-libtmux-workspace-workspaceparser-workspaceparser"},{"id":"io.github.libtmux.workspace.WorkspaceParser.WorkspaceParser.parse","name":"parse","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.workspace.WorkspaceParser.WorkspaceParser","signatures":[{"raw":"static Workspace parse(String yaml)","params":[{"name":"yaml","type":"String"}],"returns":"Workspace","typeScopeBoundary":true}],"source":{"file":"libtmux-workspace/src/main/java/io/github/libtmux/workspace/WorkspaceParser.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.workspace.WorkspaceParser.parse","namespace":"io.github.libtmux.workspace","publicId":"io.github.libtmux.workspace.WorkspaceParser.WorkspaceParser.parse","product":"workspace","apiScope":"internal","slug":"io-github-libtmux-workspace-workspaceparser-workspaceparser-parse"},{"id":"io.github.libtmux.jackson.FilterJson.FilterJson","name":"FilterJson","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The versioned wire form of a filter expression.","body":"Writing and reading both require a model. Expressions hold executable accessors and navigators,\nwhile documents carry only their ids; the model is the authority that binds one to the other.\nRegex operands retain {@link java.util.regex.Pattern} syntax and flag bits.\n\nEverything unrecognised fails. An expression read wrongly does not announce itself — it\nsilently matches the wrong things, and a caller who wanted a filter gets one, just not theirs."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterJson.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterJson","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterJson.FilterJson","product":"core","slug":"io-github-libtmux-jackson-filterjson-filterjson"},{"id":"io.github.libtmux.jackson.FilterJson.FilterJson.SCHEMA","name":"SCHEMA","kind":"attribute","modifiers":["static","readonly"],"parent":"io.github.libtmux.jackson.FilterJson.FilterJson","signatures":[],"typeScopeBoundary":true,"type":"String","value":"\"libtmux.filter/1\"","doc":{"summary":"The schema this version reads and writes. Immutable once published."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterJson.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterJson.SCHEMA","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterJson.FilterJson.SCHEMA","product":"core","slug":"io-github-libtmux-jackson-filterjson-filterjson-schema"},{"id":"io.github.libtmux.jackson.FilterJson.FilterJson.write","name":"write","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.jackson.FilterJson.FilterJson","signatures":[{"raw":"public static ObjectNode write(FilterExpr expression, FilterModel model)","params":[{"name":"expression","type":"FilterExpr"},{"name":"model","type":"FilterModel"}],"returns":"ObjectNode","typeParamNames":["T"],"typeScopeBoundary":true,"typeParams":["T"],"typeParameters":[{"name":"T"}],"raises":[{"type":"SchemaException","doc":"if any field or relation is not the exact handle declared by the model"}]}],"doc":{"summary":"Writes an expression as a document for the model that declared all of its fields and relations."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterJson.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterJson.write","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterJson.FilterJson.write","product":"core","slug":"io-github-libtmux-jackson-filterjson-filterjson-write"},{"id":"io.github.libtmux.jackson.FilterJson.FilterJson.writeString","name":"writeString","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.jackson.FilterJson.FilterJson","signatures":[{"raw":"public static String writeString(FilterExpr expression, FilterModel model)","params":[{"name":"expression","type":"FilterExpr"},{"name":"model","type":"FilterModel"}],"returns":"String","typeParamNames":["T"],"typeScopeBoundary":true,"typeParams":["T"],"typeParameters":[{"name":"T"}]}],"doc":{"summary":"Writes an expression as compact JSON text."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterJson.java","line":55,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterJson.writeString","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterJson.FilterJson.writeString","product":"core","slug":"io-github-libtmux-jackson-filterjson-filterjson-writestring"},{"id":"io.github.libtmux.jackson.FilterJson.FilterJson.read","name":"read","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.jackson.FilterJson.FilterJson","signatures":[{"raw":"public static FilterExpr read(JsonNode document, FilterModel model)","params":[{"name":"document","type":"JsonNode"},{"name":"model","type":"FilterModel"}],"returns":"FilterExpr","typeParamNames":["T"],"typeScopeBoundary":true,"typeParams":["T"],"typeParameters":[{"name":"T"}],"raises":[{"type":"SchemaException","doc":"if the schema version, the model, a field, a relation, an operator or a node shape is not one this version knows"}]}],"doc":{"summary":"Reads a document back as an expression over the given model."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterJson.java","line":65,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterJson.read","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterJson.FilterJson.read","product":"core","slug":"io-github-libtmux-jackson-filterjson-filterjson-read"},{"id":"io.github.libtmux.jackson.FilterJson.FilterJson.readString","name":"readString","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.jackson.FilterJson.FilterJson","signatures":[{"raw":"public static FilterExpr readString(String json, FilterModel model)","params":[{"name":"json","type":"String"},{"name":"model","type":"FilterModel"}],"returns":"FilterExpr","typeParamNames":["T"],"typeScopeBoundary":true,"typeParams":["T"],"typeParameters":[{"name":"T"}]}],"doc":{"summary":"Reads a document from JSON text."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterJson.java","line":80,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterJson.readString","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterJson.FilterJson.readString","product":"core","slug":"io-github-libtmux-jackson-filterjson-filterjson-readstring"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel","name":"FilterModel","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"typeParams":["T"],"typeParamNames":["T"],"typeParameters":[{"name":"T","doc":"the entity this model describes"}],"doc":{"summary":"What a document's field and relation ids mean.","body":"Expressions carry executable field and relation handles, while documents carry only their ids.\nThis model binds those forms and gives each nested relation its target model."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.named","name":"named","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[{"raw":"public static Builder named(String id)","params":[{"name":"id","type":"String"}],"returns":"Builder","typeParamNames":["T"],"typeScopeBoundary":true,"typeParams":["T"],"typeParameters":[{"name":"T"}]},{"raw":"public static Builder named(String id, Class entityType)","params":[{"name":"id","type":"String"},{"name":"entityType","type":"Class"}],"returns":"Builder","typeParamNames":["T"],"typeScopeBoundary":true,"typeParams":["T"],"typeParameters":[{"name":"T"}]}],"doc":{"summary":"Starts a caller-owned model. Its id must identify the caller's namespace."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":39,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.named","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.named","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-named"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.builtIn","name":"builtIn","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[{"raw":"static Builder builtIn(String id)","params":[{"name":"id","type":"String"}],"returns":"Builder","typeParamNames":["T"],"typeScopeBoundary":true,"typeParams":["T"],"typeParameters":[{"name":"T"}]}],"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":57,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.builtIn","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.builtIn","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-builtin"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.id","name":"id","kind":"method","modifiers":[],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[{"raw":"public String id()","params":[],"returns":"String","typeScopeBoundary":false}],"doc":{"summary":"The id documents name this model by."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":66,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.id","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.id","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-id"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.fieldNames","name":"fieldNames","kind":"method","modifiers":[],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[{"raw":"public Set fieldNames()","params":[],"returns":"Set","typeScopeBoundary":false}],"doc":{"summary":"Every field a document may compare on, in declaration order."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":71,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.fieldNames","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.fieldNames","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-fieldnames"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.relationNames","name":"relationNames","kind":"method","modifiers":[],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[{"raw":"public Set relationNames()","params":[],"returns":"Set","typeScopeBoundary":false}],"doc":{"summary":"Every relation a document may navigate."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":76,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.relationNames","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.relationNames","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-relationnames"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.field","name":"field","kind":"method","modifiers":[],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[{"raw":"FieldRef field(String fieldId)","params":[{"name":"fieldId","type":"String"}],"returns":"FieldRef","typeScopeBoundary":false}],"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":82,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.field","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.field","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-field"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.toMany","name":"toMany","kind":"method","modifiers":[],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[{"raw":"Relation toMany(String relation)","params":[{"name":"relation","type":"String"}],"returns":"Relation","typeScopeBoundary":false}],"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":90,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.toMany","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.toMany","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-tomany"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.toOne","name":"toOne","kind":"method","modifiers":[],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[{"raw":"Relation toOne(String relation)","params":[{"name":"relation","type":"String"}],"returns":"Relation","typeScopeBoundary":false}],"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":94,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.toOne","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.toOne","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-toone"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation","name":"Relation","kind":"class","modifiers":[],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[{"raw":"record Relation(\n Fields.@Nullable ToManyRef toMany,\n Fields.@Nullable ToOneRef toOne,\n Supplier> targetModel)","params":[{"name":"toMany","type":"Fields.@Nullable ToManyRef"},{"name":"toOne","type":"Fields.@Nullable ToOneRef"},{"name":"targetModel","type":"Supplier>"}],"typeParamNames":["T","R"],"typeParams":["T","R"],"typeParameters":[{"name":"T"},{"name":"R"}]}],"typeScopeBoundary":true,"typeParams":["T","R"],"typeParamNames":["T","R"],"typeParameters":[{"name":"T"},{"name":"R"}],"doc":{"summary":"A relation handle paired with the model its far side is described by."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":107,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Relation","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-relation"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation.target","name":"target","kind":"method","modifiers":[],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation","signatures":[{"raw":"FilterModel target()","params":[],"returns":"FilterModel","typeScopeBoundary":false}],"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":116,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Relation.target","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation.target","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-relation-target"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation.toMany","name":"toMany","kind":"method","parent":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation","modifiers":[],"signatures":[{"params":[],"returns":"Fields.@Nullable ToManyRef"}],"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Relation.toMany","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation.toMany","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-relation-tomany"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation.toOne","name":"toOne","kind":"method","parent":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation","modifiers":[],"signatures":[{"params":[],"returns":"Fields.@Nullable ToOneRef"}],"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Relation.toOne","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation.toOne","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-relation-toone"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation.targetModel","name":"targetModel","kind":"method","parent":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation","modifiers":[],"signatures":[{"params":[],"returns":"Supplier>"}],"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Relation.targetModel","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Relation.targetModel","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-relation-targetmodel"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder","name":"Builder","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel","signatures":[],"typeScopeBoundary":true,"typeParams":["T"],"typeParamNames":["T"],"typeParameters":[{"name":"T"}],"doc":{"summary":"Collects the exact handles and unique ids a document may name."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":122,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Builder","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-builder"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder.field","name":"field","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder","signatures":[{"raw":"public Builder field(Fields.TextField field)","params":[{"name":"field","type":"Fields.TextField"}],"returns":"Builder","typeScopeBoundary":false},{"raw":"public Builder field(Fields.NumberField field)","params":[{"name":"field","type":"Fields.NumberField"}],"returns":"Builder","typeScopeBoundary":false},{"raw":"public Builder field(Fields.FlagField field)","params":[{"name":"field","type":"Fields.FlagField"}],"returns":"Builder","typeScopeBoundary":false}],"doc":{"summary":"Declares a text field by the handle a metamodel already mints."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":134,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Builder.field","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder.field","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-builder-field"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder.toMany","name":"toMany","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder","signatures":[{"raw":"public Builder toMany(Fields.ToManyRef relation, FilterModel target)","params":[{"name":"relation","type":"Fields.ToManyRef"},{"name":"target","type":"FilterModel"}],"returns":"Builder","typeParamNames":["R"],"typeScopeBoundary":false,"typeParams":["R"],"typeParameters":[{"name":"R"}]},{"raw":"public Builder toMany(Fields.ToManyRef relation, Supplier> target)","params":[{"name":"relation","type":"Fields.ToManyRef"},{"name":"target","type":"Supplier>"}],"returns":"Builder","typeParamNames":["R"],"typeScopeBoundary":false,"typeParams":["R"],"typeParameters":[{"name":"R"}]}],"doc":{"summary":"Declares a to-many relation and the model describing what it reaches."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":149,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Builder.toMany","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder.toMany","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-builder-tomany"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder.toOne","name":"toOne","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder","signatures":[{"raw":"public Builder toOne(Fields.ToOneRef relation, FilterModel target)","params":[{"name":"relation","type":"Fields.ToOneRef"},{"name":"target","type":"FilterModel"}],"returns":"Builder","typeParamNames":["R"],"typeScopeBoundary":false,"typeParams":["R"],"typeParameters":[{"name":"R"}]},{"raw":"public Builder toOne(Fields.ToOneRef relation, Supplier> target)","params":[{"name":"relation","type":"Fields.ToOneRef"},{"name":"target","type":"Supplier>"}],"returns":"Builder","typeParamNames":["R"],"typeScopeBoundary":false,"typeParams":["R"],"typeParameters":[{"name":"R"}]}],"doc":{"summary":"Declares a to-one relation and the model describing what it reaches."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":163,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Builder.toOne","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder.toOne","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-builder-toone"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder.build","name":"build","kind":"method","modifiers":[],"parent":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder","signatures":[{"raw":"public FilterModel build()","params":[],"returns":"FilterModel","typeScopeBoundary":false}],"doc":{"summary":"Builds the model."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/FilterModel.java","line":190,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.FilterModel.Builder.build","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.FilterModel.FilterModel.Builder.build","product":"core","slug":"io-github-libtmux-jackson-filtermodel-filtermodel-builder-build"},{"id":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels","name":"LibTmuxModels","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The wire ids for this library's own entities.","body":"The ids are tmux's format names, which is what makes a document readable by something that is\nnot this library: another implementation already knows what {@code pane_current_command} means."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/LibTmuxModels.java","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.LibTmuxModels","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels","product":"core","slug":"io-github-libtmux-jackson-libtmuxmodels-libtmuxmodels"},{"id":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels.pane","name":"pane","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels","signatures":[{"raw":"public static FilterModel pane()","params":[],"returns":"FilterModel","typeScopeBoundary":true}],"doc":{"summary":"The model documents name {@code pane}."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/LibTmuxModels.java","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.LibTmuxModels.pane","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels.pane","product":"core","slug":"io-github-libtmux-jackson-libtmuxmodels-libtmuxmodels-pane"},{"id":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels.window","name":"window","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels","signatures":[{"raw":"public static FilterModel window()","params":[],"returns":"FilterModel","typeScopeBoundary":true}],"doc":{"summary":"The model documents name {@code window}, reaching panes."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/LibTmuxModels.java","line":67,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.LibTmuxModels.window","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels.window","product":"core","slug":"io-github-libtmux-jackson-libtmuxmodels-libtmuxmodels-window"},{"id":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels.session","name":"session","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels","signatures":[{"raw":"public static FilterModel session()","params":[],"returns":"FilterModel","typeScopeBoundary":true}],"doc":{"summary":"The model documents name {@code session}, reaching windows."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/LibTmuxModels.java","line":72,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.LibTmuxModels.session","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels.session","product":"core","slug":"io-github-libtmux-jackson-libtmuxmodels-libtmuxmodels-session"},{"id":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels.client","name":"client","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels","signatures":[{"raw":"public static FilterModel client()","params":[],"returns":"FilterModel","typeScopeBoundary":true}],"doc":{"summary":"The model documents name {@code client}, reaching its session."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/LibTmuxModels.java","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.LibTmuxModels.client","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels.client","product":"core","slug":"io-github-libtmux-jackson-libtmuxmodels-libtmuxmodels-client"},{"id":"io.github.libtmux.jackson.SchemaException.SchemaException","name":"SchemaException","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"A document could not be read as the expression it claims to be.","body":"Every failure here is a refusal rather than a best effort. An expression read wrongly does not\nannounce itself: it silently matches the wrong things, which is worse than not loading at all. An\n{@link IllegalArgumentException}, since the fault is in the document, not in talking to tmux."},"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/SchemaException.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.SchemaException","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.SchemaException.SchemaException","product":"core","slug":"io-github-libtmux-jackson-schemaexception-schemaexception"},{"id":"io.github.libtmux.jackson.SchemaException.SchemaException.SchemaException","name":"SchemaException","kind":"method","modifiers":[],"parent":"io.github.libtmux.jackson.SchemaException.SchemaException","signatures":[{"raw":"public SchemaException(String message)","params":[{"name":"message","type":"String"}],"typeScopeBoundary":false}],"source":{"file":"libtmux-jackson/src/main/java/io/github/libtmux/jackson/SchemaException.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.jackson.SchemaException.SchemaException","namespace":"io.github.libtmux.jackson","publicId":"io.github.libtmux.jackson.SchemaException.SchemaException.SchemaException","product":"core","slug":"io-github-libtmux-jackson-schemaexception-schemaexception-schemaexception"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","name":"FakeControlClient","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"A {@code tmux -C} client of a {@link FakeTmux}, as the process a control client talks to.","body":"It reads one command line at a time, has the fake answer it, and writes the reply block tmux\nwould: {@code %begin}, the output, then {@code %end} or {@code %error}. Pushed output and\nnotifications are written between replies, never inside one, as tmux writes them. It ends, with\n{@code %exit}, when the fake restarts or the client closes its input."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.FakeControlClient","name":"FakeControlClient","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"raw":"FakeControlClient(Function>, CommandResult> answer)","params":[{"name":"answer","type":"Function>, CommandResult>"}],"typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":39,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.FakeControlClient","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-fakecontrolclient"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.push","name":"push","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"raw":"void push(String line)","params":[{"name":"line","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Writes an unprompted line, such as {@code %output}, between replies."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":55,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.push","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.push","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-push"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.end","name":"end","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"raw":"void end()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Ends the client as a server that went away does."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":60,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.end","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.end","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-end"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.parse","name":"parse","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"raw":"static List> parse(String line)","params":[{"name":"line","type":"String"}],"returns":"List>","typeScopeBoundary":true}],"doc":{"summary":"A command line as tmux's parser reads the ones this library writes: each argument single quoted, a quote as {@code '\\''}, a newline or return as {@code \"\\n\"} or {@code \"\\r\"}, and an unquoted {@code ;} between commands."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":83,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.parse","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.parse","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-parse"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.getOutputStream","name":"getOutputStream","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"raw":"@Override\n public OutputStream getOutputStream()","params":[],"returns":"OutputStream","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":188,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.getOutputStream","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.getOutputStream","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-getoutputstream"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.getInputStream","name":"getInputStream","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"raw":"@Override\n public InputStream getInputStream()","params":[],"returns":"InputStream","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":193,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.getInputStream","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.getInputStream","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-getinputstream"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.getErrorStream","name":"getErrorStream","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"raw":"@Override\n public InputStream getErrorStream()","params":[],"returns":"InputStream","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":198,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.getErrorStream","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.getErrorStream","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-geterrorstream"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.waitFor","name":"waitFor","kind":"method","modifiers":["overload"],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"raw":"@Override\n public int waitFor() throws InterruptedException","params":[],"returns":"int","typeScopeBoundary":false},{"raw":"@Override\n public boolean waitFor(long timeout, TimeUnit unit) throws InterruptedException","params":[{"name":"timeout","type":"long"},{"name":"unit","type":"TimeUnit"}],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":203,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.waitFor","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.waitFor","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-waitfor"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.exitValue","name":"exitValue","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"raw":"@Override\n public int exitValue()","params":[],"returns":"int","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":214,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.exitValue","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.exitValue","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-exitvalue"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.isAlive","name":"isAlive","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"raw":"@Override\n public boolean isAlive()","params":[],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":222,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.isAlive","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.isAlive","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-isalive"},{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.destroy","name":"destroy","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","signatures":[{"raw":"@Override\n public void destroy()","params":[],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeControlClient.java","line":227,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeControlClient.destroy","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient.destroy","product":"core","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient-destroy"},{"id":"io.github.libtmux.junit5.FakePane.FakePane","name":"FakePane","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"One pane in a {@link FakeWindow}."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakePane.java","line":4,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakePane","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakePane.FakePane","product":"core","slug":"io-github-libtmux-junit5-fakepane-fakepane"},{"id":"io.github.libtmux.junit5.FakePane.FakePane.id","name":"id","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakePane.FakePane","signatures":[],"typeScopeBoundary":false,"type":"String","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakePane.java","line":5,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakePane.id","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakePane.FakePane.id","product":"core","slug":"io-github-libtmux-junit5-fakepane-fakepane-id"},{"id":"io.github.libtmux.junit5.FakePane.FakePane.index","name":"index","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakePane.FakePane","signatures":[],"typeScopeBoundary":false,"type":"int","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakePane.java","line":6,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakePane.index","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakePane.FakePane.index","product":"core","slug":"io-github-libtmux-junit5-fakepane-fakepane-index"},{"id":"io.github.libtmux.junit5.FakePane.FakePane.command","name":"command","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakePane.FakePane","signatures":[],"typeScopeBoundary":false,"type":"String","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakePane.java","line":7,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakePane.command","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakePane.FakePane.command","product":"core","slug":"io-github-libtmux-junit5-fakepane-fakepane-command"},{"id":"io.github.libtmux.junit5.FakePane.FakePane.directory","name":"directory","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakePane.FakePane","signatures":[],"typeScopeBoundary":false,"type":"String","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakePane.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakePane.directory","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakePane.FakePane.directory","product":"core","slug":"io-github-libtmux-junit5-fakepane-fakepane-directory"},{"id":"io.github.libtmux.junit5.FakePane.FakePane.pid","name":"pid","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakePane.FakePane","signatures":[],"typeScopeBoundary":false,"type":"long","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakePane.java","line":9,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakePane.pid","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakePane.FakePane.pid","product":"core","slug":"io-github-libtmux-junit5-fakepane-fakepane-pid"},{"id":"io.github.libtmux.junit5.FakePane.FakePane.title","name":"title","kind":"attribute","modifiers":[],"parent":"io.github.libtmux.junit5.FakePane.FakePane","signatures":[],"typeScopeBoundary":false,"type":"String","value":"\"\"","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakePane.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakePane.title","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakePane.FakePane.title","product":"core","slug":"io-github-libtmux-junit5-fakepane-fakepane-title"},{"id":"io.github.libtmux.junit5.FakePane.FakePane.FakePane","name":"FakePane","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakePane.FakePane","signatures":[{"raw":"FakePane(String id, int index, String command, String directory, long pid)","params":[{"name":"id","type":"String"},{"name":"index","type":"int"},{"name":"command","type":"String"},{"name":"directory","type":"String"},{"name":"pid","type":"long"}],"typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakePane.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakePane.FakePane","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakePane.FakePane.FakePane","product":"core","slug":"io-github-libtmux-junit5-fakepane-fakepane-fakepane"},{"id":"io.github.libtmux.junit5.FakeSession.FakeSession","name":"FakeSession","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"One session in a {@link FakeTmux}, holding its windows in creation order."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeSession.java","line":7,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeSession","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeSession.FakeSession","product":"core","slug":"io-github-libtmux-junit5-fakesession-fakesession"},{"id":"io.github.libtmux.junit5.FakeSession.FakeSession.id","name":"id","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakeSession.FakeSession","signatures":[],"typeScopeBoundary":false,"type":"String","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeSession.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeSession.id","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeSession.FakeSession.id","product":"core","slug":"io-github-libtmux-junit5-fakesession-fakesession-id"},{"id":"io.github.libtmux.junit5.FakeSession.FakeSession.name","name":"name","kind":"attribute","modifiers":[],"parent":"io.github.libtmux.junit5.FakeSession.FakeSession","signatures":[],"typeScopeBoundary":false,"type":"String","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeSession.java","line":9,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeSession.name","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeSession.FakeSession.name","product":"core","slug":"io-github-libtmux-junit5-fakesession-fakesession-name"},{"id":"io.github.libtmux.junit5.FakeSession.FakeSession.windows","name":"windows","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakeSession.FakeSession","signatures":[],"typeScopeBoundary":false,"type":"List","value":"new ArrayList<>()","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeSession.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeSession.windows","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeSession.FakeSession.windows","product":"core","slug":"io-github-libtmux-junit5-fakesession-fakesession-windows"},{"id":"io.github.libtmux.junit5.FakeSession.FakeSession.FakeSession","name":"FakeSession","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeSession.FakeSession","signatures":[{"raw":"FakeSession(String id, String name)","params":[{"name":"id","type":"String"},{"name":"name","type":"String"}],"typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeSession.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeSession.FakeSession","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeSession.FakeSession.FakeSession","product":"core","slug":"io-github-libtmux-junit5-fakesession-fakesession-fakesession"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux","name":"FakeTmux","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"A tmux server that is not there, for testing code that uses this library without starting one.","body":"It answers the way tmux answers, not the way a stub would: a listing is rendered from the\ntemplate the library sends, so a snapshot of a fake server is a real snapshot and every handle\nworks; a handle command is fenced on the server's identity and refused once the fake is replaced,\nas tmux refuses it; a group stops at its first failure. What it models is the hierarchy —\nsessions, windows, panes and their names and titles — and what each pane shows. What it does not\nmodel is a shell: keys sent to a pane are recorded, not run, and a pane shows what the test says.\n\nFor behaviour that depends on tmux itself — what a release does with a flag, how a real shell\nechoes — test against real tmux with {@link TmuxExtension} instead. This is for code whose\ninterest in tmux ends at the calls it makes.","examples":[{"lang":"java","code":"FakeTmux tmux = new FakeTmux();\nPaneId editor = tmux.addSession(\"work\");\ntmux.show(editor, \"$ make\", \"make: Nothing to be done for 'all'.\");\n\ntry (Server server = tmux.server()) {\n Pane pane = server.pane(editor).orElseThrow();\n pane.capture(); // → [$ make, make: Nothing to be done for 'all'.]\n pane.sendLine(\"make test\");\n}\n\ntmux.sent(); // every command, as the library sent it"}]},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.FakeTmux","name":"FakeTmux","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"raw":"public FakeTmux()","params":[],"typeScopeBoundary":false}],"doc":{"summary":"A fake server with no sessions, as tmux is before anything has been created."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":171,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.FakeTmux","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.FakeTmux","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-faketmux"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.server","name":"server","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"raw":"public Server server()","params":[],"returns":"Server","typeScopeBoundary":false}],"doc":{"summary":"A server this transport answers for.","body":"Borrowed rather than owned, so closing it leaves this fake as it is and a test can inspect\nit afterwards."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":185,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.server","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.server","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-server"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.addSession","name":"addSession","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"raw":"public synchronized PaneId addSession(String name)","params":[{"name":"name","type":"String"}],"returns":"PaneId","typeScopeBoundary":false,"returnsDoc":"the pane, so a test can say what it shows"}],"doc":{"summary":"Adds a session with one window and one pane running {@code sh}, as {@code new-session} makes."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":198,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.addSession","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.addSession","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-addsession"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.restart","name":"restart","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"raw":"public synchronized void restart()","params":[],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Replaces the server, as a restart does: a new process, and nothing in it.","body":"Handles made before this are refused from now on, which is what a test of code that has to\nsurvive a server restarting under it needs to see."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":209,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.restart","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.restart","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-restart"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.show","name":"show","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"raw":"public synchronized void show(PaneId pane, String... lines)","params":[{"name":"pane","type":"PaneId"},{"name":"lines","type":"String","variadic":"positional"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"What the pane shows, one element per line, which is what capturing it answers."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":219,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.show","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.show","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-show"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.sent","name":"sent","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"raw":"public synchronized List> sent()","params":[],"returns":"List>","typeScopeBoundary":false}],"doc":{"summary":"Every command the library sent, in order, each as the words tmux would have read.","body":"Unwrapped: a command the library fenced on the server's identity or sent in a group is here\nas itself, and the plumbing that carried it is not."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":229,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.sent","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.sent","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-sent"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.sessions","name":"sessions","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"raw":"public synchronized List sessions()","params":[],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"The sessions the fake holds now, by id."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":234,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.sessions","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.sessions","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-sessions"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.execute","name":"execute","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"raw":"@Override\n public synchronized CommandResult execute(CommandRequest request)","params":[{"name":"request","type":"CommandRequest"}],"returns":"CommandResult","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":238,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.execute","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.execute","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-execute"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.controlCarrier","name":"controlCarrier","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"raw":"@Override\n public Optional controlCarrier()","params":[],"returns":"Optional","typeScopeBoundary":false}],"doc":{"summary":"Control clients of this fake: {@code server.control(session)} attaches one, its commands are answered as this fake answers any other, and it hears what {@link #output} and {@link #notify} push. A restart ends every client attached, as a server that went away does."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":248,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.controlCarrier","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.controlCarrier","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-controlcarrier"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.output","name":"output","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"raw":"public synchronized void output(PaneId pane, String text)","params":[{"name":"pane","type":"PaneId"},{"name":"text","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Pushes what a pane wrote to every attached control client, as tmux's {@code %output}: a control byte or a backslash as three octal digits, and the rest as it is."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":267,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.output","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.output","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-output"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.notify","name":"notify","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"raw":"public synchronized void notify(String line)","params":[{"name":"line","type":"String"}],"returns":"void","typeScopeBoundary":false}],"doc":{"summary":"Pushes a notification line, such as {@code %window-renamed @1 logs}, to every attached client."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":285,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.notify","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.notify","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-notify"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeTmux.FakeTmux","signatures":[{"raw":"@Override\n public void close()","params":[],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeTmux.java","line":294,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeTmux.close","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeTmux.FakeTmux.close","product":"core","slug":"io-github-libtmux-junit5-faketmux-faketmux-close"},{"id":"io.github.libtmux.junit5.FakeWindow.FakeWindow","name":"FakeWindow","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"One window in a {@link FakeSession}, holding its panes in creation order."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeWindow.java","line":7,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeWindow","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeWindow.FakeWindow","product":"core","slug":"io-github-libtmux-junit5-fakewindow-fakewindow"},{"id":"io.github.libtmux.junit5.FakeWindow.FakeWindow.id","name":"id","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakeWindow.FakeWindow","signatures":[],"typeScopeBoundary":false,"type":"String","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeWindow.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeWindow.id","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeWindow.FakeWindow.id","product":"core","slug":"io-github-libtmux-junit5-fakewindow-fakewindow-id"},{"id":"io.github.libtmux.junit5.FakeWindow.FakeWindow.index","name":"index","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakeWindow.FakeWindow","signatures":[],"typeScopeBoundary":false,"type":"int","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeWindow.java","line":9,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeWindow.index","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeWindow.FakeWindow.index","product":"core","slug":"io-github-libtmux-junit5-fakewindow-fakewindow-index"},{"id":"io.github.libtmux.junit5.FakeWindow.FakeWindow.name","name":"name","kind":"attribute","modifiers":[],"parent":"io.github.libtmux.junit5.FakeWindow.FakeWindow","signatures":[],"typeScopeBoundary":false,"type":"String","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeWindow.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeWindow.name","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeWindow.FakeWindow.name","product":"core","slug":"io-github-libtmux-junit5-fakewindow-fakewindow-name"},{"id":"io.github.libtmux.junit5.FakeWindow.FakeWindow.active","name":"active","kind":"attribute","modifiers":[],"parent":"io.github.libtmux.junit5.FakeWindow.FakeWindow","signatures":[{"raw":"FakePane active()","params":[],"returns":"FakePane","typeScopeBoundary":false}],"typeScopeBoundary":false,"type":"boolean","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeWindow.java","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeWindow.active","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeWindow.FakeWindow.active","product":"core","slug":"io-github-libtmux-junit5-fakewindow-fakewindow-active"},{"id":"io.github.libtmux.junit5.FakeWindow.FakeWindow.panes","name":"panes","kind":"attribute","modifiers":["readonly"],"parent":"io.github.libtmux.junit5.FakeWindow.FakeWindow","signatures":[],"typeScopeBoundary":false,"type":"List","value":"new ArrayList<>()","source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeWindow.java","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeWindow.panes","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeWindow.FakeWindow.panes","product":"core","slug":"io-github-libtmux-junit5-fakewindow-fakewindow-panes"},{"id":"io.github.libtmux.junit5.FakeWindow.FakeWindow.FakeWindow","name":"FakeWindow","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.FakeWindow.FakeWindow","signatures":[{"raw":"FakeWindow(String id, int index, String name)","params":[{"name":"id","type":"String"},{"name":"index","type":"int"},{"name":"name","type":"String"}],"typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/FakeWindow.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.FakeWindow.FakeWindow","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.FakeWindow.FakeWindow.FakeWindow","product":"core","slug":"io-github-libtmux-junit5-fakewindow-fakewindow-fakewindow"},{"id":"io.github.libtmux.junit5.Flags.Flags","name":"Flags","kind":"class","modifiers":[],"signatures":[{"raw":"record Flags(Map values, Set switches, List positional)","params":[{"name":"values","type":"Map"},{"name":"switches","type":"Set"},{"name":"positional","type":"List"}]}],"typeScopeBoundary":false,"doc":{"summary":"A command's flags and the words after them, read as tmux's argument parser reads them."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Flags.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Flags","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Flags.Flags","product":"core","slug":"io-github-libtmux-junit5-flags-flags"},{"id":"io.github.libtmux.junit5.Flags.Flags.parse","name":"parse","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.Flags.Flags","signatures":[{"raw":"static Flags parse(List argv)","params":[{"name":"argv","type":"List"}],"returns":"Flags","typeScopeBoundary":true}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Flags.java","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Flags.parse","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Flags.Flags.parse","product":"core","slug":"io-github-libtmux-junit5-flags-flags-parse"},{"id":"io.github.libtmux.junit5.Flags.Flags.has","name":"has","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.Flags.Flags","signatures":[{"raw":"boolean has(String flag)","params":[{"name":"flag","type":"String"}],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Flags.java","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Flags.has","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Flags.Flags.has","product":"core","slug":"io-github-libtmux-junit5-flags-flags-has"},{"id":"io.github.libtmux.junit5.Flags.Flags.value","name":"value","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.Flags.Flags","signatures":[{"raw":"@Nullable\n String value(String flag)","params":[{"name":"flag","type":"String"}],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Flags.java","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Flags.value","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Flags.Flags.value","product":"core","slug":"io-github-libtmux-junit5-flags-flags-value"},{"id":"io.github.libtmux.junit5.Flags.Flags.values","name":"values","kind":"method","parent":"io.github.libtmux.junit5.Flags.Flags","modifiers":[],"signatures":[{"params":[],"returns":"Map"}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Flags.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Flags.values","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Flags.Flags.values","product":"core","slug":"io-github-libtmux-junit5-flags-flags-values"},{"id":"io.github.libtmux.junit5.Flags.Flags.switches","name":"switches","kind":"method","parent":"io.github.libtmux.junit5.Flags.Flags","modifiers":[],"signatures":[{"params":[],"returns":"Set"}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Flags.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Flags.switches","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Flags.Flags.switches","product":"core","slug":"io-github-libtmux-junit5-flags-flags-switches"},{"id":"io.github.libtmux.junit5.Flags.Flags.positional","name":"positional","kind":"method","parent":"io.github.libtmux.junit5.Flags.Flags","modifiers":[],"signatures":[{"params":[],"returns":"List"}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Flags.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Flags.positional","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Flags.Flags.positional","product":"core","slug":"io-github-libtmux-junit5-flags-flags-positional"},{"id":"io.github.libtmux.junit5.Formats.Formats","name":"Formats","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"The part of tmux's format language the library sends: variables, comparisons, {@code &&} and {@code ||}, {@code ?} conditionals, and the {@code W:} and {@code P:} loops."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Formats.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Formats","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Formats.Formats","product":"core","slug":"io-github-libtmux-junit5-formats-formats"},{"id":"io.github.libtmux.junit5.Formats.Formats.Scope","name":"Scope","kind":"interface","modifiers":[],"parent":"io.github.libtmux.junit5.Formats.Formats","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"What a format is expanded against: a row's variables, and the rows a loop visits."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Formats.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Formats.Scope","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Formats.Formats.Scope","product":"core","slug":"io-github-libtmux-junit5-formats-formats-scope"},{"id":"io.github.libtmux.junit5.Formats.Formats.Scope.get","name":"get","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.Formats.Formats.Scope","signatures":[{"raw":"@Nullable\n String get(String variable);","params":[{"name":"variable","type":"String"}],"returns":"String","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Formats.java","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Formats.Scope.get","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Formats.Formats.Scope.get","product":"core","slug":"io-github-libtmux-junit5-formats-formats-scope-get"},{"id":"io.github.libtmux.junit5.Formats.Formats.Scope.windows","name":"windows","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.Formats.Formats.Scope","signatures":[{"raw":"List windows();","params":[],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"The windows of this row's session, each at its active pane."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Formats.java","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Formats.Scope.windows","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Formats.Formats.Scope.windows","product":"core","slug":"io-github-libtmux-junit5-formats-formats-scope-windows"},{"id":"io.github.libtmux.junit5.Formats.Formats.Scope.panes","name":"panes","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.Formats.Formats.Scope","signatures":[{"raw":"List panes();","params":[],"returns":"List","typeScopeBoundary":false}],"doc":{"summary":"The panes of this row's window."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Formats.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Formats.Scope.panes","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Formats.Formats.Scope.panes","product":"core","slug":"io-github-libtmux-junit5-formats-formats-scope-panes"},{"id":"io.github.libtmux.junit5.Formats.Formats.literal","name":"literal","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.Formats.Formats","signatures":[{"raw":"static String literal(String value)","params":[{"name":"value","type":"String"}],"returns":"String","typeScopeBoundary":true}],"doc":{"summary":"Undoes {@code TmuxFormats.literal}: tmux reads {@code ##} in a format as one {@code #}."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Formats.java","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Formats.literal","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Formats.Formats.literal","product":"core","slug":"io-github-libtmux-junit5-formats-formats-literal"},{"id":"io.github.libtmux.junit5.Formats.Formats.expand","name":"expand","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.junit5.Formats.Formats","signatures":[{"raw":"static String expand(String format, Function variables)","params":[{"name":"format","type":"String"},{"name":"variables","type":"Function"}],"returns":"String","typeScopeBoundary":true},{"raw":"static String expand(String format, Scope variables)","params":[{"name":"format","type":"String"},{"name":"variables","type":"Scope"}],"returns":"String","typeScopeBoundary":true}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Formats.java","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Formats.expand","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Formats.Formats.expand","product":"core","slug":"io-github-libtmux-junit5-formats-formats-expand"},{"id":"io.github.libtmux.junit5.Formats.Formats.truthy","name":"truthy","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.Formats.Formats","signatures":[{"raw":"static boolean truthy(String value)","params":[{"name":"value","type":"String"}],"returns":"boolean","typeScopeBoundary":true}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Formats.java","line":177,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Formats.truthy","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Formats.Formats.truthy","product":"core","slug":"io-github-libtmux-junit5-formats-formats-truthy"},{"id":"io.github.libtmux.junit5.Groups.Groups","name":"Groups","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Reads a command group the way tmux's command parser reads it: words in single quotes, a quote spelled {@code '\\''}, a line break spelled {@code \"\\n\"}, commands separated by {@code ;}."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Groups.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Groups","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Groups.Groups","product":"core","slug":"io-github-libtmux-junit5-groups-groups"},{"id":"io.github.libtmux.junit5.Groups.Groups.parse","name":"parse","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.Groups.Groups","signatures":[{"raw":"static List> parse(String text)","params":[{"name":"text","type":"String"}],"returns":"List>","typeScopeBoundary":true}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Groups.java","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Groups.parse","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Groups.Groups.parse","product":"core","slug":"io-github-libtmux-junit5-groups-groups-parse"},{"id":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture","name":"NamedServerFixture","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Owns the safe teardown of a tmux server addressed by socket name."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/NamedServerFixture.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.NamedServerFixture","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture","product":"core","slug":"io-github-libtmux-junit5-namedserverfixture-namedserverfixture"},{"id":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture.own","name":"own","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture","signatures":[{"raw":"public static NamedServerFixture own(Server server, String expectedName, Path quarantine) throws IOException","params":[{"name":"server","type":"Server","doc":"the server this test started"},{"name":"expectedName","type":"String","doc":"the exact socket name the test supplied to tmux"},{"name":"quarantine","type":"Path","doc":"the {@code TMUX_TMPDIR} assigned to this test task"}],"returns":"NamedServerFixture","typeScopeBoundary":true,"returnsDoc":"cleanup bound to the reported process, path, and socket inode","raises":[{"type":"IOException","doc":"if the endpoint cannot be inspected"}]},{"raw":"public static NamedServerFixture own(Server server, Path expectedSocket, Path quarantine) throws IOException","params":[{"name":"server","type":"Server","doc":"the server this test started"},{"name":"expectedSocket","type":"Path","doc":"the exact socket path the test supplied to tmux"},{"name":"quarantine","type":"Path","doc":"the owned root that must contain the socket"}],"returns":"NamedServerFixture","typeScopeBoundary":true,"returnsDoc":"cleanup bound to the reported process, path, and socket inode","raises":[{"type":"IOException","doc":"if the endpoint cannot be inspected"}]}],"doc":{"summary":"Authenticates a live named server and takes responsibility for ending it."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/NamedServerFixture.java","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.NamedServerFixture.own","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture.own","product":"core","slug":"io-github-libtmux-junit5-namedserverfixture-namedserverfixture-own"},{"id":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture.socket","name":"socket","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture","signatures":[{"raw":"public Path socket()","params":[],"returns":"Path","typeScopeBoundary":false}],"doc":{"summary":"Returns the exact socket path authenticated when ownership was taken."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/NamedServerFixture.java","line":117,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.NamedServerFixture.socket","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture.socket","product":"core","slug":"io-github-libtmux-junit5-namedserverfixture-namedserverfixture-socket"},{"id":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture","signatures":[{"raw":"@Override\n public synchronized void close() throws IOException","params":[],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/NamedServerFixture.java","line":121,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.NamedServerFixture.close","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture.close","product":"core","slug":"io-github-libtmux-junit5-namedserverfixture-namedserverfixture-close"},{"id":"io.github.libtmux.junit5.Target.Target","name":"Target","kind":"class","modifiers":[],"signatures":[{"raw":"record Target(FakeSession session, FakeWindow window, FakePane pane)","params":[{"name":"session","type":"FakeSession"},{"name":"window","type":"FakeWindow"},{"name":"pane","type":"FakePane"}]}],"typeScopeBoundary":false,"doc":{"summary":"A session, one of its windows, and one of that window's panes: what a command is scoped to."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Target.java","line":8,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Target","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Target.Target","product":"core","slug":"io-github-libtmux-junit5-target-target"},{"id":"io.github.libtmux.junit5.Target.Target.active","name":"active","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.Target.Target","signatures":[{"raw":"static Optional active(List sessions)","params":[{"name":"sessions","type":"List"}],"returns":"Optional","typeScopeBoundary":true}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Target.java","line":10,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Target.active","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Target.Target.active","product":"core","slug":"io-github-libtmux-junit5-target-target-active"},{"id":"io.github.libtmux.junit5.Target.Target.resolve","name":"resolve","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.Target.Target","signatures":[{"raw":"static Optional resolve(List sessions, @Nullable String spec)","params":[{"name":"sessions","type":"List"},{"name":"spec","type":"String"}],"returns":"Optional","typeScopeBoundary":true}],"doc":{"summary":"Resolves {@code $id}, {@code @id}, {@code %id} and {@code =name}, with any trailing separator."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Target.java","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Target.resolve","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Target.Target.resolve","product":"core","slug":"io-github-libtmux-junit5-target-target-resolve"},{"id":"io.github.libtmux.junit5.Target.Target.session","name":"session","kind":"method","parent":"io.github.libtmux.junit5.Target.Target","modifiers":[],"signatures":[{"params":[],"returns":"FakeSession"}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Target.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Target.session","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Target.Target.session","product":"core","slug":"io-github-libtmux-junit5-target-target-session"},{"id":"io.github.libtmux.junit5.Target.Target.window","name":"window","kind":"method","parent":"io.github.libtmux.junit5.Target.Target","modifiers":[],"signatures":[{"params":[],"returns":"FakeWindow"}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Target.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Target.window","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Target.Target.window","product":"core","slug":"io-github-libtmux-junit5-target-target-window"},{"id":"io.github.libtmux.junit5.Target.Target.pane","name":"pane","kind":"method","parent":"io.github.libtmux.junit5.Target.Target","modifiers":[],"signatures":[{"params":[],"returns":"FakePane"}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/Target.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.Target.pane","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.Target.Target.pane","product":"core","slug":"io-github-libtmux-junit5-target-target-pane"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","name":"TmuxExtension","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Gives each test its own tmux server and guarantees it is gone afterwards.","body":"All state lives in the extension store, never in fields. JUnit reuses one declaratively\nregistered extension instance for every test in a class, so a field is shared state the moment\ntests run in parallel, and one test's teardown then reaches another test's server.\n\nThe server is started eagerly, before the test body, and the aggregate that owns it is\nregistered before any process exists. Registering afterwards leaves a window in which a failure\npartway through setup leaks a running tmux that nothing is left holding.\n\nTeardown is driven from a lifecycle callback and the aggregate is also {@link AutoCloseable}\nfor the framework's own store handling. Relying on store auto-close alone is a silent dependency\non a configuration property: with it disabled that design releases nothing and reports nothing.\nThe aggregate closes exactly once, so either path alone is sufficient."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.fixtureRoot","name":"fixtureRoot","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","signatures":[{"raw":"static Path fixtureRoot()","params":[],"returns":"Path","typeScopeBoundary":true}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":114,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.fixtureRoot","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.fixtureRoot","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-fixtureroot"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.reapAbandoned","name":"reapAbandoned","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","signatures":[{"raw":"static int reapAbandoned(Path root)","params":[{"name":"root","type":"Path"}],"returns":"int","typeScopeBoundary":true}],"doc":{"summary":"Ends every tmux server under {@code root} whose owning JVM is gone, and answers how many ended. Runs while other runs are using the same root, so it may only touch abandoned servers."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":122,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.reapAbandoned","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.reapAbandoned","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-reapabandoned"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.startOf","name":"startOf","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","signatures":[{"raw":"static Optional startOf(long pid)","params":[{"name":"pid","type":"long"}],"returns":"Optional","typeScopeBoundary":true}],"doc":{"summary":"When a process started, in a form every JVM on this machine reads the same way: the kernel's own ticks since boot on Linux, and the platform's start instant elsewhere."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":228,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.startOf","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.startOf","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-startof"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.deleteTree","name":"deleteTree","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","signatures":[{"raw":"static void deleteTree(Path root)","params":[{"name":"root","type":"Path"}],"returns":"void","typeScopeBoundary":true}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":255,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.deleteTree","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.deleteTree","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-deletetree"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.beforeEach","name":"beforeEach","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","signatures":[{"raw":"@Override\n public void beforeEach(ExtensionContext context)","params":[{"name":"context","type":"ExtensionContext"}],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":272,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.beforeEach","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.beforeEach","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-beforeeach"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.supportsParameter","name":"supportsParameter","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","signatures":[{"raw":"@Override\n public boolean supportsParameter(ParameterContext parameter, ExtensionContext context)","params":[{"name":"parameter","type":"ParameterContext"},{"name":"context","type":"ExtensionContext"}],"returns":"boolean","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":277,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.supportsParameter","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.supportsParameter","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-supportsparameter"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.resolveParameter","name":"resolveParameter","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","signatures":[{"raw":"@Override\n public Object resolveParameter(ParameterContext parameter, ExtensionContext context)","params":[{"name":"parameter","type":"ParameterContext"},{"name":"context","type":"ExtensionContext"}],"returns":"Object","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":284,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.resolveParameter","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.resolveParameter","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-resolveparameter"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.afterEach","name":"afterEach","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","signatures":[{"raw":"@Override\n public void afterEach(ExtensionContext context)","params":[{"name":"context","type":"ExtensionContext"}],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":292,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.afterEach","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.afterEach","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-aftereach"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture","name":"Fixture","kind":"class","modifiers":["static","readonly"],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","signatures":[],"typeScopeBoundary":true,"doc":{"summary":"One test's server, socket and directory, released exactly once."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":309,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.Fixture","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-fixture"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.start","name":"start","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture","signatures":[{"raw":"synchronized void start()","params":[],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":320,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.Fixture.start","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.start","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-fixture-start"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.server","name":"server","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture","signatures":[{"raw":"Server server()","params":[],"returns":"Server","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":370,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.Fixture.server","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.server","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-fixture-server"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.socket","name":"socket","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture","signatures":[{"raw":"Path socket()","params":[],"returns":"Path","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":378,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.Fixture.socket","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.socket","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-fixture-socket"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.close","name":"close","kind":"method","modifiers":[],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture","signatures":[{"raw":"@Override\n public synchronized void close()","params":[],"returns":"void","typeScopeBoundary":false}],"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":386,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.Fixture.close","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.close","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-fixture-close"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.awaitExit","name":"awaitExit","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture","signatures":[{"raw":"static boolean awaitExit(Server server)","params":[{"name":"server","type":"Server"}],"returns":"boolean","typeScopeBoundary":true},{"raw":"static boolean awaitExit(Server server, long timeoutMillis)","params":[{"name":"server","type":"Server"},{"name":"timeoutMillis","type":"long"}],"returns":"boolean","typeScopeBoundary":true}],"doc":{"summary":"Exit is proved by asking, not assumed from a kill that may have raced."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxExtension.java","line":415,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxExtension.Fixture.awaitExit","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension.Fixture.awaitExit","product":"core","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension-fixture-awaitexit"},{"id":"io.github.libtmux.junit5.TmuxSocketPath.TmuxSocketPath","name":"TmuxSocketPath","kind":"class","modifiers":[],"signatures":[{"raw":"public record TmuxSocketPath(Path path)","params":[{"name":"path","type":"Path","doc":"the exact socket path this test's tmux was started with"}]}],"typeScopeBoundary":false,"doc":{"summary":"The socket a fixture server is listening on.","body":"A distinct type rather than a bare {@link Path} so the extension can resolve it without\nclaiming every {@code Path} parameter a test might want from some other extension."},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxSocketPath.java","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxSocketPath","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxSocketPath.TmuxSocketPath","product":"core","slug":"io-github-libtmux-junit5-tmuxsocketpath-tmuxsocketpath"},{"id":"io.github.libtmux.junit5.TmuxSocketPath.TmuxSocketPath.path","name":"path","kind":"method","parent":"io.github.libtmux.junit5.TmuxSocketPath.TmuxSocketPath","modifiers":[],"signatures":[{"params":[],"returns":"Path"}],"doc":{"summary":"the exact socket path this test's tmux was started with"},"source":{"file":"libtmux-junit5/src/main/java/io/github/libtmux/junit5/TmuxSocketPath.java","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.junit5.TmuxSocketPath.path","namespace":"io.github.libtmux.junit5","publicId":"io.github.libtmux.junit5.TmuxSocketPath.TmuxSocketPath.path","product":"core","slug":"io-github-libtmux-junit5-tmuxsocketpath-tmuxsocketpath-path"},{"id":"io.github.libtmux.mcp.Main.Main","name":"Main","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Runs the tmux MCP server over stdin and stdout.","body":"An MCP client launches this as a subprocess and speaks JSON-RPC over its standard streams, so\n**nothing may write to stdout but the protocol**. Diagnostics go to stderr, which the\nclient is free to log or discard.\n\nWhich tmux server to expose is chosen the same way the library chooses it: a socket path, a\nsocket name, or tmux's own default.\n\nThe unordered toolset and named-tool environment variables resolve one immutable surface\nbefore tmux is opened. A tool outside it is neither listed nor callable.","examples":[{"lang":"java","code":"libtmux-mcp --socket /run/user/1000/tmux/default\nlibtmux-mcp --socket-name work --tmux /usr/local/bin/tmux"}]},"source":{"file":"libtmux-mcp/src/main/java/io/github/libtmux/mcp/Main.java","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.mcp.Main","namespace":"io.github.libtmux.mcp","publicId":"io.github.libtmux.mcp.Main.Main","product":"mcp","apiScope":"exported","slug":"io-github-libtmux-mcp-main-main"},{"id":"io.github.libtmux.mcp.Main.Main.main","name":"main","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.mcp.Main.Main","signatures":[{"raw":"public static void main(String[] args)","params":[{"name":"args","type":"String[]","doc":"{@code --socket PATH}, {@code --socket-name NAME}, {@code --tmux BINARY}"}],"returns":"void","typeScopeBoundary":true}],"doc":{"summary":"Serves a tmux server over stdin and stdout until the client closes them."},"source":{"file":"libtmux-mcp/src/main/java/io/github/libtmux/mcp/Main.java","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.mcp.Main.main","namespace":"io.github.libtmux.mcp","publicId":"io.github.libtmux.mcp.Main.Main.main","product":"mcp","apiScope":"exported","slug":"io-github-libtmux-mcp-main-main-main"},{"id":"io.github.libtmux.mcp.Main.Main.configure","name":"configure","kind":"method","modifiers":["static","overload"],"parent":"io.github.libtmux.mcp.Main.Main","signatures":[{"raw":"static ServerConfig configure(List args)","params":[{"name":"args","type":"List"}],"returns":"ServerConfig","typeScopeBoundary":true},{"raw":"static ServerConfig configure(List args, Map environment)","params":[{"name":"args","type":"List"},{"name":"environment","type":"Map"}],"returns":"ServerConfig","typeScopeBoundary":true}],"source":{"file":"libtmux-mcp/src/main/java/io/github/libtmux/mcp/Main.java","line":76,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.mcp.Main.configure","namespace":"io.github.libtmux.mcp","publicId":"io.github.libtmux.mcp.Main.Main.configure","product":"mcp","apiScope":"exported","slug":"io-github-libtmux-mcp-main-main-configure"},{"id":"io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer","name":"TmuxMcpServer","kind":"class","modifiers":["readonly"],"signatures":[],"typeScopeBoundary":false,"doc":{"summary":"Exposes a tmux server to a model over the Model Context Protocol.","body":"Thin by design. What the tools do lives in {@link Catalog} and the classes it names, which is\nwhat gets tested against real tmux; this class describes them to a client and turns their answers\ninto protocol.\n\nThe SDK dispatches synchronous handlers on its bounded worker scheduler, not the transport I/O\nthread. Core operations remain typed and synchronous; wait and channel operations retain their\nown cancellation and timeout contracts."},"source":{"file":"libtmux-mcp/src/main/java/io/github/libtmux/mcp/TmuxMcpServer.java","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.mcp.TmuxMcpServer","namespace":"io.github.libtmux.mcp","publicId":"io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer","product":"mcp","apiScope":"exported","slug":"io-github-libtmux-mcp-tmuxmcpserver-tmuxmcpserver"},{"id":"io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer.overStdio","name":"overStdio","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer","signatures":[{"raw":"public static McpSyncServer overStdio(Server server)","params":[{"name":"server","type":"Server"}],"returns":"McpSyncServer","typeScopeBoundary":true}],"doc":{"summary":"Serves a tmux server over stdin and stdout, which is how an MCP client launches a tool."},"source":{"file":"libtmux-mcp/src/main/java/io/github/libtmux/mcp/TmuxMcpServer.java","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.mcp.TmuxMcpServer.overStdio","namespace":"io.github.libtmux.mcp","publicId":"io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer.overStdio","product":"mcp","apiScope":"exported","slug":"io-github-libtmux-mcp-tmuxmcpserver-tmuxmcpserver-overstdio"},{"id":"io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer.serving","name":"serving","kind":"method","modifiers":["static"],"parent":"io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer","signatures":[{"raw":"public static McpSyncServer serving(Server server, McpServerTransportProvider transport)","params":[{"name":"server","type":"Server"},{"name":"transport","type":"McpServerTransportProvider"}],"returns":"McpSyncServer","typeScopeBoundary":true}],"doc":{"summary":"Serves a tmux server over a caller-supplied transport.","body":"The returned server owns the transport. Ownership transfers on entry, so failed startup\ncloses it too."},"source":{"file":"libtmux-mcp/src/main/java/io/github/libtmux/mcp/TmuxMcpServer.java","line":92,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"qualifiedName":"io.github.libtmux.mcp.TmuxMcpServer.serving","namespace":"io.github.libtmux.mcp","publicId":"io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer.serving","product":"mcp","apiScope":"exported","slug":"io-github-libtmux-mcp-tmuxmcpserver-tmuxmcpserver-serving"}],"sources":[{"product":"core","package":"io.github.libtmux:libtmux","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272","version":"0.0.1-alpha.17-SNAPSHOT"},{"product":"workspace","package":"libtmux-workspace","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272","version":"0.0.1-alpha.17-SNAPSHOT"},{"product":"mcp","package":"libtmux-mcp","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272","version":"0.0.1-alpha.17-SNAPSHOT"}],"generatedSources":{"libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Client_.java":"package io.github.libtmux;\n\nimport io.github.libtmux.query.Fields;\n\n/**\n * Typed fields of {@link Client}.\n */\npublic final class Client_ {\n private static final Fields.TextField NAME = Fields.text(\"client_name\", Client::name);\n\n private static final Fields.ToOneRef SESSION = Fields.toOne(\"session\", Client::session);\n\n private Client_() {\n }\n\n /**\n * The client's terminal name, which is how tmux addresses it.\n */\n public static Fields.TextField name() {\n return NAME;\n }\n\n /**\n * The session this client was attached to, if any.\n */\n public static Fields.ToOneRef session() {\n return SESSION;\n }\n}\n","libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Pane_.java":"package io.github.libtmux;\n\nimport io.github.libtmux.query.Fields;\n\n/**\n * Typed fields of {@link Pane}.\n */\npublic final class Pane_ {\n private static final Fields.TextField ID = Fields.text(\"pane_id\", pane -> pane.id().value());\n\n private static final Fields.TextField COMMAND = Fields.text(\"pane_current_command\", Pane::currentCommand);\n\n private static final Fields.NumberField INDEX = Fields.number(\"pane_index\", Pane::index);\n\n private static final Fields.FlagField ACTIVE = Fields.flag(\"pane_active\", Pane::active);\n\n private static final Fields.TextField TITLE = Fields.text(\"pane_title\", Pane::title);\n\n private static final Fields.TextField PATH = Fields.text(\"pane_current_path\", Pane::currentPathText);\n\n private static final Fields.NumberField WIDTH = Fields.number(\"pane_width\", pane -> pane.size().width());\n\n private static final Fields.NumberField HEIGHT = Fields.number(\"pane_height\", pane -> pane.size().height());\n\n private static final Fields.NumberField LEFT = Fields.number(\"pane_left\", pane -> pane.position().left());\n\n private static final Fields.NumberField TOP = Fields.number(\"pane_top\", pane -> pane.position().top());\n\n private static final Fields.FlagField AT_TOP = Fields.flag(\"pane_at_top\", pane -> pane.edges().top());\n\n private static final Fields.FlagField AT_BOTTOM = Fields.flag(\"pane_at_bottom\", pane -> pane.edges().bottom());\n\n private static final Fields.FlagField AT_LEFT = Fields.flag(\"pane_at_left\", pane -> pane.edges().left());\n\n private static final Fields.FlagField AT_RIGHT = Fields.flag(\"pane_at_right\", pane -> pane.edges().right());\n\n private Pane_() {\n }\n\n /**\n * The pane id.\n */\n public static Fields.TextField id() {\n return ID;\n }\n\n /**\n * The command tmux reported running in the pane.\n */\n public static Fields.TextField command() {\n return COMMAND;\n }\n\n /**\n * The pane's position in its window.\n */\n public static Fields.NumberField index() {\n return INDEX;\n }\n\n /**\n * Whether this was its window's active pane.\n */\n public static Fields.FlagField active() {\n return ACTIVE;\n }\n\n /**\n * The pane's title, which a program running in it can set.\n */\n public static Fields.TextField title() {\n return TITLE;\n }\n\n /**\n * The pane's working directory, as the text tmux reported.\n */\n public static Fields.TextField path() {\n return PATH;\n }\n\n /**\n * The pane's width, in cells.\n */\n public static Fields.NumberField width() {\n return WIDTH;\n }\n\n /**\n * The pane's height, in cells.\n */\n public static Fields.NumberField height() {\n return HEIGHT;\n }\n\n /**\n * The column of the pane's left edge in its window.\n */\n public static Fields.NumberField left() {\n return LEFT;\n }\n\n /**\n * The row of the pane's top edge in its window.\n */\n public static Fields.NumberField top() {\n return TOP;\n }\n\n /**\n * Whether the pane touches the top of its window.\n */\n public static Fields.FlagField atTop() {\n return AT_TOP;\n }\n\n /**\n * Whether the pane touches the bottom of its window.\n */\n public static Fields.FlagField atBottom() {\n return AT_BOTTOM;\n }\n\n /**\n * Whether the pane touches the left of its window.\n */\n public static Fields.FlagField atLeft() {\n return AT_LEFT;\n }\n\n /**\n * Whether the pane touches the right of its window.\n */\n public static Fields.FlagField atRight() {\n return AT_RIGHT;\n }\n}\n","libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Session_.java":"package io.github.libtmux;\n\nimport io.github.libtmux.query.Fields;\n\n/**\n * Typed fields of {@link Session}, for building an expression that can be read as well as run.\n *\n *

Each field exposes only the operators its type supports, so asking a flag to start with a\n * string does not compile. Every field names a tmux format, so a backend model can bind the handle\n * before translating the expression into tmux's own {@code -f} filter.\n */\npublic final class Session_ {\n private static final Fields.TextField ID = Fields.text(\"session_id\", session -> session.id().value());\n\n private static final Fields.TextField NAME = Fields.text(\"session_name\", Session::name);\n\n private static final Fields.FlagField ATTACHED = Fields.flag(\"session_attached\", Session::attached);\n\n private static final Fields.NumberField WINDOW_COUNT = Fields.number(\"session_windows\", session -> session.windows().size());\n\n private static final Fields.ToManyRef WINDOWS = Fields.toMany(\"windows\", Session::windows);\n\n private Session_() {\n }\n\n /**\n * The session id, as text, so it can be compared and listed.\n */\n public static Fields.TextField id() {\n return ID;\n }\n\n /**\n * The session name.\n */\n public static Fields.TextField name() {\n return NAME;\n }\n\n /**\n * Whether a client was attached when this was captured.\n */\n public static Fields.FlagField attached() {\n return ATTACHED;\n }\n\n /**\n * How many windows this session holds.\n */\n public static Fields.NumberField windowCount() {\n return WINDOW_COUNT;\n }\n\n /**\n * This session's windows.\n */\n public static Fields.ToManyRef windows() {\n return WINDOWS;\n }\n}\n","libtmux/build/generated/sources/fieldCatalog/java/main/io/github/libtmux/Window_.java":"package io.github.libtmux;\n\nimport io.github.libtmux.query.Fields;\n\n/**\n * Typed fields of {@link Window}.\n */\npublic final class Window_ {\n private static final Fields.TextField ID = Fields.text(\"window_id\", window -> window.id().value());\n\n private static final Fields.TextField NAME = Fields.text(\"window_name\", Window::name);\n\n private static final Fields.NumberField INDEX = Fields.number(\"window_index\", window -> window.index().value());\n\n private static final Fields.FlagField ACTIVE = Fields.flag(\"window_active\", Window::active);\n\n private static final Fields.FlagField LINKED = Fields.flag(\"window_linked\", Window::linked);\n\n private static final Fields.NumberField WIDTH = Fields.number(\"window_width\", window -> window.size().width());\n\n private static final Fields.NumberField HEIGHT = Fields.number(\"window_height\", window -> window.size().height());\n\n private static final Fields.NumberField PANE_COUNT = Fields.number(\"window_panes\", window -> window.panes().size());\n\n private static final Fields.ToManyRef PANES = Fields.toMany(\"panes\", Window::panes);\n\n private static final Fields.ToOneRef SESSION = Fields.toOne(\"session\", window -> java.util.Optional.of(window.session()));\n\n private Window_() {\n }\n\n /**\n * The underlying window id, shared by every link to it.\n */\n public static Fields.TextField id() {\n return ID;\n }\n\n /**\n * The window name.\n */\n public static Fields.TextField name() {\n return NAME;\n }\n\n /**\n * Where this link sits in its session.\n */\n public static Fields.NumberField index() {\n return INDEX;\n }\n\n /**\n * Whether this was its session's active window.\n */\n public static Fields.FlagField active() {\n return ACTIVE;\n }\n\n /**\n * Whether the underlying window is linked into more than one session.\n */\n public static Fields.FlagField linked() {\n return LINKED;\n }\n\n /**\n * The window's width, in cells.\n */\n public static Fields.NumberField width() {\n return WIDTH;\n }\n\n /**\n * The window's height, in cells.\n */\n public static Fields.NumberField height() {\n return HEIGHT;\n }\n\n /**\n * How many panes this link holds.\n */\n public static Fields.NumberField paneCount() {\n return PANE_COUNT;\n }\n\n /**\n * This link's panes.\n */\n public static Fields.ToManyRef panes() {\n return PANES;\n }\n\n /**\n * The session this link belongs to.\n */\n public static Fields.ToOneRef session() {\n return SESSION;\n }\n}\n"},"repo":"libtmux/libtmux-java"} diff --git a/site/src/data/api/java.nav.json b/site/src/data/api/java.nav.json index e3d90e0bc..f82b70647 100644 --- a/site/src/data/api/java.nav.json +++ b/site/src/data/api/java.nav.json @@ -1 +1 @@ -{"port":"java","buckets":[{"id":"server","label":"Server","collapsed":false},{"id":"session","label":"Session","collapsed":false},{"id":"window","label":"Window","collapsed":false},{"id":"pane","label":"Pane","collapsed":false},{"id":"client","label":"Client","collapsed":false},{"id":"hooks","label":"Hooks","collapsed":false},{"id":"options","label":"Options","collapsed":false,"children":[{"id":"options-functions","label":"Functions","collapsed":false},{"id":"options-constants","label":"Constants and variables","collapsed":false}]},{"id":"keys","label":"Keys and bindings","collapsed":false},{"id":"buffers","label":"Buffers","collapsed":false},{"id":"layout","label":"Layout and geometry","collapsed":false},{"id":"environment","label":"Environment","collapsed":false},{"id":"capabilities","label":"Terminal capabilities","collapsed":false},{"id":"version","label":"Versions","collapsed":false},{"id":"commands","label":"Commands","collapsed":false},{"id":"control","label":"Control mode","collapsed":false},{"id":"formats","label":"Formats","collapsed":false},{"id":"queries","label":"Queries","collapsed":false,"children":[{"id":"queries-fields","label":"Fields","collapsed":false},{"id":"queries-operators","label":"Operators","collapsed":false},{"id":"queries-expressions","label":"Expressions","collapsed":false}]},{"id":"snapshots","label":"Snapshots","collapsed":false},{"id":"workspace","label":"Workspaces","collapsed":false,"children":[{"id":"workspace-plan","label":"Plans","collapsed":false},{"id":"workspace-steps","label":"Steps","collapsed":false},{"id":"workspace-targets","label":"Targets and slots","collapsed":false},{"id":"workspace-session","label":"Session","collapsed":false},{"id":"workspace-window","label":"Window","collapsed":false},{"id":"workspace-pane","label":"Pane","collapsed":false},{"id":"workspace-functions","label":"Functions","collapsed":false},{"id":"workspace-constants","label":"Constants and variables","collapsed":false}]},{"id":"requests","label":"Requests","collapsed":true,"children":[{"id":"requests-server","label":"Server","collapsed":false},{"id":"requests-session","label":"Session","collapsed":false},{"id":"requests-window","label":"Window","collapsed":false},{"id":"requests-pane","label":"Pane","collapsed":false},{"id":"requests-client","label":"Client","collapsed":false}]},{"id":"errors","label":"Errors","collapsed":true,"children":[{"id":"errors-server","label":"Server","collapsed":false},{"id":"errors-session","label":"Session","collapsed":false},{"id":"errors-window","label":"Window","collapsed":false},{"id":"errors-pane","label":"Pane","collapsed":false}]},{"id":"constants","label":"Constants and enums","collapsed":true,"children":[{"id":"constants-server","label":"Server","collapsed":false},{"id":"constants-session","label":"Session","collapsed":false},{"id":"constants-window","label":"Window","collapsed":false},{"id":"constants-pane","label":"Pane","collapsed":false},{"id":"constants-client","label":"Client","collapsed":false}]},{"id":"runtime","label":"Runtime adapters","collapsed":false},{"id":"async","label":"Async","collapsed":false},{"id":"mcp","label":"MCP","collapsed":true,"children":[{"id":"mcp-functions","label":"Functions","collapsed":false},{"id":"mcp-constants","label":"Constants and variables","collapsed":false}]},{"id":"testing","label":"Testing utilities","collapsed":true},{"id":"internal","label":"Internal","collapsed":true,"children":[{"id":"internal-commands","label":"Commands","collapsed":false},{"id":"internal-options","label":"Options","collapsed":false}]}],"assignments":{"server":[{"id":"io.github.libtmux.IncarnationFence.IncarnationFence","name":"IncarnationFence","slug":"io-github-libtmux-incarnationfence-incarnationfence","kind":"class"},{"id":"io.github.libtmux.Server.Server","name":"Server","slug":"io-github-libtmux-server-server","kind":"class"},{"id":"io.github.libtmux.ServerConfig.ServerConfig","name":"ServerConfig","slug":"io-github-libtmux-serverconfig-serverconfig","kind":"class"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint","name":"ServerEndpoint","slug":"io-github-libtmux-serverendpoint-serverendpoint","kind":"interface"},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity","name":"ServerIdentity","slug":"io-github-libtmux-serveridentity-serveridentity","kind":"class"}],"session":[{"id":"io.github.libtmux.Session.Session","name":"Session","slug":"io-github-libtmux-session-session","kind":"class"},{"id":"io.github.libtmux.SessionCreation.SessionCreation","name":"SessionCreation","slug":"io-github-libtmux-sessioncreation-sessioncreation","kind":"class"},{"id":"io.github.libtmux.SessionId.SessionId","name":"SessionId","slug":"io-github-libtmux-sessionid-sessionid","kind":"class"},{"id":"io.github.libtmux.SessionLookup.SessionLookup","name":"SessionLookup","slug":"io-github-libtmux-sessionlookup-sessionlookup","kind":"class"},{"id":"io.github.libtmux.SessionSpec.SessionSpec","name":"SessionSpec","slug":"io-github-libtmux-sessionspec-sessionspec","kind":"class"},{"id":"io.github.libtmux.Session_.Session_","name":"Session_","slug":"io-github-libtmux-session_-session_","kind":"class"}],"window":[{"id":"io.github.libtmux.Window.Window","name":"Window","slug":"io-github-libtmux-window-window","kind":"class"},{"id":"io.github.libtmux.WindowId.WindowId","name":"WindowId","slug":"io-github-libtmux-windowid-windowid","kind":"class"},{"id":"io.github.libtmux.WindowIndex.WindowIndex","name":"WindowIndex","slug":"io-github-libtmux-windowindex-windowindex","kind":"class"},{"id":"io.github.libtmux.WindowLayout.WindowLayout","name":"WindowLayout","slug":"io-github-libtmux-windowlayout-windowlayout","kind":"interface"},{"id":"io.github.libtmux.WindowPlacement.WindowPlacement","name":"WindowPlacement","slug":"io-github-libtmux-windowplacement-windowplacement","kind":"enum"},{"id":"io.github.libtmux.WindowSpec.WindowSpec","name":"WindowSpec","slug":"io-github-libtmux-windowspec-windowspec","kind":"class"},{"id":"io.github.libtmux.Window_.Window_","name":"Window_","slug":"io-github-libtmux-window_-window_","kind":"class"},{"id":"io.github.libtmux.workspace.WindowSpec.WindowSpec","name":"WindowSpec","slug":"io-github-libtmux-workspace-windowspec-windowspec","kind":"class"}],"pane":[{"id":"io.github.libtmux.Pane.Pane","name":"Pane","slug":"io-github-libtmux-pane-pane","kind":"class"},{"id":"io.github.libtmux.PaneCommand.PaneCommand","name":"PaneCommand","slug":"io-github-libtmux-panecommand-panecommand","kind":"class"},{"id":"io.github.libtmux.PaneEcho.PaneEcho","name":"PaneEcho","slug":"io-github-libtmux-paneecho-paneecho","kind":"class"},{"id":"io.github.libtmux.PaneEdges.PaneEdges","name":"PaneEdges","slug":"io-github-libtmux-paneedges-paneedges","kind":"class"},{"id":"io.github.libtmux.PaneId.PaneId","name":"PaneId","slug":"io-github-libtmux-paneid-paneid","kind":"class"},{"id":"io.github.libtmux.PaneInput.PaneInput","name":"PaneInput","slug":"io-github-libtmux-paneinput-paneinput","kind":"class"},{"id":"io.github.libtmux.PanePosition.PanePosition","name":"PanePosition","slug":"io-github-libtmux-paneposition-paneposition","kind":"class"},{"id":"io.github.libtmux.PaneRun.PaneRun","name":"PaneRun","slug":"io-github-libtmux-panerun-panerun","kind":"class"},{"id":"io.github.libtmux.PaneSize.PaneSize","name":"PaneSize","slug":"io-github-libtmux-panesize-panesize","kind":"interface"},{"id":"io.github.libtmux.PaneStart.PaneStart","name":"PaneStart","slug":"io-github-libtmux-panestart-panestart","kind":"interface"},{"id":"io.github.libtmux.PaneWait.PaneWait","name":"PaneWait","slug":"io-github-libtmux-panewait-panewait","kind":"class"},{"id":"io.github.libtmux.Pane_.Pane_","name":"Pane_","slug":"io-github-libtmux-pane_-pane_","kind":"class"},{"id":"io.github.libtmux.workspace.PaneSpec.PaneSpec","name":"PaneSpec","slug":"io-github-libtmux-workspace-panespec-panespec","kind":"class"}],"client":[{"id":"io.github.libtmux.Client.Client","name":"Client","slug":"io-github-libtmux-client-client","kind":"class"},{"id":"io.github.libtmux.ClientAttachment.ClientAttachment","name":"ClientAttachment","slug":"io-github-libtmux-clientattachment-clientattachment","kind":"class"},{"id":"io.github.libtmux.Client_.Client_","name":"Client_","slug":"io-github-libtmux-client_-client_","kind":"class"}],"hooks":[{"id":"io.github.libtmux.Hooks.Hooks","name":"Hooks","slug":"io-github-libtmux-hooks-hooks","kind":"class"}],"options":[{"id":"io.github.libtmux.OptionKey.OptionKey","name":"OptionKey","slug":"io-github-libtmux-optionkey-optionkey","kind":"class"}],"options-functions":[],"options-constants":[],"keys":[{"id":"io.github.libtmux.Keys.Keys","name":"Keys","slug":"io-github-libtmux-keys-keys","kind":"class"}],"buffers":[{"id":"io.github.libtmux.BufferInfo.BufferInfo","name":"BufferInfo","slug":"io-github-libtmux-bufferinfo-bufferinfo","kind":"class"},{"id":"io.github.libtmux.Buffers.Buffers","name":"Buffers","slug":"io-github-libtmux-buffers-buffers","kind":"class"}],"layout":[{"id":"io.github.libtmux.Dimensions.Dimensions","name":"Dimensions","slug":"io-github-libtmux-dimensions-dimensions","kind":"class"},{"id":"io.github.libtmux.Direction.Direction","name":"Direction","slug":"io-github-libtmux-direction-direction","kind":"enum"},{"id":"io.github.libtmux.JsonLayout.JsonLayout","name":"JsonLayout","slug":"io-github-libtmux-jsonlayout-jsonlayout","kind":"class"},{"id":"io.github.libtmux.Layout.Layout","name":"Layout","slug":"io-github-libtmux-layout-layout","kind":"enum"},{"id":"io.github.libtmux.Layouts.Layouts","name":"Layouts","slug":"io-github-libtmux-layouts-layouts","kind":"class"},{"id":"io.github.libtmux.SplitDirection.SplitDirection","name":"SplitDirection","slug":"io-github-libtmux-splitdirection-splitdirection","kind":"enum"},{"id":"io.github.libtmux.SplitSpec.SplitSpec","name":"SplitSpec","slug":"io-github-libtmux-splitspec-splitspec","kind":"class"}],"environment":[{"id":"io.github.libtmux.Environment.Environment","name":"Environment","slug":"io-github-libtmux-environment-environment","kind":"class"},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","name":"TmuxEnvironment","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment","kind":"class"}],"capabilities":[],"version":[{"id":"io.github.libtmux.TmuxVersion.TmuxVersion","name":"TmuxVersion","slug":"io-github-libtmux-tmuxversion-tmuxversion","kind":"class"}],"commands":[{"id":"io.github.libtmux.CommandChain.CommandChain","name":"CommandChain","slug":"io-github-libtmux-commandchain-commandchain","kind":"class"},{"id":"io.github.libtmux.Commands.Commands","name":"Commands","slug":"io-github-libtmux-commands-commands","kind":"class"},{"id":"io.github.libtmux.MessageLog.MessageLog","name":"MessageLog","slug":"io-github-libtmux-messagelog-messagelog","kind":"class"},{"id":"io.github.libtmux.PrintedText.PrintedText","name":"PrintedText","slug":"io-github-libtmux-printedtext-printedtext","kind":"class"},{"id":"io.github.libtmux.Prompt.Prompt","name":"Prompt","slug":"io-github-libtmux-prompt-prompt","kind":"class"},{"id":"io.github.libtmux.Shell.Shell","name":"Shell","slug":"io-github-libtmux-shell-shell","kind":"class"},{"id":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome","name":"DispatchOutcome","slug":"io-github-libtmux-transport-dispatchoutcome-dispatchoutcome","kind":"enum"},{"id":"io.github.libtmux.transport.Idempotence.Idempotence","name":"Idempotence","slug":"io-github-libtmux-transport-idempotence-idempotence","kind":"enum"},{"id":"io.github.libtmux.transport.OperationObserver.OperationObserver","name":"OperationObserver","slug":"io-github-libtmux-transport-operationobserver-operationobserver","kind":"interface"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport","name":"OperationReport","slug":"io-github-libtmux-transport-operationreport-operationreport","kind":"class"},{"id":"io.github.libtmux.transport.OutputDecoder.OutputDecoder","name":"OutputDecoder","slug":"io-github-libtmux-transport-outputdecoder-outputdecoder","kind":"class"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","name":"ProcessTransport","slug":"io-github-libtmux-transport-processtransport-processtransport","kind":"class"},{"id":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","name":"TmuxTransport","slug":"io-github-libtmux-transport-tmuxtransport-tmuxtransport","kind":"interface"}],"control":[{"id":"io.github.libtmux.control.ControlClient.ControlClient","name":"ControlClient","slug":"io-github-libtmux-control-controlclient-controlclient","kind":"class"},{"id":"io.github.libtmux.control.ControlLineReader.ControlLineReader","name":"ControlLineReader","slug":"io-github-libtmux-control-controllinereader-controllinereader","kind":"class"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol","name":"ControlProtocol","slug":"io-github-libtmux-control-controlprotocol-controlprotocol","kind":"class"},{"id":"io.github.libtmux.control.ControlReply.ControlReply","name":"ControlReply","slug":"io-github-libtmux-control-controlreply-controlreply","kind":"class"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter","name":"ControlWriter","slug":"io-github-libtmux-control-controlwriter-controlwriter","kind":"class"},{"id":"io.github.libtmux.control.Delivery.Delivery","name":"Delivery","slug":"io-github-libtmux-control-delivery-delivery","kind":"interface"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription","name":"EventSubscription","slug":"io-github-libtmux-control-eventsubscription-eventsubscription","kind":"class"},{"id":"io.github.libtmux.control.Notification.Notification","name":"Notification","slug":"io-github-libtmux-control-notification-notification","kind":"interface"},{"id":"io.github.libtmux.control.PaneOutput.PaneOutput","name":"PaneOutput","slug":"io-github-libtmux-control-paneoutput-paneoutput","kind":"class"},{"id":"io.github.libtmux.transport.ControlCarrier.ControlCarrier","name":"ControlCarrier","slug":"io-github-libtmux-transport-controlcarrier-controlcarrier","kind":"interface"}],"formats":[{"id":"io.github.libtmux.format.RowFormat.RowFormat","name":"RowFormat","slug":"io-github-libtmux-format-rowformat-rowformat","kind":"class"},{"id":"io.github.libtmux.format.Tokens.Tokens","name":"Tokens","slug":"io-github-libtmux-format-tokens-tokens","kind":"class"},{"id":"io.github.libtmux.TmuxFormats.TmuxFormats","name":"TmuxFormats","slug":"io-github-libtmux-tmuxformats-tmuxformats","kind":"class"}],"queries":[{"id":"io.github.libtmux.query.Selections.Selections","name":"Selections","slug":"io-github-libtmux-query-selections-selections","kind":"class"},{"id":"io.github.libtmux.query.TmuxFilters.TmuxFilters","name":"TmuxFilters","slug":"io-github-libtmux-query-tmuxfilters-tmuxfilters","kind":"class"},{"id":"io.github.libtmux.jackson.FilterJson.FilterJson","name":"FilterJson","slug":"io-github-libtmux-jackson-filterjson-filterjson","kind":"class"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel","name":"FilterModel","slug":"io-github-libtmux-jackson-filtermodel-filtermodel","kind":"class"}],"queries-fields":[{"id":"io.github.libtmux.query.FieldRef.FieldRef","name":"FieldRef","slug":"io-github-libtmux-query-fieldref-fieldref","kind":"class"},{"id":"io.github.libtmux.query.Fields.Fields","name":"Fields","slug":"io-github-libtmux-query-fields-fields","kind":"class"}],"queries-operators":[{"id":"io.github.libtmux.query.Operator.Operator","name":"Operator","slug":"io-github-libtmux-query-operator-operator","kind":"enum"}],"queries-expressions":[{"id":"io.github.libtmux.query.FilterExpr.FilterExpr","name":"FilterExpr","slug":"io-github-libtmux-query-filterexpr-filterexpr","kind":"interface"}],"snapshots":[{"id":"io.github.libtmux.CaptureSpec.CaptureSpec","name":"CaptureSpec","slug":"io-github-libtmux-capturespec-capturespec","kind":"class"},{"id":"io.github.libtmux.snapshot.ClientState.ClientState","name":"ClientState","slug":"io-github-libtmux-snapshot-clientstate-clientstate","kind":"class"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState","name":"PaneState","slug":"io-github-libtmux-snapshot-panestate-panestate","kind":"class"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","name":"ServerMirror","slug":"io-github-libtmux-snapshot-servermirror-servermirror","kind":"class"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","name":"ServerSnapshot","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot","kind":"class"},{"id":"io.github.libtmux.snapshot.SessionState.SessionState","name":"SessionState","slug":"io-github-libtmux-snapshot-sessionstate-sessionstate","kind":"class"},{"id":"io.github.libtmux.snapshot.WindowContext.WindowContext","name":"WindowContext","slug":"io-github-libtmux-snapshot-windowcontext-windowcontext","kind":"class"},{"id":"io.github.libtmux.snapshot.WindowState.WindowState","name":"WindowState","slug":"io-github-libtmux-snapshot-windowstate-windowstate","kind":"class"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture","name":"SnapshotCapture","slug":"io-github-libtmux-snapshotcapture-snapshotcapture","kind":"class"},{"id":"io.github.libtmux.TextOutcome.TextOutcome","name":"TextOutcome","slug":"io-github-libtmux-textoutcome-textoutcome","kind":"enum"},{"id":"io.github.libtmux.TypedText.TypedText","name":"TypedText","slug":"io-github-libtmux-typedtext-typedtext","kind":"class"}],"workspace":[],"workspace-plan":[{"id":"io.github.libtmux.workspace.Workspace.Workspace","name":"Workspace","slug":"io-github-libtmux-workspace-workspace-workspace","kind":"class"},{"id":"io.github.libtmux.workspace.WorkspaceApplier.WorkspaceApplier","name":"WorkspaceApplier","slug":"io-github-libtmux-workspace-workspaceapplier-workspaceapplier","kind":"class"},{"id":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder","name":"WorkspaceBuilder","slug":"io-github-libtmux-workspace-workspacebuilder-workspacebuilder","kind":"class"},{"id":"io.github.libtmux.workspace.WorkspaceParser.WorkspaceParser","name":"WorkspaceParser","slug":"io-github-libtmux-workspace-workspaceparser-workspaceparser","kind":"class"}],"workspace-steps":[],"workspace-targets":[],"workspace-session":[],"workspace-window":[],"workspace-pane":[],"workspace-functions":[],"workspace-constants":[],"requests":[{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest","name":"CommandRequest","slug":"io-github-libtmux-transport-commandrequest-commandrequest","kind":"class"}],"requests-server":[],"requests-session":[],"requests-window":[],"requests-pane":[],"requests-client":[],"errors":[{"id":"io.github.libtmux.exception.CardinalityException.CardinalityException","name":"CardinalityException","slug":"io-github-libtmux-exception-cardinalityexception-cardinalityexception","kind":"class"},{"id":"io.github.libtmux.exception.CommandRejectedException.CommandRejectedException","name":"CommandRejectedException","slug":"io-github-libtmux-exception-commandrejectedexception-commandrejectedexception","kind":"class"},{"id":"io.github.libtmux.exception.ControlEndedException.ControlEndedException","name":"ControlEndedException","slug":"io-github-libtmux-exception-controlendedexception-controlendedexception","kind":"class"},{"id":"io.github.libtmux.exception.DispatchException.DispatchException","name":"DispatchException","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception","kind":"class"},{"id":"io.github.libtmux.exception.LibTmuxException.LibTmuxException","name":"LibTmuxException","slug":"io-github-libtmux-exception-libtmuxexception-libtmuxexception","kind":"class"},{"id":"io.github.libtmux.exception.MalformedResponseException.MalformedResponseException","name":"MalformedResponseException","slug":"io-github-libtmux-exception-malformedresponseexception-malformedresponseexception","kind":"class"},{"id":"io.github.libtmux.exception.TargetGoneException.TargetGoneException","name":"TargetGoneException","slug":"io-github-libtmux-exception-targetgoneexception-targetgoneexception","kind":"class"},{"id":"io.github.libtmux.exception.UnencodableTextException.UnencodableTextException","name":"UnencodableTextException","slug":"io-github-libtmux-exception-unencodabletextexception-unencodabletextexception","kind":"class"},{"id":"io.github.libtmux.exception.UnsupportedFeatureException.UnsupportedFeatureException","name":"UnsupportedFeatureException","slug":"io-github-libtmux-exception-unsupportedfeatureexception-unsupportedfeatureexception","kind":"class"},{"id":"io.github.libtmux.jackson.SchemaException.SchemaException","name":"SchemaException","slug":"io-github-libtmux-jackson-schemaexception-schemaexception","kind":"class"}],"errors-server":[{"id":"io.github.libtmux.exception.ServerClosedException.ServerClosedException","name":"ServerClosedException","slug":"io-github-libtmux-exception-serverclosedexception-serverclosedexception","kind":"class"},{"id":"io.github.libtmux.exception.ServerUnavailableException.ServerUnavailableException","name":"ServerUnavailableException","slug":"io-github-libtmux-exception-serverunavailableexception-serverunavailableexception","kind":"class"}],"errors-session":[],"errors-window":[],"errors-pane":[],"constants":[{"id":"io.github.libtmux.batch.BatchResult.BatchResult","name":"BatchResult","slug":"io-github-libtmux-batch-batchresult-batchresult","kind":"class"},{"id":"io.github.libtmux.batch.OperationResult.OperationResult","name":"OperationResult","slug":"io-github-libtmux-batch-operationresult-operationresult","kind":"class"},{"id":"io.github.libtmux.catalog.Kind.Kind","name":"Kind","slug":"io-github-libtmux-catalog-kind-kind","kind":"enum"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent","name":"ControlEvent","slug":"io-github-libtmux-control-controlevent-controlevent","kind":"class"},{"id":"io.github.libtmux.Options.Options","name":"Options","slug":"io-github-libtmux-options-options","kind":"class"},{"id":"io.github.libtmux.query.FieldKind.FieldKind","name":"FieldKind","slug":"io-github-libtmux-query-fieldkind-fieldkind","kind":"enum"},{"id":"io.github.libtmux.transport.CommandResult.CommandResult","name":"CommandResult","slug":"io-github-libtmux-transport-commandresult-commandresult","kind":"class"}],"constants-server":[],"constants-session":[],"constants-window":[],"constants-pane":[{"id":"io.github.libtmux.PaneMode.PaneMode","name":"PaneMode","slug":"io-github-libtmux-panemode-panemode","kind":"enum"}],"constants-client":[],"runtime":[],"async":[],"mcp":[{"id":"io.github.libtmux.mcp.Main.Main","name":"Main","slug":"io-github-libtmux-mcp-main-main","kind":"class"},{"id":"io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer","name":"TmuxMcpServer","slug":"io-github-libtmux-mcp-tmuxmcpserver-tmuxmcpserver","kind":"class"}],"mcp-functions":[],"mcp-constants":[],"testing":[{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","name":"FakeControlClient","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient","kind":"class"},{"id":"io.github.libtmux.junit5.FakePane.FakePane","name":"FakePane","slug":"io-github-libtmux-junit5-fakepane-fakepane","kind":"class"},{"id":"io.github.libtmux.junit5.FakeSession.FakeSession","name":"FakeSession","slug":"io-github-libtmux-junit5-fakesession-fakesession","kind":"class"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux","name":"FakeTmux","slug":"io-github-libtmux-junit5-faketmux-faketmux","kind":"class"},{"id":"io.github.libtmux.junit5.FakeWindow.FakeWindow","name":"FakeWindow","slug":"io-github-libtmux-junit5-fakewindow-fakewindow","kind":"class"},{"id":"io.github.libtmux.junit5.Flags.Flags","name":"Flags","slug":"io-github-libtmux-junit5-flags-flags","kind":"class"},{"id":"io.github.libtmux.junit5.Formats.Formats","name":"Formats","slug":"io-github-libtmux-junit5-formats-formats","kind":"class"},{"id":"io.github.libtmux.junit5.Groups.Groups","name":"Groups","slug":"io-github-libtmux-junit5-groups-groups","kind":"class"},{"id":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture","name":"NamedServerFixture","slug":"io-github-libtmux-junit5-namedserverfixture-namedserverfixture","kind":"class"},{"id":"io.github.libtmux.junit5.Target.Target","name":"Target","slug":"io-github-libtmux-junit5-target-target","kind":"class"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","name":"TmuxExtension","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension","kind":"class"},{"id":"io.github.libtmux.junit5.TmuxSocketPath.TmuxSocketPath","name":"TmuxSocketPath","slug":"io-github-libtmux-junit5-tmuxsocketpath-tmuxsocketpath","kind":"class"}],"internal":[{"id":"io.github.libtmux.internal.ErrorText.ErrorText","name":"ErrorText","slug":"io-github-libtmux-internal-errortext-errortext","kind":"class"},{"id":"io.github.libtmux.internal.Utf8.Utf8","name":"Utf8","slug":"io-github-libtmux-internal-utf8-utf8","kind":"class"}],"internal-commands":[{"id":"io.github.libtmux.internal.CommandStrings.CommandStrings","name":"CommandStrings","slug":"io-github-libtmux-internal-commandstrings-commandstrings","kind":"class"},{"id":"io.github.libtmux.internal.ProcessTree.ProcessTree","name":"ProcessTree","slug":"io-github-libtmux-internal-processtree-processtree","kind":"class"}],"internal-options":[]},"placement":{"io.github.libtmux.IncarnationFence.IncarnationFence":"server","io.github.libtmux.Server.Server":"server","io.github.libtmux.ServerConfig.ServerConfig":"server","io.github.libtmux.ServerEndpoint.ServerEndpoint":"server","io.github.libtmux.ServerIdentity.ServerIdentity":"server","io.github.libtmux.Session.Session":"session","io.github.libtmux.SessionCreation.SessionCreation":"session","io.github.libtmux.SessionId.SessionId":"session","io.github.libtmux.SessionLookup.SessionLookup":"session","io.github.libtmux.SessionSpec.SessionSpec":"session","io.github.libtmux.Session_.Session_":"session","io.github.libtmux.Window.Window":"window","io.github.libtmux.WindowId.WindowId":"window","io.github.libtmux.WindowIndex.WindowIndex":"window","io.github.libtmux.WindowLayout.WindowLayout":"window","io.github.libtmux.WindowPlacement.WindowPlacement":"window","io.github.libtmux.WindowSpec.WindowSpec":"window","io.github.libtmux.Window_.Window_":"window","io.github.libtmux.workspace.WindowSpec.WindowSpec":"window","io.github.libtmux.Pane.Pane":"pane","io.github.libtmux.PaneCommand.PaneCommand":"pane","io.github.libtmux.PaneEcho.PaneEcho":"pane","io.github.libtmux.PaneEdges.PaneEdges":"pane","io.github.libtmux.PaneId.PaneId":"pane","io.github.libtmux.PaneInput.PaneInput":"pane","io.github.libtmux.PanePosition.PanePosition":"pane","io.github.libtmux.PaneRun.PaneRun":"pane","io.github.libtmux.PaneSize.PaneSize":"pane","io.github.libtmux.PaneStart.PaneStart":"pane","io.github.libtmux.PaneWait.PaneWait":"pane","io.github.libtmux.Pane_.Pane_":"pane","io.github.libtmux.workspace.PaneSpec.PaneSpec":"pane","io.github.libtmux.Client.Client":"client","io.github.libtmux.ClientAttachment.ClientAttachment":"client","io.github.libtmux.Client_.Client_":"client","io.github.libtmux.Hooks.Hooks":"hooks","io.github.libtmux.OptionKey.OptionKey":"options","io.github.libtmux.Keys.Keys":"keys","io.github.libtmux.BufferInfo.BufferInfo":"buffers","io.github.libtmux.Buffers.Buffers":"buffers","io.github.libtmux.Dimensions.Dimensions":"layout","io.github.libtmux.Direction.Direction":"layout","io.github.libtmux.JsonLayout.JsonLayout":"layout","io.github.libtmux.Layout.Layout":"layout","io.github.libtmux.Layouts.Layouts":"layout","io.github.libtmux.SplitDirection.SplitDirection":"layout","io.github.libtmux.SplitSpec.SplitSpec":"layout","io.github.libtmux.Environment.Environment":"environment","io.github.libtmux.TmuxEnvironment.TmuxEnvironment":"environment","io.github.libtmux.TmuxVersion.TmuxVersion":"version","io.github.libtmux.CommandChain.CommandChain":"commands","io.github.libtmux.Commands.Commands":"commands","io.github.libtmux.MessageLog.MessageLog":"commands","io.github.libtmux.PrintedText.PrintedText":"commands","io.github.libtmux.Prompt.Prompt":"commands","io.github.libtmux.Shell.Shell":"commands","io.github.libtmux.transport.DispatchOutcome.DispatchOutcome":"commands","io.github.libtmux.transport.Idempotence.Idempotence":"commands","io.github.libtmux.transport.OperationObserver.OperationObserver":"commands","io.github.libtmux.transport.OperationReport.OperationReport":"commands","io.github.libtmux.transport.OutputDecoder.OutputDecoder":"commands","io.github.libtmux.transport.ProcessTransport.ProcessTransport":"commands","io.github.libtmux.transport.TmuxTransport.TmuxTransport":"commands","io.github.libtmux.control.ControlClient.ControlClient":"control","io.github.libtmux.control.ControlLineReader.ControlLineReader":"control","io.github.libtmux.control.ControlProtocol.ControlProtocol":"control","io.github.libtmux.control.ControlReply.ControlReply":"control","io.github.libtmux.control.ControlWriter.ControlWriter":"control","io.github.libtmux.control.Delivery.Delivery":"control","io.github.libtmux.control.EventSubscription.EventSubscription":"control","io.github.libtmux.control.Notification.Notification":"control","io.github.libtmux.control.PaneOutput.PaneOutput":"control","io.github.libtmux.transport.ControlCarrier.ControlCarrier":"control","io.github.libtmux.format.RowFormat.RowFormat":"formats","io.github.libtmux.format.Tokens.Tokens":"formats","io.github.libtmux.TmuxFormats.TmuxFormats":"formats","io.github.libtmux.query.Selections.Selections":"queries","io.github.libtmux.query.TmuxFilters.TmuxFilters":"queries","io.github.libtmux.jackson.FilterJson.FilterJson":"queries","io.github.libtmux.jackson.FilterModel.FilterModel":"queries","io.github.libtmux.query.FieldRef.FieldRef":"queries-fields","io.github.libtmux.query.Fields.Fields":"queries-fields","io.github.libtmux.query.Operator.Operator":"queries-operators","io.github.libtmux.query.FilterExpr.FilterExpr":"queries-expressions","io.github.libtmux.CaptureSpec.CaptureSpec":"snapshots","io.github.libtmux.snapshot.ClientState.ClientState":"snapshots","io.github.libtmux.snapshot.PaneState.PaneState":"snapshots","io.github.libtmux.snapshot.ServerMirror.ServerMirror":"snapshots","io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot":"snapshots","io.github.libtmux.snapshot.SessionState.SessionState":"snapshots","io.github.libtmux.snapshot.WindowContext.WindowContext":"snapshots","io.github.libtmux.snapshot.WindowState.WindowState":"snapshots","io.github.libtmux.SnapshotCapture.SnapshotCapture":"snapshots","io.github.libtmux.TextOutcome.TextOutcome":"snapshots","io.github.libtmux.TypedText.TypedText":"snapshots","io.github.libtmux.workspace.Workspace.Workspace":"workspace-plan","io.github.libtmux.workspace.WorkspaceApplier.WorkspaceApplier":"workspace-plan","io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder":"workspace-plan","io.github.libtmux.workspace.WorkspaceParser.WorkspaceParser":"workspace-plan","io.github.libtmux.transport.CommandRequest.CommandRequest":"requests","io.github.libtmux.exception.CardinalityException.CardinalityException":"errors","io.github.libtmux.exception.CommandRejectedException.CommandRejectedException":"errors","io.github.libtmux.exception.ControlEndedException.ControlEndedException":"errors","io.github.libtmux.exception.DispatchException.DispatchException":"errors","io.github.libtmux.exception.LibTmuxException.LibTmuxException":"errors","io.github.libtmux.exception.MalformedResponseException.MalformedResponseException":"errors","io.github.libtmux.exception.TargetGoneException.TargetGoneException":"errors","io.github.libtmux.exception.UnencodableTextException.UnencodableTextException":"errors","io.github.libtmux.exception.UnsupportedFeatureException.UnsupportedFeatureException":"errors","io.github.libtmux.jackson.SchemaException.SchemaException":"errors","io.github.libtmux.exception.ServerClosedException.ServerClosedException":"errors-server","io.github.libtmux.exception.ServerUnavailableException.ServerUnavailableException":"errors-server","io.github.libtmux.batch.BatchResult.BatchResult":"constants","io.github.libtmux.batch.OperationResult.OperationResult":"constants","io.github.libtmux.catalog.Kind.Kind":"constants","io.github.libtmux.control.ControlEvent.ControlEvent":"constants","io.github.libtmux.Options.Options":"constants","io.github.libtmux.query.FieldKind.FieldKind":"constants","io.github.libtmux.transport.CommandResult.CommandResult":"constants","io.github.libtmux.PaneMode.PaneMode":"constants-pane","io.github.libtmux.mcp.Main.Main":"mcp","io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer":"mcp","io.github.libtmux.junit5.FakeControlClient.FakeControlClient":"testing","io.github.libtmux.junit5.FakePane.FakePane":"testing","io.github.libtmux.junit5.FakeSession.FakeSession":"testing","io.github.libtmux.junit5.FakeTmux.FakeTmux":"testing","io.github.libtmux.junit5.FakeWindow.FakeWindow":"testing","io.github.libtmux.junit5.Flags.Flags":"testing","io.github.libtmux.junit5.Formats.Formats":"testing","io.github.libtmux.junit5.Groups.Groups":"testing","io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture":"testing","io.github.libtmux.junit5.Target.Target":"testing","io.github.libtmux.junit5.TmuxExtension.TmuxExtension":"testing","io.github.libtmux.junit5.TmuxSocketPath.TmuxSocketPath":"testing","io.github.libtmux.internal.ErrorText.ErrorText":"internal","io.github.libtmux.internal.Utf8.Utf8":"internal","io.github.libtmux.internal.CommandStrings.CommandStrings":"internal-commands","io.github.libtmux.internal.ProcessTree.ProcessTree":"internal-commands","io.github.libtmux.batch.Batch.Batch":"__unplaced","io.github.libtmux.batch.OperationOutcome.OperationOutcome":"__unplaced","io.github.libtmux.Channel.Channel":"__unplaced","io.github.libtmux.TargetIds.TargetIds":"__unplaced","io.github.libtmux.WakeReason.WakeReason":"__unplaced","io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels":"__unplaced","io.github.libtmux.catalog.Advanced.Advanced":"__unplaced","io.github.libtmux.catalog.Operation.Operation":"__unplaced"},"unplaced":[{"id":"io.github.libtmux.batch.Batch.Batch","name":"Batch","slug":"io-github-libtmux-batch-batch-batch","kind":"class"},{"id":"io.github.libtmux.batch.OperationOutcome.OperationOutcome","name":"OperationOutcome","slug":"io-github-libtmux-batch-operationoutcome-operationoutcome","kind":"enum"},{"id":"io.github.libtmux.Channel.Channel","name":"Channel","slug":"io-github-libtmux-channel-channel","kind":"class"},{"id":"io.github.libtmux.TargetIds.TargetIds","name":"TargetIds","slug":"io-github-libtmux-targetids-targetids","kind":"class"},{"id":"io.github.libtmux.WakeReason.WakeReason","name":"WakeReason","slug":"io-github-libtmux-wakereason-wakereason","kind":"enum"},{"id":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels","name":"LibTmuxModels","slug":"io-github-libtmux-jackson-libtmuxmodels-libtmuxmodels","kind":"class"},{"id":"io.github.libtmux.catalog.Advanced.Advanced","name":"Advanced","slug":"io-github-libtmux-catalog-advanced-advanced","kind":"interface"},{"id":"io.github.libtmux.catalog.Operation.Operation","name":"Operation","slug":"io-github-libtmux-catalog-operation-operation","kind":"interface"}],"diagnostics":{"unmatched":[],"deadBuckets":["options-functions","options-constants","capabilities","workspace-steps","workspace-targets","workspace-session","workspace-window","workspace-pane","workspace-functions","workspace-constants","requests-server","requests-session","requests-window","requests-pane","requests-client","errors-session","errors-window","errors-pane","constants-server","constants-session","constants-window","constants-client","runtime","async","mcp-functions","mcp-constants","internal-options"],"ambiguous":[],"staleUnsettled":[]}} +{"port":"java","buckets":[{"id":"server","label":"Server","collapsed":false},{"id":"session","label":"Session","collapsed":false},{"id":"window","label":"Window","collapsed":false},{"id":"pane","label":"Pane","collapsed":false},{"id":"client","label":"Client","collapsed":false},{"id":"hooks","label":"Hooks","collapsed":false},{"id":"options","label":"Options","collapsed":false,"children":[{"id":"options-functions","label":"Functions","collapsed":false},{"id":"options-constants","label":"Constants and variables","collapsed":false}]},{"id":"keys","label":"Keys and bindings","collapsed":false},{"id":"buffers","label":"Buffers","collapsed":false},{"id":"layout","label":"Layout and geometry","collapsed":false},{"id":"environment","label":"Environment","collapsed":false},{"id":"capabilities","label":"Terminal capabilities","collapsed":false},{"id":"version","label":"Versions","collapsed":false},{"id":"commands","label":"Commands","collapsed":false},{"id":"control","label":"Control mode","collapsed":false},{"id":"formats","label":"Formats","collapsed":false},{"id":"queries","label":"Queries","collapsed":false,"children":[{"id":"queries-fields","label":"Fields","collapsed":false},{"id":"queries-operators","label":"Operators","collapsed":false},{"id":"queries-expressions","label":"Expressions","collapsed":false}]},{"id":"snapshots","label":"Snapshots","collapsed":false},{"id":"workspace","label":"Workspaces","collapsed":false,"children":[{"id":"workspace-plan","label":"Plans","collapsed":false},{"id":"workspace-steps","label":"Steps","collapsed":false},{"id":"workspace-targets","label":"Targets and slots","collapsed":false},{"id":"workspace-session","label":"Session","collapsed":false},{"id":"workspace-window","label":"Window","collapsed":false},{"id":"workspace-pane","label":"Pane","collapsed":false},{"id":"workspace-functions","label":"Functions","collapsed":false},{"id":"workspace-constants","label":"Constants and variables","collapsed":false}]},{"id":"requests","label":"Requests","collapsed":true,"children":[{"id":"requests-server","label":"Server","collapsed":false},{"id":"requests-session","label":"Session","collapsed":false},{"id":"requests-window","label":"Window","collapsed":false},{"id":"requests-pane","label":"Pane","collapsed":false},{"id":"requests-client","label":"Client","collapsed":false}]},{"id":"errors","label":"Errors","collapsed":true,"children":[{"id":"errors-server","label":"Server","collapsed":false},{"id":"errors-session","label":"Session","collapsed":false},{"id":"errors-window","label":"Window","collapsed":false},{"id":"errors-pane","label":"Pane","collapsed":false}]},{"id":"constants","label":"Constants and enums","collapsed":true,"children":[{"id":"constants-server","label":"Server","collapsed":false},{"id":"constants-session","label":"Session","collapsed":false},{"id":"constants-window","label":"Window","collapsed":false},{"id":"constants-pane","label":"Pane","collapsed":false},{"id":"constants-client","label":"Client","collapsed":false}]},{"id":"runtime","label":"Runtime adapters","collapsed":false},{"id":"async","label":"Async","collapsed":false},{"id":"mcp","label":"MCP","collapsed":true,"children":[{"id":"mcp-functions","label":"Functions","collapsed":false},{"id":"mcp-constants","label":"Constants and variables","collapsed":false}]},{"id":"testing","label":"Testing utilities","collapsed":true},{"id":"internal","label":"Internal","collapsed":true,"children":[{"id":"internal-commands","label":"Commands","collapsed":false},{"id":"internal-options","label":"Options","collapsed":false}]}],"assignments":{"server":[{"id":"io.github.libtmux.IncarnationFence.IncarnationFence","name":"IncarnationFence","slug":"io-github-libtmux-incarnationfence-incarnationfence","kind":"class"},{"id":"io.github.libtmux.Server.Server","name":"Server","slug":"io-github-libtmux-server-server","kind":"class"},{"id":"io.github.libtmux.ServerConfig.ServerConfig","name":"ServerConfig","slug":"io-github-libtmux-serverconfig-serverconfig","kind":"class"},{"id":"io.github.libtmux.ServerEndpoint.ServerEndpoint","name":"ServerEndpoint","slug":"io-github-libtmux-serverendpoint-serverendpoint","kind":"interface"},{"id":"io.github.libtmux.ServerIdentity.ServerIdentity","name":"ServerIdentity","slug":"io-github-libtmux-serveridentity-serveridentity","kind":"class"}],"session":[{"id":"io.github.libtmux.Session.Session","name":"Session","slug":"io-github-libtmux-session-session","kind":"class"},{"id":"io.github.libtmux.SessionCreation.SessionCreation","name":"SessionCreation","slug":"io-github-libtmux-sessioncreation-sessioncreation","kind":"class"},{"id":"io.github.libtmux.SessionId.SessionId","name":"SessionId","slug":"io-github-libtmux-sessionid-sessionid","kind":"class"},{"id":"io.github.libtmux.SessionLookup.SessionLookup","name":"SessionLookup","slug":"io-github-libtmux-sessionlookup-sessionlookup","kind":"class"},{"id":"io.github.libtmux.SessionSpec.SessionSpec","name":"SessionSpec","slug":"io-github-libtmux-sessionspec-sessionspec","kind":"class"},{"id":"io.github.libtmux.Session_.Session_","name":"Session_","slug":"io-github-libtmux-session_-session_","kind":"class"}],"window":[{"id":"io.github.libtmux.Window.Window","name":"Window","slug":"io-github-libtmux-window-window","kind":"class"},{"id":"io.github.libtmux.WindowId.WindowId","name":"WindowId","slug":"io-github-libtmux-windowid-windowid","kind":"class"},{"id":"io.github.libtmux.WindowIndex.WindowIndex","name":"WindowIndex","slug":"io-github-libtmux-windowindex-windowindex","kind":"class"},{"id":"io.github.libtmux.WindowLayout.WindowLayout","name":"WindowLayout","slug":"io-github-libtmux-windowlayout-windowlayout","kind":"interface"},{"id":"io.github.libtmux.WindowPlacement.WindowPlacement","name":"WindowPlacement","slug":"io-github-libtmux-windowplacement-windowplacement","kind":"enum"},{"id":"io.github.libtmux.WindowSpec.WindowSpec","name":"WindowSpec","slug":"io-github-libtmux-windowspec-windowspec","kind":"class"},{"id":"io.github.libtmux.Window_.Window_","name":"Window_","slug":"io-github-libtmux-window_-window_","kind":"class"},{"id":"io.github.libtmux.workspace.WindowSpec.WindowSpec","name":"WindowSpec","slug":"io-github-libtmux-workspace-windowspec-windowspec","kind":"class"}],"pane":[{"id":"io.github.libtmux.Pane.Pane","name":"Pane","slug":"io-github-libtmux-pane-pane","kind":"class"},{"id":"io.github.libtmux.PaneCommand.PaneCommand","name":"PaneCommand","slug":"io-github-libtmux-panecommand-panecommand","kind":"class"},{"id":"io.github.libtmux.PaneEcho.PaneEcho","name":"PaneEcho","slug":"io-github-libtmux-paneecho-paneecho","kind":"class"},{"id":"io.github.libtmux.PaneEdges.PaneEdges","name":"PaneEdges","slug":"io-github-libtmux-paneedges-paneedges","kind":"class"},{"id":"io.github.libtmux.PaneId.PaneId","name":"PaneId","slug":"io-github-libtmux-paneid-paneid","kind":"class"},{"id":"io.github.libtmux.PaneInput.PaneInput","name":"PaneInput","slug":"io-github-libtmux-paneinput-paneinput","kind":"class"},{"id":"io.github.libtmux.PanePosition.PanePosition","name":"PanePosition","slug":"io-github-libtmux-paneposition-paneposition","kind":"class"},{"id":"io.github.libtmux.PaneRun.PaneRun","name":"PaneRun","slug":"io-github-libtmux-panerun-panerun","kind":"class"},{"id":"io.github.libtmux.PaneSize.PaneSize","name":"PaneSize","slug":"io-github-libtmux-panesize-panesize","kind":"interface"},{"id":"io.github.libtmux.PaneStart.PaneStart","name":"PaneStart","slug":"io-github-libtmux-panestart-panestart","kind":"interface"},{"id":"io.github.libtmux.PaneWait.PaneWait","name":"PaneWait","slug":"io-github-libtmux-panewait-panewait","kind":"class"},{"id":"io.github.libtmux.Pane_.Pane_","name":"Pane_","slug":"io-github-libtmux-pane_-pane_","kind":"class"},{"id":"io.github.libtmux.workspace.PaneSpec.PaneSpec","name":"PaneSpec","slug":"io-github-libtmux-workspace-panespec-panespec","kind":"class"}],"client":[{"id":"io.github.libtmux.Client.Client","name":"Client","slug":"io-github-libtmux-client-client","kind":"class"},{"id":"io.github.libtmux.ClientAttachment.ClientAttachment","name":"ClientAttachment","slug":"io-github-libtmux-clientattachment-clientattachment","kind":"class"},{"id":"io.github.libtmux.Client_.Client_","name":"Client_","slug":"io-github-libtmux-client_-client_","kind":"class"}],"hooks":[{"id":"io.github.libtmux.Hooks.Hooks","name":"Hooks","slug":"io-github-libtmux-hooks-hooks","kind":"class"}],"options":[{"id":"io.github.libtmux.OptionKey.OptionKey","name":"OptionKey","slug":"io-github-libtmux-optionkey-optionkey","kind":"class"}],"options-functions":[],"options-constants":[],"keys":[{"id":"io.github.libtmux.Keys.Keys","name":"Keys","slug":"io-github-libtmux-keys-keys","kind":"class"}],"buffers":[{"id":"io.github.libtmux.BufferInfo.BufferInfo","name":"BufferInfo","slug":"io-github-libtmux-bufferinfo-bufferinfo","kind":"class"},{"id":"io.github.libtmux.Buffers.Buffers","name":"Buffers","slug":"io-github-libtmux-buffers-buffers","kind":"class"}],"layout":[{"id":"io.github.libtmux.Dimensions.Dimensions","name":"Dimensions","slug":"io-github-libtmux-dimensions-dimensions","kind":"class"},{"id":"io.github.libtmux.Direction.Direction","name":"Direction","slug":"io-github-libtmux-direction-direction","kind":"enum"},{"id":"io.github.libtmux.JsonLayout.JsonLayout","name":"JsonLayout","slug":"io-github-libtmux-jsonlayout-jsonlayout","kind":"class"},{"id":"io.github.libtmux.Layout.Layout","name":"Layout","slug":"io-github-libtmux-layout-layout","kind":"enum"},{"id":"io.github.libtmux.Layouts.Layouts","name":"Layouts","slug":"io-github-libtmux-layouts-layouts","kind":"class"},{"id":"io.github.libtmux.SplitDirection.SplitDirection","name":"SplitDirection","slug":"io-github-libtmux-splitdirection-splitdirection","kind":"enum"},{"id":"io.github.libtmux.SplitSpec.SplitSpec","name":"SplitSpec","slug":"io-github-libtmux-splitspec-splitspec","kind":"class"}],"environment":[{"id":"io.github.libtmux.Environment.Environment","name":"Environment","slug":"io-github-libtmux-environment-environment","kind":"class"},{"id":"io.github.libtmux.TmuxEnvironment.TmuxEnvironment","name":"TmuxEnvironment","slug":"io-github-libtmux-tmuxenvironment-tmuxenvironment","kind":"class"}],"capabilities":[],"version":[{"id":"io.github.libtmux.TmuxVersion.TmuxVersion","name":"TmuxVersion","slug":"io-github-libtmux-tmuxversion-tmuxversion","kind":"class"}],"commands":[{"id":"io.github.libtmux.CommandChain.CommandChain","name":"CommandChain","slug":"io-github-libtmux-commandchain-commandchain","kind":"class"},{"id":"io.github.libtmux.Commands.Commands","name":"Commands","slug":"io-github-libtmux-commands-commands","kind":"class"},{"id":"io.github.libtmux.MessageLog.MessageLog","name":"MessageLog","slug":"io-github-libtmux-messagelog-messagelog","kind":"class"},{"id":"io.github.libtmux.PrintedText.PrintedText","name":"PrintedText","slug":"io-github-libtmux-printedtext-printedtext","kind":"class"},{"id":"io.github.libtmux.Prompt.Prompt","name":"Prompt","slug":"io-github-libtmux-prompt-prompt","kind":"class"},{"id":"io.github.libtmux.Shell.Shell","name":"Shell","slug":"io-github-libtmux-shell-shell","kind":"class"},{"id":"io.github.libtmux.transport.DispatchOutcome.DispatchOutcome","name":"DispatchOutcome","slug":"io-github-libtmux-transport-dispatchoutcome-dispatchoutcome","kind":"enum"},{"id":"io.github.libtmux.transport.Idempotence.Idempotence","name":"Idempotence","slug":"io-github-libtmux-transport-idempotence-idempotence","kind":"enum"},{"id":"io.github.libtmux.transport.OperationObserver.OperationObserver","name":"OperationObserver","slug":"io-github-libtmux-transport-operationobserver-operationobserver","kind":"interface"},{"id":"io.github.libtmux.transport.OperationReport.OperationReport","name":"OperationReport","slug":"io-github-libtmux-transport-operationreport-operationreport","kind":"class"},{"id":"io.github.libtmux.transport.OutputDecoder.OutputDecoder","name":"OutputDecoder","slug":"io-github-libtmux-transport-outputdecoder-outputdecoder","kind":"class"},{"id":"io.github.libtmux.transport.ProcessTransport.ProcessTransport","name":"ProcessTransport","slug":"io-github-libtmux-transport-processtransport-processtransport","kind":"class"},{"id":"io.github.libtmux.transport.TmuxTransport.TmuxTransport","name":"TmuxTransport","slug":"io-github-libtmux-transport-tmuxtransport-tmuxtransport","kind":"interface"}],"control":[{"id":"io.github.libtmux.control.ControlClient.ControlClient","name":"ControlClient","slug":"io-github-libtmux-control-controlclient-controlclient","kind":"class"},{"id":"io.github.libtmux.control.ControlLineReader.ControlLineReader","name":"ControlLineReader","slug":"io-github-libtmux-control-controllinereader-controllinereader","kind":"class"},{"id":"io.github.libtmux.control.ControlProtocol.ControlProtocol","name":"ControlProtocol","slug":"io-github-libtmux-control-controlprotocol-controlprotocol","kind":"class"},{"id":"io.github.libtmux.control.ControlReply.ControlReply","name":"ControlReply","slug":"io-github-libtmux-control-controlreply-controlreply","kind":"class"},{"id":"io.github.libtmux.control.ControlWriter.ControlWriter","name":"ControlWriter","slug":"io-github-libtmux-control-controlwriter-controlwriter","kind":"class"},{"id":"io.github.libtmux.control.Delivery.Delivery","name":"Delivery","slug":"io-github-libtmux-control-delivery-delivery","kind":"interface"},{"id":"io.github.libtmux.control.EventSubscription.EventSubscription","name":"EventSubscription","slug":"io-github-libtmux-control-eventsubscription-eventsubscription","kind":"class"},{"id":"io.github.libtmux.control.Notification.Notification","name":"Notification","slug":"io-github-libtmux-control-notification-notification","kind":"interface"},{"id":"io.github.libtmux.control.PaneOutput.PaneOutput","name":"PaneOutput","slug":"io-github-libtmux-control-paneoutput-paneoutput","kind":"class"},{"id":"io.github.libtmux.transport.ControlCarrier.ControlCarrier","name":"ControlCarrier","slug":"io-github-libtmux-transport-controlcarrier-controlcarrier","kind":"interface"}],"formats":[{"id":"io.github.libtmux.format.RowFormat.RowFormat","name":"RowFormat","slug":"io-github-libtmux-format-rowformat-rowformat","kind":"class"},{"id":"io.github.libtmux.format.Tokens.Tokens","name":"Tokens","slug":"io-github-libtmux-format-tokens-tokens","kind":"class"},{"id":"io.github.libtmux.TmuxFormats.TmuxFormats","name":"TmuxFormats","slug":"io-github-libtmux-tmuxformats-tmuxformats","kind":"class"}],"queries":[{"id":"io.github.libtmux.query.Selections.Selections","name":"Selections","slug":"io-github-libtmux-query-selections-selections","kind":"class"},{"id":"io.github.libtmux.query.TmuxFilters.TmuxFilters","name":"TmuxFilters","slug":"io-github-libtmux-query-tmuxfilters-tmuxfilters","kind":"class"},{"id":"io.github.libtmux.jackson.FilterJson.FilterJson","name":"FilterJson","slug":"io-github-libtmux-jackson-filterjson-filterjson","kind":"class"},{"id":"io.github.libtmux.jackson.FilterModel.FilterModel","name":"FilterModel","slug":"io-github-libtmux-jackson-filtermodel-filtermodel","kind":"class"}],"queries-fields":[{"id":"io.github.libtmux.query.FieldRef.FieldRef","name":"FieldRef","slug":"io-github-libtmux-query-fieldref-fieldref","kind":"class"},{"id":"io.github.libtmux.query.Fields.Fields","name":"Fields","slug":"io-github-libtmux-query-fields-fields","kind":"class"}],"queries-operators":[{"id":"io.github.libtmux.query.Operator.Operator","name":"Operator","slug":"io-github-libtmux-query-operator-operator","kind":"enum"}],"queries-expressions":[{"id":"io.github.libtmux.query.FilterExpr.FilterExpr","name":"FilterExpr","slug":"io-github-libtmux-query-filterexpr-filterexpr","kind":"interface"}],"snapshots":[{"id":"io.github.libtmux.CaptureSpec.CaptureSpec","name":"CaptureSpec","slug":"io-github-libtmux-capturespec-capturespec","kind":"class"},{"id":"io.github.libtmux.snapshot.ClientState.ClientState","name":"ClientState","slug":"io-github-libtmux-snapshot-clientstate-clientstate","kind":"class"},{"id":"io.github.libtmux.snapshot.PaneState.PaneState","name":"PaneState","slug":"io-github-libtmux-snapshot-panestate-panestate","kind":"class"},{"id":"io.github.libtmux.snapshot.ServerMirror.ServerMirror","name":"ServerMirror","slug":"io-github-libtmux-snapshot-servermirror-servermirror","kind":"class"},{"id":"io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot","name":"ServerSnapshot","slug":"io-github-libtmux-snapshot-serversnapshot-serversnapshot","kind":"class"},{"id":"io.github.libtmux.snapshot.SessionState.SessionState","name":"SessionState","slug":"io-github-libtmux-snapshot-sessionstate-sessionstate","kind":"class"},{"id":"io.github.libtmux.snapshot.WindowContext.WindowContext","name":"WindowContext","slug":"io-github-libtmux-snapshot-windowcontext-windowcontext","kind":"class"},{"id":"io.github.libtmux.snapshot.WindowState.WindowState","name":"WindowState","slug":"io-github-libtmux-snapshot-windowstate-windowstate","kind":"class"},{"id":"io.github.libtmux.SnapshotCapture.SnapshotCapture","name":"SnapshotCapture","slug":"io-github-libtmux-snapshotcapture-snapshotcapture","kind":"class"},{"id":"io.github.libtmux.TextOutcome.TextOutcome","name":"TextOutcome","slug":"io-github-libtmux-textoutcome-textoutcome","kind":"enum"},{"id":"io.github.libtmux.TypedText.TypedText","name":"TypedText","slug":"io-github-libtmux-typedtext-typedtext","kind":"class"}],"workspace":[],"workspace-plan":[{"id":"io.github.libtmux.workspace.Workspace.Workspace","name":"Workspace","slug":"io-github-libtmux-workspace-workspace-workspace","kind":"class"},{"id":"io.github.libtmux.workspace.WorkspaceApplier.WorkspaceApplier","name":"WorkspaceApplier","slug":"io-github-libtmux-workspace-workspaceapplier-workspaceapplier","kind":"class"},{"id":"io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder","name":"WorkspaceBuilder","slug":"io-github-libtmux-workspace-workspacebuilder-workspacebuilder","kind":"class"},{"id":"io.github.libtmux.workspace.WorkspaceParser.WorkspaceParser","name":"WorkspaceParser","slug":"io-github-libtmux-workspace-workspaceparser-workspaceparser","kind":"class"}],"workspace-steps":[],"workspace-targets":[],"workspace-session":[],"workspace-window":[],"workspace-pane":[],"workspace-functions":[],"workspace-constants":[],"requests":[{"id":"io.github.libtmux.transport.CommandRequest.CommandRequest","name":"CommandRequest","slug":"io-github-libtmux-transport-commandrequest-commandrequest","kind":"class"}],"requests-server":[],"requests-session":[],"requests-window":[],"requests-pane":[],"requests-client":[],"errors":[{"id":"io.github.libtmux.exception.CardinalityException.CardinalityException","name":"CardinalityException","slug":"io-github-libtmux-exception-cardinalityexception-cardinalityexception","kind":"class"},{"id":"io.github.libtmux.exception.CommandRejectedException.CommandRejectedException","name":"CommandRejectedException","slug":"io-github-libtmux-exception-commandrejectedexception-commandrejectedexception","kind":"class"},{"id":"io.github.libtmux.exception.ControlEndedException.ControlEndedException","name":"ControlEndedException","slug":"io-github-libtmux-exception-controlendedexception-controlendedexception","kind":"class"},{"id":"io.github.libtmux.exception.DispatchException.DispatchException","name":"DispatchException","slug":"io-github-libtmux-exception-dispatchexception-dispatchexception","kind":"class"},{"id":"io.github.libtmux.exception.LibTmuxException.LibTmuxException","name":"LibTmuxException","slug":"io-github-libtmux-exception-libtmuxexception-libtmuxexception","kind":"class"},{"id":"io.github.libtmux.exception.MalformedResponseException.MalformedResponseException","name":"MalformedResponseException","slug":"io-github-libtmux-exception-malformedresponseexception-malformedresponseexception","kind":"class"},{"id":"io.github.libtmux.exception.TargetGoneException.TargetGoneException","name":"TargetGoneException","slug":"io-github-libtmux-exception-targetgoneexception-targetgoneexception","kind":"class"},{"id":"io.github.libtmux.exception.UnencodableTextException.UnencodableTextException","name":"UnencodableTextException","slug":"io-github-libtmux-exception-unencodabletextexception-unencodabletextexception","kind":"class"},{"id":"io.github.libtmux.exception.UnsupportedFeatureException.UnsupportedFeatureException","name":"UnsupportedFeatureException","slug":"io-github-libtmux-exception-unsupportedfeatureexception-unsupportedfeatureexception","kind":"class"},{"id":"io.github.libtmux.jackson.SchemaException.SchemaException","name":"SchemaException","slug":"io-github-libtmux-jackson-schemaexception-schemaexception","kind":"class"}],"errors-server":[{"id":"io.github.libtmux.exception.ServerClosedException.ServerClosedException","name":"ServerClosedException","slug":"io-github-libtmux-exception-serverclosedexception-serverclosedexception","kind":"class"},{"id":"io.github.libtmux.exception.ServerUnavailableException.ServerUnavailableException","name":"ServerUnavailableException","slug":"io-github-libtmux-exception-serverunavailableexception-serverunavailableexception","kind":"class"}],"errors-session":[],"errors-window":[],"errors-pane":[],"constants":[{"id":"io.github.libtmux.batch.BatchResult.BatchResult","name":"BatchResult","slug":"io-github-libtmux-batch-batchresult-batchresult","kind":"class"},{"id":"io.github.libtmux.batch.OperationResult.OperationResult","name":"OperationResult","slug":"io-github-libtmux-batch-operationresult-operationresult","kind":"class"},{"id":"io.github.libtmux.catalog.Kind.Kind","name":"Kind","slug":"io-github-libtmux-catalog-kind-kind","kind":"enum"},{"id":"io.github.libtmux.control.ControlEvent.ControlEvent","name":"ControlEvent","slug":"io-github-libtmux-control-controlevent-controlevent","kind":"class"},{"id":"io.github.libtmux.Options.Options","name":"Options","slug":"io-github-libtmux-options-options","kind":"class"},{"id":"io.github.libtmux.query.FieldKind.FieldKind","name":"FieldKind","slug":"io-github-libtmux-query-fieldkind-fieldkind","kind":"enum"},{"id":"io.github.libtmux.transport.CommandResult.CommandResult","name":"CommandResult","slug":"io-github-libtmux-transport-commandresult-commandresult","kind":"class"}],"constants-server":[],"constants-session":[],"constants-window":[],"constants-pane":[{"id":"io.github.libtmux.PaneMode.PaneMode","name":"PaneMode","slug":"io-github-libtmux-panemode-panemode","kind":"enum"}],"constants-client":[],"runtime":[],"async":[],"mcp":[{"id":"io.github.libtmux.mcp.Main.Main","name":"Main","slug":"io-github-libtmux-mcp-main-main","kind":"class"},{"id":"io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer","name":"TmuxMcpServer","slug":"io-github-libtmux-mcp-tmuxmcpserver-tmuxmcpserver","kind":"class"}],"mcp-functions":[],"mcp-constants":[],"testing":[{"id":"io.github.libtmux.junit5.FakeControlClient.FakeControlClient","name":"FakeControlClient","slug":"io-github-libtmux-junit5-fakecontrolclient-fakecontrolclient","kind":"class"},{"id":"io.github.libtmux.junit5.FakePane.FakePane","name":"FakePane","slug":"io-github-libtmux-junit5-fakepane-fakepane","kind":"class"},{"id":"io.github.libtmux.junit5.FakeSession.FakeSession","name":"FakeSession","slug":"io-github-libtmux-junit5-fakesession-fakesession","kind":"class"},{"id":"io.github.libtmux.junit5.FakeTmux.FakeTmux","name":"FakeTmux","slug":"io-github-libtmux-junit5-faketmux-faketmux","kind":"class"},{"id":"io.github.libtmux.junit5.FakeWindow.FakeWindow","name":"FakeWindow","slug":"io-github-libtmux-junit5-fakewindow-fakewindow","kind":"class"},{"id":"io.github.libtmux.junit5.Flags.Flags","name":"Flags","slug":"io-github-libtmux-junit5-flags-flags","kind":"class"},{"id":"io.github.libtmux.junit5.Formats.Formats","name":"Formats","slug":"io-github-libtmux-junit5-formats-formats","kind":"class"},{"id":"io.github.libtmux.junit5.Groups.Groups","name":"Groups","slug":"io-github-libtmux-junit5-groups-groups","kind":"class"},{"id":"io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture","name":"NamedServerFixture","slug":"io-github-libtmux-junit5-namedserverfixture-namedserverfixture","kind":"class"},{"id":"io.github.libtmux.junit5.Target.Target","name":"Target","slug":"io-github-libtmux-junit5-target-target","kind":"class"},{"id":"io.github.libtmux.junit5.TmuxExtension.TmuxExtension","name":"TmuxExtension","slug":"io-github-libtmux-junit5-tmuxextension-tmuxextension","kind":"class"},{"id":"io.github.libtmux.junit5.TmuxSocketPath.TmuxSocketPath","name":"TmuxSocketPath","slug":"io-github-libtmux-junit5-tmuxsocketpath-tmuxsocketpath","kind":"class"}],"internal":[{"id":"io.github.libtmux.internal.ErrorText.ErrorText","name":"ErrorText","slug":"io-github-libtmux-internal-errortext-errortext","kind":"class"},{"id":"io.github.libtmux.internal.Utf8.Utf8","name":"Utf8","slug":"io-github-libtmux-internal-utf8-utf8","kind":"class"}],"internal-commands":[{"id":"io.github.libtmux.internal.CommandStrings.CommandStrings","name":"CommandStrings","slug":"io-github-libtmux-internal-commandstrings-commandstrings","kind":"class"},{"id":"io.github.libtmux.internal.ProcessTree.ProcessTree","name":"ProcessTree","slug":"io-github-libtmux-internal-processtree-processtree","kind":"class"}],"internal-options":[]},"placement":{"io.github.libtmux.IncarnationFence.IncarnationFence":"server","io.github.libtmux.Server.Server":"server","io.github.libtmux.ServerConfig.ServerConfig":"server","io.github.libtmux.ServerEndpoint.ServerEndpoint":"server","io.github.libtmux.ServerIdentity.ServerIdentity":"server","io.github.libtmux.Session.Session":"session","io.github.libtmux.SessionCreation.SessionCreation":"session","io.github.libtmux.SessionId.SessionId":"session","io.github.libtmux.SessionLookup.SessionLookup":"session","io.github.libtmux.SessionSpec.SessionSpec":"session","io.github.libtmux.Session_.Session_":"session","io.github.libtmux.Window.Window":"window","io.github.libtmux.WindowId.WindowId":"window","io.github.libtmux.WindowIndex.WindowIndex":"window","io.github.libtmux.WindowLayout.WindowLayout":"window","io.github.libtmux.WindowPlacement.WindowPlacement":"window","io.github.libtmux.WindowSpec.WindowSpec":"window","io.github.libtmux.Window_.Window_":"window","io.github.libtmux.workspace.WindowSpec.WindowSpec":"window","io.github.libtmux.Pane.Pane":"pane","io.github.libtmux.PaneCommand.PaneCommand":"pane","io.github.libtmux.PaneEcho.PaneEcho":"pane","io.github.libtmux.PaneEdges.PaneEdges":"pane","io.github.libtmux.PaneId.PaneId":"pane","io.github.libtmux.PaneInput.PaneInput":"pane","io.github.libtmux.PanePosition.PanePosition":"pane","io.github.libtmux.PaneRun.PaneRun":"pane","io.github.libtmux.PaneSize.PaneSize":"pane","io.github.libtmux.PaneStart.PaneStart":"pane","io.github.libtmux.PaneWait.PaneWait":"pane","io.github.libtmux.Pane_.Pane_":"pane","io.github.libtmux.workspace.PaneSpec.PaneSpec":"pane","io.github.libtmux.Client.Client":"client","io.github.libtmux.ClientAttachment.ClientAttachment":"client","io.github.libtmux.Client_.Client_":"client","io.github.libtmux.Hooks.Hooks":"hooks","io.github.libtmux.OptionKey.OptionKey":"options","io.github.libtmux.Keys.Keys":"keys","io.github.libtmux.BufferInfo.BufferInfo":"buffers","io.github.libtmux.Buffers.Buffers":"buffers","io.github.libtmux.Dimensions.Dimensions":"layout","io.github.libtmux.Direction.Direction":"layout","io.github.libtmux.JsonLayout.JsonLayout":"layout","io.github.libtmux.Layout.Layout":"layout","io.github.libtmux.Layouts.Layouts":"layout","io.github.libtmux.SplitDirection.SplitDirection":"layout","io.github.libtmux.SplitSpec.SplitSpec":"layout","io.github.libtmux.Environment.Environment":"environment","io.github.libtmux.TmuxEnvironment.TmuxEnvironment":"environment","io.github.libtmux.TmuxVersion.TmuxVersion":"version","io.github.libtmux.CommandChain.CommandChain":"commands","io.github.libtmux.Commands.Commands":"commands","io.github.libtmux.MessageLog.MessageLog":"commands","io.github.libtmux.PrintedText.PrintedText":"commands","io.github.libtmux.Prompt.Prompt":"commands","io.github.libtmux.Shell.Shell":"commands","io.github.libtmux.transport.DispatchOutcome.DispatchOutcome":"commands","io.github.libtmux.transport.Idempotence.Idempotence":"commands","io.github.libtmux.transport.OperationObserver.OperationObserver":"commands","io.github.libtmux.transport.OperationReport.OperationReport":"commands","io.github.libtmux.transport.OutputDecoder.OutputDecoder":"commands","io.github.libtmux.transport.ProcessTransport.ProcessTransport":"commands","io.github.libtmux.transport.TmuxTransport.TmuxTransport":"commands","io.github.libtmux.control.ControlClient.ControlClient":"control","io.github.libtmux.control.ControlLineReader.ControlLineReader":"control","io.github.libtmux.control.ControlProtocol.ControlProtocol":"control","io.github.libtmux.control.ControlReply.ControlReply":"control","io.github.libtmux.control.ControlWriter.ControlWriter":"control","io.github.libtmux.control.Delivery.Delivery":"control","io.github.libtmux.control.EventSubscription.EventSubscription":"control","io.github.libtmux.control.Notification.Notification":"control","io.github.libtmux.control.PaneOutput.PaneOutput":"control","io.github.libtmux.transport.ControlCarrier.ControlCarrier":"control","io.github.libtmux.format.RowFormat.RowFormat":"formats","io.github.libtmux.format.Tokens.Tokens":"formats","io.github.libtmux.TmuxFormats.TmuxFormats":"formats","io.github.libtmux.query.Selections.Selections":"queries","io.github.libtmux.query.TmuxFilters.TmuxFilters":"queries","io.github.libtmux.jackson.FilterJson.FilterJson":"queries","io.github.libtmux.jackson.FilterModel.FilterModel":"queries","io.github.libtmux.query.FieldRef.FieldRef":"queries-fields","io.github.libtmux.query.Fields.Fields":"queries-fields","io.github.libtmux.query.Operator.Operator":"queries-operators","io.github.libtmux.query.FilterExpr.FilterExpr":"queries-expressions","io.github.libtmux.CaptureSpec.CaptureSpec":"snapshots","io.github.libtmux.snapshot.ClientState.ClientState":"snapshots","io.github.libtmux.snapshot.PaneState.PaneState":"snapshots","io.github.libtmux.snapshot.ServerMirror.ServerMirror":"snapshots","io.github.libtmux.snapshot.ServerSnapshot.ServerSnapshot":"snapshots","io.github.libtmux.snapshot.SessionState.SessionState":"snapshots","io.github.libtmux.snapshot.WindowContext.WindowContext":"snapshots","io.github.libtmux.snapshot.WindowState.WindowState":"snapshots","io.github.libtmux.SnapshotCapture.SnapshotCapture":"snapshots","io.github.libtmux.TextOutcome.TextOutcome":"snapshots","io.github.libtmux.TypedText.TypedText":"snapshots","io.github.libtmux.workspace.Workspace.Workspace":"workspace-plan","io.github.libtmux.workspace.WorkspaceApplier.WorkspaceApplier":"workspace-plan","io.github.libtmux.workspace.WorkspaceBuilder.WorkspaceBuilder":"workspace-plan","io.github.libtmux.workspace.WorkspaceParser.WorkspaceParser":"workspace-plan","io.github.libtmux.transport.CommandRequest.CommandRequest":"requests","io.github.libtmux.exception.CardinalityException.CardinalityException":"errors","io.github.libtmux.exception.CommandRejectedException.CommandRejectedException":"errors","io.github.libtmux.exception.ControlEndedException.ControlEndedException":"errors","io.github.libtmux.exception.DispatchException.DispatchException":"errors","io.github.libtmux.exception.LibTmuxException.LibTmuxException":"errors","io.github.libtmux.exception.MalformedResponseException.MalformedResponseException":"errors","io.github.libtmux.exception.TargetGoneException.TargetGoneException":"errors","io.github.libtmux.exception.UnencodableTextException.UnencodableTextException":"errors","io.github.libtmux.exception.UnsupportedFeatureException.UnsupportedFeatureException":"errors","io.github.libtmux.jackson.SchemaException.SchemaException":"errors","io.github.libtmux.exception.ServerClosedException.ServerClosedException":"errors-server","io.github.libtmux.exception.ServerUnavailableException.ServerUnavailableException":"errors-server","io.github.libtmux.batch.BatchResult.BatchResult":"constants","io.github.libtmux.batch.OperationResult.OperationResult":"constants","io.github.libtmux.catalog.Kind.Kind":"constants","io.github.libtmux.control.ControlEvent.ControlEvent":"constants","io.github.libtmux.Options.Options":"constants","io.github.libtmux.query.FieldKind.FieldKind":"constants","io.github.libtmux.transport.CommandResult.CommandResult":"constants","io.github.libtmux.PaneMode.PaneMode":"constants-pane","io.github.libtmux.mcp.Main.Main":"mcp","io.github.libtmux.mcp.TmuxMcpServer.TmuxMcpServer":"mcp","io.github.libtmux.junit5.FakeControlClient.FakeControlClient":"testing","io.github.libtmux.junit5.FakePane.FakePane":"testing","io.github.libtmux.junit5.FakeSession.FakeSession":"testing","io.github.libtmux.junit5.FakeTmux.FakeTmux":"testing","io.github.libtmux.junit5.FakeWindow.FakeWindow":"testing","io.github.libtmux.junit5.Flags.Flags":"testing","io.github.libtmux.junit5.Formats.Formats":"testing","io.github.libtmux.junit5.Groups.Groups":"testing","io.github.libtmux.junit5.NamedServerFixture.NamedServerFixture":"testing","io.github.libtmux.junit5.Target.Target":"testing","io.github.libtmux.junit5.TmuxExtension.TmuxExtension":"testing","io.github.libtmux.junit5.TmuxSocketPath.TmuxSocketPath":"testing","io.github.libtmux.internal.ErrorText.ErrorText":"internal","io.github.libtmux.internal.Utf8.Utf8":"internal","io.github.libtmux.internal.CommandStrings.CommandStrings":"internal-commands","io.github.libtmux.internal.ProcessTree.ProcessTree":"internal-commands","io.github.libtmux.batch.Batch.Batch":"__unplaced","io.github.libtmux.batch.OperationOutcome.OperationOutcome":"__unplaced","io.github.libtmux.catalog.Advanced.Advanced":"__unplaced","io.github.libtmux.catalog.Operation.Operation":"__unplaced","io.github.libtmux.Channel.Channel":"__unplaced","io.github.libtmux.TargetIds.TargetIds":"__unplaced","io.github.libtmux.WakeReason.WakeReason":"__unplaced","io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels":"__unplaced"},"unplaced":[{"id":"io.github.libtmux.batch.Batch.Batch","name":"Batch","slug":"io-github-libtmux-batch-batch-batch","kind":"class"},{"id":"io.github.libtmux.batch.OperationOutcome.OperationOutcome","name":"OperationOutcome","slug":"io-github-libtmux-batch-operationoutcome-operationoutcome","kind":"enum"},{"id":"io.github.libtmux.catalog.Advanced.Advanced","name":"Advanced","slug":"io-github-libtmux-catalog-advanced-advanced","kind":"interface"},{"id":"io.github.libtmux.catalog.Operation.Operation","name":"Operation","slug":"io-github-libtmux-catalog-operation-operation","kind":"interface"},{"id":"io.github.libtmux.Channel.Channel","name":"Channel","slug":"io-github-libtmux-channel-channel","kind":"class"},{"id":"io.github.libtmux.TargetIds.TargetIds","name":"TargetIds","slug":"io-github-libtmux-targetids-targetids","kind":"class"},{"id":"io.github.libtmux.WakeReason.WakeReason","name":"WakeReason","slug":"io-github-libtmux-wakereason-wakereason","kind":"enum"},{"id":"io.github.libtmux.jackson.LibTmuxModels.LibTmuxModels","name":"LibTmuxModels","slug":"io-github-libtmux-jackson-libtmuxmodels-libtmuxmodels","kind":"class"}],"diagnostics":{"unmatched":[],"deadBuckets":["options-functions","options-constants","capabilities","workspace-steps","workspace-targets","workspace-session","workspace-window","workspace-pane","workspace-functions","workspace-constants","requests-server","requests-session","requests-window","requests-pane","requests-client","errors-session","errors-window","errors-pane","constants-server","constants-session","constants-window","constants-client","runtime","async","mcp-functions","mcp-constants","internal-options"],"ambiguous":[],"staleUnsettled":[]}} diff --git a/site/src/data/api/kotlin.json b/site/src/data/api/kotlin.json index 0ef13ed9d..f0bdc31fe 100644 --- a/site/src/data/api/kotlin.json +++ b/site/src/data/api/kotlin.json @@ -1 +1 @@ -{"port":"kotlin","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractor":"@libtmux/api-model (kotlin syntax)","symbols":[{"id":"io.github.libtmux.kotlin.Batch","name":"Batch","kind":"class","signatures":[{"raw":"public class Batch","params":[]}],"imports":{"JavaBatch":"io.github.libtmux.batch.Batch"},"modifiers":[],"doc":{"summary":"Several tmux commands collected to run together in one invocation.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `BatchOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Batch.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch"},{"id":"io.github.libtmux.kotlin.Batch.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Batch","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Batch.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch-server"},{"id":"io.github.libtmux.kotlin.Batch.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Batch","signatures":[{"raw":"public val asJava: JavaBatch","params":[],"returns":"JavaBatch"}],"imports":{"JavaBatch":"io.github.libtmux.batch.Batch"},"modifiers":[],"doc":{"summary":"The Java batch this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Batch.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch-asjava"},{"id":"io.github.libtmux.kotlin.Batch.add","name":"add","kind":"method","parent":"io.github.libtmux.kotlin.Batch","signatures":[{"raw":"public fun add(vararg argv: String): Batch","params":[{"name":"argv","type":"String"}],"returns":"Batch"},{"raw":"public fun add(argv: List): Batch","params":[{"name":"argv","type":"List"}],"returns":"Batch"}],"imports":{"JavaBatch":"io.github.libtmux.batch.Batch"},"modifiers":["overload"],"doc":{"summary":"Adds one tmux command, its arguments already separate elements. Collected, not sent."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Batch.kt","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch-add"},{"id":"io.github.libtmux.kotlin.Batch.size","name":"size","kind":"method","parent":"io.github.libtmux.kotlin.Batch","signatures":[{"raw":"public fun size(): Int","params":[],"returns":"Int"}],"imports":{"JavaBatch":"io.github.libtmux.batch.Batch"},"modifiers":[],"doc":{"summary":"How many operations have been collected. A pure, local read."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Batch.kt","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch-size"},{"id":"io.github.libtmux.kotlin.Batch.length","name":"length","kind":"method","parent":"io.github.libtmux.kotlin.Batch","signatures":[{"raw":"public fun length(): Int","params":[],"returns":"Int"}],"imports":{"JavaBatch":"io.github.libtmux.batch.Batch"},"modifiers":[],"doc":{"summary":"How many bytes the collected operations come to as the one command tmux parses. A pure, local read."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Batch.kt","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch-length"},{"id":"io.github.libtmux.kotlin.Batch.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Batch","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaBatch":"io.github.libtmux.batch.Batch"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Batch.kt","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch-equals"},{"id":"io.github.libtmux.kotlin.Batch.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Batch","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaBatch":"io.github.libtmux.batch.Batch"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Batch.kt","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch-hashcode"},{"id":"io.github.libtmux.kotlin.Batch.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Batch","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaBatch":"io.github.libtmux.batch.Batch"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Batch.kt","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch-tostring"},{"id":"io.github.libtmux.kotlin.Buffers","name":"Buffers","kind":"class","signatures":[{"raw":"public class Buffers","params":[]}],"imports":{"JavaBuffers":"io.github.libtmux.Buffers"},"modifiers":[],"doc":{"summary":"The tmux server's paste buffers.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `BuffersOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Buffers.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers"},{"id":"io.github.libtmux.kotlin.Buffers.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Buffers","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Buffers.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-server"},{"id":"io.github.libtmux.kotlin.Buffers.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"public val asJava: JavaBuffers","params":[],"returns":"JavaBuffers"}],"imports":{"JavaBuffers":"io.github.libtmux.Buffers"},"modifiers":[],"doc":{"summary":"The Java buffers this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Buffers.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-asjava"},{"id":"io.github.libtmux.kotlin.Buffers.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaBuffers":"io.github.libtmux.Buffers"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Buffers.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-equals"},{"id":"io.github.libtmux.kotlin.Buffers.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaBuffers":"io.github.libtmux.Buffers"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Buffers.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-hashcode"},{"id":"io.github.libtmux.kotlin.Buffers.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaBuffers":"io.github.libtmux.Buffers"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Buffers.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-tostring"},{"id":"io.github.libtmux.kotlin.Client","name":"Client","kind":"class","signatures":[{"raw":"public class Client","params":[]}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","JavaClient":"io.github.libtmux.Client"},"modifiers":[],"doc":{"summary":"An attached tmux client and its captured properties.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `ClientOperations.kt`. [Companion] hosts the generated query field namespace."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client"},{"id":"io.github.libtmux.kotlin.Client.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Client","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-server"},{"id":"io.github.libtmux.kotlin.Client.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public val asJava: JavaClient","params":[],"returns":"JavaClient"}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","JavaClient":"io.github.libtmux.Client"},"modifiers":[],"doc":{"summary":"The Java client this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-asjava"},{"id":"io.github.libtmux.kotlin.Client.name","name":"name","kind":"property","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public val name: String","params":[],"returns":"String"}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","JavaClient":"io.github.libtmux.Client"},"modifiers":[],"doc":{"summary":"The client's terminal name, which is how tmux addresses it."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-name"},{"id":"io.github.libtmux.kotlin.Client.session","name":"session","kind":"property","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public val session: Session?","params":[],"returns":"Session?"}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","JavaClient":"io.github.libtmux.Client"},"modifiers":[],"doc":{"summary":"The session this client was attached to when captured. A pure read of the capture."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-session"},{"id":"io.github.libtmux.kotlin.Client.attachment","name":"attachment","kind":"property","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public val attachment: ClientAttachment?","params":[],"returns":"ClientAttachment?"}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","JavaClient":"io.github.libtmux.Client"},"modifiers":[],"doc":{"summary":"What this client was looking at when captured. A pure read: it issues no command."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-attachment"},{"id":"io.github.libtmux.kotlin.Client.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","JavaClient":"io.github.libtmux.Client"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-equals"},{"id":"io.github.libtmux.kotlin.Client.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","JavaClient":"io.github.libtmux.Client"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-hashcode"},{"id":"io.github.libtmux.kotlin.Client.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","JavaClient":"io.github.libtmux.Client"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-tostring"},{"id":"io.github.libtmux.kotlin.Client.Companion","name":"Companion","kind":"module","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public companion object","params":[]}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","JavaClient":"io.github.libtmux.Client"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-companion"},{"id":"io.github.libtmux.kotlin.CommandChain","name":"CommandChain","kind":"class","signatures":[{"raw":"public class CommandChain","params":[]}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"doc":{"summary":"A sequence of tmux commands where each one acts on what the last one made.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `CommandChainOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain"},{"id":"io.github.libtmux.kotlin.CommandChain.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.CommandChain","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-server"},{"id":"io.github.libtmux.kotlin.CommandChain.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"public val asJava: JavaCommandChain","params":[],"returns":"JavaCommandChain"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"doc":{"summary":"The Java chain this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-asjava"},{"id":"io.github.libtmux.kotlin.CommandChain.newWindow","name":"newWindow","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"public fun newWindow(name: String): CommandChain","params":[{"name":"name","type":"String"}],"returns":"CommandChain"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"doc":{"summary":"Makes a window named [name], which the commands after it act on. Collected, not sent."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-newwindow"},{"id":"io.github.libtmux.kotlin.CommandChain.renameWindow","name":"renameWindow","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"public fun renameWindow(name: String): CommandChain","params":[{"name":"name","type":"String"}],"returns":"CommandChain"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"doc":{"summary":"Renames the window the chain is on. Collected, not sent."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-renamewindow"},{"id":"io.github.libtmux.kotlin.CommandChain.splitLeftRight","name":"splitLeftRight","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"public fun splitLeftRight(): CommandChain","params":[],"returns":"CommandChain"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"doc":{"summary":"Splits the current pane into left and right. Collected, not sent."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-splitleftright"},{"id":"io.github.libtmux.kotlin.CommandChain.splitTopBottom","name":"splitTopBottom","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"public fun splitTopBottom(): CommandChain","params":[],"returns":"CommandChain"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"doc":{"summary":"Splits the current pane into top and bottom. Collected, not sent."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-splittopbottom"},{"id":"io.github.libtmux.kotlin.CommandChain.sendLine","name":"sendLine","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"public fun sendLine(command: String): CommandChain","params":[{"name":"command","type":"String"}],"returns":"CommandChain"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"doc":{"summary":"Types [command] into the current pane and presses Enter. Collected, not sent."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-sendline"},{"id":"io.github.libtmux.kotlin.CommandChain.then","name":"then","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"public fun then(vararg argv: String): CommandChain","params":[{"name":"argv","type":"String"}],"returns":"CommandChain"},{"raw":"public fun then(argv: List): CommandChain","params":[{"name":"argv","type":"List"}],"returns":"CommandChain"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":["overload"],"doc":{"summary":"Adds any tmux command. Collected, not sent."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-then"},{"id":"io.github.libtmux.kotlin.CommandChain.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-equals"},{"id":"io.github.libtmux.kotlin.CommandChain.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":39,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-hashcode"},{"id":"io.github.libtmux.kotlin.CommandChain.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-tostring"},{"id":"io.github.libtmux.kotlin.Commands","name":"Commands","kind":"class","signatures":[{"raw":"public class Commands","params":[]}],"imports":{"JavaCommands":"io.github.libtmux.Commands"},"modifiers":[],"doc":{"summary":"The commands this tmux knows, read without starting a server to answer.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `CommandsOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Commands.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commands"},{"id":"io.github.libtmux.kotlin.Commands.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Commands","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Commands.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commands-server"},{"id":"io.github.libtmux.kotlin.Commands.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Commands","signatures":[{"raw":"public val asJava: JavaCommands","params":[],"returns":"JavaCommands"}],"imports":{"JavaCommands":"io.github.libtmux.Commands"},"modifiers":[],"doc":{"summary":"The Java commands this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Commands.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commands-asjava"},{"id":"io.github.libtmux.kotlin.Commands.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Commands","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaCommands":"io.github.libtmux.Commands"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Commands.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commands-equals"},{"id":"io.github.libtmux.kotlin.Commands.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Commands","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaCommands":"io.github.libtmux.Commands"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Commands.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commands-hashcode"},{"id":"io.github.libtmux.kotlin.Commands.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Commands","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaCommands":"io.github.libtmux.Commands"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Commands.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commands-tostring"},{"id":"io.github.libtmux.kotlin.ControlClient","name":"ControlClient","kind":"class","signatures":[{"raw":"public class ControlClient : AutoCloseable","params":[],"returns":"AutoCloseable"}],"imports":{"ControlEvent":"io.github.libtmux.control.ControlEvent","Delivery":"io.github.libtmux.control.Delivery","PaneOutput":"io.github.libtmux.control.PaneOutput","Flow":"kotlinx.coroutines.flow.Flow","JavaControlClient":"io.github.libtmux.control.ControlClient"},"modifiers":[],"doc":{"summary":"A tmux client that stays attached and answers one command at a time.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `ControlClientOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ControlClient.kt","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient"},{"id":"io.github.libtmux.kotlin.ControlClient.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.ControlClient","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ControlClient.kt","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-server"},{"id":"io.github.libtmux.kotlin.ControlClient.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"public val asJava: JavaControlClient","params":[],"returns":"JavaControlClient"}],"imports":{"ControlEvent":"io.github.libtmux.control.ControlEvent","Delivery":"io.github.libtmux.control.Delivery","PaneOutput":"io.github.libtmux.control.PaneOutput","Flow":"kotlinx.coroutines.flow.Flow","JavaControlClient":"io.github.libtmux.control.ControlClient"},"modifiers":[],"doc":{"summary":"The Java control client this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ControlClient.kt","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-asjava"},{"id":"io.github.libtmux.kotlin.ControlClient.isAlive","name":"isAlive","kind":"property","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"public val isAlive: Boolean","params":[],"returns":"Boolean"}],"imports":{"ControlEvent":"io.github.libtmux.control.ControlEvent","Delivery":"io.github.libtmux.control.Delivery","PaneOutput":"io.github.libtmux.control.PaneOutput","Flow":"kotlinx.coroutines.flow.Flow","JavaControlClient":"io.github.libtmux.control.ControlClient"},"modifiers":[],"doc":{"summary":"Whether the client is still running."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ControlClient.kt","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-isalive"},{"id":"io.github.libtmux.kotlin.ControlClient.standardError","name":"standardError","kind":"property","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"public val standardError: String","params":[],"returns":"String"}],"imports":{"ControlEvent":"io.github.libtmux.control.ControlEvent","Delivery":"io.github.libtmux.control.Delivery","PaneOutput":"io.github.libtmux.control.PaneOutput","Flow":"kotlinx.coroutines.flow.Flow","JavaControlClient":"io.github.libtmux.control.ControlClient"},"modifiers":[],"doc":{"summary":"The error text captured from this control process, at most 4096 bytes."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ControlClient.kt","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-standarderror"},{"id":"io.github.libtmux.kotlin.ControlClient.standardErrorTruncated","name":"standardErrorTruncated","kind":"property","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"public val standardErrorTruncated: Boolean","params":[],"returns":"Boolean"}],"imports":{"ControlEvent":"io.github.libtmux.control.ControlEvent","Delivery":"io.github.libtmux.control.Delivery","PaneOutput":"io.github.libtmux.control.PaneOutput","Flow":"kotlinx.coroutines.flow.Flow","JavaControlClient":"io.github.libtmux.control.ControlClient"},"modifiers":[],"doc":{"summary":"Whether [standardError] stopped before the process finished writing it."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ControlClient.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-standarderrortruncated"},{"id":"io.github.libtmux.kotlin.ControlClient.output","name":"output","kind":"method","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"public fun output(capacity: Int, onSubscribed: suspend () -> Unit = {}): Flow>","params":[{"name":"capacity","type":"Int"},{"name":"onSubscribed","type":"suspend","default":"{}"}],"returns":"Flow>"}],"imports":{"ControlEvent":"io.github.libtmux.control.ControlEvent","Delivery":"io.github.libtmux.control.Delivery","PaneOutput":"io.github.libtmux.control.PaneOutput","Flow":"kotlinx.coroutines.flow.Flow","JavaControlClient":"io.github.libtmux.control.ControlClient"},"modifiers":[],"doc":{"summary":"Terminal output tmux pushes, as a cold [Flow].","body":"A fresh Java subscription opens per [kotlinx.coroutines.flow.Flow.collect] and closes when\ncollection ends, cancels, or throws — fan-out means collecting twice, each with its own gap\naccounting. Not `suspend`: opening the subscription is local and does no tmux round trip: only\ncollecting it reads.\n\nOutput tmux sends before the subscription opens is not delivered, and a cold flow opens it\nonly when collection starts. So a command whose output is wanted belongs in [onSubscribed],\nwhich runs once the subscription exists and before the first read, rather than before\n`collect`: `control.output(32) { control.send(\"send-keys\", ...) }`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ControlClient.kt","line":45,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-output"},{"id":"io.github.libtmux.kotlin.ControlClient.events","name":"events","kind":"method","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"public fun events(capacity: Int, onSubscribed: suspend () -> Unit = {}): Flow>","params":[{"name":"capacity","type":"Int"},{"name":"onSubscribed","type":"suspend","default":"{}"}],"returns":"Flow>"}],"imports":{"ControlEvent":"io.github.libtmux.control.ControlEvent","Delivery":"io.github.libtmux.control.Delivery","PaneOutput":"io.github.libtmux.control.PaneOutput","Flow":"kotlinx.coroutines.flow.Flow","JavaControlClient":"io.github.libtmux.control.ControlClient"},"modifiers":[],"doc":{"summary":"State changes tmux volunteers, as a cold [Flow]. Reads, and takes [onSubscribed], as [output] does."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ControlClient.kt","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-events"},{"id":"io.github.libtmux.kotlin.ControlClient.close","name":"close","kind":"method","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"override fun close()","params":[]}],"imports":{"ControlEvent":"io.github.libtmux.control.ControlEvent","Delivery":"io.github.libtmux.control.Delivery","PaneOutput":"io.github.libtmux.control.PaneOutput","Flow":"kotlinx.coroutines.flow.Flow","JavaControlClient":"io.github.libtmux.control.ControlClient"},"modifiers":[],"doc":{"summary":"Ends the client, rejecting queued requests and resolving picked requests as uncertain."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ControlClient.kt","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-close"},{"id":"io.github.libtmux.kotlin.LibTmuxDsl","name":"LibTmuxDsl","kind":"class","signatures":[{"raw":"@DslMarker\npublic annotation class LibTmuxDsl","params":[]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Marks every builder below so an inner block cannot reach an outer block's receiver by accident: `split { directory = x }` inside `window { }` resolves to the innermost [SplitBuilder], never to the [WindowBuilder] it is nested in. Reaching the outer receiver on purpose still works, spelled explicitly (`this@window.directory = x`)."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-libtmuxdsl"},{"id":"io.github.libtmux.kotlin.SessionBuilder","name":"SessionBuilder","kind":"class","signatures":[{"raw":"@LibTmuxDsl\npublic class SessionBuilder","params":[]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Configure a new session, its initial command, and its windows with [Server.newSession]."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":60,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-sessionbuilder"},{"id":"io.github.libtmux.kotlin.SessionBuilder.name","name":"name","kind":"property","parent":"io.github.libtmux.kotlin.SessionBuilder","signatures":[{"raw":"public var name: String?","params":[],"returns":"String?"}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":66,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-sessionbuilder-name"},{"id":"io.github.libtmux.kotlin.SessionBuilder.directory","name":"directory","kind":"property","parent":"io.github.libtmux.kotlin.SessionBuilder","signatures":[{"raw":"public var directory: Path?","params":[],"returns":"Path?"}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"The session's working directory, which its first window starts in too."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":69,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-sessionbuilder-directory"},{"id":"io.github.libtmux.kotlin.SessionBuilder.running","name":"running","kind":"method","parent":"io.github.libtmux.kotlin.SessionBuilder","signatures":[{"raw":"public fun running(vararg argv: String)","params":[{"name":"argv","type":"String"}]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Runs [argv] in the first window instead of the default shell."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":72,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-sessionbuilder-running"},{"id":"io.github.libtmux.kotlin.SessionBuilder.env","name":"env","kind":"method","parent":"io.github.libtmux.kotlin.SessionBuilder","signatures":[{"raw":"public fun env(name: String, value: String)","params":[{"name":"name","type":"String"},{"name":"value","type":"String"}]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Adds a variable to the new session's environment, keeping any already set."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-sessionbuilder-env"},{"id":"io.github.libtmux.kotlin.SessionBuilder.window","name":"window","kind":"method","parent":"io.github.libtmux.kotlin.SessionBuilder","signatures":[{"raw":"public fun window(configure: WindowBuilder.() -> Unit)","params":[{"name":"configure","type":"WindowBuilder.() -> Unit"}]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":81,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-sessionbuilder-window"},{"id":"io.github.libtmux.kotlin.WindowBuilder","name":"WindowBuilder","kind":"class","signatures":[{"raw":"@LibTmuxDsl\npublic class WindowBuilder","params":[]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Configure a window and its pane splits inside a [SessionBuilder] block."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":103,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-windowbuilder"},{"id":"io.github.libtmux.kotlin.WindowBuilder.name","name":"name","kind":"property","parent":"io.github.libtmux.kotlin.WindowBuilder","signatures":[{"raw":"public var name: String?","params":[],"returns":"String?"}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":110,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-windowbuilder-name"},{"id":"io.github.libtmux.kotlin.WindowBuilder.directory","name":"directory","kind":"property","parent":"io.github.libtmux.kotlin.WindowBuilder","signatures":[{"raw":"public var directory: Path?","params":[],"returns":"Path?"}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":112,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-windowbuilder-directory"},{"id":"io.github.libtmux.kotlin.WindowBuilder.running","name":"running","kind":"method","parent":"io.github.libtmux.kotlin.WindowBuilder","signatures":[{"raw":"public fun running(vararg argv: String)","params":[{"name":"argv","type":"String"}]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Runs [argv] in this window instead of the default shell."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":115,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-windowbuilder-running"},{"id":"io.github.libtmux.kotlin.WindowBuilder.env","name":"env","kind":"method","parent":"io.github.libtmux.kotlin.WindowBuilder","signatures":[{"raw":"public fun env(name: String, value: String)","params":[{"name":"name","type":"String"},{"name":"value","type":"String"}]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Adds a variable to the new window's environment, keeping any already set."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":120,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-windowbuilder-env"},{"id":"io.github.libtmux.kotlin.WindowBuilder.split","name":"split","kind":"method","parent":"io.github.libtmux.kotlin.WindowBuilder","signatures":[{"raw":"public fun split(configure: SplitBuilder.() -> Unit = {})","params":[{"name":"configure","type":"SplitBuilder.() -> Unit","default":"{}"}]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":124,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-windowbuilder-split"},{"id":"io.github.libtmux.kotlin.SplitBuilder","name":"SplitBuilder","kind":"class","signatures":[{"raw":"@LibTmuxDsl\npublic class SplitBuilder","params":[]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Choose the position, size, and working directory of a new pane split."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":139,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-splitbuilder"},{"id":"io.github.libtmux.kotlin.SplitBuilder.directory","name":"directory","kind":"property","parent":"io.github.libtmux.kotlin.SplitBuilder","signatures":[{"raw":"public var directory: Path?","params":[],"returns":"Path?"}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":143,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-splitbuilder-directory"},{"id":"io.github.libtmux.kotlin.SplitBuilder.below","name":"below","kind":"method","parent":"io.github.libtmux.kotlin.SplitBuilder","signatures":[{"raw":"public fun below()","params":[]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Puts the new pane below this one. tmux's own default if no direction is chosen."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":150,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-splitbuilder-below"},{"id":"io.github.libtmux.kotlin.SplitBuilder.above","name":"above","kind":"method","parent":"io.github.libtmux.kotlin.SplitBuilder","signatures":[{"raw":"public fun above()","params":[]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Puts the new pane above this one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":155,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-splitbuilder-above"},{"id":"io.github.libtmux.kotlin.SplitBuilder.toRight","name":"toRight","kind":"method","parent":"io.github.libtmux.kotlin.SplitBuilder","signatures":[{"raw":"public fun toRight()","params":[]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Puts the new pane to the right of this one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":160,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-splitbuilder-toright"},{"id":"io.github.libtmux.kotlin.SplitBuilder.toLeft","name":"toLeft","kind":"method","parent":"io.github.libtmux.kotlin.SplitBuilder","signatures":[{"raw":"public fun toLeft()","params":[]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Puts the new pane to the left of this one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":165,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-splitbuilder-toleft"},{"id":"io.github.libtmux.kotlin.SplitBuilder.cells","name":"cells","kind":"method","parent":"io.github.libtmux.kotlin.SplitBuilder","signatures":[{"raw":"public fun cells(count: Int)","params":[{"name":"count","type":"Int"}]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Sizes the new pane by an exact number of cells."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":170,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-splitbuilder-cells"},{"id":"io.github.libtmux.kotlin.SplitBuilder.percent","name":"percent","kind":"method","parent":"io.github.libtmux.kotlin.SplitBuilder","signatures":[{"raw":"public fun percent(share: Int)","params":[{"name":"share","type":"Int"}]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Sizes the new pane as a percentage of the space being split."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":175,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-splitbuilder-percent"},{"id":"io.github.libtmux.kotlin.SplitBuilder.env","name":"env","kind":"method","parent":"io.github.libtmux.kotlin.SplitBuilder","signatures":[{"raw":"public fun env(name: String, value: String)","params":[{"name":"name","type":"String"},{"name":"value","type":"String"}]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Adds a variable to the new pane's environment, keeping any already set."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":180,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-splitbuilder-env"},{"id":"io.github.libtmux.kotlin.Environment","name":"Environment","kind":"class","signatures":[{"raw":"public class Environment","params":[]}],"imports":{"JavaEnvironment":"io.github.libtmux.Environment"},"modifiers":[],"doc":{"summary":"Read and update environment variables used to start processes in tmux.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `EnvironmentOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Environment.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment"},{"id":"io.github.libtmux.kotlin.Environment.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Environment","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Environment.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-server"},{"id":"io.github.libtmux.kotlin.Environment.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public val asJava: JavaEnvironment","params":[],"returns":"JavaEnvironment"}],"imports":{"JavaEnvironment":"io.github.libtmux.Environment"},"modifiers":[],"doc":{"summary":"The Java environment this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Environment.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-asjava"},{"id":"io.github.libtmux.kotlin.Environment.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaEnvironment":"io.github.libtmux.Environment"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Environment.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-equals"},{"id":"io.github.libtmux.kotlin.Environment.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaEnvironment":"io.github.libtmux.Environment"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Environment.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-hashcode"},{"id":"io.github.libtmux.kotlin.Environment.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaEnvironment":"io.github.libtmux.Environment"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Environment.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-tostring"},{"id":"io.github.libtmux.kotlin.ExecutionPolicy","name":"ExecutionPolicy","kind":"class","signatures":[{"raw":"public class ExecutionPolicy(\n public val commands: CoroutineDispatcher,\n public val streamReads: CoroutineDispatcher,\n public val defaultDeadline: Duration = Duration.INFINITE,\n)","params":[{"name":"commands","type":"CoroutineDispatcher"},{"name":"streamReads","type":"CoroutineDispatcher"},{"name":"defaultDeadline","type":"Duration","default":"Duration.INFINITE"}]}],"imports":{"ServerConfig":"io.github.libtmux.ServerConfig","Duration":"kotlin.time.Duration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers"},"modifiers":[],"doc":{"summary":"Controls the dispatchers and concurrency limits for a [Server]'s suspending operations.","body":"Two independently sized pools, not one: [commands] backs every `suspend` operation this module\ngenerates or hand-writes, sized from the transport's own admission bound rather than a guess.\n[streamReads] backs only what still genuinely blocks a thread — [Server.liveState]'s background\npump. [ControlClient.output] and [ControlClient.events] hold no thread from either pool; they are\nbuilt on [io.github.libtmux.control.EventSubscription.poll] and `onReady`, not on a blocking read."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ExecutionPolicy.kt","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-executionpolicy"},{"id":"io.github.libtmux.kotlin.ExecutionPolicy.commands","name":"commands","kind":"property","parent":"io.github.libtmux.kotlin.ExecutionPolicy","modifiers":[],"signatures":[{"raw":"public val commands: CoroutineDispatcher","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ExecutionPolicy.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-executionpolicy-commands"},{"id":"io.github.libtmux.kotlin.ExecutionPolicy.streamReads","name":"streamReads","kind":"property","parent":"io.github.libtmux.kotlin.ExecutionPolicy","modifiers":[],"signatures":[{"raw":"public val streamReads: CoroutineDispatcher","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ExecutionPolicy.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-executionpolicy-streamreads"},{"id":"io.github.libtmux.kotlin.ExecutionPolicy.defaultDeadline","name":"defaultDeadline","kind":"property","parent":"io.github.libtmux.kotlin.ExecutionPolicy","modifiers":[],"signatures":[{"raw":"public val defaultDeadline: Duration = Duration.INFINITE","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ExecutionPolicy.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-executionpolicy-defaultdeadline"},{"id":"io.github.libtmux.kotlin.ExecutionPolicy.Companion","name":"Companion","kind":"module","parent":"io.github.libtmux.kotlin.ExecutionPolicy","signatures":[{"raw":"public companion object","params":[]}],"imports":{"ServerConfig":"io.github.libtmux.ServerConfig","Duration":"kotlin.time.Duration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ExecutionPolicy.kt","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-executionpolicy-companion"},{"id":"io.github.libtmux.kotlin.ExecutionPolicy.Companion.default","name":"default","kind":"method","parent":"io.github.libtmux.kotlin.ExecutionPolicy.Companion","signatures":[{"raw":"public fun default(\n config: ServerConfig,\n streamReadCapacity: Int = DEFAULT_STREAM_READ_CAPACITY,\n ): ExecutionPolicy","params":[{"name":"config","type":"ServerConfig"},{"name":"streamReadCapacity","type":"Int","default":"DEFAULT_STREAM_READ_CAPACITY"}],"returns":"ExecutionPolicy"}],"imports":{"ServerConfig":"io.github.libtmux.ServerConfig","Duration":"kotlin.time.Duration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers"},"modifiers":[],"doc":{"summary":"Sizes [commands] from `config`'s own [ServerConfig.maxConcurrentCommands], and [streamReads] independently: it bounds a structurally different resource, open [Server.liveState] watches, not tmux process admission."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ExecutionPolicy.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-executionpolicy-companion-default"},{"id":"io.github.libtmux.kotlin.Hooks","name":"Hooks","kind":"class","signatures":[{"raw":"public class Hooks","params":[]}],"imports":{"JavaHooks":"io.github.libtmux.Hooks"},"modifiers":[],"doc":{"summary":"Read and update hooks for the server, session, window, or pane that owns this handle.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `HooksOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Hooks.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks"},{"id":"io.github.libtmux.kotlin.Hooks.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Hooks","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Hooks.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-server"},{"id":"io.github.libtmux.kotlin.Hooks.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Hooks","signatures":[{"raw":"public val asJava: JavaHooks","params":[],"returns":"JavaHooks"}],"imports":{"JavaHooks":"io.github.libtmux.Hooks"},"modifiers":[],"doc":{"summary":"The Java hooks this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Hooks.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-asjava"},{"id":"io.github.libtmux.kotlin.Hooks.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Hooks","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaHooks":"io.github.libtmux.Hooks"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Hooks.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-equals"},{"id":"io.github.libtmux.kotlin.Hooks.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Hooks","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaHooks":"io.github.libtmux.Hooks"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Hooks.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-hashcode"},{"id":"io.github.libtmux.kotlin.Hooks.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Hooks","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaHooks":"io.github.libtmux.Hooks"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Hooks.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-tostring"},{"id":"io.github.libtmux.kotlin.Keys","name":"Keys","kind":"class","signatures":[{"raw":"public class Keys","params":[]}],"imports":{"JavaKeys":"io.github.libtmux.Keys"},"modifiers":[],"doc":{"summary":"The server's key bindings, in one key table or across all of them.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `KeysOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Keys.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys"},{"id":"io.github.libtmux.kotlin.Keys.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Keys","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Keys.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys-server"},{"id":"io.github.libtmux.kotlin.Keys.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Keys","signatures":[{"raw":"public val asJava: JavaKeys","params":[],"returns":"JavaKeys"}],"imports":{"JavaKeys":"io.github.libtmux.Keys"},"modifiers":[],"doc":{"summary":"The Java keys this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Keys.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys-asjava"},{"id":"io.github.libtmux.kotlin.Keys.`in`","name":"`in`","kind":"method","parent":"io.github.libtmux.kotlin.Keys","signatures":[{"raw":"public fun `in`(table: String): Keys","params":[{"name":"table","type":"String"}],"returns":"Keys"}],"imports":{"JavaKeys":"io.github.libtmux.Keys"},"modifiers":[],"doc":{"summary":"The same bindings, in one named table. A pure, local view: it issues no command."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Keys.kt","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys-in"},{"id":"io.github.libtmux.kotlin.Keys.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Keys","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaKeys":"io.github.libtmux.Keys"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Keys.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys-equals"},{"id":"io.github.libtmux.kotlin.Keys.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Keys","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaKeys":"io.github.libtmux.Keys"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Keys.kt","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys-hashcode"},{"id":"io.github.libtmux.kotlin.Keys.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Keys","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaKeys":"io.github.libtmux.Keys"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Keys.kt","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys-tostring"},{"id":"io.github.libtmux.kotlin.MessageLog","name":"MessageLog","kind":"class","signatures":[{"raw":"public class MessageLog","params":[]}],"imports":{"JavaMessageLog":"io.github.libtmux.MessageLog"},"modifiers":[],"doc":{"summary":"The server's own message log, newest last.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `MessageLogOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/MessageLog.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-messagelog"},{"id":"io.github.libtmux.kotlin.MessageLog.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.MessageLog","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/MessageLog.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-messagelog-server"},{"id":"io.github.libtmux.kotlin.MessageLog.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.MessageLog","signatures":[{"raw":"public val asJava: JavaMessageLog","params":[],"returns":"JavaMessageLog"}],"imports":{"JavaMessageLog":"io.github.libtmux.MessageLog"},"modifiers":[],"doc":{"summary":"The Java message log this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/MessageLog.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-messagelog-asjava"},{"id":"io.github.libtmux.kotlin.MessageLog.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.MessageLog","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaMessageLog":"io.github.libtmux.MessageLog"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/MessageLog.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-messagelog-equals"},{"id":"io.github.libtmux.kotlin.MessageLog.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.MessageLog","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaMessageLog":"io.github.libtmux.MessageLog"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/MessageLog.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-messagelog-hashcode"},{"id":"io.github.libtmux.kotlin.MessageLog.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.MessageLog","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaMessageLog":"io.github.libtmux.MessageLog"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/MessageLog.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-messagelog-tostring"},{"id":"io.github.libtmux.kotlin.Options","name":"Options","kind":"class","signatures":[{"raw":"public class Options","params":[]}],"imports":{"OptionKey":"io.github.libtmux.OptionKey","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaOptions":"io.github.libtmux.Options"},"modifiers":[],"doc":{"summary":"Read and update options for the server, session, window, or pane that owns this handle.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `OptionsOperations.kt`. `get`/`set` are hand-written in both overloads: a Kotlin member\nmakes every same-named extension unreachable regardless of its own parameter types, so the\n`OptionKey` overload cannot be added beside a generated `get(String)`/`set(String, String)`\nwithout also hand-writing those."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Options.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options"},{"id":"io.github.libtmux.kotlin.Options.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Options","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Options.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-server"},{"id":"io.github.libtmux.kotlin.Options.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"public val asJava: JavaOptions","params":[],"returns":"JavaOptions"}],"imports":{"OptionKey":"io.github.libtmux.OptionKey","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaOptions":"io.github.libtmux.Options"},"modifiers":[],"doc":{"summary":"The Java options this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Options.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-asjava"},{"id":"io.github.libtmux.kotlin.Options.get","name":"get","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"public suspend fun get(name: String): String?","params":[{"name":"name","type":"String"}],"returns":"String?","returnsDoc":"empty only when tmux does not know the option"},{"raw":"public suspend fun get(key: OptionKey): T?","params":[{"name":"key","type":"OptionKey"}],"returns":"T?","typeParams":["T"]}],"imports":{"OptionKey":"io.github.libtmux.OptionKey","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaOptions":"io.github.libtmux.Options"},"modifiers":["async","overload"],"doc":{"summary":"The value in effect at this scope, inherited from a parent scope when this one does not set it."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Options.kt","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-get"},{"id":"io.github.libtmux.kotlin.Options.set","name":"set","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"public suspend fun set(name: String, value: String)","params":[{"name":"name","type":"String"},{"name":"value","type":"String"}]},{"raw":"public suspend fun set(key: OptionKey, value: T)","params":[{"name":"key","type":"OptionKey"},{"name":"value","type":"T"}],"typeParams":["T"]}],"imports":{"OptionKey":"io.github.libtmux.OptionKey","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaOptions":"io.github.libtmux.Options"},"modifiers":["async","overload"],"doc":{"summary":"Sets one option at this scope."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Options.kt","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-set"},{"id":"io.github.libtmux.kotlin.Options.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"OptionKey":"io.github.libtmux.OptionKey","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaOptions":"io.github.libtmux.Options"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Options.kt","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-equals"},{"id":"io.github.libtmux.kotlin.Options.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"OptionKey":"io.github.libtmux.OptionKey","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaOptions":"io.github.libtmux.Options"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Options.kt","line":45,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-hashcode"},{"id":"io.github.libtmux.kotlin.Options.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"OptionKey":"io.github.libtmux.OptionKey","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaOptions":"io.github.libtmux.Options"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Options.kt","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-tostring"},{"id":"io.github.libtmux.kotlin.Pane","name":"Pane","kind":"class","signatures":[{"raw":"public class Pane","params":[]}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"A tmux pane, with operations for input, output, and layout.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `PaneOperations.kt`. [Companion] hosts the generated query field namespace\n(`Pane.command`, `Pane.active`, ...)."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane"},{"id":"io.github.libtmux.kotlin.Pane.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Pane","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-server"},{"id":"io.github.libtmux.kotlin.Pane.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val asJava: JavaPane","params":[],"returns":"JavaPane"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"The Java pane this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-asjava"},{"id":"io.github.libtmux.kotlin.Pane.id","name":"id","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val id: PaneId","params":[],"returns":"PaneId"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"The pane's stable id."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-id"},{"id":"io.github.libtmux.kotlin.Pane.index","name":"index","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val index: Int","params":[],"returns":"Int"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"The pane's position, which shifts as neighbours come and go."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-index"},{"id":"io.github.libtmux.kotlin.Pane.active","name":"active","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val active: Boolean","params":[],"returns":"Boolean"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"Whether this was its window's active pane when captured."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-active"},{"id":"io.github.libtmux.kotlin.Pane.currentCommand","name":"currentCommand","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val currentCommand: String","params":[],"returns":"String"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"The command tmux reported running here."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-currentcommand"},{"id":"io.github.libtmux.kotlin.Pane.floating","name":"floating","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val floating: Boolean?","params":[],"returns":"Boolean?"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"Whether this pane floats, or null when the running tmux cannot say."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":44,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-floating"},{"id":"io.github.libtmux.kotlin.Pane.size","name":"size","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val size: Dimensions","params":[],"returns":"Dimensions"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"How large the pane was when captured, in terminal cells."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-size"},{"id":"io.github.libtmux.kotlin.Pane.position","name":"position","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val position: PanePosition","params":[],"returns":"PanePosition"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"Where the pane's top-left corner sat in its window when captured, in terminal cells."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-position"},{"id":"io.github.libtmux.kotlin.Pane.title","name":"title","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val title: String","params":[],"returns":"String"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"The pane title, which a program running inside it can change."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-title"},{"id":"io.github.libtmux.kotlin.Pane.currentPath","name":"currentPath","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val currentPath: Path","params":[],"returns":"Path"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"The working directory tmux reported for the pane."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-currentpath"},{"id":"io.github.libtmux.kotlin.Pane.pid","name":"pid","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val pid: Long?","params":[],"returns":"Long?"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"The process id of the program running in the pane, captured at the time of the read."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-pid"},{"id":"io.github.libtmux.kotlin.Pane.edges","name":"edges","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val edges: PaneEdges","params":[],"returns":"PaneEdges"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"Which sides of its window the pane touches."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-edges"},{"id":"io.github.libtmux.kotlin.Pane.window","name":"window","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val window: Window","params":[],"returns":"Window"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"The window link this pane was reached through. A pure read of the capture."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":65,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-window"},{"id":"io.github.libtmux.kotlin.Pane.batch","name":"batch","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public fun batch(): Batch","params":[],"returns":"Batch"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"Collects commands fenced to the server incarnation that produced this pane."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":68,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-batch"},{"id":"io.github.libtmux.kotlin.Pane.hooks","name":"hooks","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public fun hooks(): Hooks","params":[],"returns":"Hooks"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"This pane's own hooks."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":71,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-hooks"},{"id":"io.github.libtmux.kotlin.Pane.options","name":"options","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public fun options(): Options","params":[],"returns":"Options"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"This pane's own options."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":74,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-options"},{"id":"io.github.libtmux.kotlin.Pane.awaitText","name":"awaitText","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun awaitText(\n text: String,\n timeout: Duration,\n every: Duration = 50.milliseconds,\n dispatcher: CoroutineDispatcher = Dispatchers.IO,\n ): TextOutcome","params":[{"name":"text","type":"String"},{"name":"timeout","type":"Duration","doc":"how long to keep looking, finite and not negative"},{"name":"every","type":"Duration","default":"50.milliseconds","doc":"how long to leave between looks, at least 10 ms"},{"name":"dispatcher","type":"CoroutineDispatcher","default":"Dispatchers.IO","doc":"where the blocking wait runs"}],"returns":"TextOutcome","returnsDoc":"why the wait ended"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":["async"],"doc":{"summary":"Waits until [text] shows in this pane.","body":"Cancelling the coroutine interrupts the wait. That is not a timeout, and it does not stop a\nprogram already running in the pane.","examples":[{"lang":"console","intro":"Send input and wait for output before capturing the pane. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/Capture.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/Capture.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.SessionSpec\nimport io.github.libtmux.TextOutcome\nimport io.github.libtmux.kotlin.*\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\nimport kotlin.time.Duration.Companion.seconds\n\n/** Send input and wait for output before capturing the pane. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n val session = server.newSession(\n SessionSpec.builder().named(\"api-capture\").running(\"/bin/sh\").build()\n )\n val pane = session.windows.first().panes.first()\n pane.sendKeys(listOf(\"printf 'api-%s\\\\n' keys\", \"Enter\"))\n check(pane.awaitText(\"api-keys\", timeout = 5.seconds) != TextOutcome.TIMED_OUT) {\n \"timed out waiting for keys output\"\n }\n pane.sendLine(\"printf 'api-%s\\\\n' line\")\n check(pane.awaitText(\"api-line\", timeout = 5.seconds) != TextOutcome.TIMED_OUT) {\n \"timed out waiting for line output\"\n }\n val lines = pane.capture()\n for (expected in listOf(\"api-keys\", \"api-line\")) {\n check(lines.any { it.trim() == expected }) { \"capture is missing $expected\" }\n println(expected)\n }\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.CaptureKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"api-keys\napi-line\n"}]},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":87,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-awaittext"},{"id":"io.github.libtmux.kotlin.Pane.await","name":"await","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun await(\n timeout: Duration,\n every: Duration = 50.milliseconds,\n dispatcher: CoroutineDispatcher = Dispatchers.IO,\n settled: (Pane) -> Boolean,\n ): WakeReason","params":[{"name":"timeout","type":"Duration","doc":"how long to keep looking, finite and not negative"},{"name":"every","type":"Duration","default":"50.milliseconds","doc":"how long to leave between looks, at least 10 ms"},{"name":"dispatcher","type":"CoroutineDispatcher","default":"Dispatchers.IO","doc":"where the blocking wait runs"},{"name":"settled","type":"(Pane) -> Boolean"}],"returns":"WakeReason","returnsDoc":"why the wait ended"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":["async"],"doc":{"summary":"Waits until [settled] accepts this pane, read fresh from tmux before each test.","body":"Cancelling the coroutine interrupts the wait. That is not a timeout. A read already sent to\ntmux is not taken back."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":106,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-await"},{"id":"io.github.libtmux.kotlin.Pane.run","name":"run","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun run(\n command: String,\n timeout: Duration,\n dispatcher: CoroutineDispatcher = Dispatchers.IO,\n ): PaneRun","params":[{"name":"command","type":"String","doc":"a line of shell, run as `eval` would run it"},{"name":"timeout","type":"Duration","doc":"how long to wait for it to end"},{"name":"dispatcher","type":"CoroutineDispatcher","default":"Dispatchers.IO","doc":"where the blocking wait runs"}],"returns":"PaneRun","returnsDoc":"the command's exit status and what it printed"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":["async"],"doc":{"summary":"Runs a shell command in this pane to its end, and answers with its exit status and output.","body":"Cancelling the coroutine interrupts the wait. The command keeps running in the pane; only the\nwait for its end is what cancellation reaches."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":127,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-run"},{"id":"io.github.libtmux.kotlin.Pane.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":133,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-equals"},{"id":"io.github.libtmux.kotlin.Pane.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":135,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-hashcode"},{"id":"io.github.libtmux.kotlin.Pane.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":137,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-tostring"},{"id":"io.github.libtmux.kotlin.Pane.Companion","name":"Companion","kind":"module","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public companion object","params":[]}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":139,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion"},{"id":"io.github.libtmux.kotlin.Prompt","name":"Prompt","kind":"class","signatures":[{"raw":"public class Prompt","params":[]}],"imports":{"JavaPrompt":"io.github.libtmux.Prompt"},"modifiers":[],"doc":{"summary":"The server's command-prompt history.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `PromptOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Prompt.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-prompt"},{"id":"io.github.libtmux.kotlin.Prompt.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Prompt","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Prompt.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-prompt-server"},{"id":"io.github.libtmux.kotlin.Prompt.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Prompt","signatures":[{"raw":"public val asJava: JavaPrompt","params":[],"returns":"JavaPrompt"}],"imports":{"JavaPrompt":"io.github.libtmux.Prompt"},"modifiers":[],"doc":{"summary":"The Java prompt this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Prompt.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-prompt-asjava"},{"id":"io.github.libtmux.kotlin.Prompt.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Prompt","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaPrompt":"io.github.libtmux.Prompt"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Prompt.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-prompt-equals"},{"id":"io.github.libtmux.kotlin.Prompt.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Prompt","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaPrompt":"io.github.libtmux.Prompt"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Prompt.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-prompt-hashcode"},{"id":"io.github.libtmux.kotlin.Prompt.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Prompt","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaPrompt":"io.github.libtmux.Prompt"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Prompt.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-prompt-tostring"},{"id":"io.github.libtmux.kotlin.retryIfSafe","name":"retryIfSafe","kind":"function","signatures":[{"raw":"public suspend fun retryIfSafe(times: Int = 1, block: suspend () -> T): T","params":[{"name":"times","type":"Int","default":"1"},{"name":"block","type":"suspend"}],"returns":"T","typeParams":["T"]}],"imports":{"DispatchException":"io.github.libtmux.exception.DispatchException"},"modifiers":["async"],"doc":{"summary":"Retries [block] up to [times] more times after a [DispatchException] whose [DispatchException.safeToRetry] says the exact same request can be sent again.","body":"No retry executor lives in this library: [DispatchException.safeToRetry] is computed by the\noperation that threw it from its own catalogued idempotence, so this needs no per-call lookup and\ncomposes with any retry library a caller already uses instead of replacing it."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Retry.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-retryifsafe"},{"id":"io.github.libtmux.kotlin.withServer","name":"withServer","kind":"function","signatures":[{"raw":"public suspend fun withServer(\n config: ServerConfig,\n policy: ExecutionPolicy = ExecutionPolicy.default(config),\n block: suspend (Server) -> R,\n): R","params":[{"name":"config","type":"ServerConfig"},{"name":"policy","type":"ExecutionPolicy","default":"ExecutionPolicy.default(config)"},{"name":"block","type":"suspend"}],"returns":"R","typeParams":["R"]}],"imports":{"ServerConfig":"io.github.libtmux.ServerConfig","Duration":"kotlin.time.Duration","toKotlinDuration":"kotlin.time.toKotlinDuration","NonCancellable":"kotlinx.coroutines.NonCancellable","withContext":"kotlinx.coroutines.withContext"},"modifiers":["async"],"doc":{"summary":"Opens a [Server], runs [block], and closes it — even if [block] throws or is cancelled.","body":"The rule this follows, stated once: the scope that acquired a Java `AutoCloseable` is the only\nthing that closes it. [close][Server.close] runs with [NonCancellable] so a cancelled [block]\nstill releases the transport's threads.","examples":[{"lang":"console","intro":"Connect to a private tmux server. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/Connect.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/Connect.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.kotlin.*\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** Connect to a private tmux server. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n println(\"connected=${server.isAlive()}\")\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.ConnectKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"connected=true\n"}]},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Scopes.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-withserver"},{"id":"io.github.libtmux.kotlin.withControl","name":"withControl","kind":"function","signatures":[{"raw":"public suspend fun withControl(\n server: Server,\n session: Session,\n timeout: Duration = server.config.defaultTimeout().toKotlinDuration(),\n block: suspend (ControlClient) -> R,\n): R","params":[{"name":"server","type":"Server"},{"name":"session","type":"Session"},{"name":"timeout","type":"Duration","default":"server.config.defaultTimeout().toKotlinDuration()"},{"name":"block","type":"suspend"}],"returns":"R","typeParams":["R"]}],"imports":{"ServerConfig":"io.github.libtmux.ServerConfig","Duration":"kotlin.time.Duration","toKotlinDuration":"kotlin.time.toKotlinDuration","NonCancellable":"kotlinx.coroutines.NonCancellable","withContext":"kotlinx.coroutines.withContext"},"modifiers":["async"],"doc":{"summary":"As [withServer], for a [ControlClient] attached through [server]."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Scopes.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-withcontrol"},{"id":"io.github.libtmux.kotlin.Server","name":"Server","kind":"class","signatures":[{"raw":"public class Server : AutoCloseable","params":[],"returns":"AutoCloseable"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Manages sessions, windows, and panes on a tmux server.","body":"Use [open] with a [ServerConfig] to select a server by socket name or path. From this object,\ncreate sessions or query the server's existing sessions, windows, and panes. Each [Session]\ncontains windows, and each [Window] contains panes.\n\nOperations that contact tmux are `suspend` functions dispatched through [policy]. Call [close]\nafter the last operation to release resources owned by this object. The tmux server and its\nsessions keep running.\n\n[asJava] exposes the underlying [JavaServer] for interoperability. Both objects share the same\nresources, so closing either closes both.","examples":[{"lang":"console","intro":"Connect to a private tmux server. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/Connect.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/Connect.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.kotlin.*\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** Connect to a private tmux server. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n println(\"connected=${server.isAlive()}\")\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.ConnectKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"connected=true\n"}]},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server"},{"id":"io.github.libtmux.kotlin.Server.policy","name":"policy","kind":"property","parent":"io.github.libtmux.kotlin.Server","modifiers":[],"signatures":[{"raw":"public val policy: ExecutionPolicy","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-policy"},{"id":"io.github.libtmux.kotlin.Server.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public val asJava: JavaServer","params":[],"returns":"JavaServer"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The Java server this wraps, for an operation this class does not mirror or a Java API that takes one. The same object, not a copy: closing either closes both."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-asjava"},{"id":"io.github.libtmux.kotlin.Server.config","name":"config","kind":"property","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public val config: ServerConfig","params":[],"returns":"ServerConfig"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"How this server was configured."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":44,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-config"},{"id":"io.github.libtmux.kotlin.Server.identity","name":"identity","kind":"property","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public val identity: ServerIdentity","params":[],"returns":"ServerIdentity"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Which server this is. Every handle taken from it is scoped by this."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-identity"},{"id":"io.github.libtmux.kotlin.Server.admissionBound","name":"admissionBound","kind":"property","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public val admissionBound: Int","params":[],"returns":"Int"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"How many tmux commands this server's transport runs at once, from [ExecutionPolicy.default]."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-admissionbound"},{"id":"io.github.libtmux.kotlin.Server.batch","name":"batch","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun batch(): Batch","params":[],"returns":"Batch"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Collects several commands to run in one tmux invocation."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-batch"},{"id":"io.github.libtmux.kotlin.Server.chain","name":"chain","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun chain(): CommandChain","params":[],"returns":"CommandChain"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Starts a chain of commands where each one acts on what the last one made."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-chain"},{"id":"io.github.libtmux.kotlin.Server.shell","name":"shell","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun shell(): Shell","params":[],"returns":"Shell"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Shell commands run by tmux, and tmux commands chosen by a shell exit status."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-shell"},{"id":"io.github.libtmux.kotlin.Server.commands","name":"commands","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun commands(): Commands","params":[],"returns":"Commands"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The commands this tmux knows."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-commands"},{"id":"io.github.libtmux.kotlin.Server.messageLog","name":"messageLog","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun messageLog(): MessageLog","params":[],"returns":"MessageLog"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The server's message log."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":65,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-messagelog"},{"id":"io.github.libtmux.kotlin.Server.prompt","name":"prompt","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun prompt(): Prompt","params":[],"returns":"Prompt"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The command prompt's history."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":68,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-prompt"},{"id":"io.github.libtmux.kotlin.Server.channel","name":"channel","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun channel(name: String): Channel","params":[{"name":"name","type":"String"}],"returns":"Channel"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"One of this server's wait-for channels, which is where a signal is sent and waited for."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":71,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-channel"},{"id":"io.github.libtmux.kotlin.Server.keys","name":"keys","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun keys(): Keys","params":[],"returns":"Keys"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The server's key bindings: `prefix` when binding, every table when listing."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":74,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-keys"},{"id":"io.github.libtmux.kotlin.Server.buffers","name":"buffers","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun buffers(): Buffers","params":[],"returns":"Buffers"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The server's paste buffers, which every session shares."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-buffers"},{"id":"io.github.libtmux.kotlin.Server.options","name":"options","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun options(): Options","params":[],"returns":"Options"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The server-wide options, the ones tmux keeps once per server."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":80,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-options"},{"id":"io.github.libtmux.kotlin.Server.globalOptions","name":"globalOptions","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun globalOptions(): Options","params":[],"returns":"Options"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The global session options every session inherits unless it sets its own."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":83,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-globaloptions"},{"id":"io.github.libtmux.kotlin.Server.environment","name":"environment","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun environment(): Environment","params":[],"returns":"Environment"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The server's environment, which every session inherits and every new process is given."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":86,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-environment"},{"id":"io.github.libtmux.kotlin.Server.hooks","name":"hooks","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun hooks(): Hooks","params":[],"returns":"Hooks"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The global hooks every session inherits."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":89,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-hooks"},{"id":"io.github.libtmux.kotlin.Server.session","name":"session","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun session(expression: FilterExpr): Session","params":[{"name":"expression","type":"FilterExpr"}],"returns":"Session","raises":[{"type":"CardinalityException.NoMatch","doc":"if nothing matched"},{"type":"CardinalityException.MultipleMatches","doc":"if more than one session matched"}]},{"raw":"public suspend fun Server.session(name: String): Session?","params":[{"name":"name","type":"String"}],"returns":"Session?","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.session(id: SessionId): Session?","params":[{"name":"id","type":"SessionId"}],"returns":"Session?","receiver":{"name":"this","type":"Server"}}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":["async","overload"],"doc":{"summary":"The one session this expression matches, captured now."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":97,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-session"},{"id":"io.github.libtmux.kotlin.Server.sessionOrNull","name":"sessionOrNull","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun sessionOrNull(expression: FilterExpr): Session?","params":[{"name":"expression","type":"FilterExpr"}],"returns":"Session?"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":["async"],"doc":{"summary":"The one session this expression matches, or null when none does."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":102,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-sessionornull"},{"id":"io.github.libtmux.kotlin.Server.window","name":"window","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun window(expression: FilterExpr): Window","params":[{"name":"expression","type":"FilterExpr"}],"returns":"Window","raises":[{"type":"CardinalityException.NoMatch","doc":"if nothing matched"},{"type":"CardinalityException.MultipleMatches","doc":"if more than one link matched"}]},{"raw":"public suspend fun Server.window(context: WindowContext): Window?","params":[{"name":"context","type":"WindowContext"}],"returns":"Window?","receiver":{"name":"this","type":"Server"}}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":["async","overload"],"doc":{"summary":"The one window link this expression matches, captured now."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":113,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-window"},{"id":"io.github.libtmux.kotlin.Server.windowOrNull","name":"windowOrNull","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun windowOrNull(expression: FilterExpr): Window?","params":[{"name":"expression","type":"FilterExpr"}],"returns":"Window?"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":["async"],"doc":{"summary":"The one window link this expression matches, or null when none does."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":118,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-windowornull"},{"id":"io.github.libtmux.kotlin.Server.pane","name":"pane","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun pane(expression: FilterExpr): Pane","params":[{"name":"expression","type":"FilterExpr"}],"returns":"Pane","raises":[{"type":"CardinalityException.NoMatch","doc":"if nothing matched"},{"type":"CardinalityException.MultipleMatches","doc":"if more than one pane matched"}]},{"raw":"public suspend fun Server.pane(id: PaneId): Pane?","params":[{"name":"id","type":"PaneId"}],"returns":"Pane?","receiver":{"name":"this","type":"Server"}}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":["async","overload"],"doc":{"summary":"The one pane this expression matches, captured now."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":129,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-pane"},{"id":"io.github.libtmux.kotlin.Server.paneOrNull","name":"paneOrNull","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun paneOrNull(expression: FilterExpr): Pane?","params":[{"name":"expression","type":"FilterExpr"}],"returns":"Pane?"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":["async"],"doc":{"summary":"The one pane this expression matches, or null when none does."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":133,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-paneornull"},{"id":"io.github.libtmux.kotlin.Server.control","name":"control","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun control(\n session: Session,\n timeout: Duration = config.defaultTimeout().toKotlinDuration(),\n ): ControlClient","params":[{"name":"session","type":"Session"},{"name":"timeout","type":"Duration","default":"config.defaultTimeout().toKotlinDuration()","doc":"how long to wait for the client to become ready"}],"returns":"ControlClient"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":["async"],"doc":{"summary":"Attaches a control client to this session's server, and only to the process this capture named."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":144,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-control"},{"id":"io.github.libtmux.kotlin.Server.close","name":"close","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"override fun close()","params":[]}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Releases an owned transport. Idempotent, and never kills tmux."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":163,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-close"},{"id":"io.github.libtmux.kotlin.Server.Companion","name":"Companion","kind":"module","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public companion object","params":[]}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":167,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-companion"},{"id":"io.github.libtmux.kotlin.Server.Companion.open","name":"open","kind":"method","parent":"io.github.libtmux.kotlin.Server.Companion","signatures":[{"raw":"public suspend fun open(\n config: ServerConfig,\n policy: ExecutionPolicy = ExecutionPolicy.default(config),\n ): Server","params":[{"name":"config","type":"ServerConfig"},{"name":"policy","type":"ExecutionPolicy","default":"ExecutionPolicy.default(config)"}],"returns":"Server"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":["async"],"doc":{"summary":"A server over a transport it owns and closes.","examples":[{"lang":"console","intro":"Connect to a private tmux server. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/Connect.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/Connect.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.kotlin.*\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** Connect to a private tmux server. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n println(\"connected=${server.isAlive()}\")\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.ConnectKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"connected=true\n"}]},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":170,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-companion-open"},{"id":"io.github.libtmux.kotlin.Server.Companion.fromJava","name":"fromJava","kind":"method","parent":"io.github.libtmux.kotlin.Server.Companion","signatures":[{"raw":"public fun fromJava(\n server: JavaServer,\n policy: ExecutionPolicy = ExecutionPolicy.default(server.config()),\n ): Server","params":[{"name":"server","type":"JavaServer"},{"name":"policy","type":"ExecutionPolicy","default":"ExecutionPolicy.default(server.config())"}],"returns":"Server"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"A wrapper over a server opened in Java, such as a test fixture's. It takes the server as it is: closing the wrapper closes it."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":179,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-companion-fromjava"},{"id":"io.github.libtmux.kotlin.Session","name":"Session","kind":"class","signatures":[{"raw":"public class Session","params":[]}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"A tmux session and its captured windows and properties.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `SessionOperations.kt`. [Companion] hosts the generated query field namespace\n(`Session.name`, `Session.attached`, ...)."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session"},{"id":"io.github.libtmux.kotlin.Session.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Session","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-server"},{"id":"io.github.libtmux.kotlin.Session.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public val asJava: JavaSession","params":[],"returns":"JavaSession"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"The Java session this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-asjava"},{"id":"io.github.libtmux.kotlin.Session.id","name":"id","kind":"property","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public val id: SessionId","params":[],"returns":"SessionId"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"The session's stable id."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-id"},{"id":"io.github.libtmux.kotlin.Session.name","name":"name","kind":"property","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public val name: String","params":[],"returns":"String"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"The session name, which a user may change at any time."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-name"},{"id":"io.github.libtmux.kotlin.Session.attached","name":"attached","kind":"property","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public val attached: Boolean","params":[],"returns":"Boolean"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"Whether a client was attached when this was captured."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-attached"},{"id":"io.github.libtmux.kotlin.Session.activeWindow","name":"activeWindow","kind":"property","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public val activeWindow: Window?","params":[],"returns":"Window?"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"The window tmux had active in this session. A pure read of the capture."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-activewindow"},{"id":"io.github.libtmux.kotlin.Session.activePane","name":"activePane","kind":"property","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public val activePane: Pane?","params":[],"returns":"Pane?"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"The active pane of the active window. A pure read of the capture."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-activepane"},{"id":"io.github.libtmux.kotlin.Session.windows","name":"windows","kind":"property","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public val windows: List","params":[],"returns":"List"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"This session's windows, in tmux's order. A pure read of the capture.","examples":[{"lang":"console","intro":"List all windows, then the windows captured for one session. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/ListWindows.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/ListWindows.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.kotlin.*\nimport io.github.libtmux.kotlin.query.name\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** List all windows, then the windows captured for one session. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n println(\"windows=\" + server.windows().map { it.name }.sorted().joinToString(\",\"))\n val session = server.session(Session.name eq \"work-one\")\n println(\"session-windows=\" + session.windows.map { it.name }.sorted().joinToString(\",\"))\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.ListWindowsKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"windows=editor,editor,logs\nsession-windows=editor,logs\n"}]},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-windows"},{"id":"io.github.libtmux.kotlin.Session.options","name":"options","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public fun options(): Options","params":[],"returns":"Options"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"This session's own options."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-options"},{"id":"io.github.libtmux.kotlin.Session.environment","name":"environment","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public fun environment(): Environment","params":[],"returns":"Environment"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"This session's own environment, which a process started in it is given on top of the server's."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-environment"},{"id":"io.github.libtmux.kotlin.Session.hooks","name":"hooks","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public fun hooks(): Hooks","params":[],"returns":"Hooks"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"This session's own hooks."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-hooks"},{"id":"io.github.libtmux.kotlin.Session.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":45,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-equals"},{"id":"io.github.libtmux.kotlin.Session.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-hashcode"},{"id":"io.github.libtmux.kotlin.Session.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-tostring"},{"id":"io.github.libtmux.kotlin.Session.Companion","name":"Companion","kind":"module","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public companion object","params":[]}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-companion"},{"id":"io.github.libtmux.kotlin.Shell","name":"Shell","kind":"class","signatures":[{"raw":"public class Shell","params":[]}],"imports":{"JavaShell":"io.github.libtmux.Shell"},"modifiers":[],"doc":{"summary":"A shell command run by tmux, and a tmux command chosen by a shell command's exit status.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `ShellOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Shell.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-shell"},{"id":"io.github.libtmux.kotlin.Shell.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Shell","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Shell.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-shell-server"},{"id":"io.github.libtmux.kotlin.Shell.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Shell","signatures":[{"raw":"public val asJava: JavaShell","params":[],"returns":"JavaShell"}],"imports":{"JavaShell":"io.github.libtmux.Shell"},"modifiers":[],"doc":{"summary":"The Java shell this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Shell.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-shell-asjava"},{"id":"io.github.libtmux.kotlin.Shell.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Shell","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaShell":"io.github.libtmux.Shell"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Shell.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-shell-equals"},{"id":"io.github.libtmux.kotlin.Shell.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Shell","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaShell":"io.github.libtmux.Shell"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Shell.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-shell-hashcode"},{"id":"io.github.libtmux.kotlin.Shell.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Shell","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaShell":"io.github.libtmux.Shell"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Shell.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-shell-tostring"},{"id":"io.github.libtmux.kotlin.Window","name":"Window","kind":"class","signatures":[{"raw":"public class Window","params":[]}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"A tmux window at a specific position in a session.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `WindowOperations.kt`. [Companion] hosts the generated query field namespace."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window"},{"id":"io.github.libtmux.kotlin.Window.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Window","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-server"},{"id":"io.github.libtmux.kotlin.Window.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val asJava: JavaWindow","params":[],"returns":"JavaWindow"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The Java window this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-asjava"},{"id":"io.github.libtmux.kotlin.Window.id","name":"id","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val id: WindowId","params":[],"returns":"WindowId"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The underlying window, shared by every link to it."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-id"},{"id":"io.github.libtmux.kotlin.Window.index","name":"index","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val index: WindowIndex","params":[],"returns":"WindowIndex"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Where this link sits in its session."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-index"},{"id":"io.github.libtmux.kotlin.Window.context","name":"context","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val context: WindowContext","params":[],"returns":"WindowContext"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The winlink this handle addresses."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-context"},{"id":"io.github.libtmux.kotlin.Window.name","name":"name","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val name: String","params":[],"returns":"String"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The window name."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-name"},{"id":"io.github.libtmux.kotlin.Window.active","name":"active","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val active: Boolean","params":[],"returns":"Boolean"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Whether this was its session's active window when captured."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-active"},{"id":"io.github.libtmux.kotlin.Window.linked","name":"linked","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val linked: Boolean","params":[],"returns":"Boolean"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Whether the underlying window is linked into more than one session."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-linked"},{"id":"io.github.libtmux.kotlin.Window.size","name":"size","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val size: Dimensions","params":[],"returns":"Dimensions"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"How large the window was when captured, in terminal cells."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-size"},{"id":"io.github.libtmux.kotlin.Window.layout","name":"layout","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val layout: WindowLayout","params":[],"returns":"WindowLayout"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"tmux's own layout for this window, in whichever form this server writes it."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-layout"},{"id":"io.github.libtmux.kotlin.Window.activePane","name":"activePane","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val activePane: Pane?","params":[],"returns":"Pane?"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The pane tmux had active here. A pure read of the capture."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-activepane"},{"id":"io.github.libtmux.kotlin.Window.session","name":"session","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val session: Session","params":[],"returns":"Session"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The session this link belongs to. A pure read of the capture."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-session"},{"id":"io.github.libtmux.kotlin.Window.panes","name":"panes","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val panes: List","params":[],"returns":"List"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"This link's panes, in tmux's order. A pure read of the capture.","examples":[{"lang":"console","intro":"List all panes, then the panes captured for one window. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/ListPanes.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/ListPanes.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.kotlin.*\nimport io.github.libtmux.kotlin.query.name\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** List all panes, then the panes captured for one window. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n println(\"panes=${server.panes().size}\")\n val session = server.session(Session.name eq \"work-one\")\n val window = session.windows.single { it.name == \"editor\" }\n println(\"window-panes=${window.panes.size}\")\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.ListPanesKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"panes=4\nwindow-panes=2\n"}]},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":52,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-panes"},{"id":"io.github.libtmux.kotlin.Window.hooks","name":"hooks","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public fun hooks(): Hooks","params":[],"returns":"Hooks"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"This window's own hooks, which every link to it shares."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":55,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-hooks"},{"id":"io.github.libtmux.kotlin.Window.options","name":"options","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public fun options(): Options","params":[],"returns":"Options"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"This window's own options, which every link to it shares."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":58,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-options"},{"id":"io.github.libtmux.kotlin.Window.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":60,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-equals"},{"id":"io.github.libtmux.kotlin.Window.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-hashcode"},{"id":"io.github.libtmux.kotlin.Window.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-tostring"},{"id":"io.github.libtmux.kotlin.Window.Companion","name":"Companion","kind":"module","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public companion object","params":[]}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":66,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion"},{"id":"io.github.libtmux.kotlin.query.TextField","name":"TextField","kind":"class","signatures":[{"raw":"@JvmInline\npublic value class TextField","params":[],"typeParams":["T"]}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"doc":{"summary":"Kotlin-idiomatic wrappers over [Fields]' typed field handles, each holding the Java handle it wraps. A value class, so this costs nothing beyond the Java object it already holds — the same choice [io.github.libtmux.kotlin.Server]'s live handles reject, made here on purpose: a field handle carries exactly one property, which is what makes the boxing tradeoff free."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-textfield"},{"id":"io.github.libtmux.kotlin.query.TextField.eq","name":"eq","kind":"method","parent":"io.github.libtmux.kotlin.query.TextField","signatures":[{"raw":"public infix fun eq(value: String): FilterExpr","params":[{"name":"value","type":"String"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-textfield-eq"},{"id":"io.github.libtmux.kotlin.query.TextField.ne","name":"ne","kind":"method","parent":"io.github.libtmux.kotlin.query.TextField","signatures":[{"raw":"public infix fun ne(value: String): FilterExpr","params":[{"name":"value","type":"String"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-textfield-ne"},{"id":"io.github.libtmux.kotlin.query.TextField.startsWith","name":"startsWith","kind":"method","parent":"io.github.libtmux.kotlin.query.TextField","signatures":[{"raw":"public infix fun startsWith(value: String): FilterExpr","params":[{"name":"value","type":"String"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-textfield-startswith"},{"id":"io.github.libtmux.kotlin.query.TextField.endsWith","name":"endsWith","kind":"method","parent":"io.github.libtmux.kotlin.query.TextField","signatures":[{"raw":"public infix fun endsWith(value: String): FilterExpr","params":[{"name":"value","type":"String"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-textfield-endswith"},{"id":"io.github.libtmux.kotlin.query.TextField.contains","name":"contains","kind":"method","parent":"io.github.libtmux.kotlin.query.TextField","signatures":[{"raw":"public infix fun contains(value: String): FilterExpr","params":[{"name":"value","type":"String"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-textfield-contains"},{"id":"io.github.libtmux.kotlin.query.TextField.matches","name":"matches","kind":"method","parent":"io.github.libtmux.kotlin.query.TextField","signatures":[{"raw":"public infix fun matches(pattern: Pattern): FilterExpr","params":[{"name":"pattern","type":"Pattern"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-textfield-matches"},{"id":"io.github.libtmux.kotlin.query.TextField.oneOf","name":"oneOf","kind":"method","parent":"io.github.libtmux.kotlin.query.TextField","signatures":[{"raw":"public infix fun oneOf(values: Collection): FilterExpr","params":[{"name":"values","type":"Collection"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-textfield-oneof"},{"id":"io.github.libtmux.kotlin.query.NumberField","name":"NumberField","kind":"class","signatures":[{"raw":"@JvmInline\npublic value class NumberField","params":[],"typeParams":["T"]}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"doc":{"summary":"Build numeric comparisons for a captured tmux field."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-numberfield"},{"id":"io.github.libtmux.kotlin.query.NumberField.eq","name":"eq","kind":"method","parent":"io.github.libtmux.kotlin.query.NumberField","signatures":[{"raw":"public infix fun eq(value: Int): FilterExpr","params":[{"name":"value","type":"Int"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-numberfield-eq"},{"id":"io.github.libtmux.kotlin.query.NumberField.ne","name":"ne","kind":"method","parent":"io.github.libtmux.kotlin.query.NumberField","signatures":[{"raw":"public infix fun ne(value: Int): FilterExpr","params":[{"name":"value","type":"Int"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-numberfield-ne"},{"id":"io.github.libtmux.kotlin.query.NumberField.lessThan","name":"lessThan","kind":"method","parent":"io.github.libtmux.kotlin.query.NumberField","signatures":[{"raw":"public infix fun lessThan(value: Int): FilterExpr","params":[{"name":"value","type":"Int"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-numberfield-lessthan"},{"id":"io.github.libtmux.kotlin.query.NumberField.atMost","name":"atMost","kind":"method","parent":"io.github.libtmux.kotlin.query.NumberField","signatures":[{"raw":"public infix fun atMost(value: Int): FilterExpr","params":[{"name":"value","type":"Int"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-numberfield-atmost"},{"id":"io.github.libtmux.kotlin.query.NumberField.greaterThan","name":"greaterThan","kind":"method","parent":"io.github.libtmux.kotlin.query.NumberField","signatures":[{"raw":"public infix fun greaterThan(value: Int): FilterExpr","params":[{"name":"value","type":"Int"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-numberfield-greaterthan"},{"id":"io.github.libtmux.kotlin.query.NumberField.atLeast","name":"atLeast","kind":"method","parent":"io.github.libtmux.kotlin.query.NumberField","signatures":[{"raw":"public infix fun atLeast(value: Int): FilterExpr","params":[{"name":"value","type":"Int"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-numberfield-atleast"},{"id":"io.github.libtmux.kotlin.query.FlagField","name":"FlagField","kind":"class","signatures":[{"raw":"@JvmInline\npublic value class FlagField","params":[],"typeParams":["T"]}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"doc":{"summary":"Match a captured boolean field against true or false."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-flagfield"},{"id":"io.github.libtmux.kotlin.query.FlagField.isTrue","name":"isTrue","kind":"method","parent":"io.github.libtmux.kotlin.query.FlagField","signatures":[{"raw":"public fun isTrue(): FilterExpr","params":[],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-flagfield-istrue"},{"id":"io.github.libtmux.kotlin.query.FlagField.isFalse","name":"isFalse","kind":"method","parent":"io.github.libtmux.kotlin.query.FlagField","signatures":[{"raw":"public fun isFalse(): FilterExpr","params":[],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":39,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-flagfield-isfalse"},{"id":"io.github.libtmux.kotlin.query.ToManyField","name":"ToManyField","kind":"class","signatures":[{"raw":"@JvmInline\npublic value class ToManyField","params":[],"typeParams":["T","R"]}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"doc":{"summary":"Match an object by the captured children related to it."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-tomanyfield"},{"id":"io.github.libtmux.kotlin.query.ToManyField.any","name":"any","kind":"method","parent":"io.github.libtmux.kotlin.query.ToManyField","signatures":[{"raw":"public infix fun any(predicate: FilterExpr): FilterExpr","params":[{"name":"predicate","type":"FilterExpr"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":45,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-tomanyfield-any"},{"id":"io.github.libtmux.kotlin.query.ToManyField.all","name":"all","kind":"method","parent":"io.github.libtmux.kotlin.query.ToManyField","signatures":[{"raw":"public infix fun all(predicate: FilterExpr): FilterExpr","params":[{"name":"predicate","type":"FilterExpr"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-tomanyfield-all"},{"id":"io.github.libtmux.kotlin.query.ToManyField.none","name":"none","kind":"method","parent":"io.github.libtmux.kotlin.query.ToManyField","signatures":[{"raw":"public infix fun none(predicate: FilterExpr): FilterExpr","params":[{"name":"predicate","type":"FilterExpr"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-tomanyfield-none"},{"id":"io.github.libtmux.kotlin.query.ToOneField","name":"ToOneField","kind":"class","signatures":[{"raw":"@JvmInline\npublic value class ToOneField","params":[],"typeParams":["T","R"]}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"doc":{"summary":"Match an object by one captured related object."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-toonefield"},{"id":"io.github.libtmux.kotlin.query.ToOneField.matching","name":"matching","kind":"method","parent":"io.github.libtmux.kotlin.query.ToOneField","signatures":[{"raw":"public infix fun matching(predicate: FilterExpr): FilterExpr","params":[{"name":"predicate","type":"FilterExpr"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-toonefield-matching"},{"id":"io.github.libtmux.kotlin.Batch.run","name":"run","kind":"method","parent":"io.github.libtmux.kotlin.Batch","signatures":[{"raw":"public suspend fun Batch.run(): BatchResult","params":[],"returns":"BatchResult","receiver":{"name":"this","type":"Batch"}}],"imports":{"BatchResult":"io.github.libtmux.batch.BatchResult","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Runs every collected operation in one tmux invocation."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/BatchOperations.kt","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch-run"},{"id":"io.github.libtmux.kotlin.Buffers.delete","name":"delete","kind":"method","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"public suspend fun Buffers.delete(name: String): Unit","params":[{"name":"name","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Buffers"}}],"imports":{"BufferInfo":"io.github.libtmux.BufferInfo","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Removes a buffer by its exact name."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/BuffersOperations.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-delete"},{"id":"io.github.libtmux.kotlin.Buffers.list","name":"list","kind":"method","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"public suspend fun Buffers.list(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Buffers"}}],"imports":{"BufferInfo":"io.github.libtmux.BufferInfo","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Captures every buffer the server holds, in tmux's order."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/BuffersOperations.kt","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-list"},{"id":"io.github.libtmux.kotlin.Buffers.load","name":"load","kind":"method","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"public suspend fun Buffers.load(name: String, `file`: Path): Unit","params":[{"name":"name","type":"String"},{"name":"`file`","type":"Path"}],"returns":"Unit","receiver":{"name":"this","type":"Buffers"}}],"imports":{"BufferInfo":"io.github.libtmux.BufferInfo","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Reads a file into a named buffer."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/BuffersOperations.kt","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-load"},{"id":"io.github.libtmux.kotlin.Buffers.save","name":"save","kind":"method","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"public suspend fun Buffers.save(name: String, `file`: Path): Unit","params":[{"name":"name","type":"String"},{"name":"`file`","type":"Path"}],"returns":"Unit","receiver":{"name":"this","type":"Buffers"}}],"imports":{"BufferInfo":"io.github.libtmux.BufferInfo","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Writes a buffer's contents to a file."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/BuffersOperations.kt","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-save"},{"id":"io.github.libtmux.kotlin.Buffers.`set`","name":"`set`","kind":"method","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"public suspend fun Buffers.`set`(name: String, contents: String): Unit","params":[{"name":"name","type":"String"},{"name":"contents","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Buffers"}}],"imports":{"BufferInfo":"io.github.libtmux.BufferInfo","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Puts text in a named buffer, replacing whatever was there."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/BuffersOperations.kt","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-set"},{"id":"io.github.libtmux.kotlin.Buffers.show","name":"show","kind":"method","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"public suspend fun Buffers.show(name: String): String","params":[{"name":"name","type":"String"}],"returns":"String","receiver":{"name":"this","type":"Buffers"}}],"imports":{"BufferInfo":"io.github.libtmux.BufferInfo","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"What a buffer holds, without any line breaks it ends with."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/BuffersOperations.kt","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-show"},{"id":"io.github.libtmux.kotlin.Client.detach","name":"detach","kind":"method","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public suspend fun Client.detach(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Client"}}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Detaches this client, leaving whatever it was attached to running."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ClientOperations.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-detach"},{"id":"io.github.libtmux.kotlin.Client.detachOthers","name":"detachOthers","kind":"method","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public suspend fun Client.detachOthers(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Client"}}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Detaches every other client, leaving this one attached."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ClientOperations.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-detachothers"},{"id":"io.github.libtmux.kotlin.Client.fetchAttachment","name":"fetchAttachment","kind":"method","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public suspend fun Client.fetchAttachment(): ClientAttachment?","params":[],"returns":"ClientAttachment?","receiver":{"name":"this","type":"Client"}}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Takes a new capture and returns what this client is looking at now."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ClientOperations.kt","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-fetchattachment"},{"id":"io.github.libtmux.kotlin.Client.redraw","name":"redraw","kind":"method","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public suspend fun Client.redraw(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Client"}}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Asks tmux to redraw this client."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ClientOperations.kt","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-redraw"},{"id":"io.github.libtmux.kotlin.Client.refresh","name":"refresh","kind":"method","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public suspend fun Client.refresh(): Client","params":[],"returns":"Client","receiver":{"name":"this","type":"Client"}}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Takes a new capture and returns this client as it is now."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ClientOperations.kt","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-refresh"},{"id":"io.github.libtmux.kotlin.Client.switchTo","name":"switchTo","kind":"method","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public suspend fun Client.switchTo(session: Session): Unit","params":[{"name":"session","type":"Session"}],"returns":"Unit","receiver":{"name":"this","type":"Client"}}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Moves this client to another session."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ClientOperations.kt","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-switchto"},{"id":"io.github.libtmux.kotlin.CommandChain.arrange","name":"arrange","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"public suspend fun CommandChain.arrange(layout: String): CommandChain","params":[{"name":"layout","type":"String"}],"returns":"CommandChain","receiver":{"name":"this","type":"CommandChain"}}],"imports":{"BatchResult":"io.github.libtmux.batch.BatchResult","String":"kotlin.String","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Arranges the current window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/CommandChainOperations.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-arrange"},{"id":"io.github.libtmux.kotlin.CommandChain.run","name":"run","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"public suspend fun CommandChain.run(): BatchResult","params":[],"returns":"BatchResult","receiver":{"name":"this","type":"CommandChain"}}],"imports":{"BatchResult":"io.github.libtmux.batch.BatchResult","String":"kotlin.String","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Runs the whole chain in one tmux invocation, attributing each step."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/CommandChainOperations.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-run"},{"id":"io.github.libtmux.kotlin.Commands.list","name":"list","kind":"method","parent":"io.github.libtmux.kotlin.Commands","signatures":[{"raw":"public suspend fun Commands.list(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Commands"}}],"imports":{"String":"kotlin.String","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Every command, as tmux prints it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/CommandsOperations.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commands-list"},{"id":"io.github.libtmux.kotlin.ControlClient.send","name":"send","kind":"method","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"public suspend fun ControlClient.send(vararg argv: String): ControlReply","params":[{"name":"argv","type":"String"}],"returns":"ControlReply","receiver":{"name":"this","type":"ControlClient"}},{"raw":"public suspend fun ControlClient.send(argv: List): ControlReply","params":[{"name":"argv","type":"List"}],"returns":"ControlReply","receiver":{"name":"this","type":"ControlClient"}},{"raw":"public suspend fun ControlClient.send(argv: List, timeout: Duration): ControlReply","params":[{"name":"argv","type":"List"},{"name":"timeout","type":"Duration"}],"returns":"ControlReply","receiver":{"name":"this","type":"ControlClient"}}],"imports":{"ControlReply":"io.github.libtmux.control.ControlReply","String":"kotlin.String","List":"kotlin.collections.List","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Runs one command and waits for its reply."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ControlClientOperations.kt","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-send"},{"id":"io.github.libtmux.kotlin.ControlClient.unwatch","name":"unwatch","kind":"method","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"public suspend fun ControlClient.unwatch(name: String): ControlReply","params":[{"name":"name","type":"String"}],"returns":"ControlReply","receiver":{"name":"this","type":"ControlClient"}}],"imports":{"ControlReply":"io.github.libtmux.control.ControlReply","String":"kotlin.String","List":"kotlin.collections.List","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Stops a watch."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ControlClientOperations.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-unwatch"},{"id":"io.github.libtmux.kotlin.ControlClient.watch","name":"watch","kind":"method","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"public suspend fun ControlClient.watch(\n name: String,\n target: String,\n format: String,\n): ControlReply","params":[{"name":"name","type":"String"},{"name":"target","type":"String"},{"name":"format","type":"String"}],"returns":"ControlReply","receiver":{"name":"this","type":"ControlClient"}}],"imports":{"ControlReply":"io.github.libtmux.control.ControlReply","String":"kotlin.String","List":"kotlin.collections.List","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Asks tmux to report a format whenever its value changes."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ControlClientOperations.kt","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-watch"},{"id":"io.github.libtmux.kotlin.Environment.all","name":"all","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public suspend fun Environment.all(): Map","params":[],"returns":"Map","receiver":{"name":"this","type":"Environment"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","Set":"kotlin.collections.Set","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Every name set at this scope, in tmux's order."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-all"},{"id":"io.github.libtmux.kotlin.Environment.effective","name":"effective","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public suspend fun Environment.effective(): Map","params":[],"returns":"Map","receiver":{"name":"this","type":"Environment"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","Set":"kotlin.collections.Set","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"What a process started from this scope is actually handed, both scopes taken together."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-effective"},{"id":"io.github.libtmux.kotlin.Environment.`get`","name":"`get`","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public suspend fun Environment.`get`(name: String): String?","params":[{"name":"name","type":"String"}],"returns":"String?","receiver":{"name":"this","type":"Environment"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","Set":"kotlin.collections.Set","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"The value set for this name, or empty when it is removed or absent."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-get"},{"id":"io.github.libtmux.kotlin.Environment.isRemoved","name":"isRemoved","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public suspend fun Environment.isRemoved(name: String): Boolean","params":[{"name":"name","type":"String"}],"returns":"Boolean","receiver":{"name":"this","type":"Environment"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","Set":"kotlin.collections.Set","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Whether new processes are told not to inherit this name."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-isremoved"},{"id":"io.github.libtmux.kotlin.Environment.remove","name":"remove","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public suspend fun Environment.remove(name: String): Unit","params":[{"name":"name","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Environment"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","Set":"kotlin.collections.Set","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Tells processes started after this not to inherit the name."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-remove"},{"id":"io.github.libtmux.kotlin.Environment.removed","name":"removed","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public suspend fun Environment.removed(): Set","params":[],"returns":"Set","receiver":{"name":"this","type":"Environment"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","Set":"kotlin.collections.Set","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Every name this scope tells a new process not to inherit."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-removed"},{"id":"io.github.libtmux.kotlin.Environment.`set`","name":"`set`","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public suspend fun Environment.`set`(name: String, `value`: String): Unit","params":[{"name":"name","type":"String"},{"name":"`value`","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Environment"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","Set":"kotlin.collections.Set","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Sets a name to a literal value."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-set"},{"id":"io.github.libtmux.kotlin.Environment.setExpanded","name":"setExpanded","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public suspend fun Environment.setExpanded(name: String, format: String): Unit","params":[{"name":"name","type":"String"},{"name":"format","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Environment"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","Set":"kotlin.collections.Set","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Sets a name to what a tmux format expands to now."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-setexpanded"},{"id":"io.github.libtmux.kotlin.Environment.unset","name":"unset","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public suspend fun Environment.unset(name: String): Unit","params":[{"name":"name","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Environment"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","Set":"kotlin.collections.Set","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Removes the name from this scope, so it is neither set nor marked."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-unset"},{"id":"io.github.libtmux.kotlin.Hooks.all","name":"all","kind":"method","parent":"io.github.libtmux.kotlin.Hooks","signatures":[{"raw":"public suspend fun Hooks.all(): Map>","params":[],"returns":"Map>","receiver":{"name":"this","type":"Hooks"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Every hook at this scope, keyed by event, each with its commands in the order tmux runs them."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/HooksOperations.kt","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-all"},{"id":"io.github.libtmux.kotlin.Hooks.append","name":"append","kind":"method","parent":"io.github.libtmux.kotlin.Hooks","signatures":[{"raw":"public suspend fun Hooks.append(event: String, command: List): Unit","params":[{"name":"event","type":"String"},{"name":"command","type":"List"}],"returns":"Unit","receiver":{"name":"this","type":"Hooks"}},{"raw":"public suspend fun Hooks.append(event: String, command: String): Unit","params":[{"name":"event","type":"String"},{"name":"command","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Hooks"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"As [.append(String, String)], with the command as words."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/HooksOperations.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-append"},{"id":"io.github.libtmux.kotlin.Hooks.run","name":"run","kind":"method","parent":"io.github.libtmux.kotlin.Hooks","signatures":[{"raw":"public suspend fun Hooks.run(event: String): Unit","params":[{"name":"event","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Hooks"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Runs what is bound to an event now, without waiting for the event."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/HooksOperations.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-run"},{"id":"io.github.libtmux.kotlin.Hooks.`set`","name":"`set`","kind":"method","parent":"io.github.libtmux.kotlin.Hooks","signatures":[{"raw":"public suspend fun Hooks.`set`(event: String, command: String): Unit","params":[{"name":"event","type":"String"},{"name":"command","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Hooks"}},{"raw":"public suspend fun Hooks.`set`(event: String, command: List): Unit","params":[{"name":"event","type":"String"},{"name":"command","type":"List"}],"returns":"Unit","receiver":{"name":"this","type":"Hooks"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Binds a tmux command to an event at this scope, replacing anything already bound to it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/HooksOperations.kt","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-set"},{"id":"io.github.libtmux.kotlin.Hooks.unset","name":"unset","kind":"method","parent":"io.github.libtmux.kotlin.Hooks","signatures":[{"raw":"public suspend fun Hooks.unset(event: String): Unit","params":[{"name":"event","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Hooks"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Removes everything bound to an event at this scope."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/HooksOperations.kt","line":45,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-unset"},{"id":"io.github.libtmux.kotlin.Keys.bind","name":"bind","kind":"method","parent":"io.github.libtmux.kotlin.Keys","signatures":[{"raw":"public suspend fun Keys.bind(key: String, command: List): Unit","params":[{"name":"key","type":"String"},{"name":"command","type":"List"}],"returns":"Unit","receiver":{"name":"this","type":"Keys"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Binds a key to a tmux command, given as its words."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/KeysOperations.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys-bind"},{"id":"io.github.libtmux.kotlin.Keys.list","name":"list","kind":"method","parent":"io.github.libtmux.kotlin.Keys","signatures":[{"raw":"public suspend fun Keys.list(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Keys"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"The bindings as tmux lists them, one per line."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/KeysOperations.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys-list"},{"id":"io.github.libtmux.kotlin.Keys.unbind","name":"unbind","kind":"method","parent":"io.github.libtmux.kotlin.Keys","signatures":[{"raw":"public suspend fun Keys.unbind(key: String): Unit","params":[{"name":"key","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Keys"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Removes a key's binding."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/KeysOperations.kt","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys-unbind"},{"id":"io.github.libtmux.kotlin.MessageLog.lines","name":"lines","kind":"method","parent":"io.github.libtmux.kotlin.MessageLog","signatures":[{"raw":"public suspend fun MessageLog.lines(): List","params":[],"returns":"List","receiver":{"name":"this","type":"MessageLog"}}],"imports":{"String":"kotlin.String","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"The log lines."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/MessageLogOperations.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-messagelog-lines"},{"id":"io.github.libtmux.kotlin.Options.all","name":"all","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"public suspend fun Options.all(): Map","params":[],"returns":"Map","receiver":{"name":"this","type":"Options"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Every option set at this scope, in tmux's order."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/OptionsOperations.kt","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-all"},{"id":"io.github.libtmux.kotlin.Options.append","name":"append","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"public suspend fun Options.append(name: String, suffix: String): Unit","params":[{"name":"name","type":"String"},{"name":"suffix","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Options"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Adds to the end of a string option, rather than replacing it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/OptionsOperations.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-append"},{"id":"io.github.libtmux.kotlin.Options.effective","name":"effective","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"public suspend fun Options.effective(): Map","params":[],"returns":"Map","receiver":{"name":"this","type":"Options"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Every option tmux lists at this scope, including inherited built-in values."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/OptionsOperations.kt","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-effective"},{"id":"io.github.libtmux.kotlin.Options.setExpanded","name":"setExpanded","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"public suspend fun Options.setExpanded(name: String, format: String): Unit","params":[{"name":"name","type":"String"},{"name":"format","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Options"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Sets one option to what a tmux format comes to, rather than to the format itself."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/OptionsOperations.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-setexpanded"},{"id":"io.github.libtmux.kotlin.Options.setIfAbsent","name":"setIfAbsent","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"public suspend fun Options.setIfAbsent(name: String, `value`: String): Boolean","params":[{"name":"name","type":"String"},{"name":"`value`","type":"String"}],"returns":"Boolean","receiver":{"name":"this","type":"Options"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Sets one option only if this scope does not already set it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/OptionsOperations.kt","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-setifabsent"},{"id":"io.github.libtmux.kotlin.Options.unset","name":"unset","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"public suspend fun Options.unset(name: String): Unit","params":[{"name":"name","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Options"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Removes one option at this scope, so it falls back to whatever it inherits."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/OptionsOperations.kt","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-unset"},{"id":"io.github.libtmux.kotlin.Pane.breakOut","name":"breakOut","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.breakOut(): Window","params":[],"returns":"Window","receiver":{"name":"this","type":"Pane"}},{"raw":"public suspend fun Pane.breakOut(windowName: String): Window","params":[{"name":"windowName","type":"String"}],"returns":"Window","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Moves this pane into a window of its own, leaving tmux to name it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-breakout"},{"id":"io.github.libtmux.kotlin.Pane.capture","name":"capture","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.capture(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Pane"}},{"raw":"public suspend fun Pane.capture(spec: CaptureSpec): List","params":[{"name":"spec","type":"CaptureSpec"}],"returns":"List","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"This pane's visible content, one element per line.","examples":[{"lang":"console","intro":"Send input and wait for output before capturing the pane. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/Capture.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/Capture.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.SessionSpec\nimport io.github.libtmux.TextOutcome\nimport io.github.libtmux.kotlin.*\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\nimport kotlin.time.Duration.Companion.seconds\n\n/** Send input and wait for output before capturing the pane. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n val session = server.newSession(\n SessionSpec.builder().named(\"api-capture\").running(\"/bin/sh\").build()\n )\n val pane = session.windows.first().panes.first()\n pane.sendKeys(listOf(\"printf 'api-%s\\\\n' keys\", \"Enter\"))\n check(pane.awaitText(\"api-keys\", timeout = 5.seconds) != TextOutcome.TIMED_OUT) {\n \"timed out waiting for keys output\"\n }\n pane.sendLine(\"printf 'api-%s\\\\n' line\")\n check(pane.awaitText(\"api-line\", timeout = 5.seconds) != TextOutcome.TIMED_OUT) {\n \"timed out waiting for line output\"\n }\n val lines = pane.capture()\n for (expected in listOf(\"api-keys\", \"api-line\")) {\n check(lines.any { it.trim() == expected }) { \"capture is missing $expected\" }\n println(expected)\n }\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.CaptureKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"api-keys\napi-line\n"}]},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-capture"},{"id":"io.github.libtmux.kotlin.Pane.clearHistory","name":"clearHistory","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.clearHistory(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Discards this pane's scrollback."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":44,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-clearhistory"},{"id":"io.github.libtmux.kotlin.Pane.copyMode","name":"copyMode","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.copyMode(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Puts this pane into copy mode, where its scrollback can be navigated."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-copymode"},{"id":"io.github.libtmux.kotlin.Pane.dead","name":"dead","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.dead(): Boolean","params":[],"returns":"Boolean","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Whether this pane's process has exited, read fresh rather than from the capture."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-dead"},{"id":"io.github.libtmux.kotlin.Pane.exitMode","name":"exitMode","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.exitMode(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Leaves whichever mode this pane is in."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-exitmode"},{"id":"io.github.libtmux.kotlin.Pane.expand","name":"expand","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.expand(format: String): String","params":[{"name":"format","type":"String"}],"returns":"String","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Expands a tmux format in this pane's context, and answers with what it came to."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-expand"},{"id":"io.github.libtmux.kotlin.Pane.joinTo","name":"joinTo","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.joinTo(window: Window): Unit","params":[{"name":"window","type":"Window"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Moves this pane into another window, splitting it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":69,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-jointo"},{"id":"io.github.libtmux.kotlin.Pane.kill","name":"kill","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.kill(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Closes this pane."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":74,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-kill"},{"id":"io.github.libtmux.kotlin.Pane.mode","name":"mode","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.mode(): PaneMode?","params":[],"returns":"PaneMode?","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Which mode this pane is in at this moment, or empty when it is in none."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":79,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-mode"},{"id":"io.github.libtmux.kotlin.Pane.noteTyped","name":"noteTyped","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.noteTyped(text: String): Unit","params":[{"name":"text","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Notes text that reached this pane without going through this handle, so a wait discounts its echo the way it discounts text sent through [.sendLiteral]."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":85,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-notetyped"},{"id":"io.github.libtmux.kotlin.Pane.paste","name":"paste","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.paste(text: String): Unit","params":[{"name":"text","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}},{"raw":"public suspend fun Pane.paste(text: String, beforePaste: Runnable): Unit","params":[{"name":"text","type":"String"},{"name":"beforePaste","type":"Runnable"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Pastes text into this pane as one block, leaving nothing behind on the server."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":90,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-paste"},{"id":"io.github.libtmux.kotlin.Pane.pasteBuffer","name":"pasteBuffer","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.pasteBuffer(name: String): Unit","params":[{"name":"name","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Pastes a named buffer into this pane, as though it had been typed."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":100,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-pastebuffer"},{"id":"io.github.libtmux.kotlin.Pane.pipeTo","name":"pipeTo","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.pipeTo(shellCommand: String): Unit","params":[{"name":"shellCommand","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Sends everything this pane prints to a shell command, until [.stopPiping]."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":105,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-pipeto"},{"id":"io.github.libtmux.kotlin.Pane.refresh","name":"refresh","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.refresh(): Pane","params":[],"returns":"Pane","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Takes a new capture and returns this pane as it is now."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":110,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-refresh"},{"id":"io.github.libtmux.kotlin.Pane.resize","name":"resize","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.resize(direction: Direction, cells: Int): Unit","params":[{"name":"direction","type":"Direction"},{"name":"cells","type":"Int"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Grows this pane by a number of cells in one direction."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":115,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-resize"},{"id":"io.github.libtmux.kotlin.Pane.resizeTo","name":"resizeTo","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.resizeTo(size: Dimensions): Unit","params":[{"name":"size","type":"Dimensions"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Resizes this pane."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":120,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-resizeto"},{"id":"io.github.libtmux.kotlin.Pane.respawn","name":"respawn","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.respawn(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Pane"}},{"raw":"public suspend fun Pane.respawn(vararg command: String): Unit","params":[{"name":"command","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Kills whatever runs here and starts the pane's default command again."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":125,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-respawn"},{"id":"io.github.libtmux.kotlin.Pane.respawnIn","name":"respawnIn","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.respawnIn(directory: Path): Unit","params":[{"name":"directory","type":"Path"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Restarts the configured pane process in a caller-supplied literal directory, resolved against this process's working directory when relative."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":136,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-respawnin"},{"id":"io.github.libtmux.kotlin.Pane.retitle","name":"retitle","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.retitle(title: String): Pane","params":[{"name":"title","type":"String"}],"returns":"Pane","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Retitles this pane and returns its replacement capture."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":141,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-retitle"},{"id":"io.github.libtmux.kotlin.Pane.select","name":"select","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.select(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Makes this the active pane of its window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":146,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-select"},{"id":"io.github.libtmux.kotlin.Pane.send","name":"send","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.send(keys: String): Unit","params":[{"name":"keys","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Sends keys to this pane without pressing Enter."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":151,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-send"},{"id":"io.github.libtmux.kotlin.Pane.sendKeys","name":"sendKeys","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.sendKeys(keys: List): Unit","params":[{"name":"keys","type":"List"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}},{"raw":"public suspend fun Pane.sendKeys(keys: List, beforeSend: Runnable): Unit","params":[{"name":"keys","type":"List"},{"name":"beforeSend","type":"Runnable"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Sends an ordered group of key names to this pane, as tmux resolves them.","examples":[{"lang":"console","intro":"Send input and wait for output before capturing the pane. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/Capture.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/Capture.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.SessionSpec\nimport io.github.libtmux.TextOutcome\nimport io.github.libtmux.kotlin.*\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\nimport kotlin.time.Duration.Companion.seconds\n\n/** Send input and wait for output before capturing the pane. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n val session = server.newSession(\n SessionSpec.builder().named(\"api-capture\").running(\"/bin/sh\").build()\n )\n val pane = session.windows.first().panes.first()\n pane.sendKeys(listOf(\"printf 'api-%s\\\\n' keys\", \"Enter\"))\n check(pane.awaitText(\"api-keys\", timeout = 5.seconds) != TextOutcome.TIMED_OUT) {\n \"timed out waiting for keys output\"\n }\n pane.sendLine(\"printf 'api-%s\\\\n' line\")\n check(pane.awaitText(\"api-line\", timeout = 5.seconds) != TextOutcome.TIMED_OUT) {\n \"timed out waiting for line output\"\n }\n val lines = pane.capture()\n for (expected in listOf(\"api-keys\", \"api-line\")) {\n check(lines.any { it.trim() == expected }) { \"capture is missing $expected\" }\n println(expected)\n }\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.CaptureKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"api-keys\napi-line\n"}]},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":156,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-sendkeys"},{"id":"io.github.libtmux.kotlin.Pane.sendLine","name":"sendLine","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.sendLine(command: String): Unit","params":[{"name":"command","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Sends a line to this pane and presses Enter, which is how a command gets run.","examples":[{"lang":"console","intro":"Send input and wait for output before capturing the pane. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/Capture.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/Capture.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.SessionSpec\nimport io.github.libtmux.TextOutcome\nimport io.github.libtmux.kotlin.*\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\nimport kotlin.time.Duration.Companion.seconds\n\n/** Send input and wait for output before capturing the pane. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n val session = server.newSession(\n SessionSpec.builder().named(\"api-capture\").running(\"/bin/sh\").build()\n )\n val pane = session.windows.first().panes.first()\n pane.sendKeys(listOf(\"printf 'api-%s\\\\n' keys\", \"Enter\"))\n check(pane.awaitText(\"api-keys\", timeout = 5.seconds) != TextOutcome.TIMED_OUT) {\n \"timed out waiting for keys output\"\n }\n pane.sendLine(\"printf 'api-%s\\\\n' line\")\n check(pane.awaitText(\"api-line\", timeout = 5.seconds) != TextOutcome.TIMED_OUT) {\n \"timed out waiting for line output\"\n }\n val lines = pane.capture()\n for (expected in listOf(\"api-keys\", \"api-line\")) {\n check(lines.any { it.trim() == expected }) { \"capture is missing $expected\" }\n println(expected)\n }\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.CaptureKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"api-keys\napi-line\n"}]},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":166,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-sendline"},{"id":"io.github.libtmux.kotlin.Pane.sendLiteral","name":"sendLiteral","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.sendLiteral(keys: List): Unit","params":[{"name":"keys","type":"List"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}},{"raw":"public suspend fun Pane.sendLiteral(keys: List, beforeSend: Runnable): Unit","params":[{"name":"keys","type":"List"},{"name":"beforeSend","type":"Runnable"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Sends an ordered group of strings to this pane as the characters they spell."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":171,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-sendliteral"},{"id":"io.github.libtmux.kotlin.Pane.split","name":"split","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.split(): Pane","params":[],"returns":"Pane","receiver":{"name":"this","type":"Pane"}},{"raw":"public suspend fun Pane.split(spec: SplitSpec): Pane","params":[{"name":"spec","type":"SplitSpec"}],"returns":"Pane","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Splits this pane in half, putting the new one below it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":181,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-split"},{"id":"io.github.libtmux.kotlin.Pane.stopPiping","name":"stopPiping","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.stopPiping(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Stops sending this pane's output anywhere."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":191,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-stoppiping"},{"id":"io.github.libtmux.kotlin.Pane.swapWith","name":"swapWith","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.swapWith(other: Pane): Unit","params":[{"name":"other","type":"Pane"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Swaps this pane's position with another's."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":196,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-swapwith"},{"id":"io.github.libtmux.kotlin.Pane.variables","name":"variables","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.variables(names: List): Map","params":[{"name":"names","type":"List"}],"returns":"Map","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Reads validated tmux variables in this pane's format context."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":201,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-variables"},{"id":"io.github.libtmux.kotlin.Prompt.clear","name":"clear","kind":"method","parent":"io.github.libtmux.kotlin.Prompt","signatures":[{"raw":"public suspend fun Prompt.clear(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Prompt"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Forgets what has been typed at the prompt."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PromptOperations.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-prompt-clear"},{"id":"io.github.libtmux.kotlin.Prompt.history","name":"history","kind":"method","parent":"io.github.libtmux.kotlin.Prompt","signatures":[{"raw":"public suspend fun Prompt.history(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Prompt"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"What has been typed at the prompt, oldest first."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PromptOperations.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-prompt-history"},{"id":"io.github.libtmux.kotlin.Server.attachedSessions","name":"attachedSessions","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.attachedSessions(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Captures every session a client is attached to."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-attachedsessions"},{"id":"io.github.libtmux.kotlin.Server.clients","name":"clients","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.clients(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Captures every attached client."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-clients"},{"id":"io.github.libtmux.kotlin.Server.cmd","name":"cmd","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.cmd(vararg argv: String): CommandResult","params":[{"name":"argv","type":"String"}],"returns":"CommandResult","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.cmd(argv: List): CommandResult","params":[{"name":"argv","type":"List"}],"returns":"CommandResult","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.cmd(argv: List, timeout: Duration): CommandResult","params":[{"name":"argv","type":"List"},{"name":"timeout","type":"Duration"}],"returns":"CommandResult","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Runs one tmux command against this server."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-cmd"},{"id":"io.github.libtmux.kotlin.Server.expand","name":"expand","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.expand(format: String): String","params":[{"name":"format","type":"String"}],"returns":"String","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Expands a tmux format against the server, and answers with what it came to."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":52,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-expand"},{"id":"io.github.libtmux.kotlin.Server.hasSession","name":"hasSession","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.hasSession(name: String): Boolean","params":[{"name":"name","type":"String"}],"returns":"Boolean","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Whether a session with this name exists."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":57,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-hassession"},{"id":"io.github.libtmux.kotlin.Server.isAlive","name":"isAlive","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.isAlive(): Boolean","params":[],"returns":"Boolean","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.isAlive(timeout: Duration): Boolean","params":[{"name":"timeout","type":"Duration"}],"returns":"Boolean","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Whether the server is running and answering."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-isalive"},{"id":"io.github.libtmux.kotlin.Server.killServer","name":"killServer","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.killServer(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.killServer(timeout: Duration): Unit","params":[{"name":"timeout","type":"Duration"}],"returns":"Unit","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Ends the tmux server and every session on it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":72,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-killserver"},{"id":"io.github.libtmux.kotlin.Server.killSession","name":"killSession","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.killSession(name: String): Unit","params":[{"name":"name","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Ends the session with this name, and everything in it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":82,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-killsession"},{"id":"io.github.libtmux.kotlin.Server.lock","name":"lock","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.lock(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Locks every client attached to this server."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":87,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-lock"},{"id":"io.github.libtmux.kotlin.Server.newSession","name":"newSession","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.newSession(name: String): Session","params":[{"name":"name","type":"String"}],"returns":"Session","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.newSession(spec: SessionSpec): Session","params":[{"name":"spec","type":"SessionSpec"}],"returns":"Session","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.newSession(configure: SessionBuilder.() -> Unit): Session","params":[{"name":"configure","type":"SessionBuilder.() -> Unit"}],"returns":"Session","receiver":{"name":"this","type":"Server"},"raises":[{"type":"IllegalArgumentException","doc":"if the session and its first window block both set a directory, or both set a command: tmux has one of each for that window"}]}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Creates a detached session and returns that exact session.","examples":[{"lang":"console","intro":"Create a session running cat. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/NewSession.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/NewSession.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.SessionSpec\nimport io.github.libtmux.kotlin.*\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** Create a session running cat. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n val session = server.newSession(\n SessionSpec.builder().named(\"api-session\").running(\"/bin/cat\").build()\n )\n println(\"created=${session.name}\")\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.NewSessionKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"created=api-session\n"}]},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":92,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-newsession"},{"id":"io.github.libtmux.kotlin.Server.paneFields","name":"paneFields","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.paneFields(names: List): Map>","params":[{"name":"names","type":"List"}],"returns":"Map>","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Chosen fields for every pane on the server, from one listing."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":107,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-panefields"},{"id":"io.github.libtmux.kotlin.Server.panes","name":"panes","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.panes(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.panes(expression: FilterExpr): List","params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Captures every pane on the server.","examples":[{"lang":"console","intro":"List all panes, then the panes captured for one window. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/ListPanes.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/ListPanes.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.kotlin.*\nimport io.github.libtmux.kotlin.query.name\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** List all panes, then the panes captured for one window. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n println(\"panes=${server.panes().size}\")\n val session = server.session(Session.name eq \"work-one\")\n val window = session.windows.single { it.name == \"editor\" }\n println(\"window-panes=${window.panes.size}\")\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.ListPanesKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"panes=4\nwindow-panes=2\n"}]},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":112,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-panes"},{"id":"io.github.libtmux.kotlin.Server.requireAlive","name":"requireAlive","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.requireAlive(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Requires a running tmux daemon that answers the liveness probe."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":122,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-requirealive"},{"id":"io.github.libtmux.kotlin.Server.run","name":"run","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.run(argv: List): CommandResult","params":[{"name":"argv","type":"List"}],"returns":"CommandResult","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Runs a command that is expected to work, and raises when it did not."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":127,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-run"},{"id":"io.github.libtmux.kotlin.Server.sessions","name":"sessions","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.sessions(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.sessions(expression: FilterExpr): List","params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Every session, captured now.","examples":[{"lang":"console","intro":"List the sessions returned by a server read. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/ListSessions.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/ListSessions.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.kotlin.*\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** List the sessions returned by a server read. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n println(\"sessions=\" + server.sessions().map { it.name }.sorted().joinToString(\",\"))\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.ListSessionsKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"sessions=work-one,work-two\n"},{"lang":"console","intro":"Select sessions with a typed name filter. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/Query.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/Query.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.kotlin.*\nimport io.github.libtmux.kotlin.query.name\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** Select sessions with a typed name filter. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n val matches = server.sessions(Session.name eq \"work-one\")\n println(\"matches=\" + matches.map { it.name }.sorted().joinToString(\",\"))\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.QueryKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"matches=work-one\n"}]},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":142,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-sessions"},{"id":"io.github.libtmux.kotlin.Server.snapshot","name":"snapshot","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.snapshot(): ServerSnapshot","params":[],"returns":"ServerSnapshot","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Captures the whole hierarchy in at most four listings, retrying once if the server is replaced."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":153,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-snapshot"},{"id":"io.github.libtmux.kotlin.Server.sourceFile","name":"sourceFile","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.sourceFile(`file`: Path): Unit","params":[{"name":"`file`","type":"Path"}],"returns":"Unit","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Runs a file of tmux commands, as a configuration file would be run."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":158,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-sourcefile"},{"id":"io.github.libtmux.kotlin.Server.variables","name":"variables","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.variables(names: List): Map","params":[{"name":"names","type":"List"}],"returns":"Map","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Reads only validated tmux variable names, never caller-authored format syntax."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":163,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-variables"},{"id":"io.github.libtmux.kotlin.Server.version","name":"version","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.version(): TmuxVersion","params":[],"returns":"TmuxVersion","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Which tmux this server is running."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":168,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-version"},{"id":"io.github.libtmux.kotlin.Server.windows","name":"windows","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.windows(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.windows(expression: FilterExpr): List","params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.windows(id: WindowId): List","params":[{"name":"id","type":"WindowId"}],"returns":"List","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Captures every winlink, preserving each session and index placement.","examples":[{"lang":"console","intro":"List all windows, then the windows captured for one session. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/ListWindows.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/ListWindows.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.kotlin.*\nimport io.github.libtmux.kotlin.query.name\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** List all windows, then the windows captured for one session. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n println(\"windows=\" + server.windows().map { it.name }.sorted().joinToString(\",\"))\n val session = server.session(Session.name eq \"work-one\")\n println(\"session-windows=\" + session.windows.map { it.name }.sorted().joinToString(\",\"))\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.ListWindowsKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"windows=editor,editor,logs\nsession-windows=editor,logs\n"}]},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":178,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-windows"},{"id":"io.github.libtmux.kotlin.Session.detachClients","name":"detachClients","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.detachClients(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Detaches every client attached to this session, leaving the session running."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-detachclients"},{"id":"io.github.libtmux.kotlin.Session.expand","name":"expand","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.expand(format: String): String","params":[{"name":"format","type":"String"}],"returns":"String","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Expands a tmux format in this session's context, and answers with what it came to."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-expand"},{"id":"io.github.libtmux.kotlin.Session.kill","name":"kill","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.kill(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Ends this session."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-kill"},{"id":"io.github.libtmux.kotlin.Session.lastWindow","name":"lastWindow","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.lastWindow(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Returns to the window that was active before this one."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-lastwindow"},{"id":"io.github.libtmux.kotlin.Session.newWindow","name":"newWindow","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.newWindow(name: String): Window","params":[{"name":"name","type":"String"}],"returns":"Window","receiver":{"name":"this","type":"Session"}},{"raw":"public suspend fun Session.newWindow(spec: WindowSpec): Window","params":[{"name":"spec","type":"WindowSpec"}],"returns":"Window","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Creates a window in this session and returns that exact window.","examples":[{"lang":"console","intro":"Create a window and read the updated session. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/NewWindow.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/NewWindow.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.WindowSpec\nimport io.github.libtmux.kotlin.*\nimport io.github.libtmux.kotlin.query.name\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** Create a window and read the updated session. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n val session = server.session(Session.name eq \"work-one\")\n val window = session.newWindow(\n WindowSpec.builder().named(\"api-window\").running(\"/bin/cat\").build()\n )\n println(\"created=${window.name}\")\n val refreshed = server.session(Session.name eq \"work-one\")\n println(\"windows=\" + refreshed.windows.map { it.name }.sorted().joinToString(\",\"))\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.NewWindowKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"created=api-window\nwindows=api-window,editor,logs\n"}]},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-newwindow"},{"id":"io.github.libtmux.kotlin.Session.nextWindow","name":"nextWindow","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.nextWindow(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Moves to the next window in this session, wrapping at the end."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":45,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-nextwindow"},{"id":"io.github.libtmux.kotlin.Session.previousWindow","name":"previousWindow","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.previousWindow(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Moves to the previous window in this session, wrapping at the start."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-previouswindow"},{"id":"io.github.libtmux.kotlin.Session.refresh","name":"refresh","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.refresh(): Session","params":[],"returns":"Session","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Takes a new capture and returns this session as it is now."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":55,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-refresh"},{"id":"io.github.libtmux.kotlin.Session.rename","name":"rename","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.rename(name: String): Session","params":[{"name":"name","type":"String"}],"returns":"Session","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Renames this session and returns its replacement capture."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":60,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-rename"},{"id":"io.github.libtmux.kotlin.Session.selectWindow","name":"selectWindow","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.selectWindow(window: Window): Unit","params":[{"name":"window","type":"Window"}],"returns":"Unit","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Makes a window of this session the active one."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":65,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-selectwindow"},{"id":"io.github.libtmux.kotlin.Session.setHistoryLimit","name":"setHistoryLimit","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.setHistoryLimit(lines: Int): Unit","params":[{"name":"lines","type":"Int"}],"returns":"Unit","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Sets the scrollback retained by panes created in this session."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":70,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-sethistorylimit"},{"id":"io.github.libtmux.kotlin.Shell.capturing","name":"capturing","kind":"method","parent":"io.github.libtmux.kotlin.Shell","signatures":[{"raw":"public suspend fun Shell.capturing(command: String): List","params":[{"name":"command","type":"String"}],"returns":"List","receiver":{"name":"this","type":"Shell"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Runs a shell command and answers with what it printed."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ShellOperations.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-shell-capturing"},{"id":"io.github.libtmux.kotlin.Shell.choose","name":"choose","kind":"method","parent":"io.github.libtmux.kotlin.Shell","signatures":[{"raw":"public suspend fun Shell.choose(condition: String, whenTrue: String): Unit","params":[{"name":"condition","type":"String"},{"name":"whenTrue","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Shell"}},{"raw":"public suspend fun Shell.choose(\n condition: String,\n whenTrue: String,\n whenFalse: String,\n): Unit","params":[{"name":"condition","type":"String"},{"name":"whenTrue","type":"String"},{"name":"whenFalse","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Shell"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Runs one tmux command when a shell command succeeds."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ShellOperations.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-shell-choose"},{"id":"io.github.libtmux.kotlin.Shell.run","name":"run","kind":"method","parent":"io.github.libtmux.kotlin.Shell","signatures":[{"raw":"public suspend fun Shell.run(command: String): Unit","params":[{"name":"command","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Shell"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Runs a shell command for its effect."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ShellOperations.kt","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-shell-run"},{"id":"io.github.libtmux.kotlin.Window.applyLayout","name":"applyLayout","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.applyLayout(layout: WindowLayout): Unit","params":[{"name":"layout","type":"WindowLayout"}],"returns":"Unit","receiver":{"name":"this","type":"Window"}},{"raw":"public suspend fun Window.applyLayout(layout: String): Unit","params":[{"name":"layout","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Restores an exact arrangement previously read from [.layout()]."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-applylayout"},{"id":"io.github.libtmux.kotlin.Window.displayPopup","name":"displayPopup","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.displayPopup(shellCommand: String): Unit","params":[{"name":"shellCommand","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Shows a popup over this window, running a command in it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-displaypopup"},{"id":"io.github.libtmux.kotlin.Window.expand","name":"expand","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.expand(format: String): String","params":[{"name":"format","type":"String"}],"returns":"String","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Expands a tmux format in this window's context, and answers with what it came to."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-expand"},{"id":"io.github.libtmux.kotlin.Window.kill","name":"kill","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.kill(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Closes this window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-kill"},{"id":"io.github.libtmux.kotlin.Window.linkTo","name":"linkTo","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.linkTo(session: Session): Unit","params":[{"name":"session","type":"Session"}],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Links this window into another session, so one window sits in both."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-linkto"},{"id":"io.github.libtmux.kotlin.Window.moveTo","name":"moveTo","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.moveTo(session: Session): Unit","params":[{"name":"session","type":"Session"}],"returns":"Unit","receiver":{"name":"this","type":"Window"}},{"raw":"public suspend fun Window.moveTo(session: Session, index: Int): Unit","params":[{"name":"session","type":"Session"},{"name":"index","type":"Int"}],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Moves this window into another session."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":48,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-moveto"},{"id":"io.github.libtmux.kotlin.Window.nextLayout","name":"nextLayout","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.nextLayout(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Moves to the next built-in layout, as tmux's own binding does."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":58,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-nextlayout"},{"id":"io.github.libtmux.kotlin.Window.previousLayout","name":"previousLayout","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.previousLayout(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Moves to the previous built-in layout, as tmux's own binding does."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-previouslayout"},{"id":"io.github.libtmux.kotlin.Window.refresh","name":"refresh","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.refresh(): Window","params":[],"returns":"Window","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Takes a new capture and returns this winlink as it is now."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":68,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-refresh"},{"id":"io.github.libtmux.kotlin.Window.rename","name":"rename","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.rename(name: String): Window","params":[{"name":"name","type":"String"}],"returns":"Window","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Renames this window and returns its replacement capture."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":73,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-rename"},{"id":"io.github.libtmux.kotlin.Window.resizeTo","name":"resizeTo","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.resizeTo(size: Dimensions): Unit","params":[{"name":"size","type":"Dimensions"}],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Resizes this window in terminal cells."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-resizeto"},{"id":"io.github.libtmux.kotlin.Window.respawn","name":"respawn","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.respawn(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Kills what is running in this window and starts it again."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":83,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-respawn"},{"id":"io.github.libtmux.kotlin.Window.rotate","name":"rotate","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.rotate(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Rotates the panes within this window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":88,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-rotate"},{"id":"io.github.libtmux.kotlin.Window.select","name":"select","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.select(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Makes this the active window of its session."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":93,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-select"},{"id":"io.github.libtmux.kotlin.Window.selectLayout","name":"selectLayout","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.selectLayout(layout: Layout): Unit","params":[{"name":"layout","type":"Layout"}],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Rearranges this window's panes into one of tmux's built-in layouts."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":98,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-selectlayout"},{"id":"io.github.libtmux.kotlin.Window.split","name":"split","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.split(): Pane","params":[],"returns":"Pane","receiver":{"name":"this","type":"Window"}},{"raw":"public suspend fun Window.split(spec: SplitSpec): Pane","params":[{"name":"spec","type":"SplitSpec"}],"returns":"Pane","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Splits this window's active pane in half, putting the new one below it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":103,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-split"},{"id":"io.github.libtmux.kotlin.Window.stopSynchronizingPanes","name":"stopSynchronizingPanes","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.stopSynchronizingPanes(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Stops copying input between this window's panes."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":113,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-stopsynchronizingpanes"},{"id":"io.github.libtmux.kotlin.Window.synchronizePanes","name":"synchronizePanes","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.synchronizePanes(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Copies input to one pane into every pane in this window, until [.stopSynchronizingPanes]."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":118,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-synchronizepanes"},{"id":"io.github.libtmux.kotlin.Window.unlink","name":"unlink","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.unlink(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Removes this link, leaving the window wherever else it is linked."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":123,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-unlink"},{"id":"io.github.libtmux.kotlin.Client.Companion.name","name":"name","kind":"property","parent":"io.github.libtmux.kotlin.Client.Companion","signatures":[{"raw":"public val KotlinClient.Companion.name: TextField","params":[],"returns":"TextField","receiver":{"name":"this","type":"KotlinClient.Companion"}}],"imports":{"Client_":"io.github.libtmux.Client_","Session":"io.github.libtmux.Session","LibtmuxClient":"io.github.libtmux.Client","KotlinClient":"io.github.libtmux.kotlin.Client"},"modifiers":[],"doc":{"summary":"The client's terminal name, which is how tmux addresses it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/ClientFields.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-companion-name"},{"id":"io.github.libtmux.kotlin.Client.Companion.session","name":"session","kind":"property","parent":"io.github.libtmux.kotlin.Client.Companion","signatures":[{"raw":"public val KotlinClient.Companion.session: ToOneField","params":[],"returns":"ToOneField","receiver":{"name":"this","type":"KotlinClient.Companion"}}],"imports":{"Client_":"io.github.libtmux.Client_","Session":"io.github.libtmux.Session","LibtmuxClient":"io.github.libtmux.Client","KotlinClient":"io.github.libtmux.kotlin.Client"},"modifiers":[],"doc":{"summary":"The session this client was attached to, if any."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/ClientFields.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-companion-session"},{"id":"io.github.libtmux.kotlin.Pane.Companion.id","name":"id","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.id: TextField","params":[],"returns":"TextField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"The pane id."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-id"},{"id":"io.github.libtmux.kotlin.Pane.Companion.command","name":"command","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.command: TextField","params":[],"returns":"TextField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"The command tmux reported running in the pane."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-command"},{"id":"io.github.libtmux.kotlin.Pane.Companion.index","name":"index","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.index: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"The pane's position in its window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-index"},{"id":"io.github.libtmux.kotlin.Pane.Companion.active","name":"active","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.active: FlagField","params":[],"returns":"FlagField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"Whether this was its window's active pane."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-active"},{"id":"io.github.libtmux.kotlin.Pane.Companion.title","name":"title","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.title: TextField","params":[],"returns":"TextField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"The pane's title, which a program running in it can set."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-title"},{"id":"io.github.libtmux.kotlin.Pane.Companion.path","name":"path","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.path: TextField","params":[],"returns":"TextField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"The pane's working directory, as the text tmux reported."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":42,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-path"},{"id":"io.github.libtmux.kotlin.Pane.Companion.width","name":"width","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.width: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"The pane's width, in cells."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":48,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-width"},{"id":"io.github.libtmux.kotlin.Pane.Companion.height","name":"height","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.height: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"The pane's height, in cells."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-height"},{"id":"io.github.libtmux.kotlin.Pane.Companion.left","name":"left","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.left: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"The column of the pane's left edge in its window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":60,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-left"},{"id":"io.github.libtmux.kotlin.Pane.Companion.top","name":"top","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.top: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"The row of the pane's top edge in its window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":66,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-top"},{"id":"io.github.libtmux.kotlin.Pane.Companion.atTop","name":"atTop","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.atTop: FlagField","params":[],"returns":"FlagField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"Whether the pane touches the top of its window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":72,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-attop"},{"id":"io.github.libtmux.kotlin.Pane.Companion.atBottom","name":"atBottom","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.atBottom: FlagField","params":[],"returns":"FlagField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"Whether the pane touches the bottom of its window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-atbottom"},{"id":"io.github.libtmux.kotlin.Pane.Companion.atLeft","name":"atLeft","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.atLeft: FlagField","params":[],"returns":"FlagField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"Whether the pane touches the left of its window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":84,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-atleft"},{"id":"io.github.libtmux.kotlin.Pane.Companion.atRight","name":"atRight","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.atRight: FlagField","params":[],"returns":"FlagField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"Whether the pane touches the right of its window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":90,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-atright"},{"id":"io.github.libtmux.kotlin.Session.Companion.id","name":"id","kind":"property","parent":"io.github.libtmux.kotlin.Session.Companion","signatures":[{"raw":"public val KotlinSession.Companion.id: TextField","params":[],"returns":"TextField","receiver":{"name":"this","type":"KotlinSession.Companion"}}],"imports":{"Session_":"io.github.libtmux.Session_","Window":"io.github.libtmux.Window","LibtmuxSession":"io.github.libtmux.Session","KotlinSession":"io.github.libtmux.kotlin.Session"},"modifiers":[],"doc":{"summary":"The session id, as text, so it can be compared and listed."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/SessionFields.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-companion-id"},{"id":"io.github.libtmux.kotlin.Session.Companion.name","name":"name","kind":"property","parent":"io.github.libtmux.kotlin.Session.Companion","signatures":[{"raw":"public val KotlinSession.Companion.name: TextField","params":[],"returns":"TextField","receiver":{"name":"this","type":"KotlinSession.Companion"}}],"imports":{"Session_":"io.github.libtmux.Session_","Window":"io.github.libtmux.Window","LibtmuxSession":"io.github.libtmux.Session","KotlinSession":"io.github.libtmux.kotlin.Session"},"modifiers":[],"doc":{"summary":"The session name."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/SessionFields.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-companion-name"},{"id":"io.github.libtmux.kotlin.Session.Companion.attached","name":"attached","kind":"property","parent":"io.github.libtmux.kotlin.Session.Companion","signatures":[{"raw":"public val KotlinSession.Companion.attached: FlagField","params":[],"returns":"FlagField","receiver":{"name":"this","type":"KotlinSession.Companion"}}],"imports":{"Session_":"io.github.libtmux.Session_","Window":"io.github.libtmux.Window","LibtmuxSession":"io.github.libtmux.Session","KotlinSession":"io.github.libtmux.kotlin.Session"},"modifiers":[],"doc":{"summary":"Whether a client was attached when this was captured."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/SessionFields.kt","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-companion-attached"},{"id":"io.github.libtmux.kotlin.Session.Companion.windowCount","name":"windowCount","kind":"property","parent":"io.github.libtmux.kotlin.Session.Companion","signatures":[{"raw":"public val KotlinSession.Companion.windowCount: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinSession.Companion"}}],"imports":{"Session_":"io.github.libtmux.Session_","Window":"io.github.libtmux.Window","LibtmuxSession":"io.github.libtmux.Session","KotlinSession":"io.github.libtmux.kotlin.Session"},"modifiers":[],"doc":{"summary":"How many windows this session holds."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/SessionFields.kt","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-companion-windowcount"},{"id":"io.github.libtmux.kotlin.Session.Companion.windows","name":"windows","kind":"property","parent":"io.github.libtmux.kotlin.Session.Companion","signatures":[{"raw":"public val KotlinSession.Companion.windows: ToManyField","params":[],"returns":"ToManyField","receiver":{"name":"this","type":"KotlinSession.Companion"}}],"imports":{"Session_":"io.github.libtmux.Session_","Window":"io.github.libtmux.Window","LibtmuxSession":"io.github.libtmux.Session","KotlinSession":"io.github.libtmux.kotlin.Session"},"modifiers":[],"doc":{"summary":"This session's windows."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/SessionFields.kt","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-companion-windows"},{"id":"io.github.libtmux.kotlin.Window.Companion.id","name":"id","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.id: TextField","params":[],"returns":"TextField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"The underlying window id, shared by every link to it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-id"},{"id":"io.github.libtmux.kotlin.Window.Companion.name","name":"name","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.name: TextField","params":[],"returns":"TextField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"The window name."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-name"},{"id":"io.github.libtmux.kotlin.Window.Companion.index","name":"index","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.index: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"Where this link sits in its session."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-index"},{"id":"io.github.libtmux.kotlin.Window.Companion.active","name":"active","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.active: FlagField","params":[],"returns":"FlagField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"Whether this was its session's active window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-active"},{"id":"io.github.libtmux.kotlin.Window.Companion.linked","name":"linked","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.linked: FlagField","params":[],"returns":"FlagField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"Whether the underlying window is linked into more than one session."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-linked"},{"id":"io.github.libtmux.kotlin.Window.Companion.width","name":"width","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.width: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"The window's width, in cells."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":44,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-width"},{"id":"io.github.libtmux.kotlin.Window.Companion.height","name":"height","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.height: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"The window's height, in cells."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-height"},{"id":"io.github.libtmux.kotlin.Window.Companion.paneCount","name":"paneCount","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.paneCount: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"How many panes this link holds."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-panecount"},{"id":"io.github.libtmux.kotlin.Window.Companion.panes","name":"panes","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.panes: ToManyField","params":[],"returns":"ToManyField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"This link's panes."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-panes"},{"id":"io.github.libtmux.kotlin.Window.Companion.session","name":"session","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.session: ToOneField","params":[],"returns":"ToOneField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"The session this link belongs to."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":68,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-session"},{"id":"io.github.libtmux.query.FilterExpr.not","name":"not","kind":"function","signatures":[{"raw":"public operator fun FilterExpr.not(): FilterExpr","params":[],"returns":"FilterExpr","receiver":{"name":"this","type":"FilterExpr"},"typeParams":["T"]}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","JavaClient":"io.github.libtmux.Client","JavaPane":"io.github.libtmux.Pane","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Inverts an expression, so `!Pane_.active().isTrue()` says what it means.","body":"There is no matching `and` or `or` here, deliberately. Those are already methods on\n[FilterExpr], and an extension of the same name would be shadowed by the member inside its own\nbody while winning at an infix call site — correct either way, but for a reason no reader should\nhave to work out. `a.and(b)` is one character longer than `a and b` and always means the thing it\nappears to.\n\n`negate` rather than `not` on the Java side because [java.util.function.Predicate] already owns\n`not`, and these expressions are predicates.\n\nThe bound is `T : Any` rather than `T`, and that is not a style choice. The core is `@NullMarked`,\nso Kotlin reads `FilterExpr` as `FilterExpr`; an unbounded `T` here would admit a\nnullable entity the core says cannot exist. Compiled with `-Xjspecify-annotations=strict`, so it\nis an error rather than a warning — this file did not compile until the bound was written."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Filters.kt","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-query-filterexpr-not"},{"id":"io.github.libtmux.kotlin.Iterable.filter","name":"filter","kind":"function","signatures":[{"raw":"public fun Iterable.filter(expression: FilterExpr): List","params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","receiver":{"name":"this","type":"Iterable"},"typeParams":["T"]},{"raw":"public fun Iterable.filter(expression: FilterExpr): List","params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","receiver":{"name":"this","type":"Iterable"}},{"raw":"public fun Iterable.filter(expression: FilterExpr): List","params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","receiver":{"name":"this","type":"Iterable"}},{"raw":"public fun Iterable.filter(expression: FilterExpr): List","params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","receiver":{"name":"this","type":"Iterable"}},{"raw":"public fun Iterable.filter(expression: FilterExpr): List","params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","receiver":{"name":"this","type":"Iterable"}}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","JavaClient":"io.github.libtmux.Client","JavaPane":"io.github.libtmux.Pane","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":["overload"],"doc":{"summary":"Selects the elements an expression matches.","body":"Kotlin's own `filter` takes a function, not a [java.util.function.Predicate], so handing it a\n[FilterExpr] does not compile — the one place where reading the Java documentation and writing\nKotlin part company. This is that overload, so `panes.filter(Pane_.active().isTrue())` means what\nit appears to.\n\nThe list is already in hand: this asks tmux nothing."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Filters.kt","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-iterable-filter"},{"id":"io.github.libtmux.kotlin.Server.liveState","name":"liveState","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.liveState(\n session: Session,\n scope: CoroutineScope,\n attachTimeout: Duration = config.defaultTimeout().toKotlinDuration(),\n): StateFlow","params":[{"name":"session","type":"Session"},{"name":"scope","type":"CoroutineScope"},{"name":"attachTimeout","type":"Duration","default":"config.defaultTimeout().toKotlinDuration()","doc":"how long to wait for the first attach, and the deadline each later rebuild wait uses to recheck [scope] for cancellation"}],"returns":"StateFlow","receiver":{"name":"this","type":"Server"},"raises":[{"type":"io.github.libtmux.exception.TargetGoneException","doc":"synchronously if [session]'s server has already gone when this is called; later, the same failure ends [scope] instead, since it surfaces from the launched pump rather than from this call"}]}],"imports":{"ServerMirror":"io.github.libtmux.snapshot.ServerMirror","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","CoroutineScope":"kotlinx.coroutines.CoroutineScope","NonCancellable":"kotlinx.coroutines.NonCancellable","cancelChildren":"kotlinx.coroutines.cancelChildren","coroutineScope":"kotlinx.coroutines.coroutineScope","MutableStateFlow":"kotlinx.coroutines.flow.MutableStateFlow","StateFlow":"kotlinx.coroutines.flow.StateFlow","asStateFlow":"kotlinx.coroutines.flow.asStateFlow","isActive":"kotlinx.coroutines.isActive","launch":"kotlinx.coroutines.launch","runInterruptible":"kotlinx.coroutines.runInterruptible","withContext":"kotlinx.coroutines.withContext"},"modifiers":["async"],"doc":{"summary":"A live, continuously rebuilt view of [server], as a [StateFlow].","body":"Wraps Java's [ServerMirror] rather than reinventing it: every routine case — resnapshot on\nnotification, on gap, and on reconnect; conflation while a rebuild is in flight; ending once\n[session] itself is gone — is already handled once, correctly, inside [ServerMirror]. This\nfunction's only job is pumping [ServerMirror.awaitNewer] on a dedicated thread from\n[ExecutionPolicy.streamReads] and publishing what comes back. Named `liveState`, not `ServerMirror`,\nso it does not collide with the Java type it wraps.\n\n[scope] owns the returned [StateFlow]'s whole lifetime: closing the mirror is this function's own\n`launch`+`finally`, tied to [scope]'s cancellation, so the caller never has to close it by hand."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/LiveState.kt","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-livestate"},{"id":"io.github.libtmux.kotlin.Server.withLiveState","name":"withLiveState","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.withLiveState(\n session: Session,\n attachTimeout: Duration = config.defaultTimeout().toKotlinDuration(),\n block: suspend (StateFlow) -> R,\n): R","params":[{"name":"session","type":"Session"},{"name":"attachTimeout","type":"Duration","default":"config.defaultTimeout().toKotlinDuration()"},{"name":"block","type":"suspend"}],"returns":"R","receiver":{"name":"this","type":"Server"},"typeParams":["R"]}],"imports":{"ServerMirror":"io.github.libtmux.snapshot.ServerMirror","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","CoroutineScope":"kotlinx.coroutines.CoroutineScope","NonCancellable":"kotlinx.coroutines.NonCancellable","cancelChildren":"kotlinx.coroutines.cancelChildren","coroutineScope":"kotlinx.coroutines.coroutineScope","MutableStateFlow":"kotlinx.coroutines.flow.MutableStateFlow","StateFlow":"kotlinx.coroutines.flow.StateFlow","asStateFlow":"kotlinx.coroutines.flow.asStateFlow","isActive":"kotlinx.coroutines.isActive","launch":"kotlinx.coroutines.launch","runInterruptible":"kotlinx.coroutines.runInterruptible","withContext":"kotlinx.coroutines.withContext"},"modifiers":["async"],"doc":{"summary":"As [liveState], scoped to [block]: opens the live view, runs [block] against it, and cancels the background pump before returning — the same `withServer`/`withControl` shape, for the one resource [liveState] itself cannot close on its own.","body":"[liveState]'s pump runs until [scope] ends, by design (a caller collecting it for the life of a\nprogram passes its own long-lived scope) — which means a bare `coroutineScope { liveState(...) }`\nnever returns: `coroutineScope` waits for every child, the pump included, and nothing inside it\nasks the pump to stop. This cancels that one child explicitly once [block] is done, whether it\nreturns or throws."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/LiveState.kt","line":86,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-withlivestate"},{"id":"java.util.OptionalInt.orNull","name":"orNull","kind":"function","signatures":[{"raw":"public fun OptionalInt.orNull(): Int?","params":[],"returns":"Int?","receiver":{"name":"this","type":"OptionalInt"}}],"imports":{"OptionalInt":"java.util.OptionalInt","OptionalLong":"java.util.OptionalLong"},"modifiers":[],"doc":{"summary":"The value, or null when absent: an exit status, a captured server pid."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Optionals.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"java-util-optionalint-ornull"},{"id":"java.util.OptionalLong.orNull","name":"orNull","kind":"function","signatures":[{"raw":"public fun OptionalLong.orNull(): Long?","params":[],"returns":"Long?","receiver":{"name":"this","type":"OptionalLong"}}],"imports":{"OptionalInt":"java.util.OptionalInt","OptionalLong":"java.util.OptionalLong"},"modifiers":[],"doc":{"summary":"The value, or null when absent."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Optionals.kt","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"java-util-optionallong-ornull"},{"id":"io.github.libtmux.Channel.await","name":"await","kind":"function","signatures":[{"raw":"public suspend fun Channel.await(\n timeout: Duration,\n dispatcher: CoroutineDispatcher = Dispatchers.IO,\n): WakeReason","params":[{"name":"timeout","type":"Duration","doc":"how long to wait, finite and positive"},{"name":"dispatcher","type":"CoroutineDispatcher","default":"Dispatchers.IO","doc":"where the blocking wait runs"}],"returns":"WakeReason","receiver":{"name":"this","type":"Channel"},"returnsDoc":"why the wait ended"}],"imports":{"Channel":"io.github.libtmux.Channel","WakeReason":"io.github.libtmux.WakeReason","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Waits for something to signal this channel.","body":"Cancelling the coroutine interrupts the wait. That is not a timeout. A `wait-for` tmux has already\naccepted is not taken back."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Waits.kt","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-channel-await"},{"id":"io.github.libtmux.Channel.awaitReservingCapacity","name":"awaitReservingCapacity","kind":"function","signatures":[{"raw":"public suspend fun Channel.awaitReservingCapacity(\n timeout: Duration,\n dispatcher: CoroutineDispatcher = Dispatchers.IO,\n): WakeReason","params":[{"name":"timeout","type":"Duration","doc":"how long to wait, finite and positive"},{"name":"dispatcher","type":"CoroutineDispatcher","default":"Dispatchers.IO","doc":"where the blocking wait runs"}],"returns":"WakeReason","receiver":{"name":"this","type":"Channel"}}],"imports":{"Channel":"io.github.libtmux.Channel","WakeReason":"io.github.libtmux.WakeReason","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"As [await], while preserving process capacity for a call that signals it."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Waits.kt","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-channel-awaitreservingcapacity"}],"sources":[{"product":"core","package":"io.github.libtmux:libtmux-kotlin","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272","version":"0.0.1-alpha.17-SNAPSHOT"}],"generatedSources":{"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/BatchOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport io.github.libtmux.batch.BatchResult\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Runs every collected operation in one tmux invocation.\n */\npublic suspend fun Batch.run(): BatchResult = runInterruptible(server.policy.commands) { java.run() }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/BuffersOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport io.github.libtmux.BufferInfo\nimport java.nio.`file`.Path\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.collections.List\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Removes a buffer by its exact name.\n */\npublic suspend fun Buffers.delete(name: String): Unit = runInterruptible(server.policy.commands) { java.delete(name) }\n\n/**\n * Captures every buffer the server holds, in tmux's order.\n */\npublic suspend fun Buffers.list(): List = runInterruptible(server.policy.commands) { java.list() }\n\n/**\n * Reads a file into a named buffer.\n */\npublic suspend fun Buffers.load(name: String, `file`: Path): Unit = runInterruptible(server.policy.commands) { java.load(name, file) }\n\n/**\n * Writes a buffer's contents to a file.\n */\npublic suspend fun Buffers.save(name: String, `file`: Path): Unit = runInterruptible(server.policy.commands) { java.save(name, file) }\n\n/**\n * Puts text in a named buffer, replacing whatever was there.\n */\npublic suspend fun Buffers.`set`(name: String, contents: String): Unit = runInterruptible(server.policy.commands) { java.set(name, contents) }\n\n/**\n * What a buffer holds, without any line breaks it ends with.\n */\npublic suspend fun Buffers.show(name: String): String = runInterruptible(server.policy.commands) { java.show(name) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ClientOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport io.github.libtmux.ClientAttachment\nimport kotlin.Unit\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Detaches this client, leaving whatever it was attached to running.\n */\npublic suspend fun Client.detach(): Unit = runInterruptible(server.policy.commands) { java.detach() }\n\n/**\n * Detaches every other client, leaving this one attached.\n */\npublic suspend fun Client.detachOthers(): Unit = runInterruptible(server.policy.commands) { java.detachOthers() }\n\n/**\n * Takes a new capture and returns what this client is looking at now.\n */\npublic suspend fun Client.fetchAttachment(): ClientAttachment? = runInterruptible(server.policy.commands) { java.fetchAttachment().orElse(null) }\n\n/**\n * Asks tmux to redraw this client.\n */\npublic suspend fun Client.redraw(): Unit = runInterruptible(server.policy.commands) { java.redraw() }\n\n/**\n * Takes a new capture and returns this client as it is now.\n */\npublic suspend fun Client.refresh(): Client = runInterruptible(server.policy.commands) { Client(java.refresh(), this.server) }\n\n/**\n * Moves this client to another session.\n */\npublic suspend fun Client.switchTo(session: Session): Unit = runInterruptible(server.policy.commands) { java.switchTo(session.java) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/CommandChainOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport io.github.libtmux.batch.BatchResult\nimport kotlin.String\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Arranges the current window.\n */\npublic suspend fun CommandChain.arrange(layout: String): CommandChain = runInterruptible(server.policy.commands) { CommandChain(java.arrange(layout), this.server) }\n\n/**\n * Runs the whole chain in one tmux invocation, attributing each step.\n */\npublic suspend fun CommandChain.run(): BatchResult = runInterruptible(server.policy.commands) { java.run() }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/CommandsOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport kotlin.String\nimport kotlin.collections.List\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Every command, as tmux prints it.\n */\npublic suspend fun Commands.list(): List = runInterruptible(server.policy.commands) { java.list() }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ControlClientOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport io.github.libtmux.control.ControlReply\nimport kotlin.String\nimport kotlin.collections.List\nimport kotlin.time.Duration\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Runs one command and waits for its reply.\n */\npublic suspend fun ControlClient.send(vararg argv: String): ControlReply = runInterruptible(server.policy.commands) { java.send(*argv) }\n\n/**\n * Runs one command and waits for its reply.\n */\npublic suspend fun ControlClient.send(argv: List): ControlReply = runInterruptible(server.policy.commands) { java.send(argv) }\n\n/**\n * Runs one command and waits for its reply.\n */\npublic suspend fun ControlClient.send(argv: List, timeout: Duration): ControlReply = runInterruptible(server.policy.commands) { java.send(argv, timeout.toJavaDuration()) }\n\n/**\n * Stops a watch.\n */\npublic suspend fun ControlClient.unwatch(name: String): ControlReply = runInterruptible(server.policy.commands) { java.unwatch(name) }\n\n/**\n * Asks tmux to report a format whenever its value changes.\n */\npublic suspend fun ControlClient.watch(\n name: String,\n target: String,\n format: String,\n): ControlReply = runInterruptible(server.policy.commands) { java.watch(name, target, format) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport kotlin.Boolean\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.collections.Map\nimport kotlin.collections.Set\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Every name set at this scope, in tmux's order.\n */\npublic suspend fun Environment.all(): Map = runInterruptible(server.policy.commands) { java.all() }\n\n/**\n * What a process started from this scope is actually handed, both scopes taken together.\n */\npublic suspend fun Environment.effective(): Map = runInterruptible(server.policy.commands) { java.effective() }\n\n/**\n * The value set for this name, or empty when it is removed or absent.\n */\npublic suspend fun Environment.`get`(name: String): String? = runInterruptible(server.policy.commands) { java.get(name).orElse(null) }\n\n/**\n * Whether new processes are told not to inherit this name.\n */\npublic suspend fun Environment.isRemoved(name: String): Boolean = runInterruptible(server.policy.commands) { java.isRemoved(name) }\n\n/**\n * Tells processes started after this not to inherit the name.\n */\npublic suspend fun Environment.remove(name: String): Unit = runInterruptible(server.policy.commands) { java.remove(name) }\n\n/**\n * Every name this scope tells a new process not to inherit.\n */\npublic suspend fun Environment.removed(): Set = runInterruptible(server.policy.commands) { java.removed() }\n\n/**\n * Sets a name to a literal value.\n */\npublic suspend fun Environment.`set`(name: String, `value`: String): Unit = runInterruptible(server.policy.commands) { java.set(name, value) }\n\n/**\n * Sets a name to what a tmux format expands to now.\n */\npublic suspend fun Environment.setExpanded(name: String, format: String): Unit = runInterruptible(server.policy.commands) { java.setExpanded(name, format) }\n\n/**\n * Removes the name from this scope, so it is neither set nor marked.\n */\npublic suspend fun Environment.unset(name: String): Unit = runInterruptible(server.policy.commands) { java.unset(name) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/HooksOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.collections.List\nimport kotlin.collections.Map\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Every hook at this scope, keyed by event, each with its commands in the order tmux runs them.\n */\npublic suspend fun Hooks.all(): Map> = runInterruptible(server.policy.commands) { java.all() }\n\n/**\n * As [.append(String, String)], with the command as words.\n */\npublic suspend fun Hooks.append(event: String, command: List): Unit = runInterruptible(server.policy.commands) { java.append(event, command) }\n\n/**\n * Binds another command to an event, after whatever is already bound to it.\n */\npublic suspend fun Hooks.append(event: String, command: String): Unit = runInterruptible(server.policy.commands) { java.append(event, command) }\n\n/**\n * Runs what is bound to an event now, without waiting for the event.\n */\npublic suspend fun Hooks.run(event: String): Unit = runInterruptible(server.policy.commands) { java.run(event) }\n\n/**\n * Binds a tmux command to an event at this scope, replacing anything already bound to it.\n */\npublic suspend fun Hooks.`set`(event: String, command: String): Unit = runInterruptible(server.policy.commands) { java.set(event, command) }\n\n/**\n * As [.set(String, String)], with the command as words rather than a line tmux parses.\n */\npublic suspend fun Hooks.`set`(event: String, command: List): Unit = runInterruptible(server.policy.commands) { java.set(event, command) }\n\n/**\n * Removes everything bound to an event at this scope.\n */\npublic suspend fun Hooks.unset(event: String): Unit = runInterruptible(server.policy.commands) { java.unset(event) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/KeysOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.collections.List\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Binds a key to a tmux command, given as its words.\n */\npublic suspend fun Keys.bind(key: String, command: List): Unit = runInterruptible(server.policy.commands) { java.bind(key, command) }\n\n/**\n * The bindings as tmux lists them, one per line.\n */\npublic suspend fun Keys.list(): List = runInterruptible(server.policy.commands) { java.list() }\n\n/**\n * Removes a key's binding.\n */\npublic suspend fun Keys.unbind(key: String): Unit = runInterruptible(server.policy.commands) { java.unbind(key) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/MessageLogOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport kotlin.String\nimport kotlin.collections.List\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * The log lines.\n */\npublic suspend fun MessageLog.lines(): List = runInterruptible(server.policy.commands) { java.lines() }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/OptionsOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport kotlin.Boolean\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.collections.Map\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Every option set at this scope, in tmux's order.\n */\npublic suspend fun Options.all(): Map = runInterruptible(server.policy.commands) { java.all() }\n\n/**\n * Adds to the end of a string option, rather than replacing it.\n */\npublic suspend fun Options.append(name: String, suffix: String): Unit = runInterruptible(server.policy.commands) { java.append(name, suffix) }\n\n/**\n * Every option tmux lists at this scope, including inherited built-in values.\n */\npublic suspend fun Options.effective(): Map = runInterruptible(server.policy.commands) { java.effective() }\n\n/**\n * Sets one option to what a tmux format comes to, rather than to the format itself.\n */\npublic suspend fun Options.setExpanded(name: String, format: String): Unit = runInterruptible(server.policy.commands) { java.setExpanded(name, format) }\n\n/**\n * Sets one option only if this scope does not already set it.\n */\npublic suspend fun Options.setIfAbsent(name: String, `value`: String): Boolean = runInterruptible(server.policy.commands) { java.setIfAbsent(name, value) }\n\n/**\n * Removes one option at this scope, so it falls back to whatever it inherits.\n */\npublic suspend fun Options.unset(name: String): Unit = runInterruptible(server.policy.commands) { java.unset(name) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport io.github.libtmux.CaptureSpec\nimport io.github.libtmux.Dimensions\nimport io.github.libtmux.Direction\nimport io.github.libtmux.PaneMode\nimport io.github.libtmux.SplitSpec\nimport java.lang.Runnable\nimport java.nio.`file`.Path\nimport kotlin.Boolean\nimport kotlin.Int\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.collections.List\nimport kotlin.collections.Map\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Moves this pane into a window of its own, leaving tmux to name it.\n */\npublic suspend fun Pane.breakOut(): Window = runInterruptible(server.policy.commands) { Window(java.breakOut(), this.server) }\n\n/**\n * Moves this pane into a window of its own with the given name.\n */\npublic suspend fun Pane.breakOut(windowName: String): Window = runInterruptible(server.policy.commands) { Window(java.breakOut(windowName), this.server) }\n\n/**\n * This pane's visible content, one element per line.\n */\npublic suspend fun Pane.capture(): List = runInterruptible(server.policy.commands) { java.capture() }\n\n/**\n * Reads part of this pane according to a spec, which may be reused across panes.\n */\npublic suspend fun Pane.capture(spec: CaptureSpec): List = runInterruptible(server.policy.commands) { java.capture(spec) }\n\n/**\n * Discards this pane's scrollback.\n */\npublic suspend fun Pane.clearHistory(): Unit = runInterruptible(server.policy.commands) { java.clearHistory() }\n\n/**\n * Puts this pane into copy mode, where its scrollback can be navigated.\n */\npublic suspend fun Pane.copyMode(): Unit = runInterruptible(server.policy.commands) { java.copyMode() }\n\n/**\n * Whether this pane's process has exited, read fresh rather than from the capture.\n */\npublic suspend fun Pane.dead(): Boolean = runInterruptible(server.policy.commands) { java.dead() }\n\n/**\n * Leaves whichever mode this pane is in.\n */\npublic suspend fun Pane.exitMode(): Unit = runInterruptible(server.policy.commands) { java.exitMode() }\n\n/**\n * Expands a tmux format in this pane's context, and answers with what it came to.\n */\npublic suspend fun Pane.expand(format: String): String = runInterruptible(server.policy.commands) { java.expand(format) }\n\n/**\n * Moves this pane into another window, splitting it.\n */\npublic suspend fun Pane.joinTo(window: Window): Unit = runInterruptible(server.policy.commands) { java.joinTo(window.java) }\n\n/**\n * Closes this pane.\n */\npublic suspend fun Pane.kill(): Unit = runInterruptible(server.policy.commands) { java.kill() }\n\n/**\n * Which mode this pane is in at this moment, or empty when it is in none.\n */\npublic suspend fun Pane.mode(): PaneMode? = runInterruptible(server.policy.commands) { java.mode().orElse(null) }\n\n/**\n * Notes text that reached this pane without going through this handle, so a wait discounts its\n * echo the way it discounts text sent through [.sendLiteral].\n */\npublic suspend fun Pane.noteTyped(text: String): Unit = runInterruptible(server.policy.commands) { java.noteTyped(text) }\n\n/**\n * Pastes text into this pane as one block, leaving nothing behind on the server.\n */\npublic suspend fun Pane.paste(text: String): Unit = runInterruptible(server.policy.commands) { java.paste(text) }\n\n/**\n * As [.paste(String)], after a caller rechecks state once its private buffer is ready.\n */\npublic suspend fun Pane.paste(text: String, beforePaste: Runnable): Unit = runInterruptible(server.policy.commands) { java.paste(text, beforePaste) }\n\n/**\n * Pastes a named buffer into this pane, as though it had been typed.\n */\npublic suspend fun Pane.pasteBuffer(name: String): Unit = runInterruptible(server.policy.commands) { java.pasteBuffer(name) }\n\n/**\n * Sends everything this pane prints to a shell command, until [.stopPiping].\n */\npublic suspend fun Pane.pipeTo(shellCommand: String): Unit = runInterruptible(server.policy.commands) { java.pipeTo(shellCommand) }\n\n/**\n * Takes a new capture and returns this pane as it is now.\n */\npublic suspend fun Pane.refresh(): Pane = runInterruptible(server.policy.commands) { Pane(java.refresh(), this.server) }\n\n/**\n * Grows this pane by a number of cells in one direction.\n */\npublic suspend fun Pane.resize(direction: Direction, cells: Int): Unit = runInterruptible(server.policy.commands) { java.resize(direction, cells) }\n\n/**\n * Resizes this pane.\n */\npublic suspend fun Pane.resizeTo(size: Dimensions): Unit = runInterruptible(server.policy.commands) { java.resizeTo(size) }\n\n/**\n * Kills whatever runs here and starts the pane's default command again.\n */\npublic suspend fun Pane.respawn(): Unit = runInterruptible(server.policy.commands) { java.respawn() }\n\n/**\n * Kills whatever runs here and starts the given command instead.\n */\npublic suspend fun Pane.respawn(vararg command: String): Unit = runInterruptible(server.policy.commands) { java.respawn(*command) }\n\n/**\n * Restarts the configured pane process in a caller-supplied literal directory, resolved against\n * this process's working directory when relative.\n */\npublic suspend fun Pane.respawnIn(directory: Path): Unit = runInterruptible(server.policy.commands) { java.respawnIn(directory) }\n\n/**\n * Retitles this pane and returns its replacement capture.\n */\npublic suspend fun Pane.retitle(title: String): Pane = runInterruptible(server.policy.commands) { Pane(java.retitle(title), this.server) }\n\n/**\n * Makes this the active pane of its window.\n */\npublic suspend fun Pane.select(): Unit = runInterruptible(server.policy.commands) { java.select() }\n\n/**\n * Sends keys to this pane without pressing Enter.\n */\npublic suspend fun Pane.send(keys: String): Unit = runInterruptible(server.policy.commands) { java.send(keys) }\n\n/**\n * Sends an ordered group of key names to this pane, as tmux resolves them.\n */\npublic suspend fun Pane.sendKeys(keys: List): Unit = runInterruptible(server.policy.commands) { java.sendKeys(keys) }\n\n/**\n * As [.sendKeys(List)], after a caller validates the prepared input destination.\n */\npublic suspend fun Pane.sendKeys(keys: List, beforeSend: Runnable): Unit = runInterruptible(server.policy.commands) { java.sendKeys(keys, beforeSend) }\n\n/**\n * Sends a line to this pane and presses Enter, which is how a command gets run.\n */\npublic suspend fun Pane.sendLine(command: String): Unit = runInterruptible(server.policy.commands) { java.sendLine(command) }\n\n/**\n * Sends an ordered group of strings to this pane as the characters they spell.\n */\npublic suspend fun Pane.sendLiteral(keys: List): Unit = runInterruptible(server.policy.commands) { java.sendLiteral(keys) }\n\n/**\n * As [.sendLiteral(List)], after a caller validates the prepared input destination.\n */\npublic suspend fun Pane.sendLiteral(keys: List, beforeSend: Runnable): Unit = runInterruptible(server.policy.commands) { java.sendLiteral(keys, beforeSend) }\n\n/**\n * Splits this pane in half, putting the new one below it.\n */\npublic suspend fun Pane.split(): Pane = runInterruptible(server.policy.commands) { Pane(java.split(), this.server) }\n\n/**\n * Splits this pane according to a spec, which may be reused across panes.\n */\npublic suspend fun Pane.split(spec: SplitSpec): Pane = runInterruptible(server.policy.commands) { Pane(java.split(spec), this.server) }\n\n/**\n * Stops sending this pane's output anywhere.\n */\npublic suspend fun Pane.stopPiping(): Unit = runInterruptible(server.policy.commands) { java.stopPiping() }\n\n/**\n * Swaps this pane's position with another's.\n */\npublic suspend fun Pane.swapWith(other: Pane): Unit = runInterruptible(server.policy.commands) { java.swapWith(other.java) }\n\n/**\n * Reads validated tmux variables in this pane's format context.\n */\npublic suspend fun Pane.variables(names: List): Map = runInterruptible(server.policy.commands) { java.variables(names) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PromptOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.collections.List\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Forgets what has been typed at the prompt.\n */\npublic suspend fun Prompt.clear(): Unit = runInterruptible(server.policy.commands) { java.clear() }\n\n/**\n * What has been typed at the prompt, oldest first.\n */\npublic suspend fun Prompt.history(): List = runInterruptible(server.policy.commands) { java.history() }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport io.github.libtmux.PaneId\nimport io.github.libtmux.SessionId\nimport io.github.libtmux.SessionSpec\nimport io.github.libtmux.TmuxVersion\nimport io.github.libtmux.WindowId\nimport io.github.libtmux.query.FilterExpr\nimport io.github.libtmux.snapshot.ServerSnapshot\nimport io.github.libtmux.snapshot.WindowContext\nimport io.github.libtmux.transport.CommandResult\nimport java.nio.`file`.Path\nimport kotlin.Boolean\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.collections.List\nimport kotlin.collections.Map\nimport kotlin.time.Duration\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Captures every session a client is attached to.\n */\npublic suspend fun Server.attachedSessions(): List = runInterruptible(policy.commands) { java.attachedSessions().map { Session(it, this) } }\n\n/**\n * Captures every attached client.\n */\npublic suspend fun Server.clients(): List = runInterruptible(policy.commands) { java.clients().map { Client(it, this) } }\n\n/**\n * Runs one tmux command against this server.\n */\npublic suspend fun Server.cmd(vararg argv: String): CommandResult = runInterruptible(policy.commands) { java.cmd(*argv) }\n\n/**\n * Runs one tmux command against this server.\n */\npublic suspend fun Server.cmd(argv: List): CommandResult = runInterruptible(policy.commands) { java.cmd(argv) }\n\n/**\n * Runs one tmux command against this server, overriding the configured deadline.\n */\npublic suspend fun Server.cmd(argv: List, timeout: Duration): CommandResult = runInterruptible(policy.commands) { java.cmd(argv, timeout.toJavaDuration()) }\n\n/**\n * Expands a tmux format against the server, and answers with what it came to.\n */\npublic suspend fun Server.expand(format: String): String = runInterruptible(policy.commands) { java.expand(format) }\n\n/**\n * Whether a session with this name exists.\n */\npublic suspend fun Server.hasSession(name: String): Boolean = runInterruptible(policy.commands) { java.hasSession(name) }\n\n/**\n * Whether the server is running and answering.\n */\npublic suspend fun Server.isAlive(): Boolean = runInterruptible(policy.commands) { java.isAlive() }\n\n/**\n * Whether the server is running and answering, within a deadline of the caller's choosing.\n */\npublic suspend fun Server.isAlive(timeout: Duration): Boolean = runInterruptible(policy.commands) { java.isAlive(timeout.toJavaDuration()) }\n\n/**\n * Ends the tmux server and every session on it.\n */\npublic suspend fun Server.killServer(): Unit = runInterruptible(policy.commands) { java.killServer() }\n\n/**\n * Ends the tmux server and every session on it, within a deadline of the caller's choosing.\n */\npublic suspend fun Server.killServer(timeout: Duration): Unit = runInterruptible(policy.commands) { java.killServer(timeout.toJavaDuration()) }\n\n/**\n * Ends the session with this name, and everything in it.\n */\npublic suspend fun Server.killSession(name: String): Unit = runInterruptible(policy.commands) { java.killSession(name) }\n\n/**\n * Locks every client attached to this server.\n */\npublic suspend fun Server.lock(): Unit = runInterruptible(policy.commands) { java.lock() }\n\n/**\n * Creates a detached session and returns that exact session.\n */\npublic suspend fun Server.newSession(name: String): Session = runInterruptible(policy.commands) { Session(java.newSession(name), this) }\n\n/**\n * Creates a session according to a spec, which may be reused across servers.\n */\npublic suspend fun Server.newSession(spec: SessionSpec): Session = runInterruptible(policy.commands) { Session(java.newSession(spec), this) }\n\n/**\n * The pane with this id, captured now.\n */\npublic suspend fun Server.pane(id: PaneId): Pane? = runInterruptible(policy.commands) { java.pane(id).map { Pane(it, this) }.orElse(null) }\n\n/**\n * Chosen fields for every pane on the server, from one listing.\n */\npublic suspend fun Server.paneFields(names: List): Map> = runInterruptible(policy.commands) { java.paneFields(names) }\n\n/**\n * Captures every pane on the server.\n */\npublic suspend fun Server.panes(): List = runInterruptible(policy.commands) { java.panes().map { Pane(it, this) } }\n\n/**\n * The panes this expression matches, captured now.\n */\npublic suspend fun Server.panes(expression: FilterExpr): List = runInterruptible(policy.commands) { java.panes(expression).map { Pane(it, this) } }\n\n/**\n * Requires a running tmux daemon that answers the liveness probe.\n */\npublic suspend fun Server.requireAlive(): Unit = runInterruptible(policy.commands) { java.requireAlive() }\n\n/**\n * Runs a command that is expected to work, and raises when it did not.\n */\npublic suspend fun Server.run(argv: List): CommandResult = runInterruptible(policy.commands) { java.run(argv) }\n\n/**\n * The session with this name, captured now.\n */\npublic suspend fun Server.session(name: String): Session? = runInterruptible(policy.commands) { java.session(name).map { Session(it, this) }.orElse(null) }\n\n/**\n * The session with this id, captured now.\n */\npublic suspend fun Server.session(id: SessionId): Session? = runInterruptible(policy.commands) { java.session(id).map { Session(it, this) }.orElse(null) }\n\n/**\n * Every session, captured now.\n */\npublic suspend fun Server.sessions(): List = runInterruptible(policy.commands) { java.sessions().map { Session(it, this) } }\n\n/**\n * The sessions this expression matches, captured now.\n */\npublic suspend fun Server.sessions(expression: FilterExpr): List = runInterruptible(policy.commands) { java.sessions(expression).map { Session(it, this) } }\n\n/**\n * Captures the whole hierarchy in at most four listings, retrying once if the server is\n * replaced.\n */\npublic suspend fun Server.snapshot(): ServerSnapshot = runInterruptible(policy.commands) { java.snapshot() }\n\n/**\n * Runs a file of tmux commands, as a configuration file would be run.\n */\npublic suspend fun Server.sourceFile(`file`: Path): Unit = runInterruptible(policy.commands) { java.sourceFile(file) }\n\n/**\n * Reads only validated tmux variable names, never caller-authored format syntax.\n */\npublic suspend fun Server.variables(names: List): Map = runInterruptible(policy.commands) { java.variables(names) }\n\n/**\n * Which tmux this server is running.\n */\npublic suspend fun Server.version(): TmuxVersion = runInterruptible(policy.commands) { java.version() }\n\n/**\n * The winlink at this exact position, captured now.\n */\npublic suspend fun Server.window(context: WindowContext): Window? = runInterruptible(policy.commands) { java.window(context).map { Window(it, this) }.orElse(null) }\n\n/**\n * Captures every winlink, preserving each session and index placement.\n */\npublic suspend fun Server.windows(): List = runInterruptible(policy.commands) { java.windows().map { Window(it, this) } }\n\n/**\n * The winlinks this expression matches, captured now.\n */\npublic suspend fun Server.windows(expression: FilterExpr): List = runInterruptible(policy.commands) { java.windows(expression).map { Window(it, this) } }\n\n/**\n * Every winlink of the window with this id, captured now.\n */\npublic suspend fun Server.windows(id: WindowId): List = runInterruptible(policy.commands) { java.windows(id).map { Window(it, this) } }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport io.github.libtmux.WindowSpec\nimport kotlin.Int\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Detaches every client attached to this session, leaving the session running.\n */\npublic suspend fun Session.detachClients(): Unit = runInterruptible(server.policy.commands) { java.detachClients() }\n\n/**\n * Expands a tmux format in this session's context, and answers with what it came to.\n */\npublic suspend fun Session.expand(format: String): String = runInterruptible(server.policy.commands) { java.expand(format) }\n\n/**\n * Ends this session.\n */\npublic suspend fun Session.kill(): Unit = runInterruptible(server.policy.commands) { java.kill() }\n\n/**\n * Returns to the window that was active before this one.\n */\npublic suspend fun Session.lastWindow(): Unit = runInterruptible(server.policy.commands) { java.lastWindow() }\n\n/**\n * Creates a window in this session and returns that exact window.\n */\npublic suspend fun Session.newWindow(name: String): Window = runInterruptible(server.policy.commands) { Window(java.newWindow(name), this.server) }\n\n/**\n * Creates a window in this session according to a spec, which may be reused across sessions.\n */\npublic suspend fun Session.newWindow(spec: WindowSpec): Window = runInterruptible(server.policy.commands) { Window(java.newWindow(spec), this.server) }\n\n/**\n * Moves to the next window in this session, wrapping at the end.\n */\npublic suspend fun Session.nextWindow(): Unit = runInterruptible(server.policy.commands) { java.nextWindow() }\n\n/**\n * Moves to the previous window in this session, wrapping at the start.\n */\npublic suspend fun Session.previousWindow(): Unit = runInterruptible(server.policy.commands) { java.previousWindow() }\n\n/**\n * Takes a new capture and returns this session as it is now.\n */\npublic suspend fun Session.refresh(): Session = runInterruptible(server.policy.commands) { Session(java.refresh(), this.server) }\n\n/**\n * Renames this session and returns its replacement capture.\n */\npublic suspend fun Session.rename(name: String): Session = runInterruptible(server.policy.commands) { Session(java.rename(name), this.server) }\n\n/**\n * Makes a window of this session the active one.\n */\npublic suspend fun Session.selectWindow(window: Window): Unit = runInterruptible(server.policy.commands) { java.selectWindow(window.java) }\n\n/**\n * Sets the scrollback retained by panes created in this session.\n */\npublic suspend fun Session.setHistoryLimit(lines: Int): Unit = runInterruptible(server.policy.commands) { java.setHistoryLimit(lines) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ShellOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.collections.List\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Runs a shell command and answers with what it printed.\n */\npublic suspend fun Shell.capturing(command: String): List = runInterruptible(server.policy.commands) { java.capturing(command) }\n\n/**\n * Runs one tmux command when a shell command succeeds.\n */\npublic suspend fun Shell.choose(condition: String, whenTrue: String): Unit = runInterruptible(server.policy.commands) { java.choose(condition, whenTrue) }\n\n/**\n * Runs one tmux command or another, according to whether a shell command succeeds.\n */\npublic suspend fun Shell.choose(\n condition: String,\n whenTrue: String,\n whenFalse: String,\n): Unit = runInterruptible(server.policy.commands) { java.choose(condition, whenTrue, whenFalse) }\n\n/**\n * Runs a shell command for its effect.\n */\npublic suspend fun Shell.run(command: String): Unit = runInterruptible(server.policy.commands) { java.run(command) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport io.github.libtmux.Dimensions\nimport io.github.libtmux.Layout\nimport io.github.libtmux.SplitSpec\nimport io.github.libtmux.WindowLayout\nimport kotlin.Int\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Restores an exact arrangement previously read from [.layout()].\n */\npublic suspend fun Window.applyLayout(layout: WindowLayout): Unit = runInterruptible(server.policy.commands) { java.applyLayout(layout) }\n\n/**\n * As [.applyLayout(WindowLayout)], for a layout held as text — one saved to a file, say.\n */\npublic suspend fun Window.applyLayout(layout: String): Unit = runInterruptible(server.policy.commands) { java.applyLayout(layout) }\n\n/**\n * Shows a popup over this window, running a command in it.\n */\npublic suspend fun Window.displayPopup(shellCommand: String): Unit = runInterruptible(server.policy.commands) { java.displayPopup(shellCommand) }\n\n/**\n * Expands a tmux format in this window's context, and answers with what it came to.\n */\npublic suspend fun Window.expand(format: String): String = runInterruptible(server.policy.commands) { java.expand(format) }\n\n/**\n * Closes this window.\n */\npublic suspend fun Window.kill(): Unit = runInterruptible(server.policy.commands) { java.kill() }\n\n/**\n * Links this window into another session, so one window sits in both.\n */\npublic suspend fun Window.linkTo(session: Session): Unit = runInterruptible(server.policy.commands) { java.linkTo(session.java) }\n\n/**\n * Moves this window into another session.\n */\npublic suspend fun Window.moveTo(session: Session): Unit = runInterruptible(server.policy.commands) { java.moveTo(session.java) }\n\n/**\n * Moves this window to an exact index in another session.\n */\npublic suspend fun Window.moveTo(session: Session, index: Int): Unit = runInterruptible(server.policy.commands) { java.moveTo(session.java, index) }\n\n/**\n * Moves to the next built-in layout, as tmux's own binding does.\n */\npublic suspend fun Window.nextLayout(): Unit = runInterruptible(server.policy.commands) { java.nextLayout() }\n\n/**\n * Moves to the previous built-in layout, as tmux's own binding does.\n */\npublic suspend fun Window.previousLayout(): Unit = runInterruptible(server.policy.commands) { java.previousLayout() }\n\n/**\n * Takes a new capture and returns this winlink as it is now.\n */\npublic suspend fun Window.refresh(): Window = runInterruptible(server.policy.commands) { Window(java.refresh(), this.server) }\n\n/**\n * Renames this window and returns its replacement capture.\n */\npublic suspend fun Window.rename(name: String): Window = runInterruptible(server.policy.commands) { Window(java.rename(name), this.server) }\n\n/**\n * Resizes this window in terminal cells.\n */\npublic suspend fun Window.resizeTo(size: Dimensions): Unit = runInterruptible(server.policy.commands) { java.resizeTo(size) }\n\n/**\n * Kills what is running in this window and starts it again.\n */\npublic suspend fun Window.respawn(): Unit = runInterruptible(server.policy.commands) { java.respawn() }\n\n/**\n * Rotates the panes within this window.\n */\npublic suspend fun Window.rotate(): Unit = runInterruptible(server.policy.commands) { java.rotate() }\n\n/**\n * Makes this the active window of its session.\n */\npublic suspend fun Window.select(): Unit = runInterruptible(server.policy.commands) { java.select() }\n\n/**\n * Rearranges this window's panes into one of tmux's built-in layouts.\n */\npublic suspend fun Window.selectLayout(layout: Layout): Unit = runInterruptible(server.policy.commands) { java.selectLayout(layout) }\n\n/**\n * Splits this window's active pane in half, putting the new one below it.\n */\npublic suspend fun Window.split(): Pane = runInterruptible(server.policy.commands) { Pane(java.split(), this.server) }\n\n/**\n * Splits this window's active pane according to a spec, which may be reused across windows.\n */\npublic suspend fun Window.split(spec: SplitSpec): Pane = runInterruptible(server.policy.commands) { Pane(java.split(spec), this.server) }\n\n/**\n * Stops copying input between this window's panes.\n */\npublic suspend fun Window.stopSynchronizingPanes(): Unit = runInterruptible(server.policy.commands) { java.stopSynchronizingPanes() }\n\n/**\n * Copies input to one pane into every pane in this window, until [.stopSynchronizingPanes].\n */\npublic suspend fun Window.synchronizePanes(): Unit = runInterruptible(server.policy.commands) { java.synchronizePanes() }\n\n/**\n * Removes this link, leaving the window wherever else it is linked.\n */\npublic suspend fun Window.unlink(): Unit = runInterruptible(server.policy.commands) { java.unlink() }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/ClientFields.kt":"// GENERATED by build-logic/codegen from field-catalog.tsv. Do not edit;\n// regenerate with the generateFieldProperties Gradle task.\npackage io.github.libtmux.kotlin.query\n\nimport io.github.libtmux.Client_\nimport io.github.libtmux.Session\nimport io.github.libtmux.Client as LibtmuxClient\nimport io.github.libtmux.kotlin.Client as KotlinClient\n\n/**\n * The client's terminal name, which is how tmux addresses it.\n */\npublic val KotlinClient.Companion.name: TextField\n get() = TextField(Client_.name())\n\n/**\n * The session this client was attached to, if any.\n */\npublic val KotlinClient.Companion.session: ToOneField\n get() = ToOneField(Client_.session())\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt":"// GENERATED by build-logic/codegen from field-catalog.tsv. Do not edit;\n// regenerate with the generateFieldProperties Gradle task.\npackage io.github.libtmux.kotlin.query\n\nimport io.github.libtmux.Pane_\nimport io.github.libtmux.Pane as LibtmuxPane\nimport io.github.libtmux.kotlin.Pane as KotlinPane\n\n/**\n * The pane id.\n */\npublic val KotlinPane.Companion.id: TextField\n get() = TextField(Pane_.id())\n\n/**\n * The command tmux reported running in the pane.\n */\npublic val KotlinPane.Companion.command: TextField\n get() = TextField(Pane_.command())\n\n/**\n * The pane's position in its window.\n */\npublic val KotlinPane.Companion.index: NumberField\n get() = NumberField(Pane_.index())\n\n/**\n * Whether this was its window's active pane.\n */\npublic val KotlinPane.Companion.active: FlagField\n get() = FlagField(Pane_.active())\n\n/**\n * The pane's title, which a program running in it can set.\n */\npublic val KotlinPane.Companion.title: TextField\n get() = TextField(Pane_.title())\n\n/**\n * The pane's working directory, as the text tmux reported.\n */\npublic val KotlinPane.Companion.path: TextField\n get() = TextField(Pane_.path())\n\n/**\n * The pane's width, in cells.\n */\npublic val KotlinPane.Companion.width: NumberField\n get() = NumberField(Pane_.width())\n\n/**\n * The pane's height, in cells.\n */\npublic val KotlinPane.Companion.height: NumberField\n get() = NumberField(Pane_.height())\n\n/**\n * The column of the pane's left edge in its window.\n */\npublic val KotlinPane.Companion.left: NumberField\n get() = NumberField(Pane_.left())\n\n/**\n * The row of the pane's top edge in its window.\n */\npublic val KotlinPane.Companion.top: NumberField\n get() = NumberField(Pane_.top())\n\n/**\n * Whether the pane touches the top of its window.\n */\npublic val KotlinPane.Companion.atTop: FlagField\n get() = FlagField(Pane_.atTop())\n\n/**\n * Whether the pane touches the bottom of its window.\n */\npublic val KotlinPane.Companion.atBottom: FlagField\n get() = FlagField(Pane_.atBottom())\n\n/**\n * Whether the pane touches the left of its window.\n */\npublic val KotlinPane.Companion.atLeft: FlagField\n get() = FlagField(Pane_.atLeft())\n\n/**\n * Whether the pane touches the right of its window.\n */\npublic val KotlinPane.Companion.atRight: FlagField\n get() = FlagField(Pane_.atRight())\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/SessionFields.kt":"// GENERATED by build-logic/codegen from field-catalog.tsv. Do not edit;\n// regenerate with the generateFieldProperties Gradle task.\npackage io.github.libtmux.kotlin.query\n\nimport io.github.libtmux.Session_\nimport io.github.libtmux.Window\nimport io.github.libtmux.Session as LibtmuxSession\nimport io.github.libtmux.kotlin.Session as KotlinSession\n\n/**\n * The session id, as text, so it can be compared and listed.\n */\npublic val KotlinSession.Companion.id: TextField\n get() = TextField(Session_.id())\n\n/**\n * The session name.\n */\npublic val KotlinSession.Companion.name: TextField\n get() = TextField(Session_.name())\n\n/**\n * Whether a client was attached when this was captured.\n */\npublic val KotlinSession.Companion.attached: FlagField\n get() = FlagField(Session_.attached())\n\n/**\n * How many windows this session holds.\n */\npublic val KotlinSession.Companion.windowCount: NumberField\n get() = NumberField(Session_.windowCount())\n\n/**\n * This session's windows.\n */\npublic val KotlinSession.Companion.windows: ToManyField\n get() = ToManyField(Session_.windows())\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt":"// GENERATED by build-logic/codegen from field-catalog.tsv. Do not edit;\n// regenerate with the generateFieldProperties Gradle task.\npackage io.github.libtmux.kotlin.query\n\nimport io.github.libtmux.Pane\nimport io.github.libtmux.Session\nimport io.github.libtmux.Window_\nimport io.github.libtmux.Window as LibtmuxWindow\nimport io.github.libtmux.kotlin.Window as KotlinWindow\n\n/**\n * The underlying window id, shared by every link to it.\n */\npublic val KotlinWindow.Companion.id: TextField\n get() = TextField(Window_.id())\n\n/**\n * The window name.\n */\npublic val KotlinWindow.Companion.name: TextField\n get() = TextField(Window_.name())\n\n/**\n * Where this link sits in its session.\n */\npublic val KotlinWindow.Companion.index: NumberField\n get() = NumberField(Window_.index())\n\n/**\n * Whether this was its session's active window.\n */\npublic val KotlinWindow.Companion.active: FlagField\n get() = FlagField(Window_.active())\n\n/**\n * Whether the underlying window is linked into more than one session.\n */\npublic val KotlinWindow.Companion.linked: FlagField\n get() = FlagField(Window_.linked())\n\n/**\n * The window's width, in cells.\n */\npublic val KotlinWindow.Companion.width: NumberField\n get() = NumberField(Window_.width())\n\n/**\n * The window's height, in cells.\n */\npublic val KotlinWindow.Companion.height: NumberField\n get() = NumberField(Window_.height())\n\n/**\n * How many panes this link holds.\n */\npublic val KotlinWindow.Companion.paneCount: NumberField\n get() = NumberField(Window_.paneCount())\n\n/**\n * This link's panes.\n */\npublic val KotlinWindow.Companion.panes: ToManyField\n get() = ToManyField(Window_.panes())\n\n/**\n * The session this link belongs to.\n */\npublic val KotlinWindow.Companion.session: ToOneField\n get() = ToOneField(Window_.session())\n"},"repo":"libtmux/libtmux-java"} +{"port":"kotlin","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractor":"@libtmux/api-model (kotlin syntax)","symbols":[{"id":"io.github.libtmux.kotlin.Batch","name":"Batch","kind":"class","signatures":[{"raw":"public class Batch","params":[]}],"imports":{"JavaBatch":"io.github.libtmux.batch.Batch"},"modifiers":[],"doc":{"summary":"Several tmux commands collected to run together in one invocation.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `BatchOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Batch.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch"},{"id":"io.github.libtmux.kotlin.Batch.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Batch","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Batch.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch-server"},{"id":"io.github.libtmux.kotlin.Batch.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Batch","signatures":[{"raw":"public val asJava: JavaBatch","params":[],"returns":"JavaBatch"}],"imports":{"JavaBatch":"io.github.libtmux.batch.Batch"},"modifiers":[],"doc":{"summary":"The Java batch this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Batch.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch-asjava"},{"id":"io.github.libtmux.kotlin.Batch.add","name":"add","kind":"method","parent":"io.github.libtmux.kotlin.Batch","signatures":[{"raw":"public fun add(vararg argv: String): Batch","params":[{"name":"argv","type":"String"}],"returns":"Batch"},{"raw":"public fun add(argv: List): Batch","params":[{"name":"argv","type":"List"}],"returns":"Batch"}],"imports":{"JavaBatch":"io.github.libtmux.batch.Batch"},"modifiers":["overload"],"doc":{"summary":"Adds one tmux command, its arguments already separate elements. Collected, not sent."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Batch.kt","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch-add"},{"id":"io.github.libtmux.kotlin.Batch.size","name":"size","kind":"method","parent":"io.github.libtmux.kotlin.Batch","signatures":[{"raw":"public fun size(): Int","params":[],"returns":"Int"}],"imports":{"JavaBatch":"io.github.libtmux.batch.Batch"},"modifiers":[],"doc":{"summary":"How many operations have been collected. A pure, local read."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Batch.kt","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch-size"},{"id":"io.github.libtmux.kotlin.Batch.length","name":"length","kind":"method","parent":"io.github.libtmux.kotlin.Batch","signatures":[{"raw":"public fun length(): Int","params":[],"returns":"Int"}],"imports":{"JavaBatch":"io.github.libtmux.batch.Batch"},"modifiers":[],"doc":{"summary":"How many bytes the collected operations come to as the one command tmux parses. A pure, local read."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Batch.kt","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch-length"},{"id":"io.github.libtmux.kotlin.Batch.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Batch","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaBatch":"io.github.libtmux.batch.Batch"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Batch.kt","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch-equals"},{"id":"io.github.libtmux.kotlin.Batch.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Batch","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaBatch":"io.github.libtmux.batch.Batch"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Batch.kt","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch-hashcode"},{"id":"io.github.libtmux.kotlin.Batch.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Batch","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaBatch":"io.github.libtmux.batch.Batch"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Batch.kt","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch-tostring"},{"id":"io.github.libtmux.kotlin.Buffers","name":"Buffers","kind":"class","signatures":[{"raw":"public class Buffers","params":[]}],"imports":{"JavaBuffers":"io.github.libtmux.Buffers"},"modifiers":[],"doc":{"summary":"The tmux server's paste buffers.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `BuffersOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Buffers.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers"},{"id":"io.github.libtmux.kotlin.Buffers.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Buffers","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Buffers.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-server"},{"id":"io.github.libtmux.kotlin.Buffers.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"public val asJava: JavaBuffers","params":[],"returns":"JavaBuffers"}],"imports":{"JavaBuffers":"io.github.libtmux.Buffers"},"modifiers":[],"doc":{"summary":"The Java buffers this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Buffers.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-asjava"},{"id":"io.github.libtmux.kotlin.Buffers.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaBuffers":"io.github.libtmux.Buffers"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Buffers.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-equals"},{"id":"io.github.libtmux.kotlin.Buffers.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaBuffers":"io.github.libtmux.Buffers"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Buffers.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-hashcode"},{"id":"io.github.libtmux.kotlin.Buffers.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaBuffers":"io.github.libtmux.Buffers"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Buffers.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-tostring"},{"id":"io.github.libtmux.kotlin.Client","name":"Client","kind":"class","signatures":[{"raw":"public class Client","params":[]}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","JavaClient":"io.github.libtmux.Client"},"modifiers":[],"doc":{"summary":"An attached tmux client and its captured properties.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `ClientOperations.kt`. [Companion] hosts the generated query field namespace."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client"},{"id":"io.github.libtmux.kotlin.Client.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Client","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-server"},{"id":"io.github.libtmux.kotlin.Client.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public val asJava: JavaClient","params":[],"returns":"JavaClient"}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","JavaClient":"io.github.libtmux.Client"},"modifiers":[],"doc":{"summary":"The Java client this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-asjava"},{"id":"io.github.libtmux.kotlin.Client.name","name":"name","kind":"property","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public val name: String","params":[],"returns":"String"}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","JavaClient":"io.github.libtmux.Client"},"modifiers":[],"doc":{"summary":"The client's terminal name, which is how tmux addresses it."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-name"},{"id":"io.github.libtmux.kotlin.Client.session","name":"session","kind":"property","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public val session: Session?","params":[],"returns":"Session?"}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","JavaClient":"io.github.libtmux.Client"},"modifiers":[],"doc":{"summary":"The session this client was attached to when captured. A pure read of the capture."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-session"},{"id":"io.github.libtmux.kotlin.Client.attachment","name":"attachment","kind":"property","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public val attachment: ClientAttachment?","params":[],"returns":"ClientAttachment?"}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","JavaClient":"io.github.libtmux.Client"},"modifiers":[],"doc":{"summary":"What this client was looking at when captured. A pure read: it issues no command."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-attachment"},{"id":"io.github.libtmux.kotlin.Client.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","JavaClient":"io.github.libtmux.Client"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-equals"},{"id":"io.github.libtmux.kotlin.Client.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","JavaClient":"io.github.libtmux.Client"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-hashcode"},{"id":"io.github.libtmux.kotlin.Client.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","JavaClient":"io.github.libtmux.Client"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-tostring"},{"id":"io.github.libtmux.kotlin.Client.Companion","name":"Companion","kind":"module","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public companion object","params":[]}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","JavaClient":"io.github.libtmux.Client"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Client.kt","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-companion"},{"id":"io.github.libtmux.kotlin.CommandChain","name":"CommandChain","kind":"class","signatures":[{"raw":"public class CommandChain","params":[]}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"doc":{"summary":"A sequence of tmux commands where each one acts on what the last one made.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `CommandChainOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain"},{"id":"io.github.libtmux.kotlin.CommandChain.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.CommandChain","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-server"},{"id":"io.github.libtmux.kotlin.CommandChain.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"public val asJava: JavaCommandChain","params":[],"returns":"JavaCommandChain"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"doc":{"summary":"The Java chain this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-asjava"},{"id":"io.github.libtmux.kotlin.CommandChain.newWindow","name":"newWindow","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"public fun newWindow(name: String): CommandChain","params":[{"name":"name","type":"String"}],"returns":"CommandChain"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"doc":{"summary":"Makes a window named [name], which the commands after it act on. Collected, not sent."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-newwindow"},{"id":"io.github.libtmux.kotlin.CommandChain.renameWindow","name":"renameWindow","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"public fun renameWindow(name: String): CommandChain","params":[{"name":"name","type":"String"}],"returns":"CommandChain"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"doc":{"summary":"Renames the window the chain is on. Collected, not sent."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-renamewindow"},{"id":"io.github.libtmux.kotlin.CommandChain.splitLeftRight","name":"splitLeftRight","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"public fun splitLeftRight(): CommandChain","params":[],"returns":"CommandChain"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"doc":{"summary":"Splits the current pane into left and right. Collected, not sent."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-splitleftright"},{"id":"io.github.libtmux.kotlin.CommandChain.splitTopBottom","name":"splitTopBottom","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"public fun splitTopBottom(): CommandChain","params":[],"returns":"CommandChain"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"doc":{"summary":"Splits the current pane into top and bottom. Collected, not sent."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-splittopbottom"},{"id":"io.github.libtmux.kotlin.CommandChain.sendLine","name":"sendLine","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"public fun sendLine(command: String): CommandChain","params":[{"name":"command","type":"String"}],"returns":"CommandChain"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"doc":{"summary":"Types [command] into the current pane and presses Enter. Collected, not sent."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-sendline"},{"id":"io.github.libtmux.kotlin.CommandChain.then","name":"then","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"public fun then(vararg argv: String): CommandChain","params":[{"name":"argv","type":"String"}],"returns":"CommandChain"},{"raw":"public fun then(argv: List): CommandChain","params":[{"name":"argv","type":"List"}],"returns":"CommandChain"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":["overload"],"doc":{"summary":"Adds any tmux command. Collected, not sent."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-then"},{"id":"io.github.libtmux.kotlin.CommandChain.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-equals"},{"id":"io.github.libtmux.kotlin.CommandChain.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":39,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-hashcode"},{"id":"io.github.libtmux.kotlin.CommandChain.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaCommandChain":"io.github.libtmux.CommandChain"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/CommandChain.kt","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-tostring"},{"id":"io.github.libtmux.kotlin.Commands","name":"Commands","kind":"class","signatures":[{"raw":"public class Commands","params":[]}],"imports":{"JavaCommands":"io.github.libtmux.Commands"},"modifiers":[],"doc":{"summary":"The commands this tmux knows, read without starting a server to answer.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `CommandsOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Commands.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commands"},{"id":"io.github.libtmux.kotlin.Commands.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Commands","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Commands.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commands-server"},{"id":"io.github.libtmux.kotlin.Commands.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Commands","signatures":[{"raw":"public val asJava: JavaCommands","params":[],"returns":"JavaCommands"}],"imports":{"JavaCommands":"io.github.libtmux.Commands"},"modifiers":[],"doc":{"summary":"The Java commands this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Commands.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commands-asjava"},{"id":"io.github.libtmux.kotlin.Commands.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Commands","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaCommands":"io.github.libtmux.Commands"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Commands.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commands-equals"},{"id":"io.github.libtmux.kotlin.Commands.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Commands","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaCommands":"io.github.libtmux.Commands"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Commands.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commands-hashcode"},{"id":"io.github.libtmux.kotlin.Commands.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Commands","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaCommands":"io.github.libtmux.Commands"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Commands.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commands-tostring"},{"id":"io.github.libtmux.kotlin.ControlClient","name":"ControlClient","kind":"class","signatures":[{"raw":"public class ControlClient : AutoCloseable","params":[],"returns":"AutoCloseable"}],"imports":{"ControlEvent":"io.github.libtmux.control.ControlEvent","Delivery":"io.github.libtmux.control.Delivery","PaneOutput":"io.github.libtmux.control.PaneOutput","Flow":"kotlinx.coroutines.flow.Flow","JavaControlClient":"io.github.libtmux.control.ControlClient"},"modifiers":[],"doc":{"summary":"A tmux client that stays attached and answers one command at a time.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `ControlClientOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ControlClient.kt","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient"},{"id":"io.github.libtmux.kotlin.ControlClient.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.ControlClient","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ControlClient.kt","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-server"},{"id":"io.github.libtmux.kotlin.ControlClient.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"public val asJava: JavaControlClient","params":[],"returns":"JavaControlClient"}],"imports":{"ControlEvent":"io.github.libtmux.control.ControlEvent","Delivery":"io.github.libtmux.control.Delivery","PaneOutput":"io.github.libtmux.control.PaneOutput","Flow":"kotlinx.coroutines.flow.Flow","JavaControlClient":"io.github.libtmux.control.ControlClient"},"modifiers":[],"doc":{"summary":"The Java control client this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ControlClient.kt","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-asjava"},{"id":"io.github.libtmux.kotlin.ControlClient.isAlive","name":"isAlive","kind":"property","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"public val isAlive: Boolean","params":[],"returns":"Boolean"}],"imports":{"ControlEvent":"io.github.libtmux.control.ControlEvent","Delivery":"io.github.libtmux.control.Delivery","PaneOutput":"io.github.libtmux.control.PaneOutput","Flow":"kotlinx.coroutines.flow.Flow","JavaControlClient":"io.github.libtmux.control.ControlClient"},"modifiers":[],"doc":{"summary":"Whether the client is still running."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ControlClient.kt","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-isalive"},{"id":"io.github.libtmux.kotlin.ControlClient.standardError","name":"standardError","kind":"property","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"public val standardError: String","params":[],"returns":"String"}],"imports":{"ControlEvent":"io.github.libtmux.control.ControlEvent","Delivery":"io.github.libtmux.control.Delivery","PaneOutput":"io.github.libtmux.control.PaneOutput","Flow":"kotlinx.coroutines.flow.Flow","JavaControlClient":"io.github.libtmux.control.ControlClient"},"modifiers":[],"doc":{"summary":"The error text captured from this control process, at most 4096 bytes."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ControlClient.kt","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-standarderror"},{"id":"io.github.libtmux.kotlin.ControlClient.standardErrorTruncated","name":"standardErrorTruncated","kind":"property","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"public val standardErrorTruncated: Boolean","params":[],"returns":"Boolean"}],"imports":{"ControlEvent":"io.github.libtmux.control.ControlEvent","Delivery":"io.github.libtmux.control.Delivery","PaneOutput":"io.github.libtmux.control.PaneOutput","Flow":"kotlinx.coroutines.flow.Flow","JavaControlClient":"io.github.libtmux.control.ControlClient"},"modifiers":[],"doc":{"summary":"Whether [standardError] stopped before the process finished writing it."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ControlClient.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-standarderrortruncated"},{"id":"io.github.libtmux.kotlin.ControlClient.output","name":"output","kind":"method","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"public fun output(capacity: Int, onSubscribed: suspend () -> Unit = {}): Flow>","params":[{"name":"capacity","type":"Int"},{"name":"onSubscribed","type":"suspend","default":"{}"}],"returns":"Flow>"}],"imports":{"ControlEvent":"io.github.libtmux.control.ControlEvent","Delivery":"io.github.libtmux.control.Delivery","PaneOutput":"io.github.libtmux.control.PaneOutput","Flow":"kotlinx.coroutines.flow.Flow","JavaControlClient":"io.github.libtmux.control.ControlClient"},"modifiers":[],"doc":{"summary":"Terminal output tmux pushes, as a cold [Flow].","body":"A fresh Java subscription opens per [kotlinx.coroutines.flow.Flow.collect] and closes when\ncollection ends, cancels, or throws — fan-out means collecting twice, each with its own gap\naccounting. Not `suspend`: opening the subscription is local and does no tmux round trip: only\ncollecting it reads.\n\nOutput tmux sends before the subscription opens is not delivered, and a cold flow opens it\nonly when collection starts. So a command whose output is wanted belongs in [onSubscribed],\nwhich runs once the subscription exists and before the first read, rather than before\n`collect`: `control.output(32) { control.send(\"send-keys\", ...) }`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ControlClient.kt","line":45,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-output"},{"id":"io.github.libtmux.kotlin.ControlClient.events","name":"events","kind":"method","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"public fun events(capacity: Int, onSubscribed: suspend () -> Unit = {}): Flow>","params":[{"name":"capacity","type":"Int"},{"name":"onSubscribed","type":"suspend","default":"{}"}],"returns":"Flow>"}],"imports":{"ControlEvent":"io.github.libtmux.control.ControlEvent","Delivery":"io.github.libtmux.control.Delivery","PaneOutput":"io.github.libtmux.control.PaneOutput","Flow":"kotlinx.coroutines.flow.Flow","JavaControlClient":"io.github.libtmux.control.ControlClient"},"modifiers":[],"doc":{"summary":"State changes tmux volunteers, as a cold [Flow]. Reads, and takes [onSubscribed], as [output] does."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ControlClient.kt","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-events"},{"id":"io.github.libtmux.kotlin.ControlClient.close","name":"close","kind":"method","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"override fun close()","params":[]}],"imports":{"ControlEvent":"io.github.libtmux.control.ControlEvent","Delivery":"io.github.libtmux.control.Delivery","PaneOutput":"io.github.libtmux.control.PaneOutput","Flow":"kotlinx.coroutines.flow.Flow","JavaControlClient":"io.github.libtmux.control.ControlClient"},"modifiers":[],"doc":{"summary":"Ends the client, rejecting queued requests and resolving picked requests as uncertain."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ControlClient.kt","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-close"},{"id":"io.github.libtmux.kotlin.LibTmuxDsl","name":"LibTmuxDsl","kind":"class","signatures":[{"raw":"@DslMarker\npublic annotation class LibTmuxDsl","params":[]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Marks every builder below so an inner block cannot reach an outer block's receiver by accident: `split { directory = x }` inside `window { }` resolves to the innermost [SplitBuilder], never to the [WindowBuilder] it is nested in. Reaching the outer receiver on purpose still works, spelled explicitly (`this@window.directory = x`)."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-libtmuxdsl"},{"id":"io.github.libtmux.kotlin.SessionBuilder","name":"SessionBuilder","kind":"class","signatures":[{"raw":"@LibTmuxDsl\npublic class SessionBuilder","params":[]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Configure a new session, its initial command, and its windows with [Server.newSession]."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":60,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-sessionbuilder"},{"id":"io.github.libtmux.kotlin.SessionBuilder.name","name":"name","kind":"property","parent":"io.github.libtmux.kotlin.SessionBuilder","signatures":[{"raw":"public var name: String?","params":[],"returns":"String?"}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":66,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-sessionbuilder-name"},{"id":"io.github.libtmux.kotlin.SessionBuilder.directory","name":"directory","kind":"property","parent":"io.github.libtmux.kotlin.SessionBuilder","signatures":[{"raw":"public var directory: Path?","params":[],"returns":"Path?"}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"The session's working directory, which its first window starts in too."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":69,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-sessionbuilder-directory"},{"id":"io.github.libtmux.kotlin.SessionBuilder.running","name":"running","kind":"method","parent":"io.github.libtmux.kotlin.SessionBuilder","signatures":[{"raw":"public fun running(vararg argv: String)","params":[{"name":"argv","type":"String"}]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Runs [argv] in the first window instead of the default shell."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":72,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-sessionbuilder-running"},{"id":"io.github.libtmux.kotlin.SessionBuilder.env","name":"env","kind":"method","parent":"io.github.libtmux.kotlin.SessionBuilder","signatures":[{"raw":"public fun env(name: String, value: String)","params":[{"name":"name","type":"String"},{"name":"value","type":"String"}]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Adds a variable to the new session's environment, keeping any already set."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-sessionbuilder-env"},{"id":"io.github.libtmux.kotlin.SessionBuilder.window","name":"window","kind":"method","parent":"io.github.libtmux.kotlin.SessionBuilder","signatures":[{"raw":"public fun window(configure: WindowBuilder.() -> Unit)","params":[{"name":"configure","type":"WindowBuilder.() -> Unit"}]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":81,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-sessionbuilder-window"},{"id":"io.github.libtmux.kotlin.WindowBuilder","name":"WindowBuilder","kind":"class","signatures":[{"raw":"@LibTmuxDsl\npublic class WindowBuilder","params":[]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Configure a window and its pane splits inside a [SessionBuilder] block."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":103,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-windowbuilder"},{"id":"io.github.libtmux.kotlin.WindowBuilder.name","name":"name","kind":"property","parent":"io.github.libtmux.kotlin.WindowBuilder","signatures":[{"raw":"public var name: String?","params":[],"returns":"String?"}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":110,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-windowbuilder-name"},{"id":"io.github.libtmux.kotlin.WindowBuilder.directory","name":"directory","kind":"property","parent":"io.github.libtmux.kotlin.WindowBuilder","signatures":[{"raw":"public var directory: Path?","params":[],"returns":"Path?"}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":112,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-windowbuilder-directory"},{"id":"io.github.libtmux.kotlin.WindowBuilder.running","name":"running","kind":"method","parent":"io.github.libtmux.kotlin.WindowBuilder","signatures":[{"raw":"public fun running(vararg argv: String)","params":[{"name":"argv","type":"String"}]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Runs [argv] in this window instead of the default shell."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":115,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-windowbuilder-running"},{"id":"io.github.libtmux.kotlin.WindowBuilder.env","name":"env","kind":"method","parent":"io.github.libtmux.kotlin.WindowBuilder","signatures":[{"raw":"public fun env(name: String, value: String)","params":[{"name":"name","type":"String"},{"name":"value","type":"String"}]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Adds a variable to the new window's environment, keeping any already set."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":120,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-windowbuilder-env"},{"id":"io.github.libtmux.kotlin.WindowBuilder.split","name":"split","kind":"method","parent":"io.github.libtmux.kotlin.WindowBuilder","signatures":[{"raw":"public fun split(configure: SplitBuilder.() -> Unit = {})","params":[{"name":"configure","type":"SplitBuilder.() -> Unit","default":"{}"}]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":124,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-windowbuilder-split"},{"id":"io.github.libtmux.kotlin.SplitBuilder","name":"SplitBuilder","kind":"class","signatures":[{"raw":"@LibTmuxDsl\npublic class SplitBuilder","params":[]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Choose the position, size, and working directory of a new pane split."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":139,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-splitbuilder"},{"id":"io.github.libtmux.kotlin.SplitBuilder.directory","name":"directory","kind":"property","parent":"io.github.libtmux.kotlin.SplitBuilder","signatures":[{"raw":"public var directory: Path?","params":[],"returns":"Path?"}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":143,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-splitbuilder-directory"},{"id":"io.github.libtmux.kotlin.SplitBuilder.below","name":"below","kind":"method","parent":"io.github.libtmux.kotlin.SplitBuilder","signatures":[{"raw":"public fun below()","params":[]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Puts the new pane below this one. tmux's own default if no direction is chosen."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":150,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-splitbuilder-below"},{"id":"io.github.libtmux.kotlin.SplitBuilder.above","name":"above","kind":"method","parent":"io.github.libtmux.kotlin.SplitBuilder","signatures":[{"raw":"public fun above()","params":[]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Puts the new pane above this one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":155,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-splitbuilder-above"},{"id":"io.github.libtmux.kotlin.SplitBuilder.toRight","name":"toRight","kind":"method","parent":"io.github.libtmux.kotlin.SplitBuilder","signatures":[{"raw":"public fun toRight()","params":[]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Puts the new pane to the right of this one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":160,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-splitbuilder-toright"},{"id":"io.github.libtmux.kotlin.SplitBuilder.toLeft","name":"toLeft","kind":"method","parent":"io.github.libtmux.kotlin.SplitBuilder","signatures":[{"raw":"public fun toLeft()","params":[]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Puts the new pane to the left of this one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":165,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-splitbuilder-toleft"},{"id":"io.github.libtmux.kotlin.SplitBuilder.cells","name":"cells","kind":"method","parent":"io.github.libtmux.kotlin.SplitBuilder","signatures":[{"raw":"public fun cells(count: Int)","params":[{"name":"count","type":"Int"}]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Sizes the new pane by an exact number of cells."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":170,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-splitbuilder-cells"},{"id":"io.github.libtmux.kotlin.SplitBuilder.percent","name":"percent","kind":"method","parent":"io.github.libtmux.kotlin.SplitBuilder","signatures":[{"raw":"public fun percent(share: Int)","params":[{"name":"share","type":"Int"}]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Sizes the new pane as a percentage of the space being split."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":175,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-splitbuilder-percent"},{"id":"io.github.libtmux.kotlin.SplitBuilder.env","name":"env","kind":"method","parent":"io.github.libtmux.kotlin.SplitBuilder","signatures":[{"raw":"public fun env(name: String, value: String)","params":[{"name":"name","type":"String"},{"name":"value","type":"String"}]}],"imports":{"SessionSpec":"io.github.libtmux.SessionSpec","SplitSpec":"io.github.libtmux.SplitSpec","WindowSpec":"io.github.libtmux.WindowSpec","Path":"java.nio.file.Path"},"modifiers":[],"doc":{"summary":"Adds a variable to the new pane's environment, keeping any already set."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Dsl.kt","line":180,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-splitbuilder-env"},{"id":"io.github.libtmux.kotlin.Environment","name":"Environment","kind":"class","signatures":[{"raw":"public class Environment","params":[]}],"imports":{"JavaEnvironment":"io.github.libtmux.Environment"},"modifiers":[],"doc":{"summary":"Read and update environment variables used to start processes in tmux.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `EnvironmentOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Environment.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment"},{"id":"io.github.libtmux.kotlin.Environment.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Environment","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Environment.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-server"},{"id":"io.github.libtmux.kotlin.Environment.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public val asJava: JavaEnvironment","params":[],"returns":"JavaEnvironment"}],"imports":{"JavaEnvironment":"io.github.libtmux.Environment"},"modifiers":[],"doc":{"summary":"The Java environment this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Environment.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-asjava"},{"id":"io.github.libtmux.kotlin.Environment.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaEnvironment":"io.github.libtmux.Environment"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Environment.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-equals"},{"id":"io.github.libtmux.kotlin.Environment.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaEnvironment":"io.github.libtmux.Environment"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Environment.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-hashcode"},{"id":"io.github.libtmux.kotlin.Environment.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaEnvironment":"io.github.libtmux.Environment"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Environment.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-tostring"},{"id":"io.github.libtmux.kotlin.ExecutionPolicy","name":"ExecutionPolicy","kind":"class","signatures":[{"raw":"public class ExecutionPolicy(\n public val commands: CoroutineDispatcher,\n public val streamReads: CoroutineDispatcher,\n public val defaultDeadline: Duration = Duration.INFINITE,\n)","params":[{"name":"commands","type":"CoroutineDispatcher"},{"name":"streamReads","type":"CoroutineDispatcher"},{"name":"defaultDeadline","type":"Duration","default":"Duration.INFINITE"}]}],"imports":{"ServerConfig":"io.github.libtmux.ServerConfig","Duration":"kotlin.time.Duration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers"},"modifiers":[],"doc":{"summary":"Controls the dispatchers and concurrency limits for a [Server]'s suspending operations.","body":"Two independently sized pools, not one: [commands] backs every `suspend` operation this module\ngenerates or hand-writes, sized from the transport's own admission bound rather than a guess.\n[streamReads] backs only what still genuinely blocks a thread — [Server.liveState]'s background\npump. [ControlClient.output] and [ControlClient.events] hold no thread from either pool; they are\nbuilt on [io.github.libtmux.control.EventSubscription.poll] and `onReady`, not on a blocking read."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ExecutionPolicy.kt","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-executionpolicy"},{"id":"io.github.libtmux.kotlin.ExecutionPolicy.commands","name":"commands","kind":"property","parent":"io.github.libtmux.kotlin.ExecutionPolicy","modifiers":[],"signatures":[{"raw":"public val commands: CoroutineDispatcher","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ExecutionPolicy.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-executionpolicy-commands"},{"id":"io.github.libtmux.kotlin.ExecutionPolicy.streamReads","name":"streamReads","kind":"property","parent":"io.github.libtmux.kotlin.ExecutionPolicy","modifiers":[],"signatures":[{"raw":"public val streamReads: CoroutineDispatcher","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ExecutionPolicy.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-executionpolicy-streamreads"},{"id":"io.github.libtmux.kotlin.ExecutionPolicy.defaultDeadline","name":"defaultDeadline","kind":"property","parent":"io.github.libtmux.kotlin.ExecutionPolicy","modifiers":[],"signatures":[{"raw":"public val defaultDeadline: Duration = Duration.INFINITE","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ExecutionPolicy.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-executionpolicy-defaultdeadline"},{"id":"io.github.libtmux.kotlin.ExecutionPolicy.Companion","name":"Companion","kind":"module","parent":"io.github.libtmux.kotlin.ExecutionPolicy","signatures":[{"raw":"public companion object","params":[]}],"imports":{"ServerConfig":"io.github.libtmux.ServerConfig","Duration":"kotlin.time.Duration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ExecutionPolicy.kt","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-executionpolicy-companion"},{"id":"io.github.libtmux.kotlin.ExecutionPolicy.Companion.default","name":"default","kind":"method","parent":"io.github.libtmux.kotlin.ExecutionPolicy.Companion","signatures":[{"raw":"public fun default(\n config: ServerConfig,\n streamReadCapacity: Int = DEFAULT_STREAM_READ_CAPACITY,\n ): ExecutionPolicy","params":[{"name":"config","type":"ServerConfig"},{"name":"streamReadCapacity","type":"Int","default":"DEFAULT_STREAM_READ_CAPACITY"}],"returns":"ExecutionPolicy"}],"imports":{"ServerConfig":"io.github.libtmux.ServerConfig","Duration":"kotlin.time.Duration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers"},"modifiers":[],"doc":{"summary":"Sizes [commands] from `config`'s own [ServerConfig.maxConcurrentCommands], and [streamReads] independently: it bounds a structurally different resource, open [Server.liveState] watches, not tmux process admission."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/ExecutionPolicy.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-executionpolicy-companion-default"},{"id":"io.github.libtmux.kotlin.Hooks","name":"Hooks","kind":"class","signatures":[{"raw":"public class Hooks","params":[]}],"imports":{"JavaHooks":"io.github.libtmux.Hooks"},"modifiers":[],"doc":{"summary":"Read and update hooks for the server, session, window, or pane that owns this handle.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `HooksOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Hooks.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks"},{"id":"io.github.libtmux.kotlin.Hooks.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Hooks","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Hooks.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-server"},{"id":"io.github.libtmux.kotlin.Hooks.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Hooks","signatures":[{"raw":"public val asJava: JavaHooks","params":[],"returns":"JavaHooks"}],"imports":{"JavaHooks":"io.github.libtmux.Hooks"},"modifiers":[],"doc":{"summary":"The Java hooks this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Hooks.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-asjava"},{"id":"io.github.libtmux.kotlin.Hooks.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Hooks","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaHooks":"io.github.libtmux.Hooks"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Hooks.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-equals"},{"id":"io.github.libtmux.kotlin.Hooks.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Hooks","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaHooks":"io.github.libtmux.Hooks"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Hooks.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-hashcode"},{"id":"io.github.libtmux.kotlin.Hooks.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Hooks","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaHooks":"io.github.libtmux.Hooks"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Hooks.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-tostring"},{"id":"io.github.libtmux.kotlin.Keys","name":"Keys","kind":"class","signatures":[{"raw":"public class Keys","params":[]}],"imports":{"JavaKeys":"io.github.libtmux.Keys"},"modifiers":[],"doc":{"summary":"The server's key bindings, in one key table or across all of them.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `KeysOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Keys.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys"},{"id":"io.github.libtmux.kotlin.Keys.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Keys","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Keys.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys-server"},{"id":"io.github.libtmux.kotlin.Keys.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Keys","signatures":[{"raw":"public val asJava: JavaKeys","params":[],"returns":"JavaKeys"}],"imports":{"JavaKeys":"io.github.libtmux.Keys"},"modifiers":[],"doc":{"summary":"The Java keys this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Keys.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys-asjava"},{"id":"io.github.libtmux.kotlin.Keys.`in`","name":"`in`","kind":"method","parent":"io.github.libtmux.kotlin.Keys","signatures":[{"raw":"public fun `in`(table: String): Keys","params":[{"name":"table","type":"String"}],"returns":"Keys"}],"imports":{"JavaKeys":"io.github.libtmux.Keys"},"modifiers":[],"doc":{"summary":"The same bindings, in one named table. A pure, local view: it issues no command."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Keys.kt","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys-in"},{"id":"io.github.libtmux.kotlin.Keys.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Keys","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaKeys":"io.github.libtmux.Keys"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Keys.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys-equals"},{"id":"io.github.libtmux.kotlin.Keys.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Keys","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaKeys":"io.github.libtmux.Keys"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Keys.kt","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys-hashcode"},{"id":"io.github.libtmux.kotlin.Keys.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Keys","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaKeys":"io.github.libtmux.Keys"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Keys.kt","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys-tostring"},{"id":"io.github.libtmux.kotlin.MessageLog","name":"MessageLog","kind":"class","signatures":[{"raw":"public class MessageLog","params":[]}],"imports":{"JavaMessageLog":"io.github.libtmux.MessageLog"},"modifiers":[],"doc":{"summary":"The server's own message log, newest last.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `MessageLogOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/MessageLog.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-messagelog"},{"id":"io.github.libtmux.kotlin.MessageLog.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.MessageLog","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/MessageLog.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-messagelog-server"},{"id":"io.github.libtmux.kotlin.MessageLog.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.MessageLog","signatures":[{"raw":"public val asJava: JavaMessageLog","params":[],"returns":"JavaMessageLog"}],"imports":{"JavaMessageLog":"io.github.libtmux.MessageLog"},"modifiers":[],"doc":{"summary":"The Java message log this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/MessageLog.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-messagelog-asjava"},{"id":"io.github.libtmux.kotlin.MessageLog.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.MessageLog","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaMessageLog":"io.github.libtmux.MessageLog"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/MessageLog.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-messagelog-equals"},{"id":"io.github.libtmux.kotlin.MessageLog.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.MessageLog","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaMessageLog":"io.github.libtmux.MessageLog"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/MessageLog.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-messagelog-hashcode"},{"id":"io.github.libtmux.kotlin.MessageLog.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.MessageLog","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaMessageLog":"io.github.libtmux.MessageLog"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/MessageLog.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-messagelog-tostring"},{"id":"io.github.libtmux.kotlin.Options","name":"Options","kind":"class","signatures":[{"raw":"public class Options","params":[]}],"imports":{"OptionKey":"io.github.libtmux.OptionKey","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaOptions":"io.github.libtmux.Options"},"modifiers":[],"doc":{"summary":"Read and update options for the server, session, window, or pane that owns this handle.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `OptionsOperations.kt`. `get`/`set` are hand-written in both overloads: a Kotlin member\nmakes every same-named extension unreachable regardless of its own parameter types, so the\n`OptionKey` overload cannot be added beside a generated `get(String)`/`set(String, String)`\nwithout also hand-writing those."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Options.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options"},{"id":"io.github.libtmux.kotlin.Options.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Options","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Options.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-server"},{"id":"io.github.libtmux.kotlin.Options.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"public val asJava: JavaOptions","params":[],"returns":"JavaOptions"}],"imports":{"OptionKey":"io.github.libtmux.OptionKey","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaOptions":"io.github.libtmux.Options"},"modifiers":[],"doc":{"summary":"The Java options this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Options.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-asjava"},{"id":"io.github.libtmux.kotlin.Options.get","name":"get","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"public suspend fun get(name: String): String?","params":[{"name":"name","type":"String"}],"returns":"String?","returnsDoc":"empty only when tmux does not know the option"},{"raw":"public suspend fun get(key: OptionKey): T?","params":[{"name":"key","type":"OptionKey"}],"returns":"T?","typeParams":["T"],"typeParameters":[{"name":"T","bound":"Any"}]}],"imports":{"OptionKey":"io.github.libtmux.OptionKey","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaOptions":"io.github.libtmux.Options"},"modifiers":["async","overload"],"doc":{"summary":"The value in effect at this scope, inherited from a parent scope when this one does not set it."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Options.kt","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-get"},{"id":"io.github.libtmux.kotlin.Options.set","name":"set","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"public suspend fun set(name: String, value: String)","params":[{"name":"name","type":"String"},{"name":"value","type":"String"}]},{"raw":"public suspend fun set(key: OptionKey, value: T)","params":[{"name":"key","type":"OptionKey"},{"name":"value","type":"T"}],"typeParams":["T"],"typeParameters":[{"name":"T","bound":"Any"}]}],"imports":{"OptionKey":"io.github.libtmux.OptionKey","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaOptions":"io.github.libtmux.Options"},"modifiers":["async","overload"],"doc":{"summary":"Sets one option at this scope."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Options.kt","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-set"},{"id":"io.github.libtmux.kotlin.Options.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"OptionKey":"io.github.libtmux.OptionKey","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaOptions":"io.github.libtmux.Options"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Options.kt","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-equals"},{"id":"io.github.libtmux.kotlin.Options.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"OptionKey":"io.github.libtmux.OptionKey","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaOptions":"io.github.libtmux.Options"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Options.kt","line":45,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-hashcode"},{"id":"io.github.libtmux.kotlin.Options.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"OptionKey":"io.github.libtmux.OptionKey","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaOptions":"io.github.libtmux.Options"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Options.kt","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-tostring"},{"id":"io.github.libtmux.kotlin.Pane","name":"Pane","kind":"class","signatures":[{"raw":"public class Pane","params":[]}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"A tmux pane, with operations for input, output, and layout.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `PaneOperations.kt`. [Companion] hosts the generated query field namespace\n(`Pane.command`, `Pane.active`, ...)."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane"},{"id":"io.github.libtmux.kotlin.Pane.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Pane","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-server"},{"id":"io.github.libtmux.kotlin.Pane.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val asJava: JavaPane","params":[],"returns":"JavaPane"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"The Java pane this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-asjava"},{"id":"io.github.libtmux.kotlin.Pane.id","name":"id","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val id: PaneId","params":[],"returns":"PaneId"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"The pane's stable id."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-id"},{"id":"io.github.libtmux.kotlin.Pane.index","name":"index","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val index: Int","params":[],"returns":"Int"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"The pane's position, which shifts as neighbours come and go."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-index"},{"id":"io.github.libtmux.kotlin.Pane.active","name":"active","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val active: Boolean","params":[],"returns":"Boolean"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"Whether this was its window's active pane when captured."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-active"},{"id":"io.github.libtmux.kotlin.Pane.currentCommand","name":"currentCommand","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val currentCommand: String","params":[],"returns":"String"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"The command tmux reported running here."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-currentcommand"},{"id":"io.github.libtmux.kotlin.Pane.floating","name":"floating","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val floating: Boolean?","params":[],"returns":"Boolean?"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"Whether this pane floats, or null when the running tmux cannot say."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":44,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-floating"},{"id":"io.github.libtmux.kotlin.Pane.size","name":"size","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val size: Dimensions","params":[],"returns":"Dimensions"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"How large the pane was when captured, in terminal cells."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-size"},{"id":"io.github.libtmux.kotlin.Pane.position","name":"position","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val position: PanePosition","params":[],"returns":"PanePosition"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"Where the pane's top-left corner sat in its window when captured, in terminal cells."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-position"},{"id":"io.github.libtmux.kotlin.Pane.title","name":"title","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val title: String","params":[],"returns":"String"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"The pane title, which a program running inside it can change."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-title"},{"id":"io.github.libtmux.kotlin.Pane.currentPath","name":"currentPath","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val currentPath: Path","params":[],"returns":"Path"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"The working directory tmux reported for the pane."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-currentpath"},{"id":"io.github.libtmux.kotlin.Pane.pid","name":"pid","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val pid: Long?","params":[],"returns":"Long?"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"The process id of the program running in the pane, captured at the time of the read."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-pid"},{"id":"io.github.libtmux.kotlin.Pane.edges","name":"edges","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val edges: PaneEdges","params":[],"returns":"PaneEdges"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"Which sides of its window the pane touches."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-edges"},{"id":"io.github.libtmux.kotlin.Pane.window","name":"window","kind":"property","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public val window: Window","params":[],"returns":"Window"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"The window link this pane was reached through. A pure read of the capture."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":65,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-window"},{"id":"io.github.libtmux.kotlin.Pane.batch","name":"batch","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public fun batch(): Batch","params":[],"returns":"Batch"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"Collects commands fenced to the server incarnation that produced this pane."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":68,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-batch"},{"id":"io.github.libtmux.kotlin.Pane.hooks","name":"hooks","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public fun hooks(): Hooks","params":[],"returns":"Hooks"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"This pane's own hooks."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":71,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-hooks"},{"id":"io.github.libtmux.kotlin.Pane.options","name":"options","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public fun options(): Options","params":[],"returns":"Options"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"doc":{"summary":"This pane's own options."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":74,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-options"},{"id":"io.github.libtmux.kotlin.Pane.awaitText","name":"awaitText","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun awaitText(\n text: String,\n timeout: Duration,\n every: Duration = 50.milliseconds,\n dispatcher: CoroutineDispatcher = Dispatchers.IO,\n ): TextOutcome","params":[{"name":"text","type":"String"},{"name":"timeout","type":"Duration","doc":"how long to keep looking, finite and not negative"},{"name":"every","type":"Duration","default":"50.milliseconds","doc":"how long to leave between looks, at least 10 ms"},{"name":"dispatcher","type":"CoroutineDispatcher","default":"Dispatchers.IO","doc":"where the blocking wait runs"}],"returns":"TextOutcome","returnsDoc":"why the wait ended"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":["async"],"doc":{"summary":"Waits until [text] shows in this pane.","body":"Cancelling the coroutine interrupts the wait. That is not a timeout, and it does not stop a\nprogram already running in the pane.","examples":[{"lang":"console","intro":"Send input and wait for output before capturing the pane. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/Capture.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/Capture.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.SessionSpec\nimport io.github.libtmux.TextOutcome\nimport io.github.libtmux.kotlin.*\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\nimport kotlin.time.Duration.Companion.seconds\n\n/** Send input and wait for output before capturing the pane. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n val session = server.newSession(\n SessionSpec.builder().named(\"api-capture\").running(\"/bin/sh\").build()\n )\n val pane = session.windows.first().panes.first()\n pane.sendKeys(listOf(\"printf 'api-%s\\\\n' keys\", \"Enter\"))\n check(pane.awaitText(\"api-keys\", timeout = 5.seconds) != TextOutcome.TIMED_OUT) {\n \"timed out waiting for keys output\"\n }\n pane.sendLine(\"printf 'api-%s\\\\n' line\")\n check(pane.awaitText(\"api-line\", timeout = 5.seconds) != TextOutcome.TIMED_OUT) {\n \"timed out waiting for line output\"\n }\n val lines = pane.capture()\n for (expected in listOf(\"api-keys\", \"api-line\")) {\n check(lines.any { it.trim() == expected }) { \"capture is missing $expected\" }\n println(expected)\n }\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.CaptureKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"api-keys\napi-line\n"}]},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":87,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-awaittext"},{"id":"io.github.libtmux.kotlin.Pane.await","name":"await","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun await(\n timeout: Duration,\n every: Duration = 50.milliseconds,\n dispatcher: CoroutineDispatcher = Dispatchers.IO,\n settled: (Pane) -> Boolean,\n ): WakeReason","params":[{"name":"timeout","type":"Duration","doc":"how long to keep looking, finite and not negative"},{"name":"every","type":"Duration","default":"50.milliseconds","doc":"how long to leave between looks, at least 10 ms"},{"name":"dispatcher","type":"CoroutineDispatcher","default":"Dispatchers.IO","doc":"where the blocking wait runs"},{"name":"settled","type":"(Pane) -> Boolean"}],"returns":"WakeReason","returnsDoc":"why the wait ended"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":["async"],"doc":{"summary":"Waits until [settled] accepts this pane, read fresh from tmux before each test.","body":"Cancelling the coroutine interrupts the wait. That is not a timeout. A read already sent to\ntmux is not taken back."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":106,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-await"},{"id":"io.github.libtmux.kotlin.Pane.run","name":"run","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun run(\n command: String,\n timeout: Duration,\n dispatcher: CoroutineDispatcher = Dispatchers.IO,\n ): PaneRun","params":[{"name":"command","type":"String","doc":"a line of shell, run as `eval` would run it"},{"name":"timeout","type":"Duration","doc":"how long to wait for it to end"},{"name":"dispatcher","type":"CoroutineDispatcher","default":"Dispatchers.IO","doc":"where the blocking wait runs"}],"returns":"PaneRun","returnsDoc":"the command's exit status and what it printed"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":["async"],"doc":{"summary":"Runs a shell command in this pane to its end, and answers with its exit status and output.","body":"Cancelling the coroutine interrupts the wait. The command keeps running in the pane; only the\nwait for its end is what cancellation reaches."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":127,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-run"},{"id":"io.github.libtmux.kotlin.Pane.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":133,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-equals"},{"id":"io.github.libtmux.kotlin.Pane.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":135,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-hashcode"},{"id":"io.github.libtmux.kotlin.Pane.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":137,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-tostring"},{"id":"io.github.libtmux.kotlin.Pane.Companion","name":"Companion","kind":"module","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public companion object","params":[]}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","PaneEdges":"io.github.libtmux.PaneEdges","PaneId":"io.github.libtmux.PaneId","PaneRun":"io.github.libtmux.PaneRun","PanePosition":"io.github.libtmux.PanePosition","TextOutcome":"io.github.libtmux.TextOutcome","WakeReason":"io.github.libtmux.WakeReason","Path":"java.nio.file.Path","Duration":"kotlin.time.Duration","milliseconds":"kotlin.time.Duration.Companion.milliseconds","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Pane.kt","line":139,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion"},{"id":"io.github.libtmux.kotlin.Prompt","name":"Prompt","kind":"class","signatures":[{"raw":"public class Prompt","params":[]}],"imports":{"JavaPrompt":"io.github.libtmux.Prompt"},"modifiers":[],"doc":{"summary":"The server's command-prompt history.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `PromptOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Prompt.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-prompt"},{"id":"io.github.libtmux.kotlin.Prompt.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Prompt","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Prompt.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-prompt-server"},{"id":"io.github.libtmux.kotlin.Prompt.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Prompt","signatures":[{"raw":"public val asJava: JavaPrompt","params":[],"returns":"JavaPrompt"}],"imports":{"JavaPrompt":"io.github.libtmux.Prompt"},"modifiers":[],"doc":{"summary":"The Java prompt this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Prompt.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-prompt-asjava"},{"id":"io.github.libtmux.kotlin.Prompt.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Prompt","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaPrompt":"io.github.libtmux.Prompt"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Prompt.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-prompt-equals"},{"id":"io.github.libtmux.kotlin.Prompt.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Prompt","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaPrompt":"io.github.libtmux.Prompt"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Prompt.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-prompt-hashcode"},{"id":"io.github.libtmux.kotlin.Prompt.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Prompt","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaPrompt":"io.github.libtmux.Prompt"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Prompt.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-prompt-tostring"},{"id":"io.github.libtmux.kotlin.retryIfSafe","name":"retryIfSafe","kind":"function","signatures":[{"raw":"public suspend fun retryIfSafe(times: Int = 1, block: suspend () -> T): T","params":[{"name":"times","type":"Int","default":"1"},{"name":"block","type":"suspend"}],"returns":"T","typeParams":["T"],"typeParameters":[{"name":"T"}]}],"imports":{"DispatchException":"io.github.libtmux.exception.DispatchException"},"modifiers":["async"],"doc":{"summary":"Retries [block] up to [times] more times after a [DispatchException] whose [DispatchException.safeToRetry] says the exact same request can be sent again.","body":"No retry executor lives in this library: [DispatchException.safeToRetry] is computed by the\noperation that threw it from its own catalogued idempotence, so this needs no per-call lookup and\ncomposes with any retry library a caller already uses instead of replacing it."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Retry.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-retryifsafe"},{"id":"io.github.libtmux.kotlin.withServer","name":"withServer","kind":"function","signatures":[{"raw":"public suspend fun withServer(\n config: ServerConfig,\n policy: ExecutionPolicy = ExecutionPolicy.default(config),\n block: suspend (Server) -> R,\n): R","params":[{"name":"config","type":"ServerConfig"},{"name":"policy","type":"ExecutionPolicy","default":"ExecutionPolicy.default(config)"},{"name":"block","type":"suspend"}],"returns":"R","typeParams":["R"],"typeParameters":[{"name":"R"}]}],"imports":{"ServerConfig":"io.github.libtmux.ServerConfig","Duration":"kotlin.time.Duration","toKotlinDuration":"kotlin.time.toKotlinDuration","NonCancellable":"kotlinx.coroutines.NonCancellable","withContext":"kotlinx.coroutines.withContext"},"modifiers":["async"],"doc":{"summary":"Opens a [Server], runs [block], and closes it — even if [block] throws or is cancelled.","body":"The rule this follows, stated once: the scope that acquired a Java `AutoCloseable` is the only\nthing that closes it. [close][Server.close] runs with [NonCancellable] so a cancelled [block]\nstill releases the transport's threads.","examples":[{"lang":"console","intro":"Connect to a private tmux server. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/Connect.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/Connect.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.kotlin.*\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** Connect to a private tmux server. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n println(\"connected=${server.isAlive()}\")\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.ConnectKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"connected=true\n"}]},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Scopes.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-withserver"},{"id":"io.github.libtmux.kotlin.withControl","name":"withControl","kind":"function","signatures":[{"raw":"public suspend fun withControl(\n server: Server,\n session: Session,\n timeout: Duration = server.config.defaultTimeout().toKotlinDuration(),\n block: suspend (ControlClient) -> R,\n): R","params":[{"name":"server","type":"Server"},{"name":"session","type":"Session"},{"name":"timeout","type":"Duration","default":"server.config.defaultTimeout().toKotlinDuration()"},{"name":"block","type":"suspend"}],"returns":"R","typeParams":["R"],"typeParameters":[{"name":"R"}]}],"imports":{"ServerConfig":"io.github.libtmux.ServerConfig","Duration":"kotlin.time.Duration","toKotlinDuration":"kotlin.time.toKotlinDuration","NonCancellable":"kotlinx.coroutines.NonCancellable","withContext":"kotlinx.coroutines.withContext"},"modifiers":["async"],"doc":{"summary":"As [withServer], for a [ControlClient] attached through [server]."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Scopes.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-withcontrol"},{"id":"io.github.libtmux.kotlin.Server","name":"Server","kind":"class","signatures":[{"raw":"public class Server : AutoCloseable","params":[],"returns":"AutoCloseable"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Manages sessions, windows, and panes on a tmux server.","body":"Use [open] with a [ServerConfig] to select a server by socket name or path. From this object,\ncreate sessions or query the server's existing sessions, windows, and panes. Each [Session]\ncontains windows, and each [Window] contains panes.\n\nOperations that contact tmux are `suspend` functions dispatched through [policy]. Call [close]\nafter the last operation to release resources owned by this object. The tmux server and its\nsessions keep running.\n\n[asJava] exposes the underlying [JavaServer] for interoperability. Both objects share the same\nresources, so closing either closes both.","examples":[{"lang":"console","intro":"Connect to a private tmux server. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/Connect.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/Connect.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.kotlin.*\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** Connect to a private tmux server. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n println(\"connected=${server.isAlive()}\")\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.ConnectKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"connected=true\n"}]},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server"},{"id":"io.github.libtmux.kotlin.Server.policy","name":"policy","kind":"property","parent":"io.github.libtmux.kotlin.Server","modifiers":[],"signatures":[{"raw":"public val policy: ExecutionPolicy","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-policy"},{"id":"io.github.libtmux.kotlin.Server.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public val asJava: JavaServer","params":[],"returns":"JavaServer"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The Java server this wraps, for an operation this class does not mirror or a Java API that takes one. The same object, not a copy: closing either closes both."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-asjava"},{"id":"io.github.libtmux.kotlin.Server.config","name":"config","kind":"property","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public val config: ServerConfig","params":[],"returns":"ServerConfig"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"How this server was configured."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":44,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-config"},{"id":"io.github.libtmux.kotlin.Server.identity","name":"identity","kind":"property","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public val identity: ServerIdentity","params":[],"returns":"ServerIdentity"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Which server this is. Every handle taken from it is scoped by this."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-identity"},{"id":"io.github.libtmux.kotlin.Server.admissionBound","name":"admissionBound","kind":"property","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public val admissionBound: Int","params":[],"returns":"Int"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"How many tmux commands this server's transport runs at once, from [ExecutionPolicy.default]."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-admissionbound"},{"id":"io.github.libtmux.kotlin.Server.batch","name":"batch","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun batch(): Batch","params":[],"returns":"Batch"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Collects several commands to run in one tmux invocation."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-batch"},{"id":"io.github.libtmux.kotlin.Server.chain","name":"chain","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun chain(): CommandChain","params":[],"returns":"CommandChain"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Starts a chain of commands where each one acts on what the last one made."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-chain"},{"id":"io.github.libtmux.kotlin.Server.shell","name":"shell","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun shell(): Shell","params":[],"returns":"Shell"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Shell commands run by tmux, and tmux commands chosen by a shell exit status."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-shell"},{"id":"io.github.libtmux.kotlin.Server.commands","name":"commands","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun commands(): Commands","params":[],"returns":"Commands"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The commands this tmux knows."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-commands"},{"id":"io.github.libtmux.kotlin.Server.messageLog","name":"messageLog","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun messageLog(): MessageLog","params":[],"returns":"MessageLog"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The server's message log."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":65,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-messagelog"},{"id":"io.github.libtmux.kotlin.Server.prompt","name":"prompt","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun prompt(): Prompt","params":[],"returns":"Prompt"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The command prompt's history."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":68,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-prompt"},{"id":"io.github.libtmux.kotlin.Server.channel","name":"channel","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun channel(name: String): Channel","params":[{"name":"name","type":"String"}],"returns":"Channel"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"One of this server's wait-for channels, which is where a signal is sent and waited for."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":71,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-channel"},{"id":"io.github.libtmux.kotlin.Server.keys","name":"keys","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun keys(): Keys","params":[],"returns":"Keys"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The server's key bindings: `prefix` when binding, every table when listing."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":74,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-keys"},{"id":"io.github.libtmux.kotlin.Server.buffers","name":"buffers","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun buffers(): Buffers","params":[],"returns":"Buffers"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The server's paste buffers, which every session shares."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":77,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-buffers"},{"id":"io.github.libtmux.kotlin.Server.options","name":"options","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun options(): Options","params":[],"returns":"Options"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The server-wide options, the ones tmux keeps once per server."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":80,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-options"},{"id":"io.github.libtmux.kotlin.Server.globalOptions","name":"globalOptions","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun globalOptions(): Options","params":[],"returns":"Options"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The global session options every session inherits unless it sets its own."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":83,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-globaloptions"},{"id":"io.github.libtmux.kotlin.Server.environment","name":"environment","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun environment(): Environment","params":[],"returns":"Environment"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The server's environment, which every session inherits and every new process is given."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":86,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-environment"},{"id":"io.github.libtmux.kotlin.Server.hooks","name":"hooks","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public fun hooks(): Hooks","params":[],"returns":"Hooks"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The global hooks every session inherits."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":89,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-hooks"},{"id":"io.github.libtmux.kotlin.Server.session","name":"session","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun session(expression: FilterExpr): Session","params":[{"name":"expression","type":"FilterExpr"}],"returns":"Session","raises":[{"type":"CardinalityException.NoMatch","doc":"if nothing matched"},{"type":"CardinalityException.MultipleMatches","doc":"if more than one session matched"}]},{"raw":"public suspend fun Server.session(name: String): Session?","params":[{"name":"name","type":"String"}],"returns":"Session?","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.session(id: SessionId): Session?","params":[{"name":"id","type":"SessionId"}],"returns":"Session?","receiver":{"name":"this","type":"Server"}}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":["async","overload"],"doc":{"summary":"The one session this expression matches, captured now."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":97,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-session"},{"id":"io.github.libtmux.kotlin.Server.sessionOrNull","name":"sessionOrNull","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun sessionOrNull(expression: FilterExpr): Session?","params":[{"name":"expression","type":"FilterExpr"}],"returns":"Session?"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":["async"],"doc":{"summary":"The one session this expression matches, or null when none does."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":102,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-sessionornull"},{"id":"io.github.libtmux.kotlin.Server.window","name":"window","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun window(expression: FilterExpr): Window","params":[{"name":"expression","type":"FilterExpr"}],"returns":"Window","raises":[{"type":"CardinalityException.NoMatch","doc":"if nothing matched"},{"type":"CardinalityException.MultipleMatches","doc":"if more than one link matched"}]},{"raw":"public suspend fun Server.window(context: WindowContext): Window?","params":[{"name":"context","type":"WindowContext"}],"returns":"Window?","receiver":{"name":"this","type":"Server"}}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":["async","overload"],"doc":{"summary":"The one window link this expression matches, captured now."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":113,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-window"},{"id":"io.github.libtmux.kotlin.Server.windowOrNull","name":"windowOrNull","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun windowOrNull(expression: FilterExpr): Window?","params":[{"name":"expression","type":"FilterExpr"}],"returns":"Window?"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":["async"],"doc":{"summary":"The one window link this expression matches, or null when none does."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":118,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-windowornull"},{"id":"io.github.libtmux.kotlin.Server.pane","name":"pane","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun pane(expression: FilterExpr): Pane","params":[{"name":"expression","type":"FilterExpr"}],"returns":"Pane","raises":[{"type":"CardinalityException.NoMatch","doc":"if nothing matched"},{"type":"CardinalityException.MultipleMatches","doc":"if more than one pane matched"}]},{"raw":"public suspend fun Server.pane(id: PaneId): Pane?","params":[{"name":"id","type":"PaneId"}],"returns":"Pane?","receiver":{"name":"this","type":"Server"}}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":["async","overload"],"doc":{"summary":"The one pane this expression matches, captured now."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":129,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-pane"},{"id":"io.github.libtmux.kotlin.Server.paneOrNull","name":"paneOrNull","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun paneOrNull(expression: FilterExpr): Pane?","params":[{"name":"expression","type":"FilterExpr"}],"returns":"Pane?"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":["async"],"doc":{"summary":"The one pane this expression matches, or null when none does."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":133,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-paneornull"},{"id":"io.github.libtmux.kotlin.Server.control","name":"control","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun control(\n session: Session,\n timeout: Duration = config.defaultTimeout().toKotlinDuration(),\n ): ControlClient","params":[{"name":"session","type":"Session"},{"name":"timeout","type":"Duration","default":"config.defaultTimeout().toKotlinDuration()","doc":"how long to wait for the client to become ready"}],"returns":"ControlClient"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":["async"],"doc":{"summary":"Attaches a control client to this session's server, and only to the process this capture named."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":144,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-control"},{"id":"io.github.libtmux.kotlin.Server.close","name":"close","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"override fun close()","params":[]}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Releases an owned transport. Idempotent, and never kills tmux."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":163,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-close"},{"id":"io.github.libtmux.kotlin.Server.Companion","name":"Companion","kind":"module","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public companion object","params":[]}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":167,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-companion"},{"id":"io.github.libtmux.kotlin.Server.Companion.open","name":"open","kind":"method","parent":"io.github.libtmux.kotlin.Server.Companion","signatures":[{"raw":"public suspend fun open(\n config: ServerConfig,\n policy: ExecutionPolicy = ExecutionPolicy.default(config),\n ): Server","params":[{"name":"config","type":"ServerConfig"},{"name":"policy","type":"ExecutionPolicy","default":"ExecutionPolicy.default(config)"}],"returns":"Server"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":["async"],"doc":{"summary":"A server over a transport it owns and closes.","examples":[{"lang":"console","intro":"Connect to a private tmux server. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/Connect.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/Connect.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.kotlin.*\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** Connect to a private tmux server. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n println(\"connected=${server.isAlive()}\")\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.ConnectKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"connected=true\n"}]},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":170,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-companion-open"},{"id":"io.github.libtmux.kotlin.Server.Companion.fromJava","name":"fromJava","kind":"method","parent":"io.github.libtmux.kotlin.Server.Companion","signatures":[{"raw":"public fun fromJava(\n server: JavaServer,\n policy: ExecutionPolicy = ExecutionPolicy.default(server.config()),\n ): Server","params":[{"name":"server","type":"JavaServer"},{"name":"policy","type":"ExecutionPolicy","default":"ExecutionPolicy.default(server.config())"}],"returns":"Server"}],"imports":{"Channel":"io.github.libtmux.Channel","ServerConfig":"io.github.libtmux.ServerConfig","ServerIdentity":"io.github.libtmux.ServerIdentity","CardinalityException":"io.github.libtmux.exception.CardinalityException","DispatchException":"io.github.libtmux.exception.DispatchException","FilterExpr":"io.github.libtmux.query.FilterExpr","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","runInterruptible":"kotlinx.coroutines.runInterruptible","JavaPane":"io.github.libtmux.Pane","JavaServer":"io.github.libtmux.Server","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"A wrapper over a server opened in Java, such as a test fixture's. It takes the server as it is: closing the wrapper closes it."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Server.kt","line":179,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-companion-fromjava"},{"id":"io.github.libtmux.kotlin.Session","name":"Session","kind":"class","signatures":[{"raw":"public class Session","params":[]}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"A tmux session and its captured windows and properties.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `SessionOperations.kt`. [Companion] hosts the generated query field namespace\n(`Session.name`, `Session.attached`, ...)."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session"},{"id":"io.github.libtmux.kotlin.Session.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Session","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-server"},{"id":"io.github.libtmux.kotlin.Session.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public val asJava: JavaSession","params":[],"returns":"JavaSession"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"The Java session this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-asjava"},{"id":"io.github.libtmux.kotlin.Session.id","name":"id","kind":"property","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public val id: SessionId","params":[],"returns":"SessionId"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"The session's stable id."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-id"},{"id":"io.github.libtmux.kotlin.Session.name","name":"name","kind":"property","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public val name: String","params":[],"returns":"String"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"The session name, which a user may change at any time."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-name"},{"id":"io.github.libtmux.kotlin.Session.attached","name":"attached","kind":"property","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public val attached: Boolean","params":[],"returns":"Boolean"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"Whether a client was attached when this was captured."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-attached"},{"id":"io.github.libtmux.kotlin.Session.activeWindow","name":"activeWindow","kind":"property","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public val activeWindow: Window?","params":[],"returns":"Window?"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"The window tmux had active in this session. A pure read of the capture."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-activewindow"},{"id":"io.github.libtmux.kotlin.Session.activePane","name":"activePane","kind":"property","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public val activePane: Pane?","params":[],"returns":"Pane?"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"The active pane of the active window. A pure read of the capture."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-activepane"},{"id":"io.github.libtmux.kotlin.Session.windows","name":"windows","kind":"property","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public val windows: List","params":[],"returns":"List"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"This session's windows, in tmux's order. A pure read of the capture.","examples":[{"lang":"console","intro":"List all windows, then the windows captured for one session. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/ListWindows.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/ListWindows.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.kotlin.*\nimport io.github.libtmux.kotlin.query.name\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** List all windows, then the windows captured for one session. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n println(\"windows=\" + server.windows().map { it.name }.sorted().joinToString(\",\"))\n val session = server.session(Session.name eq \"work-one\")\n println(\"session-windows=\" + session.windows.map { it.name }.sorted().joinToString(\",\"))\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.ListWindowsKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"windows=editor,editor,logs\nsession-windows=editor,logs\n"}]},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-windows"},{"id":"io.github.libtmux.kotlin.Session.options","name":"options","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public fun options(): Options","params":[],"returns":"Options"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"This session's own options."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-options"},{"id":"io.github.libtmux.kotlin.Session.environment","name":"environment","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public fun environment(): Environment","params":[],"returns":"Environment"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"This session's own environment, which a process started in it is given on top of the server's."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-environment"},{"id":"io.github.libtmux.kotlin.Session.hooks","name":"hooks","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public fun hooks(): Hooks","params":[],"returns":"Hooks"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"doc":{"summary":"This session's own hooks."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-hooks"},{"id":"io.github.libtmux.kotlin.Session.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":45,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-equals"},{"id":"io.github.libtmux.kotlin.Session.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-hashcode"},{"id":"io.github.libtmux.kotlin.Session.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-tostring"},{"id":"io.github.libtmux.kotlin.Session.Companion","name":"Companion","kind":"module","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public companion object","params":[]}],"imports":{"SessionId":"io.github.libtmux.SessionId","JavaSession":"io.github.libtmux.Session"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Session.kt","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-companion"},{"id":"io.github.libtmux.kotlin.Shell","name":"Shell","kind":"class","signatures":[{"raw":"public class Shell","params":[]}],"imports":{"JavaShell":"io.github.libtmux.Shell"},"modifiers":[],"doc":{"summary":"A shell command run by tmux, and a tmux command chosen by a shell command's exit status.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `ShellOperations.kt`."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Shell.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-shell"},{"id":"io.github.libtmux.kotlin.Shell.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Shell","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Shell.kt","line":11,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-shell-server"},{"id":"io.github.libtmux.kotlin.Shell.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Shell","signatures":[{"raw":"public val asJava: JavaShell","params":[],"returns":"JavaShell"}],"imports":{"JavaShell":"io.github.libtmux.Shell"},"modifiers":[],"doc":{"summary":"The Java shell this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Shell.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-shell-asjava"},{"id":"io.github.libtmux.kotlin.Shell.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Shell","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"JavaShell":"io.github.libtmux.Shell"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Shell.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-shell-equals"},{"id":"io.github.libtmux.kotlin.Shell.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Shell","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"JavaShell":"io.github.libtmux.Shell"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Shell.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-shell-hashcode"},{"id":"io.github.libtmux.kotlin.Shell.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Shell","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"JavaShell":"io.github.libtmux.Shell"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Shell.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-shell-tostring"},{"id":"io.github.libtmux.kotlin.Window","name":"Window","kind":"class","signatures":[{"raw":"public class Window","params":[]}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"A tmux window at a specific position in a session.","body":"Holds the Java handle privately, so a member here always wins over a same-named catalog-generated\nextension in `WindowOperations.kt`. [Companion] hosts the generated query field namespace."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window"},{"id":"io.github.libtmux.kotlin.Window.server","name":"server","kind":"property","parent":"io.github.libtmux.kotlin.Window","modifiers":[],"signatures":[{"raw":"public val server: Server","params":[]}],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-server"},{"id":"io.github.libtmux.kotlin.Window.asJava","name":"asJava","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val asJava: JavaWindow","params":[],"returns":"JavaWindow"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The Java window this wraps: the same object, for a Java API that takes one."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-asjava"},{"id":"io.github.libtmux.kotlin.Window.id","name":"id","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val id: WindowId","params":[],"returns":"WindowId"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The underlying window, shared by every link to it."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":22,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-id"},{"id":"io.github.libtmux.kotlin.Window.index","name":"index","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val index: WindowIndex","params":[],"returns":"WindowIndex"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Where this link sits in its session."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-index"},{"id":"io.github.libtmux.kotlin.Window.context","name":"context","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val context: WindowContext","params":[],"returns":"WindowContext"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The winlink this handle addresses."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-context"},{"id":"io.github.libtmux.kotlin.Window.name","name":"name","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val name: String","params":[],"returns":"String"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The window name."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-name"},{"id":"io.github.libtmux.kotlin.Window.active","name":"active","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val active: Boolean","params":[],"returns":"Boolean"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Whether this was its session's active window when captured."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-active"},{"id":"io.github.libtmux.kotlin.Window.linked","name":"linked","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val linked: Boolean","params":[],"returns":"Boolean"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Whether the underlying window is linked into more than one session."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-linked"},{"id":"io.github.libtmux.kotlin.Window.size","name":"size","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val size: Dimensions","params":[],"returns":"Dimensions"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"How large the window was when captured, in terminal cells."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-size"},{"id":"io.github.libtmux.kotlin.Window.layout","name":"layout","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val layout: WindowLayout","params":[],"returns":"WindowLayout"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"tmux's own layout for this window, in whichever form this server writes it."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-layout"},{"id":"io.github.libtmux.kotlin.Window.activePane","name":"activePane","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val activePane: Pane?","params":[],"returns":"Pane?"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The pane tmux had active here. A pure read of the capture."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-activepane"},{"id":"io.github.libtmux.kotlin.Window.session","name":"session","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val session: Session","params":[],"returns":"Session"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"The session this link belongs to. A pure read of the capture."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-session"},{"id":"io.github.libtmux.kotlin.Window.panes","name":"panes","kind":"property","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public val panes: List","params":[],"returns":"List"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"This link's panes, in tmux's order. A pure read of the capture.","examples":[{"lang":"console","intro":"List all panes, then the panes captured for one window. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/ListPanes.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/ListPanes.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.kotlin.*\nimport io.github.libtmux.kotlin.query.name\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** List all panes, then the panes captured for one window. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n println(\"panes=${server.panes().size}\")\n val session = server.session(Session.name eq \"work-one\")\n val window = session.windows.single { it.name == \"editor\" }\n println(\"window-panes=${window.panes.size}\")\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.ListPanesKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"panes=4\nwindow-panes=2\n"}]},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":52,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-panes"},{"id":"io.github.libtmux.kotlin.Window.hooks","name":"hooks","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public fun hooks(): Hooks","params":[],"returns":"Hooks"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"This window's own hooks, which every link to it shares."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":55,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-hooks"},{"id":"io.github.libtmux.kotlin.Window.options","name":"options","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public fun options(): Options","params":[],"returns":"Options"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"This window's own options, which every link to it shares."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":58,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-options"},{"id":"io.github.libtmux.kotlin.Window.equals","name":"equals","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"override fun equals(other: Any?): Boolean","params":[{"name":"other","type":"Any?"}],"returns":"Boolean"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":60,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-equals"},{"id":"io.github.libtmux.kotlin.Window.hashCode","name":"hashCode","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"override fun hashCode(): Int","params":[],"returns":"Int"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-hashcode"},{"id":"io.github.libtmux.kotlin.Window.toString","name":"toString","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"override fun toString(): String","params":[],"returns":"String"}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-tostring"},{"id":"io.github.libtmux.kotlin.Window.Companion","name":"Companion","kind":"module","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public companion object","params":[]}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","WindowId":"io.github.libtmux.WindowId","WindowIndex":"io.github.libtmux.WindowIndex","WindowLayout":"io.github.libtmux.WindowLayout","WindowContext":"io.github.libtmux.snapshot.WindowContext","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Window.kt","line":66,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion"},{"id":"io.github.libtmux.kotlin.query.TextField","name":"TextField","kind":"class","signatures":[{"raw":"@JvmInline\npublic value class TextField","params":[],"typeParams":["T"],"typeParameters":[{"name":"T","bound":"Any"}]}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"doc":{"summary":"Kotlin-idiomatic wrappers over [Fields]' typed field handles, each holding the Java handle it wraps. A value class, so this costs nothing beyond the Java object it already holds — the same choice [io.github.libtmux.kotlin.Server]'s live handles reject, made here on purpose: a field handle carries exactly one property, which is what makes the boxing tradeoff free."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-textfield"},{"id":"io.github.libtmux.kotlin.query.TextField.eq","name":"eq","kind":"method","parent":"io.github.libtmux.kotlin.query.TextField","signatures":[{"raw":"public infix fun eq(value: String): FilterExpr","params":[{"name":"value","type":"String"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-textfield-eq"},{"id":"io.github.libtmux.kotlin.query.TextField.ne","name":"ne","kind":"method","parent":"io.github.libtmux.kotlin.query.TextField","signatures":[{"raw":"public infix fun ne(value: String): FilterExpr","params":[{"name":"value","type":"String"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-textfield-ne"},{"id":"io.github.libtmux.kotlin.query.TextField.startsWith","name":"startsWith","kind":"method","parent":"io.github.libtmux.kotlin.query.TextField","signatures":[{"raw":"public infix fun startsWith(value: String): FilterExpr","params":[{"name":"value","type":"String"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-textfield-startswith"},{"id":"io.github.libtmux.kotlin.query.TextField.endsWith","name":"endsWith","kind":"method","parent":"io.github.libtmux.kotlin.query.TextField","signatures":[{"raw":"public infix fun endsWith(value: String): FilterExpr","params":[{"name":"value","type":"String"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-textfield-endswith"},{"id":"io.github.libtmux.kotlin.query.TextField.contains","name":"contains","kind":"method","parent":"io.github.libtmux.kotlin.query.TextField","signatures":[{"raw":"public infix fun contains(value: String): FilterExpr","params":[{"name":"value","type":"String"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-textfield-contains"},{"id":"io.github.libtmux.kotlin.query.TextField.matches","name":"matches","kind":"method","parent":"io.github.libtmux.kotlin.query.TextField","signatures":[{"raw":"public infix fun matches(pattern: Pattern): FilterExpr","params":[{"name":"pattern","type":"Pattern"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-textfield-matches"},{"id":"io.github.libtmux.kotlin.query.TextField.oneOf","name":"oneOf","kind":"method","parent":"io.github.libtmux.kotlin.query.TextField","signatures":[{"raw":"public infix fun oneOf(values: Collection): FilterExpr","params":[{"name":"values","type":"Collection"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-textfield-oneof"},{"id":"io.github.libtmux.kotlin.query.NumberField","name":"NumberField","kind":"class","signatures":[{"raw":"@JvmInline\npublic value class NumberField","params":[],"typeParams":["T"],"typeParameters":[{"name":"T","bound":"Any"}]}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"doc":{"summary":"Build numeric comparisons for a captured tmux field."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-numberfield"},{"id":"io.github.libtmux.kotlin.query.NumberField.eq","name":"eq","kind":"method","parent":"io.github.libtmux.kotlin.query.NumberField","signatures":[{"raw":"public infix fun eq(value: Int): FilterExpr","params":[{"name":"value","type":"Int"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-numberfield-eq"},{"id":"io.github.libtmux.kotlin.query.NumberField.ne","name":"ne","kind":"method","parent":"io.github.libtmux.kotlin.query.NumberField","signatures":[{"raw":"public infix fun ne(value: Int): FilterExpr","params":[{"name":"value","type":"Int"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-numberfield-ne"},{"id":"io.github.libtmux.kotlin.query.NumberField.lessThan","name":"lessThan","kind":"method","parent":"io.github.libtmux.kotlin.query.NumberField","signatures":[{"raw":"public infix fun lessThan(value: Int): FilterExpr","params":[{"name":"value","type":"Int"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":29,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-numberfield-lessthan"},{"id":"io.github.libtmux.kotlin.query.NumberField.atMost","name":"atMost","kind":"method","parent":"io.github.libtmux.kotlin.query.NumberField","signatures":[{"raw":"public infix fun atMost(value: Int): FilterExpr","params":[{"name":"value","type":"Int"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-numberfield-atmost"},{"id":"io.github.libtmux.kotlin.query.NumberField.greaterThan","name":"greaterThan","kind":"method","parent":"io.github.libtmux.kotlin.query.NumberField","signatures":[{"raw":"public infix fun greaterThan(value: Int): FilterExpr","params":[{"name":"value","type":"Int"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-numberfield-greaterthan"},{"id":"io.github.libtmux.kotlin.query.NumberField.atLeast","name":"atLeast","kind":"method","parent":"io.github.libtmux.kotlin.query.NumberField","signatures":[{"raw":"public infix fun atLeast(value: Int): FilterExpr","params":[{"name":"value","type":"Int"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-numberfield-atleast"},{"id":"io.github.libtmux.kotlin.query.FlagField","name":"FlagField","kind":"class","signatures":[{"raw":"@JvmInline\npublic value class FlagField","params":[],"typeParams":["T"],"typeParameters":[{"name":"T","bound":"Any"}]}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"doc":{"summary":"Match a captured boolean field against true or false."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-flagfield"},{"id":"io.github.libtmux.kotlin.query.FlagField.isTrue","name":"isTrue","kind":"method","parent":"io.github.libtmux.kotlin.query.FlagField","signatures":[{"raw":"public fun isTrue(): FilterExpr","params":[],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-flagfield-istrue"},{"id":"io.github.libtmux.kotlin.query.FlagField.isFalse","name":"isFalse","kind":"method","parent":"io.github.libtmux.kotlin.query.FlagField","signatures":[{"raw":"public fun isFalse(): FilterExpr","params":[],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":39,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-flagfield-isfalse"},{"id":"io.github.libtmux.kotlin.query.ToManyField","name":"ToManyField","kind":"class","signatures":[{"raw":"@JvmInline\npublic value class ToManyField","params":[],"typeParams":["T","R"],"typeParameters":[{"name":"T","bound":"Any"},{"name":"R","bound":"Any"}]}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"doc":{"summary":"Match an object by the captured children related to it."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-tomanyfield"},{"id":"io.github.libtmux.kotlin.query.ToManyField.any","name":"any","kind":"method","parent":"io.github.libtmux.kotlin.query.ToManyField","signatures":[{"raw":"public infix fun any(predicate: FilterExpr): FilterExpr","params":[{"name":"predicate","type":"FilterExpr"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":45,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-tomanyfield-any"},{"id":"io.github.libtmux.kotlin.query.ToManyField.all","name":"all","kind":"method","parent":"io.github.libtmux.kotlin.query.ToManyField","signatures":[{"raw":"public infix fun all(predicate: FilterExpr): FilterExpr","params":[{"name":"predicate","type":"FilterExpr"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-tomanyfield-all"},{"id":"io.github.libtmux.kotlin.query.ToManyField.none","name":"none","kind":"method","parent":"io.github.libtmux.kotlin.query.ToManyField","signatures":[{"raw":"public infix fun none(predicate: FilterExpr): FilterExpr","params":[{"name":"predicate","type":"FilterExpr"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":47,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-tomanyfield-none"},{"id":"io.github.libtmux.kotlin.query.ToOneField","name":"ToOneField","kind":"class","signatures":[{"raw":"@JvmInline\npublic value class ToOneField","params":[],"typeParams":["T","R"],"typeParameters":[{"name":"T","bound":"Any"},{"name":"R","bound":"Any"}]}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"doc":{"summary":"Match an object by one captured related object."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-toonefield"},{"id":"io.github.libtmux.kotlin.query.ToOneField.matching","name":"matching","kind":"method","parent":"io.github.libtmux.kotlin.query.ToOneField","signatures":[{"raw":"public infix fun matching(predicate: FilterExpr): FilterExpr","params":[{"name":"predicate","type":"FilterExpr"}],"returns":"FilterExpr"}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","Fields":"io.github.libtmux.query.Fields","Pattern":"java.util.regex.Pattern"},"modifiers":[],"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/query/Fields.kt","line":53,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-query-toonefield-matching"},{"id":"io.github.libtmux.kotlin.Batch.run","name":"run","kind":"method","parent":"io.github.libtmux.kotlin.Batch","signatures":[{"raw":"public suspend fun Batch.run(): BatchResult","params":[],"returns":"BatchResult","receiver":{"name":"this","type":"Batch"}}],"imports":{"BatchResult":"io.github.libtmux.batch.BatchResult","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Runs every collected operation in one tmux invocation."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/BatchOperations.kt","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-batch-run"},{"id":"io.github.libtmux.kotlin.Buffers.delete","name":"delete","kind":"method","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"public suspend fun Buffers.delete(name: String): Unit","params":[{"name":"name","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Buffers"}}],"imports":{"BufferInfo":"io.github.libtmux.BufferInfo","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Removes a buffer by its exact name."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/BuffersOperations.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-delete"},{"id":"io.github.libtmux.kotlin.Buffers.list","name":"list","kind":"method","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"public suspend fun Buffers.list(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Buffers"}}],"imports":{"BufferInfo":"io.github.libtmux.BufferInfo","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Captures every buffer the server holds, in tmux's order."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/BuffersOperations.kt","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-list"},{"id":"io.github.libtmux.kotlin.Buffers.load","name":"load","kind":"method","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"public suspend fun Buffers.load(name: String, `file`: Path): Unit","params":[{"name":"name","type":"String"},{"name":"`file`","type":"Path"}],"returns":"Unit","receiver":{"name":"this","type":"Buffers"}}],"imports":{"BufferInfo":"io.github.libtmux.BufferInfo","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Reads a file into a named buffer."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/BuffersOperations.kt","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-load"},{"id":"io.github.libtmux.kotlin.Buffers.save","name":"save","kind":"method","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"public suspend fun Buffers.save(name: String, `file`: Path): Unit","params":[{"name":"name","type":"String"},{"name":"`file`","type":"Path"}],"returns":"Unit","receiver":{"name":"this","type":"Buffers"}}],"imports":{"BufferInfo":"io.github.libtmux.BufferInfo","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Writes a buffer's contents to a file."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/BuffersOperations.kt","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-save"},{"id":"io.github.libtmux.kotlin.Buffers.`set`","name":"`set`","kind":"method","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"public suspend fun Buffers.`set`(name: String, contents: String): Unit","params":[{"name":"name","type":"String"},{"name":"contents","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Buffers"}}],"imports":{"BufferInfo":"io.github.libtmux.BufferInfo","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Puts text in a named buffer, replacing whatever was there."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/BuffersOperations.kt","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-set"},{"id":"io.github.libtmux.kotlin.Buffers.show","name":"show","kind":"method","parent":"io.github.libtmux.kotlin.Buffers","signatures":[{"raw":"public suspend fun Buffers.show(name: String): String","params":[{"name":"name","type":"String"}],"returns":"String","receiver":{"name":"this","type":"Buffers"}}],"imports":{"BufferInfo":"io.github.libtmux.BufferInfo","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"What a buffer holds, without any line breaks it ends with."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/BuffersOperations.kt","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-buffers-show"},{"id":"io.github.libtmux.kotlin.Client.detach","name":"detach","kind":"method","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public suspend fun Client.detach(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Client"}}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Detaches this client, leaving whatever it was attached to running."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ClientOperations.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-detach"},{"id":"io.github.libtmux.kotlin.Client.detachOthers","name":"detachOthers","kind":"method","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public suspend fun Client.detachOthers(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Client"}}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Detaches every other client, leaving this one attached."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ClientOperations.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-detachothers"},{"id":"io.github.libtmux.kotlin.Client.fetchAttachment","name":"fetchAttachment","kind":"method","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public suspend fun Client.fetchAttachment(): ClientAttachment?","params":[],"returns":"ClientAttachment?","receiver":{"name":"this","type":"Client"}}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Takes a new capture and returns what this client is looking at now."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ClientOperations.kt","line":23,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-fetchattachment"},{"id":"io.github.libtmux.kotlin.Client.redraw","name":"redraw","kind":"method","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public suspend fun Client.redraw(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Client"}}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Asks tmux to redraw this client."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ClientOperations.kt","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-redraw"},{"id":"io.github.libtmux.kotlin.Client.refresh","name":"refresh","kind":"method","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public suspend fun Client.refresh(): Client","params":[],"returns":"Client","receiver":{"name":"this","type":"Client"}}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Takes a new capture and returns this client as it is now."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ClientOperations.kt","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-refresh"},{"id":"io.github.libtmux.kotlin.Client.switchTo","name":"switchTo","kind":"method","parent":"io.github.libtmux.kotlin.Client","signatures":[{"raw":"public suspend fun Client.switchTo(session: Session): Unit","params":[{"name":"session","type":"Session"}],"returns":"Unit","receiver":{"name":"this","type":"Client"}}],"imports":{"ClientAttachment":"io.github.libtmux.ClientAttachment","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Moves this client to another session."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ClientOperations.kt","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-switchto"},{"id":"io.github.libtmux.kotlin.CommandChain.arrange","name":"arrange","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"public suspend fun CommandChain.arrange(layout: String): CommandChain","params":[{"name":"layout","type":"String"}],"returns":"CommandChain","receiver":{"name":"this","type":"CommandChain"}}],"imports":{"BatchResult":"io.github.libtmux.batch.BatchResult","String":"kotlin.String","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Arranges the current window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/CommandChainOperations.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-arrange"},{"id":"io.github.libtmux.kotlin.CommandChain.run","name":"run","kind":"method","parent":"io.github.libtmux.kotlin.CommandChain","signatures":[{"raw":"public suspend fun CommandChain.run(): BatchResult","params":[],"returns":"BatchResult","receiver":{"name":"this","type":"CommandChain"}}],"imports":{"BatchResult":"io.github.libtmux.batch.BatchResult","String":"kotlin.String","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Runs the whole chain in one tmux invocation, attributing each step."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/CommandChainOperations.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commandchain-run"},{"id":"io.github.libtmux.kotlin.Commands.list","name":"list","kind":"method","parent":"io.github.libtmux.kotlin.Commands","signatures":[{"raw":"public suspend fun Commands.list(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Commands"}}],"imports":{"String":"kotlin.String","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Every command, as tmux prints it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/CommandsOperations.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-commands-list"},{"id":"io.github.libtmux.kotlin.ControlClient.send","name":"send","kind":"method","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"public suspend fun ControlClient.send(vararg argv: String): ControlReply","params":[{"name":"argv","type":"String"}],"returns":"ControlReply","receiver":{"name":"this","type":"ControlClient"}},{"raw":"public suspend fun ControlClient.send(argv: List): ControlReply","params":[{"name":"argv","type":"List"}],"returns":"ControlReply","receiver":{"name":"this","type":"ControlClient"}},{"raw":"public suspend fun ControlClient.send(argv: List, timeout: Duration): ControlReply","params":[{"name":"argv","type":"List"},{"name":"timeout","type":"Duration"}],"returns":"ControlReply","receiver":{"name":"this","type":"ControlClient"}}],"imports":{"ControlReply":"io.github.libtmux.control.ControlReply","String":"kotlin.String","List":"kotlin.collections.List","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Runs one command and waits for its reply."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ControlClientOperations.kt","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-send"},{"id":"io.github.libtmux.kotlin.ControlClient.unwatch","name":"unwatch","kind":"method","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"public suspend fun ControlClient.unwatch(name: String): ControlReply","params":[{"name":"name","type":"String"}],"returns":"ControlReply","receiver":{"name":"this","type":"ControlClient"}}],"imports":{"ControlReply":"io.github.libtmux.control.ControlReply","String":"kotlin.String","List":"kotlin.collections.List","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Stops a watch."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ControlClientOperations.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-unwatch"},{"id":"io.github.libtmux.kotlin.ControlClient.watch","name":"watch","kind":"method","parent":"io.github.libtmux.kotlin.ControlClient","signatures":[{"raw":"public suspend fun ControlClient.watch(\n name: String,\n target: String,\n format: String,\n): ControlReply","params":[{"name":"name","type":"String"},{"name":"target","type":"String"},{"name":"format","type":"String"}],"returns":"ControlReply","receiver":{"name":"this","type":"ControlClient"}}],"imports":{"ControlReply":"io.github.libtmux.control.ControlReply","String":"kotlin.String","List":"kotlin.collections.List","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Asks tmux to report a format whenever its value changes."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ControlClientOperations.kt","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-controlclient-watch"},{"id":"io.github.libtmux.kotlin.Environment.all","name":"all","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public suspend fun Environment.all(): Map","params":[],"returns":"Map","receiver":{"name":"this","type":"Environment"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","Set":"kotlin.collections.Set","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Every name set at this scope, in tmux's order."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt","line":16,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-all"},{"id":"io.github.libtmux.kotlin.Environment.effective","name":"effective","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public suspend fun Environment.effective(): Map","params":[],"returns":"Map","receiver":{"name":"this","type":"Environment"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","Set":"kotlin.collections.Set","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"What a process started from this scope is actually handed, both scopes taken together."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt","line":21,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-effective"},{"id":"io.github.libtmux.kotlin.Environment.`get`","name":"`get`","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public suspend fun Environment.`get`(name: String): String?","params":[{"name":"name","type":"String"}],"returns":"String?","receiver":{"name":"this","type":"Environment"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","Set":"kotlin.collections.Set","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"The value set for this name, or empty when it is removed or absent."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-get"},{"id":"io.github.libtmux.kotlin.Environment.isRemoved","name":"isRemoved","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public suspend fun Environment.isRemoved(name: String): Boolean","params":[{"name":"name","type":"String"}],"returns":"Boolean","receiver":{"name":"this","type":"Environment"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","Set":"kotlin.collections.Set","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Whether new processes are told not to inherit this name."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-isremoved"},{"id":"io.github.libtmux.kotlin.Environment.remove","name":"remove","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public suspend fun Environment.remove(name: String): Unit","params":[{"name":"name","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Environment"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","Set":"kotlin.collections.Set","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Tells processes started after this not to inherit the name."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-remove"},{"id":"io.github.libtmux.kotlin.Environment.removed","name":"removed","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public suspend fun Environment.removed(): Set","params":[],"returns":"Set","receiver":{"name":"this","type":"Environment"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","Set":"kotlin.collections.Set","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Every name this scope tells a new process not to inherit."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt","line":41,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-removed"},{"id":"io.github.libtmux.kotlin.Environment.`set`","name":"`set`","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public suspend fun Environment.`set`(name: String, `value`: String): Unit","params":[{"name":"name","type":"String"},{"name":"`value`","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Environment"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","Set":"kotlin.collections.Set","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Sets a name to a literal value."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt","line":46,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-set"},{"id":"io.github.libtmux.kotlin.Environment.setExpanded","name":"setExpanded","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public suspend fun Environment.setExpanded(name: String, format: String): Unit","params":[{"name":"name","type":"String"},{"name":"format","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Environment"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","Set":"kotlin.collections.Set","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Sets a name to what a tmux format expands to now."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt","line":51,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-setexpanded"},{"id":"io.github.libtmux.kotlin.Environment.unset","name":"unset","kind":"method","parent":"io.github.libtmux.kotlin.Environment","signatures":[{"raw":"public suspend fun Environment.unset(name: String): Unit","params":[{"name":"name","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Environment"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","Set":"kotlin.collections.Set","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Removes the name from this scope, so it is neither set nor marked."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-environment-unset"},{"id":"io.github.libtmux.kotlin.Hooks.all","name":"all","kind":"method","parent":"io.github.libtmux.kotlin.Hooks","signatures":[{"raw":"public suspend fun Hooks.all(): Map>","params":[],"returns":"Map>","receiver":{"name":"this","type":"Hooks"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Every hook at this scope, keyed by event, each with its commands in the order tmux runs them."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/HooksOperations.kt","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-all"},{"id":"io.github.libtmux.kotlin.Hooks.append","name":"append","kind":"method","parent":"io.github.libtmux.kotlin.Hooks","signatures":[{"raw":"public suspend fun Hooks.append(event: String, command: List): Unit","params":[{"name":"event","type":"String"},{"name":"command","type":"List"}],"returns":"Unit","receiver":{"name":"this","type":"Hooks"}},{"raw":"public suspend fun Hooks.append(event: String, command: String): Unit","params":[{"name":"event","type":"String"},{"name":"command","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Hooks"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"As [.append(String, String)], with the command as words."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/HooksOperations.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-append"},{"id":"io.github.libtmux.kotlin.Hooks.run","name":"run","kind":"method","parent":"io.github.libtmux.kotlin.Hooks","signatures":[{"raw":"public suspend fun Hooks.run(event: String): Unit","params":[{"name":"event","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Hooks"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Runs what is bound to an event now, without waiting for the event."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/HooksOperations.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-run"},{"id":"io.github.libtmux.kotlin.Hooks.`set`","name":"`set`","kind":"method","parent":"io.github.libtmux.kotlin.Hooks","signatures":[{"raw":"public suspend fun Hooks.`set`(event: String, command: String): Unit","params":[{"name":"event","type":"String"},{"name":"command","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Hooks"}},{"raw":"public suspend fun Hooks.`set`(event: String, command: List): Unit","params":[{"name":"event","type":"String"},{"name":"command","type":"List"}],"returns":"Unit","receiver":{"name":"this","type":"Hooks"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Binds a tmux command to an event at this scope, replacing anything already bound to it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/HooksOperations.kt","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-set"},{"id":"io.github.libtmux.kotlin.Hooks.unset","name":"unset","kind":"method","parent":"io.github.libtmux.kotlin.Hooks","signatures":[{"raw":"public suspend fun Hooks.unset(event: String): Unit","params":[{"name":"event","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Hooks"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Removes everything bound to an event at this scope."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/HooksOperations.kt","line":45,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-hooks-unset"},{"id":"io.github.libtmux.kotlin.Keys.bind","name":"bind","kind":"method","parent":"io.github.libtmux.kotlin.Keys","signatures":[{"raw":"public suspend fun Keys.bind(key: String, command: List): Unit","params":[{"name":"key","type":"String"},{"name":"command","type":"List"}],"returns":"Unit","receiver":{"name":"this","type":"Keys"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Binds a key to a tmux command, given as its words."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/KeysOperations.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys-bind"},{"id":"io.github.libtmux.kotlin.Keys.list","name":"list","kind":"method","parent":"io.github.libtmux.kotlin.Keys","signatures":[{"raw":"public suspend fun Keys.list(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Keys"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"The bindings as tmux lists them, one per line."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/KeysOperations.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys-list"},{"id":"io.github.libtmux.kotlin.Keys.unbind","name":"unbind","kind":"method","parent":"io.github.libtmux.kotlin.Keys","signatures":[{"raw":"public suspend fun Keys.unbind(key: String): Unit","params":[{"name":"key","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Keys"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Removes a key's binding."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/KeysOperations.kt","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-keys-unbind"},{"id":"io.github.libtmux.kotlin.MessageLog.lines","name":"lines","kind":"method","parent":"io.github.libtmux.kotlin.MessageLog","signatures":[{"raw":"public suspend fun MessageLog.lines(): List","params":[],"returns":"List","receiver":{"name":"this","type":"MessageLog"}}],"imports":{"String":"kotlin.String","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"The log lines."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/MessageLogOperations.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-messagelog-lines"},{"id":"io.github.libtmux.kotlin.Options.all","name":"all","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"public suspend fun Options.all(): Map","params":[],"returns":"Map","receiver":{"name":"this","type":"Options"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Every option set at this scope, in tmux's order."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/OptionsOperations.kt","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-all"},{"id":"io.github.libtmux.kotlin.Options.append","name":"append","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"public suspend fun Options.append(name: String, suffix: String): Unit","params":[{"name":"name","type":"String"},{"name":"suffix","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Options"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Adds to the end of a string option, rather than replacing it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/OptionsOperations.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-append"},{"id":"io.github.libtmux.kotlin.Options.effective","name":"effective","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"public suspend fun Options.effective(): Map","params":[],"returns":"Map","receiver":{"name":"this","type":"Options"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Every option tmux lists at this scope, including inherited built-in values."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/OptionsOperations.kt","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-effective"},{"id":"io.github.libtmux.kotlin.Options.setExpanded","name":"setExpanded","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"public suspend fun Options.setExpanded(name: String, format: String): Unit","params":[{"name":"name","type":"String"},{"name":"format","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Options"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Sets one option to what a tmux format comes to, rather than to the format itself."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/OptionsOperations.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-setexpanded"},{"id":"io.github.libtmux.kotlin.Options.setIfAbsent","name":"setIfAbsent","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"public suspend fun Options.setIfAbsent(name: String, `value`: String): Boolean","params":[{"name":"name","type":"String"},{"name":"`value`","type":"String"}],"returns":"Boolean","receiver":{"name":"this","type":"Options"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Sets one option only if this scope does not already set it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/OptionsOperations.kt","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-setifabsent"},{"id":"io.github.libtmux.kotlin.Options.unset","name":"unset","kind":"method","parent":"io.github.libtmux.kotlin.Options","signatures":[{"raw":"public suspend fun Options.unset(name: String): Unit","params":[{"name":"name","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Options"}}],"imports":{"Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Removes one option at this scope, so it falls back to whatever it inherits."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/OptionsOperations.kt","line":40,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-options-unset"},{"id":"io.github.libtmux.kotlin.Pane.breakOut","name":"breakOut","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.breakOut(): Window","params":[],"returns":"Window","receiver":{"name":"this","type":"Pane"}},{"raw":"public suspend fun Pane.breakOut(windowName: String): Window","params":[{"name":"windowName","type":"String"}],"returns":"Window","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Moves this pane into a window of its own, leaving tmux to name it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-breakout"},{"id":"io.github.libtmux.kotlin.Pane.capture","name":"capture","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.capture(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Pane"}},{"raw":"public suspend fun Pane.capture(spec: CaptureSpec): List","params":[{"name":"spec","type":"CaptureSpec"}],"returns":"List","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"This pane's visible content, one element per line.","examples":[{"lang":"console","intro":"Send input and wait for output before capturing the pane. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/Capture.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/Capture.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.SessionSpec\nimport io.github.libtmux.TextOutcome\nimport io.github.libtmux.kotlin.*\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\nimport kotlin.time.Duration.Companion.seconds\n\n/** Send input and wait for output before capturing the pane. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n val session = server.newSession(\n SessionSpec.builder().named(\"api-capture\").running(\"/bin/sh\").build()\n )\n val pane = session.windows.first().panes.first()\n pane.sendKeys(listOf(\"printf 'api-%s\\\\n' keys\", \"Enter\"))\n check(pane.awaitText(\"api-keys\", timeout = 5.seconds) != TextOutcome.TIMED_OUT) {\n \"timed out waiting for keys output\"\n }\n pane.sendLine(\"printf 'api-%s\\\\n' line\")\n check(pane.awaitText(\"api-line\", timeout = 5.seconds) != TextOutcome.TIMED_OUT) {\n \"timed out waiting for line output\"\n }\n val lines = pane.capture()\n for (expected in listOf(\"api-keys\", \"api-line\")) {\n check(lines.any { it.trim() == expected }) { \"capture is missing $expected\" }\n println(expected)\n }\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.CaptureKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"api-keys\napi-line\n"}]},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":34,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-capture"},{"id":"io.github.libtmux.kotlin.Pane.clearHistory","name":"clearHistory","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.clearHistory(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Discards this pane's scrollback."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":44,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-clearhistory"},{"id":"io.github.libtmux.kotlin.Pane.copyMode","name":"copyMode","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.copyMode(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Puts this pane into copy mode, where its scrollback can be navigated."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":49,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-copymode"},{"id":"io.github.libtmux.kotlin.Pane.dead","name":"dead","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.dead(): Boolean","params":[],"returns":"Boolean","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Whether this pane's process has exited, read fresh rather than from the capture."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-dead"},{"id":"io.github.libtmux.kotlin.Pane.exitMode","name":"exitMode","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.exitMode(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Leaves whichever mode this pane is in."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":59,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-exitmode"},{"id":"io.github.libtmux.kotlin.Pane.expand","name":"expand","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.expand(format: String): String","params":[{"name":"format","type":"String"}],"returns":"String","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Expands a tmux format in this pane's context, and answers with what it came to."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":64,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-expand"},{"id":"io.github.libtmux.kotlin.Pane.joinTo","name":"joinTo","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.joinTo(window: Window): Unit","params":[{"name":"window","type":"Window"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Moves this pane into another window, splitting it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":69,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-jointo"},{"id":"io.github.libtmux.kotlin.Pane.kill","name":"kill","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.kill(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Closes this pane."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":74,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-kill"},{"id":"io.github.libtmux.kotlin.Pane.mode","name":"mode","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.mode(): PaneMode?","params":[],"returns":"PaneMode?","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Which mode this pane is in at this moment, or empty when it is in none."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":79,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-mode"},{"id":"io.github.libtmux.kotlin.Pane.noteTyped","name":"noteTyped","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.noteTyped(text: String): Unit","params":[{"name":"text","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Notes text that reached this pane without going through this handle, so a wait discounts its echo the way it discounts text sent through [.sendLiteral]."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":85,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-notetyped"},{"id":"io.github.libtmux.kotlin.Pane.paste","name":"paste","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.paste(text: String): Unit","params":[{"name":"text","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}},{"raw":"public suspend fun Pane.paste(text: String, beforePaste: Runnable): Unit","params":[{"name":"text","type":"String"},{"name":"beforePaste","type":"Runnable"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Pastes text into this pane as one block, leaving nothing behind on the server."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":90,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-paste"},{"id":"io.github.libtmux.kotlin.Pane.pasteBuffer","name":"pasteBuffer","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.pasteBuffer(name: String): Unit","params":[{"name":"name","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Pastes a named buffer into this pane, as though it had been typed."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":100,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-pastebuffer"},{"id":"io.github.libtmux.kotlin.Pane.pipeTo","name":"pipeTo","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.pipeTo(shellCommand: String): Unit","params":[{"name":"shellCommand","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Sends everything this pane prints to a shell command, until [.stopPiping]."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":105,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-pipeto"},{"id":"io.github.libtmux.kotlin.Pane.refresh","name":"refresh","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.refresh(): Pane","params":[],"returns":"Pane","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Takes a new capture and returns this pane as it is now."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":110,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-refresh"},{"id":"io.github.libtmux.kotlin.Pane.resize","name":"resize","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.resize(direction: Direction, cells: Int): Unit","params":[{"name":"direction","type":"Direction"},{"name":"cells","type":"Int"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Grows this pane by a number of cells in one direction."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":115,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-resize"},{"id":"io.github.libtmux.kotlin.Pane.resizeTo","name":"resizeTo","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.resizeTo(size: Dimensions): Unit","params":[{"name":"size","type":"Dimensions"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Resizes this pane."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":120,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-resizeto"},{"id":"io.github.libtmux.kotlin.Pane.respawn","name":"respawn","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.respawn(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Pane"}},{"raw":"public suspend fun Pane.respawn(vararg command: String): Unit","params":[{"name":"command","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Kills whatever runs here and starts the pane's default command again."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":125,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-respawn"},{"id":"io.github.libtmux.kotlin.Pane.respawnIn","name":"respawnIn","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.respawnIn(directory: Path): Unit","params":[{"name":"directory","type":"Path"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Restarts the configured pane process in a caller-supplied literal directory, resolved against this process's working directory when relative."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":136,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-respawnin"},{"id":"io.github.libtmux.kotlin.Pane.retitle","name":"retitle","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.retitle(title: String): Pane","params":[{"name":"title","type":"String"}],"returns":"Pane","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Retitles this pane and returns its replacement capture."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":141,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-retitle"},{"id":"io.github.libtmux.kotlin.Pane.select","name":"select","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.select(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Makes this the active pane of its window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":146,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-select"},{"id":"io.github.libtmux.kotlin.Pane.send","name":"send","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.send(keys: String): Unit","params":[{"name":"keys","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Sends keys to this pane without pressing Enter."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":151,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-send"},{"id":"io.github.libtmux.kotlin.Pane.sendKeys","name":"sendKeys","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.sendKeys(keys: List): Unit","params":[{"name":"keys","type":"List"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}},{"raw":"public suspend fun Pane.sendKeys(keys: List, beforeSend: Runnable): Unit","params":[{"name":"keys","type":"List"},{"name":"beforeSend","type":"Runnable"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Sends an ordered group of key names to this pane, as tmux resolves them.","examples":[{"lang":"console","intro":"Send input and wait for output before capturing the pane. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/Capture.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/Capture.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.SessionSpec\nimport io.github.libtmux.TextOutcome\nimport io.github.libtmux.kotlin.*\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\nimport kotlin.time.Duration.Companion.seconds\n\n/** Send input and wait for output before capturing the pane. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n val session = server.newSession(\n SessionSpec.builder().named(\"api-capture\").running(\"/bin/sh\").build()\n )\n val pane = session.windows.first().panes.first()\n pane.sendKeys(listOf(\"printf 'api-%s\\\\n' keys\", \"Enter\"))\n check(pane.awaitText(\"api-keys\", timeout = 5.seconds) != TextOutcome.TIMED_OUT) {\n \"timed out waiting for keys output\"\n }\n pane.sendLine(\"printf 'api-%s\\\\n' line\")\n check(pane.awaitText(\"api-line\", timeout = 5.seconds) != TextOutcome.TIMED_OUT) {\n \"timed out waiting for line output\"\n }\n val lines = pane.capture()\n for (expected in listOf(\"api-keys\", \"api-line\")) {\n check(lines.any { it.trim() == expected }) { \"capture is missing $expected\" }\n println(expected)\n }\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.CaptureKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"api-keys\napi-line\n"}]},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":156,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-sendkeys"},{"id":"io.github.libtmux.kotlin.Pane.sendLine","name":"sendLine","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.sendLine(command: String): Unit","params":[{"name":"command","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Sends a line to this pane and presses Enter, which is how a command gets run.","examples":[{"lang":"console","intro":"Send input and wait for output before capturing the pane. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/Capture.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/Capture.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.SessionSpec\nimport io.github.libtmux.TextOutcome\nimport io.github.libtmux.kotlin.*\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\nimport kotlin.time.Duration.Companion.seconds\n\n/** Send input and wait for output before capturing the pane. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n val session = server.newSession(\n SessionSpec.builder().named(\"api-capture\").running(\"/bin/sh\").build()\n )\n val pane = session.windows.first().panes.first()\n pane.sendKeys(listOf(\"printf 'api-%s\\\\n' keys\", \"Enter\"))\n check(pane.awaitText(\"api-keys\", timeout = 5.seconds) != TextOutcome.TIMED_OUT) {\n \"timed out waiting for keys output\"\n }\n pane.sendLine(\"printf 'api-%s\\\\n' line\")\n check(pane.awaitText(\"api-line\", timeout = 5.seconds) != TextOutcome.TIMED_OUT) {\n \"timed out waiting for line output\"\n }\n val lines = pane.capture()\n for (expected in listOf(\"api-keys\", \"api-line\")) {\n check(lines.any { it.trim() == expected }) { \"capture is missing $expected\" }\n println(expected)\n }\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.CaptureKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"api-keys\napi-line\n"}]},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":166,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-sendline"},{"id":"io.github.libtmux.kotlin.Pane.sendLiteral","name":"sendLiteral","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.sendLiteral(keys: List): Unit","params":[{"name":"keys","type":"List"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}},{"raw":"public suspend fun Pane.sendLiteral(keys: List, beforeSend: Runnable): Unit","params":[{"name":"keys","type":"List"},{"name":"beforeSend","type":"Runnable"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Sends an ordered group of strings to this pane as the characters they spell."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":171,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-sendliteral"},{"id":"io.github.libtmux.kotlin.Pane.split","name":"split","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.split(): Pane","params":[],"returns":"Pane","receiver":{"name":"this","type":"Pane"}},{"raw":"public suspend fun Pane.split(spec: SplitSpec): Pane","params":[{"name":"spec","type":"SplitSpec"}],"returns":"Pane","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Splits this pane in half, putting the new one below it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":181,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-split"},{"id":"io.github.libtmux.kotlin.Pane.stopPiping","name":"stopPiping","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.stopPiping(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Stops sending this pane's output anywhere."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":191,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-stoppiping"},{"id":"io.github.libtmux.kotlin.Pane.swapWith","name":"swapWith","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.swapWith(other: Pane): Unit","params":[{"name":"other","type":"Pane"}],"returns":"Unit","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Swaps this pane's position with another's."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":196,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-swapwith"},{"id":"io.github.libtmux.kotlin.Pane.variables","name":"variables","kind":"method","parent":"io.github.libtmux.kotlin.Pane","signatures":[{"raw":"public suspend fun Pane.variables(names: List): Map","params":[{"name":"names","type":"List"}],"returns":"Map","receiver":{"name":"this","type":"Pane"}}],"imports":{"CaptureSpec":"io.github.libtmux.CaptureSpec","Dimensions":"io.github.libtmux.Dimensions","Direction":"io.github.libtmux.Direction","PaneMode":"io.github.libtmux.PaneMode","SplitSpec":"io.github.libtmux.SplitSpec","Runnable":"java.lang.Runnable","Boolean":"kotlin.Boolean","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Reads validated tmux variables in this pane's format context."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt","line":201,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-variables"},{"id":"io.github.libtmux.kotlin.Prompt.clear","name":"clear","kind":"method","parent":"io.github.libtmux.kotlin.Prompt","signatures":[{"raw":"public suspend fun Prompt.clear(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Prompt"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Forgets what has been typed at the prompt."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PromptOperations.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-prompt-clear"},{"id":"io.github.libtmux.kotlin.Prompt.history","name":"history","kind":"method","parent":"io.github.libtmux.kotlin.Prompt","signatures":[{"raw":"public suspend fun Prompt.history(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Prompt"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"What has been typed at the prompt, oldest first."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PromptOperations.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-prompt-history"},{"id":"io.github.libtmux.kotlin.Server.attachedSessions","name":"attachedSessions","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.attachedSessions(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Captures every session a client is attached to."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-attachedsessions"},{"id":"io.github.libtmux.kotlin.Server.clients","name":"clients","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.clients(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Captures every attached client."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-clients"},{"id":"io.github.libtmux.kotlin.Server.cmd","name":"cmd","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.cmd(vararg argv: String): CommandResult","params":[{"name":"argv","type":"String"}],"returns":"CommandResult","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.cmd(argv: List): CommandResult","params":[{"name":"argv","type":"List"}],"returns":"CommandResult","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.cmd(argv: List, timeout: Duration): CommandResult","params":[{"name":"argv","type":"List"},{"name":"timeout","type":"Duration"}],"returns":"CommandResult","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Runs one tmux command against this server."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-cmd"},{"id":"io.github.libtmux.kotlin.Server.expand","name":"expand","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.expand(format: String): String","params":[{"name":"format","type":"String"}],"returns":"String","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Expands a tmux format against the server, and answers with what it came to."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":52,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-expand"},{"id":"io.github.libtmux.kotlin.Server.hasSession","name":"hasSession","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.hasSession(name: String): Boolean","params":[{"name":"name","type":"String"}],"returns":"Boolean","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Whether a session with this name exists."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":57,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-hassession"},{"id":"io.github.libtmux.kotlin.Server.isAlive","name":"isAlive","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.isAlive(): Boolean","params":[],"returns":"Boolean","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.isAlive(timeout: Duration): Boolean","params":[{"name":"timeout","type":"Duration"}],"returns":"Boolean","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Whether the server is running and answering."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-isalive"},{"id":"io.github.libtmux.kotlin.Server.killServer","name":"killServer","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.killServer(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.killServer(timeout: Duration): Unit","params":[{"name":"timeout","type":"Duration"}],"returns":"Unit","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Ends the tmux server and every session on it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":72,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-killserver"},{"id":"io.github.libtmux.kotlin.Server.killSession","name":"killSession","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.killSession(name: String): Unit","params":[{"name":"name","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Ends the session with this name, and everything in it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":82,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-killsession"},{"id":"io.github.libtmux.kotlin.Server.lock","name":"lock","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.lock(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Locks every client attached to this server."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":87,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-lock"},{"id":"io.github.libtmux.kotlin.Server.newSession","name":"newSession","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.newSession(name: String): Session","params":[{"name":"name","type":"String"}],"returns":"Session","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.newSession(spec: SessionSpec): Session","params":[{"name":"spec","type":"SessionSpec"}],"returns":"Session","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.newSession(configure: SessionBuilder.() -> Unit): Session","params":[{"name":"configure","type":"SessionBuilder.() -> Unit"}],"returns":"Session","receiver":{"name":"this","type":"Server"},"raises":[{"type":"IllegalArgumentException","doc":"if the session and its first window block both set a directory, or both set a command: tmux has one of each for that window"}]}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Creates a detached session and returns that exact session.","examples":[{"lang":"console","intro":"Create a session running cat. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/NewSession.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/NewSession.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.SessionSpec\nimport io.github.libtmux.kotlin.*\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** Create a session running cat. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n val session = server.newSession(\n SessionSpec.builder().named(\"api-session\").running(\"/bin/cat\").build()\n )\n println(\"created=${session.name}\")\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.NewSessionKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"created=api-session\n"}]},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":92,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-newsession"},{"id":"io.github.libtmux.kotlin.Server.paneFields","name":"paneFields","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.paneFields(names: List): Map>","params":[{"name":"names","type":"List"}],"returns":"Map>","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Chosen fields for every pane on the server, from one listing."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":107,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-panefields"},{"id":"io.github.libtmux.kotlin.Server.panes","name":"panes","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.panes(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.panes(expression: FilterExpr): List","params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Captures every pane on the server.","examples":[{"lang":"console","intro":"List all panes, then the panes captured for one window. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/ListPanes.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/ListPanes.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.kotlin.*\nimport io.github.libtmux.kotlin.query.name\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** List all panes, then the panes captured for one window. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n println(\"panes=${server.panes().size}\")\n val session = server.session(Session.name eq \"work-one\")\n val window = session.windows.single { it.name == \"editor\" }\n println(\"window-panes=${window.panes.size}\")\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.ListPanesKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"panes=4\nwindow-panes=2\n"}]},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":112,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-panes"},{"id":"io.github.libtmux.kotlin.Server.requireAlive","name":"requireAlive","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.requireAlive(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Requires a running tmux daemon that answers the liveness probe."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":122,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-requirealive"},{"id":"io.github.libtmux.kotlin.Server.run","name":"run","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.run(argv: List): CommandResult","params":[{"name":"argv","type":"List"}],"returns":"CommandResult","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Runs a command that is expected to work, and raises when it did not."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":127,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-run"},{"id":"io.github.libtmux.kotlin.Server.sessions","name":"sessions","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.sessions(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.sessions(expression: FilterExpr): List","params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Every session, captured now.","examples":[{"lang":"console","intro":"List the sessions returned by a server read. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/ListSessions.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/ListSessions.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.kotlin.*\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** List the sessions returned by a server read. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n println(\"sessions=\" + server.sessions().map { it.name }.sorted().joinToString(\",\"))\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.ListSessionsKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"sessions=work-one,work-two\n"},{"lang":"console","intro":"Select sessions with a typed name filter. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/Query.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/Query.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.kotlin.*\nimport io.github.libtmux.kotlin.query.name\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** Select sessions with a typed name filter. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n val matches = server.sessions(Session.name eq \"work-one\")\n println(\"matches=\" + matches.map { it.name }.sorted().joinToString(\",\"))\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.QueryKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"matches=work-one\n"}]},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":142,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-sessions"},{"id":"io.github.libtmux.kotlin.Server.snapshot","name":"snapshot","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.snapshot(): ServerSnapshot","params":[],"returns":"ServerSnapshot","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Captures the whole hierarchy in at most four listings, retrying once if the server is replaced."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":153,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-snapshot"},{"id":"io.github.libtmux.kotlin.Server.sourceFile","name":"sourceFile","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.sourceFile(`file`: Path): Unit","params":[{"name":"`file`","type":"Path"}],"returns":"Unit","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Runs a file of tmux commands, as a configuration file would be run."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":158,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-sourcefile"},{"id":"io.github.libtmux.kotlin.Server.variables","name":"variables","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.variables(names: List): Map","params":[{"name":"names","type":"List"}],"returns":"Map","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Reads only validated tmux variable names, never caller-authored format syntax."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":163,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-variables"},{"id":"io.github.libtmux.kotlin.Server.version","name":"version","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.version(): TmuxVersion","params":[],"returns":"TmuxVersion","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Which tmux this server is running."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":168,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-version"},{"id":"io.github.libtmux.kotlin.Server.windows","name":"windows","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.windows(): List","params":[],"returns":"List","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.windows(expression: FilterExpr): List","params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","receiver":{"name":"this","type":"Server"}},{"raw":"public suspend fun Server.windows(id: WindowId): List","params":[{"name":"id","type":"WindowId"}],"returns":"List","receiver":{"name":"this","type":"Server"}}],"imports":{"PaneId":"io.github.libtmux.PaneId","SessionId":"io.github.libtmux.SessionId","SessionSpec":"io.github.libtmux.SessionSpec","TmuxVersion":"io.github.libtmux.TmuxVersion","WindowId":"io.github.libtmux.WindowId","FilterExpr":"io.github.libtmux.query.FilterExpr","ServerSnapshot":"io.github.libtmux.snapshot.ServerSnapshot","WindowContext":"io.github.libtmux.snapshot.WindowContext","CommandResult":"io.github.libtmux.transport.CommandResult","Boolean":"kotlin.Boolean","String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","Map":"kotlin.collections.Map","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Captures every winlink, preserving each session and index placement.","examples":[{"lang":"console","intro":"List all windows, then the windows captured for one session. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/ListWindows.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/ListWindows.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.kotlin.*\nimport io.github.libtmux.kotlin.query.name\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** List all windows, then the windows captured for one session. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n println(\"windows=\" + server.windows().map { it.name }.sorted().joinToString(\",\"))\n val session = server.session(Session.name eq \"work-one\")\n println(\"session-windows=\" + session.windows.map { it.name }.sorted().joinToString(\",\"))\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.ListWindowsKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"windows=editor,editor,logs\nsession-windows=editor,logs\n"}]},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt","line":178,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-windows"},{"id":"io.github.libtmux.kotlin.Session.detachClients","name":"detachClients","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.detachClients(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Detaches every client attached to this session, leaving the session running."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":15,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-detachclients"},{"id":"io.github.libtmux.kotlin.Session.expand","name":"expand","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.expand(format: String): String","params":[{"name":"format","type":"String"}],"returns":"String","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Expands a tmux format in this session's context, and answers with what it came to."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-expand"},{"id":"io.github.libtmux.kotlin.Session.kill","name":"kill","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.kill(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Ends this session."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-kill"},{"id":"io.github.libtmux.kotlin.Session.lastWindow","name":"lastWindow","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.lastWindow(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Returns to the window that was active before this one."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-lastwindow"},{"id":"io.github.libtmux.kotlin.Session.newWindow","name":"newWindow","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.newWindow(name: String): Window","params":[{"name":"name","type":"String"}],"returns":"Window","receiver":{"name":"this","type":"Session"}},{"raw":"public suspend fun Session.newWindow(spec: WindowSpec): Window","params":[{"name":"spec","type":"WindowSpec"}],"returns":"Window","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Creates a window in this session and returns that exact window.","examples":[{"lang":"console","intro":"Create a window and read the updated session. Use JDK 25, Git, and tmux 3.2a through 3.7c on Linux, with /bin/cat and /bin/sh available. In an empty directory, fetch the documented library revision:","code":"$ git clone https://github.com/libtmux/libtmux-java.git libtmux-source && \\\n git -C libtmux-source checkout a0ecbc16da00140e2520462d478a2af470878272\n"},{"lang":"kotlin","intro":"Save this consumer setup as settings.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/settings.gradle.kts","code":"rootProject.name = \"api-example\"\n\nincludeBuild(\"libtmux-source\")\n"},{"lang":"kotlin","intro":"Save this consumer setup as build.gradle.kts:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/kotlin/build.gradle.kts","code":"plugins {\n kotlin(\"jvm\") version \"2.4.10\"\n application\n}\n\nrepositories { mavenCentral() }\n\ndependencies {\n implementation(\"io.github.libtmux:libtmux-kotlin:0.0.1-alpha.17-SNAPSHOT\")\n}\n\njava { toolchain { languageVersion.set(JavaLanguageVersion.of(25)) } }\nkotlin { jvmToolchain(25) }\n\napplication { mainClass.set(providers.gradleProperty(\"exampleMain\")) }\n"},{"lang":"properties","intro":"Save this consumer setup as gradle.properties:","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/gradle.properties","code":"org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=768m -Dfile.encoding=UTF-8\nkotlin.daemon.jvmargs=-Xmx2g\norg.gradle.workers.max=2\n"},{"lang":"sh","intro":"Save this launcher as run.sh. It creates and stops a private tmux server, including after program failure. A shutdown failure retains its socket directory and exits unsuccessfully.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nif [ \"$#\" -eq 0 ]; then\n printf 'Usage: sh run.sh program [arguments...]\\n' >&2\n exit 2\nfi\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\nmkdir -p /tmp/libtmux-java-dev\ndirectory=$(mktemp -d /tmp/libtmux-java-dev/api.XXXXXX)\nsocket=\"$directory/tmux.sock\"\nconfig=\"$directory/tmux.conf\"\n\nalive() {\n \"$binary\" -S \"$socket\" display-message -p '#{pid}' >/dev/null 2>&1\n}\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if alive; then\n if ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n attempts=0\n while alive && [ \"$attempts\" -lt 100 ]; do\n sleep 0.05\n attempts=$((attempts + 1))\n done\n if alive; then\n printf 'tmux is still responding; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nprintf 'set-option -g default-shell /bin/sh\\n' > \"$config\"\n\"$binary\" -S \"$socket\" -f \"$config\" new-session -d -s work-one -n editor /bin/cat\n\"$binary\" -S \"$socket\" split-window -h -t '=work-one:editor' /bin/cat\n\"$binary\" -S \"$socket\" new-window -d -t '=work-one' -n logs /bin/cat\n\"$binary\" -S \"$socket\" new-session -d -s work-two -n editor /bin/cat\n\"$@\" \"$binary\" \"$socket\" \"$config\"\n\"$binary\" -S \"$socket\" has-session -t '=work-one'\n\"$binary\" -S \"$socket\" has-session -t '=work-two'\n"},{"lang":"kotlin","intro":"Save this complete program as src/main/kotlin/NewWindow.kt. It opens an ordinary client for the launcher's server; closing the client releases its transport.","sourceUrl":"https://github.com/libtmux/libtmux-java/blob/a0ecbc16da00140e2520462d478a2af470878272/examples/src/main/kotlin/io/github/libtmux/examples/api/kotlin/NewWindow.kt","code":"package io.github.libtmux.examples.api.kotlin\n\nimport io.github.libtmux.ServerConfig\nimport io.github.libtmux.ServerEndpoint\nimport io.github.libtmux.WindowSpec\nimport io.github.libtmux.kotlin.*\nimport io.github.libtmux.kotlin.query.name\nimport java.nio.file.Path\nimport kotlin.system.exitProcess\nimport kotlinx.coroutines.runBlocking\n\n/** Create a window and read the updated session. */\nfun main(args: Array) {\n try {\n require(args.size == 3) { \"expected: tmux-binary socket-path config-file\" }\n val config = ServerConfig.builder()\n .binary(args[0])\n .endpoint(ServerEndpoint.socketPath(Path.of(args[1])))\n .configFile(Path.of(args[2]))\n .build()\n runBlocking {\n withServer(config) { server ->\n val session = server.session(Session.name eq \"work-one\")\n val window = session.newWindow(\n WindowSpec.builder().named(\"api-window\").running(\"/bin/cat\").build()\n )\n println(\"created=${window.name}\")\n val refreshed = server.session(Session.name eq \"work-one\")\n println(\"windows=\" + refreshed.windows.map { it.name }.sorted().joinToString(\",\"))\n }\n }\n } catch (error: Exception) {\n if (error is InterruptedException) Thread.currentThread().interrupt()\n System.err.println(\"Example failed: ${error.message}\")\n exitProcess(1)\n }\n}\n"},{"lang":"console","intro":"Build the minimal consumer and run the saved program with the private fixture. An operation or cleanup error makes the command exit unsuccessfully:","code":"$ ./libtmux-source/gradlew --project-dir . --console=plain --quiet \\\n installDist -PexampleMain=io.github.libtmux.examples.api.kotlin.NewWindowKt && \\\n sh run.sh build/install/api-example/bin/api-example\n"},{"lang":"text","intro":"Expected output:","code":"created=api-window\nwindows=api-window,editor,logs\n"}]},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":35,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-newwindow"},{"id":"io.github.libtmux.kotlin.Session.nextWindow","name":"nextWindow","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.nextWindow(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Moves to the next window in this session, wrapping at the end."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":45,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-nextwindow"},{"id":"io.github.libtmux.kotlin.Session.previousWindow","name":"previousWindow","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.previousWindow(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Moves to the previous window in this session, wrapping at the start."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-previouswindow"},{"id":"io.github.libtmux.kotlin.Session.refresh","name":"refresh","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.refresh(): Session","params":[],"returns":"Session","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Takes a new capture and returns this session as it is now."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":55,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-refresh"},{"id":"io.github.libtmux.kotlin.Session.rename","name":"rename","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.rename(name: String): Session","params":[{"name":"name","type":"String"}],"returns":"Session","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Renames this session and returns its replacement capture."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":60,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-rename"},{"id":"io.github.libtmux.kotlin.Session.selectWindow","name":"selectWindow","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.selectWindow(window: Window): Unit","params":[{"name":"window","type":"Window"}],"returns":"Unit","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Makes a window of this session the active one."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":65,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-selectwindow"},{"id":"io.github.libtmux.kotlin.Session.setHistoryLimit","name":"setHistoryLimit","kind":"method","parent":"io.github.libtmux.kotlin.Session","signatures":[{"raw":"public suspend fun Session.setHistoryLimit(lines: Int): Unit","params":[{"name":"lines","type":"Int"}],"returns":"Unit","receiver":{"name":"this","type":"Session"}}],"imports":{"WindowSpec":"io.github.libtmux.WindowSpec","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Sets the scrollback retained by panes created in this session."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt","line":70,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-sethistorylimit"},{"id":"io.github.libtmux.kotlin.Shell.capturing","name":"capturing","kind":"method","parent":"io.github.libtmux.kotlin.Shell","signatures":[{"raw":"public suspend fun Shell.capturing(command: String): List","params":[{"name":"command","type":"String"}],"returns":"List","receiver":{"name":"this","type":"Shell"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Runs a shell command and answers with what it printed."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ShellOperations.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-shell-capturing"},{"id":"io.github.libtmux.kotlin.Shell.choose","name":"choose","kind":"method","parent":"io.github.libtmux.kotlin.Shell","signatures":[{"raw":"public suspend fun Shell.choose(condition: String, whenTrue: String): Unit","params":[{"name":"condition","type":"String"},{"name":"whenTrue","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Shell"}},{"raw":"public suspend fun Shell.choose(\n condition: String,\n whenTrue: String,\n whenFalse: String,\n): Unit","params":[{"name":"condition","type":"String"},{"name":"whenTrue","type":"String"},{"name":"whenFalse","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Shell"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Runs one tmux command when a shell command succeeds."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ShellOperations.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-shell-choose"},{"id":"io.github.libtmux.kotlin.Shell.run","name":"run","kind":"method","parent":"io.github.libtmux.kotlin.Shell","signatures":[{"raw":"public suspend fun Shell.run(command: String): Unit","params":[{"name":"command","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Shell"}}],"imports":{"String":"kotlin.String","Unit":"kotlin.Unit","List":"kotlin.collections.List","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Runs a shell command for its effect."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ShellOperations.kt","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-shell-run"},{"id":"io.github.libtmux.kotlin.Window.applyLayout","name":"applyLayout","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.applyLayout(layout: WindowLayout): Unit","params":[{"name":"layout","type":"WindowLayout"}],"returns":"Unit","receiver":{"name":"this","type":"Window"}},{"raw":"public suspend fun Window.applyLayout(layout: String): Unit","params":[{"name":"layout","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Restores an exact arrangement previously read from [.layout()]."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-applylayout"},{"id":"io.github.libtmux.kotlin.Window.displayPopup","name":"displayPopup","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.displayPopup(shellCommand: String): Unit","params":[{"name":"shellCommand","type":"String"}],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Shows a popup over this window, running a command in it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":28,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-displaypopup"},{"id":"io.github.libtmux.kotlin.Window.expand","name":"expand","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.expand(format: String): String","params":[{"name":"format","type":"String"}],"returns":"String","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Expands a tmux format in this window's context, and answers with what it came to."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":33,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-expand"},{"id":"io.github.libtmux.kotlin.Window.kill","name":"kill","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.kill(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Closes this window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-kill"},{"id":"io.github.libtmux.kotlin.Window.linkTo","name":"linkTo","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.linkTo(session: Session): Unit","params":[{"name":"session","type":"Session"}],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Links this window into another session, so one window sits in both."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":43,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-linkto"},{"id":"io.github.libtmux.kotlin.Window.moveTo","name":"moveTo","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.moveTo(session: Session): Unit","params":[{"name":"session","type":"Session"}],"returns":"Unit","receiver":{"name":"this","type":"Window"}},{"raw":"public suspend fun Window.moveTo(session: Session, index: Int): Unit","params":[{"name":"session","type":"Session"},{"name":"index","type":"Int"}],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Moves this window into another session."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":48,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-moveto"},{"id":"io.github.libtmux.kotlin.Window.nextLayout","name":"nextLayout","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.nextLayout(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Moves to the next built-in layout, as tmux's own binding does."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":58,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-nextlayout"},{"id":"io.github.libtmux.kotlin.Window.previousLayout","name":"previousLayout","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.previousLayout(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Moves to the previous built-in layout, as tmux's own binding does."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":63,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-previouslayout"},{"id":"io.github.libtmux.kotlin.Window.refresh","name":"refresh","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.refresh(): Window","params":[],"returns":"Window","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Takes a new capture and returns this winlink as it is now."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":68,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-refresh"},{"id":"io.github.libtmux.kotlin.Window.rename","name":"rename","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.rename(name: String): Window","params":[{"name":"name","type":"String"}],"returns":"Window","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Renames this window and returns its replacement capture."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":73,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-rename"},{"id":"io.github.libtmux.kotlin.Window.resizeTo","name":"resizeTo","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.resizeTo(size: Dimensions): Unit","params":[{"name":"size","type":"Dimensions"}],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Resizes this window in terminal cells."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-resizeto"},{"id":"io.github.libtmux.kotlin.Window.respawn","name":"respawn","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.respawn(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Kills what is running in this window and starts it again."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":83,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-respawn"},{"id":"io.github.libtmux.kotlin.Window.rotate","name":"rotate","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.rotate(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Rotates the panes within this window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":88,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-rotate"},{"id":"io.github.libtmux.kotlin.Window.select","name":"select","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.select(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Makes this the active window of its session."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":93,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-select"},{"id":"io.github.libtmux.kotlin.Window.selectLayout","name":"selectLayout","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.selectLayout(layout: Layout): Unit","params":[{"name":"layout","type":"Layout"}],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Rearranges this window's panes into one of tmux's built-in layouts."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":98,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-selectlayout"},{"id":"io.github.libtmux.kotlin.Window.split","name":"split","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.split(): Pane","params":[],"returns":"Pane","receiver":{"name":"this","type":"Window"}},{"raw":"public suspend fun Window.split(spec: SplitSpec): Pane","params":[{"name":"spec","type":"SplitSpec"}],"returns":"Pane","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async","overload"],"doc":{"summary":"Splits this window's active pane in half, putting the new one below it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":103,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-split"},{"id":"io.github.libtmux.kotlin.Window.stopSynchronizingPanes","name":"stopSynchronizingPanes","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.stopSynchronizingPanes(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Stops copying input between this window's panes."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":113,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-stopsynchronizingpanes"},{"id":"io.github.libtmux.kotlin.Window.synchronizePanes","name":"synchronizePanes","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.synchronizePanes(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Copies input to one pane into every pane in this window, until [.stopSynchronizingPanes]."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":118,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-synchronizepanes"},{"id":"io.github.libtmux.kotlin.Window.unlink","name":"unlink","kind":"method","parent":"io.github.libtmux.kotlin.Window","signatures":[{"raw":"public suspend fun Window.unlink(): Unit","params":[],"returns":"Unit","receiver":{"name":"this","type":"Window"}}],"imports":{"Dimensions":"io.github.libtmux.Dimensions","Layout":"io.github.libtmux.Layout","SplitSpec":"io.github.libtmux.SplitSpec","WindowLayout":"io.github.libtmux.WindowLayout","Int":"kotlin.Int","String":"kotlin.String","Unit":"kotlin.Unit","toJavaDuration":"kotlin.time.toJavaDuration","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Removes this link, leaving the window wherever else it is linked."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt","line":123,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-unlink"},{"id":"io.github.libtmux.kotlin.Client.Companion.name","name":"name","kind":"property","parent":"io.github.libtmux.kotlin.Client.Companion","signatures":[{"raw":"public val KotlinClient.Companion.name: TextField","params":[],"returns":"TextField","receiver":{"name":"this","type":"KotlinClient.Companion"}}],"imports":{"Client_":"io.github.libtmux.Client_","Session":"io.github.libtmux.Session","LibtmuxClient":"io.github.libtmux.Client","KotlinClient":"io.github.libtmux.kotlin.Client"},"modifiers":[],"doc":{"summary":"The client's terminal name, which is how tmux addresses it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/ClientFields.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-companion-name"},{"id":"io.github.libtmux.kotlin.Client.Companion.session","name":"session","kind":"property","parent":"io.github.libtmux.kotlin.Client.Companion","signatures":[{"raw":"public val KotlinClient.Companion.session: ToOneField","params":[],"returns":"ToOneField","receiver":{"name":"this","type":"KotlinClient.Companion"}}],"imports":{"Client_":"io.github.libtmux.Client_","Session":"io.github.libtmux.Session","LibtmuxClient":"io.github.libtmux.Client","KotlinClient":"io.github.libtmux.kotlin.Client"},"modifiers":[],"doc":{"summary":"The session this client was attached to, if any."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/ClientFields.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-client-companion-session"},{"id":"io.github.libtmux.kotlin.Pane.Companion.id","name":"id","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.id: TextField","params":[],"returns":"TextField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"The pane id."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":12,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-id"},{"id":"io.github.libtmux.kotlin.Pane.Companion.command","name":"command","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.command: TextField","params":[],"returns":"TextField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"The command tmux reported running in the pane."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":18,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-command"},{"id":"io.github.libtmux.kotlin.Pane.Companion.index","name":"index","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.index: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"The pane's position in its window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":24,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-index"},{"id":"io.github.libtmux.kotlin.Pane.Companion.active","name":"active","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.active: FlagField","params":[],"returns":"FlagField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"Whether this was its window's active pane."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":30,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-active"},{"id":"io.github.libtmux.kotlin.Pane.Companion.title","name":"title","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.title: TextField","params":[],"returns":"TextField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"The pane's title, which a program running in it can set."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":36,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-title"},{"id":"io.github.libtmux.kotlin.Pane.Companion.path","name":"path","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.path: TextField","params":[],"returns":"TextField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"The pane's working directory, as the text tmux reported."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":42,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-path"},{"id":"io.github.libtmux.kotlin.Pane.Companion.width","name":"width","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.width: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"The pane's width, in cells."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":48,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-width"},{"id":"io.github.libtmux.kotlin.Pane.Companion.height","name":"height","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.height: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"The pane's height, in cells."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":54,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-height"},{"id":"io.github.libtmux.kotlin.Pane.Companion.left","name":"left","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.left: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"The column of the pane's left edge in its window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":60,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-left"},{"id":"io.github.libtmux.kotlin.Pane.Companion.top","name":"top","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.top: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"The row of the pane's top edge in its window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":66,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-top"},{"id":"io.github.libtmux.kotlin.Pane.Companion.atTop","name":"atTop","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.atTop: FlagField","params":[],"returns":"FlagField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"Whether the pane touches the top of its window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":72,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-attop"},{"id":"io.github.libtmux.kotlin.Pane.Companion.atBottom","name":"atBottom","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.atBottom: FlagField","params":[],"returns":"FlagField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"Whether the pane touches the bottom of its window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":78,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-atbottom"},{"id":"io.github.libtmux.kotlin.Pane.Companion.atLeft","name":"atLeft","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.atLeft: FlagField","params":[],"returns":"FlagField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"Whether the pane touches the left of its window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":84,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-atleft"},{"id":"io.github.libtmux.kotlin.Pane.Companion.atRight","name":"atRight","kind":"property","parent":"io.github.libtmux.kotlin.Pane.Companion","signatures":[{"raw":"public val KotlinPane.Companion.atRight: FlagField","params":[],"returns":"FlagField","receiver":{"name":"this","type":"KotlinPane.Companion"}}],"imports":{"Pane_":"io.github.libtmux.Pane_","LibtmuxPane":"io.github.libtmux.Pane","KotlinPane":"io.github.libtmux.kotlin.Pane"},"modifiers":[],"doc":{"summary":"Whether the pane touches the right of its window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt","line":90,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-pane-companion-atright"},{"id":"io.github.libtmux.kotlin.Session.Companion.id","name":"id","kind":"property","parent":"io.github.libtmux.kotlin.Session.Companion","signatures":[{"raw":"public val KotlinSession.Companion.id: TextField","params":[],"returns":"TextField","receiver":{"name":"this","type":"KotlinSession.Companion"}}],"imports":{"Session_":"io.github.libtmux.Session_","Window":"io.github.libtmux.Window","LibtmuxSession":"io.github.libtmux.Session","KotlinSession":"io.github.libtmux.kotlin.Session"},"modifiers":[],"doc":{"summary":"The session id, as text, so it can be compared and listed."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/SessionFields.kt","line":13,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-companion-id"},{"id":"io.github.libtmux.kotlin.Session.Companion.name","name":"name","kind":"property","parent":"io.github.libtmux.kotlin.Session.Companion","signatures":[{"raw":"public val KotlinSession.Companion.name: TextField","params":[],"returns":"TextField","receiver":{"name":"this","type":"KotlinSession.Companion"}}],"imports":{"Session_":"io.github.libtmux.Session_","Window":"io.github.libtmux.Window","LibtmuxSession":"io.github.libtmux.Session","KotlinSession":"io.github.libtmux.kotlin.Session"},"modifiers":[],"doc":{"summary":"The session name."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/SessionFields.kt","line":19,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-companion-name"},{"id":"io.github.libtmux.kotlin.Session.Companion.attached","name":"attached","kind":"property","parent":"io.github.libtmux.kotlin.Session.Companion","signatures":[{"raw":"public val KotlinSession.Companion.attached: FlagField","params":[],"returns":"FlagField","receiver":{"name":"this","type":"KotlinSession.Companion"}}],"imports":{"Session_":"io.github.libtmux.Session_","Window":"io.github.libtmux.Window","LibtmuxSession":"io.github.libtmux.Session","KotlinSession":"io.github.libtmux.kotlin.Session"},"modifiers":[],"doc":{"summary":"Whether a client was attached when this was captured."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/SessionFields.kt","line":25,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-companion-attached"},{"id":"io.github.libtmux.kotlin.Session.Companion.windowCount","name":"windowCount","kind":"property","parent":"io.github.libtmux.kotlin.Session.Companion","signatures":[{"raw":"public val KotlinSession.Companion.windowCount: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinSession.Companion"}}],"imports":{"Session_":"io.github.libtmux.Session_","Window":"io.github.libtmux.Window","LibtmuxSession":"io.github.libtmux.Session","KotlinSession":"io.github.libtmux.kotlin.Session"},"modifiers":[],"doc":{"summary":"How many windows this session holds."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/SessionFields.kt","line":31,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-companion-windowcount"},{"id":"io.github.libtmux.kotlin.Session.Companion.windows","name":"windows","kind":"property","parent":"io.github.libtmux.kotlin.Session.Companion","signatures":[{"raw":"public val KotlinSession.Companion.windows: ToManyField","params":[],"returns":"ToManyField","receiver":{"name":"this","type":"KotlinSession.Companion"}}],"imports":{"Session_":"io.github.libtmux.Session_","Window":"io.github.libtmux.Window","LibtmuxSession":"io.github.libtmux.Session","KotlinSession":"io.github.libtmux.kotlin.Session"},"modifiers":[],"doc":{"summary":"This session's windows."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/SessionFields.kt","line":37,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-session-companion-windows"},{"id":"io.github.libtmux.kotlin.Window.Companion.id","name":"id","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.id: TextField","params":[],"returns":"TextField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"The underlying window id, shared by every link to it."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-id"},{"id":"io.github.libtmux.kotlin.Window.Companion.name","name":"name","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.name: TextField","params":[],"returns":"TextField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"The window name."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":20,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-name"},{"id":"io.github.libtmux.kotlin.Window.Companion.index","name":"index","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.index: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"Where this link sits in its session."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-index"},{"id":"io.github.libtmux.kotlin.Window.Companion.active","name":"active","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.active: FlagField","params":[],"returns":"FlagField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"Whether this was its session's active window."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":32,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-active"},{"id":"io.github.libtmux.kotlin.Window.Companion.linked","name":"linked","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.linked: FlagField","params":[],"returns":"FlagField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"Whether the underlying window is linked into more than one session."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-linked"},{"id":"io.github.libtmux.kotlin.Window.Companion.width","name":"width","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.width: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"The window's width, in cells."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":44,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-width"},{"id":"io.github.libtmux.kotlin.Window.Companion.height","name":"height","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.height: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"The window's height, in cells."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":50,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-height"},{"id":"io.github.libtmux.kotlin.Window.Companion.paneCount","name":"paneCount","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.paneCount: NumberField","params":[],"returns":"NumberField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"How many panes this link holds."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":56,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-panecount"},{"id":"io.github.libtmux.kotlin.Window.Companion.panes","name":"panes","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.panes: ToManyField","params":[],"returns":"ToManyField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"This link's panes."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":62,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-panes"},{"id":"io.github.libtmux.kotlin.Window.Companion.session","name":"session","kind":"property","parent":"io.github.libtmux.kotlin.Window.Companion","signatures":[{"raw":"public val KotlinWindow.Companion.session: ToOneField","params":[],"returns":"ToOneField","receiver":{"name":"this","type":"KotlinWindow.Companion"}}],"imports":{"Pane":"io.github.libtmux.Pane","Session":"io.github.libtmux.Session","Window_":"io.github.libtmux.Window_","LibtmuxWindow":"io.github.libtmux.Window","KotlinWindow":"io.github.libtmux.kotlin.Window"},"modifiers":[],"doc":{"summary":"The session this link belongs to."},"source":{"file":"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt","line":68,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-window-companion-session"},{"id":"io.github.libtmux.query.FilterExpr.not","name":"not","kind":"function","signatures":[{"raw":"public operator fun FilterExpr.not(): FilterExpr","params":[],"returns":"FilterExpr","receiver":{"name":"this","type":"FilterExpr"},"typeParams":["T"],"typeParameters":[{"name":"T","bound":"Any"}]}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","JavaClient":"io.github.libtmux.Client","JavaPane":"io.github.libtmux.Pane","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":[],"doc":{"summary":"Inverts an expression, so `!Pane_.active().isTrue()` says what it means.","body":"There is no matching `and` or `or` here, deliberately. Those are already methods on\n[FilterExpr], and an extension of the same name would be shadowed by the member inside its own\nbody while winning at an infix call site — correct either way, but for a reason no reader should\nhave to work out. `a.and(b)` is one character longer than `a and b` and always means the thing it\nappears to.\n\n`negate` rather than `not` on the Java side because [java.util.function.Predicate] already owns\n`not`, and these expressions are predicates.\n\nThe bound is `T : Any` rather than `T`, and that is not a style choice. The core is `@NullMarked`,\nso Kotlin reads `FilterExpr` as `FilterExpr`; an unbounded `T` here would admit a\nnullable entity the core says cannot exist. Compiled with `-Xjspecify-annotations=strict`, so it\nis an error rather than a warning — this file did not compile until the bound was written."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Filters.kt","line":26,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-query-filterexpr-not"},{"id":"io.github.libtmux.kotlin.Iterable.filter","name":"filter","kind":"function","signatures":[{"raw":"public fun Iterable.filter(expression: FilterExpr): List","params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","receiver":{"name":"this","type":"Iterable"},"typeParams":["T"],"typeParameters":[{"name":"T","bound":"Any"}]},{"raw":"public fun Iterable.filter(expression: FilterExpr): List","params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","receiver":{"name":"this","type":"Iterable"}},{"raw":"public fun Iterable.filter(expression: FilterExpr): List","params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","receiver":{"name":"this","type":"Iterable"}},{"raw":"public fun Iterable.filter(expression: FilterExpr): List","params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","receiver":{"name":"this","type":"Iterable"}},{"raw":"public fun Iterable.filter(expression: FilterExpr): List","params":[{"name":"expression","type":"FilterExpr"}],"returns":"List","receiver":{"name":"this","type":"Iterable"}}],"imports":{"FilterExpr":"io.github.libtmux.query.FilterExpr","JavaClient":"io.github.libtmux.Client","JavaPane":"io.github.libtmux.Pane","JavaSession":"io.github.libtmux.Session","JavaWindow":"io.github.libtmux.Window"},"modifiers":["overload"],"doc":{"summary":"Selects the elements an expression matches.","body":"Kotlin's own `filter` takes a function, not a [java.util.function.Predicate], so handing it a\n[FilterExpr] does not compile — the one place where reading the Java documentation and writing\nKotlin part company. This is that overload, so `panes.filter(Pane_.active().isTrue())` means what\nit appears to.\n\nThe list is already in hand: this asks tmux nothing."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Filters.kt","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-iterable-filter"},{"id":"io.github.libtmux.kotlin.Server.liveState","name":"liveState","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.liveState(\n session: Session,\n scope: CoroutineScope,\n attachTimeout: Duration = config.defaultTimeout().toKotlinDuration(),\n): StateFlow","params":[{"name":"session","type":"Session"},{"name":"scope","type":"CoroutineScope"},{"name":"attachTimeout","type":"Duration","default":"config.defaultTimeout().toKotlinDuration()","doc":"how long to wait for the first attach, and the deadline each later rebuild wait uses to recheck [scope] for cancellation"}],"returns":"StateFlow","receiver":{"name":"this","type":"Server"},"raises":[{"type":"io.github.libtmux.exception.TargetGoneException","doc":"synchronously if [session]'s server has already gone when this is called; later, the same failure ends [scope] instead, since it surfaces from the launched pump rather than from this call"}]}],"imports":{"ServerMirror":"io.github.libtmux.snapshot.ServerMirror","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","CoroutineScope":"kotlinx.coroutines.CoroutineScope","NonCancellable":"kotlinx.coroutines.NonCancellable","cancelChildren":"kotlinx.coroutines.cancelChildren","coroutineScope":"kotlinx.coroutines.coroutineScope","MutableStateFlow":"kotlinx.coroutines.flow.MutableStateFlow","StateFlow":"kotlinx.coroutines.flow.StateFlow","asStateFlow":"kotlinx.coroutines.flow.asStateFlow","isActive":"kotlinx.coroutines.isActive","launch":"kotlinx.coroutines.launch","runInterruptible":"kotlinx.coroutines.runInterruptible","withContext":"kotlinx.coroutines.withContext"},"modifiers":["async"],"doc":{"summary":"A live, continuously rebuilt view of [server], as a [StateFlow].","body":"Wraps Java's [ServerMirror] rather than reinventing it: every routine case — resnapshot on\nnotification, on gap, and on reconnect; conflation while a rebuild is in flight; ending once\n[session] itself is gone — is already handled once, correctly, inside [ServerMirror]. This\nfunction's only job is pumping [ServerMirror.awaitNewer] on a dedicated thread from\n[ExecutionPolicy.streamReads] and publishing what comes back. Named `liveState`, not `ServerMirror`,\nso it does not collide with the Java type it wraps.\n\n[scope] owns the returned [StateFlow]'s whole lifetime: closing the mirror is this function's own\n`launch`+`finally`, tied to [scope]'s cancellation, so the caller never has to close it by hand."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/LiveState.kt","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-livestate"},{"id":"io.github.libtmux.kotlin.Server.withLiveState","name":"withLiveState","kind":"method","parent":"io.github.libtmux.kotlin.Server","signatures":[{"raw":"public suspend fun Server.withLiveState(\n session: Session,\n attachTimeout: Duration = config.defaultTimeout().toKotlinDuration(),\n block: suspend (StateFlow) -> R,\n): R","params":[{"name":"session","type":"Session"},{"name":"attachTimeout","type":"Duration","default":"config.defaultTimeout().toKotlinDuration()"},{"name":"block","type":"suspend"}],"returns":"R","receiver":{"name":"this","type":"Server"},"typeParams":["R"],"typeParameters":[{"name":"R"}]}],"imports":{"ServerMirror":"io.github.libtmux.snapshot.ServerMirror","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","toKotlinDuration":"kotlin.time.toKotlinDuration","CoroutineScope":"kotlinx.coroutines.CoroutineScope","NonCancellable":"kotlinx.coroutines.NonCancellable","cancelChildren":"kotlinx.coroutines.cancelChildren","coroutineScope":"kotlinx.coroutines.coroutineScope","MutableStateFlow":"kotlinx.coroutines.flow.MutableStateFlow","StateFlow":"kotlinx.coroutines.flow.StateFlow","asStateFlow":"kotlinx.coroutines.flow.asStateFlow","isActive":"kotlinx.coroutines.isActive","launch":"kotlinx.coroutines.launch","runInterruptible":"kotlinx.coroutines.runInterruptible","withContext":"kotlinx.coroutines.withContext"},"modifiers":["async"],"doc":{"summary":"As [liveState], scoped to [block]: opens the live view, runs [block] against it, and cancels the background pump before returning — the same `withServer`/`withControl` shape, for the one resource [liveState] itself cannot close on its own.","body":"[liveState]'s pump runs until [scope] ends, by design (a caller collecting it for the life of a\nprogram passes its own long-lived scope) — which means a bare `coroutineScope { liveState(...) }`\nnever returns: `coroutineScope` waits for every child, the pump included, and nothing inside it\nasks the pump to stop. This cancels that one child explicitly once [block] is done, whether it\nreturns or throws."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/LiveState.kt","line":86,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-kotlin-server-withlivestate"},{"id":"java.util.OptionalInt.orNull","name":"orNull","kind":"function","signatures":[{"raw":"public fun OptionalInt.orNull(): Int?","params":[],"returns":"Int?","receiver":{"name":"this","type":"OptionalInt"}}],"imports":{"OptionalInt":"java.util.OptionalInt","OptionalLong":"java.util.OptionalLong"},"modifiers":[],"doc":{"summary":"The value, or null when absent: an exit status, a captured server pid."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Optionals.kt","line":14,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"java-util-optionalint-ornull"},{"id":"java.util.OptionalLong.orNull","name":"orNull","kind":"function","signatures":[{"raw":"public fun OptionalLong.orNull(): Long?","params":[],"returns":"Long?","receiver":{"name":"this","type":"OptionalLong"}}],"imports":{"OptionalInt":"java.util.OptionalInt","OptionalLong":"java.util.OptionalLong"},"modifiers":[],"doc":{"summary":"The value, or null when absent."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Optionals.kt","line":17,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"java-util-optionallong-ornull"},{"id":"io.github.libtmux.Channel.await","name":"await","kind":"function","signatures":[{"raw":"public suspend fun Channel.await(\n timeout: Duration,\n dispatcher: CoroutineDispatcher = Dispatchers.IO,\n): WakeReason","params":[{"name":"timeout","type":"Duration","doc":"how long to wait, finite and positive"},{"name":"dispatcher","type":"CoroutineDispatcher","default":"Dispatchers.IO","doc":"where the blocking wait runs"}],"returns":"WakeReason","receiver":{"name":"this","type":"Channel"},"returnsDoc":"why the wait ended"}],"imports":{"Channel":"io.github.libtmux.Channel","WakeReason":"io.github.libtmux.WakeReason","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"Waits for something to signal this channel.","body":"Cancelling the coroutine interrupts the wait. That is not a timeout. A `wait-for` tmux has already\naccepted is not taken back."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Waits.kt","line":27,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-channel-await"},{"id":"io.github.libtmux.Channel.awaitReservingCapacity","name":"awaitReservingCapacity","kind":"function","signatures":[{"raw":"public suspend fun Channel.awaitReservingCapacity(\n timeout: Duration,\n dispatcher: CoroutineDispatcher = Dispatchers.IO,\n): WakeReason","params":[{"name":"timeout","type":"Duration","doc":"how long to wait, finite and positive"},{"name":"dispatcher","type":"CoroutineDispatcher","default":"Dispatchers.IO","doc":"where the blocking wait runs"}],"returns":"WakeReason","receiver":{"name":"this","type":"Channel"}}],"imports":{"Channel":"io.github.libtmux.Channel","WakeReason":"io.github.libtmux.WakeReason","Duration":"kotlin.time.Duration","toJavaDuration":"kotlin.time.toJavaDuration","CoroutineDispatcher":"kotlinx.coroutines.CoroutineDispatcher","Dispatchers":"kotlinx.coroutines.Dispatchers","runInterruptible":"kotlinx.coroutines.runInterruptible"},"modifiers":["async"],"doc":{"summary":"As [await], while preserving process capacity for a call that signals it."},"source":{"file":"libtmux-kotlin/src/main/kotlin/io/github/libtmux/kotlin/Waits.kt","line":38,"repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272"},"product":"core","slug":"io-github-libtmux-channel-awaitreservingcapacity"}],"sources":[{"product":"core","package":"io.github.libtmux:libtmux-kotlin","repo":"libtmux/libtmux-java","revision":"a0ecbc16da00140e2520462d478a2af470878272","extractedRevision":"a0ecbc16da00140e2520462d478a2af470878272","version":"0.0.1-alpha.17-SNAPSHOT"}],"generatedSources":{"libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/BatchOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport io.github.libtmux.batch.BatchResult\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Runs every collected operation in one tmux invocation.\n */\npublic suspend fun Batch.run(): BatchResult = runInterruptible(server.policy.commands) { java.run() }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/BuffersOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport io.github.libtmux.BufferInfo\nimport java.nio.`file`.Path\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.collections.List\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Removes a buffer by its exact name.\n */\npublic suspend fun Buffers.delete(name: String): Unit = runInterruptible(server.policy.commands) { java.delete(name) }\n\n/**\n * Captures every buffer the server holds, in tmux's order.\n */\npublic suspend fun Buffers.list(): List = runInterruptible(server.policy.commands) { java.list() }\n\n/**\n * Reads a file into a named buffer.\n */\npublic suspend fun Buffers.load(name: String, `file`: Path): Unit = runInterruptible(server.policy.commands) { java.load(name, file) }\n\n/**\n * Writes a buffer's contents to a file.\n */\npublic suspend fun Buffers.save(name: String, `file`: Path): Unit = runInterruptible(server.policy.commands) { java.save(name, file) }\n\n/**\n * Puts text in a named buffer, replacing whatever was there.\n */\npublic suspend fun Buffers.`set`(name: String, contents: String): Unit = runInterruptible(server.policy.commands) { java.set(name, contents) }\n\n/**\n * What a buffer holds, without any line breaks it ends with.\n */\npublic suspend fun Buffers.show(name: String): String = runInterruptible(server.policy.commands) { java.show(name) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ClientOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport io.github.libtmux.ClientAttachment\nimport kotlin.Unit\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Detaches this client, leaving whatever it was attached to running.\n */\npublic suspend fun Client.detach(): Unit = runInterruptible(server.policy.commands) { java.detach() }\n\n/**\n * Detaches every other client, leaving this one attached.\n */\npublic suspend fun Client.detachOthers(): Unit = runInterruptible(server.policy.commands) { java.detachOthers() }\n\n/**\n * Takes a new capture and returns what this client is looking at now.\n */\npublic suspend fun Client.fetchAttachment(): ClientAttachment? = runInterruptible(server.policy.commands) { java.fetchAttachment().orElse(null) }\n\n/**\n * Asks tmux to redraw this client.\n */\npublic suspend fun Client.redraw(): Unit = runInterruptible(server.policy.commands) { java.redraw() }\n\n/**\n * Takes a new capture and returns this client as it is now.\n */\npublic suspend fun Client.refresh(): Client = runInterruptible(server.policy.commands) { Client(java.refresh(), this.server) }\n\n/**\n * Moves this client to another session.\n */\npublic suspend fun Client.switchTo(session: Session): Unit = runInterruptible(server.policy.commands) { java.switchTo(session.java) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/CommandChainOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport io.github.libtmux.batch.BatchResult\nimport kotlin.String\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Arranges the current window.\n */\npublic suspend fun CommandChain.arrange(layout: String): CommandChain = runInterruptible(server.policy.commands) { CommandChain(java.arrange(layout), this.server) }\n\n/**\n * Runs the whole chain in one tmux invocation, attributing each step.\n */\npublic suspend fun CommandChain.run(): BatchResult = runInterruptible(server.policy.commands) { java.run() }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/CommandsOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport kotlin.String\nimport kotlin.collections.List\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Every command, as tmux prints it.\n */\npublic suspend fun Commands.list(): List = runInterruptible(server.policy.commands) { java.list() }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ControlClientOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport io.github.libtmux.control.ControlReply\nimport kotlin.String\nimport kotlin.collections.List\nimport kotlin.time.Duration\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Runs one command and waits for its reply.\n */\npublic suspend fun ControlClient.send(vararg argv: String): ControlReply = runInterruptible(server.policy.commands) { java.send(*argv) }\n\n/**\n * Runs one command and waits for its reply.\n */\npublic suspend fun ControlClient.send(argv: List): ControlReply = runInterruptible(server.policy.commands) { java.send(argv) }\n\n/**\n * Runs one command and waits for its reply.\n */\npublic suspend fun ControlClient.send(argv: List, timeout: Duration): ControlReply = runInterruptible(server.policy.commands) { java.send(argv, timeout.toJavaDuration()) }\n\n/**\n * Stops a watch.\n */\npublic suspend fun ControlClient.unwatch(name: String): ControlReply = runInterruptible(server.policy.commands) { java.unwatch(name) }\n\n/**\n * Asks tmux to report a format whenever its value changes.\n */\npublic suspend fun ControlClient.watch(\n name: String,\n target: String,\n format: String,\n): ControlReply = runInterruptible(server.policy.commands) { java.watch(name, target, format) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/EnvironmentOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport kotlin.Boolean\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.collections.Map\nimport kotlin.collections.Set\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Every name set at this scope, in tmux's order.\n */\npublic suspend fun Environment.all(): Map = runInterruptible(server.policy.commands) { java.all() }\n\n/**\n * What a process started from this scope is actually handed, both scopes taken together.\n */\npublic suspend fun Environment.effective(): Map = runInterruptible(server.policy.commands) { java.effective() }\n\n/**\n * The value set for this name, or empty when it is removed or absent.\n */\npublic suspend fun Environment.`get`(name: String): String? = runInterruptible(server.policy.commands) { java.get(name).orElse(null) }\n\n/**\n * Whether new processes are told not to inherit this name.\n */\npublic suspend fun Environment.isRemoved(name: String): Boolean = runInterruptible(server.policy.commands) { java.isRemoved(name) }\n\n/**\n * Tells processes started after this not to inherit the name.\n */\npublic suspend fun Environment.remove(name: String): Unit = runInterruptible(server.policy.commands) { java.remove(name) }\n\n/**\n * Every name this scope tells a new process not to inherit.\n */\npublic suspend fun Environment.removed(): Set = runInterruptible(server.policy.commands) { java.removed() }\n\n/**\n * Sets a name to a literal value.\n */\npublic suspend fun Environment.`set`(name: String, `value`: String): Unit = runInterruptible(server.policy.commands) { java.set(name, value) }\n\n/**\n * Sets a name to what a tmux format expands to now.\n */\npublic suspend fun Environment.setExpanded(name: String, format: String): Unit = runInterruptible(server.policy.commands) { java.setExpanded(name, format) }\n\n/**\n * Removes the name from this scope, so it is neither set nor marked.\n */\npublic suspend fun Environment.unset(name: String): Unit = runInterruptible(server.policy.commands) { java.unset(name) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/HooksOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.collections.List\nimport kotlin.collections.Map\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Every hook at this scope, keyed by event, each with its commands in the order tmux runs them.\n */\npublic suspend fun Hooks.all(): Map> = runInterruptible(server.policy.commands) { java.all() }\n\n/**\n * As [.append(String, String)], with the command as words.\n */\npublic suspend fun Hooks.append(event: String, command: List): Unit = runInterruptible(server.policy.commands) { java.append(event, command) }\n\n/**\n * Binds another command to an event, after whatever is already bound to it.\n */\npublic suspend fun Hooks.append(event: String, command: String): Unit = runInterruptible(server.policy.commands) { java.append(event, command) }\n\n/**\n * Runs what is bound to an event now, without waiting for the event.\n */\npublic suspend fun Hooks.run(event: String): Unit = runInterruptible(server.policy.commands) { java.run(event) }\n\n/**\n * Binds a tmux command to an event at this scope, replacing anything already bound to it.\n */\npublic suspend fun Hooks.`set`(event: String, command: String): Unit = runInterruptible(server.policy.commands) { java.set(event, command) }\n\n/**\n * As [.set(String, String)], with the command as words rather than a line tmux parses.\n */\npublic suspend fun Hooks.`set`(event: String, command: List): Unit = runInterruptible(server.policy.commands) { java.set(event, command) }\n\n/**\n * Removes everything bound to an event at this scope.\n */\npublic suspend fun Hooks.unset(event: String): Unit = runInterruptible(server.policy.commands) { java.unset(event) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/KeysOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.collections.List\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Binds a key to a tmux command, given as its words.\n */\npublic suspend fun Keys.bind(key: String, command: List): Unit = runInterruptible(server.policy.commands) { java.bind(key, command) }\n\n/**\n * The bindings as tmux lists them, one per line.\n */\npublic suspend fun Keys.list(): List = runInterruptible(server.policy.commands) { java.list() }\n\n/**\n * Removes a key's binding.\n */\npublic suspend fun Keys.unbind(key: String): Unit = runInterruptible(server.policy.commands) { java.unbind(key) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/MessageLogOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport kotlin.String\nimport kotlin.collections.List\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * The log lines.\n */\npublic suspend fun MessageLog.lines(): List = runInterruptible(server.policy.commands) { java.lines() }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/OptionsOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport kotlin.Boolean\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.collections.Map\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Every option set at this scope, in tmux's order.\n */\npublic suspend fun Options.all(): Map = runInterruptible(server.policy.commands) { java.all() }\n\n/**\n * Adds to the end of a string option, rather than replacing it.\n */\npublic suspend fun Options.append(name: String, suffix: String): Unit = runInterruptible(server.policy.commands) { java.append(name, suffix) }\n\n/**\n * Every option tmux lists at this scope, including inherited built-in values.\n */\npublic suspend fun Options.effective(): Map = runInterruptible(server.policy.commands) { java.effective() }\n\n/**\n * Sets one option to what a tmux format comes to, rather than to the format itself.\n */\npublic suspend fun Options.setExpanded(name: String, format: String): Unit = runInterruptible(server.policy.commands) { java.setExpanded(name, format) }\n\n/**\n * Sets one option only if this scope does not already set it.\n */\npublic suspend fun Options.setIfAbsent(name: String, `value`: String): Boolean = runInterruptible(server.policy.commands) { java.setIfAbsent(name, value) }\n\n/**\n * Removes one option at this scope, so it falls back to whatever it inherits.\n */\npublic suspend fun Options.unset(name: String): Unit = runInterruptible(server.policy.commands) { java.unset(name) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PaneOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport io.github.libtmux.CaptureSpec\nimport io.github.libtmux.Dimensions\nimport io.github.libtmux.Direction\nimport io.github.libtmux.PaneMode\nimport io.github.libtmux.SplitSpec\nimport java.lang.Runnable\nimport java.nio.`file`.Path\nimport kotlin.Boolean\nimport kotlin.Int\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.collections.List\nimport kotlin.collections.Map\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Moves this pane into a window of its own, leaving tmux to name it.\n */\npublic suspend fun Pane.breakOut(): Window = runInterruptible(server.policy.commands) { Window(java.breakOut(), this.server) }\n\n/**\n * Moves this pane into a window of its own with the given name.\n */\npublic suspend fun Pane.breakOut(windowName: String): Window = runInterruptible(server.policy.commands) { Window(java.breakOut(windowName), this.server) }\n\n/**\n * This pane's visible content, one element per line.\n */\npublic suspend fun Pane.capture(): List = runInterruptible(server.policy.commands) { java.capture() }\n\n/**\n * Reads part of this pane according to a spec, which may be reused across panes.\n */\npublic suspend fun Pane.capture(spec: CaptureSpec): List = runInterruptible(server.policy.commands) { java.capture(spec) }\n\n/**\n * Discards this pane's scrollback.\n */\npublic suspend fun Pane.clearHistory(): Unit = runInterruptible(server.policy.commands) { java.clearHistory() }\n\n/**\n * Puts this pane into copy mode, where its scrollback can be navigated.\n */\npublic suspend fun Pane.copyMode(): Unit = runInterruptible(server.policy.commands) { java.copyMode() }\n\n/**\n * Whether this pane's process has exited, read fresh rather than from the capture.\n */\npublic suspend fun Pane.dead(): Boolean = runInterruptible(server.policy.commands) { java.dead() }\n\n/**\n * Leaves whichever mode this pane is in.\n */\npublic suspend fun Pane.exitMode(): Unit = runInterruptible(server.policy.commands) { java.exitMode() }\n\n/**\n * Expands a tmux format in this pane's context, and answers with what it came to.\n */\npublic suspend fun Pane.expand(format: String): String = runInterruptible(server.policy.commands) { java.expand(format) }\n\n/**\n * Moves this pane into another window, splitting it.\n */\npublic suspend fun Pane.joinTo(window: Window): Unit = runInterruptible(server.policy.commands) { java.joinTo(window.java) }\n\n/**\n * Closes this pane.\n */\npublic suspend fun Pane.kill(): Unit = runInterruptible(server.policy.commands) { java.kill() }\n\n/**\n * Which mode this pane is in at this moment, or empty when it is in none.\n */\npublic suspend fun Pane.mode(): PaneMode? = runInterruptible(server.policy.commands) { java.mode().orElse(null) }\n\n/**\n * Notes text that reached this pane without going through this handle, so a wait discounts its\n * echo the way it discounts text sent through [.sendLiteral].\n */\npublic suspend fun Pane.noteTyped(text: String): Unit = runInterruptible(server.policy.commands) { java.noteTyped(text) }\n\n/**\n * Pastes text into this pane as one block, leaving nothing behind on the server.\n */\npublic suspend fun Pane.paste(text: String): Unit = runInterruptible(server.policy.commands) { java.paste(text) }\n\n/**\n * As [.paste(String)], after a caller rechecks state once its private buffer is ready.\n */\npublic suspend fun Pane.paste(text: String, beforePaste: Runnable): Unit = runInterruptible(server.policy.commands) { java.paste(text, beforePaste) }\n\n/**\n * Pastes a named buffer into this pane, as though it had been typed.\n */\npublic suspend fun Pane.pasteBuffer(name: String): Unit = runInterruptible(server.policy.commands) { java.pasteBuffer(name) }\n\n/**\n * Sends everything this pane prints to a shell command, until [.stopPiping].\n */\npublic suspend fun Pane.pipeTo(shellCommand: String): Unit = runInterruptible(server.policy.commands) { java.pipeTo(shellCommand) }\n\n/**\n * Takes a new capture and returns this pane as it is now.\n */\npublic suspend fun Pane.refresh(): Pane = runInterruptible(server.policy.commands) { Pane(java.refresh(), this.server) }\n\n/**\n * Grows this pane by a number of cells in one direction.\n */\npublic suspend fun Pane.resize(direction: Direction, cells: Int): Unit = runInterruptible(server.policy.commands) { java.resize(direction, cells) }\n\n/**\n * Resizes this pane.\n */\npublic suspend fun Pane.resizeTo(size: Dimensions): Unit = runInterruptible(server.policy.commands) { java.resizeTo(size) }\n\n/**\n * Kills whatever runs here and starts the pane's default command again.\n */\npublic suspend fun Pane.respawn(): Unit = runInterruptible(server.policy.commands) { java.respawn() }\n\n/**\n * Kills whatever runs here and starts the given command instead.\n */\npublic suspend fun Pane.respawn(vararg command: String): Unit = runInterruptible(server.policy.commands) { java.respawn(*command) }\n\n/**\n * Restarts the configured pane process in a caller-supplied literal directory, resolved against\n * this process's working directory when relative.\n */\npublic suspend fun Pane.respawnIn(directory: Path): Unit = runInterruptible(server.policy.commands) { java.respawnIn(directory) }\n\n/**\n * Retitles this pane and returns its replacement capture.\n */\npublic suspend fun Pane.retitle(title: String): Pane = runInterruptible(server.policy.commands) { Pane(java.retitle(title), this.server) }\n\n/**\n * Makes this the active pane of its window.\n */\npublic suspend fun Pane.select(): Unit = runInterruptible(server.policy.commands) { java.select() }\n\n/**\n * Sends keys to this pane without pressing Enter.\n */\npublic suspend fun Pane.send(keys: String): Unit = runInterruptible(server.policy.commands) { java.send(keys) }\n\n/**\n * Sends an ordered group of key names to this pane, as tmux resolves them.\n */\npublic suspend fun Pane.sendKeys(keys: List): Unit = runInterruptible(server.policy.commands) { java.sendKeys(keys) }\n\n/**\n * As [.sendKeys(List)], after a caller validates the prepared input destination.\n */\npublic suspend fun Pane.sendKeys(keys: List, beforeSend: Runnable): Unit = runInterruptible(server.policy.commands) { java.sendKeys(keys, beforeSend) }\n\n/**\n * Sends a line to this pane and presses Enter, which is how a command gets run.\n */\npublic suspend fun Pane.sendLine(command: String): Unit = runInterruptible(server.policy.commands) { java.sendLine(command) }\n\n/**\n * Sends an ordered group of strings to this pane as the characters they spell.\n */\npublic suspend fun Pane.sendLiteral(keys: List): Unit = runInterruptible(server.policy.commands) { java.sendLiteral(keys) }\n\n/**\n * As [.sendLiteral(List)], after a caller validates the prepared input destination.\n */\npublic suspend fun Pane.sendLiteral(keys: List, beforeSend: Runnable): Unit = runInterruptible(server.policy.commands) { java.sendLiteral(keys, beforeSend) }\n\n/**\n * Splits this pane in half, putting the new one below it.\n */\npublic suspend fun Pane.split(): Pane = runInterruptible(server.policy.commands) { Pane(java.split(), this.server) }\n\n/**\n * Splits this pane according to a spec, which may be reused across panes.\n */\npublic suspend fun Pane.split(spec: SplitSpec): Pane = runInterruptible(server.policy.commands) { Pane(java.split(spec), this.server) }\n\n/**\n * Stops sending this pane's output anywhere.\n */\npublic suspend fun Pane.stopPiping(): Unit = runInterruptible(server.policy.commands) { java.stopPiping() }\n\n/**\n * Swaps this pane's position with another's.\n */\npublic suspend fun Pane.swapWith(other: Pane): Unit = runInterruptible(server.policy.commands) { java.swapWith(other.java) }\n\n/**\n * Reads validated tmux variables in this pane's format context.\n */\npublic suspend fun Pane.variables(names: List): Map = runInterruptible(server.policy.commands) { java.variables(names) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/PromptOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.collections.List\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Forgets what has been typed at the prompt.\n */\npublic suspend fun Prompt.clear(): Unit = runInterruptible(server.policy.commands) { java.clear() }\n\n/**\n * What has been typed at the prompt, oldest first.\n */\npublic suspend fun Prompt.history(): List = runInterruptible(server.policy.commands) { java.history() }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ServerOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport io.github.libtmux.PaneId\nimport io.github.libtmux.SessionId\nimport io.github.libtmux.SessionSpec\nimport io.github.libtmux.TmuxVersion\nimport io.github.libtmux.WindowId\nimport io.github.libtmux.query.FilterExpr\nimport io.github.libtmux.snapshot.ServerSnapshot\nimport io.github.libtmux.snapshot.WindowContext\nimport io.github.libtmux.transport.CommandResult\nimport java.nio.`file`.Path\nimport kotlin.Boolean\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.collections.List\nimport kotlin.collections.Map\nimport kotlin.time.Duration\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Captures every session a client is attached to.\n */\npublic suspend fun Server.attachedSessions(): List = runInterruptible(policy.commands) { java.attachedSessions().map { Session(it, this) } }\n\n/**\n * Captures every attached client.\n */\npublic suspend fun Server.clients(): List = runInterruptible(policy.commands) { java.clients().map { Client(it, this) } }\n\n/**\n * Runs one tmux command against this server.\n */\npublic suspend fun Server.cmd(vararg argv: String): CommandResult = runInterruptible(policy.commands) { java.cmd(*argv) }\n\n/**\n * Runs one tmux command against this server.\n */\npublic suspend fun Server.cmd(argv: List): CommandResult = runInterruptible(policy.commands) { java.cmd(argv) }\n\n/**\n * Runs one tmux command against this server, overriding the configured deadline.\n */\npublic suspend fun Server.cmd(argv: List, timeout: Duration): CommandResult = runInterruptible(policy.commands) { java.cmd(argv, timeout.toJavaDuration()) }\n\n/**\n * Expands a tmux format against the server, and answers with what it came to.\n */\npublic suspend fun Server.expand(format: String): String = runInterruptible(policy.commands) { java.expand(format) }\n\n/**\n * Whether a session with this name exists.\n */\npublic suspend fun Server.hasSession(name: String): Boolean = runInterruptible(policy.commands) { java.hasSession(name) }\n\n/**\n * Whether the server is running and answering.\n */\npublic suspend fun Server.isAlive(): Boolean = runInterruptible(policy.commands) { java.isAlive() }\n\n/**\n * Whether the server is running and answering, within a deadline of the caller's choosing.\n */\npublic suspend fun Server.isAlive(timeout: Duration): Boolean = runInterruptible(policy.commands) { java.isAlive(timeout.toJavaDuration()) }\n\n/**\n * Ends the tmux server and every session on it.\n */\npublic suspend fun Server.killServer(): Unit = runInterruptible(policy.commands) { java.killServer() }\n\n/**\n * Ends the tmux server and every session on it, within a deadline of the caller's choosing.\n */\npublic suspend fun Server.killServer(timeout: Duration): Unit = runInterruptible(policy.commands) { java.killServer(timeout.toJavaDuration()) }\n\n/**\n * Ends the session with this name, and everything in it.\n */\npublic suspend fun Server.killSession(name: String): Unit = runInterruptible(policy.commands) { java.killSession(name) }\n\n/**\n * Locks every client attached to this server.\n */\npublic suspend fun Server.lock(): Unit = runInterruptible(policy.commands) { java.lock() }\n\n/**\n * Creates a detached session and returns that exact session.\n */\npublic suspend fun Server.newSession(name: String): Session = runInterruptible(policy.commands) { Session(java.newSession(name), this) }\n\n/**\n * Creates a session according to a spec, which may be reused across servers.\n */\npublic suspend fun Server.newSession(spec: SessionSpec): Session = runInterruptible(policy.commands) { Session(java.newSession(spec), this) }\n\n/**\n * The pane with this id, captured now.\n */\npublic suspend fun Server.pane(id: PaneId): Pane? = runInterruptible(policy.commands) { java.pane(id).map { Pane(it, this) }.orElse(null) }\n\n/**\n * Chosen fields for every pane on the server, from one listing.\n */\npublic suspend fun Server.paneFields(names: List): Map> = runInterruptible(policy.commands) { java.paneFields(names) }\n\n/**\n * Captures every pane on the server.\n */\npublic suspend fun Server.panes(): List = runInterruptible(policy.commands) { java.panes().map { Pane(it, this) } }\n\n/**\n * The panes this expression matches, captured now.\n */\npublic suspend fun Server.panes(expression: FilterExpr): List = runInterruptible(policy.commands) { java.panes(expression).map { Pane(it, this) } }\n\n/**\n * Requires a running tmux daemon that answers the liveness probe.\n */\npublic suspend fun Server.requireAlive(): Unit = runInterruptible(policy.commands) { java.requireAlive() }\n\n/**\n * Runs a command that is expected to work, and raises when it did not.\n */\npublic suspend fun Server.run(argv: List): CommandResult = runInterruptible(policy.commands) { java.run(argv) }\n\n/**\n * The session with this name, captured now.\n */\npublic suspend fun Server.session(name: String): Session? = runInterruptible(policy.commands) { java.session(name).map { Session(it, this) }.orElse(null) }\n\n/**\n * The session with this id, captured now.\n */\npublic suspend fun Server.session(id: SessionId): Session? = runInterruptible(policy.commands) { java.session(id).map { Session(it, this) }.orElse(null) }\n\n/**\n * Every session, captured now.\n */\npublic suspend fun Server.sessions(): List = runInterruptible(policy.commands) { java.sessions().map { Session(it, this) } }\n\n/**\n * The sessions this expression matches, captured now.\n */\npublic suspend fun Server.sessions(expression: FilterExpr): List = runInterruptible(policy.commands) { java.sessions(expression).map { Session(it, this) } }\n\n/**\n * Captures the whole hierarchy in at most four listings, retrying once if the server is\n * replaced.\n */\npublic suspend fun Server.snapshot(): ServerSnapshot = runInterruptible(policy.commands) { java.snapshot() }\n\n/**\n * Runs a file of tmux commands, as a configuration file would be run.\n */\npublic suspend fun Server.sourceFile(`file`: Path): Unit = runInterruptible(policy.commands) { java.sourceFile(file) }\n\n/**\n * Reads only validated tmux variable names, never caller-authored format syntax.\n */\npublic suspend fun Server.variables(names: List): Map = runInterruptible(policy.commands) { java.variables(names) }\n\n/**\n * Which tmux this server is running.\n */\npublic suspend fun Server.version(): TmuxVersion = runInterruptible(policy.commands) { java.version() }\n\n/**\n * The winlink at this exact position, captured now.\n */\npublic suspend fun Server.window(context: WindowContext): Window? = runInterruptible(policy.commands) { java.window(context).map { Window(it, this) }.orElse(null) }\n\n/**\n * Captures every winlink, preserving each session and index placement.\n */\npublic suspend fun Server.windows(): List = runInterruptible(policy.commands) { java.windows().map { Window(it, this) } }\n\n/**\n * The winlinks this expression matches, captured now.\n */\npublic suspend fun Server.windows(expression: FilterExpr): List = runInterruptible(policy.commands) { java.windows(expression).map { Window(it, this) } }\n\n/**\n * Every winlink of the window with this id, captured now.\n */\npublic suspend fun Server.windows(id: WindowId): List = runInterruptible(policy.commands) { java.windows(id).map { Window(it, this) } }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/SessionOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport io.github.libtmux.WindowSpec\nimport kotlin.Int\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Detaches every client attached to this session, leaving the session running.\n */\npublic suspend fun Session.detachClients(): Unit = runInterruptible(server.policy.commands) { java.detachClients() }\n\n/**\n * Expands a tmux format in this session's context, and answers with what it came to.\n */\npublic suspend fun Session.expand(format: String): String = runInterruptible(server.policy.commands) { java.expand(format) }\n\n/**\n * Ends this session.\n */\npublic suspend fun Session.kill(): Unit = runInterruptible(server.policy.commands) { java.kill() }\n\n/**\n * Returns to the window that was active before this one.\n */\npublic suspend fun Session.lastWindow(): Unit = runInterruptible(server.policy.commands) { java.lastWindow() }\n\n/**\n * Creates a window in this session and returns that exact window.\n */\npublic suspend fun Session.newWindow(name: String): Window = runInterruptible(server.policy.commands) { Window(java.newWindow(name), this.server) }\n\n/**\n * Creates a window in this session according to a spec, which may be reused across sessions.\n */\npublic suspend fun Session.newWindow(spec: WindowSpec): Window = runInterruptible(server.policy.commands) { Window(java.newWindow(spec), this.server) }\n\n/**\n * Moves to the next window in this session, wrapping at the end.\n */\npublic suspend fun Session.nextWindow(): Unit = runInterruptible(server.policy.commands) { java.nextWindow() }\n\n/**\n * Moves to the previous window in this session, wrapping at the start.\n */\npublic suspend fun Session.previousWindow(): Unit = runInterruptible(server.policy.commands) { java.previousWindow() }\n\n/**\n * Takes a new capture and returns this session as it is now.\n */\npublic suspend fun Session.refresh(): Session = runInterruptible(server.policy.commands) { Session(java.refresh(), this.server) }\n\n/**\n * Renames this session and returns its replacement capture.\n */\npublic suspend fun Session.rename(name: String): Session = runInterruptible(server.policy.commands) { Session(java.rename(name), this.server) }\n\n/**\n * Makes a window of this session the active one.\n */\npublic suspend fun Session.selectWindow(window: Window): Unit = runInterruptible(server.policy.commands) { java.selectWindow(window.java) }\n\n/**\n * Sets the scrollback retained by panes created in this session.\n */\npublic suspend fun Session.setHistoryLimit(lines: Int): Unit = runInterruptible(server.policy.commands) { java.setHistoryLimit(lines) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/ShellOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.collections.List\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Runs a shell command and answers with what it printed.\n */\npublic suspend fun Shell.capturing(command: String): List = runInterruptible(server.policy.commands) { java.capturing(command) }\n\n/**\n * Runs one tmux command when a shell command succeeds.\n */\npublic suspend fun Shell.choose(condition: String, whenTrue: String): Unit = runInterruptible(server.policy.commands) { java.choose(condition, whenTrue) }\n\n/**\n * Runs one tmux command or another, according to whether a shell command succeeds.\n */\npublic suspend fun Shell.choose(\n condition: String,\n whenTrue: String,\n whenFalse: String,\n): Unit = runInterruptible(server.policy.commands) { java.choose(condition, whenTrue, whenFalse) }\n\n/**\n * Runs a shell command for its effect.\n */\npublic suspend fun Shell.run(command: String): Unit = runInterruptible(server.policy.commands) { java.run(command) }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/WindowOperations.kt":"// GENERATED by build-logic/codegen from operation-catalog.json. Do not edit;\n// regenerate with the generateOperationWrappers Gradle task.\npackage io.github.libtmux.kotlin\n\nimport io.github.libtmux.Dimensions\nimport io.github.libtmux.Layout\nimport io.github.libtmux.SplitSpec\nimport io.github.libtmux.WindowLayout\nimport kotlin.Int\nimport kotlin.String\nimport kotlin.Unit\nimport kotlin.time.toJavaDuration\nimport kotlinx.coroutines.runInterruptible\n\n/**\n * Restores an exact arrangement previously read from [.layout()].\n */\npublic suspend fun Window.applyLayout(layout: WindowLayout): Unit = runInterruptible(server.policy.commands) { java.applyLayout(layout) }\n\n/**\n * As [.applyLayout(WindowLayout)], for a layout held as text — one saved to a file, say.\n */\npublic suspend fun Window.applyLayout(layout: String): Unit = runInterruptible(server.policy.commands) { java.applyLayout(layout) }\n\n/**\n * Shows a popup over this window, running a command in it.\n */\npublic suspend fun Window.displayPopup(shellCommand: String): Unit = runInterruptible(server.policy.commands) { java.displayPopup(shellCommand) }\n\n/**\n * Expands a tmux format in this window's context, and answers with what it came to.\n */\npublic suspend fun Window.expand(format: String): String = runInterruptible(server.policy.commands) { java.expand(format) }\n\n/**\n * Closes this window.\n */\npublic suspend fun Window.kill(): Unit = runInterruptible(server.policy.commands) { java.kill() }\n\n/**\n * Links this window into another session, so one window sits in both.\n */\npublic suspend fun Window.linkTo(session: Session): Unit = runInterruptible(server.policy.commands) { java.linkTo(session.java) }\n\n/**\n * Moves this window into another session.\n */\npublic suspend fun Window.moveTo(session: Session): Unit = runInterruptible(server.policy.commands) { java.moveTo(session.java) }\n\n/**\n * Moves this window to an exact index in another session.\n */\npublic suspend fun Window.moveTo(session: Session, index: Int): Unit = runInterruptible(server.policy.commands) { java.moveTo(session.java, index) }\n\n/**\n * Moves to the next built-in layout, as tmux's own binding does.\n */\npublic suspend fun Window.nextLayout(): Unit = runInterruptible(server.policy.commands) { java.nextLayout() }\n\n/**\n * Moves to the previous built-in layout, as tmux's own binding does.\n */\npublic suspend fun Window.previousLayout(): Unit = runInterruptible(server.policy.commands) { java.previousLayout() }\n\n/**\n * Takes a new capture and returns this winlink as it is now.\n */\npublic suspend fun Window.refresh(): Window = runInterruptible(server.policy.commands) { Window(java.refresh(), this.server) }\n\n/**\n * Renames this window and returns its replacement capture.\n */\npublic suspend fun Window.rename(name: String): Window = runInterruptible(server.policy.commands) { Window(java.rename(name), this.server) }\n\n/**\n * Resizes this window in terminal cells.\n */\npublic suspend fun Window.resizeTo(size: Dimensions): Unit = runInterruptible(server.policy.commands) { java.resizeTo(size) }\n\n/**\n * Kills what is running in this window and starts it again.\n */\npublic suspend fun Window.respawn(): Unit = runInterruptible(server.policy.commands) { java.respawn() }\n\n/**\n * Rotates the panes within this window.\n */\npublic suspend fun Window.rotate(): Unit = runInterruptible(server.policy.commands) { java.rotate() }\n\n/**\n * Makes this the active window of its session.\n */\npublic suspend fun Window.select(): Unit = runInterruptible(server.policy.commands) { java.select() }\n\n/**\n * Rearranges this window's panes into one of tmux's built-in layouts.\n */\npublic suspend fun Window.selectLayout(layout: Layout): Unit = runInterruptible(server.policy.commands) { java.selectLayout(layout) }\n\n/**\n * Splits this window's active pane in half, putting the new one below it.\n */\npublic suspend fun Window.split(): Pane = runInterruptible(server.policy.commands) { Pane(java.split(), this.server) }\n\n/**\n * Splits this window's active pane according to a spec, which may be reused across windows.\n */\npublic suspend fun Window.split(spec: SplitSpec): Pane = runInterruptible(server.policy.commands) { Pane(java.split(spec), this.server) }\n\n/**\n * Stops copying input between this window's panes.\n */\npublic suspend fun Window.stopSynchronizingPanes(): Unit = runInterruptible(server.policy.commands) { java.stopSynchronizingPanes() }\n\n/**\n * Copies input to one pane into every pane in this window, until [.stopSynchronizingPanes].\n */\npublic suspend fun Window.synchronizePanes(): Unit = runInterruptible(server.policy.commands) { java.synchronizePanes() }\n\n/**\n * Removes this link, leaving the window wherever else it is linked.\n */\npublic suspend fun Window.unlink(): Unit = runInterruptible(server.policy.commands) { java.unlink() }\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/ClientFields.kt":"// GENERATED by build-logic/codegen from field-catalog.tsv. Do not edit;\n// regenerate with the generateFieldProperties Gradle task.\npackage io.github.libtmux.kotlin.query\n\nimport io.github.libtmux.Client_\nimport io.github.libtmux.Session\nimport io.github.libtmux.Client as LibtmuxClient\nimport io.github.libtmux.kotlin.Client as KotlinClient\n\n/**\n * The client's terminal name, which is how tmux addresses it.\n */\npublic val KotlinClient.Companion.name: TextField\n get() = TextField(Client_.name())\n\n/**\n * The session this client was attached to, if any.\n */\npublic val KotlinClient.Companion.session: ToOneField\n get() = ToOneField(Client_.session())\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/PaneFields.kt":"// GENERATED by build-logic/codegen from field-catalog.tsv. Do not edit;\n// regenerate with the generateFieldProperties Gradle task.\npackage io.github.libtmux.kotlin.query\n\nimport io.github.libtmux.Pane_\nimport io.github.libtmux.Pane as LibtmuxPane\nimport io.github.libtmux.kotlin.Pane as KotlinPane\n\n/**\n * The pane id.\n */\npublic val KotlinPane.Companion.id: TextField\n get() = TextField(Pane_.id())\n\n/**\n * The command tmux reported running in the pane.\n */\npublic val KotlinPane.Companion.command: TextField\n get() = TextField(Pane_.command())\n\n/**\n * The pane's position in its window.\n */\npublic val KotlinPane.Companion.index: NumberField\n get() = NumberField(Pane_.index())\n\n/**\n * Whether this was its window's active pane.\n */\npublic val KotlinPane.Companion.active: FlagField\n get() = FlagField(Pane_.active())\n\n/**\n * The pane's title, which a program running in it can set.\n */\npublic val KotlinPane.Companion.title: TextField\n get() = TextField(Pane_.title())\n\n/**\n * The pane's working directory, as the text tmux reported.\n */\npublic val KotlinPane.Companion.path: TextField\n get() = TextField(Pane_.path())\n\n/**\n * The pane's width, in cells.\n */\npublic val KotlinPane.Companion.width: NumberField\n get() = NumberField(Pane_.width())\n\n/**\n * The pane's height, in cells.\n */\npublic val KotlinPane.Companion.height: NumberField\n get() = NumberField(Pane_.height())\n\n/**\n * The column of the pane's left edge in its window.\n */\npublic val KotlinPane.Companion.left: NumberField\n get() = NumberField(Pane_.left())\n\n/**\n * The row of the pane's top edge in its window.\n */\npublic val KotlinPane.Companion.top: NumberField\n get() = NumberField(Pane_.top())\n\n/**\n * Whether the pane touches the top of its window.\n */\npublic val KotlinPane.Companion.atTop: FlagField\n get() = FlagField(Pane_.atTop())\n\n/**\n * Whether the pane touches the bottom of its window.\n */\npublic val KotlinPane.Companion.atBottom: FlagField\n get() = FlagField(Pane_.atBottom())\n\n/**\n * Whether the pane touches the left of its window.\n */\npublic val KotlinPane.Companion.atLeft: FlagField\n get() = FlagField(Pane_.atLeft())\n\n/**\n * Whether the pane touches the right of its window.\n */\npublic val KotlinPane.Companion.atRight: FlagField\n get() = FlagField(Pane_.atRight())\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/SessionFields.kt":"// GENERATED by build-logic/codegen from field-catalog.tsv. Do not edit;\n// regenerate with the generateFieldProperties Gradle task.\npackage io.github.libtmux.kotlin.query\n\nimport io.github.libtmux.Session_\nimport io.github.libtmux.Window\nimport io.github.libtmux.Session as LibtmuxSession\nimport io.github.libtmux.kotlin.Session as KotlinSession\n\n/**\n * The session id, as text, so it can be compared and listed.\n */\npublic val KotlinSession.Companion.id: TextField\n get() = TextField(Session_.id())\n\n/**\n * The session name.\n */\npublic val KotlinSession.Companion.name: TextField\n get() = TextField(Session_.name())\n\n/**\n * Whether a client was attached when this was captured.\n */\npublic val KotlinSession.Companion.attached: FlagField\n get() = FlagField(Session_.attached())\n\n/**\n * How many windows this session holds.\n */\npublic val KotlinSession.Companion.windowCount: NumberField\n get() = NumberField(Session_.windowCount())\n\n/**\n * This session's windows.\n */\npublic val KotlinSession.Companion.windows: ToManyField\n get() = ToManyField(Session_.windows())\n","libtmux-kotlin/build/generated/sources/operations/kotlin/io/github/libtmux/kotlin/query/WindowFields.kt":"// GENERATED by build-logic/codegen from field-catalog.tsv. Do not edit;\n// regenerate with the generateFieldProperties Gradle task.\npackage io.github.libtmux.kotlin.query\n\nimport io.github.libtmux.Pane\nimport io.github.libtmux.Session\nimport io.github.libtmux.Window_\nimport io.github.libtmux.Window as LibtmuxWindow\nimport io.github.libtmux.kotlin.Window as KotlinWindow\n\n/**\n * The underlying window id, shared by every link to it.\n */\npublic val KotlinWindow.Companion.id: TextField\n get() = TextField(Window_.id())\n\n/**\n * The window name.\n */\npublic val KotlinWindow.Companion.name: TextField\n get() = TextField(Window_.name())\n\n/**\n * Where this link sits in its session.\n */\npublic val KotlinWindow.Companion.index: NumberField\n get() = NumberField(Window_.index())\n\n/**\n * Whether this was its session's active window.\n */\npublic val KotlinWindow.Companion.active: FlagField\n get() = FlagField(Window_.active())\n\n/**\n * Whether the underlying window is linked into more than one session.\n */\npublic val KotlinWindow.Companion.linked: FlagField\n get() = FlagField(Window_.linked())\n\n/**\n * The window's width, in cells.\n */\npublic val KotlinWindow.Companion.width: NumberField\n get() = NumberField(Window_.width())\n\n/**\n * The window's height, in cells.\n */\npublic val KotlinWindow.Companion.height: NumberField\n get() = NumberField(Window_.height())\n\n/**\n * How many panes this link holds.\n */\npublic val KotlinWindow.Companion.paneCount: NumberField\n get() = NumberField(Window_.paneCount())\n\n/**\n * This link's panes.\n */\npublic val KotlinWindow.Companion.panes: ToManyField\n get() = ToManyField(Window_.panes())\n\n/**\n * The session this link belongs to.\n */\npublic val KotlinWindow.Companion.session: ToOneField\n get() = ToOneField(Window_.session())\n"},"repo":"libtmux/libtmux-java"} diff --git a/site/src/data/api/lua.json b/site/src/data/api/lua.json index 525342377..fda489e3b 100644 --- a/site/src/data/api/lua.json +++ b/site/src/data/api/lua.json @@ -1 +1 @@ -{"port":"lua","repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractor":"@libtmux/api-model@0.0.1 (scripts/export-docs v1; LuaLS 3.19.1)","sources":[{"product":"core","package":"libtmux","version":"0.1.0alpha1-1","repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"}],"symbols":[{"id":"libtmux.BreakPaneOptions","publicId":"libtmux.BreakPaneOptions","name":"BreakPaneOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":735,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-breakpaneoptions"},{"id":"libtmux.BreakPaneOptions.name","publicId":"libtmux.BreakPaneOptions.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.BreakPaneOptions","signatures":[],"doc":{"summary":"Nonempty native Window name; omitted preserves native default naming."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/topology.lua","line":736,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-breakpaneoptions-name"},{"id":"libtmux.BreakPaneOptions.process","publicId":"libtmux.BreakPaneOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.BreakPaneOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.TopologyOptions","slug":"libtmux-breakpaneoptions-process"},{"id":"libtmux.BreakPaneOptions.select","publicId":"libtmux.BreakPaneOptions.select","name":"select","kind":"attribute","modifiers":[],"parent":"libtmux.BreakPaneOptions","signatures":[],"doc":{"summary":"Defaults to false; source removal may force native selection."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":737,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-breakpaneoptions-select"},{"id":"libtmux.Buffer","publicId":"libtmux.Buffer","name":"Buffer","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":512,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-buffer"},{"id":"libtmux.Buffer:reference","publicId":"libtmux.Buffer:reference","name":"reference","kind":"method","modifiers":[],"parent":"libtmux.Buffer","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Reference?, libtmux.Error?","params":[],"returns":"libtmux.Reference?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":384,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-buffer-reference"},{"id":"libtmux.Buffer:snapshot","publicId":"libtmux.Buffer:snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"libtmux.Buffer","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":386,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-buffer-snapshot"},{"id":"libtmux.BufferOptions","publicId":"libtmux.BufferOptions","name":"BufferOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/buffer.lua","line":291,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-bufferoptions"},{"id":"libtmux.BufferOptions.process","publicId":"libtmux.BufferOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.BufferOptions","signatures":[],"doc":{"summary":"Output limit is at most one MiB."},"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/buffer.lua","line":292,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-bufferoptions-process"},{"id":"libtmux.BufferValue","publicId":"libtmux.BufferValue","name":"BufferValue","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/buffer.lua","line":285,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-buffervalue"},{"id":"libtmux.BufferValue.bytes","publicId":"libtmux.BufferValue.bytes","name":"bytes","kind":"attribute","modifiers":[],"parent":"libtmux.BufferValue","signatures":[],"doc":{"summary":"Exact buffer bytes, including NUL and trailing newlines."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/buffer.lua","line":287,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-buffervalue-bytes"},{"id":"libtmux.BufferValue.name","publicId":"libtmux.BufferValue.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.BufferValue","signatures":[],"doc":{"summary":"Explicit current buffer name; not an incarnation identifier."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/buffer.lua","line":286,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-buffervalue-name"},{"id":"libtmux.BufferValue:text","publicId":"libtmux.BufferValue:text","name":"text","kind":"method","modifiers":[],"parent":"libtmux.BufferValue","signatures":[{"raw":"fun(self: libtmux.BufferValue):string?, libtmux.Error?","params":[],"returns":"string?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/buffer.lua","line":288,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-buffervalue-text"},{"id":"libtmux.Capture","publicId":"libtmux.Capture","name":"Capture","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":594,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-capture"},{"id":"libtmux.Capture.bytes","publicId":"libtmux.Capture.bytes","name":"bytes","kind":"attribute","modifiers":[],"parent":"libtmux.Capture","signatures":[],"doc":{"summary":"Exact capture stdout, including trailing newlines."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/pane.lua","line":595,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-capture-bytes"},{"id":"libtmux.Capture.target","publicId":"libtmux.Capture.target","name":"target","kind":"attribute","modifiers":[],"parent":"libtmux.Capture","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Reference","source":{"file":"lua/libtmux/_internal/pane.lua","line":596,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-capture-target"},{"id":"libtmux.Capture:text","publicId":"libtmux.Capture:text","name":"text","kind":"method","modifiers":[],"parent":"libtmux.Capture","signatures":[{"raw":"fun(self: libtmux.Capture):string?, libtmux.Error?","params":[],"returns":"string?, libtmux.Error?"}],"doc":{"summary":"Strict UTF-8; no normalization."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":597,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-capture-text"},{"id":"libtmux.CaptureOptions","publicId":"libtmux.CaptureOptions","name":"CaptureOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":602,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions"},{"id":"libtmux.CaptureOptions.alternate_screen","publicId":"libtmux.CaptureOptions.alternate_screen","name":"alternate_screen","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":610,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-alternate_screen"},{"id":"libtmux.CaptureOptions.end_line","publicId":"libtmux.CaptureOptions.end_line","name":"end_line","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"Mutually exclusive with history_lines."},"product":"core","apiScope":"exported","type":"(integer|\"-\")?","source":{"file":"lua/libtmux/_internal/pane.lua","line":605,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-end_line"},{"id":"libtmux.CaptureOptions.escape_nonprintable","publicId":"libtmux.CaptureOptions.escape_nonprintable","name":"escape_nonprintable","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":609,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-escape_nonprintable"},{"id":"libtmux.CaptureOptions.escape_sequences","publicId":"libtmux.CaptureOptions.escape_sequences","name":"escape_sequences","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":608,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-escape_sequences"},{"id":"libtmux.CaptureOptions.history_lines","publicId":"libtmux.CaptureOptions.history_lines","name":"history_lines","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"Additional history rows; defaults to visible screen only."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/pane.lua","line":603,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-history_lines"},{"id":"libtmux.CaptureOptions.hyperlinks_only","publicId":"libtmux.CaptureOptions.hyperlinks_only","name":"hyperlinks_only","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"List native URLs instead of cell text; requires tmux 3.7."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":615,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-hyperlinks_only"},{"id":"libtmux.CaptureOptions.ignore_missing_alternate","publicId":"libtmux.CaptureOptions.ignore_missing_alternate","name":"ignore_missing_alternate","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"Suppress the missing alternate-grid error."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":614,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-ignore_missing_alternate"},{"id":"libtmux.CaptureOptions.join_lines","publicId":"libtmux.CaptureOptions.join_lines","name":"join_lines","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":606,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-join_lines"},{"id":"libtmux.CaptureOptions.line_flags","publicId":"libtmux.CaptureOptions.line_flags","name":"line_flags","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"Prefix rows with native flags; requires tmux 3.7."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":617,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-line_flags"},{"id":"libtmux.CaptureOptions.line_numbers","publicId":"libtmux.CaptureOptions.line_numbers","name":"line_numbers","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"Prefix rows with their native offsets; requires tmux 3.7."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":616,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-line_numbers"},{"id":"libtmux.CaptureOptions.mode_screen","publicId":"libtmux.CaptureOptions.mode_screen","name":"mode_screen","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"Requires tmux 3.6."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":611,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-mode_screen"},{"id":"libtmux.CaptureOptions.pending_escape_sequences","publicId":"libtmux.CaptureOptions.pending_escape_sequences","name":"pending_escape_sequences","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"Capture incomplete input instead of screen cells."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":613,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-pending_escape_sequences"},{"id":"libtmux.CaptureOptions.preserve_spaces","publicId":"libtmux.CaptureOptions.preserve_spaces","name":"preserve_spaces","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":607,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-preserve_spaces"},{"id":"libtmux.CaptureOptions.process","publicId":"libtmux.CaptureOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/pane.lua","line":600,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.PaneOptions","slug":"libtmux-captureoptions-process"},{"id":"libtmux.CaptureOptions.start_line","publicId":"libtmux.CaptureOptions.start_line","name":"start_line","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"Mutually exclusive with history_lines."},"product":"core","apiScope":"exported","type":"(integer|\"-\")?","source":{"file":"lua/libtmux/_internal/pane.lua","line":604,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-start_line"},{"id":"libtmux.CaptureOptions.trim_empty_cells","publicId":"libtmux.CaptureOptions.trim_empty_cells","name":"trim_empty_cells","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"Requires tmux 3.4."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":612,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-trim_empty_cells"},{"id":"libtmux.ClearHistoryOptions","publicId":"libtmux.ClearHistoryOptions","name":"ClearHistoryOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":619,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-clearhistoryoptions"},{"id":"libtmux.ClearHistoryOptions.clear_hyperlinks","publicId":"libtmux.ClearHistoryOptions.clear_hyperlinks","name":"clear_hyperlinks","kind":"attribute","modifiers":[],"parent":"libtmux.ClearHistoryOptions","signatures":[],"doc":{"summary":"Also clear hyperlink storage; requires tmux 3.4."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":620,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-clearhistoryoptions-clear_hyperlinks"},{"id":"libtmux.ClearHistoryOptions.process","publicId":"libtmux.ClearHistoryOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.ClearHistoryOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/pane.lua","line":600,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.PaneOptions","slug":"libtmux-clearhistoryoptions-process"},{"id":"libtmux.Client","publicId":"libtmux.Client","name":"Client","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":509,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-client"},{"id":"libtmux.Client:reference","publicId":"libtmux.Client:reference","name":"reference","kind":"method","modifiers":[],"parent":"libtmux.Client","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Reference?, libtmux.Error?","params":[],"returns":"libtmux.Reference?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":384,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-client-reference"},{"id":"libtmux.Client:snapshot","publicId":"libtmux.Client:snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"libtmux.Client","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":386,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-client-snapshot"},{"id":"libtmux.ClientOptions","publicId":"libtmux.ClientOptions","name":"ClientOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/client.lua","line":261,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-clientoptions"},{"id":"libtmux.ClientOptions.process","publicId":"libtmux.ClientOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.ClientOptions","signatures":[],"doc":{"summary":"Limits apply to each subprocess; one MiB maximum."},"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/client.lua","line":262,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-clientoptions-process"},{"id":"libtmux.ClientSelector","publicId":"libtmux.ClientSelector","name":"ClientSelector","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/client.lua","line":257,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-clientselector"},{"id":"libtmux.ClientSelector.name","publicId":"libtmux.ClientSelector.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.ClientSelector","signatures":[],"doc":{"summary":"Exact observed client name; selects its current attachment."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/client.lua","line":258,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-clientselector-name"},{"id":"libtmux.ClientSelector.tty","publicId":"libtmux.ClientSelector.tty","name":"tty","kind":"attribute","modifiers":[],"parent":"libtmux.ClientSelector","signatures":[],"doc":{"summary":"Exact observed TTY, including empty for a client without a terminal."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/client.lua","line":259,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-clientselector-tty"},{"id":"libtmux.CommandBatchOptions","publicId":"libtmux.CommandBatchOptions","name":"CommandBatchOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":593,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandbatchoptions"},{"id":"libtmux.CommandBatchOptions.concurrency","publicId":"libtmux.CommandBatchOptions.concurrency","name":"concurrency","kind":"attribute","modifiers":[],"parent":"libtmux.CommandBatchOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/server.lua","line":594,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandbatchoptions-concurrency"},{"id":"libtmux.CommandBatchOptions.process","publicId":"libtmux.CommandBatchOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.CommandBatchOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CommandOptions)?","source":{"file":"lua/libtmux/_internal/server.lua","line":595,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandbatchoptions-process"},{"id":"libtmux.CommandOptions","publicId":"libtmux.CommandOptions","name":"CommandOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":577,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoptions"},{"id":"libtmux.CommandOptions.cwd","publicId":"libtmux.CommandOptions.cwd","name":"cwd","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOptions","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/server.lua","line":579,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoptions-cwd"},{"id":"libtmux.CommandOptions.deadline","publicId":"libtmux.CommandOptions.deadline","name":"deadline","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOptions","signatures":[],"product":"core","apiScope":"exported","type":"number?","source":{"file":"lua/libtmux/_internal/server.lua","line":582,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoptions-deadline"},{"id":"libtmux.CommandOptions.drain_timeout","publicId":"libtmux.CommandOptions.drain_timeout","name":"drain_timeout","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/server.lua","line":584,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoptions-drain_timeout"},{"id":"libtmux.CommandOptions.env","publicId":"libtmux.CommandOptions.env","name":"env","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOptions","signatures":[],"doc":{"summary":"Explicit process environment entries."},"product":"core","apiScope":"exported","type":"string[]?","source":{"file":"lua/libtmux/_internal/server.lua","line":580,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoptions-env"},{"id":"libtmux.CommandOptions.kill_timeout","publicId":"libtmux.CommandOptions.kill_timeout","name":"kill_timeout","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/server.lua","line":585,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoptions-kill_timeout"},{"id":"libtmux.CommandOptions.max_output_bytes","publicId":"libtmux.CommandOptions.max_output_bytes","name":"max_output_bytes","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/server.lua","line":583,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoptions-max_output_bytes"},{"id":"libtmux.CommandOptions.stdin","publicId":"libtmux.CommandOptions.stdin","name":"stdin","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOptions","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/server.lua","line":578,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoptions-stdin"},{"id":"libtmux.CommandOptions.timeout","publicId":"libtmux.CommandOptions.timeout","name":"timeout","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOptions","signatures":[],"product":"core","apiScope":"exported","type":"number?","source":{"file":"lua/libtmux/_internal/server.lua","line":581,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoptions-timeout"},{"id":"libtmux.CommandOutcome","publicId":"libtmux.CommandOutcome","name":"CommandOutcome","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":597,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoutcome"},{"id":"libtmux.CommandOutcome.effect","publicId":"libtmux.CommandOutcome.effect","name":"effect","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOutcome","signatures":[],"product":"core","apiScope":"exported","type":"\"completed\"|\"not_sent\"|\"unknown\"","source":{"file":"lua/libtmux/_internal/server.lua","line":599,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoutcome-effect"},{"id":"libtmux.CommandOutcome.error","publicId":"libtmux.CommandOutcome.error","name":"error","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOutcome","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.Error)?","source":{"file":"lua/libtmux/_internal/server.lua","line":601,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoutcome-error"},{"id":"libtmux.CommandOutcome.status","publicId":"libtmux.CommandOutcome.status","name":"status","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOutcome","signatures":[],"product":"core","apiScope":"exported","type":"\"completed\"|\"failed\"|\"skipped\"|\"unknown\"","source":{"file":"lua/libtmux/_internal/server.lua","line":598,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoutcome-status"},{"id":"libtmux.CommandOutcome.value","publicId":"libtmux.CommandOutcome.value","name":"value","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOutcome","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CommandResult)?","source":{"file":"lua/libtmux/_internal/server.lua","line":600,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoutcome-value"},{"id":"libtmux.CommandResult","publicId":"libtmux.CommandResult","name":"CommandResult","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":587,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandresult"},{"id":"libtmux.CommandResult.exit_code","publicId":"libtmux.CommandResult.exit_code","name":"exit_code","kind":"attribute","modifiers":[],"parent":"libtmux.CommandResult","signatures":[],"product":"core","apiScope":"exported","type":"integer","source":{"file":"lua/libtmux/_internal/server.lua","line":590,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandresult-exit_code"},{"id":"libtmux.CommandResult.signal","publicId":"libtmux.CommandResult.signal","name":"signal","kind":"attribute","modifiers":[],"parent":"libtmux.CommandResult","signatures":[],"product":"core","apiScope":"exported","type":"integer","source":{"file":"lua/libtmux/_internal/server.lua","line":591,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandresult-signal"},{"id":"libtmux.CommandResult.stderr","publicId":"libtmux.CommandResult.stderr","name":"stderr","kind":"attribute","modifiers":[],"parent":"libtmux.CommandResult","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":589,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandresult-stderr"},{"id":"libtmux.CommandResult.stdout","publicId":"libtmux.CommandResult.stdout","name":"stdout","kind":"attribute","modifiers":[],"parent":"libtmux.CommandResult","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":588,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandresult-stdout"},{"id":"libtmux.CompiledQuery","publicId":"libtmux.CompiledQuery","name":"CompiledQuery","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.CompiledQuery","source":{"file":"lua/libtmux/query.lua","line":288,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-compiledquery"},{"id":"libtmux.Configurable","publicId":"libtmux.Configurable","name":"Configurable","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":390,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable"},{"id":"libtmux.Configurable:get_hook","publicId":"libtmux.Configurable:get_hook","name":"get_hook","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":402,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable-get_hook"},{"id":"libtmux.Configurable:get_option","publicId":"libtmux.Configurable:get_option","name":"get_option","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":391,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable-get_option"},{"id":"libtmux.Configurable:list_hooks","publicId":"libtmux.Configurable:list_hooks","name":"list_hooks","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Configurable, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":404,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable-list_hooks"},{"id":"libtmux.Configurable:list_options","publicId":"libtmux.Configurable:list_options","name":"list_options","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Configurable, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":394,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable-list_options"},{"id":"libtmux.Configurable:reference","publicId":"libtmux.Configurable:reference","name":"reference","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Reference?, libtmux.Error?","params":[],"returns":"libtmux.Reference?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":384,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-configurable-reference"},{"id":"libtmux.Configurable:run_hook","publicId":"libtmux.Configurable:run_hook","name":"run_hook","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.RunHookOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.RunHookOptions?","default":"nil","doc":" Running a hook reads only its handle's own scope."}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":412,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable-run_hook"},{"id":"libtmux.Configurable:set_hook","publicId":"libtmux.Configurable:set_hook","name":"set_hook","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, value: libtmux.HookProgram, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"libtmux.HookProgram"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":406,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable-set_hook"},{"id":"libtmux.Configurable:set_option","publicId":"libtmux.Configurable:set_option","name":"set_option","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, value: boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":396,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable-set_option"},{"id":"libtmux.Configurable:snapshot","publicId":"libtmux.Configurable:snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":386,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-configurable-snapshot"},{"id":"libtmux.Configurable:unset_hook","publicId":"libtmux.Configurable:unset_hook","name":"unset_hook","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":409,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable-unset_hook"},{"id":"libtmux.Configurable:unset_option","publicId":"libtmux.Configurable:unset_option","name":"unset_option","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":399,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable-unset_option"},{"id":"libtmux.ConnectOptions","publicId":"libtmux.ConnectOptions","name":"ConnectOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":565,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-connectoptions"},{"id":"libtmux.ConnectOptions.binary","publicId":"libtmux.ConnectOptions.binary","name":"binary","kind":"attribute","modifiers":[],"parent":"libtmux.ConnectOptions","signatures":[],"doc":{"summary":"Absolute tmux executable path."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":566,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-connectoptions-binary"},{"id":"libtmux.ConnectOptions.config_path","publicId":"libtmux.ConnectOptions.config_path","name":"config_path","kind":"attribute","modifiers":[],"parent":"libtmux.ConnectOptions","signatures":[],"doc":{"summary":"Absolute configuration path."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/server.lua","line":568,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-connectoptions-config_path"},{"id":"libtmux.ConnectOptions.socket_path","publicId":"libtmux.ConnectOptions.socket_path","name":"socket_path","kind":"attribute","modifiers":[],"parent":"libtmux.ConnectOptions","signatures":[],"doc":{"summary":"Absolute existing daemon socket path."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":567,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-connectoptions-socket_path"},{"id":"libtmux.CopyModeOptions","publicId":"libtmux.CopyModeOptions","name":"CopyModeOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":625,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-copymodeoptions"},{"id":"libtmux.CopyModeOptions.page_up","publicId":"libtmux.CopyModeOptions.page_up","name":"page_up","kind":"attribute","modifiers":[],"parent":"libtmux.CopyModeOptions","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":626,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-copymodeoptions-page_up"},{"id":"libtmux.CopyModeOptions.process","publicId":"libtmux.CopyModeOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.CopyModeOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/pane.lua","line":600,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.PaneOptions","slug":"libtmux-copymodeoptions-process"},{"id":"libtmux.Creation","publicId":"libtmux.Creation","name":"Creation","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/domain.lua","line":481,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creation"},{"id":"libtmux.Creation.created","publicId":"libtmux.Creation.created","name":"created","kind":"attribute","modifiers":[],"parent":"libtmux.Creation","signatures":[],"doc":{"summary":"Names of newly created entities in this receipt."},"product":"core","apiScope":"exported","type":"string[]","source":{"file":"lua/libtmux/_internal/domain.lua","line":486,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creation-created"},{"id":"libtmux.Creation.pane","publicId":"libtmux.Creation.pane","name":"pane","kind":"attribute","modifiers":[],"parent":"libtmux.Creation","signatures":[],"doc":{"summary":"A tmux pane."},"product":"core","apiScope":"exported","type":"libtmux.Pane","source":{"file":"lua/libtmux/_internal/domain.lua","line":484,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creation-pane"},{"id":"libtmux.Creation.session","publicId":"libtmux.Creation.session","name":"session","kind":"attribute","modifiers":[],"parent":"libtmux.Creation","signatures":[],"doc":{"summary":"A tmux session."},"product":"core","apiScope":"exported","type":"libtmux.Session","source":{"file":"lua/libtmux/_internal/domain.lua","line":482,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creation-session"},{"id":"libtmux.Creation.window","publicId":"libtmux.Creation.window","name":"window","kind":"attribute","modifiers":[],"parent":"libtmux.Creation","signatures":[],"doc":{"summary":"A tmux window. Placement in a session belongs to its window links."},"product":"core","apiScope":"exported","type":"libtmux.Window","source":{"file":"lua/libtmux/_internal/domain.lua","line":483,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creation-window"},{"id":"libtmux.Creation.window_link","publicId":"libtmux.Creation.window_link","name":"window_link","kind":"attribute","modifiers":[],"parent":"libtmux.Creation","signatures":[],"doc":{"summary":"One placement of a window in a session: a window can be linked into several."},"product":"core","apiScope":"exported","type":"libtmux.WindowLink","source":{"file":"lua/libtmux/_internal/domain.lua","line":485,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creation-window_link"},{"id":"libtmux.CreationOptions","publicId":"libtmux.CreationOptions","name":"CreationOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/domain.lua","line":456,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationoptions"},{"id":"libtmux.CreationOptions.argv","publicId":"libtmux.CreationOptions.argv","name":"argv","kind":"attribute","modifiers":[],"parent":"libtmux.CreationOptions","signatures":[],"doc":{"summary":"Literal command arguments; mutually exclusive with shell."},"product":"core","apiScope":"exported","type":"string[]?","source":{"file":"lua/libtmux/_internal/domain.lua","line":458,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationoptions-argv"},{"id":"libtmux.CreationOptions.cwd","publicId":"libtmux.CreationOptions.cwd","name":"cwd","kind":"attribute","modifiers":[],"parent":"libtmux.CreationOptions","signatures":[],"doc":{"summary":"Absolute working directory."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":457,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationoptions-cwd"},{"id":"libtmux.CreationOptions.environment","publicId":"libtmux.CreationOptions.environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux.CreationOptions","signatures":[],"doc":{"summary":"Environment for the created scope."},"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/_internal/domain.lua","line":460,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationoptions-environment"},{"id":"libtmux.CreationOptions.process","publicId":"libtmux.CreationOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.CreationOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/domain.lua","line":461,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationoptions-process"},{"id":"libtmux.CreationOptions.shell","publicId":"libtmux.CreationOptions.shell","name":"shell","kind":"attribute","modifiers":[],"parent":"libtmux.CreationOptions","signatures":[],"doc":{"summary":"Explicit shell program."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":459,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationoptions-shell"},{"id":"libtmux.CreationProcessOptions","publicId":"libtmux.CreationProcessOptions","name":"CreationProcessOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/domain.lua","line":449,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationprocessoptions"},{"id":"libtmux.CreationProcessOptions.deadline","publicId":"libtmux.CreationProcessOptions.deadline","name":"deadline","kind":"attribute","modifiers":[],"parent":"libtmux.CreationProcessOptions","signatures":[],"product":"core","apiScope":"exported","type":"number?","source":{"file":"lua/libtmux/_internal/domain.lua","line":451,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationprocessoptions-deadline"},{"id":"libtmux.CreationProcessOptions.drain_timeout","publicId":"libtmux.CreationProcessOptions.drain_timeout","name":"drain_timeout","kind":"attribute","modifiers":[],"parent":"libtmux.CreationProcessOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/domain.lua","line":453,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationprocessoptions-drain_timeout"},{"id":"libtmux.CreationProcessOptions.kill_timeout","publicId":"libtmux.CreationProcessOptions.kill_timeout","name":"kill_timeout","kind":"attribute","modifiers":[],"parent":"libtmux.CreationProcessOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/domain.lua","line":454,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationprocessoptions-kill_timeout"},{"id":"libtmux.CreationProcessOptions.max_output_bytes","publicId":"libtmux.CreationProcessOptions.max_output_bytes","name":"max_output_bytes","kind":"attribute","modifiers":[],"parent":"libtmux.CreationProcessOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/domain.lua","line":452,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationprocessoptions-max_output_bytes"},{"id":"libtmux.CreationProcessOptions.timeout","publicId":"libtmux.CreationProcessOptions.timeout","name":"timeout","kind":"attribute","modifiers":[],"parent":"libtmux.CreationProcessOptions","signatures":[],"product":"core","apiScope":"exported","type":"number?","source":{"file":"lua/libtmux/_internal/domain.lua","line":450,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationprocessoptions-timeout"},{"id":"libtmux.Entity","publicId":"libtmux.Entity","name":"Entity","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":383,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-entity"},{"id":"libtmux.Entity:reference","publicId":"libtmux.Entity:reference","name":"reference","kind":"method","modifiers":[],"parent":"libtmux.Entity","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Reference?, libtmux.Error?","params":[],"returns":"libtmux.Reference?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":384,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-entity-reference"},{"id":"libtmux.Entity:snapshot","publicId":"libtmux.Entity:snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"libtmux.Entity","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Request","params":[],"returns":"libtmux.Request"}],"doc":{"summary":"Re-reads this object's record."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":386,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-entity-snapshot"},{"id":"libtmux.EnvironmentGetOptions","publicId":"libtmux.EnvironmentGetOptions","name":"EnvironmentGetOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/environment.lua","line":442,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentgetoptions"},{"id":"libtmux.EnvironmentGetOptions.inherit","publicId":"libtmux.EnvironmentGetOptions.inherit","name":"inherit","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentGetOptions","signatures":[],"doc":{"summary":"Session fallback to global; default false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/environment.lua","line":443,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentgetoptions-inherit"},{"id":"libtmux.EnvironmentGetOptions.process","publicId":"libtmux.EnvironmentGetOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentGetOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/environment.lua","line":440,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.EnvironmentOptions","slug":"libtmux-environmentgetoptions-process"},{"id":"libtmux.EnvironmentGetOptions.scope","publicId":"libtmux.EnvironmentGetOptions.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentGetOptions","signatures":[],"doc":{"summary":"Must match the receiving handle."},"product":"core","apiScope":"exported","type":"(\"global\"|\"session\")?","source":{"file":"lua/libtmux/_internal/environment.lua","line":439,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.EnvironmentOptions","slug":"libtmux-environmentgetoptions-scope"},{"id":"libtmux.EnvironmentListOptions","publicId":"libtmux.EnvironmentListOptions","name":"EnvironmentListOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/environment.lua","line":445,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentlistoptions"},{"id":"libtmux.EnvironmentListOptions.include_hidden","publicId":"libtmux.EnvironmentListOptions.include_hidden","name":"include_hidden","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentListOptions","signatures":[],"doc":{"summary":"Default true."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/environment.lua","line":446,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentlistoptions-include_hidden"},{"id":"libtmux.EnvironmentListOptions.inherit","publicId":"libtmux.EnvironmentListOptions.inherit","name":"inherit","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentListOptions","signatures":[],"doc":{"summary":"Session fallback to global; default false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/environment.lua","line":443,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.EnvironmentGetOptions","slug":"libtmux-environmentlistoptions-inherit"},{"id":"libtmux.EnvironmentListOptions.process","publicId":"libtmux.EnvironmentListOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentListOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/environment.lua","line":440,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.EnvironmentOptions","slug":"libtmux-environmentlistoptions-process"},{"id":"libtmux.EnvironmentListOptions.scope","publicId":"libtmux.EnvironmentListOptions.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentListOptions","signatures":[],"doc":{"summary":"Must match the receiving handle."},"product":"core","apiScope":"exported","type":"(\"global\"|\"session\")?","source":{"file":"lua/libtmux/_internal/environment.lua","line":439,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.EnvironmentOptions","slug":"libtmux-environmentlistoptions-scope"},{"id":"libtmux.EnvironmentOptions","publicId":"libtmux.EnvironmentOptions","name":"EnvironmentOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/environment.lua","line":438,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentoptions"},{"id":"libtmux.EnvironmentOptions.process","publicId":"libtmux.EnvironmentOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/environment.lua","line":440,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentoptions-process"},{"id":"libtmux.EnvironmentOptions.scope","publicId":"libtmux.EnvironmentOptions.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentOptions","signatures":[],"doc":{"summary":"Must match the receiving handle."},"product":"core","apiScope":"exported","type":"(\"global\"|\"session\")?","source":{"file":"lua/libtmux/_internal/environment.lua","line":439,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentoptions-scope"},{"id":"libtmux.EnvironmentRecord","publicId":"libtmux.EnvironmentRecord","name":"EnvironmentRecord","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/environment.lua","line":428,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentrecord"},{"id":"libtmux.EnvironmentRecord.hidden","publicId":"libtmux.EnvironmentRecord.hidden","name":"hidden","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentRecord","signatures":[],"doc":{"summary":"Absent records have no visibility flag."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/environment.lua","line":432,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentrecord-hidden"},{"id":"libtmux.EnvironmentRecord.inherited","publicId":"libtmux.EnvironmentRecord.inherited","name":"inherited","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentRecord","signatures":[],"doc":{"summary":"True only for a global fallback requested through a session."},"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/environment.lua","line":434,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentrecord-inherited"},{"id":"libtmux.EnvironmentRecord.name","publicId":"libtmux.EnvironmentRecord.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentRecord","signatures":[],"doc":{"summary":"Portable environment identifier."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/environment.lua","line":429,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentrecord-name"},{"id":"libtmux.EnvironmentRecord.scope","publicId":"libtmux.EnvironmentRecord.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentRecord","signatures":[],"doc":{"summary":"Storage source, including for inherited records."},"product":"core","apiScope":"exported","type":"\"global\"|\"session\"","source":{"file":"lua/libtmux/_internal/environment.lua","line":433,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentrecord-scope"},{"id":"libtmux.EnvironmentRecord.state","publicId":"libtmux.EnvironmentRecord.state","name":"state","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentRecord","signatures":[],"product":"core","apiScope":"exported","type":"\"absent\"|\"removed\"|\"value\"","source":{"file":"lua/libtmux/_internal/environment.lua","line":430,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentrecord-state"},{"id":"libtmux.EnvironmentRecord.target","publicId":"libtmux.EnvironmentRecord.target","name":"target","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentRecord","signatures":[],"doc":{"summary":"Session storage identity; omitted for global storage."},"product":"core","apiScope":"exported","type":"(libtmux.Reference)?","source":{"file":"lua/libtmux/_internal/environment.lua","line":435,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentrecord-target"},{"id":"libtmux.EnvironmentRecord.value","publicId":"libtmux.EnvironmentRecord.value","name":"value","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentRecord","signatures":[],"doc":{"summary":"Exact bytes, present only for value records; may be empty."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/environment.lua","line":431,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentrecord-value"},{"id":"libtmux.EnvironmentSetOptions","publicId":"libtmux.EnvironmentSetOptions","name":"EnvironmentSetOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/environment.lua","line":448,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentsetoptions"},{"id":"libtmux.EnvironmentSetOptions.hidden","publicId":"libtmux.EnvironmentSetOptions.hidden","name":"hidden","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentSetOptions","signatures":[],"doc":{"summary":"Default false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/environment.lua","line":449,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentsetoptions-hidden"},{"id":"libtmux.EnvironmentSetOptions.process","publicId":"libtmux.EnvironmentSetOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentSetOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/environment.lua","line":440,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.EnvironmentOptions","slug":"libtmux-environmentsetoptions-process"},{"id":"libtmux.EnvironmentSetOptions.scope","publicId":"libtmux.EnvironmentSetOptions.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentSetOptions","signatures":[],"doc":{"summary":"Must match the receiving handle."},"product":"core","apiScope":"exported","type":"(\"global\"|\"session\")?","source":{"file":"lua/libtmux/_internal/environment.lua","line":439,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.EnvironmentOptions","slug":"libtmux-environmentsetoptions-scope"},{"id":"libtmux.Error","publicId":"libtmux.Error","name":"Error","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1018,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-error"},{"id":"libtmux.Error.cause","publicId":"libtmux.Error.cause","name":"cause","kind":"attribute","modifiers":[],"parent":"libtmux.Error","signatures":[],"product":"core","apiScope":"exported","type":"unknown?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1023,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-error-cause"},{"id":"libtmux.Error.code","publicId":"libtmux.Error.code","name":"code","kind":"attribute","modifiers":[],"parent":"libtmux.Error","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1019,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-error-code"},{"id":"libtmux.Error.effect","publicId":"libtmux.Error.effect","name":"effect","kind":"attribute","modifiers":[],"parent":"libtmux.Error","signatures":[],"product":"core","apiScope":"exported","type":"(\"completed\"|\"not_sent\"|\"unknown\")?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1022,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-error-effect"},{"id":"libtmux.Error.message","publicId":"libtmux.Error.message","name":"message","kind":"attribute","modifiers":[],"parent":"libtmux.Error","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1020,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-error-message"},{"id":"libtmux.Error.operation","publicId":"libtmux.Error.operation","name":"operation","kind":"attribute","modifiers":[],"parent":"libtmux.Error","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1021,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-error-operation"},{"id":"libtmux.Error.partial","publicId":"libtmux.Error.partial","name":"partial","kind":"attribute","modifiers":[],"parent":"libtmux.Error","signatures":[],"product":"core","apiScope":"exported","type":"unknown?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1024,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-error-partial"},{"id":"libtmux.FieldCriteria","publicId":"libtmux.FieldCriteria","name":"FieldCriteria","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":256,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria"},{"id":"libtmux.FieldCriteria.contains","publicId":"libtmux.FieldCriteria.contains","name":"contains","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/query.lua","line":265,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-contains"},{"id":"libtmux.FieldCriteria.ends_with","publicId":"libtmux.FieldCriteria.ends_with","name":"ends_with","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/query.lua","line":267,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-ends_with"},{"id":"libtmux.FieldCriteria.eq","publicId":"libtmux.FieldCriteria.eq","name":"eq","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"(boolean|string|number|libtmux.Null)?","source":{"file":"lua/libtmux/query.lua","line":257,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-eq"},{"id":"libtmux.FieldCriteria.gt","publicId":"libtmux.FieldCriteria.gt","name":"gt","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"number?","source":{"file":"lua/libtmux/query.lua","line":263,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-gt"},{"id":"libtmux.FieldCriteria.gte","publicId":"libtmux.FieldCriteria.gte","name":"gte","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"number?","source":{"file":"lua/libtmux/query.lua","line":264,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-gte"},{"id":"libtmux.FieldCriteria.is_null","publicId":"libtmux.FieldCriteria.is_null","name":"is_null","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/query.lua","line":268,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-is_null"},{"id":"libtmux.FieldCriteria.lt","publicId":"libtmux.FieldCriteria.lt","name":"lt","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"number?","source":{"file":"lua/libtmux/query.lua","line":261,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-lt"},{"id":"libtmux.FieldCriteria.lte","publicId":"libtmux.FieldCriteria.lte","name":"lte","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"number?","source":{"file":"lua/libtmux/query.lua","line":262,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-lte"},{"id":"libtmux.FieldCriteria.ne","publicId":"libtmux.FieldCriteria.ne","name":"ne","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"(boolean|string|number|libtmux.Null)?","source":{"file":"lua/libtmux/query.lua","line":258,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-ne"},{"id":"libtmux.FieldCriteria.none_of","publicId":"libtmux.FieldCriteria.none_of","name":"none_of","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"boolean|string|number|libtmux.Null[]?","source":{"file":"lua/libtmux/query.lua","line":260,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-none_of"},{"id":"libtmux.FieldCriteria.one_of","publicId":"libtmux.FieldCriteria.one_of","name":"one_of","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"boolean|string|number|libtmux.Null[]?","source":{"file":"lua/libtmux/query.lua","line":259,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-one_of"},{"id":"libtmux.FieldCriteria.starts_with","publicId":"libtmux.FieldCriteria.starts_with","name":"starts_with","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/query.lua","line":266,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-starts_with"},{"id":"libtmux.Fields.Buffer","publicId":"libtmux.Fields.Buffer","name":"Buffer","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/fields.lua","line":74,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-buffer"},{"id":"libtmux.Fields.Buffer.created","publicId":"libtmux.Fields.Buffer.created","name":"created","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Buffer","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":78,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-buffer-created"},{"id":"libtmux.Fields.Buffer.name","publicId":"libtmux.Fields.Buffer.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Buffer","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":75,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-buffer-name"},{"id":"libtmux.Fields.Buffer.sample","publicId":"libtmux.Fields.Buffer.sample","name":"sample","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Buffer","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":77,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-buffer-sample"},{"id":"libtmux.Fields.Buffer.size","publicId":"libtmux.Fields.Buffer.size","name":"size","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Buffer","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":76,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-buffer-size"},{"id":"libtmux.Fields.Client","publicId":"libtmux.Fields.Client","name":"Client","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/fields.lua","line":62,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client"},{"id":"libtmux.Fields.Client.activity","publicId":"libtmux.Fields.Client.activity","name":"activity","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":72,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-activity"},{"id":"libtmux.Fields.Client.control_mode","publicId":"libtmux.Fields.Client.control_mode","name":"control_mode","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":69,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-control_mode"},{"id":"libtmux.Fields.Client.created","publicId":"libtmux.Fields.Client.created","name":"created","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":71,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-created"},{"id":"libtmux.Fields.Client.height","publicId":"libtmux.Fields.Client.height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"(integer|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":68,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-height"},{"id":"libtmux.Fields.Client.name","publicId":"libtmux.Fields.Client.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":63,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-name"},{"id":"libtmux.Fields.Client.pid","publicId":"libtmux.Fields.Client.pid","name":"pid","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":65,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-pid"},{"id":"libtmux.Fields.Client.readonly","publicId":"libtmux.Fields.Client.readonly","name":"readonly","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":70,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-readonly"},{"id":"libtmux.Fields.Client.session_name","publicId":"libtmux.Fields.Client.session_name","name":"session_name","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":66,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-session_name"},{"id":"libtmux.Fields.Client.tty","publicId":"libtmux.Fields.Client.tty","name":"tty","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":64,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-tty"},{"id":"libtmux.Fields.Client.width","publicId":"libtmux.Fields.Client.width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"(integer|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":67,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-width"},{"id":"libtmux.Fields.Pane","publicId":"libtmux.Fields.Pane","name":"Pane","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/fields.lua","line":39,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane"},{"id":"libtmux.Fields.Pane.active","publicId":"libtmux.Fields.Pane.active","name":"active","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":43,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-active"},{"id":"libtmux.Fields.Pane.current_command","publicId":"libtmux.Fields.Pane.current_command","name":"current_command","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":52,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-current_command"},{"id":"libtmux.Fields.Pane.current_path","publicId":"libtmux.Fields.Pane.current_path","name":"current_path","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":51,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-current_path"},{"id":"libtmux.Fields.Pane.dead","publicId":"libtmux.Fields.Pane.dead","name":"dead","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":54,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-dead"},{"id":"libtmux.Fields.Pane.dead_signal","publicId":"libtmux.Fields.Pane.dead_signal","name":"dead_signal","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":56,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-dead_signal"},{"id":"libtmux.Fields.Pane.dead_status","publicId":"libtmux.Fields.Pane.dead_status","name":"dead_status","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"(integer|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":55,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-dead_status"},{"id":"libtmux.Fields.Pane.dead_time","publicId":"libtmux.Fields.Pane.dead_time","name":"dead_time","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"(integer|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":57,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-dead_time"},{"id":"libtmux.Fields.Pane.height","publicId":"libtmux.Fields.Pane.height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":46,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-height"},{"id":"libtmux.Fields.Pane.id","publicId":"libtmux.Fields.Pane.id","name":"id","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":40,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-id"},{"id":"libtmux.Fields.Pane.index","publicId":"libtmux.Fields.Pane.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":42,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-index"},{"id":"libtmux.Fields.Pane.left","publicId":"libtmux.Fields.Pane.left","name":"left","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":47,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-left"},{"id":"libtmux.Fields.Pane.mode","publicId":"libtmux.Fields.Pane.mode","name":"mode","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":58,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-mode"},{"id":"libtmux.Fields.Pane.mode_count","publicId":"libtmux.Fields.Pane.mode_count","name":"mode_count","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":59,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-mode_count"},{"id":"libtmux.Fields.Pane.pid","publicId":"libtmux.Fields.Pane.pid","name":"pid","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":49,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-pid"},{"id":"libtmux.Fields.Pane.start_command","publicId":"libtmux.Fields.Pane.start_command","name":"start_command","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":53,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-start_command"},{"id":"libtmux.Fields.Pane.synchronized","publicId":"libtmux.Fields.Pane.synchronized","name":"synchronized","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":60,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-synchronized"},{"id":"libtmux.Fields.Pane.title","publicId":"libtmux.Fields.Pane.title","name":"title","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":44,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-title"},{"id":"libtmux.Fields.Pane.top","publicId":"libtmux.Fields.Pane.top","name":"top","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":48,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-top"},{"id":"libtmux.Fields.Pane.tty","publicId":"libtmux.Fields.Pane.tty","name":"tty","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":50,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-tty"},{"id":"libtmux.Fields.Pane.width","publicId":"libtmux.Fields.Pane.width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":45,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-width"},{"id":"libtmux.Fields.Pane.window_id","publicId":"libtmux.Fields.Pane.window_id","name":"window_id","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":41,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-window_id"},{"id":"libtmux.Fields.Server","publicId":"libtmux.Fields.Server","name":"Server","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/fields.lua","line":5,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-server"},{"id":"libtmux.Fields.Server.pid","publicId":"libtmux.Fields.Server.pid","name":"pid","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Server","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":6,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-server-pid"},{"id":"libtmux.Fields.Server.socket_path","publicId":"libtmux.Fields.Server.socket_path","name":"socket_path","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Server","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":7,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-server-socket_path"},{"id":"libtmux.Fields.Server.start_time","publicId":"libtmux.Fields.Server.start_time","name":"start_time","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Server","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":9,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-server-start_time"},{"id":"libtmux.Fields.Server.version","publicId":"libtmux.Fields.Server.version","name":"version","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Server","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":8,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-server-version"},{"id":"libtmux.Fields.Session","publicId":"libtmux.Fields.Session","name":"Session","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/fields.lua","line":11,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session"},{"id":"libtmux.Fields.Session.activity","publicId":"libtmux.Fields.Session.activity","name":"activity","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Session","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":15,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session-activity"},{"id":"libtmux.Fields.Session.attached","publicId":"libtmux.Fields.Session.attached","name":"attached","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Session","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":16,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session-attached"},{"id":"libtmux.Fields.Session.created","publicId":"libtmux.Fields.Session.created","name":"created","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Session","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":14,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session-created"},{"id":"libtmux.Fields.Session.group","publicId":"libtmux.Fields.Session.group","name":"group","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Session","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":18,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session-group"},{"id":"libtmux.Fields.Session.grouped","publicId":"libtmux.Fields.Session.grouped","name":"grouped","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Session","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":19,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session-grouped"},{"id":"libtmux.Fields.Session.id","publicId":"libtmux.Fields.Session.id","name":"id","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Session","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":12,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session-id"},{"id":"libtmux.Fields.Session.name","publicId":"libtmux.Fields.Session.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Session","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":13,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session-name"},{"id":"libtmux.Fields.Session.path","publicId":"libtmux.Fields.Session.path","name":"path","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Session","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":20,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session-path"},{"id":"libtmux.Fields.Session.window_count","publicId":"libtmux.Fields.Session.window_count","name":"window_count","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Session","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":17,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session-window_count"},{"id":"libtmux.Fields.Window","publicId":"libtmux.Fields.Window","name":"Window","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/fields.lua","line":22,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-window"},{"id":"libtmux.Fields.Window.height","publicId":"libtmux.Fields.Window.height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Window","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":26,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-window-height"},{"id":"libtmux.Fields.Window.id","publicId":"libtmux.Fields.Window.id","name":"id","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Window","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":23,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-window-id"},{"id":"libtmux.Fields.Window.layout","publicId":"libtmux.Fields.Window.layout","name":"layout","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Window","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":28,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-window-layout"},{"id":"libtmux.Fields.Window.name","publicId":"libtmux.Fields.Window.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Window","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":24,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-window-name"},{"id":"libtmux.Fields.Window.pane_count","publicId":"libtmux.Fields.Window.pane_count","name":"pane_count","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Window","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":27,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-window-pane_count"},{"id":"libtmux.Fields.Window.visible_layout","publicId":"libtmux.Fields.Window.visible_layout","name":"visible_layout","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Window","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":29,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-window-visible_layout"},{"id":"libtmux.Fields.Window.width","publicId":"libtmux.Fields.Window.width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Window","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":25,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-window-width"},{"id":"libtmux.Fields.Window.zoomed","publicId":"libtmux.Fields.Window.zoomed","name":"zoomed","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Window","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":30,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-window-zoomed"},{"id":"libtmux.Fields.WindowLink","publicId":"libtmux.Fields.WindowLink","name":"WindowLink","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/fields.lua","line":32,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-windowlink"},{"id":"libtmux.Fields.WindowLink.active","publicId":"libtmux.Fields.WindowLink.active","name":"active","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.WindowLink","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":36,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-windowlink-active"},{"id":"libtmux.Fields.WindowLink.flags","publicId":"libtmux.Fields.WindowLink.flags","name":"flags","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.WindowLink","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":37,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-windowlink-flags"},{"id":"libtmux.Fields.WindowLink.index","publicId":"libtmux.Fields.WindowLink.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.WindowLink","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":35,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-windowlink-index"},{"id":"libtmux.Fields.WindowLink.session_id","publicId":"libtmux.Fields.WindowLink.session_id","name":"session_id","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.WindowLink","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":33,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-windowlink-session_id"},{"id":"libtmux.Fields.WindowLink.window_id","publicId":"libtmux.Fields.WindowLink.window_id","name":"window_id","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.WindowLink","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":34,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-windowlink-window_id"},{"id":"libtmux.HookName","publicId":"libtmux.HookName","name":"HookName","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.HookName","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":179,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookname"},{"id":"libtmux.HookProgram","publicId":"libtmux.HookProgram","name":"HookProgram","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":641,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookprogram"},{"id":"libtmux.HookProgram.commands","publicId":"libtmux.HookProgram.commands","name":"commands","kind":"attribute","modifiers":[],"parent":"libtmux.HookProgram","signatures":[],"doc":{"summary":"Exactly one of commands or source."},"product":"core","apiScope":"exported","type":"string[][]?","source":{"file":"lua/libtmux/_internal/settings.lua","line":642,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookprogram-commands"},{"id":"libtmux.HookProgram.source","publicId":"libtmux.HookProgram.source","name":"source","kind":"attribute","modifiers":[],"parent":"libtmux.HookProgram","signatures":[],"doc":{"summary":"Explicit tmux program text; never Lua code."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/settings.lua","line":643,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookprogram-source"},{"id":"libtmux.HookRecord","publicId":"libtmux.HookRecord","name":"HookRecord","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":686,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookrecord"},{"id":"libtmux.HookRecord.entries","publicId":"libtmux.HookRecord.entries","name":"entries","kind":"attribute","modifiers":[],"parent":"libtmux.HookRecord","signatures":[],"doc":{"summary":"Canonical built-in hook programs."},"product":"core","apiScope":"exported","type":"{ index: integer, source: string }[]?","source":{"file":"lua/libtmux/_internal/settings.lua","line":694,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookrecord-entries"},{"id":"libtmux.HookRecord.inherited","publicId":"libtmux.HookRecord.inherited","name":"inherited","kind":"attribute","modifiers":[],"parent":"libtmux.HookRecord","signatures":[],"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/settings.lua","line":692,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookrecord-inherited"},{"id":"libtmux.HookRecord.name","publicId":"libtmux.HookRecord.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.HookRecord","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/settings.lua","line":687,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookrecord-name"},{"id":"libtmux.HookRecord.present","publicId":"libtmux.HookRecord.present","name":"present","kind":"attribute","modifiers":[],"parent":"libtmux.HookRecord","signatures":[],"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/settings.lua","line":691,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookrecord-present"},{"id":"libtmux.HookRecord.scope","publicId":"libtmux.HookRecord.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.HookRecord","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/settings.lua","line":689,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookrecord-scope"},{"id":"libtmux.HookRecord.source","publicId":"libtmux.HookRecord.source","name":"source","kind":"attribute","modifiers":[],"parent":"libtmux.HookRecord","signatures":[],"doc":{"summary":"Stored program for a custom hook."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/settings.lua","line":693,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookrecord-source"},{"id":"libtmux.HookRecord.target","publicId":"libtmux.HookRecord.target","name":"target","kind":"attribute","modifiers":[],"parent":"libtmux.HookRecord","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Reference","source":{"file":"lua/libtmux/_internal/settings.lua","line":690,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookrecord-target"},{"id":"libtmux.HookRecord.type","publicId":"libtmux.HookRecord.type","name":"type","kind":"attribute","modifiers":[],"parent":"libtmux.HookRecord","signatures":[],"product":"core","apiScope":"exported","type":"'command'|'string'","source":{"file":"lua/libtmux/_internal/settings.lua","line":688,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookrecord-type"},{"id":"libtmux.KeyOptions","publicId":"libtmux.KeyOptions","name":"KeyOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":622,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-keyoptions"},{"id":"libtmux.KeyOptions.process","publicId":"libtmux.KeyOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.KeyOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/pane.lua","line":600,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.PaneOptions","slug":"libtmux-keyoptions-process"},{"id":"libtmux.KeyOptions.repeat_count","publicId":"libtmux.KeyOptions.repeat_count","name":"repeat_count","kind":"attribute","modifiers":[],"parent":"libtmux.KeyOptions","signatures":[],"doc":{"summary":"From 1 to 1000."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/pane.lua","line":623,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-keyoptions-repeat_count"},{"id":"libtmux.LayoutOptions","publicId":"libtmux.LayoutOptions","name":"LayoutOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":699,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-layoutoptions"},{"id":"libtmux.LayoutOptions.layout","publicId":"libtmux.LayoutOptions.layout","name":"layout","kind":"attribute","modifiers":[],"parent":"libtmux.LayoutOptions","signatures":[],"doc":{"summary":"Exported checksum-prefixed layout; native validation can unzoom first."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/topology.lua","line":701,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-layoutoptions-layout"},{"id":"libtmux.LayoutOptions.named","publicId":"libtmux.LayoutOptions.named","name":"named","kind":"attribute","modifiers":[],"parent":"libtmux.LayoutOptions","signatures":[],"product":"core","apiScope":"exported","type":"('even-horizontal'|'even-vertical'|'main-horizontal'|'main-horizontal-mirrored'|'main-vertical'...(+2))?","source":{"file":"lua/libtmux/_internal/topology.lua","line":700,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-layoutoptions-named"},{"id":"libtmux.LayoutOptions.next","publicId":"libtmux.LayoutOptions.next","name":"next","kind":"attribute","modifiers":[],"parent":"libtmux.LayoutOptions","signatures":[],"doc":{"summary":"Select exactly one of named/layout/next/previous/restore."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":702,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-layoutoptions-next"},{"id":"libtmux.LayoutOptions.previous","publicId":"libtmux.LayoutOptions.previous","name":"previous","kind":"attribute","modifiers":[],"parent":"libtmux.LayoutOptions","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":703,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-layoutoptions-previous"},{"id":"libtmux.LayoutOptions.process","publicId":"libtmux.LayoutOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.LayoutOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.TopologyOptions","slug":"libtmux-layoutoptions-process"},{"id":"libtmux.LayoutOptions.restore","publicId":"libtmux.LayoutOptions.restore","name":"restore","kind":"attribute","modifiers":[],"parent":"libtmux.LayoutOptions","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":704,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-layoutoptions-restore"},{"id":"libtmux.LinkDestination","publicId":"libtmux.LinkDestination","name":"LinkDestination","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":706,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-linkdestination"},{"id":"libtmux.LinkDestination.index","publicId":"libtmux.LinkDestination.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.LinkDestination","signatures":[],"doc":{"summary":"Native free index if omitted; excludes link."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/topology.lua","line":708,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-linkdestination-index"},{"id":"libtmux.LinkDestination.link","publicId":"libtmux.LinkDestination.link","name":"link","kind":"attribute","modifiers":[],"parent":"libtmux.LinkDestination","signatures":[],"doc":{"summary":"Guarded anchor or explicit victim."},"product":"core","apiScope":"exported","type":"(libtmux.WindowLink)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":709,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-linkdestination-link"},{"id":"libtmux.LinkDestination.position","publicId":"libtmux.LinkDestination.position","name":"position","kind":"attribute","modifiers":[],"parent":"libtmux.LinkDestination","signatures":[],"doc":{"summary":"At requires replace=true."},"product":"core","apiScope":"exported","type":"(\"after\"|\"at\"|\"before\")?","source":{"file":"lua/libtmux/_internal/topology.lua","line":710,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-linkdestination-position"},{"id":"libtmux.LinkDestination.session","publicId":"libtmux.LinkDestination.session","name":"session","kind":"attribute","modifiers":[],"parent":"libtmux.LinkDestination","signatures":[],"doc":{"summary":"Excludes link and position."},"product":"core","apiScope":"exported","type":"(libtmux.Session)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":707,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-linkdestination-session"},{"id":"libtmux.LinkOptions","publicId":"libtmux.LinkOptions","name":"LinkOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":715,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-linkoptions"},{"id":"libtmux.LinkOptions.process","publicId":"libtmux.LinkOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.LinkOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.TopologyOptions","slug":"libtmux-linkoptions-process"},{"id":"libtmux.LinkOptions.replace","publicId":"libtmux.LinkOptions.replace","name":"replace","kind":"attribute","modifiers":[],"parent":"libtmux.LinkOptions","signatures":[],"doc":{"summary":"Requires an explicit victim link with position=at."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":717,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-linkoptions-replace"},{"id":"libtmux.LinkOptions.select","publicId":"libtmux.LinkOptions.select","name":"select","kind":"attribute","modifiers":[],"parent":"libtmux.LinkOptions","signatures":[],"doc":{"summary":"Defaults to false; removal/replacement may force native selection."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":716,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-linkoptions-select"},{"id":"libtmux.LiveQueryOptions","publicId":"libtmux.LiveQueryOptions","name":"LiveQueryOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/live_query.lua","line":292,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryoptions"},{"id":"libtmux.LiveQueryOptions.kind","publicId":"libtmux.LiveQueryOptions.kind","name":"kind","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryOptions","signatures":[],"product":"core","apiScope":"exported","type":"(\"buffer\"|\"client\"|\"pane\"|\"session\"|\"window\"...(+1))?","source":{"file":"lua/libtmux/_internal/live_query.lua","line":293,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryoptions-kind"},{"id":"libtmux.LiveQueryOptions.native_filter","publicId":"libtmux.LiveQueryOptions.native_filter","name":"native_filter","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryOptions","signatures":[],"doc":{"summary":"Expert pane format; excludes where and pushdown."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/live_query.lua","line":296,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryoptions-native_filter"},{"id":"libtmux.LiveQueryOptions.pushdown","publicId":"libtmux.LiveQueryOptions.pushdown","name":"pushdown","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryOptions","signatures":[],"product":"core","apiScope":"exported","type":"(\"auto\"|\"never\"|\"require\")?","source":{"file":"lua/libtmux/_internal/live_query.lua","line":295,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryoptions-pushdown"},{"id":"libtmux.LiveQueryOptions.snapshot","publicId":"libtmux.LiveQueryOptions.snapshot","name":"snapshot","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryOptions","signatures":[],"doc":{"summary":"Full graph acquisition; required query fields are added."},"product":"core","apiScope":"exported","type":"(libtmux.SnapshotOptions)?","source":{"file":"lua/libtmux/_internal/live_query.lua","line":297,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryoptions-snapshot"},{"id":"libtmux.LiveQueryOptions.where","publicId":"libtmux.LiveQueryOptions.where","name":"where","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.Where)?","source":{"file":"lua/libtmux/_internal/live_query.lua","line":294,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryoptions-where"},{"id":"libtmux.LiveQueryPlan","publicId":"libtmux.LiveQueryPlan","name":"LiveQueryPlan","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/live_query.lua","line":299,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan"},{"id":"libtmux.LiveQueryPlan.commands","publicId":"libtmux.LiveQueryPlan.commands","name":"commands","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"doc":{"summary":"Ordered phases; see empty_server."},"product":"core","apiScope":"exported","type":"{ role: string, kind: string, argv: string[] }[]","source":{"file":"lua/libtmux/_internal/live_query.lua","line":307,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-commands"},{"id":"libtmux.LiveQueryPlan.consistency","publicId":"libtmux.LiveQueryPlan.consistency","name":"consistency","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"{ atomic: boolean, strict: boolean, verification_passes: integer }","source":{"file":"lua/libtmux/_internal/live_query.lua","line":313,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-consistency"},{"id":"libtmux.LiveQueryPlan.empty_server","publicId":"libtmux.LiveQueryPlan.empty_server","name":"empty_server","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/live_query.lua","line":314,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-empty_server"},{"id":"libtmux.LiveQueryPlan.exact","publicId":"libtmux.LiveQueryPlan.exact","name":"exact","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"doc":{"summary":"Whether the full predicate has a native translation."},"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/live_query.lua","line":303,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-exact"},{"id":"libtmux.LiveQueryPlan.fields","publicId":"libtmux.LiveQueryPlan.fields","name":"fields","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/live_query.lua","line":309,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-fields"},{"id":"libtmux.LiveQueryPlan.filter","publicId":"libtmux.LiveQueryPlan.filter","name":"filter","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/live_query.lua","line":304,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-filter"},{"id":"libtmux.LiveQueryPlan.hydration","publicId":"libtmux.LiveQueryPlan.hydration","name":"hydration","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"string[]","source":{"file":"lua/libtmux/_internal/live_query.lua","line":310,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-hydration"},{"id":"libtmux.LiveQueryPlan.kind","publicId":"libtmux.LiveQueryPlan.kind","name":"kind","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/live_query.lua","line":300,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-kind"},{"id":"libtmux.LiveQueryPlan.native_filter","publicId":"libtmux.LiveQueryPlan.native_filter","name":"native_filter","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/live_query.lua","line":305,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-native_filter"},{"id":"libtmux.LiveQueryPlan.projections","publicId":"libtmux.LiveQueryPlan.projections","name":"projections","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/live_query.lua","line":308,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-projections"},{"id":"libtmux.LiveQueryPlan.pushdown","publicId":"libtmux.LiveQueryPlan.pushdown","name":"pushdown","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/live_query.lua","line":302,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-pushdown"},{"id":"libtmux.LiveQueryPlan.pushed","publicId":"libtmux.LiveQueryPlan.pushed","name":"pushed","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"table[]","source":{"file":"lua/libtmux/_internal/live_query.lua","line":311,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-pushed"},{"id":"libtmux.LiveQueryPlan.residual","publicId":"libtmux.LiveQueryPlan.residual","name":"residual","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"{ path: string, reason: string }[]","source":{"file":"lua/libtmux/_internal/live_query.lua","line":312,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-residual"},{"id":"libtmux.LiveQueryPlan.source","publicId":"libtmux.LiveQueryPlan.source","name":"source","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"{ argv: string[] }","source":{"file":"lua/libtmux/_internal/live_query.lua","line":306,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-source"},{"id":"libtmux.LiveQueryPlan.version","publicId":"libtmux.LiveQueryPlan.version","name":"version","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/live_query.lua","line":301,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-version"},{"id":"libtmux.LiveQueryResult","publicId":"libtmux.LiveQueryResult","name":"LiveQueryResult","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/live_query.lua","line":316,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryresult"},{"id":"libtmux.LiveQueryResult.acquisition","publicId":"libtmux.LiveQueryResult.acquisition","name":"acquisition","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryResult","signatures":[],"product":"core","apiScope":"exported","type":"{ started: number, finished: number }","source":{"file":"lua/libtmux/_internal/live_query.lua","line":322,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryresult-acquisition"},{"id":"libtmux.LiveQueryResult.complete","publicId":"libtmux.LiveQueryResult.complete","name":"complete","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryResult","signatures":[],"doc":{"summary":"False for known races; true does not imply atomic acquisition."},"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/live_query.lua","line":320,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryresult-complete"},{"id":"libtmux.LiveQueryResult.plan","publicId":"libtmux.LiveQueryResult.plan","name":"plan","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryResult","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.LiveQueryPlan","source":{"file":"lua/libtmux/_internal/live_query.lua","line":319,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryresult-plan"},{"id":"libtmux.LiveQueryResult.races","publicId":"libtmux.LiveQueryResult.races","name":"races","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryResult","signatures":[],"product":"core","apiScope":"exported","type":"table[]","source":{"file":"lua/libtmux/_internal/live_query.lua","line":321,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryresult-races"},{"id":"libtmux.LiveQueryResult.rows","publicId":"libtmux.LiveQueryResult.rows","name":"rows","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryResult","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Selection","source":{"file":"lua/libtmux/_internal/live_query.lua","line":317,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryresult-rows"},{"id":"libtmux.LiveQueryResult.snapshot","publicId":"libtmux.LiveQueryResult.snapshot","name":"snapshot","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryResult","signatures":[],"doc":{"summary":"Complete captured relationship universe."},"product":"core","apiScope":"exported","type":"libtmux.Snapshot","source":{"file":"lua/libtmux/_internal/live_query.lua","line":318,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryresult-snapshot"},{"id":"libtmux.MovePaneOptions","publicId":"libtmux.MovePaneOptions","name":"MovePaneOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":726,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-movepaneoptions"},{"id":"libtmux.MovePaneOptions.before","publicId":"libtmux.MovePaneOptions.before","name":"before","kind":"attribute","modifiers":[],"parent":"libtmux.MovePaneOptions","signatures":[],"doc":{"summary":"Place before the target in native geometry."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":730,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-movepaneoptions-before"},{"id":"libtmux.MovePaneOptions.direction","publicId":"libtmux.MovePaneOptions.direction","name":"direction","kind":"attribute","modifiers":[],"parent":"libtmux.MovePaneOptions","signatures":[],"doc":{"summary":"Defaults to vertical."},"product":"core","apiScope":"exported","type":"(\"horizontal\"|\"vertical\")?","source":{"file":"lua/libtmux/_internal/topology.lua","line":727,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-movepaneoptions-direction"},{"id":"libtmux.MovePaneOptions.full_size","publicId":"libtmux.MovePaneOptions.full_size","name":"full_size","kind":"attribute","modifiers":[],"parent":"libtmux.MovePaneOptions","signatures":[],"doc":{"summary":"Extend across the full window."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":731,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-movepaneoptions-full_size"},{"id":"libtmux.MovePaneOptions.percent","publicId":"libtmux.MovePaneOptions.percent","name":"percent","kind":"attribute","modifiers":[],"parent":"libtmux.MovePaneOptions","signatures":[],"doc":{"summary":"Percentage from 1 to 100; excludes size."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/topology.lua","line":729,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-movepaneoptions-percent"},{"id":"libtmux.MovePaneOptions.process","publicId":"libtmux.MovePaneOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.MovePaneOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.TopologyOptions","slug":"libtmux-movepaneoptions-process"},{"id":"libtmux.MovePaneOptions.select","publicId":"libtmux.MovePaneOptions.select","name":"select","kind":"attribute","modifiers":[],"parent":"libtmux.MovePaneOptions","signatures":[],"doc":{"summary":"Defaults to false; true requires target_link."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":732,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-movepaneoptions-select"},{"id":"libtmux.MovePaneOptions.size","publicId":"libtmux.MovePaneOptions.size","name":"size","kind":"attribute","modifiers":[],"parent":"libtmux.MovePaneOptions","signatures":[],"doc":{"summary":"Cell count from 1 to 10000; excludes percent."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/topology.lua","line":728,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-movepaneoptions-size"},{"id":"libtmux.MovePaneOptions.target_link","publicId":"libtmux.MovePaneOptions.target_link","name":"target_link","kind":"attribute","modifiers":[],"parent":"libtmux.MovePaneOptions","signatures":[],"doc":{"summary":"Guarded target pane placement."},"product":"core","apiScope":"exported","type":"(libtmux.WindowLink)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":733,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-movepaneoptions-target_link"},{"id":"libtmux.NamedLayout","publicId":"libtmux.NamedLayout","name":"NamedLayout","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.NamedLayout","source":{"file":"lua/libtmux/_internal/topology.lua","line":690,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-namedlayout"},{"id":"libtmux.NavigateWindowOptions","publicId":"libtmux.NavigateWindowOptions","name":"NavigateWindowOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":679,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-navigatewindowoptions"},{"id":"libtmux.NavigateWindowOptions.activity","publicId":"libtmux.NavigateWindowOptions.activity","name":"activity","kind":"attribute","modifiers":[],"parent":"libtmux.NavigateWindowOptions","signatures":[],"doc":{"summary":"Only next/previous accept this option, including false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":680,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-navigatewindowoptions-activity"},{"id":"libtmux.NavigateWindowOptions.process","publicId":"libtmux.NavigateWindowOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.NavigateWindowOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.TopologyOptions","slug":"libtmux-navigatewindowoptions-process"},{"id":"libtmux.NewSessionOptions","publicId":"libtmux.NewSessionOptions","name":"NewSessionOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/domain.lua","line":463,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-newsessionoptions"},{"id":"libtmux.NewSessionOptions.argv","publicId":"libtmux.NewSessionOptions.argv","name":"argv","kind":"attribute","modifiers":[],"parent":"libtmux.NewSessionOptions","signatures":[],"doc":{"summary":"Literal command arguments; mutually exclusive with shell."},"product":"core","apiScope":"exported","type":"string[]?","source":{"file":"lua/libtmux/_internal/domain.lua","line":458,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newsessionoptions-argv"},{"id":"libtmux.NewSessionOptions.cwd","publicId":"libtmux.NewSessionOptions.cwd","name":"cwd","kind":"attribute","modifiers":[],"parent":"libtmux.NewSessionOptions","signatures":[],"doc":{"summary":"Absolute working directory."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":457,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newsessionoptions-cwd"},{"id":"libtmux.NewSessionOptions.environment","publicId":"libtmux.NewSessionOptions.environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux.NewSessionOptions","signatures":[],"doc":{"summary":"Environment for the created scope."},"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/_internal/domain.lua","line":460,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newsessionoptions-environment"},{"id":"libtmux.NewSessionOptions.height","publicId":"libtmux.NewSessionOptions.height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux.NewSessionOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/domain.lua","line":467,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-newsessionoptions-height"},{"id":"libtmux.NewSessionOptions.name","publicId":"libtmux.NewSessionOptions.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.NewSessionOptions","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":464,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-newsessionoptions-name"},{"id":"libtmux.NewSessionOptions.process","publicId":"libtmux.NewSessionOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.NewSessionOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/domain.lua","line":461,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newsessionoptions-process"},{"id":"libtmux.NewSessionOptions.shell","publicId":"libtmux.NewSessionOptions.shell","name":"shell","kind":"attribute","modifiers":[],"parent":"libtmux.NewSessionOptions","signatures":[],"doc":{"summary":"Explicit shell program."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":459,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newsessionoptions-shell"},{"id":"libtmux.NewSessionOptions.width","publicId":"libtmux.NewSessionOptions.width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux.NewSessionOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/domain.lua","line":466,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-newsessionoptions-width"},{"id":"libtmux.NewSessionOptions.window_name","publicId":"libtmux.NewSessionOptions.window_name","name":"window_name","kind":"attribute","modifiers":[],"parent":"libtmux.NewSessionOptions","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":465,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-newsessionoptions-window_name"},{"id":"libtmux.NewWindowOptions","publicId":"libtmux.NewWindowOptions","name":"NewWindowOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/domain.lua","line":469,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-newwindowoptions"},{"id":"libtmux.NewWindowOptions.argv","publicId":"libtmux.NewWindowOptions.argv","name":"argv","kind":"attribute","modifiers":[],"parent":"libtmux.NewWindowOptions","signatures":[],"doc":{"summary":"Literal command arguments; mutually exclusive with shell."},"product":"core","apiScope":"exported","type":"string[]?","source":{"file":"lua/libtmux/_internal/domain.lua","line":458,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newwindowoptions-argv"},{"id":"libtmux.NewWindowOptions.cwd","publicId":"libtmux.NewWindowOptions.cwd","name":"cwd","kind":"attribute","modifiers":[],"parent":"libtmux.NewWindowOptions","signatures":[],"doc":{"summary":"Absolute working directory."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":457,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newwindowoptions-cwd"},{"id":"libtmux.NewWindowOptions.environment","publicId":"libtmux.NewWindowOptions.environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux.NewWindowOptions","signatures":[],"doc":{"summary":"Environment for the created scope."},"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/_internal/domain.lua","line":460,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newwindowoptions-environment"},{"id":"libtmux.NewWindowOptions.index","publicId":"libtmux.NewWindowOptions.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.NewWindowOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/domain.lua","line":471,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-newwindowoptions-index"},{"id":"libtmux.NewWindowOptions.name","publicId":"libtmux.NewWindowOptions.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.NewWindowOptions","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":470,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-newwindowoptions-name"},{"id":"libtmux.NewWindowOptions.process","publicId":"libtmux.NewWindowOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.NewWindowOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/domain.lua","line":461,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newwindowoptions-process"},{"id":"libtmux.NewWindowOptions.select","publicId":"libtmux.NewWindowOptions.select","name":"select","kind":"attribute","modifiers":[],"parent":"libtmux.NewWindowOptions","signatures":[],"doc":{"summary":"Defaults to false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/domain.lua","line":472,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-newwindowoptions-select"},{"id":"libtmux.NewWindowOptions.shell","publicId":"libtmux.NewWindowOptions.shell","name":"shell","kind":"attribute","modifiers":[],"parent":"libtmux.NewWindowOptions","signatures":[],"doc":{"summary":"Explicit shell program."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":459,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newwindowoptions-shell"},{"id":"libtmux.Null","publicId":"libtmux.Null","name":"Null","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Null","source":{"file":"lua/libtmux/query.lua","line":236,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-null"},{"id":"libtmux.Observation","publicId":"libtmux.Observation","name":"Observation","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":384,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observation"},{"id":"libtmux.Observation:close","publicId":"libtmux.Observation:close","name":"close","kind":"method","modifiers":[],"parent":"libtmux.Observation","signatures":[{"raw":"fun(self: libtmux.Observation):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":392,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observation-close"},{"id":"libtmux.Observation:coverage","publicId":"libtmux.Observation:coverage","name":"coverage","kind":"method","modifiers":[],"parent":"libtmux.Observation","signatures":[{"raw":"fun(self: libtmux.Observation):libtmux.ObservationCoverage?, libtmux.Error?","params":[],"returns":"libtmux.ObservationCoverage?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":391,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observation-coverage"},{"id":"libtmux.Observation:subscribe_format","publicId":"libtmux.Observation:subscribe_format","name":"subscribe_format","kind":"method","modifiers":[],"parent":"libtmux.Observation","signatures":[{"raw":"fun(self: libtmux.Observation, pane: libtmux.Pane, fields: string[], options?: libtmux.WatchOptions):libtmux.Request","params":[{"name":"pane","type":"libtmux.Pane","doc":" A tmux pane."},{"name":"fields","type":"string[]"},{"name":"options","type":"libtmux.WatchOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":389,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observation-subscribe_format"},{"id":"libtmux.Observation:watch_notifications","publicId":"libtmux.Observation:watch_notifications","name":"watch_notifications","kind":"method","modifiers":[],"parent":"libtmux.Observation","signatures":[{"raw":"fun(self: libtmux.Observation, options?: libtmux.WatchOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.WatchOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":387,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observation-watch_notifications"},{"id":"libtmux.Observation:watch_pane","publicId":"libtmux.Observation:watch_pane","name":"watch_pane","kind":"method","modifiers":[],"parent":"libtmux.Observation","signatures":[{"raw":"fun(self: libtmux.Observation, pane: libtmux.Pane, options?: libtmux.WatchOptions):libtmux.Request","params":[{"name":"pane","type":"libtmux.Pane","doc":" A tmux pane."},{"name":"options","type":"libtmux.WatchOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":385,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observation-watch_pane"},{"id":"libtmux.ObservationCoverage","publicId":"libtmux.ObservationCoverage","name":"ObservationCoverage","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":378,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationcoverage"},{"id":"libtmux.ObservationCoverage.generation","publicId":"libtmux.ObservationCoverage.generation","name":"generation","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationCoverage","signatures":[],"doc":{"summary":"Opaque connection identity, distinct after reopening."},"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/observation.lua","line":381,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationcoverage-generation"},{"id":"libtmux.ObservationCoverage.panes","publicId":"libtmux.ObservationCoverage.panes","name":"panes","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationCoverage","signatures":[],"product":"core","apiScope":"exported","type":"string[]","source":{"file":"lua/libtmux/_internal/observation.lua","line":380,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationcoverage-panes"},{"id":"libtmux.ObservationCoverage.ready","publicId":"libtmux.ObservationCoverage.ready","name":"ready","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationCoverage","signatures":[],"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/observation.lua","line":382,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationcoverage-ready"},{"id":"libtmux.ObservationCoverage.session_id","publicId":"libtmux.ObservationCoverage.session_id","name":"session_id","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationCoverage","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/observation.lua","line":379,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationcoverage-session_id"},{"id":"libtmux.ObservationEvent","publicId":"libtmux.ObservationEvent","name":"ObservationEvent","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":394,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent"},{"id":"libtmux.ObservationEvent.age","publicId":"libtmux.ObservationEvent.age","name":"age","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"doc":{"summary":"Extended-output decimal age."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/observation.lua","line":401,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-age"},{"id":"libtmux.ObservationEvent.data","publicId":"libtmux.ObservationEvent.data","name":"data","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"doc":{"summary":"Byte-preserving pane output."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/observation.lua","line":400,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-data"},{"id":"libtmux.ObservationEvent.generation","publicId":"libtmux.ObservationEvent.generation","name":"generation","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/observation.lua","line":396,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-generation"},{"id":"libtmux.ObservationEvent.index","publicId":"libtmux.ObservationEvent.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/observation.lua","line":409,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-index"},{"id":"libtmux.ObservationEvent.kind","publicId":"libtmux.ObservationEvent.kind","name":"kind","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"product":"core","apiScope":"exported","type":"\"format\"|\"notification\"|\"output\"","source":{"file":"lua/libtmux/_internal/observation.lua","line":395,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-kind"},{"id":"libtmux.ObservationEvent.metadata","publicId":"libtmux.ObservationEvent.metadata","name":"metadata","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"doc":{"summary":"Extended-output metadata."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/observation.lua","line":402,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-metadata"},{"id":"libtmux.ObservationEvent.name","publicId":"libtmux.ObservationEvent.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"doc":{"summary":"Native notification name."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/observation.lua","line":403,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-name"},{"id":"libtmux.ObservationEvent.pane","publicId":"libtmux.ObservationEvent.pane","name":"pane","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/observation.lua","line":399,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-pane"},{"id":"libtmux.ObservationEvent.payload","publicId":"libtmux.ObservationEvent.payload","name":"payload","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"doc":{"summary":"Native notification payload."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/observation.lua","line":404,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-payload"},{"id":"libtmux.ObservationEvent.raw","publicId":"libtmux.ObservationEvent.raw","name":"raw","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"doc":{"summary":"Original notification line."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/observation.lua","line":405,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-raw"},{"id":"libtmux.ObservationEvent.sequence","publicId":"libtmux.ObservationEvent.sequence","name":"sequence","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"product":"core","apiScope":"exported","type":"integer","source":{"file":"lua/libtmux/_internal/observation.lua","line":398,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-sequence"},{"id":"libtmux.ObservationEvent.server_generation","publicId":"libtmux.ObservationEvent.server_generation","name":"server_generation","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/observation.lua","line":397,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-server_generation"},{"id":"libtmux.ObservationEvent.session_id","publicId":"libtmux.ObservationEvent.session_id","name":"session_id","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/observation.lua","line":407,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-session_id"},{"id":"libtmux.ObservationEvent.value","publicId":"libtmux.ObservationEvent.value","name":"value","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"doc":{"summary":"Typed format subscription value."},"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/_internal/observation.lua","line":406,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-value"},{"id":"libtmux.ObservationEvent.window_id","publicId":"libtmux.ObservationEvent.window_id","name":"window_id","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/observation.lua","line":408,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-window_id"},{"id":"libtmux.ObservationOptions","publicId":"libtmux.ObservationOptions","name":"ObservationOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":368,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationoptions"},{"id":"libtmux.ObservationOptions.max_bytes","publicId":"libtmux.ObservationOptions.max_bytes","name":"max_bytes","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationOptions","signatures":[],"doc":{"summary":"Shared retained connection bytes; default 4194304."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/observation.lua","line":369,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationoptions-max_bytes"},{"id":"libtmux.ObservationOptions.max_pending","publicId":"libtmux.ObservationOptions.max_pending","name":"max_pending","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationOptions","signatures":[],"doc":{"summary":"Shared housekeeping replies; default 128."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/observation.lua","line":370,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationoptions-max_pending"},{"id":"libtmux.ObservationOptions.max_watches","publicId":"libtmux.ObservationOptions.max_watches","name":"max_watches","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationOptions","signatures":[],"doc":{"summary":"Shared watches; default 128."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/observation.lua","line":371,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationoptions-max_watches"},{"id":"libtmux.ObservationOptions.timeout","publicId":"libtmux.ObservationOptions.timeout","name":"timeout","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationOptions","signatures":[],"doc":{"summary":"Readiness timeout in milliseconds; default 750."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/observation.lua","line":372,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationoptions-timeout"},{"id":"libtmux.OptionArrayInput","publicId":"libtmux.OptionArrayInput","name":"OptionArrayInput","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":649,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionarrayinput"},{"id":"libtmux.OptionArrayInput.entries","publicId":"libtmux.OptionArrayInput.entries","name":"entries","kind":"attribute","modifiers":[],"parent":"libtmux.OptionArrayInput","signatures":[],"product":"core","apiScope":"exported","type":"{ index: integer, value: boolean|string|number|libtmux.HookProgram }[]","source":{"file":"lua/libtmux/_internal/settings.lua","line":650,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionarrayinput-entries"},{"id":"libtmux.OptionDescriptor","publicId":"libtmux.OptionDescriptor","name":"OptionDescriptor","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":5,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor"},{"id":"libtmux.OptionDescriptor.array","publicId":"libtmux.OptionDescriptor.array","name":"array","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":11,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-array"},{"id":"libtmux.OptionDescriptor.array_separator","publicId":"libtmux.OptionDescriptor.array_separator","name":"array_separator","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":15,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-array_separator"},{"id":"libtmux.OptionDescriptor.choices","publicId":"libtmux.OptionDescriptor.choices","name":"choices","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"string[]?","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":20,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-choices"},{"id":"libtmux.OptionDescriptor.flags_bits","publicId":"libtmux.OptionDescriptor.flags_bits","name":"flags_bits","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"integer","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":10,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-flags_bits"},{"id":"libtmux.OptionDescriptor.hook","publicId":"libtmux.OptionDescriptor.hook","name":"hook","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":12,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-hook"},{"id":"libtmux.OptionDescriptor.maximum","publicId":"libtmux.OptionDescriptor.maximum","name":"maximum","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":17,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-maximum"},{"id":"libtmux.OptionDescriptor.maximum_expression","publicId":"libtmux.OptionDescriptor.maximum_expression","name":"maximum_expression","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":19,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-maximum_expression"},{"id":"libtmux.OptionDescriptor.minimum","publicId":"libtmux.OptionDescriptor.minimum","name":"minimum","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":16,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-minimum"},{"id":"libtmux.OptionDescriptor.minimum_expression","publicId":"libtmux.OptionDescriptor.minimum_expression","name":"minimum_expression","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":18,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-minimum_expression"},{"id":"libtmux.OptionDescriptor.name","publicId":"libtmux.OptionDescriptor.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":6,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-name"},{"id":"libtmux.OptionDescriptor.native_type","publicId":"libtmux.OptionDescriptor.native_type","name":"native_type","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"'choice'|'colour'|'command'|'flag'|'key'...(+2)","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":7,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-native_type"},{"id":"libtmux.OptionDescriptor.pattern","publicId":"libtmux.OptionDescriptor.pattern","name":"pattern","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":21,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-pattern"},{"id":"libtmux.OptionDescriptor.scope_bits","publicId":"libtmux.OptionDescriptor.scope_bits","name":"scope_bits","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"integer","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":8,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-scope_bits"},{"id":"libtmux.OptionDescriptor.scopes","publicId":"libtmux.OptionDescriptor.scopes","name":"scopes","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"('pane'|'server'|'session'|'window')[]","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":9,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-scopes"},{"id":"libtmux.OptionDescriptor.separator","publicId":"libtmux.OptionDescriptor.separator","name":"separator","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":14,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-separator"},{"id":"libtmux.OptionDescriptor.style","publicId":"libtmux.OptionDescriptor.style","name":"style","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":13,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-style"},{"id":"libtmux.OptionDescriptor.unit","publicId":"libtmux.OptionDescriptor.unit","name":"unit","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":22,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-unit"},{"id":"libtmux.OptionEntry","publicId":"libtmux.OptionEntry","name":"OptionEntry","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":645,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionentry"},{"id":"libtmux.OptionEntry.index","publicId":"libtmux.OptionEntry.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.OptionEntry","signatures":[],"doc":{"summary":"Zero-based native array index."},"product":"core","apiScope":"exported","type":"integer","source":{"file":"lua/libtmux/_internal/settings.lua","line":646,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionentry-index"},{"id":"libtmux.OptionEntry.value","publicId":"libtmux.OptionEntry.value","name":"value","kind":"attribute","modifiers":[],"parent":"libtmux.OptionEntry","signatures":[],"product":"core","apiScope":"exported","type":"boolean|string|number","source":{"file":"lua/libtmux/_internal/settings.lua","line":647,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionentry-value"},{"id":"libtmux.OptionInput","publicId":"libtmux.OptionInput","name":"OptionInput","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.OptionInput","source":{"file":"lua/libtmux/_internal/settings.lua","line":652,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optioninput"},{"id":"libtmux.OptionName","publicId":"libtmux.OptionName","name":"OptionName","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.OptionName","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":24,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionname"},{"id":"libtmux.OptionRecord","publicId":"libtmux.OptionRecord","name":"OptionRecord","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":676,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionrecord"},{"id":"libtmux.OptionRecord.entries","publicId":"libtmux.OptionRecord.entries","name":"entries","kind":"attribute","modifiers":[],"parent":"libtmux.OptionRecord","signatures":[],"doc":{"summary":"Ordered sparse entries; empty is distinct from absent."},"product":"core","apiScope":"exported","type":"libtmux.OptionEntry[]?","source":{"file":"lua/libtmux/_internal/settings.lua","line":684,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionrecord-entries"},{"id":"libtmux.OptionRecord.inherited","publicId":"libtmux.OptionRecord.inherited","name":"inherited","kind":"attribute","modifiers":[],"parent":"libtmux.OptionRecord","signatures":[],"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/settings.lua","line":682,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionrecord-inherited"},{"id":"libtmux.OptionRecord.name","publicId":"libtmux.OptionRecord.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.OptionRecord","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/settings.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionrecord-name"},{"id":"libtmux.OptionRecord.present","publicId":"libtmux.OptionRecord.present","name":"present","kind":"attribute","modifiers":[],"parent":"libtmux.OptionRecord","signatures":[],"doc":{"summary":"False distinguishes absent from empty and false."},"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/settings.lua","line":681,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionrecord-present"},{"id":"libtmux.OptionRecord.scope","publicId":"libtmux.OptionRecord.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.OptionRecord","signatures":[],"doc":{"summary":"Requested storage scope."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/settings.lua","line":679,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionrecord-scope"},{"id":"libtmux.OptionRecord.target","publicId":"libtmux.OptionRecord.target","name":"target","kind":"attribute","modifiers":[],"parent":"libtmux.OptionRecord","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Reference","source":{"file":"lua/libtmux/_internal/settings.lua","line":680,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionrecord-target"},{"id":"libtmux.OptionRecord.type","publicId":"libtmux.OptionRecord.type","name":"type","kind":"attribute","modifiers":[],"parent":"libtmux.OptionRecord","signatures":[],"product":"core","apiScope":"exported","type":"'choice'|'colour'|'command'|'flag'|'key'...(+2)","source":{"file":"lua/libtmux/_internal/settings.lua","line":678,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionrecord-type"},{"id":"libtmux.OptionRecord.value","publicId":"libtmux.OptionRecord.value","name":"value","kind":"attribute","modifiers":[],"parent":"libtmux.OptionRecord","signatures":[],"doc":{"summary":"Canonical text for key, colour, style and command types."},"product":"core","apiScope":"exported","type":"(boolean|string|number)?","source":{"file":"lua/libtmux/_internal/settings.lua","line":683,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionrecord-value"},{"id":"libtmux.Pane","publicId":"libtmux.Pane","name":"Pane","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":471,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane"},{"id":"libtmux.Pane:break_out","publicId":"libtmux.Pane:break_out","name":"break_out","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, source_link: libtmux.WindowLink, destination: libtmux.LinkDestination, options?: libtmux.BreakPaneOptions):libtmux.Request","params":[{"name":"source_link","type":"libtmux.WindowLink","doc":" One placement of a window in a session: a window can be linked into several."},{"name":"destination","type":"libtmux.LinkDestination"},{"name":"options","type":"libtmux.BreakPaneOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":504,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-break_out"},{"id":"libtmux.Pane:capture","publicId":"libtmux.Pane:capture","name":"capture","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, options?: libtmux.CaptureOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.CaptureOptions?","default":"nil"}],"returns":"libtmux.Request"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Capture a completed command's output from a pane. Use Lua 5.5.1, LuaRocks, Git, tmux 3.2a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as capture.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/capture.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n local created = must(server:new_session({ name = \"demo\", argv = { \"/bin/sh\" } }):await())\n local pane = created.pane\n local function quote(text)\n return \"'\" .. text:gsub(\"'\", \"'\\\\''\") .. \"'\"\n end\n\n -- Signal completion on this socket; do not guess when the shell has printed.\n local command = \"printf '\\\\nlua capture ready\\\\n'; \"\n .. quote(binary)\n .. \" -S \"\n .. quote(socket)\n .. \" wait-for -S example-ready\"\n must(pane:send_text(command):await())\n must(pane:send_keys({ \"Enter\" }):await())\n must(server:command({ \"wait-for\", \"example-ready\" }, { timeout = 1000 }):await())\n local capture = must(pane:capture({ history_lines = 20 }):await())\n local found = false\n for line in must(capture:text()):gmatch(\"[^\\r\\n]+\") do\n if line == \"lua capture ready\" then\n found = true\n end\n end\n assert(found, \"completed command did not print the expected line\")\n print(\"lua capture ready\")\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh capture.lua\n"}]},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":476,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-capture"},{"id":"libtmux.Pane:capture_to_buffer","publicId":"libtmux.Pane:capture_to_buffer","name":"capture_to_buffer","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, name: string, options?: libtmux.CaptureOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.CaptureOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":492,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-capture_to_buffer"},{"id":"libtmux.Pane:clear_history","publicId":"libtmux.Pane:clear_history","name":"clear_history","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, options?: libtmux.ClearHistoryOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.ClearHistoryOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":490,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-clear_history"},{"id":"libtmux.Pane:copy_command","publicId":"libtmux.Pane:copy_command","name":"copy_command","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, action: string, args?: string[], options?: libtmux.KeyOptions):libtmux.Request","params":[{"name":"action","type":"string"},{"name":"args","type":"string[]?","default":"nil"},{"name":"options","type":"libtmux.KeyOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":498,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-copy_command"},{"id":"libtmux.Pane:copy_mode","publicId":"libtmux.Pane:copy_mode","name":"copy_mode","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, options?: libtmux.CopyModeOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.CopyModeOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":496,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-copy_mode"},{"id":"libtmux.Pane:get_hook","publicId":"libtmux.Pane:get_hook","name":"get_hook","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":402,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-pane-get_hook"},{"id":"libtmux.Pane:get_option","publicId":"libtmux.Pane:get_option","name":"get_option","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":391,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-pane-get_option"},{"id":"libtmux.Pane:kill","publicId":"libtmux.Pane:kill","name":"kill","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, options?: libtmux.PaneOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.PaneOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":480,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-kill"},{"id":"libtmux.Pane:list_hooks","publicId":"libtmux.Pane:list_hooks","name":"list_hooks","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Configurable, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":404,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-pane-list_hooks"},{"id":"libtmux.Pane:list_options","publicId":"libtmux.Pane:list_options","name":"list_options","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Configurable, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":394,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-pane-list_options"},{"id":"libtmux.Pane:move_to","publicId":"libtmux.Pane:move_to","name":"move_to","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, other: libtmux.Pane, options?: libtmux.MovePaneOptions):libtmux.Request","params":[{"name":"other","type":"libtmux.Pane","doc":" A tmux pane."},{"name":"options","type":"libtmux.MovePaneOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":502,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-move_to"},{"id":"libtmux.Pane:paste_buffer","publicId":"libtmux.Pane:paste_buffer","name":"paste_buffer","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, name: string, options?: libtmux.PasteBufferOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.PasteBufferOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":494,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-paste_buffer"},{"id":"libtmux.Pane:reference","publicId":"libtmux.Pane:reference","name":"reference","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Reference?, libtmux.Error?","params":[],"returns":"libtmux.Reference?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":384,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-pane-reference"},{"id":"libtmux.Pane:resize","publicId":"libtmux.Pane:resize","name":"resize","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, options: libtmux.ResizePaneOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.ResizePaneOptions"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":484,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-resize"},{"id":"libtmux.Pane:respawn","publicId":"libtmux.Pane:respawn","name":"respawn","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, options?: libtmux.RespawnOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.RespawnOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":486,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-respawn"},{"id":"libtmux.Pane:run_hook","publicId":"libtmux.Pane:run_hook","name":"run_hook","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.RunHookOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.RunHookOptions?","default":"nil","doc":" Running a hook reads only its handle's own scope."}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":412,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-pane-run_hook"},{"id":"libtmux.Pane:select","publicId":"libtmux.Pane:select","name":"select","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, options?: libtmux.SelectPaneOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SelectPaneOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":482,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-select"},{"id":"libtmux.Pane:send_keys","publicId":"libtmux.Pane:send_keys","name":"send_keys","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, keys: string[], options?: libtmux.KeyOptions):libtmux.Request","params":[{"name":"keys","type":"string[]"},{"name":"options","type":"libtmux.KeyOptions?","default":"nil"}],"returns":"libtmux.Request"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Send literal text and press Enter in a pane. Use Lua 5.5.1, LuaRocks, Git, tmux 3.2a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as send_keys.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/send_keys.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n local created = must(server:new_session({ name = \"demo\", argv = { \"/bin/sh\" } }):await())\n local pane = created.pane\n local function quote(text)\n return \"'\" .. text:gsub(\"'\", \"'\\\\''\") .. \"'\"\n end\n\n -- Signal completion on this socket; do not guess when the shell has printed.\n local command = \"printf '\\\\nlua input ready\\\\n'; \"\n .. quote(binary)\n .. \" -S \"\n .. quote(socket)\n .. \" wait-for -S example-ready\"\n must(pane:send_text(command):await())\n must(pane:send_keys({ \"Enter\" }):await())\n must(server:command({ \"wait-for\", \"example-ready\" }, { timeout = 1000 }):await())\n local capture = must(pane:capture({ history_lines = 20 }):await())\n local found = false\n for line in must(capture:text()):gmatch(\"[^\\r\\n]+\") do\n if line == \"lua input ready\" then\n found = true\n end\n end\n assert(found, \"completed command did not print the expected line\")\n print(\"lua input ready\")\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh send_keys.lua\n"}]},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":472,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-send_keys"},{"id":"libtmux.Pane:send_text","publicId":"libtmux.Pane:send_text","name":"send_text","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, text: string, options?: libtmux.PaneOptions):libtmux.Request","params":[{"name":"text","type":"string"},{"name":"options","type":"libtmux.PaneOptions?","default":"nil"}],"returns":"libtmux.Request"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Send literal text and press Enter in a pane. Use Lua 5.5.1, LuaRocks, Git, tmux 3.2a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as send_keys.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/send_keys.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n local created = must(server:new_session({ name = \"demo\", argv = { \"/bin/sh\" } }):await())\n local pane = created.pane\n local function quote(text)\n return \"'\" .. text:gsub(\"'\", \"'\\\\''\") .. \"'\"\n end\n\n -- Signal completion on this socket; do not guess when the shell has printed.\n local command = \"printf '\\\\nlua input ready\\\\n'; \"\n .. quote(binary)\n .. \" -S \"\n .. quote(socket)\n .. \" wait-for -S example-ready\"\n must(pane:send_text(command):await())\n must(pane:send_keys({ \"Enter\" }):await())\n must(server:command({ \"wait-for\", \"example-ready\" }, { timeout = 1000 }):await())\n local capture = must(pane:capture({ history_lines = 20 }):await())\n local found = false\n for line in must(capture:text()):gmatch(\"[^\\r\\n]+\") do\n if line == \"lua input ready\" then\n found = true\n end\n end\n assert(found, \"completed command did not print the expected line\")\n print(\"lua input ready\")\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh send_keys.lua\n"}]},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":474,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-send_text"},{"id":"libtmux.Pane:set_hook","publicId":"libtmux.Pane:set_hook","name":"set_hook","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, value: libtmux.HookProgram, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"libtmux.HookProgram"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":406,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-pane-set_hook"},{"id":"libtmux.Pane:set_option","publicId":"libtmux.Pane:set_option","name":"set_option","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, value: boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":396,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-pane-set_option"},{"id":"libtmux.Pane:set_title","publicId":"libtmux.Pane:set_title","name":"set_title","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, text: string, options?: libtmux.PaneOptions):libtmux.Request","params":[{"name":"text","type":"string"},{"name":"options","type":"libtmux.PaneOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":488,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-set_title"},{"id":"libtmux.Pane:snapshot","publicId":"libtmux.Pane:snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":386,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-pane-snapshot"},{"id":"libtmux.Pane:split","publicId":"libtmux.Pane:split","name":"split","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, options?: libtmux.SplitOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SplitOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":478,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-split"},{"id":"libtmux.Pane:swap","publicId":"libtmux.Pane:swap","name":"swap","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, other: libtmux.Pane, options?: libtmux.SwapPaneOptions):libtmux.Request","params":[{"name":"other","type":"libtmux.Pane","doc":" A tmux pane."},{"name":"options","type":"libtmux.SwapPaneOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":500,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-swap"},{"id":"libtmux.Pane:unset_hook","publicId":"libtmux.Pane:unset_hook","name":"unset_hook","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":409,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-pane-unset_hook"},{"id":"libtmux.Pane:unset_option","publicId":"libtmux.Pane:unset_option","name":"unset_option","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":399,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-pane-unset_option"},{"id":"libtmux.PaneOptions","publicId":"libtmux.PaneOptions","name":"PaneOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":599,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-paneoptions"},{"id":"libtmux.PaneOptions.process","publicId":"libtmux.PaneOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.PaneOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/pane.lua","line":600,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-paneoptions-process"},{"id":"libtmux.PasteBufferOptions","publicId":"libtmux.PasteBufferOptions","name":"PasteBufferOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/buffer.lua","line":294,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pastebufferoptions"},{"id":"libtmux.PasteBufferOptions.bracket","publicId":"libtmux.PasteBufferOptions.bracket","name":"bracket","kind":"attribute","modifiers":[],"parent":"libtmux.PasteBufferOptions","signatures":[],"doc":{"summary":"Wrap only when native bracketed paste mode is enabled."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/buffer.lua","line":298,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pastebufferoptions-bracket"},{"id":"libtmux.PasteBufferOptions.bytes","publicId":"libtmux.PasteBufferOptions.bytes","name":"bytes","kind":"attribute","modifiers":[],"parent":"libtmux.PasteBufferOptions","signatures":[],"doc":{"summary":"Native defaults follow the daemon; raw disables 3.7+ sanitization."},"product":"core","apiScope":"exported","type":"(\"native\"|\"raw\")?","source":{"file":"lua/libtmux/_internal/buffer.lua","line":295,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pastebufferoptions-bytes"},{"id":"libtmux.PasteBufferOptions.delete_after","publicId":"libtmux.PasteBufferOptions.delete_after","name":"delete_after","kind":"attribute","modifiers":[],"parent":"libtmux.PasteBufferOptions","signatures":[],"doc":{"summary":"Native deletion can succeed even when pane input is disabled."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/buffer.lua","line":299,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pastebufferoptions-delete_after"},{"id":"libtmux.PasteBufferOptions.linefeed_separator","publicId":"libtmux.PasteBufferOptions.linefeed_separator","name":"linefeed_separator","kind":"attribute","modifiers":[],"parent":"libtmux.PasteBufferOptions","signatures":[],"doc":{"summary":"Preserve LF instead of native LF-to-CR conversion."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/buffer.lua","line":296,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pastebufferoptions-linefeed_separator"},{"id":"libtmux.PasteBufferOptions.process","publicId":"libtmux.PasteBufferOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.PasteBufferOptions","signatures":[],"doc":{"summary":"Output limit is at most one MiB."},"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/buffer.lua","line":292,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.BufferOptions","slug":"libtmux-pastebufferoptions-process"},{"id":"libtmux.PasteBufferOptions.separator","publicId":"libtmux.PasteBufferOptions.separator","name":"separator","kind":"attribute","modifiers":[],"parent":"libtmux.PasteBufferOptions","signatures":[],"doc":{"summary":"Explicit NUL-free separator; excludes linefeed_separator."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/buffer.lua","line":297,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pastebufferoptions-separator"},{"id":"libtmux.Predicate","publicId":"libtmux.Predicate","name":"Predicate","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Predicate","source":{"file":"lua/libtmux/query.lua","line":291,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-predicate"},{"id":"libtmux.QueryError","publicId":"libtmux.QueryError","name":"QueryError","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":230,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryerror"},{"id":"libtmux.QueryError.code","publicId":"libtmux.QueryError.code","name":"code","kind":"attribute","modifiers":[],"parent":"libtmux.QueryError","signatures":[],"doc":{"summary":"Stable machine-readable error code."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/query.lua","line":231,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryerror-code"},{"id":"libtmux.QueryError.message","publicId":"libtmux.QueryError.message","name":"message","kind":"attribute","modifiers":[],"parent":"libtmux.QueryError","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/query.lua","line":233,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryerror-message"},{"id":"libtmux.QueryError.operation","publicId":"libtmux.QueryError.operation","name":"operation","kind":"attribute","modifiers":[],"parent":"libtmux.QueryError","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/query.lua","line":232,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryerror-operation"},{"id":"libtmux.QueryError.path","publicId":"libtmux.QueryError.path","name":"path","kind":"attribute","modifiers":[],"parent":"libtmux.QueryError","signatures":[],"doc":{"summary":"Criteria, schema, or data path."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/query.lua","line":234,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryerror-path"},{"id":"libtmux.QueryField","publicId":"libtmux.QueryField","name":"QueryField","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":238,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryfield"},{"id":"libtmux.QueryField.nullable","publicId":"libtmux.QueryField.nullable","name":"nullable","kind":"attribute","modifiers":[],"parent":"libtmux.QueryField","signatures":[],"doc":{"summary":"Defaults to false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/query.lua","line":240,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryfield-nullable"},{"id":"libtmux.QueryField.supported","publicId":"libtmux.QueryField.supported","name":"supported","kind":"attribute","modifiers":[],"parent":"libtmux.QueryField","signatures":[],"doc":{"summary":"Defaults to true."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/query.lua","line":241,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryfield-supported"},{"id":"libtmux.QueryField.type","publicId":"libtmux.QueryField.type","name":"type","kind":"attribute","modifiers":[],"parent":"libtmux.QueryField","signatures":[],"product":"core","apiScope":"exported","type":"\"boolean\"|\"number\"|\"string\"","source":{"file":"lua/libtmux/query.lua","line":239,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryfield-type"},{"id":"libtmux.QueryInput","publicId":"libtmux.QueryInput","name":"QueryInput","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.QueryInput","source":{"file":"lua/libtmux/query.lua","line":290,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryinput"},{"id":"libtmux.QueryRelation","publicId":"libtmux.QueryRelation","name":"QueryRelation","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":243,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryrelation"},{"id":"libtmux.QueryRelation.cardinality","publicId":"libtmux.QueryRelation.cardinality","name":"cardinality","kind":"attribute","modifiers":[],"parent":"libtmux.QueryRelation","signatures":[],"product":"core","apiScope":"exported","type":"\"many\"|\"one\"","source":{"file":"lua/libtmux/query.lua","line":244,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryrelation-cardinality"},{"id":"libtmux.QueryRelation.nullable","publicId":"libtmux.QueryRelation.nullable","name":"nullable","kind":"attribute","modifiers":[],"parent":"libtmux.QueryRelation","signatures":[],"doc":{"summary":"Only to-one relations can be nullable."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/query.lua","line":246,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryrelation-nullable"},{"id":"libtmux.QueryRelation.schema","publicId":"libtmux.QueryRelation.schema","name":"schema","kind":"attribute","modifiers":[],"parent":"libtmux.QueryRelation","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.QuerySchema","source":{"file":"lua/libtmux/query.lua","line":245,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryrelation-schema"},{"id":"libtmux.QueryRelation.supported","publicId":"libtmux.QueryRelation.supported","name":"supported","kind":"attribute","modifiers":[],"parent":"libtmux.QueryRelation","signatures":[],"doc":{"summary":"Defaults to true."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/query.lua","line":247,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryrelation-supported"},{"id":"libtmux.QueryScalar","publicId":"libtmux.QueryScalar","name":"QueryScalar","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.QueryScalar","source":{"file":"lua/libtmux/query.lua","line":254,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryscalar"},{"id":"libtmux.QuerySchema","publicId":"libtmux.QuerySchema","name":"QuerySchema","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":249,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryschema"},{"id":"libtmux.QuerySchema.fields","publicId":"libtmux.QuerySchema.fields","name":"fields","kind":"attribute","modifiers":[],"parent":"libtmux.QuerySchema","signatures":[],"doc":{"summary":"Supply fields or relations."},"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/query.lua","line":251,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryschema-fields"},{"id":"libtmux.QuerySchema.name","publicId":"libtmux.QuerySchema.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.QuerySchema","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/query.lua","line":250,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryschema-name"},{"id":"libtmux.QuerySchema.relations","publicId":"libtmux.QuerySchema.relations","name":"relations","kind":"attribute","modifiers":[],"parent":"libtmux.QuerySchema","signatures":[],"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/query.lua","line":252,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryschema-relations"},{"id":"libtmux.Reference","publicId":"libtmux.Reference","name":"Reference","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":370,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-reference"},{"id":"libtmux.Reference.generation","publicId":"libtmux.Reference.generation","name":"generation","kind":"attribute","modifiers":[],"parent":"libtmux.Reference","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/entity.lua","line":372,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-reference-generation"},{"id":"libtmux.Reference.id","publicId":"libtmux.Reference.id","name":"id","kind":"attribute","modifiers":[],"parent":"libtmux.Reference","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/entity.lua","line":373,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-reference-id"},{"id":"libtmux.Reference.index","publicId":"libtmux.Reference.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.Reference","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/entity.lua","line":378,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-reference-index"},{"id":"libtmux.Reference.kind","publicId":"libtmux.Reference.kind","name":"kind","kind":"attribute","modifiers":[],"parent":"libtmux.Reference","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/entity.lua","line":371,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-reference-kind"},{"id":"libtmux.Reference.name","publicId":"libtmux.Reference.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.Reference","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/entity.lua","line":374,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-reference-name"},{"id":"libtmux.Reference.session_id","publicId":"libtmux.Reference.session_id","name":"session_id","kind":"attribute","modifiers":[],"parent":"libtmux.Reference","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/entity.lua","line":376,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-reference-session_id"},{"id":"libtmux.Reference.tty","publicId":"libtmux.Reference.tty","name":"tty","kind":"attribute","modifiers":[],"parent":"libtmux.Reference","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/entity.lua","line":375,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-reference-tty"},{"id":"libtmux.Reference.window_id","publicId":"libtmux.Reference.window_id","name":"window_id","kind":"attribute","modifiers":[],"parent":"libtmux.Reference","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/entity.lua","line":377,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-reference-window_id"},{"id":"libtmux.RelationCriteria","publicId":"libtmux.RelationCriteria","name":"RelationCriteria","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":270,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-relationcriteria"},{"id":"libtmux.RelationCriteria.every","publicId":"libtmux.RelationCriteria.every","name":"every","kind":"attribute","modifiers":[],"parent":"libtmux.RelationCriteria","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.Where)?","source":{"file":"lua/libtmux/query.lua","line":272,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-relationcriteria-every"},{"id":"libtmux.RelationCriteria.is","publicId":"libtmux.RelationCriteria.is","name":"is","kind":"attribute","modifiers":[],"parent":"libtmux.RelationCriteria","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.Null|libtmux.Where)?","source":{"file":"lua/libtmux/query.lua","line":274,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-relationcriteria-is"},{"id":"libtmux.RelationCriteria.is_not","publicId":"libtmux.RelationCriteria.is_not","name":"is_not","kind":"attribute","modifiers":[],"parent":"libtmux.RelationCriteria","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.Null|libtmux.Where)?","source":{"file":"lua/libtmux/query.lua","line":275,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-relationcriteria-is_not"},{"id":"libtmux.RelationCriteria.none","publicId":"libtmux.RelationCriteria.none","name":"none","kind":"attribute","modifiers":[],"parent":"libtmux.RelationCriteria","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.Where)?","source":{"file":"lua/libtmux/query.lua","line":273,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-relationcriteria-none"},{"id":"libtmux.RelationCriteria.some","publicId":"libtmux.RelationCriteria.some","name":"some","kind":"attribute","modifiers":[],"parent":"libtmux.RelationCriteria","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.Where)?","source":{"file":"lua/libtmux/query.lua","line":271,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-relationcriteria-some"},{"id":"libtmux.Request","publicId":"libtmux.Request","name":"Request","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1026,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-request"},{"id":"libtmux.Request:await","publicId":"libtmux.Request:await","name":"await","kind":"method","modifiers":[],"parent":"libtmux.Request","signatures":[{"raw":"fun(self: libtmux.Request):?, libtmux.Error?","params":[],"returns":"?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1027,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-request-await"},{"id":"libtmux.Request:cancel","publicId":"libtmux.Request:cancel","name":"cancel","kind":"method","modifiers":[],"parent":"libtmux.Request","signatures":[{"raw":"fun(self: libtmux.Request, reason?: string|libtmux.Error):boolean","params":[{"name":"reason","type":"string|libtmux.Error?","default":"nil"}],"returns":"boolean"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1029,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-request-cancel"},{"id":"libtmux.Request:is_retired","publicId":"libtmux.Request:is_retired","name":"is_retired","kind":"method","modifiers":[],"parent":"libtmux.Request","signatures":[{"raw":"fun(self: libtmux.Request):boolean","params":[],"returns":"boolean"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1031,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-request-is_retired"},{"id":"libtmux.Request:is_settled","publicId":"libtmux.Request:is_settled","name":"is_settled","kind":"method","modifiers":[],"parent":"libtmux.Request","signatures":[{"raw":"fun(self: libtmux.Request):boolean","params":[],"returns":"boolean"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1030,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-request-is_settled"},{"id":"libtmux.Request:on_complete","publicId":"libtmux.Request:on_complete","name":"on_complete","kind":"method","modifiers":[],"parent":"libtmux.Request","signatures":[{"raw":"fun(self: libtmux.Request, callback: fun(value?: , err?: libtmux.Error)):libtmux.Request","params":[{"name":"callback","type":"fun(value?: , err?: libtmux.Error)"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1032,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-request-on_complete"},{"id":"libtmux.Request:result","publicId":"libtmux.Request:result","name":"result","kind":"method","modifiers":[],"parent":"libtmux.Request","signatures":[{"raw":"fun(self: libtmux.Request):?, libtmux.Error?","params":[],"returns":"?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1028,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-request-result"},{"id":"libtmux.ResizePaneOptions","publicId":"libtmux.ResizePaneOptions","name":"ResizePaneOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":628,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizepaneoptions"},{"id":"libtmux.ResizePaneOptions.amount","publicId":"libtmux.ResizePaneOptions.amount","name":"amount","kind":"attribute","modifiers":[],"parent":"libtmux.ResizePaneOptions","signatures":[],"doc":{"summary":"Defaults to 1 when direction is given."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/pane.lua","line":632,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizepaneoptions-amount"},{"id":"libtmux.ResizePaneOptions.direction","publicId":"libtmux.ResizePaneOptions.direction","name":"direction","kind":"attribute","modifiers":[],"parent":"libtmux.ResizePaneOptions","signatures":[],"doc":{"summary":"Mutually exclusive with dimensions."},"product":"core","apiScope":"exported","type":"(\"down\"|\"left\"|\"right\"|\"up\")?","source":{"file":"lua/libtmux/_internal/pane.lua","line":631,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizepaneoptions-direction"},{"id":"libtmux.ResizePaneOptions.height","publicId":"libtmux.ResizePaneOptions.height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux.ResizePaneOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/pane.lua","line":630,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizepaneoptions-height"},{"id":"libtmux.ResizePaneOptions.process","publicId":"libtmux.ResizePaneOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.ResizePaneOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/pane.lua","line":600,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.PaneOptions","slug":"libtmux-resizepaneoptions-process"},{"id":"libtmux.ResizePaneOptions.width","publicId":"libtmux.ResizePaneOptions.width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux.ResizePaneOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/pane.lua","line":629,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizepaneoptions-width"},{"id":"libtmux.ResizeWindowOptions","publicId":"libtmux.ResizeWindowOptions","name":"ResizeWindowOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":682,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizewindowoptions"},{"id":"libtmux.ResizeWindowOptions.amount","publicId":"libtmux.ResizeWindowOptions.amount","name":"amount","kind":"attribute","modifiers":[],"parent":"libtmux.ResizeWindowOptions","signatures":[],"doc":{"summary":"From 1 to 10000; defaults to 1 with direction."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/topology.lua","line":686,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizewindowoptions-amount"},{"id":"libtmux.ResizeWindowOptions.direction","publicId":"libtmux.ResizeWindowOptions.direction","name":"direction","kind":"attribute","modifiers":[],"parent":"libtmux.ResizeWindowOptions","signatures":[],"product":"core","apiScope":"exported","type":"('down'|'left'|'right'|'up')?","source":{"file":"lua/libtmux/_internal/topology.lua","line":685,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizewindowoptions-direction"},{"id":"libtmux.ResizeWindowOptions.height","publicId":"libtmux.ResizeWindowOptions.height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux.ResizeWindowOptions","signatures":[],"doc":{"summary":"From 1 to 10000."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/topology.lua","line":684,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizewindowoptions-height"},{"id":"libtmux.ResizeWindowOptions.largest","publicId":"libtmux.ResizeWindowOptions.largest","name":"largest","kind":"attribute","modifiers":[],"parent":"libtmux.ResizeWindowOptions","signatures":[],"doc":{"summary":"Native largest sizing; excludes dimensions and other modes."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":687,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizewindowoptions-largest"},{"id":"libtmux.ResizeWindowOptions.process","publicId":"libtmux.ResizeWindowOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.ResizeWindowOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.TopologyOptions","slug":"libtmux-resizewindowoptions-process"},{"id":"libtmux.ResizeWindowOptions.smallest","publicId":"libtmux.ResizeWindowOptions.smallest","name":"smallest","kind":"attribute","modifiers":[],"parent":"libtmux.ResizeWindowOptions","signatures":[],"doc":{"summary":"Native smallest sizing; excludes dimensions and other modes."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":688,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizewindowoptions-smallest"},{"id":"libtmux.ResizeWindowOptions.width","publicId":"libtmux.ResizeWindowOptions.width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux.ResizeWindowOptions","signatures":[],"doc":{"summary":"From 1 to 10000; dimensions exclude direction and policies."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/topology.lua","line":683,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizewindowoptions-width"},{"id":"libtmux.RespawnOptions","publicId":"libtmux.RespawnOptions","name":"RespawnOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":634,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-respawnoptions"},{"id":"libtmux.RespawnOptions.argv","publicId":"libtmux.RespawnOptions.argv","name":"argv","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnOptions","signatures":[],"doc":{"summary":"Literal command arguments; mutually exclusive with shell."},"product":"core","apiScope":"exported","type":"string[]?","source":{"file":"lua/libtmux/_internal/domain.lua","line":458,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnoptions-argv"},{"id":"libtmux.RespawnOptions.cwd","publicId":"libtmux.RespawnOptions.cwd","name":"cwd","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnOptions","signatures":[],"doc":{"summary":"Absolute working directory."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":457,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnoptions-cwd"},{"id":"libtmux.RespawnOptions.environment","publicId":"libtmux.RespawnOptions.environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnOptions","signatures":[],"doc":{"summary":"Environment for the created scope."},"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/_internal/domain.lua","line":460,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnoptions-environment"},{"id":"libtmux.RespawnOptions.kill","publicId":"libtmux.RespawnOptions.kill","name":"kill","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnOptions","signatures":[],"doc":{"summary":"Replace an active program; defaults to false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":635,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-respawnoptions-kill"},{"id":"libtmux.RespawnOptions.process","publicId":"libtmux.RespawnOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/domain.lua","line":461,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnoptions-process"},{"id":"libtmux.RespawnOptions.shell","publicId":"libtmux.RespawnOptions.shell","name":"shell","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnOptions","signatures":[],"doc":{"summary":"Explicit shell program."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":459,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnoptions-shell"},{"id":"libtmux.RespawnWindowOptions","publicId":"libtmux.RespawnWindowOptions","name":"RespawnWindowOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":722,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-respawnwindowoptions"},{"id":"libtmux.RespawnWindowOptions.argv","publicId":"libtmux.RespawnWindowOptions.argv","name":"argv","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnWindowOptions","signatures":[],"doc":{"summary":"Literal command arguments; mutually exclusive with shell."},"product":"core","apiScope":"exported","type":"string[]?","source":{"file":"lua/libtmux/_internal/domain.lua","line":458,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnwindowoptions-argv"},{"id":"libtmux.RespawnWindowOptions.context","publicId":"libtmux.RespawnWindowOptions.context","name":"context","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnWindowOptions","signatures":[],"doc":{"summary":"Required placement of this Window."},"product":"core","apiScope":"exported","type":"libtmux.WindowLink","source":{"file":"lua/libtmux/_internal/topology.lua","line":723,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-respawnwindowoptions-context"},{"id":"libtmux.RespawnWindowOptions.cwd","publicId":"libtmux.RespawnWindowOptions.cwd","name":"cwd","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnWindowOptions","signatures":[],"doc":{"summary":"Absolute working directory."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":457,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnwindowoptions-cwd"},{"id":"libtmux.RespawnWindowOptions.environment","publicId":"libtmux.RespawnWindowOptions.environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnWindowOptions","signatures":[],"doc":{"summary":"Environment for the created scope."},"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/_internal/domain.lua","line":460,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnwindowoptions-environment"},{"id":"libtmux.RespawnWindowOptions.kill","publicId":"libtmux.RespawnWindowOptions.kill","name":"kill","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnWindowOptions","signatures":[],"doc":{"summary":"Permit replacing running pane processes; defaults to false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":724,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-respawnwindowoptions-kill"},{"id":"libtmux.RespawnWindowOptions.process","publicId":"libtmux.RespawnWindowOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnWindowOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/domain.lua","line":461,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnwindowoptions-process"},{"id":"libtmux.RespawnWindowOptions.shell","publicId":"libtmux.RespawnWindowOptions.shell","name":"shell","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnWindowOptions","signatures":[],"doc":{"summary":"Explicit shell program."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":459,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnwindowoptions-shell"},{"id":"libtmux.RunHookOptions","publicId":"libtmux.RunHookOptions","name":"RunHookOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":673,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runhookoptions"},{"id":"libtmux.RunHookOptions.process","publicId":"libtmux.RunHookOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.RunHookOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/settings.lua","line":674,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runhookoptions-process"},{"id":"libtmux.Runtime","publicId":"libtmux.Runtime","name":"Runtime","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1045,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime"},{"id":"libtmux.Runtime:close","publicId":"libtmux.Runtime:close","name":"close","kind":"method","modifiers":[],"parent":"libtmux.Runtime","signatures":[{"raw":"fun(self: libtmux.Runtime, reason?: string):libtmux.Request","params":[{"name":"reason","type":"string?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1050,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime-close"},{"id":"libtmux.Runtime:connect","publicId":"libtmux.Runtime:connect","name":"connect","kind":"method","modifiers":[],"parent":"libtmux.Runtime","signatures":[{"raw":"fun(self: libtmux.Runtime, options: libtmux.ConnectOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.ConnectOptions"}],"returns":"libtmux.Request"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Connect to an existing tmux daemon without taking ownership of it. Use Lua 5.5.1, LuaRocks, Git, tmux 3.2a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as connect.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/connect.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n local snapshot = must(server:snapshot({ strict = true }):await())\n assert(#snapshot.sessions:where({ name = \"bootstrap\" }) == 1, \"bootstrap session is missing\")\n print(\"connected\")\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh connect.lua\n"}]},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1046,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime-connect"},{"id":"libtmux.Runtime:errors","publicId":"libtmux.Runtime:errors","name":"errors","kind":"method","modifiers":[],"parent":"libtmux.Runtime","signatures":[{"raw":"fun(self: libtmux.Runtime):libtmux.Error[]","params":[],"returns":"libtmux.Error[]"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1052,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime-errors"},{"id":"libtmux.Runtime:spawn","publicId":"libtmux.Runtime:spawn","name":"spawn","kind":"method","modifiers":[],"parent":"libtmux.Runtime","signatures":[{"raw":"fun(self: libtmux.Runtime, body: fun(runtime: libtmux.Runtime):?, libtmux.Error?):libtmux.Request","params":[{"name":"body","type":"fun(runtime: libtmux.Runtime):?, libtmux.Error?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1048,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime-spawn"},{"id":"libtmux.Runtime:stats","publicId":"libtmux.Runtime:stats","name":"stats","kind":"method","modifiers":[],"parent":"libtmux.Runtime","signatures":[{"raw":"fun(self: libtmux.Runtime):table","params":[],"returns":"table"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1051,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime-stats"},{"id":"libtmux.RuntimeOptions","publicId":"libtmux.RuntimeOptions","name":"RuntimeOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1035,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtimeoptions"},{"id":"libtmux.RuntimeOptions.dispatch_budget","publicId":"libtmux.RuntimeOptions.dispatch_budget","name":"dispatch_budget","kind":"attribute","modifiers":[],"parent":"libtmux.RuntimeOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1043,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtimeoptions-dispatch_budget"},{"id":"libtmux.RuntimeOptions.max_active","publicId":"libtmux.RuntimeOptions.max_active","name":"max_active","kind":"attribute","modifiers":[],"parent":"libtmux.RuntimeOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1036,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtimeoptions-max_active"},{"id":"libtmux.RuntimeOptions.max_bytes","publicId":"libtmux.RuntimeOptions.max_bytes","name":"max_bytes","kind":"attribute","modifiers":[],"parent":"libtmux.RuntimeOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1039,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtimeoptions-max_bytes"},{"id":"libtmux.RuntimeOptions.max_callbacks","publicId":"libtmux.RuntimeOptions.max_callbacks","name":"max_callbacks","kind":"attribute","modifiers":[],"parent":"libtmux.RuntimeOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1041,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtimeoptions-max_callbacks"},{"id":"libtmux.RuntimeOptions.max_logical","publicId":"libtmux.RuntimeOptions.max_logical","name":"max_logical","kind":"attribute","modifiers":[],"parent":"libtmux.RuntimeOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1038,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtimeoptions-max_logical"},{"id":"libtmux.RuntimeOptions.max_pending","publicId":"libtmux.RuntimeOptions.max_pending","name":"max_pending","kind":"attribute","modifiers":[],"parent":"libtmux.RuntimeOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1037,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtimeoptions-max_pending"},{"id":"libtmux.RuntimeOptions.max_resources","publicId":"libtmux.RuntimeOptions.max_resources","name":"max_resources","kind":"attribute","modifiers":[],"parent":"libtmux.RuntimeOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1042,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtimeoptions-max_resources"},{"id":"libtmux.RuntimeOptions.max_tasks","publicId":"libtmux.RuntimeOptions.max_tasks","name":"max_tasks","kind":"attribute","modifiers":[],"parent":"libtmux.RuntimeOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1040,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtimeoptions-max_tasks"},{"id":"libtmux.SelectPaneOptions","publicId":"libtmux.SelectPaneOptions","name":"SelectPaneOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":637,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selectpaneoptions"},{"id":"libtmux.SelectPaneOptions.keep_zoom","publicId":"libtmux.SelectPaneOptions.keep_zoom","name":"keep_zoom","kind":"attribute","modifiers":[],"parent":"libtmux.SelectPaneOptions","signatures":[],"doc":{"summary":"Preserve zoom while selecting; defaults to false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":638,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selectpaneoptions-keep_zoom"},{"id":"libtmux.SelectPaneOptions.process","publicId":"libtmux.SelectPaneOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SelectPaneOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/pane.lua","line":600,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.PaneOptions","slug":"libtmux-selectpaneoptions-process"},{"id":"libtmux.Selection","publicId":"libtmux.Selection","name":"Selection","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":293,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection"},{"id":"libtmux.Selection:count","publicId":"libtmux.Selection:count","name":"count","kind":"method","modifiers":[],"parent":"libtmux.Selection","signatures":[{"raw":"fun(self: libtmux.Selection):integer","params":[],"returns":"integer"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":300,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection-count"},{"id":"libtmux.Selection:exists","publicId":"libtmux.Selection:exists","name":"exists","kind":"method","modifiers":[],"parent":"libtmux.Selection","signatures":[{"raw":"fun(self: libtmux.Selection):boolean","params":[],"returns":"boolean"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":299,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection-exists"},{"id":"libtmux.Selection:filter","publicId":"libtmux.Selection:filter","name":"filter","kind":"method","modifiers":[],"parent":"libtmux.Selection","signatures":[{"raw":"fun(self: libtmux.Selection, predicate: libtmux.Predicate):libtmux.Selection","params":[{"name":"predicate","type":"libtmux.Predicate"}],"returns":"libtmux.Selection"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":295,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection-filter"},{"id":"libtmux.Selection:first","publicId":"libtmux.Selection:first","name":"first","kind":"method","modifiers":[],"parent":"libtmux.Selection","signatures":[{"raw":"fun(self: libtmux.Selection):?","params":[],"returns":"?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":296,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection-first"},{"id":"libtmux.Selection:iter","publicId":"libtmux.Selection:iter","name":"iter","kind":"method","modifiers":[],"parent":"libtmux.Selection","signatures":[{"raw":"fun(self: libtmux.Selection):fun():?","params":[],"returns":"fun():?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":301,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection-iter"},{"id":"libtmux.Selection:one","publicId":"libtmux.Selection:one","name":"one","kind":"method","modifiers":[],"parent":"libtmux.Selection","signatures":[{"raw":"fun(self: libtmux.Selection):?, libtmux.QueryError?","params":[],"returns":"?, libtmux.QueryError?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":297,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection-one"},{"id":"libtmux.Selection:one_or_nil","publicId":"libtmux.Selection:one_or_nil","name":"one_or_nil","kind":"method","modifiers":[],"parent":"libtmux.Selection","signatures":[{"raw":"fun(self: libtmux.Selection):?, libtmux.QueryError?","params":[],"returns":"?, libtmux.QueryError?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":298,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection-one_or_nil"},{"id":"libtmux.Selection:to_table","publicId":"libtmux.Selection:to_table","name":"to_table","kind":"method","modifiers":[],"parent":"libtmux.Selection","signatures":[{"raw":"fun(self: libtmux.Selection):[]","params":[],"returns":"[]"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":302,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection-to_table"},{"id":"libtmux.Selection:where","publicId":"libtmux.Selection:where","name":"where","kind":"method","modifiers":[],"parent":"libtmux.Selection","signatures":[{"raw":"fun(self: libtmux.Selection, criteria: libtmux.CompiledQuery|libtmux.Where):libtmux.Selection","params":[{"name":"criteria","type":"libtmux.CompiledQuery|libtmux.Where"}],"returns":"libtmux.Selection"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":294,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection-where"},{"id":"libtmux.Server","publicId":"libtmux.Server","name":"Server","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":603,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server"},{"id":"libtmux.Server:batch","publicId":"libtmux.Server:batch","name":"batch","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, commands: string[][], options?: libtmux.CommandBatchOptions):libtmux.Request","params":[{"name":"commands","type":"string[][]"},{"name":"options","type":"libtmux.CommandBatchOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-batch"},{"id":"libtmux.Server:close","publicId":"libtmux.Server:close","name":"close","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":681,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-close"},{"id":"libtmux.Server:command","publicId":"libtmux.Server:command","name":"command","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, argv: string[], options?: libtmux.CommandOptions):libtmux.Request","params":[{"name":"argv","type":"string[]"},{"name":"options","type":"libtmux.CommandOptions?","default":"nil"}],"returns":"libtmux.Request"}],"doc":{"summary":"Binds a snapshot record to a live handle of its class."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":673,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-command"},{"id":"libtmux.Server:delete_buffer","publicId":"libtmux.Server:delete_buffer","name":"delete_buffer","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, options?: libtmux.BufferOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.BufferOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":653,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-delete_buffer"},{"id":"libtmux.Server:detach_client","publicId":"libtmux.Server:detach_client","name":"detach_client","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, selector: libtmux.ClientSelector, options?: libtmux.ClientOptions):libtmux.Request","params":[{"name":"selector","type":"libtmux.ClientSelector"},{"name":"options","type":"libtmux.ClientOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":655,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-detach_client"},{"id":"libtmux.Server:explain","publicId":"libtmux.Server:explain","name":"explain","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, options?: libtmux.LiveQueryOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.LiveQueryOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":642,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-explain"},{"id":"libtmux.Server:explain_panes","publicId":"libtmux.Server:explain_panes","name":"explain_panes","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, options?: libtmux.LiveQueryOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.LiveQueryOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":644,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-explain_panes"},{"id":"libtmux.Server:get_environment","publicId":"libtmux.Server:get_environment","name":"get_environment","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, options?: libtmux.EnvironmentGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.EnvironmentGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":622,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-get_environment"},{"id":"libtmux.Server:get_hook","publicId":"libtmux.Server:get_hook","name":"get_hook","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":613,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-get_hook"},{"id":"libtmux.Server:get_option","publicId":"libtmux.Server:get_option","name":"get_option","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":604,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-get_option"},{"id":"libtmux.Server:group","publicId":"libtmux.Server:group","name":"group","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, commands: string[][], options?: libtmux.CommandOptions):libtmux.Request","params":[{"name":"commands","type":"string[][]"},{"name":"options","type":"libtmux.CommandOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":675,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-group"},{"id":"libtmux.Server:handle","publicId":"libtmux.Server:handle","name":"handle","kind":"method","modifiers":["overload"],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, snapshot: libtmux.Snapshot, record: libtmux.SnapshotSession):libtmux.Session?, libtmux.Error?","params":[{"name":"snapshot","type":"libtmux.Snapshot"},{"name":"record","type":"libtmux.SnapshotSession"}],"returns":"libtmux.Session?, libtmux.Error?"},{"raw":"fun(self: libtmux.Server, snapshot: libtmux.Snapshot, record: libtmux.SnapshotWindow):libtmux.Window?, libtmux.Error?","params":[{"name":"snapshot","type":"libtmux.Snapshot"},{"name":"record","type":"libtmux.SnapshotWindow"}],"returns":"libtmux.Window?, libtmux.Error?"},{"raw":"fun(self: libtmux.Server, snapshot: libtmux.Snapshot, record: libtmux.SnapshotWindowLink):libtmux.WindowLink?, libtmux.Error?","params":[{"name":"snapshot","type":"libtmux.Snapshot"},{"name":"record","type":"libtmux.SnapshotWindowLink"}],"returns":"libtmux.WindowLink?, libtmux.Error?"},{"raw":"fun(self: libtmux.Server, snapshot: libtmux.Snapshot, record: libtmux.SnapshotPane):libtmux.Pane?, libtmux.Error?","params":[{"name":"snapshot","type":"libtmux.Snapshot"},{"name":"record","type":"libtmux.SnapshotPane"}],"returns":"libtmux.Pane?, libtmux.Error?"},{"raw":"fun(self: libtmux.Server, snapshot: libtmux.Snapshot, record: libtmux.SnapshotClient):libtmux.Client?, libtmux.Error?","params":[{"name":"snapshot","type":"libtmux.Snapshot"},{"name":"record","type":"libtmux.SnapshotClient"}],"returns":"libtmux.Client?, libtmux.Error?"},{"raw":"fun(self: libtmux.Server, snapshot: libtmux.Snapshot, record: libtmux.SnapshotBuffer):libtmux.Buffer?, libtmux.Error?","params":[{"name":"snapshot","type":"libtmux.Snapshot"},{"name":"record","type":"libtmux.SnapshotBuffer"}],"returns":"libtmux.Buffer?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":660,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-handle"},{"id":"libtmux.Server:list_environment","publicId":"libtmux.Server:list_environment","name":"list_environment","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, options?: libtmux.EnvironmentListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.EnvironmentListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":625,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-list_environment"},{"id":"libtmux.Server:list_hooks","publicId":"libtmux.Server:list_hooks","name":"list_hooks","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":615,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-list_hooks"},{"id":"libtmux.Server:list_options","publicId":"libtmux.Server:list_options","name":"list_options","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":606,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-list_options"},{"id":"libtmux.Server:new_session","publicId":"libtmux.Server:new_session","name":"new_session","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, options?: libtmux.NewSessionOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.NewSessionOptions?","default":"nil"}],"returns":"libtmux.Request"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Create a session and use the session, window, and pane handles returned with it. Use Lua 5.5.1, LuaRocks, Git, tmux 3.2a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as new_session.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/new_session.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n local created = must(server\n :new_session({\n name = \"demo\",\n window_name = \"main\",\n argv = { \"/bin/cat\" },\n })\n :await())\n assert(created.session and created.window and created.pane, \"creation handles are missing\")\n local snapshot = must(created.session:snapshot():await())\n assert(snapshot.name == \"demo\", \"created session has the wrong name\")\n print(\"session: \" .. snapshot.name)\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh new_session.lua\n"}]},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":646,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-new_session"},{"id":"libtmux.Server:observe","publicId":"libtmux.Server:observe","name":"observe","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, session: libtmux.Session, options?: libtmux.ObservationOptions):libtmux.Request","params":[{"name":"session","type":"libtmux.Session","doc":" A tmux session."},{"name":"options","type":"libtmux.ObservationOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":636,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-observe"},{"id":"libtmux.Server:query","publicId":"libtmux.Server:query","name":"query","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, options?: libtmux.LiveQueryOptions):libtmux.Request>","params":[{"name":"options","type":"libtmux.LiveQueryOptions?","default":"nil"}],"returns":"libtmux.Request>"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Find sessions by name with a live query and inspect its captured rows. Use Lua 5.5.1, LuaRocks, Git, tmux 3.2a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as query.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/query.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n must(server\n :new_session({\n name = \"demo\",\n window_name = \"main\",\n argv = { \"/bin/cat\" },\n })\n :await())\n must(server:new_session({ name = \"worker\", argv = { \"/bin/cat\" } }):await())\n local result = must(server\n :query({\n kind = \"session\",\n where = { name = \"demo\" },\n snapshot = { strict = true },\n })\n :await())\n assert(result.complete, \"query observed a topology change\")\n assert(#result.rows == 1 and result.rows[1].name == \"demo\", \"query selected the wrong session\")\n print(\"matched: \" .. result.rows[1].name)\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh query.lua\n"}]},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":638,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-query"},{"id":"libtmux.Server:query_panes","publicId":"libtmux.Server:query_panes","name":"query_panes","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, options?: libtmux.LiveQueryOptions):libtmux.Request>","params":[{"name":"options","type":"libtmux.LiveQueryOptions?","default":"nil"}],"returns":"libtmux.Request>"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":640,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-query_panes"},{"id":"libtmux.Server:remove_environment","publicId":"libtmux.Server:remove_environment","name":"remove_environment","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, options?: libtmux.EnvironmentOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.EnvironmentOptions?","default":"nil","doc":" What every environment operation accepts; unset and remove take no more."}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":633,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-remove_environment"},{"id":"libtmux.Server:set_buffer","publicId":"libtmux.Server:set_buffer","name":"set_buffer","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, bytes: string, options?: libtmux.BufferOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"bytes","type":"string"},{"name":"options","type":"libtmux.BufferOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":648,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-set_buffer"},{"id":"libtmux.Server:set_environment","publicId":"libtmux.Server:set_environment","name":"set_environment","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, value: string, options?: libtmux.EnvironmentSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"libtmux.EnvironmentSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":627,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-set_environment"},{"id":"libtmux.Server:set_hook","publicId":"libtmux.Server:set_hook","name":"set_hook","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, value: libtmux.HookProgram, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"libtmux.HookProgram"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":617,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-set_hook"},{"id":"libtmux.Server:set_option","publicId":"libtmux.Server:set_option","name":"set_option","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, value: boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":608,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-set_option"},{"id":"libtmux.Server:show_buffer","publicId":"libtmux.Server:show_buffer","name":"show_buffer","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, options?: libtmux.BufferOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.BufferOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":651,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-show_buffer"},{"id":"libtmux.Server:snapshot","publicId":"libtmux.Server:snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, options?: libtmux.SnapshotOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SnapshotOptions?","default":"nil"}],"returns":"libtmux.Request"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"List sessions, windows, and panes from one captured server snapshot. Use Lua 5.5.1, LuaRocks, Git, tmux 3.2a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as snapshot.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/snapshot.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n must(server\n :new_session({\n name = \"demo\",\n window_name = \"main\",\n argv = { \"/bin/cat\" },\n })\n :await())\n local snapshot = must(server:snapshot({ strict = true }):await())\n local sessions, windows = {}, {}\n for _, session in ipairs(snapshot.sessions) do\n sessions[#sessions + 1] = session.name\n end\n for _, window in ipairs(snapshot.windows) do\n windows[#windows + 1] = window.name\n end\n table.sort(sessions)\n table.sort(windows)\n assert(#snapshot.sessions == 2 and #snapshot.windows == 2 and #snapshot.panes == 2)\n print(\"sessions: \" .. table.concat(sessions, \", \"))\n print(\"windows: \" .. table.concat(windows, \", \"))\n print(\"panes: \" .. #snapshot.panes)\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh snapshot.lua\n"}]},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":679,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-snapshot"},{"id":"libtmux.Server:switch_client","publicId":"libtmux.Server:switch_client","name":"switch_client","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, selector: libtmux.ClientSelector, session: libtmux.Session, options?: libtmux.SwitchClientOptions):libtmux.Request","params":[{"name":"selector","type":"libtmux.ClientSelector"},{"name":"session","type":"libtmux.Session","doc":" A tmux session."},{"name":"options","type":"libtmux.SwitchClientOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":657,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-switch_client"},{"id":"libtmux.Server:unset_environment","publicId":"libtmux.Server:unset_environment","name":"unset_environment","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, options?: libtmux.EnvironmentOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.EnvironmentOptions?","default":"nil","doc":" What every environment operation accepts; unset and remove take no more."}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":630,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-unset_environment"},{"id":"libtmux.Server:unset_hook","publicId":"libtmux.Server:unset_hook","name":"unset_hook","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":620,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-unset_hook"},{"id":"libtmux.Server:unset_option","publicId":"libtmux.Server:unset_option","name":"unset_option","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":611,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-unset_option"},{"id":"libtmux.Session","publicId":"libtmux.Session","name":"Session","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":416,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session"},{"id":"libtmux.Session:attach","publicId":"libtmux.Session:attach","name":"attach","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":427,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-attach"},{"id":"libtmux.Session:get_environment","publicId":"libtmux.Session:get_environment","name":"get_environment","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, name: string, options?: libtmux.EnvironmentGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.EnvironmentGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"doc":{"summary":"Requires an interactive terminal capability; current adapters return unsupported_tty."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":429,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-get_environment"},{"id":"libtmux.Session:get_hook","publicId":"libtmux.Session:get_hook","name":"get_hook","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":402,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-session-get_hook"},{"id":"libtmux.Session:get_option","publicId":"libtmux.Session:get_option","name":"get_option","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":391,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-session-get_option"},{"id":"libtmux.Session:kill","publicId":"libtmux.Session:kill","name":"kill","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, options?: libtmux.TopologyOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.TopologyOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":421,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-kill"},{"id":"libtmux.Session:list_environment","publicId":"libtmux.Session:list_environment","name":"list_environment","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, options?: libtmux.EnvironmentListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.EnvironmentListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":432,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-list_environment"},{"id":"libtmux.Session:list_hooks","publicId":"libtmux.Session:list_hooks","name":"list_hooks","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Configurable, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":404,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-session-list_hooks"},{"id":"libtmux.Session:list_options","publicId":"libtmux.Session:list_options","name":"list_options","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Configurable, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":394,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-session-list_options"},{"id":"libtmux.Session:navigate_window","publicId":"libtmux.Session:navigate_window","name":"navigate_window","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, direction: \"last\"|\"next\"|\"previous\", options?: libtmux.NavigateWindowOptions):libtmux.Request","params":[{"name":"direction","type":"\"last\"|\"next\"|\"previous\""},{"name":"options","type":"libtmux.NavigateWindowOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":423,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-navigate_window"},{"id":"libtmux.Session:new_window","publicId":"libtmux.Session:new_window","name":"new_window","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, options?: libtmux.NewWindowOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.NewWindowOptions?","default":"nil"}],"returns":"libtmux.Request"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Create a named window in a particular session. Use Lua 5.5.1, LuaRocks, Git, tmux 3.2a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as new_window.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/new_window.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n local created = must(server\n :new_session({\n name = \"demo\",\n window_name = \"main\",\n argv = { \"/bin/cat\" },\n })\n :await())\n local logs = must(created.session:new_window({ name = \"logs\", argv = { \"/bin/cat\" } }):await())\n local snapshot = must(logs.window:snapshot():await())\n assert(snapshot.name == \"logs\", \"created window has the wrong name\")\n print(\"window: \" .. snapshot.name)\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh new_window.lua\n"}]},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":417,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-new_window"},{"id":"libtmux.Session:reference","publicId":"libtmux.Session:reference","name":"reference","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Reference?, libtmux.Error?","params":[],"returns":"libtmux.Reference?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":384,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-session-reference"},{"id":"libtmux.Session:remove_environment","publicId":"libtmux.Session:remove_environment","name":"remove_environment","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, name: string, options?: libtmux.EnvironmentOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.EnvironmentOptions?","default":"nil","doc":" What every environment operation accepts; unset and remove take no more."}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":440,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-remove_environment"},{"id":"libtmux.Session:rename","publicId":"libtmux.Session:rename","name":"rename","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, name: string, options?: libtmux.TopologyOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.TopologyOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":419,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-rename"},{"id":"libtmux.Session:renumber_windows","publicId":"libtmux.Session:renumber_windows","name":"renumber_windows","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, options?: libtmux.TopologyOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.TopologyOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":425,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-renumber_windows"},{"id":"libtmux.Session:run_hook","publicId":"libtmux.Session:run_hook","name":"run_hook","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.RunHookOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.RunHookOptions?","default":"nil","doc":" Running a hook reads only its handle's own scope."}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":412,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-session-run_hook"},{"id":"libtmux.Session:set_environment","publicId":"libtmux.Session:set_environment","name":"set_environment","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, name: string, value: string, options?: libtmux.EnvironmentSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"libtmux.EnvironmentSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":434,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-set_environment"},{"id":"libtmux.Session:set_hook","publicId":"libtmux.Session:set_hook","name":"set_hook","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, value: libtmux.HookProgram, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"libtmux.HookProgram"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":406,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-session-set_hook"},{"id":"libtmux.Session:set_option","publicId":"libtmux.Session:set_option","name":"set_option","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, value: boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":396,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-session-set_option"},{"id":"libtmux.Session:snapshot","publicId":"libtmux.Session:snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":386,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-session-snapshot"},{"id":"libtmux.Session:unset_environment","publicId":"libtmux.Session:unset_environment","name":"unset_environment","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, name: string, options?: libtmux.EnvironmentOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.EnvironmentOptions?","default":"nil","doc":" What every environment operation accepts; unset and remove take no more."}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":437,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-unset_environment"},{"id":"libtmux.Session:unset_hook","publicId":"libtmux.Session:unset_hook","name":"unset_hook","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":409,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-session-unset_hook"},{"id":"libtmux.Session:unset_option","publicId":"libtmux.Session:unset_option","name":"unset_option","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":399,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-session-unset_option"},{"id":"libtmux.SettingGetOptions","publicId":"libtmux.SettingGetOptions","name":"SettingGetOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":663,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settinggetoptions"},{"id":"libtmux.SettingGetOptions.index","publicId":"libtmux.SettingGetOptions.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.SettingGetOptions","signatures":[],"doc":{"summary":"Array slot; reads still inspect the whole array."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/settings.lua","line":664,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settinggetoptions-index"},{"id":"libtmux.SettingGetOptions.inherit","publicId":"libtmux.SettingGetOptions.inherit","name":"inherit","kind":"attribute","modifiers":[],"parent":"libtmux.SettingGetOptions","signatures":[],"doc":{"summary":"Read fallback values; defaults to true."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/settings.lua","line":661,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingListOptions","slug":"libtmux-settinggetoptions-inherit"},{"id":"libtmux.SettingGetOptions.process","publicId":"libtmux.SettingGetOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SettingGetOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/settings.lua","line":658,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingOptions","slug":"libtmux-settinggetoptions-process"},{"id":"libtmux.SettingGetOptions.scope","publicId":"libtmux.SettingGetOptions.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.SettingGetOptions","signatures":[],"product":"core","apiScope":"exported","type":"('global_session'|'global_window'|'pane'|'server'|'session'...(+1))?","source":{"file":"lua/libtmux/_internal/settings.lua","line":657,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingOptions","slug":"libtmux-settinggetoptions-scope"},{"id":"libtmux.SettingListOptions","publicId":"libtmux.SettingListOptions","name":"SettingListOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":660,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settinglistoptions"},{"id":"libtmux.SettingListOptions.inherit","publicId":"libtmux.SettingListOptions.inherit","name":"inherit","kind":"attribute","modifiers":[],"parent":"libtmux.SettingListOptions","signatures":[],"doc":{"summary":"Read fallback values; defaults to true."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/settings.lua","line":661,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settinglistoptions-inherit"},{"id":"libtmux.SettingListOptions.process","publicId":"libtmux.SettingListOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SettingListOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/settings.lua","line":658,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingOptions","slug":"libtmux-settinglistoptions-process"},{"id":"libtmux.SettingListOptions.scope","publicId":"libtmux.SettingListOptions.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.SettingListOptions","signatures":[],"product":"core","apiScope":"exported","type":"('global_session'|'global_window'|'pane'|'server'|'session'...(+1))?","source":{"file":"lua/libtmux/_internal/settings.lua","line":657,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingOptions","slug":"libtmux-settinglistoptions-scope"},{"id":"libtmux.SettingOptions","publicId":"libtmux.SettingOptions","name":"SettingOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":656,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settingoptions"},{"id":"libtmux.SettingOptions.process","publicId":"libtmux.SettingOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SettingOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/settings.lua","line":658,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settingoptions-process"},{"id":"libtmux.SettingOptions.scope","publicId":"libtmux.SettingOptions.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.SettingOptions","signatures":[],"product":"core","apiScope":"exported","type":"('global_session'|'global_window'|'pane'|'server'|'session'...(+1))?","source":{"file":"lua/libtmux/_internal/settings.lua","line":657,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settingoptions-scope"},{"id":"libtmux.SettingSetOptions","publicId":"libtmux.SettingSetOptions","name":"SettingSetOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":669,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settingsetoptions"},{"id":"libtmux.SettingSetOptions.append","publicId":"libtmux.SettingSetOptions.append","name":"append","kind":"attribute","modifiers":[],"parent":"libtmux.SettingSetOptions","signatures":[],"doc":{"summary":"String concatenation or unindexed built-in hook append."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/settings.lua","line":670,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settingsetoptions-append"},{"id":"libtmux.SettingSetOptions.index","publicId":"libtmux.SettingSetOptions.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.SettingSetOptions","signatures":[],"doc":{"summary":"Array slot."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/settings.lua","line":667,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingUnsetOptions","slug":"libtmux-settingsetoptions-index"},{"id":"libtmux.SettingSetOptions.process","publicId":"libtmux.SettingSetOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SettingSetOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/settings.lua","line":658,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingOptions","slug":"libtmux-settingsetoptions-process"},{"id":"libtmux.SettingSetOptions.scope","publicId":"libtmux.SettingSetOptions.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.SettingSetOptions","signatures":[],"product":"core","apiScope":"exported","type":"('global_session'|'global_window'|'pane'|'server'|'session'...(+1))?","source":{"file":"lua/libtmux/_internal/settings.lua","line":657,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingOptions","slug":"libtmux-settingsetoptions-scope"},{"id":"libtmux.SettingUnsetOptions","publicId":"libtmux.SettingUnsetOptions","name":"SettingUnsetOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":666,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settingunsetoptions"},{"id":"libtmux.SettingUnsetOptions.index","publicId":"libtmux.SettingUnsetOptions.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.SettingUnsetOptions","signatures":[],"doc":{"summary":"Array slot."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/settings.lua","line":667,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settingunsetoptions-index"},{"id":"libtmux.SettingUnsetOptions.process","publicId":"libtmux.SettingUnsetOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SettingUnsetOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/settings.lua","line":658,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingOptions","slug":"libtmux-settingunsetoptions-process"},{"id":"libtmux.SettingUnsetOptions.scope","publicId":"libtmux.SettingUnsetOptions.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.SettingUnsetOptions","signatures":[],"product":"core","apiScope":"exported","type":"('global_session'|'global_window'|'pane'|'server'|'session'...(+1))?","source":{"file":"lua/libtmux/_internal/settings.lua","line":657,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingOptions","slug":"libtmux-settingunsetoptions-scope"},{"id":"libtmux.Snapshot","publicId":"libtmux.Snapshot","name":"Snapshot","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":721,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot"},{"id":"libtmux.Snapshot.acquisition","publicId":"libtmux.Snapshot.acquisition","name":"acquisition","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"{ started: number, finished: number }","source":{"file":"lua/libtmux/_internal/server.lua","line":731,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-acquisition"},{"id":"libtmux.Snapshot.buffers","publicId":"libtmux.Snapshot.buffers","name":"buffers","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Selection","source":{"file":"lua/libtmux/_internal/server.lua","line":727,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-buffers"},{"id":"libtmux.Snapshot.capabilities","publicId":"libtmux.Snapshot.capabilities","name":"capabilities","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"{ version: string, fields: table> }","source":{"file":"lua/libtmux/_internal/server.lua","line":734,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-capabilities"},{"id":"libtmux.Snapshot.clients","publicId":"libtmux.Snapshot.clients","name":"clients","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Selection","source":{"file":"lua/libtmux/_internal/server.lua","line":726,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-clients"},{"id":"libtmux.Snapshot.complete","publicId":"libtmux.Snapshot.complete","name":"complete","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/server.lua","line":729,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-complete"},{"id":"libtmux.Snapshot.panes","publicId":"libtmux.Snapshot.panes","name":"panes","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"doc":{"summary":"","examples":[{"lang":"console","intro":"List sessions, windows, and panes from one captured server snapshot. Use Lua 5.5.1, LuaRocks, Git, tmux 3.2a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as snapshot.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/snapshot.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n must(server\n :new_session({\n name = \"demo\",\n window_name = \"main\",\n argv = { \"/bin/cat\" },\n })\n :await())\n local snapshot = must(server:snapshot({ strict = true }):await())\n local sessions, windows = {}, {}\n for _, session in ipairs(snapshot.sessions) do\n sessions[#sessions + 1] = session.name\n end\n for _, window in ipairs(snapshot.windows) do\n windows[#windows + 1] = window.name\n end\n table.sort(sessions)\n table.sort(windows)\n assert(#snapshot.sessions == 2 and #snapshot.windows == 2 and #snapshot.panes == 2)\n print(\"sessions: \" .. table.concat(sessions, \", \"))\n print(\"windows: \" .. table.concat(windows, \", \"))\n print(\"panes: \" .. #snapshot.panes)\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh snapshot.lua\n"}]},"product":"core","apiScope":"exported","type":"libtmux.Selection","source":{"file":"lua/libtmux/_internal/server.lua","line":724,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-panes"},{"id":"libtmux.Snapshot.projections","publicId":"libtmux.Snapshot.projections","name":"projections","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/server.lua","line":732,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-projections"},{"id":"libtmux.Snapshot.races","publicId":"libtmux.Snapshot.races","name":"races","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"table[]","source":{"file":"lua/libtmux/_internal/server.lua","line":730,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-races"},{"id":"libtmux.Snapshot.raw","publicId":"libtmux.Snapshot.raw","name":"raw","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"table>","source":{"file":"lua/libtmux/_internal/server.lua","line":728,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-raw"},{"id":"libtmux.Snapshot.requested_projections","publicId":"libtmux.Snapshot.requested_projections","name":"requested_projections","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/server.lua","line":733,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-requested_projections"},{"id":"libtmux.Snapshot.sessions","publicId":"libtmux.Snapshot.sessions","name":"sessions","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"doc":{"summary":"","examples":[{"lang":"console","intro":"List sessions, windows, and panes from one captured server snapshot. Use Lua 5.5.1, LuaRocks, Git, tmux 3.2a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as snapshot.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/snapshot.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n must(server\n :new_session({\n name = \"demo\",\n window_name = \"main\",\n argv = { \"/bin/cat\" },\n })\n :await())\n local snapshot = must(server:snapshot({ strict = true }):await())\n local sessions, windows = {}, {}\n for _, session in ipairs(snapshot.sessions) do\n sessions[#sessions + 1] = session.name\n end\n for _, window in ipairs(snapshot.windows) do\n windows[#windows + 1] = window.name\n end\n table.sort(sessions)\n table.sort(windows)\n assert(#snapshot.sessions == 2 and #snapshot.windows == 2 and #snapshot.panes == 2)\n print(\"sessions: \" .. table.concat(sessions, \", \"))\n print(\"windows: \" .. table.concat(windows, \", \"))\n print(\"panes: \" .. #snapshot.panes)\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh snapshot.lua\n"}]},"product":"core","apiScope":"exported","type":"libtmux.Selection","source":{"file":"lua/libtmux/_internal/server.lua","line":722,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-sessions"},{"id":"libtmux.Snapshot.verification","publicId":"libtmux.Snapshot.verification","name":"verification","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"{ passes: integer, consistent: boolean? }","source":{"file":"lua/libtmux/_internal/server.lua","line":735,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-verification"},{"id":"libtmux.Snapshot.window_links","publicId":"libtmux.Snapshot.window_links","name":"window_links","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Selection","source":{"file":"lua/libtmux/_internal/server.lua","line":725,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-window_links"},{"id":"libtmux.Snapshot.windows","publicId":"libtmux.Snapshot.windows","name":"windows","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"doc":{"summary":"","examples":[{"lang":"console","intro":"List sessions, windows, and panes from one captured server snapshot. Use Lua 5.5.1, LuaRocks, Git, tmux 3.2a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as snapshot.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/snapshot.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n must(server\n :new_session({\n name = \"demo\",\n window_name = \"main\",\n argv = { \"/bin/cat\" },\n })\n :await())\n local snapshot = must(server:snapshot({ strict = true }):await())\n local sessions, windows = {}, {}\n for _, session in ipairs(snapshot.sessions) do\n sessions[#sessions + 1] = session.name\n end\n for _, window in ipairs(snapshot.windows) do\n windows[#windows + 1] = window.name\n end\n table.sort(sessions)\n table.sort(windows)\n assert(#snapshot.sessions == 2 and #snapshot.windows == 2 and #snapshot.panes == 2)\n print(\"sessions: \" .. table.concat(sessions, \", \"))\n print(\"windows: \" .. table.concat(windows, \", \"))\n print(\"panes: \" .. #snapshot.panes)\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh snapshot.lua\n"}]},"product":"core","apiScope":"exported","type":"libtmux.Selection","source":{"file":"lua/libtmux/_internal/server.lua","line":723,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-windows"},{"id":"libtmux.SnapshotBuffer","publicId":"libtmux.SnapshotBuffer","name":"SnapshotBuffer","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":717,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotbuffer"},{"id":"libtmux.SnapshotBuffer.created","publicId":"libtmux.SnapshotBuffer.created","name":"created","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotBuffer","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":78,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Buffer","slug":"libtmux-snapshotbuffer-created"},{"id":"libtmux.SnapshotBuffer.name","publicId":"libtmux.SnapshotBuffer.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotBuffer","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":718,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotbuffer-name"},{"id":"libtmux.SnapshotBuffer.ref","publicId":"libtmux.SnapshotBuffer.ref","name":"ref","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotBuffer","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/server.lua","line":719,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotbuffer-ref"},{"id":"libtmux.SnapshotBuffer.sample","publicId":"libtmux.SnapshotBuffer.sample","name":"sample","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotBuffer","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":77,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Buffer","slug":"libtmux-snapshotbuffer-sample"},{"id":"libtmux.SnapshotBuffer.size","publicId":"libtmux.SnapshotBuffer.size","name":"size","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotBuffer","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":76,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Buffer","slug":"libtmux-snapshotbuffer-size"},{"id":"libtmux.SnapshotClient","publicId":"libtmux.SnapshotClient","name":"SnapshotClient","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":710,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotclient"},{"id":"libtmux.SnapshotClient.activity","publicId":"libtmux.SnapshotClient.activity","name":"activity","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":72,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Client","slug":"libtmux-snapshotclient-activity"},{"id":"libtmux.SnapshotClient.control_mode","publicId":"libtmux.SnapshotClient.control_mode","name":"control_mode","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":69,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Client","slug":"libtmux-snapshotclient-control_mode"},{"id":"libtmux.SnapshotClient.created","publicId":"libtmux.SnapshotClient.created","name":"created","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":71,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Client","slug":"libtmux-snapshotclient-created"},{"id":"libtmux.SnapshotClient.height","publicId":"libtmux.SnapshotClient.height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"(integer|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":68,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Client","slug":"libtmux-snapshotclient-height"},{"id":"libtmux.SnapshotClient.name","publicId":"libtmux.SnapshotClient.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":711,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotclient-name"},{"id":"libtmux.SnapshotClient.pid","publicId":"libtmux.SnapshotClient.pid","name":"pid","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":65,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Client","slug":"libtmux-snapshotclient-pid"},{"id":"libtmux.SnapshotClient.readonly","publicId":"libtmux.SnapshotClient.readonly","name":"readonly","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":70,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Client","slug":"libtmux-snapshotclient-readonly"},{"id":"libtmux.SnapshotClient.ref","publicId":"libtmux.SnapshotClient.ref","name":"ref","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/server.lua","line":714,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotclient-ref"},{"id":"libtmux.SnapshotClient.session","publicId":"libtmux.SnapshotClient.session","name":"session","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.Null|libtmux.SnapshotSession)?","source":{"file":"lua/libtmux/_internal/server.lua","line":715,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotclient-session"},{"id":"libtmux.SnapshotClient.session_name","publicId":"libtmux.SnapshotClient.session_name","name":"session_name","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"string|libtmux.Null","source":{"file":"lua/libtmux/_internal/server.lua","line":713,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotclient-session_name"},{"id":"libtmux.SnapshotClient.tty","publicId":"libtmux.SnapshotClient.tty","name":"tty","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":712,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotclient-tty"},{"id":"libtmux.SnapshotClient.width","publicId":"libtmux.SnapshotClient.width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"(integer|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":67,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Client","slug":"libtmux-snapshotclient-width"},{"id":"libtmux.SnapshotOptions","publicId":"libtmux.SnapshotOptions","name":"SnapshotOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":570,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotoptions"},{"id":"libtmux.SnapshotOptions.fields","publicId":"libtmux.SnapshotOptions.fields","name":"fields","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotOptions","signatures":[],"doc":{"summary":"Collection names mapped to requested catalog fields."},"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/_internal/server.lua","line":572,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotoptions-fields"},{"id":"libtmux.SnapshotOptions.max_bytes","publicId":"libtmux.SnapshotOptions.max_bytes","name":"max_bytes","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/server.lua","line":574,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotoptions-max_bytes"},{"id":"libtmux.SnapshotOptions.max_rows","publicId":"libtmux.SnapshotOptions.max_rows","name":"max_rows","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/server.lua","line":573,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotoptions-max_rows"},{"id":"libtmux.SnapshotOptions.strict","publicId":"libtmux.SnapshotOptions.strict","name":"strict","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotOptions","signatures":[],"doc":{"summary":"Perform one additional topology verification pass."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/server.lua","line":571,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotoptions-strict"},{"id":"libtmux.SnapshotOptions.timeout","publicId":"libtmux.SnapshotOptions.timeout","name":"timeout","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotOptions","signatures":[],"doc":{"summary":"Listing command timeout in milliseconds."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/server.lua","line":575,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotoptions-timeout"},{"id":"libtmux.SnapshotPane","publicId":"libtmux.SnapshotPane","name":"SnapshotPane","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":695,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotpane"},{"id":"libtmux.SnapshotPane.active","publicId":"libtmux.SnapshotPane.active","name":"active","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":43,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-active"},{"id":"libtmux.SnapshotPane.current_command","publicId":"libtmux.SnapshotPane.current_command","name":"current_command","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":52,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-current_command"},{"id":"libtmux.SnapshotPane.current_path","publicId":"libtmux.SnapshotPane.current_path","name":"current_path","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":51,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-current_path"},{"id":"libtmux.SnapshotPane.dead","publicId":"libtmux.SnapshotPane.dead","name":"dead","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":54,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-dead"},{"id":"libtmux.SnapshotPane.dead_signal","publicId":"libtmux.SnapshotPane.dead_signal","name":"dead_signal","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":56,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-dead_signal"},{"id":"libtmux.SnapshotPane.dead_status","publicId":"libtmux.SnapshotPane.dead_status","name":"dead_status","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"(integer|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":55,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-dead_status"},{"id":"libtmux.SnapshotPane.dead_time","publicId":"libtmux.SnapshotPane.dead_time","name":"dead_time","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"(integer|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":57,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-dead_time"},{"id":"libtmux.SnapshotPane.height","publicId":"libtmux.SnapshotPane.height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":46,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-height"},{"id":"libtmux.SnapshotPane.id","publicId":"libtmux.SnapshotPane.id","name":"id","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":696,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotpane-id"},{"id":"libtmux.SnapshotPane.index","publicId":"libtmux.SnapshotPane.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"integer","source":{"file":"lua/libtmux/_internal/server.lua","line":698,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotpane-index"},{"id":"libtmux.SnapshotPane.left","publicId":"libtmux.SnapshotPane.left","name":"left","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":47,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-left"},{"id":"libtmux.SnapshotPane.mode","publicId":"libtmux.SnapshotPane.mode","name":"mode","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":58,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-mode"},{"id":"libtmux.SnapshotPane.mode_count","publicId":"libtmux.SnapshotPane.mode_count","name":"mode_count","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":59,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-mode_count"},{"id":"libtmux.SnapshotPane.pid","publicId":"libtmux.SnapshotPane.pid","name":"pid","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":49,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-pid"},{"id":"libtmux.SnapshotPane.ref","publicId":"libtmux.SnapshotPane.ref","name":"ref","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/server.lua","line":699,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotpane-ref"},{"id":"libtmux.SnapshotPane.start_command","publicId":"libtmux.SnapshotPane.start_command","name":"start_command","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":53,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-start_command"},{"id":"libtmux.SnapshotPane.synchronized","publicId":"libtmux.SnapshotPane.synchronized","name":"synchronized","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":60,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-synchronized"},{"id":"libtmux.SnapshotPane.title","publicId":"libtmux.SnapshotPane.title","name":"title","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":44,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-title"},{"id":"libtmux.SnapshotPane.top","publicId":"libtmux.SnapshotPane.top","name":"top","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":48,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-top"},{"id":"libtmux.SnapshotPane.tty","publicId":"libtmux.SnapshotPane.tty","name":"tty","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":50,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-tty"},{"id":"libtmux.SnapshotPane.width","publicId":"libtmux.SnapshotPane.width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":45,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-width"},{"id":"libtmux.SnapshotPane.window","publicId":"libtmux.SnapshotPane.window","name":"window","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"doc":{"summary":"Missing when captured relationships are inconsistent."},"product":"core","apiScope":"exported","type":"(libtmux.SnapshotWindow)?","source":{"file":"lua/libtmux/_internal/server.lua","line":700,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotpane-window"},{"id":"libtmux.SnapshotPane.window_id","publicId":"libtmux.SnapshotPane.window_id","name":"window_id","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":697,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotpane-window_id"},{"id":"libtmux.SnapshotSession","publicId":"libtmux.SnapshotSession","name":"SnapshotSession","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":683,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotsession"},{"id":"libtmux.SnapshotSession.activity","publicId":"libtmux.SnapshotSession.activity","name":"activity","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":15,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Session","slug":"libtmux-snapshotsession-activity"},{"id":"libtmux.SnapshotSession.attached","publicId":"libtmux.SnapshotSession.attached","name":"attached","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":16,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Session","slug":"libtmux-snapshotsession-attached"},{"id":"libtmux.SnapshotSession.created","publicId":"libtmux.SnapshotSession.created","name":"created","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":14,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Session","slug":"libtmux-snapshotsession-created"},{"id":"libtmux.SnapshotSession.group","publicId":"libtmux.SnapshotSession.group","name":"group","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":18,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Session","slug":"libtmux-snapshotsession-group"},{"id":"libtmux.SnapshotSession.grouped","publicId":"libtmux.SnapshotSession.grouped","name":"grouped","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":19,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Session","slug":"libtmux-snapshotsession-grouped"},{"id":"libtmux.SnapshotSession.id","publicId":"libtmux.SnapshotSession.id","name":"id","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":684,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotsession-id"},{"id":"libtmux.SnapshotSession.name","publicId":"libtmux.SnapshotSession.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":685,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotsession-name"},{"id":"libtmux.SnapshotSession.path","publicId":"libtmux.SnapshotSession.path","name":"path","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":20,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Session","slug":"libtmux-snapshotsession-path"},{"id":"libtmux.SnapshotSession.ref","publicId":"libtmux.SnapshotSession.ref","name":"ref","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/server.lua","line":686,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotsession-ref"},{"id":"libtmux.SnapshotSession.window_count","publicId":"libtmux.SnapshotSession.window_count","name":"window_count","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":17,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Session","slug":"libtmux-snapshotsession-window_count"},{"id":"libtmux.SnapshotSession.window_links","publicId":"libtmux.SnapshotSession.window_links","name":"window_links","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.SnapshotWindowLink[]","source":{"file":"lua/libtmux/_internal/server.lua","line":687,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotsession-window_links"},{"id":"libtmux.SnapshotWindow","publicId":"libtmux.SnapshotWindow","name":"SnapshotWindow","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":689,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindow"},{"id":"libtmux.SnapshotWindow.height","publicId":"libtmux.SnapshotWindow.height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":26,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Window","slug":"libtmux-snapshotwindow-height"},{"id":"libtmux.SnapshotWindow.id","publicId":"libtmux.SnapshotWindow.id","name":"id","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":690,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindow-id"},{"id":"libtmux.SnapshotWindow.layout","publicId":"libtmux.SnapshotWindow.layout","name":"layout","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":28,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Window","slug":"libtmux-snapshotwindow-layout"},{"id":"libtmux.SnapshotWindow.name","publicId":"libtmux.SnapshotWindow.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":24,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Window","slug":"libtmux-snapshotwindow-name"},{"id":"libtmux.SnapshotWindow.pane_count","publicId":"libtmux.SnapshotWindow.pane_count","name":"pane_count","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":27,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Window","slug":"libtmux-snapshotwindow-pane_count"},{"id":"libtmux.SnapshotWindow.panes","publicId":"libtmux.SnapshotWindow.panes","name":"panes","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.SnapshotPane[]","source":{"file":"lua/libtmux/_internal/server.lua","line":692,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindow-panes"},{"id":"libtmux.SnapshotWindow.ref","publicId":"libtmux.SnapshotWindow.ref","name":"ref","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/server.lua","line":691,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindow-ref"},{"id":"libtmux.SnapshotWindow.visible_layout","publicId":"libtmux.SnapshotWindow.visible_layout","name":"visible_layout","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":29,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Window","slug":"libtmux-snapshotwindow-visible_layout"},{"id":"libtmux.SnapshotWindow.width","publicId":"libtmux.SnapshotWindow.width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":25,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Window","slug":"libtmux-snapshotwindow-width"},{"id":"libtmux.SnapshotWindow.window_links","publicId":"libtmux.SnapshotWindow.window_links","name":"window_links","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.SnapshotWindowLink[]","source":{"file":"lua/libtmux/_internal/server.lua","line":693,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindow-window_links"},{"id":"libtmux.SnapshotWindow.zoomed","publicId":"libtmux.SnapshotWindow.zoomed","name":"zoomed","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":30,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Window","slug":"libtmux-snapshotwindow-zoomed"},{"id":"libtmux.SnapshotWindowLink","publicId":"libtmux.SnapshotWindowLink","name":"SnapshotWindowLink","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":702,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindowlink"},{"id":"libtmux.SnapshotWindowLink.active","publicId":"libtmux.SnapshotWindowLink.active","name":"active","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindowLink","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":36,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.WindowLink","slug":"libtmux-snapshotwindowlink-active"},{"id":"libtmux.SnapshotWindowLink.flags","publicId":"libtmux.SnapshotWindowLink.flags","name":"flags","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindowLink","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":37,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.WindowLink","slug":"libtmux-snapshotwindowlink-flags"},{"id":"libtmux.SnapshotWindowLink.index","publicId":"libtmux.SnapshotWindowLink.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindowLink","signatures":[],"product":"core","apiScope":"exported","type":"integer","source":{"file":"lua/libtmux/_internal/server.lua","line":705,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindowlink-index"},{"id":"libtmux.SnapshotWindowLink.ref","publicId":"libtmux.SnapshotWindowLink.ref","name":"ref","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindowLink","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/server.lua","line":706,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindowlink-ref"},{"id":"libtmux.SnapshotWindowLink.session","publicId":"libtmux.SnapshotWindowLink.session","name":"session","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindowLink","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.SnapshotSession)?","source":{"file":"lua/libtmux/_internal/server.lua","line":707,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindowlink-session"},{"id":"libtmux.SnapshotWindowLink.session_id","publicId":"libtmux.SnapshotWindowLink.session_id","name":"session_id","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindowLink","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":703,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindowlink-session_id"},{"id":"libtmux.SnapshotWindowLink.window","publicId":"libtmux.SnapshotWindowLink.window","name":"window","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindowLink","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.SnapshotWindow)?","source":{"file":"lua/libtmux/_internal/server.lua","line":708,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindowlink-window"},{"id":"libtmux.SnapshotWindowLink.window_id","publicId":"libtmux.SnapshotWindowLink.window_id","name":"window_id","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindowLink","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":704,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindowlink-window_id"},{"id":"libtmux.SplitOptions","publicId":"libtmux.SplitOptions","name":"SplitOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/domain.lua","line":474,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-splitoptions"},{"id":"libtmux.SplitOptions.argv","publicId":"libtmux.SplitOptions.argv","name":"argv","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"doc":{"summary":"Literal command arguments; mutually exclusive with shell."},"product":"core","apiScope":"exported","type":"string[]?","source":{"file":"lua/libtmux/_internal/domain.lua","line":458,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-splitoptions-argv"},{"id":"libtmux.SplitOptions.cwd","publicId":"libtmux.SplitOptions.cwd","name":"cwd","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"doc":{"summary":"Absolute working directory."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":457,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-splitoptions-cwd"},{"id":"libtmux.SplitOptions.direction","publicId":"libtmux.SplitOptions.direction","name":"direction","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"doc":{"summary":"Defaults to down."},"product":"core","apiScope":"exported","type":"(\"down\"|\"left\"|\"right\"|\"up\")?","source":{"file":"lua/libtmux/_internal/domain.lua","line":475,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-splitoptions-direction"},{"id":"libtmux.SplitOptions.environment","publicId":"libtmux.SplitOptions.environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"doc":{"summary":"Environment for the created scope."},"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/_internal/domain.lua","line":460,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-splitoptions-environment"},{"id":"libtmux.SplitOptions.full_size","publicId":"libtmux.SplitOptions.full_size","name":"full_size","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/domain.lua","line":478,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-splitoptions-full_size"},{"id":"libtmux.SplitOptions.percent","publicId":"libtmux.SplitOptions.percent","name":"percent","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"doc":{"summary":"Mutually exclusive with size."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/domain.lua","line":477,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-splitoptions-percent"},{"id":"libtmux.SplitOptions.process","publicId":"libtmux.SplitOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/domain.lua","line":461,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-splitoptions-process"},{"id":"libtmux.SplitOptions.select","publicId":"libtmux.SplitOptions.select","name":"select","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"doc":{"summary":"Defaults to false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/domain.lua","line":479,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-splitoptions-select"},{"id":"libtmux.SplitOptions.shell","publicId":"libtmux.SplitOptions.shell","name":"shell","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"doc":{"summary":"Explicit shell program."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":459,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-splitoptions-shell"},{"id":"libtmux.SplitOptions.size","publicId":"libtmux.SplitOptions.size","name":"size","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/domain.lua","line":476,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-splitoptions-size"},{"id":"libtmux.SwapLinkOptions","publicId":"libtmux.SwapLinkOptions","name":"SwapLinkOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":712,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-swaplinkoptions"},{"id":"libtmux.SwapLinkOptions.process","publicId":"libtmux.SwapLinkOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SwapLinkOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.TopologyOptions","slug":"libtmux-swaplinkoptions-process"},{"id":"libtmux.SwapLinkOptions.select","publicId":"libtmux.SwapLinkOptions.select","name":"select","kind":"attribute","modifiers":[],"parent":"libtmux.SwapLinkOptions","signatures":[],"doc":{"summary":"False preserves selected slots; true selects swapped slots."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":713,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-swaplinkoptions-select"},{"id":"libtmux.SwapPaneOptions","publicId":"libtmux.SwapPaneOptions","name":"SwapPaneOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":640,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-swappaneoptions"},{"id":"libtmux.SwapPaneOptions.keep_zoom","publicId":"libtmux.SwapPaneOptions.keep_zoom","name":"keep_zoom","kind":"attribute","modifiers":[],"parent":"libtmux.SwapPaneOptions","signatures":[],"doc":{"summary":"Preserve zoom while selecting; defaults to false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":638,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SelectPaneOptions","slug":"libtmux-swappaneoptions-keep_zoom"},{"id":"libtmux.SwapPaneOptions.process","publicId":"libtmux.SwapPaneOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SwapPaneOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/pane.lua","line":600,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.PaneOptions","slug":"libtmux-swappaneoptions-process"},{"id":"libtmux.SwapPaneOptions.select","publicId":"libtmux.SwapPaneOptions.select","name":"select","kind":"attribute","modifiers":[],"parent":"libtmux.SwapPaneOptions","signatures":[],"doc":{"summary":"Defaults to false (native -d); active selection can still change."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":641,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-swappaneoptions-select"},{"id":"libtmux.SwitchClientOptions","publicId":"libtmux.SwitchClientOptions","name":"SwitchClientOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/client.lua","line":264,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-switchclientoptions"},{"id":"libtmux.SwitchClientOptions.process","publicId":"libtmux.SwitchClientOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SwitchClientOptions","signatures":[],"doc":{"summary":"Limits apply to each subprocess; one MiB maximum."},"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/client.lua","line":262,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.ClientOptions","slug":"libtmux-switchclientoptions-process"},{"id":"libtmux.SwitchClientOptions.update_environment","publicId":"libtmux.SwitchClientOptions.update_environment","name":"update_environment","kind":"attribute","modifiers":[],"parent":"libtmux.SwitchClientOptions","signatures":[],"doc":{"summary":"Apply the client's update-environment values; default false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/client.lua","line":265,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-switchclientoptions-update_environment"},{"id":"libtmux.TopologyOptions","publicId":"libtmux.TopologyOptions","name":"TopologyOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":676,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-topologyoptions"},{"id":"libtmux.TopologyOptions.process","publicId":"libtmux.TopologyOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.TopologyOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-topologyoptions-process"},{"id":"libtmux.UnlinkOptions","publicId":"libtmux.UnlinkOptions","name":"UnlinkOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":719,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-unlinkoptions"},{"id":"libtmux.UnlinkOptions.kill_if_last","publicId":"libtmux.UnlinkOptions.kill_if_last","name":"kill_if_last","kind":"attribute","modifiers":[],"parent":"libtmux.UnlinkOptions","signatures":[],"doc":{"summary":"Permit destruction if no links survive; defaults to false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":720,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-unlinkoptions-kill_if_last"},{"id":"libtmux.UnlinkOptions.process","publicId":"libtmux.UnlinkOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.UnlinkOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.TopologyOptions","slug":"libtmux-unlinkoptions-process"},{"id":"libtmux.Watch","publicId":"libtmux.Watch","name":"Watch","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":411,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-watch"},{"id":"libtmux.Watch:close","publicId":"libtmux.Watch:close","name":"close","kind":"method","modifiers":[],"parent":"libtmux.Watch","signatures":[{"raw":"fun(self: libtmux.Watch):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":414,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-watch-close"},{"id":"libtmux.Watch:next","publicId":"libtmux.Watch:next","name":"next","kind":"method","modifiers":[],"parent":"libtmux.Watch","signatures":[{"raw":"fun(self: libtmux.Watch, options?: { timeout: number, deadline: number }):libtmux.Request","params":[{"name":"options","type":"{ timeout: number, deadline: number }?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":412,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-watch-next"},{"id":"libtmux.WatchOptions","publicId":"libtmux.WatchOptions","name":"WatchOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":374,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-watchoptions"},{"id":"libtmux.WatchOptions.max_bytes","publicId":"libtmux.WatchOptions.max_bytes","name":"max_bytes","kind":"attribute","modifiers":[],"parent":"libtmux.WatchOptions","signatures":[],"doc":{"summary":"Retained event bytes; default 1048576."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/observation.lua","line":375,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-watchoptions-max_bytes"},{"id":"libtmux.WatchOptions.max_events","publicId":"libtmux.WatchOptions.max_events","name":"max_events","kind":"attribute","modifiers":[],"parent":"libtmux.WatchOptions","signatures":[],"doc":{"summary":"Retained events; default 1024."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/observation.lua","line":376,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-watchoptions-max_events"},{"id":"libtmux.Where","publicId":"libtmux.Where","name":"Where","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":283,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-where"},{"id":"libtmux.Where.AND","publicId":"libtmux.Where.AND","name":"AND","kind":"attribute","modifiers":[],"parent":"libtmux.Where","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Where[]?","source":{"file":"lua/libtmux/query.lua","line":284,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-where-and"},{"id":"libtmux.Where.NOT","publicId":"libtmux.Where.NOT","name":"NOT","kind":"attribute","modifiers":[],"parent":"libtmux.Where","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.Where)?","source":{"file":"lua/libtmux/query.lua","line":286,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-where-not"},{"id":"libtmux.Where.OR","publicId":"libtmux.Where.OR","name":"OR","kind":"attribute","modifiers":[],"parent":"libtmux.Where","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Where[]?","source":{"file":"lua/libtmux/query.lua","line":285,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-where-or"},{"id":"libtmux.WhereValue","publicId":"libtmux.WhereValue","name":"WhereValue","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.WhereValue","source":{"file":"lua/libtmux/query.lua","line":277,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-wherevalue"},{"id":"libtmux.Window","publicId":"libtmux.Window","name":"Window","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":445,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-window"},{"id":"libtmux.Window:get_hook","publicId":"libtmux.Window:get_hook","name":"get_hook","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":402,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-window-get_hook"},{"id":"libtmux.Window:get_option","publicId":"libtmux.Window:get_option","name":"get_option","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":391,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-window-get_option"},{"id":"libtmux.Window:kill","publicId":"libtmux.Window:kill","name":"kill","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Window, options?: libtmux.TopologyOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.TopologyOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":448,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-window-kill"},{"id":"libtmux.Window:layout","publicId":"libtmux.Window:layout","name":"layout","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Window, options: libtmux.LayoutOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.LayoutOptions"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":452,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-window-layout"},{"id":"libtmux.Window:list_hooks","publicId":"libtmux.Window:list_hooks","name":"list_hooks","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Configurable, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":404,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-window-list_hooks"},{"id":"libtmux.Window:list_options","publicId":"libtmux.Window:list_options","name":"list_options","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Configurable, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":394,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-window-list_options"},{"id":"libtmux.Window:reference","publicId":"libtmux.Window:reference","name":"reference","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Reference?, libtmux.Error?","params":[],"returns":"libtmux.Reference?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":384,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-window-reference"},{"id":"libtmux.Window:rename","publicId":"libtmux.Window:rename","name":"rename","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Window, name: string, options?: libtmux.TopologyOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.TopologyOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":446,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-window-rename"},{"id":"libtmux.Window:resize","publicId":"libtmux.Window:resize","name":"resize","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Window, options: libtmux.ResizeWindowOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.ResizeWindowOptions"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":450,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-window-resize"},{"id":"libtmux.Window:respawn","publicId":"libtmux.Window:respawn","name":"respawn","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Window, options: libtmux.RespawnWindowOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.RespawnWindowOptions"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":454,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-window-respawn"},{"id":"libtmux.Window:run_hook","publicId":"libtmux.Window:run_hook","name":"run_hook","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.RunHookOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.RunHookOptions?","default":"nil","doc":" Running a hook reads only its handle's own scope."}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":412,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-window-run_hook"},{"id":"libtmux.Window:set_hook","publicId":"libtmux.Window:set_hook","name":"set_hook","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, value: libtmux.HookProgram, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"libtmux.HookProgram"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":406,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-window-set_hook"},{"id":"libtmux.Window:set_option","publicId":"libtmux.Window:set_option","name":"set_option","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, value: boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":396,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-window-set_option"},{"id":"libtmux.Window:snapshot","publicId":"libtmux.Window:snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":386,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-window-snapshot"},{"id":"libtmux.Window:unset_hook","publicId":"libtmux.Window:unset_hook","name":"unset_hook","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":409,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-window-unset_hook"},{"id":"libtmux.Window:unset_option","publicId":"libtmux.Window:unset_option","name":"unset_option","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":399,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-window-unset_option"},{"id":"libtmux.WindowLink","publicId":"libtmux.WindowLink","name":"WindowLink","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":458,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-windowlink"},{"id":"libtmux.WindowLink:link","publicId":"libtmux.WindowLink:link","name":"link","kind":"method","modifiers":[],"parent":"libtmux.WindowLink","signatures":[{"raw":"fun(self: libtmux.WindowLink, destination: libtmux.LinkDestination, options?: libtmux.LinkOptions):libtmux.Request","params":[{"name":"destination","type":"libtmux.LinkDestination"},{"name":"options","type":"libtmux.LinkOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":463,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-windowlink-link"},{"id":"libtmux.WindowLink:move","publicId":"libtmux.WindowLink:move","name":"move","kind":"method","modifiers":[],"parent":"libtmux.WindowLink","signatures":[{"raw":"fun(self: libtmux.WindowLink, destination: libtmux.LinkDestination, options?: libtmux.LinkOptions):libtmux.Request","params":[{"name":"destination","type":"libtmux.LinkDestination"},{"name":"options","type":"libtmux.LinkOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":465,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-windowlink-move"},{"id":"libtmux.WindowLink:reference","publicId":"libtmux.WindowLink:reference","name":"reference","kind":"method","modifiers":[],"parent":"libtmux.WindowLink","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Reference?, libtmux.Error?","params":[],"returns":"libtmux.Reference?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":384,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-windowlink-reference"},{"id":"libtmux.WindowLink:select","publicId":"libtmux.WindowLink:select","name":"select","kind":"method","modifiers":[],"parent":"libtmux.WindowLink","signatures":[{"raw":"fun(self: libtmux.WindowLink, options?: libtmux.TopologyOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.TopologyOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":459,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-windowlink-select"},{"id":"libtmux.WindowLink:snapshot","publicId":"libtmux.WindowLink:snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"libtmux.WindowLink","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":386,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-windowlink-snapshot"},{"id":"libtmux.WindowLink:swap","publicId":"libtmux.WindowLink:swap","name":"swap","kind":"method","modifiers":[],"parent":"libtmux.WindowLink","signatures":[{"raw":"fun(self: libtmux.WindowLink, other: libtmux.WindowLink, options?: libtmux.SwapLinkOptions):libtmux.Request","params":[{"name":"other","type":"libtmux.WindowLink","doc":" One placement of a window in a session: a window can be linked into several."},{"name":"options","type":"libtmux.SwapLinkOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":461,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-windowlink-swap"},{"id":"libtmux.WindowLink:unlink","publicId":"libtmux.WindowLink:unlink","name":"unlink","kind":"method","modifiers":[],"parent":"libtmux.WindowLink","signatures":[{"raw":"fun(self: libtmux.WindowLink, options?: libtmux.UnlinkOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.UnlinkOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":467,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-windowlink-unlink"},{"id":"libtmux.query","publicId":"libtmux.query","name":"query","kind":"module","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":3,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query"},{"id":"libtmux.query.NULL","publicId":"libtmux.query.NULL","name":"NULL","kind":"attribute","modifiers":[],"parent":"libtmux.query","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Null","source":{"file":"lua/libtmux/query.lua","line":7,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-null"},{"id":"libtmux.query.compile","publicId":"libtmux.query.compile","name":"compile","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"schema","type":"unknown","doc":"Expected libtmux.QuerySchema data."},{"name":"criteria","type":"unknown","doc":"Expected libtmux.Where data."}],"returns":"libtmux.CompiledQuery?, libtmux.QueryError?"}],"doc":{"summary":"Validate and copy untrusted data; errors are returned rather than raised."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":34,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-compile"},{"id":"libtmux.query.count","publicId":"libtmux.query.count","name":"count","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"libtmux.Selection|table[]"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences."}],"returns":"integer"}],"doc":{"summary":"@*param* `schema` — Required for ordinary sequences."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":183,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-count"},{"id":"libtmux.query.decode_json","publicId":"libtmux.query.decode_json","name":"decode_json","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"schema","type":"libtmux.QuerySchema"},{"name":"text","type":"string"},{"name":"codec","type":"table","doc":"A trusted lunajson-compatible encoder and SAX parser."}],"returns":"libtmux.Where?, libtmux.QueryError?"}],"doc":{"summary":"Decode and validate a complete JSON query; never evaluate received code."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":25,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-decode_json"},{"id":"libtmux.query.encode_json","publicId":"libtmux.query.encode_json","name":"encode_json","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"schema","type":"libtmux.QuerySchema"},{"name":"criteria","type":"libtmux.Where"},{"name":"codec","type":"table","doc":"A trusted lunajson-compatible encoder and SAX parser."}],"returns":"string?, libtmux.QueryError?"}],"doc":{"summary":"Encode this Lua API's versioned JSON profile using an explicit consumer codec."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":15,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-encode_json"},{"id":"libtmux.query.exists","publicId":"libtmux.query.exists","name":"exists","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"libtmux.Selection
|table[]"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences."}],"returns":"boolean"}],"doc":{"summary":"@*param* `schema` — Required for ordinary sequences."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":176,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-exists"},{"id":"libtmux.query.filter","publicId":"libtmux.query.filter","name":"filter","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"[]|libtmux.Selection"},{"name":"predicate","type":"fun(row: , index: integer):unknown"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences."}],"returns":"libtmux.Selection"}],"doc":{"summary":"Run a trusted local predicate; predicate errors propagate unchanged."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":85,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-filter"},{"id":"libtmux.query.first","publicId":"libtmux.query.first","name":"first","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"[]|libtmux.Selection"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences."}],"returns":"?"}],"doc":{"summary":"@*param* `schema` — Required for ordinary sequences."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":136,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-first"},{"id":"libtmux.query.iter","publicId":"libtmux.query.iter","name":"iter","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"[]|libtmux.Selection"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences."}],"returns":"fun():?"}],"doc":{"summary":"@*param* `schema` — Required for ordinary sequences."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":192,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-iter"},{"id":"libtmux.query.one","publicId":"libtmux.query.one","name":"one","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"[]|libtmux.Selection"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences."}],"returns":"?, libtmux.QueryError?"}],"doc":{"summary":"@*param* `schema` — Required for ordinary sequences."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":162,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-one"},{"id":"libtmux.query.one_or_nil","publicId":"libtmux.query.one_or_nil","name":"one_or_nil","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"[]|libtmux.Selection"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences."}],"returns":"?, libtmux.QueryError?"}],"doc":{"summary":"@*param* `schema` — Required for ordinary sequences."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":170,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-one_or_nil"},{"id":"libtmux.query.select","publicId":"libtmux.query.select","name":"select","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"[]|libtmux.Selection"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences."}],"returns":"libtmux.Selection"}],"doc":{"summary":"@*param* `schema` — Required for ordinary sequences."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":69,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-select"},{"id":"libtmux.query.to_table","publicId":"libtmux.query.to_table","name":"to_table","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"[]|libtmux.Selection"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences."}],"returns":"[]"}],"doc":{"summary":"@*param* `schema` — Required for ordinary sequences."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":207,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-to_table"},{"id":"libtmux.query.where","publicId":"libtmux.query.where","name":"where","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"[]|libtmux.Selection"},{"name":"criteria","type":"libtmux.CompiledQuery|libtmux.Where"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences with uncompiled criteria."}],"returns":"libtmux.Selection"}],"doc":{"summary":"Validate the entire grammar and required data before selecting records."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":106,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-where"},{"id":"libtmux.runtime.luv","publicId":"libtmux.runtime.luv","name":"luv","kind":"module","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/runtime/luv.lua","line":3,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime-luv"},{"id":"libtmux.runtime.luv.run","publicId":"libtmux.runtime.luv.run","name":"run","kind":"function","modifiers":[],"parent":"libtmux.runtime.luv","signatures":[{"raw":"function","params":[{"name":"fn","type":"fun(runtime: libtmux.Runtime):?, libtmux.Error?","default":"nil"},{"name":"options","type":"libtmux.RuntimeOptions?","default":"nil"}],"returns":"?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/runtime/luv.lua","line":115,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime-luv-run"},{"id":"libtmux.runtime.nvim","publicId":"libtmux.runtime.nvim","name":"nvim","kind":"module","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/runtime/nvim.lua","line":4,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime-nvim"},{"id":"libtmux.runtime.nvim.start","publicId":"libtmux.runtime.nvim.start","name":"start","kind":"function","modifiers":[],"parent":"libtmux.runtime.nvim","signatures":[{"raw":"fun(fn: fun(runtime: libtmux.Runtime):?, libtmux.Error?, on_done: fun(value?: , err?: libtmux.Error), options?: libtmux.RuntimeOptions):libtmux.Runtime?, libtmux.Error|libtmux.Request","params":[{"name":"fn","type":"fun(runtime: libtmux.Runtime):?, libtmux.Error?","default":"nil"},{"name":"on_done","type":"fun(value?: , err?: libtmux.Error)"},{"name":"options","type":"libtmux.RuntimeOptions"}],"returns":"table|nil, table|unknown"}],"doc":{"summary":"Inline generics preserve the body callback's contextual type in LuaLS."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/runtime/nvim.lua","line":12,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime-nvim-start"}]} +{"port":"lua","repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractor":"@libtmux/api-model@0.0.1 (scripts/export-docs v1; LuaLS 3.19.1)","sources":[{"product":"core","package":"libtmux","version":"0.1.0alpha1-1","repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"}],"symbols":[{"id":"libtmux.BreakPaneOptions","publicId":"libtmux.BreakPaneOptions","name":"BreakPaneOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":735,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-breakpaneoptions"},{"id":"libtmux.BreakPaneOptions.name","publicId":"libtmux.BreakPaneOptions.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.BreakPaneOptions","signatures":[],"doc":{"summary":"Nonempty native Window name; omitted preserves native default naming."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/topology.lua","line":736,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-breakpaneoptions-name"},{"id":"libtmux.BreakPaneOptions.process","publicId":"libtmux.BreakPaneOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.BreakPaneOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.TopologyOptions","slug":"libtmux-breakpaneoptions-process"},{"id":"libtmux.BreakPaneOptions.select","publicId":"libtmux.BreakPaneOptions.select","name":"select","kind":"attribute","modifiers":[],"parent":"libtmux.BreakPaneOptions","signatures":[],"doc":{"summary":"Defaults to false; source removal may force native selection."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":737,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-breakpaneoptions-select"},{"id":"libtmux.Buffer","publicId":"libtmux.Buffer","name":"Buffer","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":512,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-buffer"},{"id":"libtmux.Buffer:reference","publicId":"libtmux.Buffer:reference","name":"reference","kind":"method","modifiers":[],"parent":"libtmux.Buffer","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Reference?, libtmux.Error?","params":[],"returns":"libtmux.Reference?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":384,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-buffer-reference"},{"id":"libtmux.Buffer:snapshot","publicId":"libtmux.Buffer:snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"libtmux.Buffer","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":386,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-buffer-snapshot"},{"id":"libtmux.BufferOptions","publicId":"libtmux.BufferOptions","name":"BufferOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/buffer.lua","line":291,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-bufferoptions"},{"id":"libtmux.BufferOptions.process","publicId":"libtmux.BufferOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.BufferOptions","signatures":[],"doc":{"summary":"Output limit is at most one MiB."},"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/buffer.lua","line":292,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-bufferoptions-process"},{"id":"libtmux.BufferValue","publicId":"libtmux.BufferValue","name":"BufferValue","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/buffer.lua","line":285,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-buffervalue"},{"id":"libtmux.BufferValue.bytes","publicId":"libtmux.BufferValue.bytes","name":"bytes","kind":"attribute","modifiers":[],"parent":"libtmux.BufferValue","signatures":[],"doc":{"summary":"Exact buffer bytes, including NUL and trailing newlines."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/buffer.lua","line":287,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-buffervalue-bytes"},{"id":"libtmux.BufferValue.name","publicId":"libtmux.BufferValue.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.BufferValue","signatures":[],"doc":{"summary":"Explicit current buffer name; not an incarnation identifier."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/buffer.lua","line":286,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-buffervalue-name"},{"id":"libtmux.BufferValue:text","publicId":"libtmux.BufferValue:text","name":"text","kind":"method","modifiers":[],"parent":"libtmux.BufferValue","signatures":[{"raw":"fun(self: libtmux.BufferValue):string?, libtmux.Error?","params":[],"returns":"string?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/buffer.lua","line":288,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-buffervalue-text"},{"id":"libtmux.Capture","publicId":"libtmux.Capture","name":"Capture","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":594,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-capture"},{"id":"libtmux.Capture.bytes","publicId":"libtmux.Capture.bytes","name":"bytes","kind":"attribute","modifiers":[],"parent":"libtmux.Capture","signatures":[],"doc":{"summary":"Exact capture stdout, including trailing newlines."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/pane.lua","line":595,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-capture-bytes"},{"id":"libtmux.Capture.target","publicId":"libtmux.Capture.target","name":"target","kind":"attribute","modifiers":[],"parent":"libtmux.Capture","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Reference","source":{"file":"lua/libtmux/_internal/pane.lua","line":596,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-capture-target"},{"id":"libtmux.Capture:text","publicId":"libtmux.Capture:text","name":"text","kind":"method","modifiers":[],"parent":"libtmux.Capture","signatures":[{"raw":"fun(self: libtmux.Capture):string?, libtmux.Error?","params":[],"returns":"string?, libtmux.Error?"}],"doc":{"summary":"Strict UTF-8; no normalization."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":597,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-capture-text"},{"id":"libtmux.CaptureOptions","publicId":"libtmux.CaptureOptions","name":"CaptureOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":602,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions"},{"id":"libtmux.CaptureOptions.alternate_screen","publicId":"libtmux.CaptureOptions.alternate_screen","name":"alternate_screen","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":610,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-alternate_screen"},{"id":"libtmux.CaptureOptions.end_line","publicId":"libtmux.CaptureOptions.end_line","name":"end_line","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"Mutually exclusive with history_lines."},"product":"core","apiScope":"exported","type":"(integer|\"-\")?","source":{"file":"lua/libtmux/_internal/pane.lua","line":605,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-end_line"},{"id":"libtmux.CaptureOptions.escape_nonprintable","publicId":"libtmux.CaptureOptions.escape_nonprintable","name":"escape_nonprintable","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":609,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-escape_nonprintable"},{"id":"libtmux.CaptureOptions.escape_sequences","publicId":"libtmux.CaptureOptions.escape_sequences","name":"escape_sequences","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":608,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-escape_sequences"},{"id":"libtmux.CaptureOptions.history_lines","publicId":"libtmux.CaptureOptions.history_lines","name":"history_lines","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"Additional history rows; defaults to visible screen only."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/pane.lua","line":603,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-history_lines"},{"id":"libtmux.CaptureOptions.hyperlinks_only","publicId":"libtmux.CaptureOptions.hyperlinks_only","name":"hyperlinks_only","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"List native URLs instead of cell text; requires tmux 3.7."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":615,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-hyperlinks_only"},{"id":"libtmux.CaptureOptions.ignore_missing_alternate","publicId":"libtmux.CaptureOptions.ignore_missing_alternate","name":"ignore_missing_alternate","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"Suppress the missing alternate-grid error."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":614,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-ignore_missing_alternate"},{"id":"libtmux.CaptureOptions.join_lines","publicId":"libtmux.CaptureOptions.join_lines","name":"join_lines","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":606,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-join_lines"},{"id":"libtmux.CaptureOptions.line_flags","publicId":"libtmux.CaptureOptions.line_flags","name":"line_flags","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"Prefix rows with native flags; requires tmux 3.7."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":617,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-line_flags"},{"id":"libtmux.CaptureOptions.line_numbers","publicId":"libtmux.CaptureOptions.line_numbers","name":"line_numbers","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"Prefix rows with their native offsets; requires tmux 3.7."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":616,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-line_numbers"},{"id":"libtmux.CaptureOptions.mode_screen","publicId":"libtmux.CaptureOptions.mode_screen","name":"mode_screen","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"Requires tmux 3.6."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":611,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-mode_screen"},{"id":"libtmux.CaptureOptions.pending_escape_sequences","publicId":"libtmux.CaptureOptions.pending_escape_sequences","name":"pending_escape_sequences","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"Capture incomplete input instead of screen cells."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":613,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-pending_escape_sequences"},{"id":"libtmux.CaptureOptions.preserve_spaces","publicId":"libtmux.CaptureOptions.preserve_spaces","name":"preserve_spaces","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":607,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-preserve_spaces"},{"id":"libtmux.CaptureOptions.process","publicId":"libtmux.CaptureOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/pane.lua","line":600,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.PaneOptions","slug":"libtmux-captureoptions-process"},{"id":"libtmux.CaptureOptions.start_line","publicId":"libtmux.CaptureOptions.start_line","name":"start_line","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"Mutually exclusive with history_lines."},"product":"core","apiScope":"exported","type":"(integer|\"-\")?","source":{"file":"lua/libtmux/_internal/pane.lua","line":604,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-start_line"},{"id":"libtmux.CaptureOptions.trim_empty_cells","publicId":"libtmux.CaptureOptions.trim_empty_cells","name":"trim_empty_cells","kind":"attribute","modifiers":[],"parent":"libtmux.CaptureOptions","signatures":[],"doc":{"summary":"Requires tmux 3.4."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":612,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-captureoptions-trim_empty_cells"},{"id":"libtmux.ClearHistoryOptions","publicId":"libtmux.ClearHistoryOptions","name":"ClearHistoryOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":619,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-clearhistoryoptions"},{"id":"libtmux.ClearHistoryOptions.clear_hyperlinks","publicId":"libtmux.ClearHistoryOptions.clear_hyperlinks","name":"clear_hyperlinks","kind":"attribute","modifiers":[],"parent":"libtmux.ClearHistoryOptions","signatures":[],"doc":{"summary":"Also clear hyperlink storage; requires tmux 3.4."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":620,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-clearhistoryoptions-clear_hyperlinks"},{"id":"libtmux.ClearHistoryOptions.process","publicId":"libtmux.ClearHistoryOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.ClearHistoryOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/pane.lua","line":600,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.PaneOptions","slug":"libtmux-clearhistoryoptions-process"},{"id":"libtmux.Client","publicId":"libtmux.Client","name":"Client","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":509,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-client"},{"id":"libtmux.Client:reference","publicId":"libtmux.Client:reference","name":"reference","kind":"method","modifiers":[],"parent":"libtmux.Client","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Reference?, libtmux.Error?","params":[],"returns":"libtmux.Reference?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":384,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-client-reference"},{"id":"libtmux.Client:snapshot","publicId":"libtmux.Client:snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"libtmux.Client","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":386,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-client-snapshot"},{"id":"libtmux.ClientOptions","publicId":"libtmux.ClientOptions","name":"ClientOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/client.lua","line":261,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-clientoptions"},{"id":"libtmux.ClientOptions.process","publicId":"libtmux.ClientOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.ClientOptions","signatures":[],"doc":{"summary":"Limits apply to each subprocess; one MiB maximum."},"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/client.lua","line":262,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-clientoptions-process"},{"id":"libtmux.ClientSelector","publicId":"libtmux.ClientSelector","name":"ClientSelector","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/client.lua","line":257,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-clientselector"},{"id":"libtmux.ClientSelector.name","publicId":"libtmux.ClientSelector.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.ClientSelector","signatures":[],"doc":{"summary":"Exact observed client name; selects its current attachment."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/client.lua","line":258,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-clientselector-name"},{"id":"libtmux.ClientSelector.tty","publicId":"libtmux.ClientSelector.tty","name":"tty","kind":"attribute","modifiers":[],"parent":"libtmux.ClientSelector","signatures":[],"doc":{"summary":"Exact observed TTY, including empty for a client without a terminal."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/client.lua","line":259,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-clientselector-tty"},{"id":"libtmux.CommandBatchOptions","publicId":"libtmux.CommandBatchOptions","name":"CommandBatchOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":593,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandbatchoptions"},{"id":"libtmux.CommandBatchOptions.concurrency","publicId":"libtmux.CommandBatchOptions.concurrency","name":"concurrency","kind":"attribute","modifiers":[],"parent":"libtmux.CommandBatchOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/server.lua","line":594,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandbatchoptions-concurrency"},{"id":"libtmux.CommandBatchOptions.process","publicId":"libtmux.CommandBatchOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.CommandBatchOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CommandOptions)?","source":{"file":"lua/libtmux/_internal/server.lua","line":595,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandbatchoptions-process"},{"id":"libtmux.CommandOptions","publicId":"libtmux.CommandOptions","name":"CommandOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":577,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoptions"},{"id":"libtmux.CommandOptions.cwd","publicId":"libtmux.CommandOptions.cwd","name":"cwd","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOptions","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/server.lua","line":579,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoptions-cwd"},{"id":"libtmux.CommandOptions.deadline","publicId":"libtmux.CommandOptions.deadline","name":"deadline","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOptions","signatures":[],"product":"core","apiScope":"exported","type":"number?","source":{"file":"lua/libtmux/_internal/server.lua","line":582,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoptions-deadline"},{"id":"libtmux.CommandOptions.drain_timeout","publicId":"libtmux.CommandOptions.drain_timeout","name":"drain_timeout","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/server.lua","line":584,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoptions-drain_timeout"},{"id":"libtmux.CommandOptions.env","publicId":"libtmux.CommandOptions.env","name":"env","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOptions","signatures":[],"doc":{"summary":"Explicit process environment entries."},"product":"core","apiScope":"exported","type":"string[]?","source":{"file":"lua/libtmux/_internal/server.lua","line":580,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoptions-env"},{"id":"libtmux.CommandOptions.kill_timeout","publicId":"libtmux.CommandOptions.kill_timeout","name":"kill_timeout","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/server.lua","line":585,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoptions-kill_timeout"},{"id":"libtmux.CommandOptions.max_output_bytes","publicId":"libtmux.CommandOptions.max_output_bytes","name":"max_output_bytes","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/server.lua","line":583,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoptions-max_output_bytes"},{"id":"libtmux.CommandOptions.stdin","publicId":"libtmux.CommandOptions.stdin","name":"stdin","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOptions","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/server.lua","line":578,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoptions-stdin"},{"id":"libtmux.CommandOptions.timeout","publicId":"libtmux.CommandOptions.timeout","name":"timeout","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOptions","signatures":[],"product":"core","apiScope":"exported","type":"number?","source":{"file":"lua/libtmux/_internal/server.lua","line":581,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoptions-timeout"},{"id":"libtmux.CommandOutcome","publicId":"libtmux.CommandOutcome","name":"CommandOutcome","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":597,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoutcome"},{"id":"libtmux.CommandOutcome.effect","publicId":"libtmux.CommandOutcome.effect","name":"effect","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOutcome","signatures":[],"product":"core","apiScope":"exported","type":"\"completed\"|\"not_sent\"|\"unknown\"","source":{"file":"lua/libtmux/_internal/server.lua","line":599,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoutcome-effect"},{"id":"libtmux.CommandOutcome.error","publicId":"libtmux.CommandOutcome.error","name":"error","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOutcome","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.Error)?","source":{"file":"lua/libtmux/_internal/server.lua","line":601,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoutcome-error"},{"id":"libtmux.CommandOutcome.status","publicId":"libtmux.CommandOutcome.status","name":"status","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOutcome","signatures":[],"product":"core","apiScope":"exported","type":"\"completed\"|\"failed\"|\"skipped\"|\"unknown\"","source":{"file":"lua/libtmux/_internal/server.lua","line":598,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoutcome-status"},{"id":"libtmux.CommandOutcome.value","publicId":"libtmux.CommandOutcome.value","name":"value","kind":"attribute","modifiers":[],"parent":"libtmux.CommandOutcome","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CommandResult)?","source":{"file":"lua/libtmux/_internal/server.lua","line":600,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandoutcome-value"},{"id":"libtmux.CommandResult","publicId":"libtmux.CommandResult","name":"CommandResult","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":587,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandresult"},{"id":"libtmux.CommandResult.exit_code","publicId":"libtmux.CommandResult.exit_code","name":"exit_code","kind":"attribute","modifiers":[],"parent":"libtmux.CommandResult","signatures":[],"product":"core","apiScope":"exported","type":"integer","source":{"file":"lua/libtmux/_internal/server.lua","line":590,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandresult-exit_code"},{"id":"libtmux.CommandResult.signal","publicId":"libtmux.CommandResult.signal","name":"signal","kind":"attribute","modifiers":[],"parent":"libtmux.CommandResult","signatures":[],"product":"core","apiScope":"exported","type":"integer","source":{"file":"lua/libtmux/_internal/server.lua","line":591,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandresult-signal"},{"id":"libtmux.CommandResult.stderr","publicId":"libtmux.CommandResult.stderr","name":"stderr","kind":"attribute","modifiers":[],"parent":"libtmux.CommandResult","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":589,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandresult-stderr"},{"id":"libtmux.CommandResult.stdout","publicId":"libtmux.CommandResult.stdout","name":"stdout","kind":"attribute","modifiers":[],"parent":"libtmux.CommandResult","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":588,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-commandresult-stdout"},{"id":"libtmux.CompiledQuery","publicId":"libtmux.CompiledQuery","name":"CompiledQuery","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.CompiledQuery","source":{"file":"lua/libtmux/query.lua","line":288,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-compiledquery"},{"id":"libtmux.Configurable","publicId":"libtmux.Configurable","name":"Configurable","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":390,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable"},{"id":"libtmux.Configurable:get_hook","publicId":"libtmux.Configurable:get_hook","name":"get_hook","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":402,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable-get_hook"},{"id":"libtmux.Configurable:get_option","publicId":"libtmux.Configurable:get_option","name":"get_option","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":391,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable-get_option"},{"id":"libtmux.Configurable:list_hooks","publicId":"libtmux.Configurable:list_hooks","name":"list_hooks","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Configurable, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":404,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable-list_hooks"},{"id":"libtmux.Configurable:list_options","publicId":"libtmux.Configurable:list_options","name":"list_options","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Configurable, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":394,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable-list_options"},{"id":"libtmux.Configurable:reference","publicId":"libtmux.Configurable:reference","name":"reference","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Reference?, libtmux.Error?","params":[],"returns":"libtmux.Reference?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":384,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-configurable-reference"},{"id":"libtmux.Configurable:run_hook","publicId":"libtmux.Configurable:run_hook","name":"run_hook","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.RunHookOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.RunHookOptions?","default":"nil","doc":" Running a hook reads only its handle's own scope."}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":412,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable-run_hook"},{"id":"libtmux.Configurable:set_hook","publicId":"libtmux.Configurable:set_hook","name":"set_hook","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, value: libtmux.HookProgram, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"libtmux.HookProgram"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":406,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable-set_hook"},{"id":"libtmux.Configurable:set_option","publicId":"libtmux.Configurable:set_option","name":"set_option","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, value: boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":396,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable-set_option"},{"id":"libtmux.Configurable:snapshot","publicId":"libtmux.Configurable:snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":386,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-configurable-snapshot"},{"id":"libtmux.Configurable:unset_hook","publicId":"libtmux.Configurable:unset_hook","name":"unset_hook","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":409,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable-unset_hook"},{"id":"libtmux.Configurable:unset_option","publicId":"libtmux.Configurable:unset_option","name":"unset_option","kind":"method","modifiers":[],"parent":"libtmux.Configurable","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":399,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-configurable-unset_option"},{"id":"libtmux.ConnectOptions","publicId":"libtmux.ConnectOptions","name":"ConnectOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":565,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-connectoptions"},{"id":"libtmux.ConnectOptions.binary","publicId":"libtmux.ConnectOptions.binary","name":"binary","kind":"attribute","modifiers":[],"parent":"libtmux.ConnectOptions","signatures":[],"doc":{"summary":"Absolute tmux executable path."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":566,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-connectoptions-binary"},{"id":"libtmux.ConnectOptions.config_path","publicId":"libtmux.ConnectOptions.config_path","name":"config_path","kind":"attribute","modifiers":[],"parent":"libtmux.ConnectOptions","signatures":[],"doc":{"summary":"Absolute configuration path."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/server.lua","line":568,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-connectoptions-config_path"},{"id":"libtmux.ConnectOptions.socket_path","publicId":"libtmux.ConnectOptions.socket_path","name":"socket_path","kind":"attribute","modifiers":[],"parent":"libtmux.ConnectOptions","signatures":[],"doc":{"summary":"Absolute existing daemon socket path."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":567,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-connectoptions-socket_path"},{"id":"libtmux.CopyModeOptions","publicId":"libtmux.CopyModeOptions","name":"CopyModeOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":625,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-copymodeoptions"},{"id":"libtmux.CopyModeOptions.page_up","publicId":"libtmux.CopyModeOptions.page_up","name":"page_up","kind":"attribute","modifiers":[],"parent":"libtmux.CopyModeOptions","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":626,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-copymodeoptions-page_up"},{"id":"libtmux.CopyModeOptions.process","publicId":"libtmux.CopyModeOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.CopyModeOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/pane.lua","line":600,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.PaneOptions","slug":"libtmux-copymodeoptions-process"},{"id":"libtmux.Creation","publicId":"libtmux.Creation","name":"Creation","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/domain.lua","line":481,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creation"},{"id":"libtmux.Creation.created","publicId":"libtmux.Creation.created","name":"created","kind":"attribute","modifiers":[],"parent":"libtmux.Creation","signatures":[],"doc":{"summary":"Names of newly created entities in this receipt."},"product":"core","apiScope":"exported","type":"string[]","source":{"file":"lua/libtmux/_internal/domain.lua","line":486,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creation-created"},{"id":"libtmux.Creation.pane","publicId":"libtmux.Creation.pane","name":"pane","kind":"attribute","modifiers":[],"parent":"libtmux.Creation","signatures":[],"doc":{"summary":"A tmux pane."},"product":"core","apiScope":"exported","type":"libtmux.Pane","source":{"file":"lua/libtmux/_internal/domain.lua","line":484,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creation-pane"},{"id":"libtmux.Creation.session","publicId":"libtmux.Creation.session","name":"session","kind":"attribute","modifiers":[],"parent":"libtmux.Creation","signatures":[],"doc":{"summary":"A tmux session."},"product":"core","apiScope":"exported","type":"libtmux.Session","source":{"file":"lua/libtmux/_internal/domain.lua","line":482,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creation-session"},{"id":"libtmux.Creation.window","publicId":"libtmux.Creation.window","name":"window","kind":"attribute","modifiers":[],"parent":"libtmux.Creation","signatures":[],"doc":{"summary":"A tmux window. Placement in a session belongs to its window links."},"product":"core","apiScope":"exported","type":"libtmux.Window","source":{"file":"lua/libtmux/_internal/domain.lua","line":483,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creation-window"},{"id":"libtmux.Creation.window_link","publicId":"libtmux.Creation.window_link","name":"window_link","kind":"attribute","modifiers":[],"parent":"libtmux.Creation","signatures":[],"doc":{"summary":"One placement of a window in a session: a window can be linked into several."},"product":"core","apiScope":"exported","type":"libtmux.WindowLink","source":{"file":"lua/libtmux/_internal/domain.lua","line":485,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creation-window_link"},{"id":"libtmux.CreationOptions","publicId":"libtmux.CreationOptions","name":"CreationOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/domain.lua","line":456,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationoptions"},{"id":"libtmux.CreationOptions.argv","publicId":"libtmux.CreationOptions.argv","name":"argv","kind":"attribute","modifiers":[],"parent":"libtmux.CreationOptions","signatures":[],"doc":{"summary":"Literal command arguments; mutually exclusive with shell."},"product":"core","apiScope":"exported","type":"string[]?","source":{"file":"lua/libtmux/_internal/domain.lua","line":458,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationoptions-argv"},{"id":"libtmux.CreationOptions.cwd","publicId":"libtmux.CreationOptions.cwd","name":"cwd","kind":"attribute","modifiers":[],"parent":"libtmux.CreationOptions","signatures":[],"doc":{"summary":"Absolute working directory."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":457,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationoptions-cwd"},{"id":"libtmux.CreationOptions.environment","publicId":"libtmux.CreationOptions.environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux.CreationOptions","signatures":[],"doc":{"summary":"Environment for the created scope."},"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/_internal/domain.lua","line":460,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationoptions-environment"},{"id":"libtmux.CreationOptions.process","publicId":"libtmux.CreationOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.CreationOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/domain.lua","line":461,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationoptions-process"},{"id":"libtmux.CreationOptions.shell","publicId":"libtmux.CreationOptions.shell","name":"shell","kind":"attribute","modifiers":[],"parent":"libtmux.CreationOptions","signatures":[],"doc":{"summary":"Explicit shell program."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":459,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationoptions-shell"},{"id":"libtmux.CreationProcessOptions","publicId":"libtmux.CreationProcessOptions","name":"CreationProcessOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/domain.lua","line":449,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationprocessoptions"},{"id":"libtmux.CreationProcessOptions.deadline","publicId":"libtmux.CreationProcessOptions.deadline","name":"deadline","kind":"attribute","modifiers":[],"parent":"libtmux.CreationProcessOptions","signatures":[],"product":"core","apiScope":"exported","type":"number?","source":{"file":"lua/libtmux/_internal/domain.lua","line":451,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationprocessoptions-deadline"},{"id":"libtmux.CreationProcessOptions.drain_timeout","publicId":"libtmux.CreationProcessOptions.drain_timeout","name":"drain_timeout","kind":"attribute","modifiers":[],"parent":"libtmux.CreationProcessOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/domain.lua","line":453,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationprocessoptions-drain_timeout"},{"id":"libtmux.CreationProcessOptions.kill_timeout","publicId":"libtmux.CreationProcessOptions.kill_timeout","name":"kill_timeout","kind":"attribute","modifiers":[],"parent":"libtmux.CreationProcessOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/domain.lua","line":454,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationprocessoptions-kill_timeout"},{"id":"libtmux.CreationProcessOptions.max_output_bytes","publicId":"libtmux.CreationProcessOptions.max_output_bytes","name":"max_output_bytes","kind":"attribute","modifiers":[],"parent":"libtmux.CreationProcessOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/domain.lua","line":452,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationprocessoptions-max_output_bytes"},{"id":"libtmux.CreationProcessOptions.timeout","publicId":"libtmux.CreationProcessOptions.timeout","name":"timeout","kind":"attribute","modifiers":[],"parent":"libtmux.CreationProcessOptions","signatures":[],"product":"core","apiScope":"exported","type":"number?","source":{"file":"lua/libtmux/_internal/domain.lua","line":450,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-creationprocessoptions-timeout"},{"id":"libtmux.Entity","publicId":"libtmux.Entity","name":"Entity","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":383,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-entity"},{"id":"libtmux.Entity:reference","publicId":"libtmux.Entity:reference","name":"reference","kind":"method","modifiers":[],"parent":"libtmux.Entity","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Reference?, libtmux.Error?","params":[],"returns":"libtmux.Reference?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":384,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-entity-reference"},{"id":"libtmux.Entity:snapshot","publicId":"libtmux.Entity:snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"libtmux.Entity","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Request","params":[],"returns":"libtmux.Request"}],"doc":{"summary":"Re-reads this object's record."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":386,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-entity-snapshot"},{"id":"libtmux.EnvironmentGetOptions","publicId":"libtmux.EnvironmentGetOptions","name":"EnvironmentGetOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/environment.lua","line":442,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentgetoptions"},{"id":"libtmux.EnvironmentGetOptions.inherit","publicId":"libtmux.EnvironmentGetOptions.inherit","name":"inherit","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentGetOptions","signatures":[],"doc":{"summary":"Session fallback to global; default false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/environment.lua","line":443,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentgetoptions-inherit"},{"id":"libtmux.EnvironmentGetOptions.process","publicId":"libtmux.EnvironmentGetOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentGetOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/environment.lua","line":440,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.EnvironmentOptions","slug":"libtmux-environmentgetoptions-process"},{"id":"libtmux.EnvironmentGetOptions.scope","publicId":"libtmux.EnvironmentGetOptions.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentGetOptions","signatures":[],"doc":{"summary":"Must match the receiving handle."},"product":"core","apiScope":"exported","type":"(\"global\"|\"session\")?","source":{"file":"lua/libtmux/_internal/environment.lua","line":439,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.EnvironmentOptions","slug":"libtmux-environmentgetoptions-scope"},{"id":"libtmux.EnvironmentListOptions","publicId":"libtmux.EnvironmentListOptions","name":"EnvironmentListOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/environment.lua","line":445,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentlistoptions"},{"id":"libtmux.EnvironmentListOptions.include_hidden","publicId":"libtmux.EnvironmentListOptions.include_hidden","name":"include_hidden","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentListOptions","signatures":[],"doc":{"summary":"Default true."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/environment.lua","line":446,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentlistoptions-include_hidden"},{"id":"libtmux.EnvironmentListOptions.inherit","publicId":"libtmux.EnvironmentListOptions.inherit","name":"inherit","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentListOptions","signatures":[],"doc":{"summary":"Session fallback to global; default false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/environment.lua","line":443,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.EnvironmentGetOptions","slug":"libtmux-environmentlistoptions-inherit"},{"id":"libtmux.EnvironmentListOptions.process","publicId":"libtmux.EnvironmentListOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentListOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/environment.lua","line":440,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.EnvironmentOptions","slug":"libtmux-environmentlistoptions-process"},{"id":"libtmux.EnvironmentListOptions.scope","publicId":"libtmux.EnvironmentListOptions.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentListOptions","signatures":[],"doc":{"summary":"Must match the receiving handle."},"product":"core","apiScope":"exported","type":"(\"global\"|\"session\")?","source":{"file":"lua/libtmux/_internal/environment.lua","line":439,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.EnvironmentOptions","slug":"libtmux-environmentlistoptions-scope"},{"id":"libtmux.EnvironmentOptions","publicId":"libtmux.EnvironmentOptions","name":"EnvironmentOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/environment.lua","line":438,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentoptions"},{"id":"libtmux.EnvironmentOptions.process","publicId":"libtmux.EnvironmentOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/environment.lua","line":440,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentoptions-process"},{"id":"libtmux.EnvironmentOptions.scope","publicId":"libtmux.EnvironmentOptions.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentOptions","signatures":[],"doc":{"summary":"Must match the receiving handle."},"product":"core","apiScope":"exported","type":"(\"global\"|\"session\")?","source":{"file":"lua/libtmux/_internal/environment.lua","line":439,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentoptions-scope"},{"id":"libtmux.EnvironmentRecord","publicId":"libtmux.EnvironmentRecord","name":"EnvironmentRecord","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/environment.lua","line":428,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentrecord"},{"id":"libtmux.EnvironmentRecord.hidden","publicId":"libtmux.EnvironmentRecord.hidden","name":"hidden","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentRecord","signatures":[],"doc":{"summary":"Absent records have no visibility flag."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/environment.lua","line":432,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentrecord-hidden"},{"id":"libtmux.EnvironmentRecord.inherited","publicId":"libtmux.EnvironmentRecord.inherited","name":"inherited","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentRecord","signatures":[],"doc":{"summary":"True only for a global fallback requested through a session."},"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/environment.lua","line":434,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentrecord-inherited"},{"id":"libtmux.EnvironmentRecord.name","publicId":"libtmux.EnvironmentRecord.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentRecord","signatures":[],"doc":{"summary":"Portable environment identifier."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/environment.lua","line":429,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentrecord-name"},{"id":"libtmux.EnvironmentRecord.scope","publicId":"libtmux.EnvironmentRecord.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentRecord","signatures":[],"doc":{"summary":"Storage source, including for inherited records."},"product":"core","apiScope":"exported","type":"\"global\"|\"session\"","source":{"file":"lua/libtmux/_internal/environment.lua","line":433,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentrecord-scope"},{"id":"libtmux.EnvironmentRecord.state","publicId":"libtmux.EnvironmentRecord.state","name":"state","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentRecord","signatures":[],"product":"core","apiScope":"exported","type":"\"absent\"|\"removed\"|\"value\"","source":{"file":"lua/libtmux/_internal/environment.lua","line":430,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentrecord-state"},{"id":"libtmux.EnvironmentRecord.target","publicId":"libtmux.EnvironmentRecord.target","name":"target","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentRecord","signatures":[],"doc":{"summary":"Session storage identity; omitted for global storage."},"product":"core","apiScope":"exported","type":"(libtmux.Reference)?","source":{"file":"lua/libtmux/_internal/environment.lua","line":435,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentrecord-target"},{"id":"libtmux.EnvironmentRecord.value","publicId":"libtmux.EnvironmentRecord.value","name":"value","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentRecord","signatures":[],"doc":{"summary":"Exact bytes, present only for value records; may be empty."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/environment.lua","line":431,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentrecord-value"},{"id":"libtmux.EnvironmentSetOptions","publicId":"libtmux.EnvironmentSetOptions","name":"EnvironmentSetOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/environment.lua","line":448,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentsetoptions"},{"id":"libtmux.EnvironmentSetOptions.hidden","publicId":"libtmux.EnvironmentSetOptions.hidden","name":"hidden","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentSetOptions","signatures":[],"doc":{"summary":"Default false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/environment.lua","line":449,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-environmentsetoptions-hidden"},{"id":"libtmux.EnvironmentSetOptions.process","publicId":"libtmux.EnvironmentSetOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentSetOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/environment.lua","line":440,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.EnvironmentOptions","slug":"libtmux-environmentsetoptions-process"},{"id":"libtmux.EnvironmentSetOptions.scope","publicId":"libtmux.EnvironmentSetOptions.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.EnvironmentSetOptions","signatures":[],"doc":{"summary":"Must match the receiving handle."},"product":"core","apiScope":"exported","type":"(\"global\"|\"session\")?","source":{"file":"lua/libtmux/_internal/environment.lua","line":439,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.EnvironmentOptions","slug":"libtmux-environmentsetoptions-scope"},{"id":"libtmux.Error","publicId":"libtmux.Error","name":"Error","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1018,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-error"},{"id":"libtmux.Error.cause","publicId":"libtmux.Error.cause","name":"cause","kind":"attribute","modifiers":[],"parent":"libtmux.Error","signatures":[],"product":"core","apiScope":"exported","type":"unknown?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1023,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-error-cause"},{"id":"libtmux.Error.code","publicId":"libtmux.Error.code","name":"code","kind":"attribute","modifiers":[],"parent":"libtmux.Error","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1019,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-error-code"},{"id":"libtmux.Error.effect","publicId":"libtmux.Error.effect","name":"effect","kind":"attribute","modifiers":[],"parent":"libtmux.Error","signatures":[],"product":"core","apiScope":"exported","type":"(\"completed\"|\"not_sent\"|\"unknown\")?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1022,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-error-effect"},{"id":"libtmux.Error.message","publicId":"libtmux.Error.message","name":"message","kind":"attribute","modifiers":[],"parent":"libtmux.Error","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1020,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-error-message"},{"id":"libtmux.Error.operation","publicId":"libtmux.Error.operation","name":"operation","kind":"attribute","modifiers":[],"parent":"libtmux.Error","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1021,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-error-operation"},{"id":"libtmux.Error.partial","publicId":"libtmux.Error.partial","name":"partial","kind":"attribute","modifiers":[],"parent":"libtmux.Error","signatures":[],"product":"core","apiScope":"exported","type":"unknown?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1024,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-error-partial"},{"id":"libtmux.FieldCriteria","publicId":"libtmux.FieldCriteria","name":"FieldCriteria","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":256,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria"},{"id":"libtmux.FieldCriteria.contains","publicId":"libtmux.FieldCriteria.contains","name":"contains","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/query.lua","line":265,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-contains"},{"id":"libtmux.FieldCriteria.ends_with","publicId":"libtmux.FieldCriteria.ends_with","name":"ends_with","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/query.lua","line":267,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-ends_with"},{"id":"libtmux.FieldCriteria.eq","publicId":"libtmux.FieldCriteria.eq","name":"eq","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"(boolean|string|number|libtmux.Null)?","source":{"file":"lua/libtmux/query.lua","line":257,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-eq"},{"id":"libtmux.FieldCriteria.gt","publicId":"libtmux.FieldCriteria.gt","name":"gt","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"number?","source":{"file":"lua/libtmux/query.lua","line":263,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-gt"},{"id":"libtmux.FieldCriteria.gte","publicId":"libtmux.FieldCriteria.gte","name":"gte","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"number?","source":{"file":"lua/libtmux/query.lua","line":264,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-gte"},{"id":"libtmux.FieldCriteria.is_null","publicId":"libtmux.FieldCriteria.is_null","name":"is_null","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/query.lua","line":268,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-is_null"},{"id":"libtmux.FieldCriteria.lt","publicId":"libtmux.FieldCriteria.lt","name":"lt","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"number?","source":{"file":"lua/libtmux/query.lua","line":261,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-lt"},{"id":"libtmux.FieldCriteria.lte","publicId":"libtmux.FieldCriteria.lte","name":"lte","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"number?","source":{"file":"lua/libtmux/query.lua","line":262,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-lte"},{"id":"libtmux.FieldCriteria.ne","publicId":"libtmux.FieldCriteria.ne","name":"ne","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"(boolean|string|number|libtmux.Null)?","source":{"file":"lua/libtmux/query.lua","line":258,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-ne"},{"id":"libtmux.FieldCriteria.none_of","publicId":"libtmux.FieldCriteria.none_of","name":"none_of","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"boolean|string|number|libtmux.Null[]?","source":{"file":"lua/libtmux/query.lua","line":260,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-none_of"},{"id":"libtmux.FieldCriteria.one_of","publicId":"libtmux.FieldCriteria.one_of","name":"one_of","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"boolean|string|number|libtmux.Null[]?","source":{"file":"lua/libtmux/query.lua","line":259,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-one_of"},{"id":"libtmux.FieldCriteria.starts_with","publicId":"libtmux.FieldCriteria.starts_with","name":"starts_with","kind":"attribute","modifiers":[],"parent":"libtmux.FieldCriteria","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/query.lua","line":266,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fieldcriteria-starts_with"},{"id":"libtmux.Fields.Buffer","publicId":"libtmux.Fields.Buffer","name":"Buffer","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/fields.lua","line":74,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-buffer"},{"id":"libtmux.Fields.Buffer.created","publicId":"libtmux.Fields.Buffer.created","name":"created","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Buffer","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":78,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-buffer-created"},{"id":"libtmux.Fields.Buffer.name","publicId":"libtmux.Fields.Buffer.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Buffer","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":75,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-buffer-name"},{"id":"libtmux.Fields.Buffer.sample","publicId":"libtmux.Fields.Buffer.sample","name":"sample","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Buffer","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":77,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-buffer-sample"},{"id":"libtmux.Fields.Buffer.size","publicId":"libtmux.Fields.Buffer.size","name":"size","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Buffer","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":76,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-buffer-size"},{"id":"libtmux.Fields.Client","publicId":"libtmux.Fields.Client","name":"Client","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/fields.lua","line":62,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client"},{"id":"libtmux.Fields.Client.activity","publicId":"libtmux.Fields.Client.activity","name":"activity","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":72,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-activity"},{"id":"libtmux.Fields.Client.control_mode","publicId":"libtmux.Fields.Client.control_mode","name":"control_mode","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":69,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-control_mode"},{"id":"libtmux.Fields.Client.created","publicId":"libtmux.Fields.Client.created","name":"created","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":71,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-created"},{"id":"libtmux.Fields.Client.height","publicId":"libtmux.Fields.Client.height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"(integer|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":68,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-height"},{"id":"libtmux.Fields.Client.name","publicId":"libtmux.Fields.Client.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":63,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-name"},{"id":"libtmux.Fields.Client.pid","publicId":"libtmux.Fields.Client.pid","name":"pid","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":65,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-pid"},{"id":"libtmux.Fields.Client.readonly","publicId":"libtmux.Fields.Client.readonly","name":"readonly","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":70,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-readonly"},{"id":"libtmux.Fields.Client.session_name","publicId":"libtmux.Fields.Client.session_name","name":"session_name","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":66,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-session_name"},{"id":"libtmux.Fields.Client.tty","publicId":"libtmux.Fields.Client.tty","name":"tty","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":64,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-tty"},{"id":"libtmux.Fields.Client.width","publicId":"libtmux.Fields.Client.width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Client","signatures":[],"product":"core","apiScope":"exported","type":"(integer|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":67,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-client-width"},{"id":"libtmux.Fields.Pane","publicId":"libtmux.Fields.Pane","name":"Pane","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/fields.lua","line":39,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane"},{"id":"libtmux.Fields.Pane.active","publicId":"libtmux.Fields.Pane.active","name":"active","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":43,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-active"},{"id":"libtmux.Fields.Pane.current_command","publicId":"libtmux.Fields.Pane.current_command","name":"current_command","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":52,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-current_command"},{"id":"libtmux.Fields.Pane.current_path","publicId":"libtmux.Fields.Pane.current_path","name":"current_path","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":51,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-current_path"},{"id":"libtmux.Fields.Pane.dead","publicId":"libtmux.Fields.Pane.dead","name":"dead","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":54,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-dead"},{"id":"libtmux.Fields.Pane.dead_signal","publicId":"libtmux.Fields.Pane.dead_signal","name":"dead_signal","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":56,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-dead_signal"},{"id":"libtmux.Fields.Pane.dead_status","publicId":"libtmux.Fields.Pane.dead_status","name":"dead_status","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"(integer|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":55,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-dead_status"},{"id":"libtmux.Fields.Pane.dead_time","publicId":"libtmux.Fields.Pane.dead_time","name":"dead_time","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"(integer|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":57,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-dead_time"},{"id":"libtmux.Fields.Pane.height","publicId":"libtmux.Fields.Pane.height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":46,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-height"},{"id":"libtmux.Fields.Pane.id","publicId":"libtmux.Fields.Pane.id","name":"id","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":40,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-id"},{"id":"libtmux.Fields.Pane.index","publicId":"libtmux.Fields.Pane.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":42,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-index"},{"id":"libtmux.Fields.Pane.left","publicId":"libtmux.Fields.Pane.left","name":"left","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":47,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-left"},{"id":"libtmux.Fields.Pane.mode","publicId":"libtmux.Fields.Pane.mode","name":"mode","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":58,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-mode"},{"id":"libtmux.Fields.Pane.mode_count","publicId":"libtmux.Fields.Pane.mode_count","name":"mode_count","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":59,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-mode_count"},{"id":"libtmux.Fields.Pane.pid","publicId":"libtmux.Fields.Pane.pid","name":"pid","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":49,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-pid"},{"id":"libtmux.Fields.Pane.start_command","publicId":"libtmux.Fields.Pane.start_command","name":"start_command","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":53,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-start_command"},{"id":"libtmux.Fields.Pane.synchronized","publicId":"libtmux.Fields.Pane.synchronized","name":"synchronized","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":60,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-synchronized"},{"id":"libtmux.Fields.Pane.title","publicId":"libtmux.Fields.Pane.title","name":"title","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":44,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-title"},{"id":"libtmux.Fields.Pane.top","publicId":"libtmux.Fields.Pane.top","name":"top","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":48,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-top"},{"id":"libtmux.Fields.Pane.tty","publicId":"libtmux.Fields.Pane.tty","name":"tty","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":50,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-tty"},{"id":"libtmux.Fields.Pane.width","publicId":"libtmux.Fields.Pane.width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":45,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-width"},{"id":"libtmux.Fields.Pane.window_id","publicId":"libtmux.Fields.Pane.window_id","name":"window_id","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Pane","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":41,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-pane-window_id"},{"id":"libtmux.Fields.Server","publicId":"libtmux.Fields.Server","name":"Server","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/fields.lua","line":5,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-server"},{"id":"libtmux.Fields.Server.pid","publicId":"libtmux.Fields.Server.pid","name":"pid","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Server","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":6,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-server-pid"},{"id":"libtmux.Fields.Server.socket_path","publicId":"libtmux.Fields.Server.socket_path","name":"socket_path","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Server","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":7,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-server-socket_path"},{"id":"libtmux.Fields.Server.start_time","publicId":"libtmux.Fields.Server.start_time","name":"start_time","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Server","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":9,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-server-start_time"},{"id":"libtmux.Fields.Server.version","publicId":"libtmux.Fields.Server.version","name":"version","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Server","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":8,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-server-version"},{"id":"libtmux.Fields.Session","publicId":"libtmux.Fields.Session","name":"Session","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/fields.lua","line":11,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session"},{"id":"libtmux.Fields.Session.activity","publicId":"libtmux.Fields.Session.activity","name":"activity","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Session","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":15,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session-activity"},{"id":"libtmux.Fields.Session.attached","publicId":"libtmux.Fields.Session.attached","name":"attached","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Session","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":16,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session-attached"},{"id":"libtmux.Fields.Session.created","publicId":"libtmux.Fields.Session.created","name":"created","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Session","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":14,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session-created"},{"id":"libtmux.Fields.Session.group","publicId":"libtmux.Fields.Session.group","name":"group","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Session","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":18,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session-group"},{"id":"libtmux.Fields.Session.grouped","publicId":"libtmux.Fields.Session.grouped","name":"grouped","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Session","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":19,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session-grouped"},{"id":"libtmux.Fields.Session.id","publicId":"libtmux.Fields.Session.id","name":"id","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Session","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":12,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session-id"},{"id":"libtmux.Fields.Session.name","publicId":"libtmux.Fields.Session.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Session","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":13,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session-name"},{"id":"libtmux.Fields.Session.path","publicId":"libtmux.Fields.Session.path","name":"path","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Session","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":20,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session-path"},{"id":"libtmux.Fields.Session.window_count","publicId":"libtmux.Fields.Session.window_count","name":"window_count","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Session","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":17,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-session-window_count"},{"id":"libtmux.Fields.Window","publicId":"libtmux.Fields.Window","name":"Window","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/fields.lua","line":22,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-window"},{"id":"libtmux.Fields.Window.height","publicId":"libtmux.Fields.Window.height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Window","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":26,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-window-height"},{"id":"libtmux.Fields.Window.id","publicId":"libtmux.Fields.Window.id","name":"id","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Window","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":23,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-window-id"},{"id":"libtmux.Fields.Window.layout","publicId":"libtmux.Fields.Window.layout","name":"layout","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Window","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":28,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-window-layout"},{"id":"libtmux.Fields.Window.name","publicId":"libtmux.Fields.Window.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Window","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":24,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-window-name"},{"id":"libtmux.Fields.Window.pane_count","publicId":"libtmux.Fields.Window.pane_count","name":"pane_count","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Window","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":27,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-window-pane_count"},{"id":"libtmux.Fields.Window.visible_layout","publicId":"libtmux.Fields.Window.visible_layout","name":"visible_layout","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Window","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":29,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-window-visible_layout"},{"id":"libtmux.Fields.Window.width","publicId":"libtmux.Fields.Window.width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Window","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":25,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-window-width"},{"id":"libtmux.Fields.Window.zoomed","publicId":"libtmux.Fields.Window.zoomed","name":"zoomed","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.Window","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":30,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-window-zoomed"},{"id":"libtmux.Fields.WindowLink","publicId":"libtmux.Fields.WindowLink","name":"WindowLink","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/fields.lua","line":32,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-windowlink"},{"id":"libtmux.Fields.WindowLink.active","publicId":"libtmux.Fields.WindowLink.active","name":"active","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.WindowLink","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":36,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-windowlink-active"},{"id":"libtmux.Fields.WindowLink.flags","publicId":"libtmux.Fields.WindowLink.flags","name":"flags","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.WindowLink","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":37,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-windowlink-flags"},{"id":"libtmux.Fields.WindowLink.index","publicId":"libtmux.Fields.WindowLink.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.WindowLink","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":35,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-windowlink-index"},{"id":"libtmux.Fields.WindowLink.session_id","publicId":"libtmux.Fields.WindowLink.session_id","name":"session_id","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.WindowLink","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":33,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-windowlink-session_id"},{"id":"libtmux.Fields.WindowLink.window_id","publicId":"libtmux.Fields.WindowLink.window_id","name":"window_id","kind":"attribute","modifiers":[],"parent":"libtmux.Fields.WindowLink","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":34,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-fields-windowlink-window_id"},{"id":"libtmux.HookName","publicId":"libtmux.HookName","name":"HookName","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.HookName","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":179,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookname"},{"id":"libtmux.HookProgram","publicId":"libtmux.HookProgram","name":"HookProgram","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":641,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookprogram"},{"id":"libtmux.HookProgram.commands","publicId":"libtmux.HookProgram.commands","name":"commands","kind":"attribute","modifiers":[],"parent":"libtmux.HookProgram","signatures":[],"doc":{"summary":"Exactly one of commands or source."},"product":"core","apiScope":"exported","type":"string[][]?","source":{"file":"lua/libtmux/_internal/settings.lua","line":642,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookprogram-commands"},{"id":"libtmux.HookProgram.source","publicId":"libtmux.HookProgram.source","name":"source","kind":"attribute","modifiers":[],"parent":"libtmux.HookProgram","signatures":[],"doc":{"summary":"Explicit tmux program text; never Lua code."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/settings.lua","line":643,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookprogram-source"},{"id":"libtmux.HookRecord","publicId":"libtmux.HookRecord","name":"HookRecord","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":686,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookrecord"},{"id":"libtmux.HookRecord.entries","publicId":"libtmux.HookRecord.entries","name":"entries","kind":"attribute","modifiers":[],"parent":"libtmux.HookRecord","signatures":[],"doc":{"summary":"Canonical built-in hook programs."},"product":"core","apiScope":"exported","type":"{ index: integer, source: string }[]?","source":{"file":"lua/libtmux/_internal/settings.lua","line":694,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookrecord-entries"},{"id":"libtmux.HookRecord.inherited","publicId":"libtmux.HookRecord.inherited","name":"inherited","kind":"attribute","modifiers":[],"parent":"libtmux.HookRecord","signatures":[],"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/settings.lua","line":692,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookrecord-inherited"},{"id":"libtmux.HookRecord.name","publicId":"libtmux.HookRecord.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.HookRecord","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/settings.lua","line":687,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookrecord-name"},{"id":"libtmux.HookRecord.present","publicId":"libtmux.HookRecord.present","name":"present","kind":"attribute","modifiers":[],"parent":"libtmux.HookRecord","signatures":[],"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/settings.lua","line":691,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookrecord-present"},{"id":"libtmux.HookRecord.scope","publicId":"libtmux.HookRecord.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.HookRecord","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/settings.lua","line":689,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookrecord-scope"},{"id":"libtmux.HookRecord.source","publicId":"libtmux.HookRecord.source","name":"source","kind":"attribute","modifiers":[],"parent":"libtmux.HookRecord","signatures":[],"doc":{"summary":"Stored program for a custom hook."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/settings.lua","line":693,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookrecord-source"},{"id":"libtmux.HookRecord.target","publicId":"libtmux.HookRecord.target","name":"target","kind":"attribute","modifiers":[],"parent":"libtmux.HookRecord","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Reference","source":{"file":"lua/libtmux/_internal/settings.lua","line":690,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookrecord-target"},{"id":"libtmux.HookRecord.type","publicId":"libtmux.HookRecord.type","name":"type","kind":"attribute","modifiers":[],"parent":"libtmux.HookRecord","signatures":[],"product":"core","apiScope":"exported","type":"'command'|'string'","source":{"file":"lua/libtmux/_internal/settings.lua","line":688,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-hookrecord-type"},{"id":"libtmux.KeyOptions","publicId":"libtmux.KeyOptions","name":"KeyOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":622,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-keyoptions"},{"id":"libtmux.KeyOptions.process","publicId":"libtmux.KeyOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.KeyOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/pane.lua","line":600,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.PaneOptions","slug":"libtmux-keyoptions-process"},{"id":"libtmux.KeyOptions.repeat_count","publicId":"libtmux.KeyOptions.repeat_count","name":"repeat_count","kind":"attribute","modifiers":[],"parent":"libtmux.KeyOptions","signatures":[],"doc":{"summary":"From 1 to 1000."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/pane.lua","line":623,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-keyoptions-repeat_count"},{"id":"libtmux.LayoutOptions","publicId":"libtmux.LayoutOptions","name":"LayoutOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":699,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-layoutoptions"},{"id":"libtmux.LayoutOptions.layout","publicId":"libtmux.LayoutOptions.layout","name":"layout","kind":"attribute","modifiers":[],"parent":"libtmux.LayoutOptions","signatures":[],"doc":{"summary":"Exported checksum-prefixed layout; native validation can unzoom first."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/topology.lua","line":701,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-layoutoptions-layout"},{"id":"libtmux.LayoutOptions.named","publicId":"libtmux.LayoutOptions.named","name":"named","kind":"attribute","modifiers":[],"parent":"libtmux.LayoutOptions","signatures":[],"product":"core","apiScope":"exported","type":"('even-horizontal'|'even-vertical'|'main-horizontal'|'main-horizontal-mirrored'|'main-vertical'...(+2))?","source":{"file":"lua/libtmux/_internal/topology.lua","line":700,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-layoutoptions-named"},{"id":"libtmux.LayoutOptions.next","publicId":"libtmux.LayoutOptions.next","name":"next","kind":"attribute","modifiers":[],"parent":"libtmux.LayoutOptions","signatures":[],"doc":{"summary":"Select exactly one of named/layout/next/previous/restore."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":702,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-layoutoptions-next"},{"id":"libtmux.LayoutOptions.previous","publicId":"libtmux.LayoutOptions.previous","name":"previous","kind":"attribute","modifiers":[],"parent":"libtmux.LayoutOptions","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":703,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-layoutoptions-previous"},{"id":"libtmux.LayoutOptions.process","publicId":"libtmux.LayoutOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.LayoutOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.TopologyOptions","slug":"libtmux-layoutoptions-process"},{"id":"libtmux.LayoutOptions.restore","publicId":"libtmux.LayoutOptions.restore","name":"restore","kind":"attribute","modifiers":[],"parent":"libtmux.LayoutOptions","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":704,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-layoutoptions-restore"},{"id":"libtmux.LinkDestination","publicId":"libtmux.LinkDestination","name":"LinkDestination","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":706,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-linkdestination"},{"id":"libtmux.LinkDestination.index","publicId":"libtmux.LinkDestination.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.LinkDestination","signatures":[],"doc":{"summary":"Native free index if omitted; excludes link."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/topology.lua","line":708,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-linkdestination-index"},{"id":"libtmux.LinkDestination.link","publicId":"libtmux.LinkDestination.link","name":"link","kind":"attribute","modifiers":[],"parent":"libtmux.LinkDestination","signatures":[],"doc":{"summary":"Guarded anchor or explicit victim."},"product":"core","apiScope":"exported","type":"(libtmux.WindowLink)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":709,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-linkdestination-link"},{"id":"libtmux.LinkDestination.position","publicId":"libtmux.LinkDestination.position","name":"position","kind":"attribute","modifiers":[],"parent":"libtmux.LinkDestination","signatures":[],"doc":{"summary":"At requires replace=true."},"product":"core","apiScope":"exported","type":"(\"after\"|\"at\"|\"before\")?","source":{"file":"lua/libtmux/_internal/topology.lua","line":710,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-linkdestination-position"},{"id":"libtmux.LinkDestination.session","publicId":"libtmux.LinkDestination.session","name":"session","kind":"attribute","modifiers":[],"parent":"libtmux.LinkDestination","signatures":[],"doc":{"summary":"Excludes link and position."},"product":"core","apiScope":"exported","type":"(libtmux.Session)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":707,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-linkdestination-session"},{"id":"libtmux.LinkOptions","publicId":"libtmux.LinkOptions","name":"LinkOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":715,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-linkoptions"},{"id":"libtmux.LinkOptions.process","publicId":"libtmux.LinkOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.LinkOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.TopologyOptions","slug":"libtmux-linkoptions-process"},{"id":"libtmux.LinkOptions.replace","publicId":"libtmux.LinkOptions.replace","name":"replace","kind":"attribute","modifiers":[],"parent":"libtmux.LinkOptions","signatures":[],"doc":{"summary":"Requires an explicit victim link with position=at."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":717,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-linkoptions-replace"},{"id":"libtmux.LinkOptions.select","publicId":"libtmux.LinkOptions.select","name":"select","kind":"attribute","modifiers":[],"parent":"libtmux.LinkOptions","signatures":[],"doc":{"summary":"Defaults to false; removal/replacement may force native selection."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":716,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-linkoptions-select"},{"id":"libtmux.LiveQueryOptions","publicId":"libtmux.LiveQueryOptions","name":"LiveQueryOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/live_query.lua","line":292,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryoptions"},{"id":"libtmux.LiveQueryOptions.kind","publicId":"libtmux.LiveQueryOptions.kind","name":"kind","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryOptions","signatures":[],"product":"core","apiScope":"exported","type":"(\"buffer\"|\"client\"|\"pane\"|\"session\"|\"window\"...(+1))?","source":{"file":"lua/libtmux/_internal/live_query.lua","line":293,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryoptions-kind"},{"id":"libtmux.LiveQueryOptions.native_filter","publicId":"libtmux.LiveQueryOptions.native_filter","name":"native_filter","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryOptions","signatures":[],"doc":{"summary":"Expert pane format; excludes where and pushdown."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/live_query.lua","line":296,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryoptions-native_filter"},{"id":"libtmux.LiveQueryOptions.pushdown","publicId":"libtmux.LiveQueryOptions.pushdown","name":"pushdown","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryOptions","signatures":[],"product":"core","apiScope":"exported","type":"(\"auto\"|\"never\"|\"require\")?","source":{"file":"lua/libtmux/_internal/live_query.lua","line":295,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryoptions-pushdown"},{"id":"libtmux.LiveQueryOptions.snapshot","publicId":"libtmux.LiveQueryOptions.snapshot","name":"snapshot","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryOptions","signatures":[],"doc":{"summary":"Full graph acquisition; required query fields are added."},"product":"core","apiScope":"exported","type":"(libtmux.SnapshotOptions)?","source":{"file":"lua/libtmux/_internal/live_query.lua","line":297,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryoptions-snapshot"},{"id":"libtmux.LiveQueryOptions.where","publicId":"libtmux.LiveQueryOptions.where","name":"where","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.Where)?","source":{"file":"lua/libtmux/_internal/live_query.lua","line":294,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryoptions-where"},{"id":"libtmux.LiveQueryPlan","publicId":"libtmux.LiveQueryPlan","name":"LiveQueryPlan","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/live_query.lua","line":299,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan"},{"id":"libtmux.LiveQueryPlan.commands","publicId":"libtmux.LiveQueryPlan.commands","name":"commands","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"doc":{"summary":"Ordered phases; see empty_server."},"product":"core","apiScope":"exported","type":"{ role: string, kind: string, argv: string[] }[]","source":{"file":"lua/libtmux/_internal/live_query.lua","line":307,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-commands"},{"id":"libtmux.LiveQueryPlan.consistency","publicId":"libtmux.LiveQueryPlan.consistency","name":"consistency","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"{ atomic: boolean, strict: boolean, verification_passes: integer }","source":{"file":"lua/libtmux/_internal/live_query.lua","line":313,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-consistency"},{"id":"libtmux.LiveQueryPlan.empty_server","publicId":"libtmux.LiveQueryPlan.empty_server","name":"empty_server","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/live_query.lua","line":314,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-empty_server"},{"id":"libtmux.LiveQueryPlan.exact","publicId":"libtmux.LiveQueryPlan.exact","name":"exact","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"doc":{"summary":"Whether the full predicate has a native translation."},"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/live_query.lua","line":303,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-exact"},{"id":"libtmux.LiveQueryPlan.fields","publicId":"libtmux.LiveQueryPlan.fields","name":"fields","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/live_query.lua","line":309,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-fields"},{"id":"libtmux.LiveQueryPlan.filter","publicId":"libtmux.LiveQueryPlan.filter","name":"filter","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/live_query.lua","line":304,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-filter"},{"id":"libtmux.LiveQueryPlan.hydration","publicId":"libtmux.LiveQueryPlan.hydration","name":"hydration","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"string[]","source":{"file":"lua/libtmux/_internal/live_query.lua","line":310,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-hydration"},{"id":"libtmux.LiveQueryPlan.kind","publicId":"libtmux.LiveQueryPlan.kind","name":"kind","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/live_query.lua","line":300,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-kind"},{"id":"libtmux.LiveQueryPlan.native_filter","publicId":"libtmux.LiveQueryPlan.native_filter","name":"native_filter","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/live_query.lua","line":305,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-native_filter"},{"id":"libtmux.LiveQueryPlan.projections","publicId":"libtmux.LiveQueryPlan.projections","name":"projections","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/live_query.lua","line":308,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-projections"},{"id":"libtmux.LiveQueryPlan.pushdown","publicId":"libtmux.LiveQueryPlan.pushdown","name":"pushdown","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/live_query.lua","line":302,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-pushdown"},{"id":"libtmux.LiveQueryPlan.pushed","publicId":"libtmux.LiveQueryPlan.pushed","name":"pushed","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"table[]","source":{"file":"lua/libtmux/_internal/live_query.lua","line":311,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-pushed"},{"id":"libtmux.LiveQueryPlan.residual","publicId":"libtmux.LiveQueryPlan.residual","name":"residual","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"{ path: string, reason: string }[]","source":{"file":"lua/libtmux/_internal/live_query.lua","line":312,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-residual"},{"id":"libtmux.LiveQueryPlan.source","publicId":"libtmux.LiveQueryPlan.source","name":"source","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"{ argv: string[] }","source":{"file":"lua/libtmux/_internal/live_query.lua","line":306,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-source"},{"id":"libtmux.LiveQueryPlan.version","publicId":"libtmux.LiveQueryPlan.version","name":"version","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryPlan","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/live_query.lua","line":301,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryplan-version"},{"id":"libtmux.LiveQueryResult","publicId":"libtmux.LiveQueryResult","name":"LiveQueryResult","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/live_query.lua","line":316,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryresult"},{"id":"libtmux.LiveQueryResult.acquisition","publicId":"libtmux.LiveQueryResult.acquisition","name":"acquisition","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryResult","signatures":[],"product":"core","apiScope":"exported","type":"{ started: number, finished: number }","source":{"file":"lua/libtmux/_internal/live_query.lua","line":322,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryresult-acquisition"},{"id":"libtmux.LiveQueryResult.complete","publicId":"libtmux.LiveQueryResult.complete","name":"complete","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryResult","signatures":[],"doc":{"summary":"False for known races; true does not imply atomic acquisition."},"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/live_query.lua","line":320,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryresult-complete"},{"id":"libtmux.LiveQueryResult.plan","publicId":"libtmux.LiveQueryResult.plan","name":"plan","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryResult","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.LiveQueryPlan","source":{"file":"lua/libtmux/_internal/live_query.lua","line":319,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryresult-plan"},{"id":"libtmux.LiveQueryResult.races","publicId":"libtmux.LiveQueryResult.races","name":"races","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryResult","signatures":[],"product":"core","apiScope":"exported","type":"table[]","source":{"file":"lua/libtmux/_internal/live_query.lua","line":321,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryresult-races"},{"id":"libtmux.LiveQueryResult.rows","publicId":"libtmux.LiveQueryResult.rows","name":"rows","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryResult","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Selection","source":{"file":"lua/libtmux/_internal/live_query.lua","line":317,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryresult-rows"},{"id":"libtmux.LiveQueryResult.snapshot","publicId":"libtmux.LiveQueryResult.snapshot","name":"snapshot","kind":"attribute","modifiers":[],"parent":"libtmux.LiveQueryResult","signatures":[],"doc":{"summary":"Complete captured relationship universe."},"product":"core","apiScope":"exported","type":"libtmux.Snapshot","source":{"file":"lua/libtmux/_internal/live_query.lua","line":318,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-livequeryresult-snapshot"},{"id":"libtmux.MovePaneOptions","publicId":"libtmux.MovePaneOptions","name":"MovePaneOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":726,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-movepaneoptions"},{"id":"libtmux.MovePaneOptions.before","publicId":"libtmux.MovePaneOptions.before","name":"before","kind":"attribute","modifiers":[],"parent":"libtmux.MovePaneOptions","signatures":[],"doc":{"summary":"Place before the target in native geometry."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":730,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-movepaneoptions-before"},{"id":"libtmux.MovePaneOptions.direction","publicId":"libtmux.MovePaneOptions.direction","name":"direction","kind":"attribute","modifiers":[],"parent":"libtmux.MovePaneOptions","signatures":[],"doc":{"summary":"Defaults to vertical."},"product":"core","apiScope":"exported","type":"(\"horizontal\"|\"vertical\")?","source":{"file":"lua/libtmux/_internal/topology.lua","line":727,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-movepaneoptions-direction"},{"id":"libtmux.MovePaneOptions.full_size","publicId":"libtmux.MovePaneOptions.full_size","name":"full_size","kind":"attribute","modifiers":[],"parent":"libtmux.MovePaneOptions","signatures":[],"doc":{"summary":"Extend across the full window."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":731,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-movepaneoptions-full_size"},{"id":"libtmux.MovePaneOptions.percent","publicId":"libtmux.MovePaneOptions.percent","name":"percent","kind":"attribute","modifiers":[],"parent":"libtmux.MovePaneOptions","signatures":[],"doc":{"summary":"Percentage from 1 to 100; excludes size."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/topology.lua","line":729,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-movepaneoptions-percent"},{"id":"libtmux.MovePaneOptions.process","publicId":"libtmux.MovePaneOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.MovePaneOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.TopologyOptions","slug":"libtmux-movepaneoptions-process"},{"id":"libtmux.MovePaneOptions.select","publicId":"libtmux.MovePaneOptions.select","name":"select","kind":"attribute","modifiers":[],"parent":"libtmux.MovePaneOptions","signatures":[],"doc":{"summary":"Defaults to false; true requires target_link."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":732,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-movepaneoptions-select"},{"id":"libtmux.MovePaneOptions.size","publicId":"libtmux.MovePaneOptions.size","name":"size","kind":"attribute","modifiers":[],"parent":"libtmux.MovePaneOptions","signatures":[],"doc":{"summary":"Cell count from 1 to 10000; excludes percent."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/topology.lua","line":728,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-movepaneoptions-size"},{"id":"libtmux.MovePaneOptions.target_link","publicId":"libtmux.MovePaneOptions.target_link","name":"target_link","kind":"attribute","modifiers":[],"parent":"libtmux.MovePaneOptions","signatures":[],"doc":{"summary":"Guarded target pane placement."},"product":"core","apiScope":"exported","type":"(libtmux.WindowLink)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":733,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-movepaneoptions-target_link"},{"id":"libtmux.NamedLayout","publicId":"libtmux.NamedLayout","name":"NamedLayout","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.NamedLayout","source":{"file":"lua/libtmux/_internal/topology.lua","line":690,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-namedlayout"},{"id":"libtmux.NavigateWindowOptions","publicId":"libtmux.NavigateWindowOptions","name":"NavigateWindowOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":679,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-navigatewindowoptions"},{"id":"libtmux.NavigateWindowOptions.activity","publicId":"libtmux.NavigateWindowOptions.activity","name":"activity","kind":"attribute","modifiers":[],"parent":"libtmux.NavigateWindowOptions","signatures":[],"doc":{"summary":"Only next/previous accept this option, including false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":680,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-navigatewindowoptions-activity"},{"id":"libtmux.NavigateWindowOptions.process","publicId":"libtmux.NavigateWindowOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.NavigateWindowOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.TopologyOptions","slug":"libtmux-navigatewindowoptions-process"},{"id":"libtmux.NewSessionOptions","publicId":"libtmux.NewSessionOptions","name":"NewSessionOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/domain.lua","line":463,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-newsessionoptions"},{"id":"libtmux.NewSessionOptions.argv","publicId":"libtmux.NewSessionOptions.argv","name":"argv","kind":"attribute","modifiers":[],"parent":"libtmux.NewSessionOptions","signatures":[],"doc":{"summary":"Literal command arguments; mutually exclusive with shell."},"product":"core","apiScope":"exported","type":"string[]?","source":{"file":"lua/libtmux/_internal/domain.lua","line":458,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newsessionoptions-argv"},{"id":"libtmux.NewSessionOptions.cwd","publicId":"libtmux.NewSessionOptions.cwd","name":"cwd","kind":"attribute","modifiers":[],"parent":"libtmux.NewSessionOptions","signatures":[],"doc":{"summary":"Absolute working directory."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":457,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newsessionoptions-cwd"},{"id":"libtmux.NewSessionOptions.environment","publicId":"libtmux.NewSessionOptions.environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux.NewSessionOptions","signatures":[],"doc":{"summary":"Environment for the created scope."},"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/_internal/domain.lua","line":460,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newsessionoptions-environment"},{"id":"libtmux.NewSessionOptions.height","publicId":"libtmux.NewSessionOptions.height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux.NewSessionOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/domain.lua","line":467,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-newsessionoptions-height"},{"id":"libtmux.NewSessionOptions.name","publicId":"libtmux.NewSessionOptions.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.NewSessionOptions","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":464,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-newsessionoptions-name"},{"id":"libtmux.NewSessionOptions.process","publicId":"libtmux.NewSessionOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.NewSessionOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/domain.lua","line":461,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newsessionoptions-process"},{"id":"libtmux.NewSessionOptions.shell","publicId":"libtmux.NewSessionOptions.shell","name":"shell","kind":"attribute","modifiers":[],"parent":"libtmux.NewSessionOptions","signatures":[],"doc":{"summary":"Explicit shell program."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":459,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newsessionoptions-shell"},{"id":"libtmux.NewSessionOptions.width","publicId":"libtmux.NewSessionOptions.width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux.NewSessionOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/domain.lua","line":466,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-newsessionoptions-width"},{"id":"libtmux.NewSessionOptions.window_name","publicId":"libtmux.NewSessionOptions.window_name","name":"window_name","kind":"attribute","modifiers":[],"parent":"libtmux.NewSessionOptions","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":465,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-newsessionoptions-window_name"},{"id":"libtmux.NewWindowOptions","publicId":"libtmux.NewWindowOptions","name":"NewWindowOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/domain.lua","line":469,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-newwindowoptions"},{"id":"libtmux.NewWindowOptions.argv","publicId":"libtmux.NewWindowOptions.argv","name":"argv","kind":"attribute","modifiers":[],"parent":"libtmux.NewWindowOptions","signatures":[],"doc":{"summary":"Literal command arguments; mutually exclusive with shell."},"product":"core","apiScope":"exported","type":"string[]?","source":{"file":"lua/libtmux/_internal/domain.lua","line":458,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newwindowoptions-argv"},{"id":"libtmux.NewWindowOptions.cwd","publicId":"libtmux.NewWindowOptions.cwd","name":"cwd","kind":"attribute","modifiers":[],"parent":"libtmux.NewWindowOptions","signatures":[],"doc":{"summary":"Absolute working directory."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":457,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newwindowoptions-cwd"},{"id":"libtmux.NewWindowOptions.environment","publicId":"libtmux.NewWindowOptions.environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux.NewWindowOptions","signatures":[],"doc":{"summary":"Environment for the created scope."},"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/_internal/domain.lua","line":460,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newwindowoptions-environment"},{"id":"libtmux.NewWindowOptions.index","publicId":"libtmux.NewWindowOptions.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.NewWindowOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/domain.lua","line":471,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-newwindowoptions-index"},{"id":"libtmux.NewWindowOptions.name","publicId":"libtmux.NewWindowOptions.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.NewWindowOptions","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":470,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-newwindowoptions-name"},{"id":"libtmux.NewWindowOptions.process","publicId":"libtmux.NewWindowOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.NewWindowOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/domain.lua","line":461,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newwindowoptions-process"},{"id":"libtmux.NewWindowOptions.select","publicId":"libtmux.NewWindowOptions.select","name":"select","kind":"attribute","modifiers":[],"parent":"libtmux.NewWindowOptions","signatures":[],"doc":{"summary":"Defaults to false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/domain.lua","line":472,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-newwindowoptions-select"},{"id":"libtmux.NewWindowOptions.shell","publicId":"libtmux.NewWindowOptions.shell","name":"shell","kind":"attribute","modifiers":[],"parent":"libtmux.NewWindowOptions","signatures":[],"doc":{"summary":"Explicit shell program."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":459,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-newwindowoptions-shell"},{"id":"libtmux.Null","publicId":"libtmux.Null","name":"Null","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Null","source":{"file":"lua/libtmux/query.lua","line":236,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-null"},{"id":"libtmux.Observation","publicId":"libtmux.Observation","name":"Observation","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":384,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observation"},{"id":"libtmux.Observation:close","publicId":"libtmux.Observation:close","name":"close","kind":"method","modifiers":[],"parent":"libtmux.Observation","signatures":[{"raw":"fun(self: libtmux.Observation):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":392,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observation-close"},{"id":"libtmux.Observation:coverage","publicId":"libtmux.Observation:coverage","name":"coverage","kind":"method","modifiers":[],"parent":"libtmux.Observation","signatures":[{"raw":"fun(self: libtmux.Observation):libtmux.ObservationCoverage?, libtmux.Error?","params":[],"returns":"libtmux.ObservationCoverage?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":391,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observation-coverage"},{"id":"libtmux.Observation:subscribe_format","publicId":"libtmux.Observation:subscribe_format","name":"subscribe_format","kind":"method","modifiers":[],"parent":"libtmux.Observation","signatures":[{"raw":"fun(self: libtmux.Observation, pane: libtmux.Pane, fields: string[], options?: libtmux.WatchOptions):libtmux.Request","params":[{"name":"pane","type":"libtmux.Pane","doc":" A tmux pane."},{"name":"fields","type":"string[]"},{"name":"options","type":"libtmux.WatchOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":389,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observation-subscribe_format"},{"id":"libtmux.Observation:watch_notifications","publicId":"libtmux.Observation:watch_notifications","name":"watch_notifications","kind":"method","modifiers":[],"parent":"libtmux.Observation","signatures":[{"raw":"fun(self: libtmux.Observation, options?: libtmux.WatchOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.WatchOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":387,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observation-watch_notifications"},{"id":"libtmux.Observation:watch_pane","publicId":"libtmux.Observation:watch_pane","name":"watch_pane","kind":"method","modifiers":[],"parent":"libtmux.Observation","signatures":[{"raw":"fun(self: libtmux.Observation, pane: libtmux.Pane, options?: libtmux.WatchOptions):libtmux.Request","params":[{"name":"pane","type":"libtmux.Pane","doc":" A tmux pane."},{"name":"options","type":"libtmux.WatchOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":385,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observation-watch_pane"},{"id":"libtmux.ObservationCoverage","publicId":"libtmux.ObservationCoverage","name":"ObservationCoverage","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":378,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationcoverage"},{"id":"libtmux.ObservationCoverage.generation","publicId":"libtmux.ObservationCoverage.generation","name":"generation","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationCoverage","signatures":[],"doc":{"summary":"Opaque connection identity, distinct after reopening."},"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/observation.lua","line":381,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationcoverage-generation"},{"id":"libtmux.ObservationCoverage.panes","publicId":"libtmux.ObservationCoverage.panes","name":"panes","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationCoverage","signatures":[],"product":"core","apiScope":"exported","type":"string[]","source":{"file":"lua/libtmux/_internal/observation.lua","line":380,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationcoverage-panes"},{"id":"libtmux.ObservationCoverage.ready","publicId":"libtmux.ObservationCoverage.ready","name":"ready","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationCoverage","signatures":[],"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/observation.lua","line":382,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationcoverage-ready"},{"id":"libtmux.ObservationCoverage.session_id","publicId":"libtmux.ObservationCoverage.session_id","name":"session_id","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationCoverage","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/observation.lua","line":379,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationcoverage-session_id"},{"id":"libtmux.ObservationEvent","publicId":"libtmux.ObservationEvent","name":"ObservationEvent","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":394,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent"},{"id":"libtmux.ObservationEvent.age","publicId":"libtmux.ObservationEvent.age","name":"age","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"doc":{"summary":"Extended-output decimal age."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/observation.lua","line":401,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-age"},{"id":"libtmux.ObservationEvent.data","publicId":"libtmux.ObservationEvent.data","name":"data","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"doc":{"summary":"Byte-preserving pane output."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/observation.lua","line":400,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-data"},{"id":"libtmux.ObservationEvent.generation","publicId":"libtmux.ObservationEvent.generation","name":"generation","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/observation.lua","line":396,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-generation"},{"id":"libtmux.ObservationEvent.index","publicId":"libtmux.ObservationEvent.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/observation.lua","line":409,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-index"},{"id":"libtmux.ObservationEvent.kind","publicId":"libtmux.ObservationEvent.kind","name":"kind","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"product":"core","apiScope":"exported","type":"\"format\"|\"notification\"|\"output\"","source":{"file":"lua/libtmux/_internal/observation.lua","line":395,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-kind"},{"id":"libtmux.ObservationEvent.metadata","publicId":"libtmux.ObservationEvent.metadata","name":"metadata","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"doc":{"summary":"Extended-output metadata."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/observation.lua","line":402,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-metadata"},{"id":"libtmux.ObservationEvent.name","publicId":"libtmux.ObservationEvent.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"doc":{"summary":"Native notification name."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/observation.lua","line":403,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-name"},{"id":"libtmux.ObservationEvent.pane","publicId":"libtmux.ObservationEvent.pane","name":"pane","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/observation.lua","line":399,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-pane"},{"id":"libtmux.ObservationEvent.payload","publicId":"libtmux.ObservationEvent.payload","name":"payload","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"doc":{"summary":"Native notification payload."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/observation.lua","line":404,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-payload"},{"id":"libtmux.ObservationEvent.raw","publicId":"libtmux.ObservationEvent.raw","name":"raw","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"doc":{"summary":"Original notification line."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/observation.lua","line":405,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-raw"},{"id":"libtmux.ObservationEvent.sequence","publicId":"libtmux.ObservationEvent.sequence","name":"sequence","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"product":"core","apiScope":"exported","type":"integer","source":{"file":"lua/libtmux/_internal/observation.lua","line":398,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-sequence"},{"id":"libtmux.ObservationEvent.server_generation","publicId":"libtmux.ObservationEvent.server_generation","name":"server_generation","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/observation.lua","line":397,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-server_generation"},{"id":"libtmux.ObservationEvent.session_id","publicId":"libtmux.ObservationEvent.session_id","name":"session_id","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/observation.lua","line":407,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-session_id"},{"id":"libtmux.ObservationEvent.value","publicId":"libtmux.ObservationEvent.value","name":"value","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"doc":{"summary":"Typed format subscription value."},"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/_internal/observation.lua","line":406,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-value"},{"id":"libtmux.ObservationEvent.window_id","publicId":"libtmux.ObservationEvent.window_id","name":"window_id","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationEvent","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/observation.lua","line":408,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationevent-window_id"},{"id":"libtmux.ObservationOptions","publicId":"libtmux.ObservationOptions","name":"ObservationOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":368,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationoptions"},{"id":"libtmux.ObservationOptions.max_bytes","publicId":"libtmux.ObservationOptions.max_bytes","name":"max_bytes","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationOptions","signatures":[],"doc":{"summary":"Shared retained connection bytes; default 4194304."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/observation.lua","line":369,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationoptions-max_bytes"},{"id":"libtmux.ObservationOptions.max_pending","publicId":"libtmux.ObservationOptions.max_pending","name":"max_pending","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationOptions","signatures":[],"doc":{"summary":"Shared housekeeping replies; default 128."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/observation.lua","line":370,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationoptions-max_pending"},{"id":"libtmux.ObservationOptions.max_watches","publicId":"libtmux.ObservationOptions.max_watches","name":"max_watches","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationOptions","signatures":[],"doc":{"summary":"Shared watches; default 128."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/observation.lua","line":371,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationoptions-max_watches"},{"id":"libtmux.ObservationOptions.timeout","publicId":"libtmux.ObservationOptions.timeout","name":"timeout","kind":"attribute","modifiers":[],"parent":"libtmux.ObservationOptions","signatures":[],"doc":{"summary":"Readiness timeout in milliseconds; default 750."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/observation.lua","line":372,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-observationoptions-timeout"},{"id":"libtmux.OptionArrayInput","publicId":"libtmux.OptionArrayInput","name":"OptionArrayInput","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":649,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionarrayinput"},{"id":"libtmux.OptionArrayInput.entries","publicId":"libtmux.OptionArrayInput.entries","name":"entries","kind":"attribute","modifiers":[],"parent":"libtmux.OptionArrayInput","signatures":[],"product":"core","apiScope":"exported","type":"{ index: integer, value: boolean|string|number|libtmux.HookProgram }[]","source":{"file":"lua/libtmux/_internal/settings.lua","line":650,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionarrayinput-entries"},{"id":"libtmux.OptionDescriptor","publicId":"libtmux.OptionDescriptor","name":"OptionDescriptor","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":5,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor"},{"id":"libtmux.OptionDescriptor.array","publicId":"libtmux.OptionDescriptor.array","name":"array","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":11,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-array"},{"id":"libtmux.OptionDescriptor.array_separator","publicId":"libtmux.OptionDescriptor.array_separator","name":"array_separator","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":15,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-array_separator"},{"id":"libtmux.OptionDescriptor.choices","publicId":"libtmux.OptionDescriptor.choices","name":"choices","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"string[]?","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":20,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-choices"},{"id":"libtmux.OptionDescriptor.flags_bits","publicId":"libtmux.OptionDescriptor.flags_bits","name":"flags_bits","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"integer","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":10,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-flags_bits"},{"id":"libtmux.OptionDescriptor.hook","publicId":"libtmux.OptionDescriptor.hook","name":"hook","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":12,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-hook"},{"id":"libtmux.OptionDescriptor.maximum","publicId":"libtmux.OptionDescriptor.maximum","name":"maximum","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":17,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-maximum"},{"id":"libtmux.OptionDescriptor.maximum_expression","publicId":"libtmux.OptionDescriptor.maximum_expression","name":"maximum_expression","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":19,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-maximum_expression"},{"id":"libtmux.OptionDescriptor.minimum","publicId":"libtmux.OptionDescriptor.minimum","name":"minimum","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":16,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-minimum"},{"id":"libtmux.OptionDescriptor.minimum_expression","publicId":"libtmux.OptionDescriptor.minimum_expression","name":"minimum_expression","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":18,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-minimum_expression"},{"id":"libtmux.OptionDescriptor.name","publicId":"libtmux.OptionDescriptor.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":6,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-name"},{"id":"libtmux.OptionDescriptor.native_type","publicId":"libtmux.OptionDescriptor.native_type","name":"native_type","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"'choice'|'colour'|'command'|'flag'|'key'...(+2)","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":7,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-native_type"},{"id":"libtmux.OptionDescriptor.pattern","publicId":"libtmux.OptionDescriptor.pattern","name":"pattern","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":21,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-pattern"},{"id":"libtmux.OptionDescriptor.scope_bits","publicId":"libtmux.OptionDescriptor.scope_bits","name":"scope_bits","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"integer","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":8,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-scope_bits"},{"id":"libtmux.OptionDescriptor.scopes","publicId":"libtmux.OptionDescriptor.scopes","name":"scopes","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"('pane'|'server'|'session'|'window')[]","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":9,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-scopes"},{"id":"libtmux.OptionDescriptor.separator","publicId":"libtmux.OptionDescriptor.separator","name":"separator","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":14,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-separator"},{"id":"libtmux.OptionDescriptor.style","publicId":"libtmux.OptionDescriptor.style","name":"style","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":13,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-style"},{"id":"libtmux.OptionDescriptor.unit","publicId":"libtmux.OptionDescriptor.unit","name":"unit","kind":"attribute","modifiers":[],"parent":"libtmux.OptionDescriptor","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":22,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optiondescriptor-unit"},{"id":"libtmux.OptionEntry","publicId":"libtmux.OptionEntry","name":"OptionEntry","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":645,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionentry"},{"id":"libtmux.OptionEntry.index","publicId":"libtmux.OptionEntry.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.OptionEntry","signatures":[],"doc":{"summary":"Zero-based native array index."},"product":"core","apiScope":"exported","type":"integer","source":{"file":"lua/libtmux/_internal/settings.lua","line":646,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionentry-index"},{"id":"libtmux.OptionEntry.value","publicId":"libtmux.OptionEntry.value","name":"value","kind":"attribute","modifiers":[],"parent":"libtmux.OptionEntry","signatures":[],"product":"core","apiScope":"exported","type":"boolean|string|number","source":{"file":"lua/libtmux/_internal/settings.lua","line":647,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionentry-value"},{"id":"libtmux.OptionInput","publicId":"libtmux.OptionInput","name":"OptionInput","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.OptionInput","source":{"file":"lua/libtmux/_internal/settings.lua","line":652,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optioninput"},{"id":"libtmux.OptionName","publicId":"libtmux.OptionName","name":"OptionName","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.OptionName","source":{"file":"lua/libtmux/_internal/options_catalog.lua","line":24,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionname"},{"id":"libtmux.OptionRecord","publicId":"libtmux.OptionRecord","name":"OptionRecord","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":676,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionrecord"},{"id":"libtmux.OptionRecord.entries","publicId":"libtmux.OptionRecord.entries","name":"entries","kind":"attribute","modifiers":[],"parent":"libtmux.OptionRecord","signatures":[],"doc":{"summary":"Ordered sparse entries; empty is distinct from absent."},"product":"core","apiScope":"exported","type":"libtmux.OptionEntry[]?","source":{"file":"lua/libtmux/_internal/settings.lua","line":684,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionrecord-entries"},{"id":"libtmux.OptionRecord.inherited","publicId":"libtmux.OptionRecord.inherited","name":"inherited","kind":"attribute","modifiers":[],"parent":"libtmux.OptionRecord","signatures":[],"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/settings.lua","line":682,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionrecord-inherited"},{"id":"libtmux.OptionRecord.name","publicId":"libtmux.OptionRecord.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.OptionRecord","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/settings.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionrecord-name"},{"id":"libtmux.OptionRecord.present","publicId":"libtmux.OptionRecord.present","name":"present","kind":"attribute","modifiers":[],"parent":"libtmux.OptionRecord","signatures":[],"doc":{"summary":"False distinguishes absent from empty and false."},"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/settings.lua","line":681,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionrecord-present"},{"id":"libtmux.OptionRecord.scope","publicId":"libtmux.OptionRecord.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.OptionRecord","signatures":[],"doc":{"summary":"Requested storage scope."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/settings.lua","line":679,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionrecord-scope"},{"id":"libtmux.OptionRecord.target","publicId":"libtmux.OptionRecord.target","name":"target","kind":"attribute","modifiers":[],"parent":"libtmux.OptionRecord","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Reference","source":{"file":"lua/libtmux/_internal/settings.lua","line":680,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionrecord-target"},{"id":"libtmux.OptionRecord.type","publicId":"libtmux.OptionRecord.type","name":"type","kind":"attribute","modifiers":[],"parent":"libtmux.OptionRecord","signatures":[],"product":"core","apiScope":"exported","type":"'choice'|'colour'|'command'|'flag'|'key'...(+2)","source":{"file":"lua/libtmux/_internal/settings.lua","line":678,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionrecord-type"},{"id":"libtmux.OptionRecord.value","publicId":"libtmux.OptionRecord.value","name":"value","kind":"attribute","modifiers":[],"parent":"libtmux.OptionRecord","signatures":[],"doc":{"summary":"Canonical text for key, colour, style and command types."},"product":"core","apiScope":"exported","type":"(boolean|string|number)?","source":{"file":"lua/libtmux/_internal/settings.lua","line":683,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-optionrecord-value"},{"id":"libtmux.Pane","publicId":"libtmux.Pane","name":"Pane","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":471,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane"},{"id":"libtmux.Pane:break_out","publicId":"libtmux.Pane:break_out","name":"break_out","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, source_link: libtmux.WindowLink, destination: libtmux.LinkDestination, options?: libtmux.BreakPaneOptions):libtmux.Request","params":[{"name":"source_link","type":"libtmux.WindowLink","doc":" One placement of a window in a session: a window can be linked into several."},{"name":"destination","type":"libtmux.LinkDestination"},{"name":"options","type":"libtmux.BreakPaneOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":504,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-break_out"},{"id":"libtmux.Pane:capture","publicId":"libtmux.Pane:capture","name":"capture","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, options?: libtmux.CaptureOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.CaptureOptions?","default":"nil"}],"returns":"libtmux.Request"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Capture a completed command's output from a pane. Use Lua 5.5.1, LuaRocks, Git, tmux 3.3a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as capture.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/capture.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n local created = must(server:new_session({ name = \"demo\", argv = { \"/bin/sh\" } }):await())\n local pane = created.pane\n local function quote(text)\n return \"'\" .. text:gsub(\"'\", \"'\\\\''\") .. \"'\"\n end\n\n -- Signal completion on this socket; do not guess when the shell has printed.\n local command = \"printf '\\\\nlua capture ready\\\\n'; \"\n .. quote(binary)\n .. \" -S \"\n .. quote(socket)\n .. \" wait-for -S example-ready\"\n must(pane:send_text(command):await())\n must(pane:send_keys({ \"Enter\" }):await())\n must(server:command({ \"wait-for\", \"example-ready\" }, { timeout = 1000 }):await())\n local capture = must(pane:capture({ history_lines = 20 }):await())\n local found = false\n for line in must(capture:text()):gmatch(\"[^\\r\\n]+\") do\n if line == \"lua capture ready\" then\n found = true\n end\n end\n assert(found, \"completed command did not print the expected line\")\n print(\"lua capture ready\")\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh capture.lua\n"}]},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":476,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-capture"},{"id":"libtmux.Pane:capture_to_buffer","publicId":"libtmux.Pane:capture_to_buffer","name":"capture_to_buffer","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, name: string, options?: libtmux.CaptureOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.CaptureOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":492,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-capture_to_buffer"},{"id":"libtmux.Pane:clear_history","publicId":"libtmux.Pane:clear_history","name":"clear_history","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, options?: libtmux.ClearHistoryOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.ClearHistoryOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":490,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-clear_history"},{"id":"libtmux.Pane:copy_command","publicId":"libtmux.Pane:copy_command","name":"copy_command","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, action: string, args?: string[], options?: libtmux.KeyOptions):libtmux.Request","params":[{"name":"action","type":"string"},{"name":"args","type":"string[]?","default":"nil"},{"name":"options","type":"libtmux.KeyOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":498,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-copy_command"},{"id":"libtmux.Pane:copy_mode","publicId":"libtmux.Pane:copy_mode","name":"copy_mode","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, options?: libtmux.CopyModeOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.CopyModeOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":496,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-copy_mode"},{"id":"libtmux.Pane:get_hook","publicId":"libtmux.Pane:get_hook","name":"get_hook","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":402,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-pane-get_hook"},{"id":"libtmux.Pane:get_option","publicId":"libtmux.Pane:get_option","name":"get_option","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":391,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-pane-get_option"},{"id":"libtmux.Pane:kill","publicId":"libtmux.Pane:kill","name":"kill","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, options?: libtmux.PaneOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.PaneOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":480,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-kill"},{"id":"libtmux.Pane:list_hooks","publicId":"libtmux.Pane:list_hooks","name":"list_hooks","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Configurable, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":404,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-pane-list_hooks"},{"id":"libtmux.Pane:list_options","publicId":"libtmux.Pane:list_options","name":"list_options","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Configurable, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":394,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-pane-list_options"},{"id":"libtmux.Pane:move_to","publicId":"libtmux.Pane:move_to","name":"move_to","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, other: libtmux.Pane, options?: libtmux.MovePaneOptions):libtmux.Request","params":[{"name":"other","type":"libtmux.Pane","doc":" A tmux pane."},{"name":"options","type":"libtmux.MovePaneOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":502,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-move_to"},{"id":"libtmux.Pane:paste_buffer","publicId":"libtmux.Pane:paste_buffer","name":"paste_buffer","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, name: string, options?: libtmux.PasteBufferOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.PasteBufferOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":494,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-paste_buffer"},{"id":"libtmux.Pane:reference","publicId":"libtmux.Pane:reference","name":"reference","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Reference?, libtmux.Error?","params":[],"returns":"libtmux.Reference?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":384,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-pane-reference"},{"id":"libtmux.Pane:resize","publicId":"libtmux.Pane:resize","name":"resize","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, options: libtmux.ResizePaneOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.ResizePaneOptions"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":484,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-resize"},{"id":"libtmux.Pane:respawn","publicId":"libtmux.Pane:respawn","name":"respawn","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, options?: libtmux.RespawnOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.RespawnOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":486,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-respawn"},{"id":"libtmux.Pane:run_hook","publicId":"libtmux.Pane:run_hook","name":"run_hook","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.RunHookOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.RunHookOptions?","default":"nil","doc":" Running a hook reads only its handle's own scope."}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":412,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-pane-run_hook"},{"id":"libtmux.Pane:select","publicId":"libtmux.Pane:select","name":"select","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, options?: libtmux.SelectPaneOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SelectPaneOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":482,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-select"},{"id":"libtmux.Pane:send_keys","publicId":"libtmux.Pane:send_keys","name":"send_keys","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, keys: string[], options?: libtmux.KeyOptions):libtmux.Request","params":[{"name":"keys","type":"string[]"},{"name":"options","type":"libtmux.KeyOptions?","default":"nil"}],"returns":"libtmux.Request"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Send literal text and press Enter in a pane. Use Lua 5.5.1, LuaRocks, Git, tmux 3.3a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as send_keys.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/send_keys.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n local created = must(server:new_session({ name = \"demo\", argv = { \"/bin/sh\" } }):await())\n local pane = created.pane\n local function quote(text)\n return \"'\" .. text:gsub(\"'\", \"'\\\\''\") .. \"'\"\n end\n\n -- Signal completion on this socket; do not guess when the shell has printed.\n local command = \"printf '\\\\nlua input ready\\\\n'; \"\n .. quote(binary)\n .. \" -S \"\n .. quote(socket)\n .. \" wait-for -S example-ready\"\n must(pane:send_text(command):await())\n must(pane:send_keys({ \"Enter\" }):await())\n must(server:command({ \"wait-for\", \"example-ready\" }, { timeout = 1000 }):await())\n local capture = must(pane:capture({ history_lines = 20 }):await())\n local found = false\n for line in must(capture:text()):gmatch(\"[^\\r\\n]+\") do\n if line == \"lua input ready\" then\n found = true\n end\n end\n assert(found, \"completed command did not print the expected line\")\n print(\"lua input ready\")\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh send_keys.lua\n"}]},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":472,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-send_keys"},{"id":"libtmux.Pane:send_text","publicId":"libtmux.Pane:send_text","name":"send_text","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, text: string, options?: libtmux.PaneOptions):libtmux.Request","params":[{"name":"text","type":"string"},{"name":"options","type":"libtmux.PaneOptions?","default":"nil"}],"returns":"libtmux.Request"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Send literal text and press Enter in a pane. Use Lua 5.5.1, LuaRocks, Git, tmux 3.3a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as send_keys.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/send_keys.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n local created = must(server:new_session({ name = \"demo\", argv = { \"/bin/sh\" } }):await())\n local pane = created.pane\n local function quote(text)\n return \"'\" .. text:gsub(\"'\", \"'\\\\''\") .. \"'\"\n end\n\n -- Signal completion on this socket; do not guess when the shell has printed.\n local command = \"printf '\\\\nlua input ready\\\\n'; \"\n .. quote(binary)\n .. \" -S \"\n .. quote(socket)\n .. \" wait-for -S example-ready\"\n must(pane:send_text(command):await())\n must(pane:send_keys({ \"Enter\" }):await())\n must(server:command({ \"wait-for\", \"example-ready\" }, { timeout = 1000 }):await())\n local capture = must(pane:capture({ history_lines = 20 }):await())\n local found = false\n for line in must(capture:text()):gmatch(\"[^\\r\\n]+\") do\n if line == \"lua input ready\" then\n found = true\n end\n end\n assert(found, \"completed command did not print the expected line\")\n print(\"lua input ready\")\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh send_keys.lua\n"}]},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":474,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-send_text"},{"id":"libtmux.Pane:set_hook","publicId":"libtmux.Pane:set_hook","name":"set_hook","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, value: libtmux.HookProgram, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"libtmux.HookProgram"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":406,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-pane-set_hook"},{"id":"libtmux.Pane:set_option","publicId":"libtmux.Pane:set_option","name":"set_option","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, value: boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":396,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-pane-set_option"},{"id":"libtmux.Pane:set_title","publicId":"libtmux.Pane:set_title","name":"set_title","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, text: string, options?: libtmux.PaneOptions):libtmux.Request","params":[{"name":"text","type":"string"},{"name":"options","type":"libtmux.PaneOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":488,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-set_title"},{"id":"libtmux.Pane:snapshot","publicId":"libtmux.Pane:snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":386,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-pane-snapshot"},{"id":"libtmux.Pane:split","publicId":"libtmux.Pane:split","name":"split","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, options?: libtmux.SplitOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SplitOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":478,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-split"},{"id":"libtmux.Pane:swap","publicId":"libtmux.Pane:swap","name":"swap","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Pane, other: libtmux.Pane, options?: libtmux.SwapPaneOptions):libtmux.Request","params":[{"name":"other","type":"libtmux.Pane","doc":" A tmux pane."},{"name":"options","type":"libtmux.SwapPaneOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":500,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pane-swap"},{"id":"libtmux.Pane:unset_hook","publicId":"libtmux.Pane:unset_hook","name":"unset_hook","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":409,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-pane-unset_hook"},{"id":"libtmux.Pane:unset_option","publicId":"libtmux.Pane:unset_option","name":"unset_option","kind":"method","modifiers":[],"parent":"libtmux.Pane","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":399,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-pane-unset_option"},{"id":"libtmux.PaneOptions","publicId":"libtmux.PaneOptions","name":"PaneOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":599,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-paneoptions"},{"id":"libtmux.PaneOptions.process","publicId":"libtmux.PaneOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.PaneOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/pane.lua","line":600,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-paneoptions-process"},{"id":"libtmux.PasteBufferOptions","publicId":"libtmux.PasteBufferOptions","name":"PasteBufferOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/buffer.lua","line":294,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pastebufferoptions"},{"id":"libtmux.PasteBufferOptions.bracket","publicId":"libtmux.PasteBufferOptions.bracket","name":"bracket","kind":"attribute","modifiers":[],"parent":"libtmux.PasteBufferOptions","signatures":[],"doc":{"summary":"Wrap only when native bracketed paste mode is enabled."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/buffer.lua","line":298,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pastebufferoptions-bracket"},{"id":"libtmux.PasteBufferOptions.bytes","publicId":"libtmux.PasteBufferOptions.bytes","name":"bytes","kind":"attribute","modifiers":[],"parent":"libtmux.PasteBufferOptions","signatures":[],"doc":{"summary":"Native defaults follow the daemon; raw disables 3.7+ sanitization."},"product":"core","apiScope":"exported","type":"(\"native\"|\"raw\")?","source":{"file":"lua/libtmux/_internal/buffer.lua","line":295,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pastebufferoptions-bytes"},{"id":"libtmux.PasteBufferOptions.delete_after","publicId":"libtmux.PasteBufferOptions.delete_after","name":"delete_after","kind":"attribute","modifiers":[],"parent":"libtmux.PasteBufferOptions","signatures":[],"doc":{"summary":"Native deletion can succeed even when pane input is disabled."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/buffer.lua","line":299,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pastebufferoptions-delete_after"},{"id":"libtmux.PasteBufferOptions.linefeed_separator","publicId":"libtmux.PasteBufferOptions.linefeed_separator","name":"linefeed_separator","kind":"attribute","modifiers":[],"parent":"libtmux.PasteBufferOptions","signatures":[],"doc":{"summary":"Preserve LF instead of native LF-to-CR conversion."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/buffer.lua","line":296,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pastebufferoptions-linefeed_separator"},{"id":"libtmux.PasteBufferOptions.process","publicId":"libtmux.PasteBufferOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.PasteBufferOptions","signatures":[],"doc":{"summary":"Output limit is at most one MiB."},"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/buffer.lua","line":292,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.BufferOptions","slug":"libtmux-pastebufferoptions-process"},{"id":"libtmux.PasteBufferOptions.separator","publicId":"libtmux.PasteBufferOptions.separator","name":"separator","kind":"attribute","modifiers":[],"parent":"libtmux.PasteBufferOptions","signatures":[],"doc":{"summary":"Explicit NUL-free separator; excludes linefeed_separator."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/buffer.lua","line":297,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-pastebufferoptions-separator"},{"id":"libtmux.Predicate","publicId":"libtmux.Predicate","name":"Predicate","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Predicate","source":{"file":"lua/libtmux/query.lua","line":291,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-predicate"},{"id":"libtmux.QueryError","publicId":"libtmux.QueryError","name":"QueryError","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":230,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryerror"},{"id":"libtmux.QueryError.code","publicId":"libtmux.QueryError.code","name":"code","kind":"attribute","modifiers":[],"parent":"libtmux.QueryError","signatures":[],"doc":{"summary":"Stable machine-readable error code."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/query.lua","line":231,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryerror-code"},{"id":"libtmux.QueryError.message","publicId":"libtmux.QueryError.message","name":"message","kind":"attribute","modifiers":[],"parent":"libtmux.QueryError","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/query.lua","line":233,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryerror-message"},{"id":"libtmux.QueryError.operation","publicId":"libtmux.QueryError.operation","name":"operation","kind":"attribute","modifiers":[],"parent":"libtmux.QueryError","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/query.lua","line":232,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryerror-operation"},{"id":"libtmux.QueryError.path","publicId":"libtmux.QueryError.path","name":"path","kind":"attribute","modifiers":[],"parent":"libtmux.QueryError","signatures":[],"doc":{"summary":"Criteria, schema, or data path."},"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/query.lua","line":234,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryerror-path"},{"id":"libtmux.QueryField","publicId":"libtmux.QueryField","name":"QueryField","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":238,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryfield"},{"id":"libtmux.QueryField.nullable","publicId":"libtmux.QueryField.nullable","name":"nullable","kind":"attribute","modifiers":[],"parent":"libtmux.QueryField","signatures":[],"doc":{"summary":"Defaults to false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/query.lua","line":240,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryfield-nullable"},{"id":"libtmux.QueryField.supported","publicId":"libtmux.QueryField.supported","name":"supported","kind":"attribute","modifiers":[],"parent":"libtmux.QueryField","signatures":[],"doc":{"summary":"Defaults to true."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/query.lua","line":241,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryfield-supported"},{"id":"libtmux.QueryField.type","publicId":"libtmux.QueryField.type","name":"type","kind":"attribute","modifiers":[],"parent":"libtmux.QueryField","signatures":[],"product":"core","apiScope":"exported","type":"\"boolean\"|\"number\"|\"string\"","source":{"file":"lua/libtmux/query.lua","line":239,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryfield-type"},{"id":"libtmux.QueryInput","publicId":"libtmux.QueryInput","name":"QueryInput","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.QueryInput","source":{"file":"lua/libtmux/query.lua","line":290,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryinput"},{"id":"libtmux.QueryRelation","publicId":"libtmux.QueryRelation","name":"QueryRelation","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":243,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryrelation"},{"id":"libtmux.QueryRelation.cardinality","publicId":"libtmux.QueryRelation.cardinality","name":"cardinality","kind":"attribute","modifiers":[],"parent":"libtmux.QueryRelation","signatures":[],"product":"core","apiScope":"exported","type":"\"many\"|\"one\"","source":{"file":"lua/libtmux/query.lua","line":244,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryrelation-cardinality"},{"id":"libtmux.QueryRelation.nullable","publicId":"libtmux.QueryRelation.nullable","name":"nullable","kind":"attribute","modifiers":[],"parent":"libtmux.QueryRelation","signatures":[],"doc":{"summary":"Only to-one relations can be nullable."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/query.lua","line":246,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryrelation-nullable"},{"id":"libtmux.QueryRelation.schema","publicId":"libtmux.QueryRelation.schema","name":"schema","kind":"attribute","modifiers":[],"parent":"libtmux.QueryRelation","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.QuerySchema","source":{"file":"lua/libtmux/query.lua","line":245,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryrelation-schema"},{"id":"libtmux.QueryRelation.supported","publicId":"libtmux.QueryRelation.supported","name":"supported","kind":"attribute","modifiers":[],"parent":"libtmux.QueryRelation","signatures":[],"doc":{"summary":"Defaults to true."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/query.lua","line":247,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryrelation-supported"},{"id":"libtmux.QueryScalar","publicId":"libtmux.QueryScalar","name":"QueryScalar","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.QueryScalar","source":{"file":"lua/libtmux/query.lua","line":254,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryscalar"},{"id":"libtmux.QuerySchema","publicId":"libtmux.QuerySchema","name":"QuerySchema","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":249,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryschema"},{"id":"libtmux.QuerySchema.fields","publicId":"libtmux.QuerySchema.fields","name":"fields","kind":"attribute","modifiers":[],"parent":"libtmux.QuerySchema","signatures":[],"doc":{"summary":"Supply fields or relations."},"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/query.lua","line":251,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryschema-fields"},{"id":"libtmux.QuerySchema.name","publicId":"libtmux.QuerySchema.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.QuerySchema","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/query.lua","line":250,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryschema-name"},{"id":"libtmux.QuerySchema.relations","publicId":"libtmux.QuerySchema.relations","name":"relations","kind":"attribute","modifiers":[],"parent":"libtmux.QuerySchema","signatures":[],"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/query.lua","line":252,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-queryschema-relations"},{"id":"libtmux.Reference","publicId":"libtmux.Reference","name":"Reference","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":370,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-reference"},{"id":"libtmux.Reference.generation","publicId":"libtmux.Reference.generation","name":"generation","kind":"attribute","modifiers":[],"parent":"libtmux.Reference","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/entity.lua","line":372,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-reference-generation"},{"id":"libtmux.Reference.id","publicId":"libtmux.Reference.id","name":"id","kind":"attribute","modifiers":[],"parent":"libtmux.Reference","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/entity.lua","line":373,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-reference-id"},{"id":"libtmux.Reference.index","publicId":"libtmux.Reference.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.Reference","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/entity.lua","line":378,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-reference-index"},{"id":"libtmux.Reference.kind","publicId":"libtmux.Reference.kind","name":"kind","kind":"attribute","modifiers":[],"parent":"libtmux.Reference","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/entity.lua","line":371,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-reference-kind"},{"id":"libtmux.Reference.name","publicId":"libtmux.Reference.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.Reference","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/entity.lua","line":374,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-reference-name"},{"id":"libtmux.Reference.session_id","publicId":"libtmux.Reference.session_id","name":"session_id","kind":"attribute","modifiers":[],"parent":"libtmux.Reference","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/entity.lua","line":376,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-reference-session_id"},{"id":"libtmux.Reference.tty","publicId":"libtmux.Reference.tty","name":"tty","kind":"attribute","modifiers":[],"parent":"libtmux.Reference","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/entity.lua","line":375,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-reference-tty"},{"id":"libtmux.Reference.window_id","publicId":"libtmux.Reference.window_id","name":"window_id","kind":"attribute","modifiers":[],"parent":"libtmux.Reference","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/entity.lua","line":377,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-reference-window_id"},{"id":"libtmux.RelationCriteria","publicId":"libtmux.RelationCriteria","name":"RelationCriteria","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":270,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-relationcriteria"},{"id":"libtmux.RelationCriteria.every","publicId":"libtmux.RelationCriteria.every","name":"every","kind":"attribute","modifiers":[],"parent":"libtmux.RelationCriteria","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.Where)?","source":{"file":"lua/libtmux/query.lua","line":272,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-relationcriteria-every"},{"id":"libtmux.RelationCriteria.is","publicId":"libtmux.RelationCriteria.is","name":"is","kind":"attribute","modifiers":[],"parent":"libtmux.RelationCriteria","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.Null|libtmux.Where)?","source":{"file":"lua/libtmux/query.lua","line":274,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-relationcriteria-is"},{"id":"libtmux.RelationCriteria.is_not","publicId":"libtmux.RelationCriteria.is_not","name":"is_not","kind":"attribute","modifiers":[],"parent":"libtmux.RelationCriteria","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.Null|libtmux.Where)?","source":{"file":"lua/libtmux/query.lua","line":275,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-relationcriteria-is_not"},{"id":"libtmux.RelationCriteria.none","publicId":"libtmux.RelationCriteria.none","name":"none","kind":"attribute","modifiers":[],"parent":"libtmux.RelationCriteria","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.Where)?","source":{"file":"lua/libtmux/query.lua","line":273,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-relationcriteria-none"},{"id":"libtmux.RelationCriteria.some","publicId":"libtmux.RelationCriteria.some","name":"some","kind":"attribute","modifiers":[],"parent":"libtmux.RelationCriteria","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.Where)?","source":{"file":"lua/libtmux/query.lua","line":271,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-relationcriteria-some"},{"id":"libtmux.Request","publicId":"libtmux.Request","name":"Request","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1026,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-request"},{"id":"libtmux.Request:await","publicId":"libtmux.Request:await","name":"await","kind":"method","modifiers":[],"parent":"libtmux.Request","signatures":[{"raw":"fun(self: libtmux.Request):?, libtmux.Error?","params":[],"returns":"?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1027,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-request-await"},{"id":"libtmux.Request:cancel","publicId":"libtmux.Request:cancel","name":"cancel","kind":"method","modifiers":[],"parent":"libtmux.Request","signatures":[{"raw":"fun(self: libtmux.Request, reason?: string|libtmux.Error):boolean","params":[{"name":"reason","type":"string|libtmux.Error?","default":"nil"}],"returns":"boolean"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1029,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-request-cancel"},{"id":"libtmux.Request:is_retired","publicId":"libtmux.Request:is_retired","name":"is_retired","kind":"method","modifiers":[],"parent":"libtmux.Request","signatures":[{"raw":"fun(self: libtmux.Request):boolean","params":[],"returns":"boolean"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1031,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-request-is_retired"},{"id":"libtmux.Request:is_settled","publicId":"libtmux.Request:is_settled","name":"is_settled","kind":"method","modifiers":[],"parent":"libtmux.Request","signatures":[{"raw":"fun(self: libtmux.Request):boolean","params":[],"returns":"boolean"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1030,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-request-is_settled"},{"id":"libtmux.Request:on_complete","publicId":"libtmux.Request:on_complete","name":"on_complete","kind":"method","modifiers":[],"parent":"libtmux.Request","signatures":[{"raw":"fun(self: libtmux.Request, callback: fun(value?: , err?: libtmux.Error)):libtmux.Request","params":[{"name":"callback","type":"fun(value?: , err?: libtmux.Error)"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1032,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-request-on_complete"},{"id":"libtmux.Request:result","publicId":"libtmux.Request:result","name":"result","kind":"method","modifiers":[],"parent":"libtmux.Request","signatures":[{"raw":"fun(self: libtmux.Request):?, libtmux.Error?","params":[],"returns":"?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1028,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-request-result"},{"id":"libtmux.ResizePaneOptions","publicId":"libtmux.ResizePaneOptions","name":"ResizePaneOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":628,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizepaneoptions"},{"id":"libtmux.ResizePaneOptions.amount","publicId":"libtmux.ResizePaneOptions.amount","name":"amount","kind":"attribute","modifiers":[],"parent":"libtmux.ResizePaneOptions","signatures":[],"doc":{"summary":"Defaults to 1 when direction is given."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/pane.lua","line":632,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizepaneoptions-amount"},{"id":"libtmux.ResizePaneOptions.direction","publicId":"libtmux.ResizePaneOptions.direction","name":"direction","kind":"attribute","modifiers":[],"parent":"libtmux.ResizePaneOptions","signatures":[],"doc":{"summary":"Mutually exclusive with dimensions."},"product":"core","apiScope":"exported","type":"(\"down\"|\"left\"|\"right\"|\"up\")?","source":{"file":"lua/libtmux/_internal/pane.lua","line":631,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizepaneoptions-direction"},{"id":"libtmux.ResizePaneOptions.height","publicId":"libtmux.ResizePaneOptions.height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux.ResizePaneOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/pane.lua","line":630,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizepaneoptions-height"},{"id":"libtmux.ResizePaneOptions.process","publicId":"libtmux.ResizePaneOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.ResizePaneOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/pane.lua","line":600,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.PaneOptions","slug":"libtmux-resizepaneoptions-process"},{"id":"libtmux.ResizePaneOptions.width","publicId":"libtmux.ResizePaneOptions.width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux.ResizePaneOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/pane.lua","line":629,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizepaneoptions-width"},{"id":"libtmux.ResizeWindowOptions","publicId":"libtmux.ResizeWindowOptions","name":"ResizeWindowOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":682,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizewindowoptions"},{"id":"libtmux.ResizeWindowOptions.amount","publicId":"libtmux.ResizeWindowOptions.amount","name":"amount","kind":"attribute","modifiers":[],"parent":"libtmux.ResizeWindowOptions","signatures":[],"doc":{"summary":"From 1 to 10000; defaults to 1 with direction."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/topology.lua","line":686,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizewindowoptions-amount"},{"id":"libtmux.ResizeWindowOptions.direction","publicId":"libtmux.ResizeWindowOptions.direction","name":"direction","kind":"attribute","modifiers":[],"parent":"libtmux.ResizeWindowOptions","signatures":[],"product":"core","apiScope":"exported","type":"('down'|'left'|'right'|'up')?","source":{"file":"lua/libtmux/_internal/topology.lua","line":685,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizewindowoptions-direction"},{"id":"libtmux.ResizeWindowOptions.height","publicId":"libtmux.ResizeWindowOptions.height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux.ResizeWindowOptions","signatures":[],"doc":{"summary":"From 1 to 10000."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/topology.lua","line":684,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizewindowoptions-height"},{"id":"libtmux.ResizeWindowOptions.largest","publicId":"libtmux.ResizeWindowOptions.largest","name":"largest","kind":"attribute","modifiers":[],"parent":"libtmux.ResizeWindowOptions","signatures":[],"doc":{"summary":"Native largest sizing; excludes dimensions and other modes."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":687,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizewindowoptions-largest"},{"id":"libtmux.ResizeWindowOptions.process","publicId":"libtmux.ResizeWindowOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.ResizeWindowOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.TopologyOptions","slug":"libtmux-resizewindowoptions-process"},{"id":"libtmux.ResizeWindowOptions.smallest","publicId":"libtmux.ResizeWindowOptions.smallest","name":"smallest","kind":"attribute","modifiers":[],"parent":"libtmux.ResizeWindowOptions","signatures":[],"doc":{"summary":"Native smallest sizing; excludes dimensions and other modes."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":688,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizewindowoptions-smallest"},{"id":"libtmux.ResizeWindowOptions.width","publicId":"libtmux.ResizeWindowOptions.width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux.ResizeWindowOptions","signatures":[],"doc":{"summary":"From 1 to 10000; dimensions exclude direction and policies."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/topology.lua","line":683,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-resizewindowoptions-width"},{"id":"libtmux.RespawnOptions","publicId":"libtmux.RespawnOptions","name":"RespawnOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":634,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-respawnoptions"},{"id":"libtmux.RespawnOptions.argv","publicId":"libtmux.RespawnOptions.argv","name":"argv","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnOptions","signatures":[],"doc":{"summary":"Literal command arguments; mutually exclusive with shell."},"product":"core","apiScope":"exported","type":"string[]?","source":{"file":"lua/libtmux/_internal/domain.lua","line":458,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnoptions-argv"},{"id":"libtmux.RespawnOptions.cwd","publicId":"libtmux.RespawnOptions.cwd","name":"cwd","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnOptions","signatures":[],"doc":{"summary":"Absolute working directory."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":457,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnoptions-cwd"},{"id":"libtmux.RespawnOptions.environment","publicId":"libtmux.RespawnOptions.environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnOptions","signatures":[],"doc":{"summary":"Environment for the created scope."},"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/_internal/domain.lua","line":460,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnoptions-environment"},{"id":"libtmux.RespawnOptions.kill","publicId":"libtmux.RespawnOptions.kill","name":"kill","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnOptions","signatures":[],"doc":{"summary":"Replace an active program; defaults to false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":635,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-respawnoptions-kill"},{"id":"libtmux.RespawnOptions.process","publicId":"libtmux.RespawnOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/domain.lua","line":461,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnoptions-process"},{"id":"libtmux.RespawnOptions.shell","publicId":"libtmux.RespawnOptions.shell","name":"shell","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnOptions","signatures":[],"doc":{"summary":"Explicit shell program."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":459,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnoptions-shell"},{"id":"libtmux.RespawnWindowOptions","publicId":"libtmux.RespawnWindowOptions","name":"RespawnWindowOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":722,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-respawnwindowoptions"},{"id":"libtmux.RespawnWindowOptions.argv","publicId":"libtmux.RespawnWindowOptions.argv","name":"argv","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnWindowOptions","signatures":[],"doc":{"summary":"Literal command arguments; mutually exclusive with shell."},"product":"core","apiScope":"exported","type":"string[]?","source":{"file":"lua/libtmux/_internal/domain.lua","line":458,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnwindowoptions-argv"},{"id":"libtmux.RespawnWindowOptions.context","publicId":"libtmux.RespawnWindowOptions.context","name":"context","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnWindowOptions","signatures":[],"doc":{"summary":"Required placement of this Window."},"product":"core","apiScope":"exported","type":"libtmux.WindowLink","source":{"file":"lua/libtmux/_internal/topology.lua","line":723,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-respawnwindowoptions-context"},{"id":"libtmux.RespawnWindowOptions.cwd","publicId":"libtmux.RespawnWindowOptions.cwd","name":"cwd","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnWindowOptions","signatures":[],"doc":{"summary":"Absolute working directory."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":457,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnwindowoptions-cwd"},{"id":"libtmux.RespawnWindowOptions.environment","publicId":"libtmux.RespawnWindowOptions.environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnWindowOptions","signatures":[],"doc":{"summary":"Environment for the created scope."},"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/_internal/domain.lua","line":460,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnwindowoptions-environment"},{"id":"libtmux.RespawnWindowOptions.kill","publicId":"libtmux.RespawnWindowOptions.kill","name":"kill","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnWindowOptions","signatures":[],"doc":{"summary":"Permit replacing running pane processes; defaults to false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":724,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-respawnwindowoptions-kill"},{"id":"libtmux.RespawnWindowOptions.process","publicId":"libtmux.RespawnWindowOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnWindowOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/domain.lua","line":461,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnwindowoptions-process"},{"id":"libtmux.RespawnWindowOptions.shell","publicId":"libtmux.RespawnWindowOptions.shell","name":"shell","kind":"attribute","modifiers":[],"parent":"libtmux.RespawnWindowOptions","signatures":[],"doc":{"summary":"Explicit shell program."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":459,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-respawnwindowoptions-shell"},{"id":"libtmux.RunHookOptions","publicId":"libtmux.RunHookOptions","name":"RunHookOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":673,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runhookoptions"},{"id":"libtmux.RunHookOptions.process","publicId":"libtmux.RunHookOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.RunHookOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/settings.lua","line":674,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runhookoptions-process"},{"id":"libtmux.Runtime","publicId":"libtmux.Runtime","name":"Runtime","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1045,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime"},{"id":"libtmux.Runtime:close","publicId":"libtmux.Runtime:close","name":"close","kind":"method","modifiers":[],"parent":"libtmux.Runtime","signatures":[{"raw":"fun(self: libtmux.Runtime, reason?: string):libtmux.Request","params":[{"name":"reason","type":"string?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1050,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime-close"},{"id":"libtmux.Runtime:connect","publicId":"libtmux.Runtime:connect","name":"connect","kind":"method","modifiers":[],"parent":"libtmux.Runtime","signatures":[{"raw":"fun(self: libtmux.Runtime, options: libtmux.ConnectOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.ConnectOptions"}],"returns":"libtmux.Request"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Connect to an existing tmux daemon without taking ownership of it. Use Lua 5.5.1, LuaRocks, Git, tmux 3.3a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as connect.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/connect.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n local snapshot = must(server:snapshot({ strict = true }):await())\n assert(#snapshot.sessions:where({ name = \"bootstrap\" }) == 1, \"bootstrap session is missing\")\n print(\"connected\")\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh connect.lua\n"}]},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1046,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime-connect"},{"id":"libtmux.Runtime:errors","publicId":"libtmux.Runtime:errors","name":"errors","kind":"method","modifiers":[],"parent":"libtmux.Runtime","signatures":[{"raw":"fun(self: libtmux.Runtime):libtmux.Error[]","params":[],"returns":"libtmux.Error[]"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1052,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime-errors"},{"id":"libtmux.Runtime:spawn","publicId":"libtmux.Runtime:spawn","name":"spawn","kind":"method","modifiers":[],"parent":"libtmux.Runtime","signatures":[{"raw":"fun(self: libtmux.Runtime, body: fun(runtime: libtmux.Runtime):?, libtmux.Error?):libtmux.Request","params":[{"name":"body","type":"fun(runtime: libtmux.Runtime):?, libtmux.Error?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1048,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime-spawn"},{"id":"libtmux.Runtime:stats","publicId":"libtmux.Runtime:stats","name":"stats","kind":"method","modifiers":[],"parent":"libtmux.Runtime","signatures":[{"raw":"fun(self: libtmux.Runtime):table","params":[],"returns":"table"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1051,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime-stats"},{"id":"libtmux.RuntimeOptions","publicId":"libtmux.RuntimeOptions","name":"RuntimeOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1035,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtimeoptions"},{"id":"libtmux.RuntimeOptions.dispatch_budget","publicId":"libtmux.RuntimeOptions.dispatch_budget","name":"dispatch_budget","kind":"attribute","modifiers":[],"parent":"libtmux.RuntimeOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1043,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtimeoptions-dispatch_budget"},{"id":"libtmux.RuntimeOptions.max_active","publicId":"libtmux.RuntimeOptions.max_active","name":"max_active","kind":"attribute","modifiers":[],"parent":"libtmux.RuntimeOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1036,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtimeoptions-max_active"},{"id":"libtmux.RuntimeOptions.max_bytes","publicId":"libtmux.RuntimeOptions.max_bytes","name":"max_bytes","kind":"attribute","modifiers":[],"parent":"libtmux.RuntimeOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1039,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtimeoptions-max_bytes"},{"id":"libtmux.RuntimeOptions.max_callbacks","publicId":"libtmux.RuntimeOptions.max_callbacks","name":"max_callbacks","kind":"attribute","modifiers":[],"parent":"libtmux.RuntimeOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1041,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtimeoptions-max_callbacks"},{"id":"libtmux.RuntimeOptions.max_logical","publicId":"libtmux.RuntimeOptions.max_logical","name":"max_logical","kind":"attribute","modifiers":[],"parent":"libtmux.RuntimeOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1038,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtimeoptions-max_logical"},{"id":"libtmux.RuntimeOptions.max_pending","publicId":"libtmux.RuntimeOptions.max_pending","name":"max_pending","kind":"attribute","modifiers":[],"parent":"libtmux.RuntimeOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1037,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtimeoptions-max_pending"},{"id":"libtmux.RuntimeOptions.max_resources","publicId":"libtmux.RuntimeOptions.max_resources","name":"max_resources","kind":"attribute","modifiers":[],"parent":"libtmux.RuntimeOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1042,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtimeoptions-max_resources"},{"id":"libtmux.RuntimeOptions.max_tasks","publicId":"libtmux.RuntimeOptions.max_tasks","name":"max_tasks","kind":"attribute","modifiers":[],"parent":"libtmux.RuntimeOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/runtime.lua","line":1040,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtimeoptions-max_tasks"},{"id":"libtmux.SelectPaneOptions","publicId":"libtmux.SelectPaneOptions","name":"SelectPaneOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":637,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selectpaneoptions"},{"id":"libtmux.SelectPaneOptions.keep_zoom","publicId":"libtmux.SelectPaneOptions.keep_zoom","name":"keep_zoom","kind":"attribute","modifiers":[],"parent":"libtmux.SelectPaneOptions","signatures":[],"doc":{"summary":"Preserve zoom while selecting; defaults to false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":638,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selectpaneoptions-keep_zoom"},{"id":"libtmux.SelectPaneOptions.process","publicId":"libtmux.SelectPaneOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SelectPaneOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/pane.lua","line":600,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.PaneOptions","slug":"libtmux-selectpaneoptions-process"},{"id":"libtmux.Selection","publicId":"libtmux.Selection","name":"Selection","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":293,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection"},{"id":"libtmux.Selection:count","publicId":"libtmux.Selection:count","name":"count","kind":"method","modifiers":[],"parent":"libtmux.Selection","signatures":[{"raw":"fun(self: libtmux.Selection):integer","params":[],"returns":"integer"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":300,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection-count"},{"id":"libtmux.Selection:exists","publicId":"libtmux.Selection:exists","name":"exists","kind":"method","modifiers":[],"parent":"libtmux.Selection","signatures":[{"raw":"fun(self: libtmux.Selection):boolean","params":[],"returns":"boolean"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":299,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection-exists"},{"id":"libtmux.Selection:filter","publicId":"libtmux.Selection:filter","name":"filter","kind":"method","modifiers":[],"parent":"libtmux.Selection","signatures":[{"raw":"fun(self: libtmux.Selection, predicate: libtmux.Predicate):libtmux.Selection","params":[{"name":"predicate","type":"libtmux.Predicate"}],"returns":"libtmux.Selection"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":295,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection-filter"},{"id":"libtmux.Selection:first","publicId":"libtmux.Selection:first","name":"first","kind":"method","modifiers":[],"parent":"libtmux.Selection","signatures":[{"raw":"fun(self: libtmux.Selection):?","params":[],"returns":"?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":296,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection-first"},{"id":"libtmux.Selection:iter","publicId":"libtmux.Selection:iter","name":"iter","kind":"method","modifiers":[],"parent":"libtmux.Selection","signatures":[{"raw":"fun(self: libtmux.Selection):fun():?","params":[],"returns":"fun():?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":301,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection-iter"},{"id":"libtmux.Selection:one","publicId":"libtmux.Selection:one","name":"one","kind":"method","modifiers":[],"parent":"libtmux.Selection","signatures":[{"raw":"fun(self: libtmux.Selection):?, libtmux.QueryError?","params":[],"returns":"?, libtmux.QueryError?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":297,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection-one"},{"id":"libtmux.Selection:one_or_nil","publicId":"libtmux.Selection:one_or_nil","name":"one_or_nil","kind":"method","modifiers":[],"parent":"libtmux.Selection","signatures":[{"raw":"fun(self: libtmux.Selection):?, libtmux.QueryError?","params":[],"returns":"?, libtmux.QueryError?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":298,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection-one_or_nil"},{"id":"libtmux.Selection:to_table","publicId":"libtmux.Selection:to_table","name":"to_table","kind":"method","modifiers":[],"parent":"libtmux.Selection","signatures":[{"raw":"fun(self: libtmux.Selection):[]","params":[],"returns":"[]"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":302,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection-to_table"},{"id":"libtmux.Selection:where","publicId":"libtmux.Selection:where","name":"where","kind":"method","modifiers":[],"parent":"libtmux.Selection","signatures":[{"raw":"fun(self: libtmux.Selection, criteria: libtmux.CompiledQuery|libtmux.Where):libtmux.Selection","params":[{"name":"criteria","type":"libtmux.CompiledQuery|libtmux.Where"}],"returns":"libtmux.Selection"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":294,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-selection-where"},{"id":"libtmux.Server","publicId":"libtmux.Server","name":"Server","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":603,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server"},{"id":"libtmux.Server:batch","publicId":"libtmux.Server:batch","name":"batch","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, commands: string[][], options?: libtmux.CommandBatchOptions):libtmux.Request","params":[{"name":"commands","type":"string[][]"},{"name":"options","type":"libtmux.CommandBatchOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-batch"},{"id":"libtmux.Server:close","publicId":"libtmux.Server:close","name":"close","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":681,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-close"},{"id":"libtmux.Server:command","publicId":"libtmux.Server:command","name":"command","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, argv: string[], options?: libtmux.CommandOptions):libtmux.Request","params":[{"name":"argv","type":"string[]"},{"name":"options","type":"libtmux.CommandOptions?","default":"nil"}],"returns":"libtmux.Request"}],"doc":{"summary":"Binds a snapshot record to a live handle of its class."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":673,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-command"},{"id":"libtmux.Server:delete_buffer","publicId":"libtmux.Server:delete_buffer","name":"delete_buffer","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, options?: libtmux.BufferOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.BufferOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":653,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-delete_buffer"},{"id":"libtmux.Server:detach_client","publicId":"libtmux.Server:detach_client","name":"detach_client","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, selector: libtmux.ClientSelector, options?: libtmux.ClientOptions):libtmux.Request","params":[{"name":"selector","type":"libtmux.ClientSelector"},{"name":"options","type":"libtmux.ClientOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":655,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-detach_client"},{"id":"libtmux.Server:explain","publicId":"libtmux.Server:explain","name":"explain","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, options?: libtmux.LiveQueryOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.LiveQueryOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":642,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-explain"},{"id":"libtmux.Server:explain_panes","publicId":"libtmux.Server:explain_panes","name":"explain_panes","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, options?: libtmux.LiveQueryOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.LiveQueryOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":644,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-explain_panes"},{"id":"libtmux.Server:get_environment","publicId":"libtmux.Server:get_environment","name":"get_environment","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, options?: libtmux.EnvironmentGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.EnvironmentGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":622,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-get_environment"},{"id":"libtmux.Server:get_hook","publicId":"libtmux.Server:get_hook","name":"get_hook","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":613,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-get_hook"},{"id":"libtmux.Server:get_option","publicId":"libtmux.Server:get_option","name":"get_option","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":604,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-get_option"},{"id":"libtmux.Server:group","publicId":"libtmux.Server:group","name":"group","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, commands: string[][], options?: libtmux.CommandOptions):libtmux.Request","params":[{"name":"commands","type":"string[][]"},{"name":"options","type":"libtmux.CommandOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":675,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-group"},{"id":"libtmux.Server:handle","publicId":"libtmux.Server:handle","name":"handle","kind":"method","modifiers":["overload"],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, snapshot: libtmux.Snapshot, record: libtmux.SnapshotSession):libtmux.Session?, libtmux.Error?","params":[{"name":"snapshot","type":"libtmux.Snapshot"},{"name":"record","type":"libtmux.SnapshotSession"}],"returns":"libtmux.Session?, libtmux.Error?"},{"raw":"fun(self: libtmux.Server, snapshot: libtmux.Snapshot, record: libtmux.SnapshotWindow):libtmux.Window?, libtmux.Error?","params":[{"name":"snapshot","type":"libtmux.Snapshot"},{"name":"record","type":"libtmux.SnapshotWindow"}],"returns":"libtmux.Window?, libtmux.Error?"},{"raw":"fun(self: libtmux.Server, snapshot: libtmux.Snapshot, record: libtmux.SnapshotWindowLink):libtmux.WindowLink?, libtmux.Error?","params":[{"name":"snapshot","type":"libtmux.Snapshot"},{"name":"record","type":"libtmux.SnapshotWindowLink"}],"returns":"libtmux.WindowLink?, libtmux.Error?"},{"raw":"fun(self: libtmux.Server, snapshot: libtmux.Snapshot, record: libtmux.SnapshotPane):libtmux.Pane?, libtmux.Error?","params":[{"name":"snapshot","type":"libtmux.Snapshot"},{"name":"record","type":"libtmux.SnapshotPane"}],"returns":"libtmux.Pane?, libtmux.Error?"},{"raw":"fun(self: libtmux.Server, snapshot: libtmux.Snapshot, record: libtmux.SnapshotClient):libtmux.Client?, libtmux.Error?","params":[{"name":"snapshot","type":"libtmux.Snapshot"},{"name":"record","type":"libtmux.SnapshotClient"}],"returns":"libtmux.Client?, libtmux.Error?"},{"raw":"fun(self: libtmux.Server, snapshot: libtmux.Snapshot, record: libtmux.SnapshotBuffer):libtmux.Buffer?, libtmux.Error?","params":[{"name":"snapshot","type":"libtmux.Snapshot"},{"name":"record","type":"libtmux.SnapshotBuffer"}],"returns":"libtmux.Buffer?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":660,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-handle"},{"id":"libtmux.Server:list_environment","publicId":"libtmux.Server:list_environment","name":"list_environment","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, options?: libtmux.EnvironmentListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.EnvironmentListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":625,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-list_environment"},{"id":"libtmux.Server:list_hooks","publicId":"libtmux.Server:list_hooks","name":"list_hooks","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":615,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-list_hooks"},{"id":"libtmux.Server:list_options","publicId":"libtmux.Server:list_options","name":"list_options","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":606,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-list_options"},{"id":"libtmux.Server:new_session","publicId":"libtmux.Server:new_session","name":"new_session","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, options?: libtmux.NewSessionOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.NewSessionOptions?","default":"nil"}],"returns":"libtmux.Request"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Create a session and use the session, window, and pane handles returned with it. Use Lua 5.5.1, LuaRocks, Git, tmux 3.3a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as new_session.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/new_session.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n local created = must(server\n :new_session({\n name = \"demo\",\n window_name = \"main\",\n argv = { \"/bin/cat\" },\n })\n :await())\n assert(created.session and created.window and created.pane, \"creation handles are missing\")\n local snapshot = must(created.session:snapshot():await())\n assert(snapshot.name == \"demo\", \"created session has the wrong name\")\n print(\"session: \" .. snapshot.name)\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh new_session.lua\n"}]},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":646,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-new_session"},{"id":"libtmux.Server:observe","publicId":"libtmux.Server:observe","name":"observe","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, session: libtmux.Session, options?: libtmux.ObservationOptions):libtmux.Request","params":[{"name":"session","type":"libtmux.Session","doc":" A tmux session."},{"name":"options","type":"libtmux.ObservationOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":636,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-observe"},{"id":"libtmux.Server:query","publicId":"libtmux.Server:query","name":"query","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, options?: libtmux.LiveQueryOptions):libtmux.Request>","params":[{"name":"options","type":"libtmux.LiveQueryOptions?","default":"nil"}],"returns":"libtmux.Request>"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Find sessions by name with a live query and inspect its captured rows. Use Lua 5.5.1, LuaRocks, Git, tmux 3.3a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as query.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/query.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n must(server\n :new_session({\n name = \"demo\",\n window_name = \"main\",\n argv = { \"/bin/cat\" },\n })\n :await())\n must(server:new_session({ name = \"worker\", argv = { \"/bin/cat\" } }):await())\n local result = must(server\n :query({\n kind = \"session\",\n where = { name = \"demo\" },\n snapshot = { strict = true },\n })\n :await())\n assert(result.complete, \"query observed a topology change\")\n assert(#result.rows == 1 and result.rows[1].name == \"demo\", \"query selected the wrong session\")\n print(\"matched: \" .. result.rows[1].name)\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh query.lua\n"}]},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":638,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-query"},{"id":"libtmux.Server:query_panes","publicId":"libtmux.Server:query_panes","name":"query_panes","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, options?: libtmux.LiveQueryOptions):libtmux.Request>","params":[{"name":"options","type":"libtmux.LiveQueryOptions?","default":"nil"}],"returns":"libtmux.Request>"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":640,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-query_panes"},{"id":"libtmux.Server:remove_environment","publicId":"libtmux.Server:remove_environment","name":"remove_environment","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, options?: libtmux.EnvironmentOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.EnvironmentOptions?","default":"nil","doc":" What every environment operation accepts; unset and remove take no more."}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":633,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-remove_environment"},{"id":"libtmux.Server:set_buffer","publicId":"libtmux.Server:set_buffer","name":"set_buffer","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, bytes: string, options?: libtmux.BufferOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"bytes","type":"string"},{"name":"options","type":"libtmux.BufferOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":648,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-set_buffer"},{"id":"libtmux.Server:set_environment","publicId":"libtmux.Server:set_environment","name":"set_environment","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, value: string, options?: libtmux.EnvironmentSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"libtmux.EnvironmentSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":627,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-set_environment"},{"id":"libtmux.Server:set_hook","publicId":"libtmux.Server:set_hook","name":"set_hook","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, value: libtmux.HookProgram, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"libtmux.HookProgram"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":617,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-set_hook"},{"id":"libtmux.Server:set_option","publicId":"libtmux.Server:set_option","name":"set_option","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, value: boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":608,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-set_option"},{"id":"libtmux.Server:show_buffer","publicId":"libtmux.Server:show_buffer","name":"show_buffer","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, options?: libtmux.BufferOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.BufferOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":651,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-show_buffer"},{"id":"libtmux.Server:snapshot","publicId":"libtmux.Server:snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, options?: libtmux.SnapshotOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SnapshotOptions?","default":"nil"}],"returns":"libtmux.Request"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"List sessions, windows, and panes from one captured server snapshot. Use Lua 5.5.1, LuaRocks, Git, tmux 3.3a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as snapshot.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/snapshot.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n must(server\n :new_session({\n name = \"demo\",\n window_name = \"main\",\n argv = { \"/bin/cat\" },\n })\n :await())\n local snapshot = must(server:snapshot({ strict = true }):await())\n local sessions, windows = {}, {}\n for _, session in ipairs(snapshot.sessions) do\n sessions[#sessions + 1] = session.name\n end\n for _, window in ipairs(snapshot.windows) do\n windows[#windows + 1] = window.name\n end\n table.sort(sessions)\n table.sort(windows)\n assert(#snapshot.sessions == 2 and #snapshot.windows == 2 and #snapshot.panes == 2)\n print(\"sessions: \" .. table.concat(sessions, \", \"))\n print(\"windows: \" .. table.concat(windows, \", \"))\n print(\"panes: \" .. #snapshot.panes)\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh snapshot.lua\n"}]},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":679,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-snapshot"},{"id":"libtmux.Server:switch_client","publicId":"libtmux.Server:switch_client","name":"switch_client","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, selector: libtmux.ClientSelector, session: libtmux.Session, options?: libtmux.SwitchClientOptions):libtmux.Request","params":[{"name":"selector","type":"libtmux.ClientSelector"},{"name":"session","type":"libtmux.Session","doc":" A tmux session."},{"name":"options","type":"libtmux.SwitchClientOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":657,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-switch_client"},{"id":"libtmux.Server:unset_environment","publicId":"libtmux.Server:unset_environment","name":"unset_environment","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, options?: libtmux.EnvironmentOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.EnvironmentOptions?","default":"nil","doc":" What every environment operation accepts; unset and remove take no more."}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":630,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-unset_environment"},{"id":"libtmux.Server:unset_hook","publicId":"libtmux.Server:unset_hook","name":"unset_hook","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":620,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-unset_hook"},{"id":"libtmux.Server:unset_option","publicId":"libtmux.Server:unset_option","name":"unset_option","kind":"method","modifiers":[],"parent":"libtmux.Server","signatures":[{"raw":"fun(self: libtmux.Server, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":611,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-server-unset_option"},{"id":"libtmux.Session","publicId":"libtmux.Session","name":"Session","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":416,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session"},{"id":"libtmux.Session:attach","publicId":"libtmux.Session:attach","name":"attach","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":427,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-attach"},{"id":"libtmux.Session:get_environment","publicId":"libtmux.Session:get_environment","name":"get_environment","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, name: string, options?: libtmux.EnvironmentGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.EnvironmentGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"doc":{"summary":"Requires an interactive terminal capability; current adapters return unsupported_tty."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":429,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-get_environment"},{"id":"libtmux.Session:get_hook","publicId":"libtmux.Session:get_hook","name":"get_hook","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":402,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-session-get_hook"},{"id":"libtmux.Session:get_option","publicId":"libtmux.Session:get_option","name":"get_option","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":391,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-session-get_option"},{"id":"libtmux.Session:kill","publicId":"libtmux.Session:kill","name":"kill","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, options?: libtmux.TopologyOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.TopologyOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":421,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-kill"},{"id":"libtmux.Session:list_environment","publicId":"libtmux.Session:list_environment","name":"list_environment","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, options?: libtmux.EnvironmentListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.EnvironmentListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":432,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-list_environment"},{"id":"libtmux.Session:list_hooks","publicId":"libtmux.Session:list_hooks","name":"list_hooks","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Configurable, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":404,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-session-list_hooks"},{"id":"libtmux.Session:list_options","publicId":"libtmux.Session:list_options","name":"list_options","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Configurable, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":394,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-session-list_options"},{"id":"libtmux.Session:navigate_window","publicId":"libtmux.Session:navigate_window","name":"navigate_window","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, direction: \"last\"|\"next\"|\"previous\", options?: libtmux.NavigateWindowOptions):libtmux.Request","params":[{"name":"direction","type":"\"last\"|\"next\"|\"previous\""},{"name":"options","type":"libtmux.NavigateWindowOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":423,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-navigate_window"},{"id":"libtmux.Session:new_window","publicId":"libtmux.Session:new_window","name":"new_window","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, options?: libtmux.NewWindowOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.NewWindowOptions?","default":"nil"}],"returns":"libtmux.Request"}],"doc":{"summary":"","examples":[{"lang":"console","intro":"Create a named window in a particular session. Use Lua 5.5.1, LuaRocks, Git, tmux 3.3a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as new_window.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/new_window.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n local created = must(server\n :new_session({\n name = \"demo\",\n window_name = \"main\",\n argv = { \"/bin/cat\" },\n })\n :await())\n local logs = must(created.session:new_window({ name = \"logs\", argv = { \"/bin/cat\" } }):await())\n local snapshot = must(logs.window:snapshot():await())\n assert(snapshot.name == \"logs\", \"created window has the wrong name\")\n print(\"window: \" .. snapshot.name)\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh new_window.lua\n"}]},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":417,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-new_window"},{"id":"libtmux.Session:reference","publicId":"libtmux.Session:reference","name":"reference","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Reference?, libtmux.Error?","params":[],"returns":"libtmux.Reference?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":384,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-session-reference"},{"id":"libtmux.Session:remove_environment","publicId":"libtmux.Session:remove_environment","name":"remove_environment","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, name: string, options?: libtmux.EnvironmentOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.EnvironmentOptions?","default":"nil","doc":" What every environment operation accepts; unset and remove take no more."}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":440,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-remove_environment"},{"id":"libtmux.Session:rename","publicId":"libtmux.Session:rename","name":"rename","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, name: string, options?: libtmux.TopologyOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.TopologyOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":419,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-rename"},{"id":"libtmux.Session:renumber_windows","publicId":"libtmux.Session:renumber_windows","name":"renumber_windows","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, options?: libtmux.TopologyOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.TopologyOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":425,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-renumber_windows"},{"id":"libtmux.Session:run_hook","publicId":"libtmux.Session:run_hook","name":"run_hook","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.RunHookOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.RunHookOptions?","default":"nil","doc":" Running a hook reads only its handle's own scope."}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":412,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-session-run_hook"},{"id":"libtmux.Session:set_environment","publicId":"libtmux.Session:set_environment","name":"set_environment","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, name: string, value: string, options?: libtmux.EnvironmentSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"string"},{"name":"options","type":"libtmux.EnvironmentSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":434,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-set_environment"},{"id":"libtmux.Session:set_hook","publicId":"libtmux.Session:set_hook","name":"set_hook","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, value: libtmux.HookProgram, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"libtmux.HookProgram"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":406,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-session-set_hook"},{"id":"libtmux.Session:set_option","publicId":"libtmux.Session:set_option","name":"set_option","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, value: boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":396,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-session-set_option"},{"id":"libtmux.Session:snapshot","publicId":"libtmux.Session:snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":386,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-session-snapshot"},{"id":"libtmux.Session:unset_environment","publicId":"libtmux.Session:unset_environment","name":"unset_environment","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Session, name: string, options?: libtmux.EnvironmentOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.EnvironmentOptions?","default":"nil","doc":" What every environment operation accepts; unset and remove take no more."}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":437,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-session-unset_environment"},{"id":"libtmux.Session:unset_hook","publicId":"libtmux.Session:unset_hook","name":"unset_hook","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":409,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-session-unset_hook"},{"id":"libtmux.Session:unset_option","publicId":"libtmux.Session:unset_option","name":"unset_option","kind":"method","modifiers":[],"parent":"libtmux.Session","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":399,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-session-unset_option"},{"id":"libtmux.SettingGetOptions","publicId":"libtmux.SettingGetOptions","name":"SettingGetOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":663,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settinggetoptions"},{"id":"libtmux.SettingGetOptions.index","publicId":"libtmux.SettingGetOptions.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.SettingGetOptions","signatures":[],"doc":{"summary":"Array slot; reads still inspect the whole array."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/settings.lua","line":664,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settinggetoptions-index"},{"id":"libtmux.SettingGetOptions.inherit","publicId":"libtmux.SettingGetOptions.inherit","name":"inherit","kind":"attribute","modifiers":[],"parent":"libtmux.SettingGetOptions","signatures":[],"doc":{"summary":"Read fallback values; defaults to true."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/settings.lua","line":661,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingListOptions","slug":"libtmux-settinggetoptions-inherit"},{"id":"libtmux.SettingGetOptions.process","publicId":"libtmux.SettingGetOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SettingGetOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/settings.lua","line":658,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingOptions","slug":"libtmux-settinggetoptions-process"},{"id":"libtmux.SettingGetOptions.scope","publicId":"libtmux.SettingGetOptions.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.SettingGetOptions","signatures":[],"product":"core","apiScope":"exported","type":"('global_session'|'global_window'|'pane'|'server'|'session'...(+1))?","source":{"file":"lua/libtmux/_internal/settings.lua","line":657,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingOptions","slug":"libtmux-settinggetoptions-scope"},{"id":"libtmux.SettingListOptions","publicId":"libtmux.SettingListOptions","name":"SettingListOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":660,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settinglistoptions"},{"id":"libtmux.SettingListOptions.inherit","publicId":"libtmux.SettingListOptions.inherit","name":"inherit","kind":"attribute","modifiers":[],"parent":"libtmux.SettingListOptions","signatures":[],"doc":{"summary":"Read fallback values; defaults to true."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/settings.lua","line":661,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settinglistoptions-inherit"},{"id":"libtmux.SettingListOptions.process","publicId":"libtmux.SettingListOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SettingListOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/settings.lua","line":658,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingOptions","slug":"libtmux-settinglistoptions-process"},{"id":"libtmux.SettingListOptions.scope","publicId":"libtmux.SettingListOptions.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.SettingListOptions","signatures":[],"product":"core","apiScope":"exported","type":"('global_session'|'global_window'|'pane'|'server'|'session'...(+1))?","source":{"file":"lua/libtmux/_internal/settings.lua","line":657,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingOptions","slug":"libtmux-settinglistoptions-scope"},{"id":"libtmux.SettingOptions","publicId":"libtmux.SettingOptions","name":"SettingOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":656,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settingoptions"},{"id":"libtmux.SettingOptions.process","publicId":"libtmux.SettingOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SettingOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/settings.lua","line":658,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settingoptions-process"},{"id":"libtmux.SettingOptions.scope","publicId":"libtmux.SettingOptions.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.SettingOptions","signatures":[],"product":"core","apiScope":"exported","type":"('global_session'|'global_window'|'pane'|'server'|'session'...(+1))?","source":{"file":"lua/libtmux/_internal/settings.lua","line":657,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settingoptions-scope"},{"id":"libtmux.SettingSetOptions","publicId":"libtmux.SettingSetOptions","name":"SettingSetOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":669,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settingsetoptions"},{"id":"libtmux.SettingSetOptions.append","publicId":"libtmux.SettingSetOptions.append","name":"append","kind":"attribute","modifiers":[],"parent":"libtmux.SettingSetOptions","signatures":[],"doc":{"summary":"String concatenation or unindexed built-in hook append."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/settings.lua","line":670,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settingsetoptions-append"},{"id":"libtmux.SettingSetOptions.index","publicId":"libtmux.SettingSetOptions.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.SettingSetOptions","signatures":[],"doc":{"summary":"Array slot."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/settings.lua","line":667,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingUnsetOptions","slug":"libtmux-settingsetoptions-index"},{"id":"libtmux.SettingSetOptions.process","publicId":"libtmux.SettingSetOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SettingSetOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/settings.lua","line":658,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingOptions","slug":"libtmux-settingsetoptions-process"},{"id":"libtmux.SettingSetOptions.scope","publicId":"libtmux.SettingSetOptions.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.SettingSetOptions","signatures":[],"product":"core","apiScope":"exported","type":"('global_session'|'global_window'|'pane'|'server'|'session'...(+1))?","source":{"file":"lua/libtmux/_internal/settings.lua","line":657,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingOptions","slug":"libtmux-settingsetoptions-scope"},{"id":"libtmux.SettingUnsetOptions","publicId":"libtmux.SettingUnsetOptions","name":"SettingUnsetOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/settings.lua","line":666,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settingunsetoptions"},{"id":"libtmux.SettingUnsetOptions.index","publicId":"libtmux.SettingUnsetOptions.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.SettingUnsetOptions","signatures":[],"doc":{"summary":"Array slot."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/settings.lua","line":667,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-settingunsetoptions-index"},{"id":"libtmux.SettingUnsetOptions.process","publicId":"libtmux.SettingUnsetOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SettingUnsetOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/settings.lua","line":658,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingOptions","slug":"libtmux-settingunsetoptions-process"},{"id":"libtmux.SettingUnsetOptions.scope","publicId":"libtmux.SettingUnsetOptions.scope","name":"scope","kind":"attribute","modifiers":[],"parent":"libtmux.SettingUnsetOptions","signatures":[],"product":"core","apiScope":"exported","type":"('global_session'|'global_window'|'pane'|'server'|'session'...(+1))?","source":{"file":"lua/libtmux/_internal/settings.lua","line":657,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SettingOptions","slug":"libtmux-settingunsetoptions-scope"},{"id":"libtmux.Snapshot","publicId":"libtmux.Snapshot","name":"Snapshot","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":721,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot"},{"id":"libtmux.Snapshot.acquisition","publicId":"libtmux.Snapshot.acquisition","name":"acquisition","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"{ started: number, finished: number }","source":{"file":"lua/libtmux/_internal/server.lua","line":731,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-acquisition"},{"id":"libtmux.Snapshot.buffers","publicId":"libtmux.Snapshot.buffers","name":"buffers","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Selection","source":{"file":"lua/libtmux/_internal/server.lua","line":727,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-buffers"},{"id":"libtmux.Snapshot.capabilities","publicId":"libtmux.Snapshot.capabilities","name":"capabilities","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"{ version: string, fields: table> }","source":{"file":"lua/libtmux/_internal/server.lua","line":734,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-capabilities"},{"id":"libtmux.Snapshot.clients","publicId":"libtmux.Snapshot.clients","name":"clients","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Selection","source":{"file":"lua/libtmux/_internal/server.lua","line":726,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-clients"},{"id":"libtmux.Snapshot.complete","publicId":"libtmux.Snapshot.complete","name":"complete","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"boolean","source":{"file":"lua/libtmux/_internal/server.lua","line":729,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-complete"},{"id":"libtmux.Snapshot.panes","publicId":"libtmux.Snapshot.panes","name":"panes","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"doc":{"summary":"","examples":[{"lang":"console","intro":"List sessions, windows, and panes from one captured server snapshot. Use Lua 5.5.1, LuaRocks, Git, tmux 3.3a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as snapshot.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/snapshot.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n must(server\n :new_session({\n name = \"demo\",\n window_name = \"main\",\n argv = { \"/bin/cat\" },\n })\n :await())\n local snapshot = must(server:snapshot({ strict = true }):await())\n local sessions, windows = {}, {}\n for _, session in ipairs(snapshot.sessions) do\n sessions[#sessions + 1] = session.name\n end\n for _, window in ipairs(snapshot.windows) do\n windows[#windows + 1] = window.name\n end\n table.sort(sessions)\n table.sort(windows)\n assert(#snapshot.sessions == 2 and #snapshot.windows == 2 and #snapshot.panes == 2)\n print(\"sessions: \" .. table.concat(sessions, \", \"))\n print(\"windows: \" .. table.concat(windows, \", \"))\n print(\"panes: \" .. #snapshot.panes)\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh snapshot.lua\n"}]},"product":"core","apiScope":"exported","type":"libtmux.Selection","source":{"file":"lua/libtmux/_internal/server.lua","line":724,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-panes"},{"id":"libtmux.Snapshot.projections","publicId":"libtmux.Snapshot.projections","name":"projections","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/server.lua","line":732,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-projections"},{"id":"libtmux.Snapshot.races","publicId":"libtmux.Snapshot.races","name":"races","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"table[]","source":{"file":"lua/libtmux/_internal/server.lua","line":730,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-races"},{"id":"libtmux.Snapshot.raw","publicId":"libtmux.Snapshot.raw","name":"raw","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"table>","source":{"file":"lua/libtmux/_internal/server.lua","line":728,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-raw"},{"id":"libtmux.Snapshot.requested_projections","publicId":"libtmux.Snapshot.requested_projections","name":"requested_projections","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/server.lua","line":733,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-requested_projections"},{"id":"libtmux.Snapshot.sessions","publicId":"libtmux.Snapshot.sessions","name":"sessions","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"doc":{"summary":"","examples":[{"lang":"console","intro":"List sessions, windows, and panes from one captured server snapshot. Use Lua 5.5.1, LuaRocks, Git, tmux 3.3a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as snapshot.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/snapshot.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n must(server\n :new_session({\n name = \"demo\",\n window_name = \"main\",\n argv = { \"/bin/cat\" },\n })\n :await())\n local snapshot = must(server:snapshot({ strict = true }):await())\n local sessions, windows = {}, {}\n for _, session in ipairs(snapshot.sessions) do\n sessions[#sessions + 1] = session.name\n end\n for _, window in ipairs(snapshot.windows) do\n windows[#windows + 1] = window.name\n end\n table.sort(sessions)\n table.sort(windows)\n assert(#snapshot.sessions == 2 and #snapshot.windows == 2 and #snapshot.panes == 2)\n print(\"sessions: \" .. table.concat(sessions, \", \"))\n print(\"windows: \" .. table.concat(windows, \", \"))\n print(\"panes: \" .. #snapshot.panes)\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh snapshot.lua\n"}]},"product":"core","apiScope":"exported","type":"libtmux.Selection","source":{"file":"lua/libtmux/_internal/server.lua","line":722,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-sessions"},{"id":"libtmux.Snapshot.verification","publicId":"libtmux.Snapshot.verification","name":"verification","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"{ passes: integer, consistent: boolean? }","source":{"file":"lua/libtmux/_internal/server.lua","line":735,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-verification"},{"id":"libtmux.Snapshot.window_links","publicId":"libtmux.Snapshot.window_links","name":"window_links","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Selection","source":{"file":"lua/libtmux/_internal/server.lua","line":725,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-window_links"},{"id":"libtmux.Snapshot.windows","publicId":"libtmux.Snapshot.windows","name":"windows","kind":"attribute","modifiers":[],"parent":"libtmux.Snapshot","signatures":[],"doc":{"summary":"","examples":[{"lang":"console","intro":"List sessions, windows, and panes from one captured server snapshot. Use Lua 5.5.1, LuaRocks, Git, tmux 3.3a or newer, a C compiler, and CMake on Linux. In a new directory, install the documented source and standalone runtime dependency:","code":"$ git clone https://github.com/libtmux/libtmux-lua.git libtmux-source &&\n git -C libtmux-source checkout 0395620d362ef75c74cd488f9577afda68922586 &&\n luarocks --tree ./rocks install luv 1.52.1-0 &&\n (cd libtmux-source &&\n luarocks --tree ../rocks make rockspecs/libtmux-scm-1.rockspec) &&\n eval \"$(luarocks --tree ./rocks path)\"\n"},{"lang":"sh","intro":"Save this complete launcher as run.sh. It starts a private tmux daemon and cleans up after success or failure. A failed daemon shutdown reports and retains its socket directory.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/run.sh","code":"#!/bin/sh\nset -eu\n\nprogram=${1:?Pass the complete Lua example filename}\nbinary=$(command -v \"${TMUX_BIN:-tmux}\")\ncase \"$binary\" in\n /*) ;;\n *) printf '%s\\n' 'tmux must resolve to an absolute path' >&2; exit 1 ;;\nesac\ndirectory=$(mktemp -d \"${TMPDIR:-/tmp}/libtmux-lua-api.XXXXXX\")\nsocket=\"$directory/tmux.sock\"\n\ncleanup() {\n status=$?\n trap - 0 HUP INT TERM\n if [ -S \"$socket\" ] && ! \"$binary\" -S \"$socket\" kill-server; then\n printf 'Cannot stop tmux; kept %s\\n' \"$directory\" >&2\n exit 1\n fi\n rm -rf \"$directory\" || exit 1\n exit \"$status\"\n}\ntrap cleanup 0\ntrap 'exit 1' HUP INT TERM\n\nunset TMUX TMUX_PANE\nexport TMUX_BIN=\"$binary\" TMUX_SOCKET=\"$socket\" ENV=/dev/null BASH_ENV=/dev/null\n\"$binary\" -S \"$socket\" -f /dev/null new-session -d -s bootstrap -n bootstrap /bin/cat\n\"${LUA_BIN:-lua}\" \"$program\"\n\"$binary\" -S \"$socket\" has-session -t '=bootstrap'\n"},{"lang":"lua","intro":"Save the complete program as snapshot.lua. Closing the library connection leaves the daemon running; the launcher owns its lifetime.","sourceUrl":"https://github.com/libtmux/libtmux-lua/blob/0395620d362ef75c74cd488f9577afda68922586/examples/api/snapshot.lua","code":"local adapter = require(\"libtmux.runtime.luv\")\n\nlocal function must(value, err)\n if err ~= nil then\n error(tostring(err), 0)\n end\n return value\nend\n\nlocal binary = assert(os.getenv(\"TMUX_BIN\"), \"set TMUX_BIN to an absolute tmux executable\")\nlocal socket = assert(os.getenv(\"TMUX_SOCKET\"), \"set TMUX_SOCKET to the private socket\")\n\nmust(adapter.run(function(runtime)\n local server = must(runtime:connect({ binary = binary, socket_path = socket }):await())\n must(server\n :new_session({\n name = \"demo\",\n window_name = \"main\",\n argv = { \"/bin/cat\" },\n })\n :await())\n local snapshot = must(server:snapshot({ strict = true }):await())\n local sessions, windows = {}, {}\n for _, session in ipairs(snapshot.sessions) do\n sessions[#sessions + 1] = session.name\n end\n for _, window in ipairs(snapshot.windows) do\n windows[#windows + 1] = window.name\n end\n table.sort(sessions)\n table.sort(windows)\n assert(#snapshot.sessions == 2 and #snapshot.windows == 2 and #snapshot.panes == 2)\n print(\"sessions: \" .. table.concat(sessions, \", \"))\n print(\"windows: \" .. table.concat(windows, \", \"))\n print(\"panes: \" .. #snapshot.panes)\n\n must(server:close():await())\n return true\nend))\n"},{"lang":"console","intro":"Run the saved files. Assertions and operation errors produce a failing exit status:","code":"$ eval \"$(luarocks --tree ./rocks path)\" &&\n sh run.sh snapshot.lua\n"}]},"product":"core","apiScope":"exported","type":"libtmux.Selection","source":{"file":"lua/libtmux/_internal/server.lua","line":723,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshot-windows"},{"id":"libtmux.SnapshotBuffer","publicId":"libtmux.SnapshotBuffer","name":"SnapshotBuffer","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":717,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotbuffer"},{"id":"libtmux.SnapshotBuffer.created","publicId":"libtmux.SnapshotBuffer.created","name":"created","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotBuffer","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":78,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Buffer","slug":"libtmux-snapshotbuffer-created"},{"id":"libtmux.SnapshotBuffer.name","publicId":"libtmux.SnapshotBuffer.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotBuffer","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":718,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotbuffer-name"},{"id":"libtmux.SnapshotBuffer.ref","publicId":"libtmux.SnapshotBuffer.ref","name":"ref","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotBuffer","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/server.lua","line":719,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotbuffer-ref"},{"id":"libtmux.SnapshotBuffer.sample","publicId":"libtmux.SnapshotBuffer.sample","name":"sample","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotBuffer","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":77,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Buffer","slug":"libtmux-snapshotbuffer-sample"},{"id":"libtmux.SnapshotBuffer.size","publicId":"libtmux.SnapshotBuffer.size","name":"size","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotBuffer","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":76,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Buffer","slug":"libtmux-snapshotbuffer-size"},{"id":"libtmux.SnapshotClient","publicId":"libtmux.SnapshotClient","name":"SnapshotClient","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":710,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotclient"},{"id":"libtmux.SnapshotClient.activity","publicId":"libtmux.SnapshotClient.activity","name":"activity","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":72,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Client","slug":"libtmux-snapshotclient-activity"},{"id":"libtmux.SnapshotClient.control_mode","publicId":"libtmux.SnapshotClient.control_mode","name":"control_mode","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":69,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Client","slug":"libtmux-snapshotclient-control_mode"},{"id":"libtmux.SnapshotClient.created","publicId":"libtmux.SnapshotClient.created","name":"created","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":71,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Client","slug":"libtmux-snapshotclient-created"},{"id":"libtmux.SnapshotClient.height","publicId":"libtmux.SnapshotClient.height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"(integer|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":68,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Client","slug":"libtmux-snapshotclient-height"},{"id":"libtmux.SnapshotClient.name","publicId":"libtmux.SnapshotClient.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":711,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotclient-name"},{"id":"libtmux.SnapshotClient.pid","publicId":"libtmux.SnapshotClient.pid","name":"pid","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":65,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Client","slug":"libtmux-snapshotclient-pid"},{"id":"libtmux.SnapshotClient.readonly","publicId":"libtmux.SnapshotClient.readonly","name":"readonly","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":70,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Client","slug":"libtmux-snapshotclient-readonly"},{"id":"libtmux.SnapshotClient.ref","publicId":"libtmux.SnapshotClient.ref","name":"ref","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/server.lua","line":714,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotclient-ref"},{"id":"libtmux.SnapshotClient.session","publicId":"libtmux.SnapshotClient.session","name":"session","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.Null|libtmux.SnapshotSession)?","source":{"file":"lua/libtmux/_internal/server.lua","line":715,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotclient-session"},{"id":"libtmux.SnapshotClient.session_name","publicId":"libtmux.SnapshotClient.session_name","name":"session_name","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"string|libtmux.Null","source":{"file":"lua/libtmux/_internal/server.lua","line":713,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotclient-session_name"},{"id":"libtmux.SnapshotClient.tty","publicId":"libtmux.SnapshotClient.tty","name":"tty","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":712,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotclient-tty"},{"id":"libtmux.SnapshotClient.width","publicId":"libtmux.SnapshotClient.width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotClient","signatures":[],"product":"core","apiScope":"exported","type":"(integer|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":67,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Client","slug":"libtmux-snapshotclient-width"},{"id":"libtmux.SnapshotOptions","publicId":"libtmux.SnapshotOptions","name":"SnapshotOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":570,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotoptions"},{"id":"libtmux.SnapshotOptions.fields","publicId":"libtmux.SnapshotOptions.fields","name":"fields","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotOptions","signatures":[],"doc":{"summary":"Collection names mapped to requested catalog fields."},"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/_internal/server.lua","line":572,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotoptions-fields"},{"id":"libtmux.SnapshotOptions.max_bytes","publicId":"libtmux.SnapshotOptions.max_bytes","name":"max_bytes","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/server.lua","line":574,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotoptions-max_bytes"},{"id":"libtmux.SnapshotOptions.max_rows","publicId":"libtmux.SnapshotOptions.max_rows","name":"max_rows","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/server.lua","line":573,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotoptions-max_rows"},{"id":"libtmux.SnapshotOptions.strict","publicId":"libtmux.SnapshotOptions.strict","name":"strict","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotOptions","signatures":[],"doc":{"summary":"Perform one additional topology verification pass."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/server.lua","line":571,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotoptions-strict"},{"id":"libtmux.SnapshotOptions.timeout","publicId":"libtmux.SnapshotOptions.timeout","name":"timeout","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotOptions","signatures":[],"doc":{"summary":"Listing command timeout in milliseconds."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/server.lua","line":575,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotoptions-timeout"},{"id":"libtmux.SnapshotPane","publicId":"libtmux.SnapshotPane","name":"SnapshotPane","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":695,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotpane"},{"id":"libtmux.SnapshotPane.active","publicId":"libtmux.SnapshotPane.active","name":"active","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":43,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-active"},{"id":"libtmux.SnapshotPane.current_command","publicId":"libtmux.SnapshotPane.current_command","name":"current_command","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":52,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-current_command"},{"id":"libtmux.SnapshotPane.current_path","publicId":"libtmux.SnapshotPane.current_path","name":"current_path","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":51,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-current_path"},{"id":"libtmux.SnapshotPane.dead","publicId":"libtmux.SnapshotPane.dead","name":"dead","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":54,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-dead"},{"id":"libtmux.SnapshotPane.dead_signal","publicId":"libtmux.SnapshotPane.dead_signal","name":"dead_signal","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":56,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-dead_signal"},{"id":"libtmux.SnapshotPane.dead_status","publicId":"libtmux.SnapshotPane.dead_status","name":"dead_status","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"(integer|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":55,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-dead_status"},{"id":"libtmux.SnapshotPane.dead_time","publicId":"libtmux.SnapshotPane.dead_time","name":"dead_time","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"(integer|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":57,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-dead_time"},{"id":"libtmux.SnapshotPane.height","publicId":"libtmux.SnapshotPane.height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":46,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-height"},{"id":"libtmux.SnapshotPane.id","publicId":"libtmux.SnapshotPane.id","name":"id","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":696,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotpane-id"},{"id":"libtmux.SnapshotPane.index","publicId":"libtmux.SnapshotPane.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"integer","source":{"file":"lua/libtmux/_internal/server.lua","line":698,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotpane-index"},{"id":"libtmux.SnapshotPane.left","publicId":"libtmux.SnapshotPane.left","name":"left","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":47,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-left"},{"id":"libtmux.SnapshotPane.mode","publicId":"libtmux.SnapshotPane.mode","name":"mode","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":58,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-mode"},{"id":"libtmux.SnapshotPane.mode_count","publicId":"libtmux.SnapshotPane.mode_count","name":"mode_count","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":59,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-mode_count"},{"id":"libtmux.SnapshotPane.pid","publicId":"libtmux.SnapshotPane.pid","name":"pid","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":49,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-pid"},{"id":"libtmux.SnapshotPane.ref","publicId":"libtmux.SnapshotPane.ref","name":"ref","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/server.lua","line":699,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotpane-ref"},{"id":"libtmux.SnapshotPane.start_command","publicId":"libtmux.SnapshotPane.start_command","name":"start_command","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":53,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-start_command"},{"id":"libtmux.SnapshotPane.synchronized","publicId":"libtmux.SnapshotPane.synchronized","name":"synchronized","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":60,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-synchronized"},{"id":"libtmux.SnapshotPane.title","publicId":"libtmux.SnapshotPane.title","name":"title","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":44,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-title"},{"id":"libtmux.SnapshotPane.top","publicId":"libtmux.SnapshotPane.top","name":"top","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":48,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-top"},{"id":"libtmux.SnapshotPane.tty","publicId":"libtmux.SnapshotPane.tty","name":"tty","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":50,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-tty"},{"id":"libtmux.SnapshotPane.width","publicId":"libtmux.SnapshotPane.width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":45,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Pane","slug":"libtmux-snapshotpane-width"},{"id":"libtmux.SnapshotPane.window","publicId":"libtmux.SnapshotPane.window","name":"window","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"doc":{"summary":"Missing when captured relationships are inconsistent."},"product":"core","apiScope":"exported","type":"(libtmux.SnapshotWindow)?","source":{"file":"lua/libtmux/_internal/server.lua","line":700,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotpane-window"},{"id":"libtmux.SnapshotPane.window_id","publicId":"libtmux.SnapshotPane.window_id","name":"window_id","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotPane","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":697,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotpane-window_id"},{"id":"libtmux.SnapshotSession","publicId":"libtmux.SnapshotSession","name":"SnapshotSession","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":683,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotsession"},{"id":"libtmux.SnapshotSession.activity","publicId":"libtmux.SnapshotSession.activity","name":"activity","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":15,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Session","slug":"libtmux-snapshotsession-activity"},{"id":"libtmux.SnapshotSession.attached","publicId":"libtmux.SnapshotSession.attached","name":"attached","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":16,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Session","slug":"libtmux-snapshotsession-attached"},{"id":"libtmux.SnapshotSession.created","publicId":"libtmux.SnapshotSession.created","name":"created","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":14,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Session","slug":"libtmux-snapshotsession-created"},{"id":"libtmux.SnapshotSession.group","publicId":"libtmux.SnapshotSession.group","name":"group","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":18,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Session","slug":"libtmux-snapshotsession-group"},{"id":"libtmux.SnapshotSession.grouped","publicId":"libtmux.SnapshotSession.grouped","name":"grouped","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":19,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Session","slug":"libtmux-snapshotsession-grouped"},{"id":"libtmux.SnapshotSession.id","publicId":"libtmux.SnapshotSession.id","name":"id","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":684,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotsession-id"},{"id":"libtmux.SnapshotSession.name","publicId":"libtmux.SnapshotSession.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":685,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotsession-name"},{"id":"libtmux.SnapshotSession.path","publicId":"libtmux.SnapshotSession.path","name":"path","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":20,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Session","slug":"libtmux-snapshotsession-path"},{"id":"libtmux.SnapshotSession.ref","publicId":"libtmux.SnapshotSession.ref","name":"ref","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/server.lua","line":686,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotsession-ref"},{"id":"libtmux.SnapshotSession.window_count","publicId":"libtmux.SnapshotSession.window_count","name":"window_count","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":17,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Session","slug":"libtmux-snapshotsession-window_count"},{"id":"libtmux.SnapshotSession.window_links","publicId":"libtmux.SnapshotSession.window_links","name":"window_links","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotSession","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.SnapshotWindowLink[]","source":{"file":"lua/libtmux/_internal/server.lua","line":687,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotsession-window_links"},{"id":"libtmux.SnapshotWindow","publicId":"libtmux.SnapshotWindow","name":"SnapshotWindow","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":689,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindow"},{"id":"libtmux.SnapshotWindow.height","publicId":"libtmux.SnapshotWindow.height","name":"height","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":26,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Window","slug":"libtmux-snapshotwindow-height"},{"id":"libtmux.SnapshotWindow.id","publicId":"libtmux.SnapshotWindow.id","name":"id","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":690,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindow-id"},{"id":"libtmux.SnapshotWindow.layout","publicId":"libtmux.SnapshotWindow.layout","name":"layout","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":28,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Window","slug":"libtmux-snapshotwindow-layout"},{"id":"libtmux.SnapshotWindow.name","publicId":"libtmux.SnapshotWindow.name","name":"name","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":24,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Window","slug":"libtmux-snapshotwindow-name"},{"id":"libtmux.SnapshotWindow.pane_count","publicId":"libtmux.SnapshotWindow.pane_count","name":"pane_count","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":27,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Window","slug":"libtmux-snapshotwindow-pane_count"},{"id":"libtmux.SnapshotWindow.panes","publicId":"libtmux.SnapshotWindow.panes","name":"panes","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.SnapshotPane[]","source":{"file":"lua/libtmux/_internal/server.lua","line":692,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindow-panes"},{"id":"libtmux.SnapshotWindow.ref","publicId":"libtmux.SnapshotWindow.ref","name":"ref","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/server.lua","line":691,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindow-ref"},{"id":"libtmux.SnapshotWindow.visible_layout","publicId":"libtmux.SnapshotWindow.visible_layout","name":"visible_layout","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"(string|libtmux.Null)?","source":{"file":"lua/libtmux/_internal/fields.lua","line":29,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Window","slug":"libtmux-snapshotwindow-visible_layout"},{"id":"libtmux.SnapshotWindow.width","publicId":"libtmux.SnapshotWindow.width","name":"width","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/fields.lua","line":25,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Window","slug":"libtmux-snapshotwindow-width"},{"id":"libtmux.SnapshotWindow.window_links","publicId":"libtmux.SnapshotWindow.window_links","name":"window_links","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.SnapshotWindowLink[]","source":{"file":"lua/libtmux/_internal/server.lua","line":693,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindow-window_links"},{"id":"libtmux.SnapshotWindow.zoomed","publicId":"libtmux.SnapshotWindow.zoomed","name":"zoomed","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindow","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":30,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.Window","slug":"libtmux-snapshotwindow-zoomed"},{"id":"libtmux.SnapshotWindowLink","publicId":"libtmux.SnapshotWindowLink","name":"SnapshotWindowLink","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/server.lua","line":702,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindowlink"},{"id":"libtmux.SnapshotWindowLink.active","publicId":"libtmux.SnapshotWindowLink.active","name":"active","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindowLink","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/fields.lua","line":36,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.WindowLink","slug":"libtmux-snapshotwindowlink-active"},{"id":"libtmux.SnapshotWindowLink.flags","publicId":"libtmux.SnapshotWindowLink.flags","name":"flags","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindowLink","signatures":[],"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/fields.lua","line":37,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Fields.WindowLink","slug":"libtmux-snapshotwindowlink-flags"},{"id":"libtmux.SnapshotWindowLink.index","publicId":"libtmux.SnapshotWindowLink.index","name":"index","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindowLink","signatures":[],"product":"core","apiScope":"exported","type":"integer","source":{"file":"lua/libtmux/_internal/server.lua","line":705,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindowlink-index"},{"id":"libtmux.SnapshotWindowLink.ref","publicId":"libtmux.SnapshotWindowLink.ref","name":"ref","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindowLink","signatures":[],"product":"core","apiScope":"exported","type":"table","source":{"file":"lua/libtmux/_internal/server.lua","line":706,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindowlink-ref"},{"id":"libtmux.SnapshotWindowLink.session","publicId":"libtmux.SnapshotWindowLink.session","name":"session","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindowLink","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.SnapshotSession)?","source":{"file":"lua/libtmux/_internal/server.lua","line":707,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindowlink-session"},{"id":"libtmux.SnapshotWindowLink.session_id","publicId":"libtmux.SnapshotWindowLink.session_id","name":"session_id","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindowLink","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":703,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindowlink-session_id"},{"id":"libtmux.SnapshotWindowLink.window","publicId":"libtmux.SnapshotWindowLink.window","name":"window","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindowLink","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.SnapshotWindow)?","source":{"file":"lua/libtmux/_internal/server.lua","line":708,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindowlink-window"},{"id":"libtmux.SnapshotWindowLink.window_id","publicId":"libtmux.SnapshotWindowLink.window_id","name":"window_id","kind":"attribute","modifiers":[],"parent":"libtmux.SnapshotWindowLink","signatures":[],"product":"core","apiScope":"exported","type":"string","source":{"file":"lua/libtmux/_internal/server.lua","line":704,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-snapshotwindowlink-window_id"},{"id":"libtmux.SplitOptions","publicId":"libtmux.SplitOptions","name":"SplitOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/domain.lua","line":474,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-splitoptions"},{"id":"libtmux.SplitOptions.argv","publicId":"libtmux.SplitOptions.argv","name":"argv","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"doc":{"summary":"Literal command arguments; mutually exclusive with shell."},"product":"core","apiScope":"exported","type":"string[]?","source":{"file":"lua/libtmux/_internal/domain.lua","line":458,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-splitoptions-argv"},{"id":"libtmux.SplitOptions.cwd","publicId":"libtmux.SplitOptions.cwd","name":"cwd","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"doc":{"summary":"Absolute working directory."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":457,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-splitoptions-cwd"},{"id":"libtmux.SplitOptions.direction","publicId":"libtmux.SplitOptions.direction","name":"direction","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"doc":{"summary":"Defaults to down."},"product":"core","apiScope":"exported","type":"(\"down\"|\"left\"|\"right\"|\"up\")?","source":{"file":"lua/libtmux/_internal/domain.lua","line":475,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-splitoptions-direction"},{"id":"libtmux.SplitOptions.environment","publicId":"libtmux.SplitOptions.environment","name":"environment","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"doc":{"summary":"Environment for the created scope."},"product":"core","apiScope":"exported","type":"table?","source":{"file":"lua/libtmux/_internal/domain.lua","line":460,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-splitoptions-environment"},{"id":"libtmux.SplitOptions.full_size","publicId":"libtmux.SplitOptions.full_size","name":"full_size","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/domain.lua","line":478,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-splitoptions-full_size"},{"id":"libtmux.SplitOptions.percent","publicId":"libtmux.SplitOptions.percent","name":"percent","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"doc":{"summary":"Mutually exclusive with size."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/domain.lua","line":477,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-splitoptions-percent"},{"id":"libtmux.SplitOptions.process","publicId":"libtmux.SplitOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/domain.lua","line":461,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-splitoptions-process"},{"id":"libtmux.SplitOptions.select","publicId":"libtmux.SplitOptions.select","name":"select","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"doc":{"summary":"Defaults to false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/domain.lua","line":479,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-splitoptions-select"},{"id":"libtmux.SplitOptions.shell","publicId":"libtmux.SplitOptions.shell","name":"shell","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"doc":{"summary":"Explicit shell program."},"product":"core","apiScope":"exported","type":"string?","source":{"file":"lua/libtmux/_internal/domain.lua","line":459,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.CreationOptions","slug":"libtmux-splitoptions-shell"},{"id":"libtmux.SplitOptions.size","publicId":"libtmux.SplitOptions.size","name":"size","kind":"attribute","modifiers":[],"parent":"libtmux.SplitOptions","signatures":[],"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/domain.lua","line":476,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-splitoptions-size"},{"id":"libtmux.SwapLinkOptions","publicId":"libtmux.SwapLinkOptions","name":"SwapLinkOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":712,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-swaplinkoptions"},{"id":"libtmux.SwapLinkOptions.process","publicId":"libtmux.SwapLinkOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SwapLinkOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.TopologyOptions","slug":"libtmux-swaplinkoptions-process"},{"id":"libtmux.SwapLinkOptions.select","publicId":"libtmux.SwapLinkOptions.select","name":"select","kind":"attribute","modifiers":[],"parent":"libtmux.SwapLinkOptions","signatures":[],"doc":{"summary":"False preserves selected slots; true selects swapped slots."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":713,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-swaplinkoptions-select"},{"id":"libtmux.SwapPaneOptions","publicId":"libtmux.SwapPaneOptions","name":"SwapPaneOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/pane.lua","line":640,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-swappaneoptions"},{"id":"libtmux.SwapPaneOptions.keep_zoom","publicId":"libtmux.SwapPaneOptions.keep_zoom","name":"keep_zoom","kind":"attribute","modifiers":[],"parent":"libtmux.SwapPaneOptions","signatures":[],"doc":{"summary":"Preserve zoom while selecting; defaults to false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":638,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.SelectPaneOptions","slug":"libtmux-swappaneoptions-keep_zoom"},{"id":"libtmux.SwapPaneOptions.process","publicId":"libtmux.SwapPaneOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SwapPaneOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/pane.lua","line":600,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.PaneOptions","slug":"libtmux-swappaneoptions-process"},{"id":"libtmux.SwapPaneOptions.select","publicId":"libtmux.SwapPaneOptions.select","name":"select","kind":"attribute","modifiers":[],"parent":"libtmux.SwapPaneOptions","signatures":[],"doc":{"summary":"Defaults to false (native -d); active selection can still change."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/pane.lua","line":641,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-swappaneoptions-select"},{"id":"libtmux.SwitchClientOptions","publicId":"libtmux.SwitchClientOptions","name":"SwitchClientOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/client.lua","line":264,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-switchclientoptions"},{"id":"libtmux.SwitchClientOptions.process","publicId":"libtmux.SwitchClientOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.SwitchClientOptions","signatures":[],"doc":{"summary":"Limits apply to each subprocess; one MiB maximum."},"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/client.lua","line":262,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.ClientOptions","slug":"libtmux-switchclientoptions-process"},{"id":"libtmux.SwitchClientOptions.update_environment","publicId":"libtmux.SwitchClientOptions.update_environment","name":"update_environment","kind":"attribute","modifiers":[],"parent":"libtmux.SwitchClientOptions","signatures":[],"doc":{"summary":"Apply the client's update-environment values; default false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/client.lua","line":265,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-switchclientoptions-update_environment"},{"id":"libtmux.TopologyOptions","publicId":"libtmux.TopologyOptions","name":"TopologyOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":676,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-topologyoptions"},{"id":"libtmux.TopologyOptions.process","publicId":"libtmux.TopologyOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.TopologyOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-topologyoptions-process"},{"id":"libtmux.UnlinkOptions","publicId":"libtmux.UnlinkOptions","name":"UnlinkOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/topology.lua","line":719,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-unlinkoptions"},{"id":"libtmux.UnlinkOptions.kill_if_last","publicId":"libtmux.UnlinkOptions.kill_if_last","name":"kill_if_last","kind":"attribute","modifiers":[],"parent":"libtmux.UnlinkOptions","signatures":[],"doc":{"summary":"Permit destruction if no links survive; defaults to false."},"product":"core","apiScope":"exported","type":"boolean?","source":{"file":"lua/libtmux/_internal/topology.lua","line":720,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-unlinkoptions-kill_if_last"},{"id":"libtmux.UnlinkOptions.process","publicId":"libtmux.UnlinkOptions.process","name":"process","kind":"attribute","modifiers":[],"parent":"libtmux.UnlinkOptions","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.CreationProcessOptions)?","source":{"file":"lua/libtmux/_internal/topology.lua","line":677,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.TopologyOptions","slug":"libtmux-unlinkoptions-process"},{"id":"libtmux.Watch","publicId":"libtmux.Watch","name":"Watch","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":411,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-watch"},{"id":"libtmux.Watch:close","publicId":"libtmux.Watch:close","name":"close","kind":"method","modifiers":[],"parent":"libtmux.Watch","signatures":[{"raw":"fun(self: libtmux.Watch):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":414,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-watch-close"},{"id":"libtmux.Watch:next","publicId":"libtmux.Watch:next","name":"next","kind":"method","modifiers":[],"parent":"libtmux.Watch","signatures":[{"raw":"fun(self: libtmux.Watch, options?: { timeout: number, deadline: number }):libtmux.Request","params":[{"name":"options","type":"{ timeout: number, deadline: number }?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":412,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-watch-next"},{"id":"libtmux.WatchOptions","publicId":"libtmux.WatchOptions","name":"WatchOptions","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/observation.lua","line":374,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-watchoptions"},{"id":"libtmux.WatchOptions.max_bytes","publicId":"libtmux.WatchOptions.max_bytes","name":"max_bytes","kind":"attribute","modifiers":[],"parent":"libtmux.WatchOptions","signatures":[],"doc":{"summary":"Retained event bytes; default 1048576."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/observation.lua","line":375,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-watchoptions-max_bytes"},{"id":"libtmux.WatchOptions.max_events","publicId":"libtmux.WatchOptions.max_events","name":"max_events","kind":"attribute","modifiers":[],"parent":"libtmux.WatchOptions","signatures":[],"doc":{"summary":"Retained events; default 1024."},"product":"core","apiScope":"exported","type":"integer?","source":{"file":"lua/libtmux/_internal/observation.lua","line":376,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-watchoptions-max_events"},{"id":"libtmux.Where","publicId":"libtmux.Where","name":"Where","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":283,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-where"},{"id":"libtmux.Where.AND","publicId":"libtmux.Where.AND","name":"AND","kind":"attribute","modifiers":[],"parent":"libtmux.Where","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Where[]?","source":{"file":"lua/libtmux/query.lua","line":284,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-where-and"},{"id":"libtmux.Where.NOT","publicId":"libtmux.Where.NOT","name":"NOT","kind":"attribute","modifiers":[],"parent":"libtmux.Where","signatures":[],"product":"core","apiScope":"exported","type":"(libtmux.Where)?","source":{"file":"lua/libtmux/query.lua","line":286,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-where-not"},{"id":"libtmux.Where.OR","publicId":"libtmux.Where.OR","name":"OR","kind":"attribute","modifiers":[],"parent":"libtmux.Where","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Where[]?","source":{"file":"lua/libtmux/query.lua","line":285,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-where-or"},{"id":"libtmux.WhereValue","publicId":"libtmux.WhereValue","name":"WhereValue","kind":"typealias","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","type":"libtmux.WhereValue","source":{"file":"lua/libtmux/query.lua","line":277,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-wherevalue"},{"id":"libtmux.Window","publicId":"libtmux.Window","name":"Window","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":445,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-window"},{"id":"libtmux.Window:get_hook","publicId":"libtmux.Window:get_hook","name":"get_hook","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":402,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-window-get_hook"},{"id":"libtmux.Window:get_option","publicId":"libtmux.Window:get_option","name":"get_option","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingGetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingGetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":391,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-window-get_option"},{"id":"libtmux.Window:kill","publicId":"libtmux.Window:kill","name":"kill","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Window, options?: libtmux.TopologyOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.TopologyOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":448,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-window-kill"},{"id":"libtmux.Window:layout","publicId":"libtmux.Window:layout","name":"layout","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Window, options: libtmux.LayoutOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.LayoutOptions"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":452,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-window-layout"},{"id":"libtmux.Window:list_hooks","publicId":"libtmux.Window:list_hooks","name":"list_hooks","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Configurable, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":404,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-window-list_hooks"},{"id":"libtmux.Window:list_options","publicId":"libtmux.Window:list_options","name":"list_options","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Configurable, options?: libtmux.SettingListOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.SettingListOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":394,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-window-list_options"},{"id":"libtmux.Window:reference","publicId":"libtmux.Window:reference","name":"reference","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Reference?, libtmux.Error?","params":[],"returns":"libtmux.Reference?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":384,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-window-reference"},{"id":"libtmux.Window:rename","publicId":"libtmux.Window:rename","name":"rename","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Window, name: string, options?: libtmux.TopologyOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.TopologyOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":446,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-window-rename"},{"id":"libtmux.Window:resize","publicId":"libtmux.Window:resize","name":"resize","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Window, options: libtmux.ResizeWindowOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.ResizeWindowOptions"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":450,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-window-resize"},{"id":"libtmux.Window:respawn","publicId":"libtmux.Window:respawn","name":"respawn","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Window, options: libtmux.RespawnWindowOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.RespawnWindowOptions"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":454,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-window-respawn"},{"id":"libtmux.Window:run_hook","publicId":"libtmux.Window:run_hook","name":"run_hook","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.RunHookOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.RunHookOptions?","default":"nil","doc":" Running a hook reads only its handle's own scope."}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":412,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-window-run_hook"},{"id":"libtmux.Window:set_hook","publicId":"libtmux.Window:set_hook","name":"set_hook","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, value: libtmux.HookProgram, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"libtmux.HookProgram"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":406,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-window-set_hook"},{"id":"libtmux.Window:set_option","publicId":"libtmux.Window:set_option","name":"set_option","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, value: boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput, options?: libtmux.SettingSetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"value","type":"boolean|string|number|libtmux.HookProgram|libtmux.OptionArrayInput"},{"name":"options","type":"libtmux.SettingSetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":396,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-window-set_option"},{"id":"libtmux.Window:snapshot","publicId":"libtmux.Window:snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":386,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-window-snapshot"},{"id":"libtmux.Window:unset_hook","publicId":"libtmux.Window:unset_hook","name":"unset_hook","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":409,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-window-unset_hook"},{"id":"libtmux.Window:unset_option","publicId":"libtmux.Window:unset_option","name":"unset_option","kind":"method","modifiers":[],"parent":"libtmux.Window","signatures":[{"raw":"fun(self: libtmux.Configurable, name: string, options?: libtmux.SettingUnsetOptions):libtmux.Request","params":[{"name":"name","type":"string"},{"name":"options","type":"libtmux.SettingUnsetOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":399,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Configurable","slug":"libtmux-window-unset_option"},{"id":"libtmux.WindowLink","publicId":"libtmux.WindowLink","name":"WindowLink","kind":"class","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":458,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-windowlink"},{"id":"libtmux.WindowLink:link","publicId":"libtmux.WindowLink:link","name":"link","kind":"method","modifiers":[],"parent":"libtmux.WindowLink","signatures":[{"raw":"fun(self: libtmux.WindowLink, destination: libtmux.LinkDestination, options?: libtmux.LinkOptions):libtmux.Request","params":[{"name":"destination","type":"libtmux.LinkDestination"},{"name":"options","type":"libtmux.LinkOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":463,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-windowlink-link"},{"id":"libtmux.WindowLink:move","publicId":"libtmux.WindowLink:move","name":"move","kind":"method","modifiers":[],"parent":"libtmux.WindowLink","signatures":[{"raw":"fun(self: libtmux.WindowLink, destination: libtmux.LinkDestination, options?: libtmux.LinkOptions):libtmux.Request","params":[{"name":"destination","type":"libtmux.LinkDestination"},{"name":"options","type":"libtmux.LinkOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":465,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-windowlink-move"},{"id":"libtmux.WindowLink:reference","publicId":"libtmux.WindowLink:reference","name":"reference","kind":"method","modifiers":[],"parent":"libtmux.WindowLink","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Reference?, libtmux.Error?","params":[],"returns":"libtmux.Reference?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":384,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-windowlink-reference"},{"id":"libtmux.WindowLink:select","publicId":"libtmux.WindowLink:select","name":"select","kind":"method","modifiers":[],"parent":"libtmux.WindowLink","signatures":[{"raw":"fun(self: libtmux.WindowLink, options?: libtmux.TopologyOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.TopologyOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":459,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-windowlink-select"},{"id":"libtmux.WindowLink:snapshot","publicId":"libtmux.WindowLink:snapshot","name":"snapshot","kind":"method","modifiers":[],"parent":"libtmux.WindowLink","signatures":[{"raw":"fun(self: libtmux.Entity):libtmux.Request","params":[],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":386,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"inheritedFrom":"libtmux.Entity","slug":"libtmux-windowlink-snapshot"},{"id":"libtmux.WindowLink:swap","publicId":"libtmux.WindowLink:swap","name":"swap","kind":"method","modifiers":[],"parent":"libtmux.WindowLink","signatures":[{"raw":"fun(self: libtmux.WindowLink, other: libtmux.WindowLink, options?: libtmux.SwapLinkOptions):libtmux.Request","params":[{"name":"other","type":"libtmux.WindowLink","doc":" One placement of a window in a session: a window can be linked into several."},{"name":"options","type":"libtmux.SwapLinkOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":461,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-windowlink-swap"},{"id":"libtmux.WindowLink:unlink","publicId":"libtmux.WindowLink:unlink","name":"unlink","kind":"method","modifiers":[],"parent":"libtmux.WindowLink","signatures":[{"raw":"fun(self: libtmux.WindowLink, options?: libtmux.UnlinkOptions):libtmux.Request","params":[{"name":"options","type":"libtmux.UnlinkOptions?","default":"nil"}],"returns":"libtmux.Request"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/_internal/entity.lua","line":467,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-windowlink-unlink"},{"id":"libtmux.query","publicId":"libtmux.query","name":"query","kind":"module","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":3,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query"},{"id":"libtmux.query.NULL","publicId":"libtmux.query.NULL","name":"NULL","kind":"attribute","modifiers":[],"parent":"libtmux.query","signatures":[],"product":"core","apiScope":"exported","type":"libtmux.Null","source":{"file":"lua/libtmux/query.lua","line":7,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-null"},{"id":"libtmux.query.compile","publicId":"libtmux.query.compile","name":"compile","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"schema","type":"unknown","doc":"Expected libtmux.QuerySchema data."},{"name":"criteria","type":"unknown","doc":"Expected libtmux.Where data."}],"returns":"libtmux.CompiledQuery?, libtmux.QueryError?"}],"doc":{"summary":"Validate and copy untrusted data; errors are returned rather than raised."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":34,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-compile"},{"id":"libtmux.query.count","publicId":"libtmux.query.count","name":"count","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"libtmux.Selection
|table[]"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences."}],"returns":"integer"}],"doc":{"summary":"@*param* `schema` — Required for ordinary sequences."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":183,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-count"},{"id":"libtmux.query.decode_json","publicId":"libtmux.query.decode_json","name":"decode_json","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"schema","type":"libtmux.QuerySchema"},{"name":"text","type":"string"},{"name":"codec","type":"table","doc":"A trusted lunajson-compatible encoder and SAX parser."}],"returns":"libtmux.Where?, libtmux.QueryError?"}],"doc":{"summary":"Decode and validate a complete JSON query; never evaluate received code."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":25,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-decode_json"},{"id":"libtmux.query.encode_json","publicId":"libtmux.query.encode_json","name":"encode_json","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"schema","type":"libtmux.QuerySchema"},{"name":"criteria","type":"libtmux.Where"},{"name":"codec","type":"table","doc":"A trusted lunajson-compatible encoder and SAX parser."}],"returns":"string?, libtmux.QueryError?"}],"doc":{"summary":"Encode this Lua API's versioned JSON profile using an explicit consumer codec."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":15,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-encode_json"},{"id":"libtmux.query.exists","publicId":"libtmux.query.exists","name":"exists","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"libtmux.Selection
|table[]"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences."}],"returns":"boolean"}],"doc":{"summary":"@*param* `schema` — Required for ordinary sequences."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":176,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-exists"},{"id":"libtmux.query.filter","publicId":"libtmux.query.filter","name":"filter","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"[]|libtmux.Selection"},{"name":"predicate","type":"fun(row: , index: integer):unknown"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences."}],"returns":"libtmux.Selection"}],"doc":{"summary":"Run a trusted local predicate; predicate errors propagate unchanged."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":85,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-filter"},{"id":"libtmux.query.first","publicId":"libtmux.query.first","name":"first","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"[]|libtmux.Selection"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences."}],"returns":"?"}],"doc":{"summary":"@*param* `schema` — Required for ordinary sequences."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":136,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-first"},{"id":"libtmux.query.iter","publicId":"libtmux.query.iter","name":"iter","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"[]|libtmux.Selection"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences."}],"returns":"fun():?"}],"doc":{"summary":"@*param* `schema` — Required for ordinary sequences."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":192,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-iter"},{"id":"libtmux.query.one","publicId":"libtmux.query.one","name":"one","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"[]|libtmux.Selection"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences."}],"returns":"?, libtmux.QueryError?"}],"doc":{"summary":"@*param* `schema` — Required for ordinary sequences."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":162,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-one"},{"id":"libtmux.query.one_or_nil","publicId":"libtmux.query.one_or_nil","name":"one_or_nil","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"[]|libtmux.Selection"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences."}],"returns":"?, libtmux.QueryError?"}],"doc":{"summary":"@*param* `schema` — Required for ordinary sequences."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":170,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-one_or_nil"},{"id":"libtmux.query.select","publicId":"libtmux.query.select","name":"select","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"[]|libtmux.Selection"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences."}],"returns":"libtmux.Selection"}],"doc":{"summary":"@*param* `schema` — Required for ordinary sequences."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":69,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-select"},{"id":"libtmux.query.to_table","publicId":"libtmux.query.to_table","name":"to_table","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"[]|libtmux.Selection"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences."}],"returns":"[]"}],"doc":{"summary":"@*param* `schema` — Required for ordinary sequences."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":207,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-to_table"},{"id":"libtmux.query.where","publicId":"libtmux.query.where","name":"where","kind":"function","modifiers":[],"parent":"libtmux.query","signatures":[{"raw":"function","params":[{"name":"rows","type":"[]|libtmux.Selection"},{"name":"criteria","type":"libtmux.CompiledQuery|libtmux.Where"},{"name":"schema","type":"libtmux.QuerySchema?","default":"nil","doc":"Required for ordinary sequences with uncompiled criteria."}],"returns":"libtmux.Selection"}],"doc":{"summary":"Validate the entire grammar and required data before selecting records."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/query.lua","line":106,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-query-where"},{"id":"libtmux.runtime.luv","publicId":"libtmux.runtime.luv","name":"luv","kind":"module","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/runtime/luv.lua","line":3,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime-luv"},{"id":"libtmux.runtime.luv.run","publicId":"libtmux.runtime.luv.run","name":"run","kind":"function","modifiers":[],"parent":"libtmux.runtime.luv","signatures":[{"raw":"function","params":[{"name":"fn","type":"fun(runtime: libtmux.Runtime):?, libtmux.Error?","default":"nil"},{"name":"options","type":"libtmux.RuntimeOptions?","default":"nil"}],"returns":"?, libtmux.Error?"}],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/runtime/luv.lua","line":115,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime-luv-run"},{"id":"libtmux.runtime.nvim","publicId":"libtmux.runtime.nvim","name":"nvim","kind":"module","modifiers":[],"signatures":[],"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/runtime/nvim.lua","line":4,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime-nvim"},{"id":"libtmux.runtime.nvim.start","publicId":"libtmux.runtime.nvim.start","name":"start","kind":"function","modifiers":[],"parent":"libtmux.runtime.nvim","signatures":[{"raw":"fun(fn: fun(runtime: libtmux.Runtime):?, libtmux.Error?, on_done: fun(value?: , err?: libtmux.Error), options?: libtmux.RuntimeOptions):libtmux.Runtime?, libtmux.Error|libtmux.Request","params":[{"name":"fn","type":"fun(runtime: libtmux.Runtime):?, libtmux.Error?","default":"nil"},{"name":"on_done","type":"fun(value?: , err?: libtmux.Error)"},{"name":"options","type":"libtmux.RuntimeOptions"}],"returns":"table|nil, table|unknown"}],"doc":{"summary":"Inline generics preserve the body callback's contextual type in LuaLS."},"product":"core","apiScope":"exported","source":{"file":"lua/libtmux/runtime/nvim.lua","line":12,"repo":"libtmux/libtmux-lua","revision":"0395620d362ef75c74cd488f9577afda68922586","extractedRevision":"0395620d362ef75c74cd488f9577afda68922586"},"slug":"libtmux-runtime-nvim-start"}]} diff --git a/site/src/data/api/py.json b/site/src/data/api/py.json index 868177cc6..9c4437df9 100644 --- a/site/src/data/api/py.json +++ b/site/src/data/api/py.json @@ -1 +1 @@ -{"port":"py","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractor":"@libtmux/api-model@0.0.1","symbols":[{"id":"libtmux.__all__","name":"__all__","kind":"constant","modifiers":[],"signatures":[],"value":"(\n \"Client\",\n \"Pane\",\n \"Server\",\n \"Session\",\n \"Window\",\n \"__author__\",\n \"__copyright__\",\n \"__description__\",\n \"__email__\",\n \"__license__\",\n \"__package_name__\",\n \"__title__\",\n \"__version__\",\n)","source":{"file":"src/libtmux/__init__.py","line":25,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.__all__","product":"core","slug":"libtmux-__all__"},{"id":"libtmux.__about__.__title__","name":"__title__","kind":"constant","modifiers":[],"signatures":[],"value":"\"libtmux\"","source":{"file":"src/libtmux/__about__.py","line":5,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.__title__","product":"core","slug":"libtmux-__title__"},{"id":"libtmux.__about__.__package_name__","name":"__package_name__","kind":"constant","modifiers":[],"signatures":[],"value":"\"libtmux\"","source":{"file":"src/libtmux/__about__.py","line":6,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.__package_name__","product":"core","slug":"libtmux-__package_name__"},{"id":"libtmux.__about__.__version__","name":"__version__","kind":"constant","modifiers":[],"signatures":[],"value":"\"0.62.0\"","source":{"file":"src/libtmux/__about__.py","line":7,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.__version__","product":"core","slug":"libtmux-__version__"},{"id":"libtmux.__about__.__description__","name":"__description__","kind":"constant","modifiers":[],"signatures":[],"value":"\"Typed scripting library / ORM / API wrapper for tmux\"","source":{"file":"src/libtmux/__about__.py","line":8,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.__description__","product":"core","slug":"libtmux-__description__"},{"id":"libtmux.__about__.__email__","name":"__email__","kind":"constant","modifiers":[],"signatures":[],"value":"\"tony@git-pull.com\"","source":{"file":"src/libtmux/__about__.py","line":9,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.__email__","product":"core","slug":"libtmux-__email__"},{"id":"libtmux.__about__.__author__","name":"__author__","kind":"constant","modifiers":[],"signatures":[],"value":"\"Tony Narlock\"","source":{"file":"src/libtmux/__about__.py","line":10,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.__author__","product":"core","slug":"libtmux-__author__"},{"id":"libtmux.__about__.__github__","name":"__github__","kind":"constant","modifiers":[],"signatures":[],"value":"\"https://github.com/tmux-python/libtmux\"","source":{"file":"src/libtmux/__about__.py","line":11,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.__about__.__github__","product":"core","slug":"libtmux-__about__-__github__"},{"id":"libtmux.__about__.__docs__","name":"__docs__","kind":"constant","modifiers":[],"signatures":[],"value":"\"https://libtmux.git-pull.com\"","source":{"file":"src/libtmux/__about__.py","line":12,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.__about__.__docs__","product":"core","slug":"libtmux-__about__-__docs__"},{"id":"libtmux.__about__.__tracker__","name":"__tracker__","kind":"constant","modifiers":[],"signatures":[],"value":"\"https://github.com/tmux-python/libtmux/issues\"","source":{"file":"src/libtmux/__about__.py","line":13,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.__about__.__tracker__","product":"core","slug":"libtmux-__about__-__tracker__"},{"id":"libtmux.__about__.__pypi__","name":"__pypi__","kind":"constant","modifiers":[],"signatures":[],"value":"\"https://pypi.org/project/libtmux/\"","source":{"file":"src/libtmux/__about__.py","line":14,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.__about__.__pypi__","product":"core","slug":"libtmux-__about__-__pypi__"},{"id":"libtmux.__about__.__license__","name":"__license__","kind":"constant","modifiers":[],"signatures":[],"value":"\"MIT\"","source":{"file":"src/libtmux/__about__.py","line":15,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.__license__","product":"core","slug":"libtmux-__license__"},{"id":"libtmux.__about__.__copyright__","name":"__copyright__","kind":"constant","modifiers":[],"signatures":[],"value":"\"Copyright 2016- Tony Narlock\"","source":{"file":"src/libtmux/__about__.py","line":16,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.__copyright__","product":"core","slug":"libtmux-__copyright__"},{"id":"libtmux._internal.constants.T","name":"T","kind":"constant","modifiers":[],"signatures":[],"value":"t.TypeVar(\"T\")","source":{"file":"src/libtmux/_internal/constants.py","line":16,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.T","product":"core","slug":"libtmux-_internal-constants-t"},{"id":"libtmux._internal.constants.TerminalFeatures","name":"TerminalFeatures","kind":"constant","modifiers":[],"signatures":[],"value":"dict[str, list[str]]","source":{"file":"src/libtmux/_internal/constants.py","line":18,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.TerminalFeatures","product":"core","slug":"libtmux-_internal-constants-terminalfeatures"},{"id":"libtmux._internal.constants.HookArray","name":"HookArray","kind":"constant","modifiers":[],"signatures":[],"type":"TypeAlias","value":"\"dict[str, SparseArray[str]]\"","source":{"file":"src/libtmux/_internal/constants.py","line":19,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.HookArray","product":"core","slug":"libtmux-_internal-constants-hookarray"},{"id":"libtmux._internal.constants.ServerOptions","name":"ServerOptions","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Container for tmux server options.","body":"Each field carries the value of the tmux server option named the same with\nhyphens in place of underscores. A field keeps its default — ``None``, or an\nempty container for the array options — when tmux reports no value for it.","seeAlso":[]},"extends":["SkipDefaultFieldsReprMixin"],"source":{"file":"src/libtmux/_internal/constants.py","line":23,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions","product":"core","slug":"libtmux-_internal-constants-serveroptions"},{"id":"libtmux._internal.constants.ServerOptions.backspace","name":"backspace","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":87,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.backspace","product":"core","slug":"libtmux-_internal-constants-serveroptions-backspace"},{"id":"libtmux._internal.constants.ServerOptions.buffer_limit","name":"buffer_limit","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"int | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":88,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.buffer_limit","product":"core","slug":"libtmux-_internal-constants-serveroptions-buffer_limit"},{"id":"libtmux._internal.constants.ServerOptions.command_alias","name":"command_alias","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":89,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.command_alias","product":"core","slug":"libtmux-_internal-constants-serveroptions-command_alias"},{"id":"libtmux._internal.constants.ServerOptions.default_terminal","name":"default_terminal","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":90,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.default_terminal","product":"core","slug":"libtmux-_internal-constants-serveroptions-default_terminal"},{"id":"libtmux._internal.constants.ServerOptions.copy_command","name":"copy_command","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":91,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.copy_command","product":"core","slug":"libtmux-_internal-constants-serveroptions-copy_command"},{"id":"libtmux._internal.constants.ServerOptions.escape_time","name":"escape_time","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"int | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":92,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.escape_time","product":"core","slug":"libtmux-_internal-constants-serveroptions-escape_time"},{"id":"libtmux._internal.constants.ServerOptions.editor","name":"editor","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":93,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.editor","product":"core","slug":"libtmux-_internal-constants-serveroptions-editor"},{"id":"libtmux._internal.constants.ServerOptions.exit_empty","name":"exit_empty","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"t.Literal[\"on\", \"off\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":94,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.exit_empty","product":"core","slug":"libtmux-_internal-constants-serveroptions-exit_empty"},{"id":"libtmux._internal.constants.ServerOptions.exit_unattached","name":"exit_unattached","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"t.Literal[\"on\", \"off\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":95,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.exit_unattached","product":"core","slug":"libtmux-_internal-constants-serveroptions-exit_unattached"},{"id":"libtmux._internal.constants.ServerOptions.extended_keys","name":"extended_keys","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"t.Literal[\"on\", \"off\", \"always\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":96,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.extended_keys","product":"core","slug":"libtmux-_internal-constants-serveroptions-extended_keys"},{"id":"libtmux._internal.constants.ServerOptions.focus_events","name":"focus_events","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"t.Literal[\"on\", \"off\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":97,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.focus_events","product":"core","slug":"libtmux-_internal-constants-serveroptions-focus_events"},{"id":"libtmux._internal.constants.ServerOptions.history_file","name":"history_file","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":98,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.history_file","product":"core","slug":"libtmux-_internal-constants-serveroptions-history_file"},{"id":"libtmux._internal.constants.ServerOptions.message_limit","name":"message_limit","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"int | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":99,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.message_limit","product":"core","slug":"libtmux-_internal-constants-serveroptions-message_limit"},{"id":"libtmux._internal.constants.ServerOptions.prompt_history_limit","name":"prompt_history_limit","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"int | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":100,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.prompt_history_limit","product":"core","slug":"libtmux-_internal-constants-serveroptions-prompt_history_limit"},{"id":"libtmux._internal.constants.ServerOptions.set_clipboard","name":"set_clipboard","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"t.Literal[\"on\", \"external\", \"off\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":101,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.set_clipboard","product":"core","slug":"libtmux-_internal-constants-serveroptions-set_clipboard"},{"id":"libtmux._internal.constants.ServerOptions.terminal_features","name":"terminal_features","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"TerminalFeatures","value":"field(default_factory=dict)","source":{"file":"src/libtmux/_internal/constants.py","line":102,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.terminal_features","product":"core","slug":"libtmux-_internal-constants-serveroptions-terminal_features"},{"id":"libtmux._internal.constants.ServerOptions.terminal_overrides","name":"terminal_overrides","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":103,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.terminal_overrides","product":"core","slug":"libtmux-_internal-constants-serveroptions-terminal_overrides"},{"id":"libtmux._internal.constants.ServerOptions.user_keys","name":"user_keys","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":104,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.user_keys","product":"core","slug":"libtmux-_internal-constants-serveroptions-user_keys"},{"id":"libtmux._internal.constants.ServerOptions.default_client_command","name":"default_client_command","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":106,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.default_client_command","product":"core","slug":"libtmux-_internal-constants-serveroptions-default_client_command"},{"id":"libtmux._internal.constants.ServerOptions.extended_keys_format","name":"extended_keys_format","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"t.Literal[\"csi-u\", \"xterm\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":107,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.extended_keys_format","product":"core","slug":"libtmux-_internal-constants-serveroptions-extended_keys_format"},{"id":"libtmux._internal.constants.ServerOptions.get_clipboard","name":"get_clipboard","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[],"type":"t.Literal[\"off\", \"buffer\", \"request\", \"both\"] | None","value":"field(\n default=None,\n )","source":{"file":"src/libtmux/_internal/constants.py","line":109,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.get_clipboard","product":"core","slug":"libtmux-_internal-constants-serveroptions-get_clipboard"},{"id":"libtmux._internal.constants.ServerOptions.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux._internal.constants.ServerOptions","signatures":[{"params":[{"name":"self"},{"name":"kwargs","type":"object"}],"returns":"None"}],"source":{"file":"src/libtmux/_internal/constants.py","line":113,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.ServerOptions.__init__","product":"core","slug":"libtmux-_internal-constants-serveroptions-__init__"},{"id":"libtmux._internal.constants.SessionOptions","name":"SessionOptions","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Container for tmux session options.","body":"Each field carries the value of the tmux session option named the same with\nhyphens in place of underscores. A field keeps its default — ``None``, or an\nempty container for the array options — when tmux reports no value for it.","seeAlso":[]},"extends":["SkipDefaultFieldsReprMixin"],"source":{"file":"src/libtmux/_internal/constants.py","line":121,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions","product":"core","slug":"libtmux-_internal-constants-sessionoptions"},{"id":"libtmux._internal.constants.SessionOptions.activity_action","name":"activity_action","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"t.Literal[\"any\", \"none\", \"current\", \"other\"] | None","value":"field(\n default=None,\n )","source":{"file":"src/libtmux/_internal/constants.py","line":246,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.activity_action","product":"core","slug":"libtmux-_internal-constants-sessionoptions-activity_action"},{"id":"libtmux._internal.constants.SessionOptions.assume_paste_time","name":"assume_paste_time","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"int | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":249,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.assume_paste_time","product":"core","slug":"libtmux-_internal-constants-sessionoptions-assume_paste_time"},{"id":"libtmux._internal.constants.SessionOptions.base_index","name":"base_index","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"int | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":250,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.base_index","product":"core","slug":"libtmux-_internal-constants-sessionoptions-base_index"},{"id":"libtmux._internal.constants.SessionOptions.bell_action","name":"bell_action","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"t.Literal[\"any\", \"none\", \"current\", \"other\"] | None","value":"field(\n default=None,\n )","source":{"file":"src/libtmux/_internal/constants.py","line":251,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.bell_action","product":"core","slug":"libtmux-_internal-constants-sessionoptions-bell_action"},{"id":"libtmux._internal.constants.SessionOptions.default_command","name":"default_command","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":254,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.default_command","product":"core","slug":"libtmux-_internal-constants-sessionoptions-default_command"},{"id":"libtmux._internal.constants.SessionOptions.default_shell","name":"default_shell","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":255,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.default_shell","product":"core","slug":"libtmux-_internal-constants-sessionoptions-default_shell"},{"id":"libtmux._internal.constants.SessionOptions.default_size","name":"default_size","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":256,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.default_size","product":"core","slug":"libtmux-_internal-constants-sessionoptions-default_size"},{"id":"libtmux._internal.constants.SessionOptions.destroy_unattached","name":"destroy_unattached","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"t.Literal[\"on\", \"off\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":257,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.destroy_unattached","product":"core","slug":"libtmux-_internal-constants-sessionoptions-destroy_unattached"},{"id":"libtmux._internal.constants.SessionOptions.detach_on_destroy","name":"detach_on_destroy","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"( t.Literal[\"off\", \"on\", \"no-detached\", \"previous\", \"next\"] | None )","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":258,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.detach_on_destroy","product":"core","slug":"libtmux-_internal-constants-sessionoptions-detach_on_destroy"},{"id":"libtmux._internal.constants.SessionOptions.display_panes_active_colour","name":"display_panes_active_colour","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":261,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.display_panes_active_colour","product":"core","slug":"libtmux-_internal-constants-sessionoptions-display_panes_active_colour"},{"id":"libtmux._internal.constants.SessionOptions.display_panes_colour","name":"display_panes_colour","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":262,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.display_panes_colour","product":"core","slug":"libtmux-_internal-constants-sessionoptions-display_panes_colour"},{"id":"libtmux._internal.constants.SessionOptions.display_panes_time","name":"display_panes_time","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"int | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":263,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.display_panes_time","product":"core","slug":"libtmux-_internal-constants-sessionoptions-display_panes_time"},{"id":"libtmux._internal.constants.SessionOptions.display_time","name":"display_time","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"int | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":264,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.display_time","product":"core","slug":"libtmux-_internal-constants-sessionoptions-display_time"},{"id":"libtmux._internal.constants.SessionOptions.history_limit","name":"history_limit","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"int | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":265,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.history_limit","product":"core","slug":"libtmux-_internal-constants-sessionoptions-history_limit"},{"id":"libtmux._internal.constants.SessionOptions.key_table","name":"key_table","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":266,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.key_table","product":"core","slug":"libtmux-_internal-constants-sessionoptions-key_table"},{"id":"libtmux._internal.constants.SessionOptions.lock_after_time","name":"lock_after_time","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"int | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":267,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.lock_after_time","product":"core","slug":"libtmux-_internal-constants-sessionoptions-lock_after_time"},{"id":"libtmux._internal.constants.SessionOptions.lock_command","name":"lock_command","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":268,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.lock_command","product":"core","slug":"libtmux-_internal-constants-sessionoptions-lock_command"},{"id":"libtmux._internal.constants.SessionOptions.menu_style","name":"menu_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":269,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.menu_style","product":"core","slug":"libtmux-_internal-constants-sessionoptions-menu_style"},{"id":"libtmux._internal.constants.SessionOptions.menu_selected_style","name":"menu_selected_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":270,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.menu_selected_style","product":"core","slug":"libtmux-_internal-constants-sessionoptions-menu_selected_style"},{"id":"libtmux._internal.constants.SessionOptions.menu_border_style","name":"menu_border_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":271,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.menu_border_style","product":"core","slug":"libtmux-_internal-constants-sessionoptions-menu_border_style"},{"id":"libtmux._internal.constants.SessionOptions.menu_border_lines","name":"menu_border_lines","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"( t.Literal[\"single\", \"rounded\", \"double\", \"heavy\", \"simple\", \"padded\", \"none\"] | None )","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":272,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.menu_border_lines","product":"core","slug":"libtmux-_internal-constants-sessionoptions-menu_border_lines"},{"id":"libtmux._internal.constants.SessionOptions.message_command_style","name":"message_command_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":276,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.message_command_style","product":"core","slug":"libtmux-_internal-constants-sessionoptions-message_command_style"},{"id":"libtmux._internal.constants.SessionOptions.message_line","name":"message_line","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"int | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":277,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.message_line","product":"core","slug":"libtmux-_internal-constants-sessionoptions-message_line"},{"id":"libtmux._internal.constants.SessionOptions.message_style","name":"message_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":278,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.message_style","product":"core","slug":"libtmux-_internal-constants-sessionoptions-message_style"},{"id":"libtmux._internal.constants.SessionOptions.mouse","name":"mouse","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"t.Literal[\"on\", \"off\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":279,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.mouse","product":"core","slug":"libtmux-_internal-constants-sessionoptions-mouse"},{"id":"libtmux._internal.constants.SessionOptions.prefix","name":"prefix","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":280,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.prefix","product":"core","slug":"libtmux-_internal-constants-sessionoptions-prefix"},{"id":"libtmux._internal.constants.SessionOptions.prefix2","name":"prefix2","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":281,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.prefix2","product":"core","slug":"libtmux-_internal-constants-sessionoptions-prefix2"},{"id":"libtmux._internal.constants.SessionOptions.renumber_windows","name":"renumber_windows","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"t.Literal[\"on\", \"off\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":282,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.renumber_windows","product":"core","slug":"libtmux-_internal-constants-sessionoptions-renumber_windows"},{"id":"libtmux._internal.constants.SessionOptions.repeat_time","name":"repeat_time","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"int | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":283,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.repeat_time","product":"core","slug":"libtmux-_internal-constants-sessionoptions-repeat_time"},{"id":"libtmux._internal.constants.SessionOptions.set_titles","name":"set_titles","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"t.Literal[\"on\", \"off\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":284,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.set_titles","product":"core","slug":"libtmux-_internal-constants-sessionoptions-set_titles"},{"id":"libtmux._internal.constants.SessionOptions.set_titles_string","name":"set_titles_string","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":285,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.set_titles_string","product":"core","slug":"libtmux-_internal-constants-sessionoptions-set_titles_string"},{"id":"libtmux._internal.constants.SessionOptions.silence_action","name":"silence_action","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"t.Literal[\"any\", \"none\", \"current\", \"other\"] | None","value":"field(\n default=None,\n )","source":{"file":"src/libtmux/_internal/constants.py","line":286,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.silence_action","product":"core","slug":"libtmux-_internal-constants-sessionoptions-silence_action"},{"id":"libtmux._internal.constants.SessionOptions.status","name":"status","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"t.Literal[\"off\", \"on\"] | int | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":289,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.status","product":"core","slug":"libtmux-_internal-constants-sessionoptions-status"},{"id":"libtmux._internal.constants.SessionOptions.status_format","name":"status_format","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"list[str] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":290,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.status_format","product":"core","slug":"libtmux-_internal-constants-sessionoptions-status_format"},{"id":"libtmux._internal.constants.SessionOptions.status_interval","name":"status_interval","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"int | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":291,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.status_interval","product":"core","slug":"libtmux-_internal-constants-sessionoptions-status_interval"},{"id":"libtmux._internal.constants.SessionOptions.status_justify","name":"status_justify","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"t.Literal[\"left\", \"centre\", \"right\", \"absolute-centre\"] | None","value":"(\n field(default=None)\n )","source":{"file":"src/libtmux/_internal/constants.py","line":292,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.status_justify","product":"core","slug":"libtmux-_internal-constants-sessionoptions-status_justify"},{"id":"libtmux._internal.constants.SessionOptions.status_keys","name":"status_keys","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"t.Literal[\"vi\", \"emacs\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":295,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.status_keys","product":"core","slug":"libtmux-_internal-constants-sessionoptions-status_keys"},{"id":"libtmux._internal.constants.SessionOptions.status_left","name":"status_left","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":296,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.status_left","product":"core","slug":"libtmux-_internal-constants-sessionoptions-status_left"},{"id":"libtmux._internal.constants.SessionOptions.status_left_length","name":"status_left_length","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"int | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":297,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.status_left_length","product":"core","slug":"libtmux-_internal-constants-sessionoptions-status_left_length"},{"id":"libtmux._internal.constants.SessionOptions.status_left_style","name":"status_left_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":298,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.status_left_style","product":"core","slug":"libtmux-_internal-constants-sessionoptions-status_left_style"},{"id":"libtmux._internal.constants.SessionOptions.status_position","name":"status_position","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"t.Literal[\"top\", \"bottom\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":299,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.status_position","product":"core","slug":"libtmux-_internal-constants-sessionoptions-status_position"},{"id":"libtmux._internal.constants.SessionOptions.status_right","name":"status_right","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":300,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.status_right","product":"core","slug":"libtmux-_internal-constants-sessionoptions-status_right"},{"id":"libtmux._internal.constants.SessionOptions.status_right_length","name":"status_right_length","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"int | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":301,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.status_right_length","product":"core","slug":"libtmux-_internal-constants-sessionoptions-status_right_length"},{"id":"libtmux._internal.constants.SessionOptions.status_right_style","name":"status_right_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":302,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.status_right_style","product":"core","slug":"libtmux-_internal-constants-sessionoptions-status_right_style"},{"id":"libtmux._internal.constants.SessionOptions.status_style","name":"status_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":303,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.status_style","product":"core","slug":"libtmux-_internal-constants-sessionoptions-status_style"},{"id":"libtmux._internal.constants.SessionOptions.update_environment","name":"update_environment","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":304,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.update_environment","product":"core","slug":"libtmux-_internal-constants-sessionoptions-update_environment"},{"id":"libtmux._internal.constants.SessionOptions.visual_activity","name":"visual_activity","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"t.Literal[\"on\", \"off\", \"both\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":305,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.visual_activity","product":"core","slug":"libtmux-_internal-constants-sessionoptions-visual_activity"},{"id":"libtmux._internal.constants.SessionOptions.visual_bell","name":"visual_bell","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"t.Literal[\"on\", \"off\", \"both\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":306,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.visual_bell","product":"core","slug":"libtmux-_internal-constants-sessionoptions-visual_bell"},{"id":"libtmux._internal.constants.SessionOptions.visual_silence","name":"visual_silence","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"t.Literal[\"on\", \"off\", \"both\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":307,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.visual_silence","product":"core","slug":"libtmux-_internal-constants-sessionoptions-visual_silence"},{"id":"libtmux._internal.constants.SessionOptions.word_separators","name":"word_separators","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":308,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.word_separators","product":"core","slug":"libtmux-_internal-constants-sessionoptions-word_separators"},{"id":"libtmux._internal.constants.SessionOptions.focus_follows_mouse","name":"focus_follows_mouse","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"t.Literal[\"on\", \"off\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":310,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.focus_follows_mouse","product":"core","slug":"libtmux-_internal-constants-sessionoptions-focus_follows_mouse"},{"id":"libtmux._internal.constants.SessionOptions.message_format","name":"message_format","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":311,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.message_format","product":"core","slug":"libtmux-_internal-constants-sessionoptions-message_format"},{"id":"libtmux._internal.constants.SessionOptions.prompt_command_cursor_style","name":"prompt_command_cursor_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[],"type":"( t.Literal[ \"default\", \"blinking-block\", \"block\", \"blinking-underline\", \"underline\", \"blinking-bar\", \"bar\", ] | None )","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":312,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.prompt_command_cursor_style","product":"core","slug":"libtmux-_internal-constants-sessionoptions-prompt_command_cursor_style"},{"id":"libtmux._internal.constants.SessionOptions.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux._internal.constants.SessionOptions","signatures":[{"params":[{"name":"self"},{"name":"kwargs","type":"object"}],"returns":"None"}],"source":{"file":"src/libtmux/_internal/constants.py","line":325,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.SessionOptions.__init__","product":"core","slug":"libtmux-_internal-constants-sessionoptions-__init__"},{"id":"libtmux._internal.constants.WindowOptions","name":"WindowOptions","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Container for tmux window options.","body":"Each field carries the value of the tmux window option named the same with\nhyphens in place of underscores, and is ``None`` when tmux reports no value\nfor it.","seeAlso":[]},"extends":["SkipDefaultFieldsReprMixin"],"source":{"file":"src/libtmux/_internal/constants.py","line":333,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions","product":"core","slug":"libtmux-_internal-constants-windowoptions"},{"id":"libtmux._internal.constants.WindowOptions.aggressive_resize","name":"aggressive_resize","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"t.Literal[\"on\", \"off\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":447,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.aggressive_resize","product":"core","slug":"libtmux-_internal-constants-windowoptions-aggressive_resize"},{"id":"libtmux._internal.constants.WindowOptions.automatic_rename","name":"automatic_rename","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"t.Literal[\"on\", \"off\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":448,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.automatic_rename","product":"core","slug":"libtmux-_internal-constants-windowoptions-automatic_rename"},{"id":"libtmux._internal.constants.WindowOptions.automatic_rename_format","name":"automatic_rename_format","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":449,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.automatic_rename_format","product":"core","slug":"libtmux-_internal-constants-windowoptions-automatic_rename_format"},{"id":"libtmux._internal.constants.WindowOptions.clock_mode_colour","name":"clock_mode_colour","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":450,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.clock_mode_colour","product":"core","slug":"libtmux-_internal-constants-windowoptions-clock_mode_colour"},{"id":"libtmux._internal.constants.WindowOptions.clock_mode_style","name":"clock_mode_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"t.Literal[\"12\", \"24\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":451,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.clock_mode_style","product":"core","slug":"libtmux-_internal-constants-windowoptions-clock_mode_style"},{"id":"libtmux._internal.constants.WindowOptions.fill_character","name":"fill_character","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":452,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.fill_character","product":"core","slug":"libtmux-_internal-constants-windowoptions-fill_character"},{"id":"libtmux._internal.constants.WindowOptions.main_pane_height","name":"main_pane_height","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"int | str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":453,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.main_pane_height","product":"core","slug":"libtmux-_internal-constants-windowoptions-main_pane_height"},{"id":"libtmux._internal.constants.WindowOptions.main_pane_width","name":"main_pane_width","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"int | str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":454,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.main_pane_width","product":"core","slug":"libtmux-_internal-constants-windowoptions-main_pane_width"},{"id":"libtmux._internal.constants.WindowOptions.copy_mode_match_style","name":"copy_mode_match_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":455,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.copy_mode_match_style","product":"core","slug":"libtmux-_internal-constants-windowoptions-copy_mode_match_style"},{"id":"libtmux._internal.constants.WindowOptions.copy_mode_mark_style","name":"copy_mode_mark_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":456,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.copy_mode_mark_style","product":"core","slug":"libtmux-_internal-constants-windowoptions-copy_mode_mark_style"},{"id":"libtmux._internal.constants.WindowOptions.copy_mode_current_match_style","name":"copy_mode_current_match_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":457,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.copy_mode_current_match_style","product":"core","slug":"libtmux-_internal-constants-windowoptions-copy_mode_current_match_style"},{"id":"libtmux._internal.constants.WindowOptions.mode_keys","name":"mode_keys","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"t.Literal[\"vi\", \"emacs\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":458,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.mode_keys","product":"core","slug":"libtmux-_internal-constants-windowoptions-mode_keys"},{"id":"libtmux._internal.constants.WindowOptions.mode_style","name":"mode_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":459,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.mode_style","product":"core","slug":"libtmux-_internal-constants-windowoptions-mode_style"},{"id":"libtmux._internal.constants.WindowOptions.monitor_activity","name":"monitor_activity","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"t.Literal[\"on\", \"off\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":460,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.monitor_activity","product":"core","slug":"libtmux-_internal-constants-windowoptions-monitor_activity"},{"id":"libtmux._internal.constants.WindowOptions.monitor_bell","name":"monitor_bell","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"t.Literal[\"on\", \"off\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":461,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.monitor_bell","product":"core","slug":"libtmux-_internal-constants-windowoptions-monitor_bell"},{"id":"libtmux._internal.constants.WindowOptions.monitor_silence","name":"monitor_silence","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"int | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":462,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.monitor_silence","product":"core","slug":"libtmux-_internal-constants-windowoptions-monitor_silence"},{"id":"libtmux._internal.constants.WindowOptions.other_pane_height","name":"other_pane_height","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"int | str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":463,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.other_pane_height","product":"core","slug":"libtmux-_internal-constants-windowoptions-other_pane_height"},{"id":"libtmux._internal.constants.WindowOptions.other_pane_width","name":"other_pane_width","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"int | str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":464,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.other_pane_width","product":"core","slug":"libtmux-_internal-constants-windowoptions-other_pane_width"},{"id":"libtmux._internal.constants.WindowOptions.pane_active_border_style","name":"pane_active_border_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":465,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.pane_active_border_style","product":"core","slug":"libtmux-_internal-constants-windowoptions-pane_active_border_style"},{"id":"libtmux._internal.constants.WindowOptions.pane_base_index","name":"pane_base_index","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"int | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":466,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.pane_base_index","product":"core","slug":"libtmux-_internal-constants-windowoptions-pane_base_index"},{"id":"libtmux._internal.constants.WindowOptions.pane_border_format","name":"pane_border_format","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":467,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.pane_border_format","product":"core","slug":"libtmux-_internal-constants-windowoptions-pane_border_format"},{"id":"libtmux._internal.constants.WindowOptions.pane_border_indicators","name":"pane_border_indicators","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"t.Literal[\"off\", \"colour\", \"arrows\", \"both\"] | None","value":"field(\n default=None,\n )","source":{"file":"src/libtmux/_internal/constants.py","line":468,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.pane_border_indicators","product":"core","slug":"libtmux-_internal-constants-windowoptions-pane_border_indicators"},{"id":"libtmux._internal.constants.WindowOptions.pane_border_lines","name":"pane_border_lines","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"( t.Literal[\"single\", \"double\", \"heavy\", \"simple\", \"number\"] | None )","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":471,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.pane_border_lines","product":"core","slug":"libtmux-_internal-constants-windowoptions-pane_border_lines"},{"id":"libtmux._internal.constants.WindowOptions.pane_border_status","name":"pane_border_status","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"t.Literal[\"off\", \"top\", \"bottom\"] | None","value":"field(\n default=None,\n )","source":{"file":"src/libtmux/_internal/constants.py","line":474,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.pane_border_status","product":"core","slug":"libtmux-_internal-constants-windowoptions-pane_border_status"},{"id":"libtmux._internal.constants.WindowOptions.pane_border_style","name":"pane_border_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":477,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.pane_border_style","product":"core","slug":"libtmux-_internal-constants-windowoptions-pane_border_style"},{"id":"libtmux._internal.constants.WindowOptions.popup_style","name":"popup_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":478,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.popup_style","product":"core","slug":"libtmux-_internal-constants-windowoptions-popup_style"},{"id":"libtmux._internal.constants.WindowOptions.popup_border_style","name":"popup_border_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":479,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.popup_border_style","product":"core","slug":"libtmux-_internal-constants-windowoptions-popup_border_style"},{"id":"libtmux._internal.constants.WindowOptions.popup_border_lines","name":"popup_border_lines","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"( t.Literal[\"single\", \"rounded\", \"double\", \"heavy\", \"simple\", \"padded\", \"none\"] | None )","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":480,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.popup_border_lines","product":"core","slug":"libtmux-_internal-constants-windowoptions-popup_border_lines"},{"id":"libtmux._internal.constants.WindowOptions.window_status_activity_style","name":"window_status_activity_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":484,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.window_status_activity_style","product":"core","slug":"libtmux-_internal-constants-windowoptions-window_status_activity_style"},{"id":"libtmux._internal.constants.WindowOptions.window_status_bell_style","name":"window_status_bell_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":485,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.window_status_bell_style","product":"core","slug":"libtmux-_internal-constants-windowoptions-window_status_bell_style"},{"id":"libtmux._internal.constants.WindowOptions.window_status_current_format","name":"window_status_current_format","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":486,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.window_status_current_format","product":"core","slug":"libtmux-_internal-constants-windowoptions-window_status_current_format"},{"id":"libtmux._internal.constants.WindowOptions.window_status_current_style","name":"window_status_current_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":487,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.window_status_current_style","product":"core","slug":"libtmux-_internal-constants-windowoptions-window_status_current_style"},{"id":"libtmux._internal.constants.WindowOptions.window_status_format","name":"window_status_format","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":488,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.window_status_format","product":"core","slug":"libtmux-_internal-constants-windowoptions-window_status_format"},{"id":"libtmux._internal.constants.WindowOptions.window_status_last_style","name":"window_status_last_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":489,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.window_status_last_style","product":"core","slug":"libtmux-_internal-constants-windowoptions-window_status_last_style"},{"id":"libtmux._internal.constants.WindowOptions.window_status_separator","name":"window_status_separator","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":490,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.window_status_separator","product":"core","slug":"libtmux-_internal-constants-windowoptions-window_status_separator"},{"id":"libtmux._internal.constants.WindowOptions.window_status_style","name":"window_status_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":491,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.window_status_style","product":"core","slug":"libtmux-_internal-constants-windowoptions-window_status_style"},{"id":"libtmux._internal.constants.WindowOptions.window_size","name":"window_size","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"t.Literal[\"largest\", \"smallest\", \"manual\", \"latest\"] | None","value":"field(\n default=None,\n )","source":{"file":"src/libtmux/_internal/constants.py","line":492,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.window_size","product":"core","slug":"libtmux-_internal-constants-windowoptions-window_size"},{"id":"libtmux._internal.constants.WindowOptions.wrap_search","name":"wrap_search","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"t.Literal[\"on\", \"off\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":495,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.wrap_search","product":"core","slug":"libtmux-_internal-constants-windowoptions-wrap_search"},{"id":"libtmux._internal.constants.WindowOptions.tiled_layout_max_columns","name":"tiled_layout_max_columns","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"int | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":497,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.tiled_layout_max_columns","product":"core","slug":"libtmux-_internal-constants-windowoptions-tiled_layout_max_columns"},{"id":"libtmux._internal.constants.WindowOptions.copy_mode_line_numbers","name":"copy_mode_line_numbers","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"( t.Literal[\"off\", \"default\", \"absolute\", \"relative\", \"hybrid\"] | None )","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":499,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.copy_mode_line_numbers","product":"core","slug":"libtmux-_internal-constants-windowoptions-copy_mode_line_numbers"},{"id":"libtmux._internal.constants.WindowOptions.copy_mode_line_number_style","name":"copy_mode_line_number_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":502,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.copy_mode_line_number_style","product":"core","slug":"libtmux-_internal-constants-windowoptions-copy_mode_line_number_style"},{"id":"libtmux._internal.constants.WindowOptions.copy_mode_current_line_number_style","name":"copy_mode_current_line_number_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":503,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.copy_mode_current_line_number_style","product":"core","slug":"libtmux-_internal-constants-windowoptions-copy_mode_current_line_number_style"},{"id":"libtmux._internal.constants.WindowOptions.tree_mode_preview_format","name":"tree_mode_preview_format","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":504,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.tree_mode_preview_format","product":"core","slug":"libtmux-_internal-constants-windowoptions-tree_mode_preview_format"},{"id":"libtmux._internal.constants.WindowOptions.tree_mode_preview_style","name":"tree_mode_preview_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":505,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.tree_mode_preview_style","product":"core","slug":"libtmux-_internal-constants-windowoptions-tree_mode_preview_style"},{"id":"libtmux._internal.constants.WindowOptions.window_pane_status_format","name":"window_pane_status_format","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":506,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.window_pane_status_format","product":"core","slug":"libtmux-_internal-constants-windowoptions-window_pane_status_format"},{"id":"libtmux._internal.constants.WindowOptions.window_pane_current_status_format","name":"window_pane_current_status_format","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":507,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.window_pane_current_status_format","product":"core","slug":"libtmux-_internal-constants-windowoptions-window_pane_current_status_format"},{"id":"libtmux._internal.constants.WindowOptions.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux._internal.constants.WindowOptions","signatures":[{"params":[{"name":"self"},{"name":"kwargs","type":"object"}],"returns":"None"}],"source":{"file":"src/libtmux/_internal/constants.py","line":509,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.WindowOptions.__init__","product":"core","slug":"libtmux-_internal-constants-windowoptions-__init__"},{"id":"libtmux._internal.constants.PaneOptions","name":"PaneOptions","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Container for tmux pane options.","body":"Each field carries the value of the tmux pane option named the same with\nhyphens in place of underscores, and is ``None`` when tmux reports no value\nfor it.","seeAlso":[]},"extends":["SkipDefaultFieldsReprMixin"],"source":{"file":"src/libtmux/_internal/constants.py","line":517,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.PaneOptions","product":"core","slug":"libtmux-_internal-constants-paneoptions"},{"id":"libtmux._internal.constants.PaneOptions.allow_passthrough","name":"allow_passthrough","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.PaneOptions","signatures":[],"type":"t.Literal[\"on\", \"off\", \"all\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":571,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.PaneOptions.allow_passthrough","product":"core","slug":"libtmux-_internal-constants-paneoptions-allow_passthrough"},{"id":"libtmux._internal.constants.PaneOptions.allow_rename","name":"allow_rename","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.PaneOptions","signatures":[],"type":"t.Literal[\"on\", \"off\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":572,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.PaneOptions.allow_rename","product":"core","slug":"libtmux-_internal-constants-paneoptions-allow_rename"},{"id":"libtmux._internal.constants.PaneOptions.alternate_screen","name":"alternate_screen","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.PaneOptions","signatures":[],"type":"t.Literal[\"on\", \"off\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":573,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.PaneOptions.alternate_screen","product":"core","slug":"libtmux-_internal-constants-paneoptions-alternate_screen"},{"id":"libtmux._internal.constants.PaneOptions.cursor_colour","name":"cursor_colour","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.PaneOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":574,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.PaneOptions.cursor_colour","product":"core","slug":"libtmux-_internal-constants-paneoptions-cursor_colour"},{"id":"libtmux._internal.constants.PaneOptions.pane_colours","name":"pane_colours","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.PaneOptions","signatures":[],"type":"list[str] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":575,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.PaneOptions.pane_colours","product":"core","slug":"libtmux-_internal-constants-paneoptions-pane_colours"},{"id":"libtmux._internal.constants.PaneOptions.cursor_style","name":"cursor_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.PaneOptions","signatures":[],"type":"( t.Literal[ \"default\", \"blinking-block\", \"block\", \"blinking-underline\", \"underline\", \"blinking-bar\", \"bar\", ] | None )","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":576,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.PaneOptions.cursor_style","product":"core","slug":"libtmux-_internal-constants-paneoptions-cursor_style"},{"id":"libtmux._internal.constants.PaneOptions.remain_on_exit","name":"remain_on_exit","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.PaneOptions","signatures":[],"type":"t.Literal[\"on\", \"off\", \"failed\", \"key\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":588,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.PaneOptions.remain_on_exit","product":"core","slug":"libtmux-_internal-constants-paneoptions-remain_on_exit"},{"id":"libtmux._internal.constants.PaneOptions.remain_on_exit_format","name":"remain_on_exit_format","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.PaneOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":589,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.PaneOptions.remain_on_exit_format","product":"core","slug":"libtmux-_internal-constants-paneoptions-remain_on_exit_format"},{"id":"libtmux._internal.constants.PaneOptions.scroll_on_clear","name":"scroll_on_clear","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.PaneOptions","signatures":[],"type":"t.Literal[\"on\", \"off\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":590,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.PaneOptions.scroll_on_clear","product":"core","slug":"libtmux-_internal-constants-paneoptions-scroll_on_clear"},{"id":"libtmux._internal.constants.PaneOptions.synchronize_panes","name":"synchronize_panes","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.PaneOptions","signatures":[],"type":"t.Literal[\"on\", \"off\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":591,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.PaneOptions.synchronize_panes","product":"core","slug":"libtmux-_internal-constants-paneoptions-synchronize_panes"},{"id":"libtmux._internal.constants.PaneOptions.window_active_style","name":"window_active_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.PaneOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":592,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.PaneOptions.window_active_style","product":"core","slug":"libtmux-_internal-constants-paneoptions-window_active_style"},{"id":"libtmux._internal.constants.PaneOptions.window_style","name":"window_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.PaneOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":593,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.PaneOptions.window_style","product":"core","slug":"libtmux-_internal-constants-paneoptions-window_style"},{"id":"libtmux._internal.constants.PaneOptions.pane_scrollbars","name":"pane_scrollbars","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.PaneOptions","signatures":[],"type":"t.Literal[\"off\", \"modal\", \"on\"] | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":595,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.PaneOptions.pane_scrollbars","product":"core","slug":"libtmux-_internal-constants-paneoptions-pane_scrollbars"},{"id":"libtmux._internal.constants.PaneOptions.pane_scrollbars_style","name":"pane_scrollbars_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.PaneOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":596,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.PaneOptions.pane_scrollbars_style","product":"core","slug":"libtmux-_internal-constants-paneoptions-pane_scrollbars_style"},{"id":"libtmux._internal.constants.PaneOptions.tree_mode_preview_format","name":"tree_mode_preview_format","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.PaneOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":600,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.PaneOptions.tree_mode_preview_format","product":"core","slug":"libtmux-_internal-constants-paneoptions-tree_mode_preview_format"},{"id":"libtmux._internal.constants.PaneOptions.pane_active_border_style","name":"pane_active_border_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.PaneOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":603,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.PaneOptions.pane_active_border_style","product":"core","slug":"libtmux-_internal-constants-paneoptions-pane_active_border_style"},{"id":"libtmux._internal.constants.PaneOptions.pane_border_style","name":"pane_border_style","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.PaneOptions","signatures":[],"type":"str | None","value":"field(default=None)","source":{"file":"src/libtmux/_internal/constants.py","line":604,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.PaneOptions.pane_border_style","product":"core","slug":"libtmux-_internal-constants-paneoptions-pane_border_style"},{"id":"libtmux._internal.constants.PaneOptions.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux._internal.constants.PaneOptions","signatures":[{"params":[{"name":"self"},{"name":"kwargs","type":"object"}],"returns":"None"}],"source":{"file":"src/libtmux/_internal/constants.py","line":606,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.PaneOptions.__init__","product":"core","slug":"libtmux-_internal-constants-paneoptions-__init__"},{"id":"libtmux._internal.constants.Options","name":"Options","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Container for all tmux options (server, session, window, and pane).","seeAlso":[]},"extends":["ServerOptions","SessionOptions","WindowOptions","PaneOptions","SkipDefaultFieldsReprMixin"],"source":{"file":"src/libtmux/_internal/constants.py","line":614,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Options","product":"core","slug":"libtmux-_internal-constants-options"},{"id":"libtmux._internal.constants.Options.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux._internal.constants.Options","signatures":[{"params":[{"name":"self"},{"name":"kwargs","type":"object"}],"returns":"None"}],"source":{"file":"src/libtmux/_internal/constants.py","line":623,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Options.__init__","product":"core","slug":"libtmux-_internal-constants-options-__init__"},{"id":"libtmux._internal.constants.Hooks","name":"Hooks","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"tmux hooks data structure.","body":"Parses tmux hook output into typed :class:`SparseArray` fields, preserving\narray indices for hooks that can have multiple commands at different indices.\nA field holds an empty :class:`SparseArray` when tmux reports no commands\nfor that hook.","examples":[{"lang":"python","code":">>> from libtmux._internal.constants import Hooks","intro":"Parse raw tmux hook output:"},{"lang":"python","code":">>> raw = [\n... \"session-renamed[0] set-option -g status-left-style bg=red\",\n... \"session-renamed[1] display-message 'session renamed'\",\n... ]\n>>> hooks = Hooks.from_stdout(raw)"},{"lang":"python","code":">>> hooks.session_renamed[0]\n'set-option -g status-left-style bg=red'\n>>> hooks.session_renamed[1]\n\"display-message 'session renamed'\"","intro":"Access individual hook commands by index:"},{"lang":"python","code":">>> hooks.session_renamed.as_list()\n['set-option -g status-left-style bg=red', \"display-message 'session renamed'\"]","intro":"Get all commands as a list (sorted by index):"},{"lang":"python","code":">>> raw_sparse = [\n... \"pane-focus-in[0] refresh-client\",\n... \"pane-focus-in[5] display-message 'focus'\",\n... ]\n>>> hooks_sparse = Hooks.from_stdout(raw_sparse)\n>>> 0 in hooks_sparse.pane_focus_in\nTrue\n>>> 5 in hooks_sparse.pane_focus_in\nTrue\n>>> 3 in hooks_sparse.pane_focus_in\nFalse\n>>> sorted(hooks_sparse.pane_focus_in.keys())\n[0, 5]","intro":"Sparse indices are preserved (gaps in index numbers):"},{"lang":"python","code":">>> for cmd in hooks_sparse.pane_focus_in.iter_values():\n... print(cmd)\nrefresh-client\ndisplay-message 'focus'","intro":"Iterate over values in index order:"},{"lang":"python","code":">>> raw_multi = [\n... \"after-new-window[0] select-pane -t 0\",\n... \"after-new-window[1] send-keys 'clear' Enter\",\n... \"window-renamed[0] refresh-client -S\",\n... ]\n>>> hooks_multi = Hooks.from_stdout(raw_multi)\n>>> len(hooks_multi.after_new_window)\n2\n>>> len(hooks_multi.window_renamed)\n1","intro":"Multiple hook types in one parse:"}],"seeAlso":[]},"extends":["SkipDefaultFieldsReprMixin"],"source":{"file":"src/libtmux/_internal/constants.py","line":633,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks","product":"core","slug":"libtmux-_internal-constants-hooks"},{"id":"libtmux._internal.constants.Hooks.alert_activity","name":"alert_activity","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":901,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.alert_activity","product":"core","slug":"libtmux-_internal-constants-hooks-alert_activity"},{"id":"libtmux._internal.constants.Hooks.alert_bell","name":"alert_bell","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":903,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.alert_bell","product":"core","slug":"libtmux-_internal-constants-hooks-alert_bell"},{"id":"libtmux._internal.constants.Hooks.alert_silence","name":"alert_silence","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":905,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.alert_silence","product":"core","slug":"libtmux-_internal-constants-hooks-alert_silence"},{"id":"libtmux._internal.constants.Hooks.client_active","name":"client_active","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":907,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.client_active","product":"core","slug":"libtmux-_internal-constants-hooks-client_active"},{"id":"libtmux._internal.constants.Hooks.client_attached","name":"client_attached","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":909,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.client_attached","product":"core","slug":"libtmux-_internal-constants-hooks-client_attached"},{"id":"libtmux._internal.constants.Hooks.client_detached","name":"client_detached","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":911,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.client_detached","product":"core","slug":"libtmux-_internal-constants-hooks-client_detached"},{"id":"libtmux._internal.constants.Hooks.client_focus_in","name":"client_focus_in","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":913,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.client_focus_in","product":"core","slug":"libtmux-_internal-constants-hooks-client_focus_in"},{"id":"libtmux._internal.constants.Hooks.client_focus_out","name":"client_focus_out","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":915,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.client_focus_out","product":"core","slug":"libtmux-_internal-constants-hooks-client_focus_out"},{"id":"libtmux._internal.constants.Hooks.client_resized","name":"client_resized","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":917,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.client_resized","product":"core","slug":"libtmux-_internal-constants-hooks-client_resized"},{"id":"libtmux._internal.constants.Hooks.client_session_changed","name":"client_session_changed","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":919,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.client_session_changed","product":"core","slug":"libtmux-_internal-constants-hooks-client_session_changed"},{"id":"libtmux._internal.constants.Hooks.pane_died","name":"pane_died","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":922,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.pane_died","product":"core","slug":"libtmux-_internal-constants-hooks-pane_died"},{"id":"libtmux._internal.constants.Hooks.pane_exited","name":"pane_exited","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":924,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.pane_exited","product":"core","slug":"libtmux-_internal-constants-hooks-pane_exited"},{"id":"libtmux._internal.constants.Hooks.pane_focus_in","name":"pane_focus_in","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":926,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.pane_focus_in","product":"core","slug":"libtmux-_internal-constants-hooks-pane_focus_in"},{"id":"libtmux._internal.constants.Hooks.pane_focus_out","name":"pane_focus_out","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":928,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.pane_focus_out","product":"core","slug":"libtmux-_internal-constants-hooks-pane_focus_out"},{"id":"libtmux._internal.constants.Hooks.pane_set_clipboard","name":"pane_set_clipboard","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":930,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.pane_set_clipboard","product":"core","slug":"libtmux-_internal-constants-hooks-pane_set_clipboard"},{"id":"libtmux._internal.constants.Hooks.session_created","name":"session_created","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":932,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.session_created","product":"core","slug":"libtmux-_internal-constants-hooks-session_created"},{"id":"libtmux._internal.constants.Hooks.session_closed","name":"session_closed","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":934,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.session_closed","product":"core","slug":"libtmux-_internal-constants-hooks-session_closed"},{"id":"libtmux._internal.constants.Hooks.session_renamed","name":"session_renamed","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":936,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.session_renamed","product":"core","slug":"libtmux-_internal-constants-hooks-session_renamed"},{"id":"libtmux._internal.constants.Hooks.window_linked","name":"window_linked","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":938,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.window_linked","product":"core","slug":"libtmux-_internal-constants-hooks-window_linked"},{"id":"libtmux._internal.constants.Hooks.window_renamed","name":"window_renamed","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":940,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.window_renamed","product":"core","slug":"libtmux-_internal-constants-hooks-window_renamed"},{"id":"libtmux._internal.constants.Hooks.window_resized","name":"window_resized","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":942,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.window_resized","product":"core","slug":"libtmux-_internal-constants-hooks-window_resized"},{"id":"libtmux._internal.constants.Hooks.window_unlinked","name":"window_unlinked","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":944,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.window_unlinked","product":"core","slug":"libtmux-_internal-constants-hooks-window_unlinked"},{"id":"libtmux._internal.constants.Hooks.pane_title_changed","name":"pane_title_changed","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":946,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.pane_title_changed","product":"core","slug":"libtmux-_internal-constants-hooks-pane_title_changed"},{"id":"libtmux._internal.constants.Hooks.client_light_theme","name":"client_light_theme","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":948,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.client_light_theme","product":"core","slug":"libtmux-_internal-constants-hooks-client_light_theme"},{"id":"libtmux._internal.constants.Hooks.client_dark_theme","name":"client_dark_theme","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":950,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.client_dark_theme","product":"core","slug":"libtmux-_internal-constants-hooks-client_dark_theme"},{"id":"libtmux._internal.constants.Hooks.client_detached_control","name":"client_detached_control","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":954,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.client_detached_control","product":"core","slug":"libtmux-_internal-constants-hooks-client_detached_control"},{"id":"libtmux._internal.constants.Hooks.client_session_changed_control","name":"client_session_changed_control","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(\n default_factory=SparseArray,\n )","source":{"file":"src/libtmux/_internal/constants.py","line":956,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.client_session_changed_control","product":"core","slug":"libtmux-_internal-constants-hooks-client_session_changed_control"},{"id":"libtmux._internal.constants.Hooks.config_error","name":"config_error","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":960,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.config_error","product":"core","slug":"libtmux-_internal-constants-hooks-config_error"},{"id":"libtmux._internal.constants.Hooks.continue_control","name":"continue_control","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":963,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.continue_control","product":"core","slug":"libtmux-_internal-constants-hooks-continue_control"},{"id":"libtmux._internal.constants.Hooks.exit_control","name":"exit_control","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":966,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.exit_control","product":"core","slug":"libtmux-_internal-constants-hooks-exit_control"},{"id":"libtmux._internal.constants.Hooks.extended_output","name":"extended_output","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":968,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.extended_output","product":"core","slug":"libtmux-_internal-constants-hooks-extended_output"},{"id":"libtmux._internal.constants.Hooks.layout_change","name":"layout_change","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":970,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.layout_change","product":"core","slug":"libtmux-_internal-constants-hooks-layout_change"},{"id":"libtmux._internal.constants.Hooks.message_control","name":"message_control","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":972,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.message_control","product":"core","slug":"libtmux-_internal-constants-hooks-message_control"},{"id":"libtmux._internal.constants.Hooks.output","name":"output","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":974,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.output","product":"core","slug":"libtmux-_internal-constants-hooks-output"},{"id":"libtmux._internal.constants.Hooks.pane_mode_changed","name":"pane_mode_changed","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":976,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.pane_mode_changed","product":"core","slug":"libtmux-_internal-constants-hooks-pane_mode_changed"},{"id":"libtmux._internal.constants.Hooks.paste_buffer_changed","name":"paste_buffer_changed","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":978,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.paste_buffer_changed","product":"core","slug":"libtmux-_internal-constants-hooks-paste_buffer_changed"},{"id":"libtmux._internal.constants.Hooks.paste_buffer_deleted","name":"paste_buffer_deleted","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":980,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.paste_buffer_deleted","product":"core","slug":"libtmux-_internal-constants-hooks-paste_buffer_deleted"},{"id":"libtmux._internal.constants.Hooks.pause_control","name":"pause_control","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":982,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.pause_control","product":"core","slug":"libtmux-_internal-constants-hooks-pause_control"},{"id":"libtmux._internal.constants.Hooks.session_changed_control","name":"session_changed_control","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":984,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.session_changed_control","product":"core","slug":"libtmux-_internal-constants-hooks-session_changed_control"},{"id":"libtmux._internal.constants.Hooks.session_renamed_control","name":"session_renamed_control","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":986,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.session_renamed_control","product":"core","slug":"libtmux-_internal-constants-hooks-session_renamed_control"},{"id":"libtmux._internal.constants.Hooks.session_window_changed","name":"session_window_changed","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":989,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.session_window_changed","product":"core","slug":"libtmux-_internal-constants-hooks-session_window_changed"},{"id":"libtmux._internal.constants.Hooks.sessions_changed","name":"sessions_changed","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":991,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.sessions_changed","product":"core","slug":"libtmux-_internal-constants-hooks-sessions_changed"},{"id":"libtmux._internal.constants.Hooks.subscription_changed","name":"subscription_changed","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":993,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.subscription_changed","product":"core","slug":"libtmux-_internal-constants-hooks-subscription_changed"},{"id":"libtmux._internal.constants.Hooks.unlinked_window_add","name":"unlinked_window_add","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":995,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.unlinked_window_add","product":"core","slug":"libtmux-_internal-constants-hooks-unlinked_window_add"},{"id":"libtmux._internal.constants.Hooks.unlinked_window_close","name":"unlinked_window_close","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":998,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.unlinked_window_close","product":"core","slug":"libtmux-_internal-constants-hooks-unlinked_window_close"},{"id":"libtmux._internal.constants.Hooks.unlinked_window_renamed","name":"unlinked_window_renamed","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1001,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.unlinked_window_renamed","product":"core","slug":"libtmux-_internal-constants-hooks-unlinked_window_renamed"},{"id":"libtmux._internal.constants.Hooks.window_add","name":"window_add","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1003,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.window_add","product":"core","slug":"libtmux-_internal-constants-hooks-window_add"},{"id":"libtmux._internal.constants.Hooks.window_close","name":"window_close","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1005,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.window_close","product":"core","slug":"libtmux-_internal-constants-hooks-window_close"},{"id":"libtmux._internal.constants.Hooks.window_layout_changed","name":"window_layout_changed","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1009,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.window_layout_changed","product":"core","slug":"libtmux-_internal-constants-hooks-window_layout_changed"},{"id":"libtmux._internal.constants.Hooks.window_pane_changed","name":"window_pane_changed","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1012,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.window_pane_changed","product":"core","slug":"libtmux-_internal-constants-hooks-window_pane_changed"},{"id":"libtmux._internal.constants.Hooks.window_renamed_control","name":"window_renamed_control","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1014,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.window_renamed_control","product":"core","slug":"libtmux-_internal-constants-hooks-window_renamed_control"},{"id":"libtmux._internal.constants.Hooks.after_bind_key","name":"after_bind_key","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1018,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_bind_key","product":"core","slug":"libtmux-_internal-constants-hooks-after_bind_key"},{"id":"libtmux._internal.constants.Hooks.after_capture_pane","name":"after_capture_pane","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1020,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_capture_pane","product":"core","slug":"libtmux-_internal-constants-hooks-after_capture_pane"},{"id":"libtmux._internal.constants.Hooks.after_copy_mode","name":"after_copy_mode","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1022,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_copy_mode","product":"core","slug":"libtmux-_internal-constants-hooks-after_copy_mode"},{"id":"libtmux._internal.constants.Hooks.after_display_message","name":"after_display_message","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1024,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_display_message","product":"core","slug":"libtmux-_internal-constants-hooks-after_display_message"},{"id":"libtmux._internal.constants.Hooks.after_display_panes","name":"after_display_panes","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1026,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_display_panes","product":"core","slug":"libtmux-_internal-constants-hooks-after_display_panes"},{"id":"libtmux._internal.constants.Hooks.after_kill_pane","name":"after_kill_pane","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1028,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_kill_pane","product":"core","slug":"libtmux-_internal-constants-hooks-after_kill_pane"},{"id":"libtmux._internal.constants.Hooks.after_list_buffers","name":"after_list_buffers","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1030,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_list_buffers","product":"core","slug":"libtmux-_internal-constants-hooks-after_list_buffers"},{"id":"libtmux._internal.constants.Hooks.after_list_clients","name":"after_list_clients","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1032,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_list_clients","product":"core","slug":"libtmux-_internal-constants-hooks-after_list_clients"},{"id":"libtmux._internal.constants.Hooks.after_list_keys","name":"after_list_keys","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1034,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_list_keys","product":"core","slug":"libtmux-_internal-constants-hooks-after_list_keys"},{"id":"libtmux._internal.constants.Hooks.after_list_panes","name":"after_list_panes","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1036,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_list_panes","product":"core","slug":"libtmux-_internal-constants-hooks-after_list_panes"},{"id":"libtmux._internal.constants.Hooks.after_list_sessions","name":"after_list_sessions","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1038,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_list_sessions","product":"core","slug":"libtmux-_internal-constants-hooks-after_list_sessions"},{"id":"libtmux._internal.constants.Hooks.after_list_windows","name":"after_list_windows","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1040,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_list_windows","product":"core","slug":"libtmux-_internal-constants-hooks-after_list_windows"},{"id":"libtmux._internal.constants.Hooks.after_load_buffer","name":"after_load_buffer","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1042,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_load_buffer","product":"core","slug":"libtmux-_internal-constants-hooks-after_load_buffer"},{"id":"libtmux._internal.constants.Hooks.after_lock_server","name":"after_lock_server","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1044,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_lock_server","product":"core","slug":"libtmux-_internal-constants-hooks-after_lock_server"},{"id":"libtmux._internal.constants.Hooks.after_new_session","name":"after_new_session","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1046,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_new_session","product":"core","slug":"libtmux-_internal-constants-hooks-after_new_session"},{"id":"libtmux._internal.constants.Hooks.after_new_window","name":"after_new_window","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1048,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_new_window","product":"core","slug":"libtmux-_internal-constants-hooks-after_new_window"},{"id":"libtmux._internal.constants.Hooks.after_paste_buffer","name":"after_paste_buffer","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1050,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_paste_buffer","product":"core","slug":"libtmux-_internal-constants-hooks-after_paste_buffer"},{"id":"libtmux._internal.constants.Hooks.after_pipe_pane","name":"after_pipe_pane","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1052,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_pipe_pane","product":"core","slug":"libtmux-_internal-constants-hooks-after_pipe_pane"},{"id":"libtmux._internal.constants.Hooks.after_queue","name":"after_queue","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1054,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_queue","product":"core","slug":"libtmux-_internal-constants-hooks-after_queue"},{"id":"libtmux._internal.constants.Hooks.after_refresh_client","name":"after_refresh_client","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1056,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_refresh_client","product":"core","slug":"libtmux-_internal-constants-hooks-after_refresh_client"},{"id":"libtmux._internal.constants.Hooks.after_rename_session","name":"after_rename_session","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1058,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_rename_session","product":"core","slug":"libtmux-_internal-constants-hooks-after_rename_session"},{"id":"libtmux._internal.constants.Hooks.after_rename_window","name":"after_rename_window","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1060,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_rename_window","product":"core","slug":"libtmux-_internal-constants-hooks-after_rename_window"},{"id":"libtmux._internal.constants.Hooks.after_resize_pane","name":"after_resize_pane","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1062,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_resize_pane","product":"core","slug":"libtmux-_internal-constants-hooks-after_resize_pane"},{"id":"libtmux._internal.constants.Hooks.after_resize_window","name":"after_resize_window","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1064,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_resize_window","product":"core","slug":"libtmux-_internal-constants-hooks-after_resize_window"},{"id":"libtmux._internal.constants.Hooks.after_save_buffer","name":"after_save_buffer","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1066,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_save_buffer","product":"core","slug":"libtmux-_internal-constants-hooks-after_save_buffer"},{"id":"libtmux._internal.constants.Hooks.after_select_layout","name":"after_select_layout","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1068,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_select_layout","product":"core","slug":"libtmux-_internal-constants-hooks-after_select_layout"},{"id":"libtmux._internal.constants.Hooks.after_select_pane","name":"after_select_pane","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1070,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_select_pane","product":"core","slug":"libtmux-_internal-constants-hooks-after_select_pane"},{"id":"libtmux._internal.constants.Hooks.after_select_window","name":"after_select_window","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1072,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_select_window","product":"core","slug":"libtmux-_internal-constants-hooks-after_select_window"},{"id":"libtmux._internal.constants.Hooks.after_send_keys","name":"after_send_keys","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1074,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_send_keys","product":"core","slug":"libtmux-_internal-constants-hooks-after_send_keys"},{"id":"libtmux._internal.constants.Hooks.after_set_buffer","name":"after_set_buffer","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1076,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_set_buffer","product":"core","slug":"libtmux-_internal-constants-hooks-after_set_buffer"},{"id":"libtmux._internal.constants.Hooks.after_set_environment","name":"after_set_environment","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1078,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_set_environment","product":"core","slug":"libtmux-_internal-constants-hooks-after_set_environment"},{"id":"libtmux._internal.constants.Hooks.after_set_hook","name":"after_set_hook","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1080,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_set_hook","product":"core","slug":"libtmux-_internal-constants-hooks-after_set_hook"},{"id":"libtmux._internal.constants.Hooks.after_set_option","name":"after_set_option","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1082,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_set_option","product":"core","slug":"libtmux-_internal-constants-hooks-after_set_option"},{"id":"libtmux._internal.constants.Hooks.after_show_environment","name":"after_show_environment","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1084,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_show_environment","product":"core","slug":"libtmux-_internal-constants-hooks-after_show_environment"},{"id":"libtmux._internal.constants.Hooks.after_show_messages","name":"after_show_messages","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1086,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_show_messages","product":"core","slug":"libtmux-_internal-constants-hooks-after_show_messages"},{"id":"libtmux._internal.constants.Hooks.after_show_options","name":"after_show_options","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1088,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_show_options","product":"core","slug":"libtmux-_internal-constants-hooks-after_show_options"},{"id":"libtmux._internal.constants.Hooks.after_split_window","name":"after_split_window","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1090,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_split_window","product":"core","slug":"libtmux-_internal-constants-hooks-after_split_window"},{"id":"libtmux._internal.constants.Hooks.after_unbind_key","name":"after_unbind_key","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1092,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.after_unbind_key","product":"core","slug":"libtmux-_internal-constants-hooks-after_unbind_key"},{"id":"libtmux._internal.constants.Hooks.command_error","name":"command_error","kind":"attribute","modifiers":[],"parent":"libtmux._internal.constants.Hooks","signatures":[],"type":"SparseArray[str]","value":"field(default_factory=SparseArray)","source":{"file":"src/libtmux/_internal/constants.py","line":1094,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.command_error","product":"core","slug":"libtmux-_internal-constants-hooks-command_error"},{"id":"libtmux._internal.constants.Hooks.from_stdout","name":"from_stdout","kind":"method","modifiers":["classmethod"],"parent":"libtmux._internal.constants.Hooks","signatures":[{"params":[{"name":"cls"},{"name":"value","type":"list[str]","doc":"Raw tmux output lines from ``show-hooks`` command."}],"returns":"Hooks","returnsDoc":"Hooks\n Parsed hooks with SparseArray fields for each hook type."}],"doc":{"summary":"Parse raw tmux hook output into a Hooks instance.","body":"The parsing pipeline:\n\n1. ``parse_options_to_dict()`` - Parse \"key value\" lines into dict\n2. ``explode_arrays(force_array=True)`` - Extract array indices into SparseArray\n3. ``explode_complex()`` - Handle complex option types\n4. Rename keys: ``session-renamed`` → ``session_renamed``","examples":[{"lang":"python","code":">>> from libtmux._internal.constants import Hooks","intro":"Basic parsing:"},{"lang":"python","code":">>> raw = [\"session-renamed[0] display-message 'renamed'\"]\n>>> hooks = Hooks.from_stdout(raw)\n>>> hooks.session_renamed[0]\n\"display-message 'renamed'\""},{"lang":"python","code":">>> raw = [\n... \"after-select-window[0] refresh-client\",\n... \"after-select-window[10] display-message 'selected'\",\n... ]\n>>> hooks = Hooks.from_stdout(raw)\n>>> sorted(hooks.after_select_window.keys())\n[0, 10]","intro":"The pipeline preserves sparse indices:"},{"lang":"python","code":">>> hooks_empty = Hooks.from_stdout([])\n>>> len(hooks_empty.session_renamed)\n0\n>>> hooks_empty.session_renamed.as_list()\n[]","intro":"Empty input returns empty SparseArrays:"}],"seeAlso":[]},"source":{"file":"src/libtmux/_internal/constants.py","line":1097,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.constants.Hooks.from_stdout","product":"core","slug":"libtmux-_internal-constants-hooks-from_stdout"},{"id":"libtmux._internal.control_mode.ControlMode","name":"ControlMode","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Context manager that spawns a tmux control-mode client.","body":"Creates a real client attached to the session, visible in\n``Server.list_clients()``. The client communicates via the tmux\ncontrol protocol on stdout.\n\nWhile active, ``Server.list_clients()`` will include this client.","examples":[{"lang":"python","code":">>> with ControlMode(server=server, session=session) as ctl:\n... clients = server.list_clients()\n... assert len(clients) > 0\n... assert ctl.client_name != ''"}],"seeAlso":[]},"source":{"file":"src/libtmux/_internal/control_mode.py","line":25,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.control_mode.ControlMode","product":"core","slug":"libtmux-_internal-control_mode-controlmode"},{"id":"libtmux._internal.control_mode.ControlMode.server","name":"server","kind":"attribute","modifiers":[],"parent":"libtmux._internal.control_mode.ControlMode","signatures":[],"type":"Server","source":{"file":"src/libtmux/_internal/control_mode.py","line":49,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.control_mode.ControlMode.server","product":"core","slug":"libtmux-_internal-control_mode-controlmode-server"},{"id":"libtmux._internal.control_mode.ControlMode.session","name":"session","kind":"attribute","modifiers":[],"parent":"libtmux._internal.control_mode.ControlMode","signatures":[],"type":"Session","source":{"file":"src/libtmux/_internal/control_mode.py","line":50,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.control_mode.ControlMode.session","product":"core","slug":"libtmux-_internal-control_mode-controlmode-session"},{"id":"libtmux._internal.control_mode.ControlMode.client_name","name":"client_name","kind":"attribute","modifiers":[],"parent":"libtmux._internal.control_mode.ControlMode","signatures":[],"type":"str","source":{"file":"src/libtmux/_internal/control_mode.py","line":51,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.control_mode.ControlMode.client_name","product":"core","slug":"libtmux-_internal-control_mode-controlmode-client_name"},{"id":"libtmux._internal.control_mode.ControlMode.stdout","name":"stdout","kind":"attribute","modifiers":[],"parent":"libtmux._internal.control_mode.ControlMode","signatures":[],"type":"t.IO[str]","source":{"file":"src/libtmux/_internal/control_mode.py","line":52,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.control_mode.ControlMode.stdout","product":"core","slug":"libtmux-_internal-control_mode-controlmode-stdout"},{"id":"libtmux._internal.control_mode.ControlMode._proc","name":"_proc","kind":"attribute","modifiers":[],"parent":"libtmux._internal.control_mode.ControlMode","signatures":[],"type":"subprocess.Popen[str]","source":{"file":"src/libtmux/_internal/control_mode.py","line":54,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.control_mode.ControlMode._proc","product":"core","slug":"libtmux-_internal-control_mode-controlmode-_proc"},{"id":"libtmux._internal.control_mode.ControlMode._write_fd","name":"_write_fd","kind":"attribute","modifiers":[],"parent":"libtmux._internal.control_mode.ControlMode","signatures":[],"type":"int","source":{"file":"src/libtmux/_internal/control_mode.py","line":55,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.control_mode.ControlMode._write_fd","product":"core","slug":"libtmux-_internal-control_mode-controlmode-_write_fd"},{"id":"libtmux._internal.control_mode.ControlMode.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux._internal.control_mode.ControlMode","signatures":[{"params":[{"name":"self"},{"name":"server","type":"Server"},{"name":"session","type":"Session"}],"returns":"None"}],"source":{"file":"src/libtmux/_internal/control_mode.py","line":57,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.control_mode.ControlMode.__init__","product":"core","slug":"libtmux-_internal-control_mode-controlmode-__init__"},{"id":"libtmux._internal.control_mode.ControlMode.__enter__","name":"__enter__","kind":"method","modifiers":[],"parent":"libtmux._internal.control_mode.ControlMode","signatures":[{"params":[{"name":"self"}],"returns":"Self"}],"doc":{"summary":"Spawn control-mode client and wait for registration.","seeAlso":[]},"source":{"file":"src/libtmux/_internal/control_mode.py","line":61,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.control_mode.ControlMode.__enter__","product":"core","slug":"libtmux-_internal-control_mode-controlmode-__enter__"},{"id":"libtmux._internal.control_mode.ControlMode.__exit__","name":"__exit__","kind":"method","modifiers":[],"parent":"libtmux._internal.control_mode.ControlMode","signatures":[{"params":[{"name":"self"},{"name":"exc_type","type":"type[BaseException] | None"},{"name":"exc_val","type":"BaseException | None"},{"name":"exc_tb","type":"types.TracebackType | None"}],"returns":"None"}],"doc":{"summary":"Terminate control-mode client.","seeAlso":[]},"source":{"file":"src/libtmux/_internal/control_mode.py","line":131,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.control_mode.ControlMode.__exit__","product":"core","slug":"libtmux-_internal-control_mode-controlmode-__exit__"},{"id":"libtmux._internal.dataclasses.SkipDefaultFieldsReprMixin","name":"SkipDefaultFieldsReprMixin","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Skip default fields in :func:`~dataclasses.dataclass` object representation.","body":"### Notes\n\nCredit: Pietro Oldrati, 2022-05-08, Unilicense\n\nhttps://stackoverflow.com/a/72161437/1396928","examples":[{"lang":"python","code":">>> @dataclasses.dataclass()\n... class Item:\n... name: str\n... unit_price: float = 1.00\n... quantity_on_hand: int = 0\n..."},{"lang":"python","code":">>> @dataclasses.dataclass(repr=False)\n... class ItemWithMixin(SkipDefaultFieldsReprMixin):\n... name: str\n... unit_price: float = 1.00\n... quantity_on_hand: int = 0\n..."},{"lang":"python","code":">>> Item('Test')\nItem(name='Test', unit_price=1.0, quantity_on_hand=0)"},{"lang":"python","code":">>> ItemWithMixin('Test')\nItemWithMixin(name=Test)"},{"lang":"python","code":">>> Item('Test', quantity_on_hand=2)\nItem(name='Test', unit_price=1.0, quantity_on_hand=2)"},{"lang":"python","code":">>> ItemWithMixin('Test', quantity_on_hand=2)\nItemWithMixin(name=Test, quantity_on_hand=2)"},{"lang":"python","code":">>> @dataclasses.dataclass\n... class ItemWithMixin(SkipDefaultFieldsReprMixin):\n... name: str\n... unit_price: float = 1.00\n... quantity_on_hand: int = 0\n... __repr__ = SkipDefaultFieldsReprMixin.__repr__\n...","intro":"If you want to copy/paste the :meth:`~.__repr__()` directly, you can omit the ``repr=False``:"},{"lang":"python","code":">>> ItemWithMixin('Test')\nItemWithMixin(name=Test)"},{"lang":"python","code":">>> ItemWithMixin('Test', unit_price=2.00)\nItemWithMixin(name=Test, unit_price=2.0)"},{"lang":"python","code":">>> item = ItemWithMixin('Test')\n>>> item.unit_price = 2.05"},{"lang":"python","code":">>> item\nItemWithMixin(name=Test, unit_price=2.05)"}],"seeAlso":[":func:`object","representation","`"]},"source":{"file":"src/libtmux/_internal/dataclasses.py","line":18,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.dataclasses.SkipDefaultFieldsReprMixin","product":"core","slug":"libtmux-_internal-dataclasses-skipdefaultfieldsreprmixin"},{"id":"libtmux._internal.dataclasses.SkipDefaultFieldsReprMixin.__repr__","name":"__repr__","kind":"method","modifiers":[],"parent":"libtmux._internal.dataclasses.SkipDefaultFieldsReprMixin","signatures":[{"params":[{"name":"self","type":"DataclassInstance"}],"returns":"str"}],"doc":{"summary":"Omit default fields in object representation.","seeAlso":[]},"source":{"file":"src/libtmux/_internal/dataclasses.py","line":83,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.dataclasses.SkipDefaultFieldsReprMixin.__repr__","product":"core","slug":"libtmux-_internal-dataclasses-skipdefaultfieldsreprmixin-__repr__"},{"id":"libtmux._internal.env.TMUX","name":"TMUX","kind":"constant","modifiers":[],"signatures":[],"type":"t.Final","value":"\"TMUX\"","doc":{"summary":"Environment variable tmux exports with ``socket_path,server_pid,session_id``.","seeAlso":[]},"source":{"file":"src/libtmux/_internal/env.py","line":36,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.env.TMUX","product":"core","slug":"libtmux-_internal-env-tmux"},{"id":"libtmux._internal.env.TMUX_PANE","name":"TMUX_PANE","kind":"constant","modifiers":[],"signatures":[],"type":"t.Final","value":"\"TMUX_PANE\"","doc":{"summary":"Environment variable tmux exports with the pane's id, e.g. ``%3``.","seeAlso":[]},"source":{"file":"src/libtmux/_internal/env.py","line":39,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.env.TMUX_PANE","product":"core","slug":"libtmux-_internal-env-tmux_pane"},{"id":"libtmux._internal.env.resolve_env","name":"resolve_env","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"env","type":"t.Mapping[str, str] | None","default":"None","doc":"Environment to read. Defaults to :data:`os.environ`."}],"returns":"t.Mapping[str, str]","returnsDoc":":class:`typing.Mapping`\n The mapping to read tmux variables from."}],"doc":{"summary":"Return *env*, defaulting to the live process environment.","examples":[{"lang":"python","code":">>> from libtmux._internal.env import resolve_env\n>>> resolve_env({\"TMUX_PANE\": \"%1\"})\n{'TMUX_PANE': '%1'}"},{"lang":"python","code":">>> resolve_env() is os.environ\nTrue"}],"seeAlso":[]},"source":{"file":"src/libtmux/_internal/env.py","line":43,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.env.resolve_env","product":"core","slug":"libtmux-_internal-env-resolve_env"},{"id":"libtmux._internal.env.socket_path_from_env","name":"socket_path_from_env","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"env","type":"t.Mapping[str, str] | None","default":"None","doc":"Environment to read. Defaults to :data:`os.environ`."}],"returns":"str","returnsDoc":"str\n Path of the tmux server's socket.","raises":[{"type":"NotInsideTmux","doc":"When ``$TMUX`` is unset, empty, or not shaped like tmux's triple."}]}],"doc":{"summary":"Return the tmux socket path recorded in ``$TMUX``.","body":"``$TMUX`` is ``\",,\"``. The pid and\nsession id are integers, so any comma in the value belongs to the socket\npath -- split from the *right*.\n\nThe pid and session id are deliberately discarded: both are frozen at pane\nspawn, and the session id goes stale as soon as the pane's window is moved\nbetween sessions.","examples":[{"lang":"python","code":">>> from libtmux._internal.env import socket_path_from_env\n>>> socket_path_from_env({\"TMUX\": \"/tmp/tmux-1000/default,84215,0\"})\n'/tmp/tmux-1000/default'"},{"lang":"python","code":">>> socket_path_from_env({\"TMUX\": \"/tmp/od,d/sock,84215,3\"})\n'/tmp/od,d/sock'","intro":"A comma in the socket path is safe, because the split runs from the right:"},{"lang":"python","code":">>> socket_path_from_env({})\nTraceback (most recent call last):\n...\nlibtmux.exc.NotInsideTmux: Not inside a tmux pane: $TMUX is unset or empty","intro":"Outside tmux there is nothing to read:"}],"seeAlso":[]},"source":{"file":"src/libtmux/_internal/env.py","line":68,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.env.socket_path_from_env","product":"core","slug":"libtmux-_internal-env-socket_path_from_env"},{"id":"libtmux._internal.env.pane_id_from_env","name":"pane_id_from_env","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"env","type":"t.Mapping[str, str] | None","default":"None","doc":"Environment to read. Defaults to :data:`os.environ`."}],"returns":"str","returnsDoc":"str\n The pane id, e.g. ``\"%3\"``.","raises":[{"type":"NotInsideTmux","doc":"When ``$TMUX_PANE`` is unset, empty, or is not a ``%``-prefixed id."}]}],"doc":{"summary":"Return the pane id recorded in ``$TMUX_PANE``.","body":"The ``%`` sigil is load-bearing: libtmux passes this id straight to tmux as\na ``-t`` target, and tmux's ``cmd_find`` routes a target to its pane slot\n*by sigil*. A sigil-less value would be matched against session names\ninstead, silently resolving to the wrong object.","examples":[{"lang":"python","code":">>> from libtmux._internal.env import pane_id_from_env\n>>> pane_id_from_env({\"TMUX_PANE\": \"%3\"})\n'%3'"},{"lang":"python","code":">>> pane_id_from_env({})\nTraceback (most recent call last):\n...\nlibtmux.exc.NotInsideTmux: Not inside a tmux pane: $TMUX_PANE is unset or empty"},{"lang":"python","code":">>> pane_id_from_env({\"TMUX_PANE\": \"3\"})\nTraceback (most recent call last):\n...\nlibtmux.exc.NotInsideTmux: Not inside a tmux pane: $TMUX_PANE is not a pane id..."}],"seeAlso":[]},"source":{"file":"src/libtmux/_internal/env.py","line":125,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.env.pane_id_from_env","product":"core","slug":"libtmux-_internal-env-pane_id_from_env"},{"id":"libtmux._internal.query_list.logger","name":"logger","kind":"constant","modifiers":[],"signatures":[],"value":"logging.getLogger(__name__)","source":{"file":"src/libtmux/_internal/query_list.py","line":20,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.logger","product":"core","slug":"libtmux-_internal-query_list-logger"},{"id":"libtmux._internal.query_list.T","name":"T","kind":"constant","modifiers":[],"signatures":[],"value":"t.TypeVar(\"T\")","source":{"file":"src/libtmux/_internal/query_list.py","line":36,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.T","product":"core","slug":"libtmux-_internal-query_list-t"},{"id":"libtmux._internal.query_list.no_arg","name":"no_arg","kind":"constant","modifiers":[],"signatures":[],"value":"object()","source":{"file":"src/libtmux/_internal/query_list.py","line":38,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.no_arg","product":"core","slug":"libtmux-_internal-query_list-no_arg"},{"id":"libtmux._internal.query_list.keygetter","name":"keygetter","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"obj","type":"Mapping[str, t.Any]"},{"name":"path","type":"str"}],"returns":"t.Any | str | list[str] | Mapping[str, str] | None"}],"doc":{"summary":"Fetch values in objects and keys, supported nested data.","body":"**With dictionaries**:\n\n```python\n>>> keygetter({ \"food\": { \"breakfast\": \"cereal\" } }, \"food\")\n{'breakfast': 'cereal'}\n```\n\n```python\n>>> keygetter({ \"food\": { \"breakfast\": \"cereal\" } }, \"food__breakfast\")\n'cereal'\n```\n\n**With objects**:\n\n```python\n>>> from typing import List, Optional\n>>> from dataclasses import dataclass, field\n```\n\n```python\n>>> @dataclass()\n... class Food:\n... fruit: List[str] = field(default_factory=list)\n... breakfast: Optional[str] = None\n```\n\n```python\n>>> @dataclass()\n... class Restaurant:\n... place: str\n... city: str\n... state: str\n... food: Food = field(default_factory=Food)\n```\n\n```python\n>>> restaurant = Restaurant(\n... place=\"Largo\",\n... city=\"Tampa\",\n... state=\"Florida\",\n... food=Food(\n... fruit=[\"banana\", \"orange\"], breakfast=\"cereal\"\n... )\n... )\n```\n\n```python\n>>> restaurant\nRestaurant(place='Largo',\n city='Tampa',\n state='Florida',\n food=Food(fruit=['banana', 'orange'], breakfast='cereal'))\n```\n\n```python\n>>> keygetter(restaurant, \"food\")\nFood(fruit=['banana', 'orange'], breakfast='cereal')\n```\n\n```python\n>>> keygetter(restaurant, \"food__breakfast\")\n'cereal'\n```","seeAlso":[]},"source":{"file":"src/libtmux/_internal/query_list.py","line":41,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.keygetter","product":"core","slug":"libtmux-_internal-query_list-keygetter"},{"id":"libtmux._internal.query_list.parse_lookup","name":"parse_lookup","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"obj","type":"Mapping[str, t.Any]"},{"name":"path","type":"str"},{"name":"lookup","type":"str"}],"returns":"t.Any | None"}],"doc":{"summary":"Check if field lookup key, e.g. \"my__path__contains\" has comparator, return val.","body":"If comparator not used or value not found, return None.\n\n```python\n>>> parse_lookup({ \"food\": \"red apple\" }, \"food__istartswith\", \"__istartswith\")\n'red apple'\n```\n\nIt can also look up objects:\n\n```python\n>>> from dataclasses import dataclass\n```\n\n```python\n>>> @dataclass()\n... class Inventory:\n... food: str\n```\n\n```python\n>>> item = Inventory(food=\"red apple\")\n```\n\n```python\n>>> item\nInventory(food='red apple')\n```\n\n```python\n>>> parse_lookup(item, \"food__istartswith\", \"__istartswith\")\n'red apple'\n```","seeAlso":[]},"source":{"file":"src/libtmux/_internal/query_list.py","line":115,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.parse_lookup","product":"core","slug":"libtmux-_internal-query_list-parse_lookup"},{"id":"libtmux._internal.query_list.lookup_exact","name":"lookup_exact","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"data","type":"str | list[str] | Mapping[str, str]"},{"name":"rhs","type":"str | list[str] | Mapping[str, str] | re.Pattern[str]"}],"returns":"bool"}],"source":{"file":"src/libtmux/_internal/query_list.py","line":157,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.lookup_exact","product":"core","slug":"libtmux-_internal-query_list-lookup_exact"},{"id":"libtmux._internal.query_list.lookup_iexact","name":"lookup_iexact","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"data","type":"str | list[str] | Mapping[str, str]"},{"name":"rhs","type":"str | list[str] | Mapping[str, str] | re.Pattern[str]"}],"returns":"bool"}],"source":{"file":"src/libtmux/_internal/query_list.py","line":164,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.lookup_iexact","product":"core","slug":"libtmux-_internal-query_list-lookup_iexact"},{"id":"libtmux._internal.query_list.lookup_contains","name":"lookup_contains","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"data","type":"str | list[str] | Mapping[str, str]"},{"name":"rhs","type":"str | list[str] | Mapping[str, str] | re.Pattern[str]"}],"returns":"bool"}],"source":{"file":"src/libtmux/_internal/query_list.py","line":174,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.lookup_contains","product":"core","slug":"libtmux-_internal-query_list-lookup_contains"},{"id":"libtmux._internal.query_list.lookup_icontains","name":"lookup_icontains","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"data","type":"str | list[str] | Mapping[str, str]"},{"name":"rhs","type":"str | list[str] | Mapping[str, str] | re.Pattern[str]"}],"returns":"bool"}],"source":{"file":"src/libtmux/_internal/query_list.py","line":184,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.lookup_icontains","product":"core","slug":"libtmux-_internal-query_list-lookup_icontains"},{"id":"libtmux._internal.query_list.lookup_startswith","name":"lookup_startswith","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"data","type":"str | list[str] | Mapping[str, str]"},{"name":"rhs","type":"str | list[str] | Mapping[str, str] | re.Pattern[str]"}],"returns":"bool"}],"source":{"file":"src/libtmux/_internal/query_list.py","line":199,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.lookup_startswith","product":"core","slug":"libtmux-_internal-query_list-lookup_startswith"},{"id":"libtmux._internal.query_list.lookup_istartswith","name":"lookup_istartswith","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"data","type":"str | list[str] | Mapping[str, str]"},{"name":"rhs","type":"str | list[str] | Mapping[str, str] | re.Pattern[str]"}],"returns":"bool"}],"source":{"file":"src/libtmux/_internal/query_list.py","line":209,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.lookup_istartswith","product":"core","slug":"libtmux-_internal-query_list-lookup_istartswith"},{"id":"libtmux._internal.query_list.lookup_endswith","name":"lookup_endswith","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"data","type":"str | list[str] | Mapping[str, str]"},{"name":"rhs","type":"str | list[str] | Mapping[str, str] | re.Pattern[str]"}],"returns":"bool"}],"source":{"file":"src/libtmux/_internal/query_list.py","line":219,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.lookup_endswith","product":"core","slug":"libtmux-_internal-query_list-lookup_endswith"},{"id":"libtmux._internal.query_list.lookup_iendswith","name":"lookup_iendswith","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"data","type":"str | list[str] | Mapping[str, str]"},{"name":"rhs","type":"str | list[str] | Mapping[str, str] | re.Pattern[str]"}],"returns":"bool"}],"source":{"file":"src/libtmux/_internal/query_list.py","line":229,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.lookup_iendswith","product":"core","slug":"libtmux-_internal-query_list-lookup_iendswith"},{"id":"libtmux._internal.query_list.lookup_in","name":"lookup_in","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"data","type":"str | list[str] | Mapping[str, str]"},{"name":"rhs","type":"str | list[str] | Mapping[str, str] | re.Pattern[str]"}],"returns":"bool"}],"source":{"file":"src/libtmux/_internal/query_list.py","line":238,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.lookup_in","product":"core","slug":"libtmux-_internal-query_list-lookup_in"},{"id":"libtmux._internal.query_list.lookup_nin","name":"lookup_nin","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"data","type":"str | list[str] | Mapping[str, str]"},{"name":"rhs","type":"str | list[str] | Mapping[str, str] | re.Pattern[str]"}],"returns":"bool"}],"source":{"file":"src/libtmux/_internal/query_list.py","line":260,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.lookup_nin","product":"core","slug":"libtmux-_internal-query_list-lookup_nin"},{"id":"libtmux._internal.query_list.lookup_regex","name":"lookup_regex","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"data","type":"str | list[str] | Mapping[str, str]"},{"name":"rhs","type":"str | list[str] | Mapping[str, str] | re.Pattern[str]"}],"returns":"bool"}],"source":{"file":"src/libtmux/_internal/query_list.py","line":282,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.lookup_regex","product":"core","slug":"libtmux-_internal-query_list-lookup_regex"},{"id":"libtmux._internal.query_list.lookup_iregex","name":"lookup_iregex","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"data","type":"str | list[str] | Mapping[str, str]"},{"name":"rhs","type":"str | list[str] | Mapping[str, str] | re.Pattern[str]"}],"returns":"bool"}],"source":{"file":"src/libtmux/_internal/query_list.py","line":291,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.lookup_iregex","product":"core","slug":"libtmux-_internal-query_list-lookup_iregex"},{"id":"libtmux._internal.query_list.LOOKUP_NAME_MAP","name":"LOOKUP_NAME_MAP","kind":"constant","modifiers":[],"signatures":[],"type":"Mapping[str, LookupProtocol]","value":"{\n \"eq\": lookup_exact,\n \"exact\": lookup_exact,\n \"iexact\": lookup_iexact,\n \"contains\": lookup_contains,\n \"icontains\": lookup_icontains,\n \"startswith\": lookup_startswith,\n \"istartswith\": lookup_istartswith,\n \"endswith\": lookup_endswith,\n \"iendswith\": lookup_iendswith,\n \"in\": lookup_in,\n \"nin\": lookup_nin,\n \"regex\": lookup_regex,\n \"iregex\": lookup_iregex,\n}","source":{"file":"src/libtmux/_internal/query_list.py","line":300,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.LOOKUP_NAME_MAP","product":"core","slug":"libtmux-_internal-query_list-lookup_name_map"},{"id":"libtmux._internal.query_list.PKRequiredException","name":"PKRequiredException","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Raised when :meth:`QueryList.items` is called without a primary key.","body":"``items()`` pairs each entry with a key, and the list has no opinion about\nwhich field that should be. Set ``pk_key`` on the list before calling it.","seeAlso":[]},"extends":["Exception"],"source":{"file":"src/libtmux/_internal/query_list.py","line":317,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.PKRequiredException","product":"core","slug":"libtmux-_internal-query_list-pkrequiredexception"},{"id":"libtmux._internal.query_list.PKRequiredException.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux._internal.query_list.PKRequiredException","signatures":[{"params":[{"name":"self"},{"name":"args","type":"object"}],"returns":"None"}],"source":{"file":"src/libtmux/_internal/query_list.py","line":324,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.PKRequiredException.__init__","product":"core","slug":"libtmux-_internal-query_list-pkrequiredexception-__init__"},{"id":"libtmux._internal.query_list.OpNotFound","name":"OpNotFound","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Raised when a filter names a lookup that does not exist.","body":"The lookup is the part after the last ``__`` in a keyword, so a mistyped\none — or a field name that happens to end in ``__`` — reaches here rather\nthan silently matching nothing.","seeAlso":[]},"extends":["ValueError"],"source":{"file":"src/libtmux/_internal/query_list.py","line":328,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.OpNotFound","product":"core","slug":"libtmux-_internal-query_list-opnotfound"},{"id":"libtmux._internal.query_list.OpNotFound.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux._internal.query_list.OpNotFound","signatures":[{"params":[{"name":"self"},{"name":"op","type":"str"},{"name":"args","type":"object"}],"returns":"None"}],"source":{"file":"src/libtmux/_internal/query_list.py","line":336,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.OpNotFound.__init__","product":"core","slug":"libtmux-_internal-query_list-opnotfound-__init__"},{"id":"libtmux._internal.query_list.QueryList","name":"QueryList","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Filter list of object/dictionaries. For small, local datasets.","body":"*Experimental, unstable*.\n\n**With dictionaries**:\n\n```python\n>>> query = QueryList(\n... [\n... {\n... \"place\": \"Largo\",\n... \"city\": \"Tampa\",\n... \"state\": \"Florida\",\n... \"foods\": {\"fruit\": [\"banana\", \"orange\"], \"breakfast\": \"cereal\"},\n... },\n... {\n... \"place\": \"Chicago suburbs\",\n... \"city\": \"Elmhurst\",\n... \"state\": \"Illinois\",\n... \"foods\": {\"fruit\": [\"apple\", \"cantelope\"], \"breakfast\": \"waffles\"},\n... },\n... ]\n... )\n```\n\n```python\n>>> query.filter(place=\"Chicago suburbs\")[0]['city']\n'Elmhurst'\n>>> query.filter(place__icontains=\"chicago\")[0]['city']\n'Elmhurst'\n>>> query.filter(foods__breakfast=\"waffles\")[0]['city']\n'Elmhurst'\n>>> query.filter(foods__fruit__in=\"cantelope\")[0]['city']\n'Elmhurst'\n>>> query.filter(foods__fruit__in=\"orange\")[0]['city']\n'Tampa'\n```\n\n```python\n>>> query.filter(foods__fruit__in=\"apple\")\n[{'place': 'Chicago suburbs',\n 'city': 'Elmhurst',\n 'state': 'Illinois',\n 'foods':\n {'fruit': ['apple', 'cantelope'], 'breakfast': 'waffles'}}]\n```\n\n```python\n>>> query.filter(foods__fruit__in=\"non_existent\")\n[]\n```\n\n**With objects**:\n\n```python\n>>> from typing import Any, Dict\n>>> from dataclasses import dataclass, field\n```\n\n```python\n>>> @dataclass()\n... class Restaurant:\n... place: str\n... city: str\n... state: str\n... foods: Dict[str, Any]\n```\n\n```python\n>>> restaurant = Restaurant(\n... place=\"Largo\",\n... city=\"Tampa\",\n... state=\"Florida\",\n... foods={\n... \"fruit\": [\"banana\", \"orange\"], \"breakfast\": \"cereal\"\n... }\n... )\n```\n\n```python\n>>> restaurant\nRestaurant(place='Largo',\n city='Tampa',\n state='Florida',\n foods={'fruit': ['banana', 'orange'], 'breakfast': 'cereal'})\n```\n\n```python\n>>> query = QueryList([restaurant])\n```\n\n```python\n>>> query.filter(foods__fruit__in=\"banana\")\n[Restaurant(place='Largo',\n city='Tampa',\n state='Florida',\n foods={'fruit': ['banana', 'orange'], 'breakfast': 'cereal'})]\n```\n\n```python\n>>> query.filter(foods__fruit__in=\"banana\")[0].city\n'Tampa'\n```\n\n```python\n>>> query.get(foods__fruit__in=\"banana\").city\n'Tampa'\n```\n\n**With objects (nested)**:\n\n```python\n>>> from typing import List, Optional\n>>> from dataclasses import dataclass, field\n```\n\n```python\n>>> @dataclass()\n... class Food:\n... fruit: List[str] = field(default_factory=list)\n... breakfast: Optional[str] = None\n```\n\n```python\n>>> @dataclass()\n... class Restaurant:\n... place: str\n... city: str\n... state: str\n... food: Food = field(default_factory=Food)\n```\n\n```python\n>>> query = QueryList([\n... Restaurant(\n... place=\"Largo\",\n... city=\"Tampa\",\n... state=\"Florida\",\n... food=Food(\n... fruit=[\"banana\", \"orange\"], breakfast=\"cereal\"\n... )\n... ),\n... Restaurant(\n... place=\"Chicago suburbs\",\n... city=\"Elmhurst\",\n... state=\"Illinois\",\n... food=Food(\n... fruit=[\"apple\", \"cantelope\"], breakfast=\"waffles\"\n... )\n... )\n... ])\n```\n\n```python\n>>> query.filter(food__fruit__in=\"banana\")\n[Restaurant(place='Largo',\n city='Tampa',\n state='Florida',\n food=Food(fruit=['banana', 'orange'], breakfast='cereal'))]\n```\n\n```python\n>>> query.filter(food__fruit__in=\"banana\")[0].city\n'Tampa'\n```\n\n```python\n>>> query.get(food__fruit__in=\"banana\").city\n'Tampa'\n```\n\n```python\n>>> query.filter(food__breakfast=\"waffles\")\n[Restaurant(place='Chicago suburbs',\n city='Elmhurst',\n state='Illinois',\n food=Food(fruit=['apple', 'cantelope'], breakfast='waffles'))]\n```\n\n```python\n>>> query.filter(food__breakfast=\"waffles\")[0].city\n'Elmhurst'\n```\n\n```python\n>>> query.filter(food__breakfast=\"non_existent\")\n[]\n```","seeAlso":[]},"extends":["list[T]","t.Generic[T]"],"source":{"file":"src/libtmux/_internal/query_list.py","line":340,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.QueryList","product":"core","slug":"libtmux-_internal-query_list-querylist"},{"id":"libtmux._internal.query_list.QueryList.data","name":"data","kind":"attribute","modifiers":[],"parent":"libtmux._internal.query_list.QueryList","signatures":[],"type":"Sequence[T]","source":{"file":"src/libtmux/_internal/query_list.py","line":489,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.QueryList.data","product":"core","slug":"libtmux-_internal-query_list-querylist-data"},{"id":"libtmux._internal.query_list.QueryList.pk_key","name":"pk_key","kind":"attribute","modifiers":[],"parent":"libtmux._internal.query_list.QueryList","signatures":[],"type":"str | None","source":{"file":"src/libtmux/_internal/query_list.py","line":490,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.QueryList.pk_key","product":"core","slug":"libtmux-_internal-query_list-querylist-pk_key"},{"id":"libtmux._internal.query_list.QueryList.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux._internal.query_list.QueryList","signatures":[{"params":[{"name":"self"},{"name":"items","type":"Iterable[T] | None","default":"None"}],"returns":"None"}],"source":{"file":"src/libtmux/_internal/query_list.py","line":492,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.QueryList.__init__","product":"core","slug":"libtmux-_internal-query_list-querylist-__init__"},{"id":"libtmux._internal.query_list.QueryList.items","name":"items","kind":"method","modifiers":[],"parent":"libtmux._internal.query_list.QueryList","signatures":[{"params":[{"name":"self"}],"returns":"list[tuple[str, T]]"}],"source":{"file":"src/libtmux/_internal/query_list.py","line":495,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.QueryList.items","product":"core","slug":"libtmux-_internal-query_list-querylist-items"},{"id":"libtmux._internal.query_list.QueryList.__eq__","name":"__eq__","kind":"method","modifiers":[],"parent":"libtmux._internal.query_list.QueryList","signatures":[{"params":[{"name":"self"},{"name":"other","type":"object"}],"returns":"bool"}],"source":{"file":"src/libtmux/_internal/query_list.py","line":500,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.QueryList.__eq__","product":"core","slug":"libtmux-_internal-query_list-querylist-__eq__"},{"id":"libtmux._internal.query_list.QueryList.filter","name":"filter","kind":"method","modifiers":[],"parent":"libtmux._internal.query_list.QueryList","signatures":[{"params":[{"name":"self"},{"name":"matcher","type":"Callable[[T], bool] | T | None","default":"None"},{"name":"kwargs","type":"t.Any"}],"returns":"QueryList[T]"}],"doc":{"summary":"Filter list of objects.","seeAlso":[]},"source":{"file":"src/libtmux/_internal/query_list.py","line":523,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.QueryList.filter","product":"core","slug":"libtmux-_internal-query_list-querylist-filter"},{"id":"libtmux._internal.query_list.QueryList.get","name":"get","kind":"method","modifiers":[],"parent":"libtmux._internal.query_list.QueryList","signatures":[{"params":[{"name":"self"},{"name":"matcher","type":"Callable[[T], bool] | T | None","default":"None","doc":"Same matcher :meth:`filter` takes."},{"name":"default","type":"t.Any | None","default":"no_arg","doc":"Returned instead of raising when *nothing* matches."},{"name":"kwargs","type":"t.Any"}],"returns":"T | None","returnsDoc":"object\n The single match, or *default* when there is no match and one was\n given.","raises":[{"type":"ObjectDoesNotExist","doc":"When nothing matches and no *default* was passed."},{"type":"MultipleObjectsReturned","doc":"When more than one object matches. A *default* does not suppress\nthis: it stands in for an object that is absent, and an ambiguous\nlookup is not an absent one."}]}],"doc":{"summary":"Retrieve exactly one object.","examples":[{"lang":"python","code":">>> from libtmux._internal.query_list import QueryList\n>>> from libtmux import exc\n>>> qs = QueryList([{\"pane_id\": \"%0\"}, {\"pane_id\": \"%0\"}, {\"pane_id\": \"%1\"}])"},{"lang":"python","code":">>> qs.get(pane_id=\"%1\")\n{'pane_id': '%1'}"},{"lang":"python","code":">>> try:\n... qs.get(pane_id=\"%9\")\n... except exc.ObjectDoesNotExist as e:\n... print(e)\nNo objects found: pane_id='%9'","intro":"A lookup that matches nothing says what it went looking for:"},{"lang":"python","code":">>> qs.get(pane_id=\"%9\", default=None) is None\nTrue"},{"lang":"python","code":">>> try:\n... qs.get(pane_id=\"%0\")\n... except exc.MultipleObjectsReturned as e:\n... print(e)\nMultiple objects returned (2): pane_id='%0'","intro":"A lookup that matches several says how many, and for what:"}],"seeAlso":[]},"source":{"file":"src/libtmux/_internal/query_list.py","line":565,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.query_list.QueryList.get","product":"core","slug":"libtmux-_internal-query_list-querylist-get"},{"id":"libtmux._internal.sparse_array.T","name":"T","kind":"constant","modifiers":[],"signatures":[],"value":"t.TypeVar(\"T\")","source":{"file":"src/libtmux/_internal/sparse_array.py","line":13,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.sparse_array.T","product":"core","slug":"libtmux-_internal-sparse_array-t"},{"id":"libtmux._internal.sparse_array.HookArray","name":"HookArray","kind":"constant","modifiers":[],"signatures":[],"type":"TypeAlias","value":"\"dict[str, SparseArray[str]]\"","source":{"file":"src/libtmux/_internal/sparse_array.py","line":14,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.sparse_array.HookArray","product":"core","slug":"libtmux-_internal-sparse_array-hookarray"},{"id":"libtmux._internal.sparse_array.is_sparse_array_list","name":"is_sparse_array_list","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"items","type":"ExplodedComplexUntypedOptionsDict"}],"returns":"TypeGuard[HookArray]"}],"source":{"file":"src/libtmux/_internal/sparse_array.py","line":17,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.sparse_array.is_sparse_array_list","product":"core","slug":"libtmux-_internal-sparse_array-is_sparse_array_list"},{"id":"libtmux._internal.sparse_array.SparseArray","name":"SparseArray","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Support non-sequential indexes while maintaining :class:`list`-like behavior.","body":"A normal :class:`list` would raise :exc:`IndexError`.\n\nThere are no native sparse arrays in python that contain non-sequential indexes and\nmaintain list-like behavior. This is useful for handling libtmux options and hooks:\n\n``command-alias[1] split-pane=split-window`` to\n``{'command-alias[1]': {'split-pane=split-window'}}``\n\n:class:`list` would lose indice info, and :class:`dict` would lose list-like\nbehavior.","examples":[{"lang":"python","code":">>> from libtmux._internal.sparse_array import SparseArray","intro":"Create a sparse array and add values at non-sequential indices:"},{"lang":"python","code":">>> arr: SparseArray[str] = SparseArray()\n>>> arr.add(0, \"first hook command\")\n>>> arr.add(5, \"fifth hook command\")\n>>> arr.add(2, \"second hook command\")"},{"lang":"python","code":">>> arr[0]\n'first hook command'\n>>> arr[5]\n'fifth hook command'","intro":"Access values by index (dict-style):"},{"lang":"python","code":">>> 0 in arr\nTrue\n>>> 3 in arr\nFalse","intro":"Check index existence:"},{"lang":"python","code":">>> list(arr.iter_values())\n['first hook command', 'second hook command', 'fifth hook command']","intro":"Iterate values in sorted index order:"},{"lang":"python","code":">>> arr.as_list()\n['first hook command', 'second hook command', 'fifth hook command']","intro":"Convert to a list (values only, sorted by index):"},{"lang":"python","code":">>> arr.append(\"appended command\")\n>>> arr[6]\n'appended command'","intro":"Append adds at max index + 1:"},{"lang":"python","code":">>> sorted(arr.keys())\n[0, 2, 5, 6]","intro":"Access raw indices:"}],"seeAlso":[]},"extends":["dict[int, T]","t.Generic[T]"],"source":{"file":"src/libtmux/_internal/sparse_array.py","line":29,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.sparse_array.SparseArray","product":"core","slug":"libtmux-_internal-sparse_array-sparsearray"},{"id":"libtmux._internal.sparse_array.SparseArray.add","name":"add","kind":"method","modifiers":[],"parent":"libtmux._internal.sparse_array.SparseArray","signatures":[{"params":[{"name":"self"},{"name":"index","type":"int","doc":"The index at which to store the value."},{"name":"value","type":"T","doc":"The value to store."}],"returns":"None"}],"doc":{"summary":"Add a value at a specific index.","examples":[{"lang":"python","code":">>> from libtmux._internal.sparse_array import SparseArray"},{"lang":"python","code":">>> arr: SparseArray[str] = SparseArray()\n>>> arr.add(0, \"hook at index 0\")\n>>> arr.add(10, \"hook at index 10\")\n>>> arr[0]\n'hook at index 0'\n>>> arr[10]\n'hook at index 10'\n>>> sorted(arr.keys())\n[0, 10]"}],"seeAlso":[]},"source":{"file":"src/libtmux/_internal/sparse_array.py","line":90,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.sparse_array.SparseArray.add","product":"core","slug":"libtmux-_internal-sparse_array-sparsearray-add"},{"id":"libtmux._internal.sparse_array.SparseArray.append","name":"append","kind":"method","modifiers":[],"parent":"libtmux._internal.sparse_array.SparseArray","signatures":[{"params":[{"name":"self"},{"name":"value","type":"T","doc":"The value to append."}],"returns":"None"}],"doc":{"summary":"Append a value at the next available index (max + 1).","examples":[{"lang":"python","code":">>> from libtmux._internal.sparse_array import SparseArray"},{"lang":"python","code":">>> arr: SparseArray[str] = SparseArray()\n>>> arr.append(\"first\")\n>>> arr[0]\n'first'","intro":"Appending to an empty array starts at index 0:"},{"lang":"python","code":">>> arr.add(5, \"at index 5\")\n>>> arr.append(\"appended\")\n>>> arr[6]\n'appended'\n>>> arr.append(\"another\")\n>>> arr[7]\n'another'","intro":"Appending to a non-empty array adds at max index + 1:"}],"seeAlso":[]},"source":{"file":"src/libtmux/_internal/sparse_array.py","line":116,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.sparse_array.SparseArray.append","product":"core","slug":"libtmux-_internal-sparse_array-sparsearray-append"},{"id":"libtmux._internal.sparse_array.SparseArray.iter_values","name":"iter_values","kind":"method","modifiers":[],"parent":"libtmux._internal.sparse_array.SparseArray","signatures":[{"params":[{"name":"self"}],"returns":"t.Iterator[T]","returnsDoc":"T\n Values in ascending index order."}],"doc":{"summary":"Iterate over values in sorted index order.","examples":[{"lang":"python","code":">>> from libtmux._internal.sparse_array import SparseArray"},{"lang":"python","code":">>> arr: SparseArray[str] = SparseArray()\n>>> arr.add(5, \"fifth\")\n>>> arr.add(0, \"first\")\n>>> arr.add(2, \"second\")\n>>> for val in arr.iter_values():\n... print(val)\nfirst\nsecond\nfifth"}],"seeAlso":[]},"source":{"file":"src/libtmux/_internal/sparse_array.py","line":148,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.sparse_array.SparseArray.iter_values","product":"core","slug":"libtmux-_internal-sparse_array-sparsearray-iter_values"},{"id":"libtmux._internal.sparse_array.SparseArray.as_list","name":"as_list","kind":"method","modifiers":[],"parent":"libtmux._internal.sparse_array.SparseArray","signatures":[{"params":[{"name":"self"}],"returns":"list[T]","returnsDoc":"list[T]\n List of values sorted by their indices."}],"doc":{"summary":"Return values as a list in sorted index order.","examples":[{"lang":"python","code":">>> from libtmux._internal.sparse_array import SparseArray"},{"lang":"python","code":">>> arr: SparseArray[str] = SparseArray()\n>>> arr.add(10, \"tenth\")\n>>> arr.add(0, \"zeroth\")\n>>> arr.add(5, \"fifth\")\n>>> arr.as_list()\n['zeroth', 'fifth', 'tenth']"}],"seeAlso":[]},"source":{"file":"src/libtmux/_internal/sparse_array.py","line":173,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.sparse_array.SparseArray.as_list","product":"core","slug":"libtmux-_internal-sparse_array-sparsearray-as_list"},{"id":"libtmux._internal.types.StrPath","name":"StrPath","kind":"constant","modifiers":[],"signatures":[],"type":"TypeAlias","value":"\"str | PathLike[str]\"","source":{"file":"src/libtmux/_internal/types.py","line":18,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux._internal.types.StrPath","product":"core","slug":"libtmux-_internal-types-strpath"},{"id":"libtmux.client.logger","name":"logger","kind":"constant","modifiers":[],"signatures":[],"value":"logging.getLogger(__name__)","source":{"file":"src/libtmux/client.py","line":24,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.client.logger","product":"core","slug":"libtmux-client-logger"},{"id":"libtmux.client.Client","name":"Client","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":":term:`tmux(1)` :term:`Client` [client_manual]_.","body":"A tmux client is an attached terminal. The same tmux server can have\nmultiple clients attached simultaneously (e.g. ``$ tmux attach`` from\nseveral terminals) and each receives its own view of the active\nsession, window, and pane.","admonitions":[{"kind":"warning","text":"``client_session``, ``session_id``, ``window_id`` and\n``pane_id`` are snapshots of the client's *currently attached\nview* at the moment this object was read — not stable identity\nfor the client. When the client switches sessions via\n``switch-client``, moves focus via ``select-window`` /\n``select-pane``, or detaches, these fields go stale until\n:meth:`refresh` re-reads them from ``list-clients``. The\n``client_name`` (tty path on Unix) is the client's stable\nidentity.\n\nPrefer :meth:`attached_session`, :meth:`attached_window`, and\n:meth:`attached_pane` when you need the client's current\nattachment. Each property re-reads tmux before returning, so\nthe :class:`Session` / :class:`Window` / :class:`Pane` you get\nback reflects where the client is attached *now*, not where it\nwas when this :class:`Client` was constructed. If tmux no longer\nreports this ``client_name`` through ``list-clients``, these\nproperties return ``None``.\n\n:meth:`attached_pane` follows the attached session's current\nwindow. That can differ from the per-client active pane set by\n``select-pane -P``; see :meth:`attached_pane` for the exact\nbehavior. Each property re-reads tmux on every access."}],"examples":[{"lang":"python","code":">>> with control_mode() as ctl:\n... attached = [\n... c\n... for c in server.clients\n... if c.client_name == ctl.client_name\n... ]\n>>> bool(attached)\nTrue"},{"lang":"python","code":">>> with control_mode() as ctl:\n... client = server.clients.get(client_name=ctl.client_name)\n... client.client_readonly in {\"0\", \"1\"}\nTrue"}],"references":[{"name":"client_manual","text":"`tmux 3.7c manual, Clients and sessions `_. \"Clients are attached to sessions to interact with them...\" `attach-session `_ attaches a terminal. `switch-client `_ selects its session or key table. `show-messages `_ shows server messages or information. `Upstream source `_; `OpenBSD tmux(1) manual `_."}],"seeAlso":[]},"extends":["Obj"],"source":{"file":"src/libtmux/client.py","line":28,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.Client","product":"core","slug":"libtmux-client"},{"id":"libtmux.client.Client.server","name":"server","kind":"attribute","modifiers":[],"parent":"libtmux.client.Client","signatures":[],"type":"Server","source":{"file":"src/libtmux/client.py","line":102,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.Client.server","product":"core","slug":"libtmux-client-server"},{"id":"libtmux.client.Client.refresh","name":"refresh","kind":"method","modifiers":[],"parent":"libtmux.client.Client","signatures":[{"params":[{"name":"self"}],"returns":"None","raises":[{"type":"ValueError","doc":"When ``client_name`` is unset. Surfaces a clear error under\n``python -O``, where an ``assert`` would be stripped."}]}],"doc":{"summary":"Refresh client attributes from tmux.","seeAlso":[]},"source":{"file":"src/libtmux/client.py","line":104,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.Client.refresh","product":"core","slug":"libtmux-client-refresh"},{"id":"libtmux.client.Client.from_client_name","name":"from_client_name","kind":"method","modifiers":["classmethod"],"parent":"libtmux.client.Client","signatures":[{"params":[{"name":"cls"},{"name":"server","type":"Server"},{"name":"client_name","type":"str"}],"returns":"Client"}],"doc":{"summary":"Create Client from an existing client_name.","seeAlso":[]},"source":{"file":"src/libtmux/client.py","line":123,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.Client.from_client_name","product":"core","slug":"libtmux-client-from_client_name"},{"id":"libtmux.client.Client.attached_session","name":"attached_session","kind":"property","modifiers":[],"parent":"libtmux.client.Client","signatures":[{"params":[{"name":"self"}],"returns":"Session | None"}],"doc":{"summary":"Return the :class:`Session` this client is currently attached to.","body":"Re-reads the client from ``list-clients`` before resolving, so the\nreturned :class:`Session` reflects the client's *live* attachment\nrather than the snapshot captured when this :class:`Client` was\nread. Returns ``None`` when tmux no longer reports this\n``client_name`` through ``list-clients``, when the client is not\nattached to any session, or when the snapshot ``session_id`` no\nlonger names a live session.","examples":[{"lang":"python","code":">>> with control_mode() as ctl:\n... client = server.clients.get(client_name=ctl.client_name)\n... attached = client.attached_session\n>>> attached is not None\nTrue"}],"seeAlso":[]},"source":{"file":"src/libtmux/client.py","line":137,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.Client.attached_session","product":"core","slug":"libtmux-client-attached_session"},{"id":"libtmux.client.Client.attached_window","name":"attached_window","kind":"property","modifiers":[],"parent":"libtmux.client.Client","signatures":[{"params":[{"name":"self"}],"returns":"Window | None"}],"doc":{"summary":"Return the :class:`Window` this client is currently viewing.","body":"Re-reads the client from ``list-clients``, looks up its attached\nsession, and returns that session's :attr:`~libtmux.Session.active_window`.\nReturns ``None`` when no live attached session can be resolved.","seeAlso":[]},"source":{"file":"src/libtmux/client.py","line":168,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.Client.attached_window","product":"core","slug":"libtmux-client-attached_window"},{"id":"libtmux.client.Client.attached_pane","name":"attached_pane","kind":"property","modifiers":[],"parent":"libtmux.client.Client","signatures":[{"params":[{"name":"self"}],"returns":"Pane | None"}],"doc":{"summary":"Return the :class:`Pane` this client is currently viewing.","body":"Re-reads the client from ``list-clients``, looks up its attached\nsession's current window, and returns that window's\n:attr:`~libtmux.Window.active_pane`. Returns ``None`` when no\nlive attached session or active pane can be resolved.\n\nThis follows the attached session's current window and active\npane. When a client has used ``select-pane -P`` to set its own\nactive pane, this property returns the *session's* current\nactive pane, not the client's per-client focus.","seeAlso":[]},"source":{"file":"src/libtmux/client.py","line":181,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.Client.attached_pane","product":"core","slug":"libtmux-client-attached_pane"},{"id":"libtmux.client.Client._resolve_attached","name":"_resolve_attached","kind":"method","modifiers":[],"parent":"libtmux.client.Client","signatures":[{"params":[{"name":"self"}],"returns":"tuple[Session | None, Window | None, Pane | None]","returnsDoc":"tuple[Session | None, Window | None, Pane | None]\n * ``(None, None, None)`` when tmux no longer reports this\n ``client_name`` through ``list-clients``, when the client\n snapshot has no ``session_id``, or when the snapshot\n ``session_id`` no longer names a live session.\n * ``(session, None, None)`` when the attached session has no\n active window.\n * ``(session, window, pane)`` for a fully-resolved live\n attachment. ``pane`` is ``None`` only when the active\n window has no active pane.\n\n:exc:`~libtmux.exc.MultipleActiveWindows` propagates rather than\ncollapsing to ``(session, None, None)`` — multiple active windows\nin one session indicates inconsistent tmux state that callers\nshould see, not absent attachment."}],"doc":{"summary":"Resolve live attachment with a single ``list-clients`` refresh.","body":"The three :attr:`attached_session` / :attr:`attached_window` /\n:attr:`attached_pane` properties each trigger their own\n``list-clients`` refresh — calling them in sequence performs three\ntmux reads for one conceptual \"where is this client attached *now*\"\nread. ``_resolve_attached`` shares a single refresh across the\ntriple and returns the three values together.","seeAlso":[]},"source":{"file":"src/libtmux/client.py","line":199,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.Client._resolve_attached","product":"core","slug":"libtmux-client-_resolve_attached"},{"id":"libtmux.common.logger","name":"logger","kind":"constant","modifiers":[],"signatures":[],"value":"logging.getLogger(__name__)","source":{"file":"src/libtmux/common.py","line":25,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.logger","product":"core","slug":"libtmux-common-logger"},{"id":"libtmux.common.TMUX_MIN_VERSION","name":"TMUX_MIN_VERSION","kind":"constant","modifiers":[],"signatures":[],"value":"\"3.2a\"","source":{"file":"src/libtmux/common.py","line":29,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.TMUX_MIN_VERSION","product":"core","slug":"libtmux-common-tmux_min_version"},{"id":"libtmux.common.TMUX_MAX_VERSION","name":"TMUX_MAX_VERSION","kind":"constant","modifiers":[],"signatures":[],"value":"\"3.7\"","source":{"file":"src/libtmux/common.py","line":32,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.TMUX_MAX_VERSION","product":"core","slug":"libtmux-common-tmux_max_version"},{"id":"libtmux.common.SessionDict","name":"SessionDict","kind":"constant","modifiers":[],"signatures":[],"value":"dict[str, t.Any]","source":{"file":"src/libtmux/common.py","line":34,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.SessionDict","product":"core","slug":"libtmux-common-sessiondict"},{"id":"libtmux.common.WindowDict","name":"WindowDict","kind":"constant","modifiers":[],"signatures":[],"value":"dict[str, t.Any]","source":{"file":"src/libtmux/common.py","line":35,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.WindowDict","product":"core","slug":"libtmux-common-windowdict"},{"id":"libtmux.common.WindowOptionDict","name":"WindowOptionDict","kind":"constant","modifiers":[],"signatures":[],"value":"dict[str, t.Any]","source":{"file":"src/libtmux/common.py","line":36,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.WindowOptionDict","product":"core","slug":"libtmux-common-windowoptiondict"},{"id":"libtmux.common.PaneDict","name":"PaneDict","kind":"constant","modifiers":[],"signatures":[],"value":"dict[str, t.Any]","source":{"file":"src/libtmux/common.py","line":37,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.PaneDict","product":"core","slug":"libtmux-common-panedict"},{"id":"libtmux.common.CmdProtocol","name":"CmdProtocol","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Command protocol for tmux command.","seeAlso":[]},"extends":["t.Protocol"],"source":{"file":"src/libtmux/common.py","line":40,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.CmdProtocol","product":"core","slug":"libtmux-common-cmdprotocol"},{"id":"libtmux.common.CmdProtocol.__call__","name":"__call__","kind":"method","modifiers":[],"parent":"libtmux.common.CmdProtocol","signatures":[{"params":[{"name":"self"},{"name":"cmd","type":"str"},{"name":"args","type":"t.Any"},{"name":"kwargs","type":"t.Any"}],"returns":"tmux_cmd"}],"doc":{"summary":"Wrap tmux_cmd.","seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":43,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.CmdProtocol.__call__","product":"core","slug":"libtmux-common-cmdprotocol-__call__"},{"id":"libtmux.common.CmdMixin","name":"CmdMixin","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Command mixin for tmux command.","seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":48,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.CmdMixin","product":"core","slug":"libtmux-common-cmdmixin"},{"id":"libtmux.common.CmdMixin.cmd","name":"cmd","kind":"attribute","modifiers":[],"parent":"libtmux.common.CmdMixin","signatures":[],"type":"CmdProtocol","source":{"file":"src/libtmux/common.py","line":51,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.CmdMixin.cmd","product":"core","slug":"libtmux-common-cmdmixin-cmd"},{"id":"libtmux.common.EnvironmentMixin","name":"EnvironmentMixin","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Mixin for manager session and server level environment variables in tmux.","seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":54,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.EnvironmentMixin","product":"core","slug":"libtmux-common-environmentmixin"},{"id":"libtmux.common.EnvironmentMixin._add_option","name":"_add_option","kind":"attribute","modifiers":[],"parent":"libtmux.common.EnvironmentMixin","signatures":[],"value":"None","source":{"file":"src/libtmux/common.py","line":57,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.EnvironmentMixin._add_option","product":"core","slug":"libtmux-common-environmentmixin-_add_option"},{"id":"libtmux.common.EnvironmentMixin.cmd","name":"cmd","kind":"attribute","modifiers":[],"parent":"libtmux.common.EnvironmentMixin","signatures":[],"type":"Callable[[t.Any, t.Any], tmux_cmd]","source":{"file":"src/libtmux/common.py","line":59,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.EnvironmentMixin.cmd","product":"core","slug":"libtmux-common-environmentmixin-cmd"},{"id":"libtmux.common.EnvironmentMixin.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux.common.EnvironmentMixin","signatures":[{"params":[{"name":"self"},{"name":"add_option","type":"str | None","default":"None"}],"returns":"None"}],"source":{"file":"src/libtmux/common.py","line":61,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.EnvironmentMixin.__init__","product":"core","slug":"libtmux-common-environmentmixin-__init__"},{"id":"libtmux.common.EnvironmentMixin.set_environment","name":"set_environment","kind":"method","modifiers":[],"parent":"libtmux.common.EnvironmentMixin","signatures":[{"params":[{"name":"self"},{"name":"name","type":"str","doc":"The environment variable name, e.g. 'PATH'."},{"name":"value","type":"str","doc":"Environment value."},{"name":"expand_format","type":"bool | None","default":"None","keywordOnly":true,"doc":"Expand tmux format strings in the value (``-F`` flag).","since":"0.56"},{"name":"hidden","type":"bool | None","default":"None","keywordOnly":true,"doc":"Mark the variable as hidden (``-h`` flag).","since":"0.56"}],"returns":"None","raises":[{"type":"ValueError","doc":"If tmux returns an error."}]}],"doc":{"summary":"Set environment ``$ tmux set-environment ``.","seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":64,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.EnvironmentMixin.set_environment","product":"core","slug":"libtmux-common-environmentmixin-set_environment"},{"id":"libtmux.common.EnvironmentMixin.unset_environment","name":"unset_environment","kind":"method","modifiers":[],"parent":"libtmux.common.EnvironmentMixin","signatures":[{"params":[{"name":"self"},{"name":"name","type":"str","doc":"The environment variable name, e.g. 'PATH'."}],"returns":"None","raises":[{"type":"ValueError","doc":"If tmux returns an error."}]}],"doc":{"summary":"Unset environment variable ``$ tmux set-environment -u ``.","seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":117,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.EnvironmentMixin.unset_environment","product":"core","slug":"libtmux-common-environmentmixin-unset_environment"},{"id":"libtmux.common.EnvironmentMixin.remove_environment","name":"remove_environment","kind":"method","modifiers":[],"parent":"libtmux.common.EnvironmentMixin","signatures":[{"params":[{"name":"self"},{"name":"name","type":"str","doc":"The environment variable name, e.g. 'PATH'."}],"returns":"None","raises":[{"type":"ValueError","doc":"If tmux returns an error."}]}],"doc":{"summary":"Remove environment variable ``$ tmux set-environment -r ``.","seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":146,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.EnvironmentMixin.remove_environment","product":"core","slug":"libtmux-common-environmentmixin-remove_environment"},{"id":"libtmux.common.EnvironmentMixin.show_environment","name":"show_environment","kind":"method","modifiers":[],"parent":"libtmux.common.EnvironmentMixin","signatures":[{"params":[{"name":"self"}],"returns":"dict[str, bool | str]","returnsDoc":"dict\n environmental variables in dict, if no name, or str if name\n entered."}],"doc":{"summary":"Show environment ``$ tmux show-environment -t [session]``.","body":"Return dict of environment variables for the session.","changed":"0.13 — Removed per-item lookups. Use :meth:`libtmux.common.EnvironmentMixin.getenv`.","seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":175,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.EnvironmentMixin.show_environment","product":"core","slug":"libtmux-common-environmentmixin-show_environment"},{"id":"libtmux.common.EnvironmentMixin.getenv","name":"getenv","kind":"method","modifiers":[],"parent":"libtmux.common.EnvironmentMixin","signatures":[{"params":[{"name":"self"},{"name":"name","type":"str","doc":"the environment variable name. such as 'PATH'."}],"returns":"str | bool | None","returnsDoc":"str\n Value of environment variable"}],"doc":{"summary":"Show environment variable ``$ tmux show-environment -t [session] ``.","body":"Return the value of a specific variable if the name is specified.","since":"0.13","seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":207,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.EnvironmentMixin.getenv","product":"core","slug":"libtmux-common-environmentmixin-getenv"},{"id":"libtmux.common.raise_if_stderr","name":"raise_if_stderr","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"proc","type":"tmux_cmd","doc":"Result of a :meth:`Server.cmd` / :meth:`Session.cmd` / etc. call."},{"name":"subcommand","type":"str","doc":"The tmux subcommand the wrapper invoked, e.g. ``\"last-window\"``,\n``\"swap-pane\"``. Surfaces in ``str(exc)`` as a ``\": …\"``\nprefix."}],"returns":"None","raises":[{"type":"LibTmuxException","doc":"When ``proc.stderr`` is non-empty."}]}],"doc":{"summary":"Raise :exc:`LibTmuxException` tagged with the tmux subcommand on stderr.","body":"Centralizes the ``if proc.stderr: raise exc.LibTmuxException(proc.stderr)``\npattern scattered across the wrappers. Tags the exception with the\noriginating tmux subcommand so downstream consumers (e.g. libtmux-mcp's\n``handle_tool_errors``) keep the \"which tmux command failed\" context.","examples":[{"lang":"python","code":">>> from libtmux.common import raise_if_stderr\n>>> from libtmux import exc\n>>> proc = session.cmd(\"display-message\", \"-p\", \"#{session_id}\")\n>>> raise_if_stderr(proc, \"display-message\") # no stderr → no raise"}],"seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":245,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.raise_if_stderr","product":"core","slug":"libtmux-common-raise_if_stderr"},{"id":"libtmux.common.tmux_cmd","name":"tmux_cmd","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Run any :term:`tmux(1)` command through :py:mod:`subprocess`.","changed":"0.8 — Renamed from ``tmux`` to ``tmux_cmd``.","examples":[{"lang":"python","code":">>> proc = tmux_cmd(f'-L{server.socket_name}', 'new-session', '-d', '-P', '-F#S')\n>>> if proc.stderr:\n... raise exc.LibTmuxException(\n... 'Command: %s returned error: %s' % (proc.cmd, proc.stderr)\n... )\n...","intro":"Create a new session, check for error:"},{"lang":"python","code":">>> print(f'tmux command returned {\" \".join(proc.stdout)}')\ntmux command returned 2"}],"seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":283,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.tmux_cmd","product":"core","slug":"libtmux-common-tmux_cmd"},{"id":"libtmux.common.tmux_cmd.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux.common.tmux_cmd","signatures":[{"params":[{"name":"self"},{"name":"args","type":"t.Any"},{"name":"tmux_bin","type":"str | None","default":"None"}],"returns":"None"}],"source":{"file":"src/libtmux/common.py","line":312,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.tmux_cmd.__init__","product":"core","slug":"libtmux-common-tmux_cmd-__init__"},{"id":"libtmux.common._TmuxVersionUnavailable","name":"_TmuxVersionUnavailable","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Internal signal: this tmux predates the ``-V`` flag (pre-1.7).","seeAlso":[]},"extends":["Exception"],"source":{"file":"src/libtmux/common.py","line":381,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common._TmuxVersionUnavailable","product":"core","slug":"libtmux-common-_tmuxversionunavailable"},{"id":"libtmux.common._no_version_flag_fallback","name":"_no_version_flag_fallback","kind":"function","modifiers":[],"signatures":[{"params":[],"returns":"str"}],"doc":{"summary":"Return a synthetic version string when tmux lacks ``-V``.","body":"OpenBSD ships a ``-V``-less base tmux, so assume the maximum supported\nversion; any other platform is genuinely too old.","seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":385,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common._no_version_flag_fallback","product":"core","slug":"libtmux-common-_no_version_flag_fallback"},{"id":"libtmux.common._query_version","name":"_query_version","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"tmux_bin","type":"str | None","default":"None","doc":"Path to tmux binary. If *None*, uses the system tmux."}],"returns":"str","returnsDoc":"str\n Raw version token from ``tmux -V``.","raises":[{"type":"_TmuxVersionUnavailable","doc":"tmux predates the ``-V`` flag; callers apply\n:func:`_no_version_flag_fallback`."},{"type":"VersionTooLow","doc":"tmux reported another error on ``-V``."}]}],"doc":{"summary":"Return the raw ``tmux -V`` version token, letter suffix intact.","body":"Runs ``tmux -V`` and extracts the version token (e.g. ``\"3.7a\"``,\n``\"master\"``, ``\"next-3.8\"``). Not memoized -- :func:`get_version` and\n:func:`get_version_str` each cache their own result on top of this query.","seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":400,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common._query_version","product":"core","slug":"libtmux-common-_query_version"},{"id":"libtmux.common.get_version_str","name":"get_version_str","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"tmux_bin","type":"str | None","default":"None","doc":"Path to tmux binary. If *None*, uses the system tmux."}],"returns":"str","returnsDoc":"str\n Raw tmux version, e.g. ``\"3.7a\"``. Git builds return ``\"master\"``;\n OpenBSD base tmux returns ``\"-openbsd\"``."}],"doc":{"summary":"Return the tmux version string verbatim, preserving letter suffixes.","body":":func:`get_version` normalizes point releases for numeric comparison\n(``\"3.7a\"`` becomes ``LooseVersion(\"3.7\")``). This helper keeps the raw\nsuffix, so callers can distinguish patch releases whose behavior differs\n-- for example the tmux 3.7 break-pane crash, reverted in 3.7a.\n\n### Notes\n\nMemoized via :func:`functools.cache`, keyed on *tmux_bin*, independently of\n:func:`get_version`. Call ``get_version_str.cache_clear()`` after swapping\nthe tmux binary.","examples":[{"lang":"python","code":">>> isinstance(get_version_str(), str)\nTrue"}],"seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":435,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.get_version_str","product":"core","slug":"libtmux-common-get_version_str"},{"id":"libtmux.common.get_version","name":"get_version","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"tmux_bin","type":"str | None","default":"None","doc":"Path to tmux binary. If *None*, uses the system tmux from\n:func:`shutil.which`."}],"returns":"LooseVersion","returnsDoc":":class:`distutils.version.LooseVersion`\n tmux version according to *tmux_bin* if provided, otherwise the\n system tmux from :func:`shutil.which`"}],"doc":{"summary":"Return tmux version.","body":"If tmux is built from git master, the version returned will be the latest\nversion appended with -master, e.g. ``2.4-master``.\n\nIf using OpenBSD's base system tmux, the version will have ``-openbsd``\nappended to the latest version, e.g. ``2.4-openbsd``.\n\n### Notes\n\nMemoized via :func:`functools.cache`, keyed on the *tmux_bin* argument\n(``None`` is a distinct key from any explicit path), independently of\n:func:`get_version_str`. The cache is sticky across ``PATH`` changes and\non-disk binary swaps when *tmux_bin* is ``None`` or the same path string --\ncall ``get_version.cache_clear()`` to invalidate. Tests that monkey-patch\n:class:`tmux_cmd` should call ``cache_clear()`` before asserting\nparsed-version behavior.","seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":472,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.get_version","product":"core","slug":"libtmux-common-get_version"},{"id":"libtmux.common.has_version","name":"has_version","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"version","type":"str","doc":"version number, e.g. '3.2a'"},{"name":"tmux_bin","type":"str | None","default":"None","doc":"Path to tmux binary. If *None*, uses the system tmux."}],"returns":"bool","returnsDoc":"bool\n True if version matches"}],"doc":{"summary":"Return True if tmux version installed.","seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":518,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.has_version","product":"core","slug":"libtmux-common-has_version"},{"id":"libtmux.common.has_gt_version","name":"has_gt_version","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"min_version","type":"str","doc":"tmux version, e.g. '3.2a'"},{"name":"tmux_bin","type":"str | None","default":"None","doc":"Path to tmux binary. If *None*, uses the system tmux."}],"returns":"bool","returnsDoc":"bool\n True if version above min_version"}],"doc":{"summary":"Return True if tmux version greater than minimum.","seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":536,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.has_gt_version","product":"core","slug":"libtmux-common-has_gt_version"},{"id":"libtmux.common.has_gte_version","name":"has_gte_version","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"min_version","type":"str","doc":"tmux version, e.g. '3.2a'"},{"name":"tmux_bin","type":"str | None","default":"None","doc":"Path to tmux binary. If *None*, uses the system tmux."}],"returns":"bool","returnsDoc":"bool\n True if version above or equal to min_version"}],"doc":{"summary":"Return True if tmux version greater or equal to minimum.","seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":554,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.has_gte_version","product":"core","slug":"libtmux-common-has_gte_version"},{"id":"libtmux.common.has_lte_version","name":"has_lte_version","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"max_version","type":"str","doc":"tmux version, e.g. '3.2a'"},{"name":"tmux_bin","type":"str | None","default":"None","doc":"Path to tmux binary. If *None*, uses the system tmux."}],"returns":"bool","returnsDoc":"bool\n True if version below or equal to max_version"}],"doc":{"summary":"Return True if tmux version less or equal to minimum.","seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":572,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.has_lte_version","product":"core","slug":"libtmux-common-has_lte_version"},{"id":"libtmux.common.has_lt_version","name":"has_lt_version","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"max_version","type":"str","doc":"tmux version, e.g. '3.2a'"},{"name":"tmux_bin","type":"str | None","default":"None","doc":"Path to tmux binary. If *None*, uses the system tmux."}],"returns":"bool","returnsDoc":"bool\n True if version below max_version"}],"doc":{"summary":"Return True if tmux version less than minimum.","seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":590,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.has_lt_version","product":"core","slug":"libtmux-common-has_lt_version"},{"id":"libtmux.common.has_minimum_version","name":"has_minimum_version","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"raises","type":"bool","default":"True","doc":"raise exception if below minimum version requirement"},{"name":"tmux_bin","type":"str | None","default":"None","doc":"Path to tmux binary. If *None*, uses the system tmux."}],"returns":"bool","returnsDoc":"bool\n True if tmux meets minimum required version.","raises":[{"type":"libtmux.exc.VersionTooLow","doc":"tmux version below minimum required for libtmux"}]}],"doc":{"summary":"Return True if tmux meets version requirement. Version >= 3.2a.","changed":"0.49.0 — Minimum version bumped to 3.2a. For older tmux, use libtmux v0.48.x.\n\n0.7.0 — No longer returns version, returns True or False\n\n0.1.7 — Versions will now remove trailing letters per\n`Issue 55 `_.","seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":608,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.has_minimum_version","product":"core","slug":"libtmux-common-has_minimum_version"},{"id":"libtmux.common.session_check_name","name":"session_check_name","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"session_name","type":"str | None","doc":"Name of session."}],"returns":"None","raises":[{"type":"exc.BadSessionName","doc":"Invalid session name."}]}],"doc":{"summary":"Raise exception session name invalid, modeled after tmux function.","body":"tmux(1) session names may not be empty, or include periods or colons.\nThese delimiters are reserved for noting session, window and pane.","seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":653,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.session_check_name","product":"core","slug":"libtmux-common-session_check_name"},{"id":"libtmux.common.get_libtmux_version","name":"get_libtmux_version","kind":"function","modifiers":[],"signatures":[{"params":[],"returns":"LooseVersion","returnsDoc":"distutils.version.LooseVersion\n libtmux version"}],"doc":{"summary":"Return libtmux version is a PEP386 compliant format.","seeAlso":[]},"source":{"file":"src/libtmux/common.py","line":677,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.common.get_libtmux_version","product":"core","slug":"libtmux-common-get_libtmux_version"},{"id":"libtmux.constants.ResizeAdjustmentDirection","name":"ResizeAdjustmentDirection","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Used for *adjustment* in ``resize_window``, ``resize_pane``.","seeAlso":[]},"extends":["enum.Enum"],"source":{"file":"src/libtmux/constants.py","line":8,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.ResizeAdjustmentDirection","product":"core","slug":"libtmux-constants-resizeadjustmentdirection"},{"id":"libtmux.constants.ResizeAdjustmentDirection.Up","name":"Up","kind":"attribute","modifiers":[],"parent":"libtmux.constants.ResizeAdjustmentDirection","signatures":[],"value":"\"UP\"","source":{"file":"src/libtmux/constants.py","line":11,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.ResizeAdjustmentDirection.Up","product":"core","slug":"libtmux-constants-resizeadjustmentdirection-up"},{"id":"libtmux.constants.ResizeAdjustmentDirection.Down","name":"Down","kind":"attribute","modifiers":[],"parent":"libtmux.constants.ResizeAdjustmentDirection","signatures":[],"value":"\"DOWN\"","source":{"file":"src/libtmux/constants.py","line":12,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.ResizeAdjustmentDirection.Down","product":"core","slug":"libtmux-constants-resizeadjustmentdirection-down"},{"id":"libtmux.constants.ResizeAdjustmentDirection.Left","name":"Left","kind":"attribute","modifiers":[],"parent":"libtmux.constants.ResizeAdjustmentDirection","signatures":[],"value":"\"LEFT\"","source":{"file":"src/libtmux/constants.py","line":13,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.ResizeAdjustmentDirection.Left","product":"core","slug":"libtmux-constants-resizeadjustmentdirection-left"},{"id":"libtmux.constants.ResizeAdjustmentDirection.Right","name":"Right","kind":"attribute","modifiers":[],"parent":"libtmux.constants.ResizeAdjustmentDirection","signatures":[],"value":"\"RIGHT\"","source":{"file":"src/libtmux/constants.py","line":14,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.ResizeAdjustmentDirection.Right","product":"core","slug":"libtmux-constants-resizeadjustmentdirection-right"},{"id":"libtmux.constants.RESIZE_ADJUSTMENT_DIRECTION_FLAG_MAP","name":"RESIZE_ADJUSTMENT_DIRECTION_FLAG_MAP","kind":"constant","modifiers":[],"signatures":[],"type":"dict[ResizeAdjustmentDirection, str]","value":"{\n ResizeAdjustmentDirection.Up: \"-U\",\n ResizeAdjustmentDirection.Down: \"-D\",\n ResizeAdjustmentDirection.Left: \"-L\",\n ResizeAdjustmentDirection.Right: \"-R\",\n}","source":{"file":"src/libtmux/constants.py","line":17,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.RESIZE_ADJUSTMENT_DIRECTION_FLAG_MAP","product":"core","slug":"libtmux-constants-resize_adjustment_direction_flag_map"},{"id":"libtmux.constants.WindowDirection","name":"WindowDirection","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Used for *adjustment* in :meth:`Session.new_window()`.","seeAlso":[]},"extends":["enum.Enum"],"source":{"file":"src/libtmux/constants.py","line":25,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.WindowDirection","product":"core","slug":"libtmux-constants-windowdirection"},{"id":"libtmux.constants.WindowDirection.Before","name":"Before","kind":"attribute","modifiers":[],"parent":"libtmux.constants.WindowDirection","signatures":[],"value":"\"BEFORE\"","source":{"file":"src/libtmux/constants.py","line":28,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.WindowDirection.Before","product":"core","slug":"libtmux-constants-windowdirection-before"},{"id":"libtmux.constants.WindowDirection.After","name":"After","kind":"attribute","modifiers":[],"parent":"libtmux.constants.WindowDirection","signatures":[],"value":"\"AFTER\"","source":{"file":"src/libtmux/constants.py","line":29,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.WindowDirection.After","product":"core","slug":"libtmux-constants-windowdirection-after"},{"id":"libtmux.constants.WINDOW_DIRECTION_FLAG_MAP","name":"WINDOW_DIRECTION_FLAG_MAP","kind":"constant","modifiers":[],"signatures":[],"type":"dict[WindowDirection, str]","value":"{\n WindowDirection.Before: \"-b\",\n WindowDirection.After: \"-a\",\n}","source":{"file":"src/libtmux/constants.py","line":32,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.WINDOW_DIRECTION_FLAG_MAP","product":"core","slug":"libtmux-constants-window_direction_flag_map"},{"id":"libtmux.constants.PaneDirection","name":"PaneDirection","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Used for *adjustment* in :meth:`Pane.split()`.","seeAlso":[]},"extends":["enum.Enum"],"source":{"file":"src/libtmux/constants.py","line":38,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.PaneDirection","product":"core","slug":"libtmux-constants-panedirection"},{"id":"libtmux.constants.PaneDirection.Above","name":"Above","kind":"attribute","modifiers":[],"parent":"libtmux.constants.PaneDirection","signatures":[],"value":"\"ABOVE\"","source":{"file":"src/libtmux/constants.py","line":41,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.PaneDirection.Above","product":"core","slug":"libtmux-constants-panedirection-above"},{"id":"libtmux.constants.PaneDirection.Below","name":"Below","kind":"attribute","modifiers":[],"parent":"libtmux.constants.PaneDirection","signatures":[],"value":"\"BELOW\"","source":{"file":"src/libtmux/constants.py","line":42,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.PaneDirection.Below","product":"core","slug":"libtmux-constants-panedirection-below"},{"id":"libtmux.constants.PaneDirection.Right","name":"Right","kind":"attribute","modifiers":[],"parent":"libtmux.constants.PaneDirection","signatures":[],"value":"\"RIGHT\"","source":{"file":"src/libtmux/constants.py","line":43,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.PaneDirection.Right","product":"core","slug":"libtmux-constants-panedirection-right"},{"id":"libtmux.constants.PaneDirection.Left","name":"Left","kind":"attribute","modifiers":[],"parent":"libtmux.constants.PaneDirection","signatures":[],"value":"\"LEFT\"","source":{"file":"src/libtmux/constants.py","line":44,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.PaneDirection.Left","product":"core","slug":"libtmux-constants-panedirection-left"},{"id":"libtmux.constants.PANE_DIRECTION_FLAG_MAP","name":"PANE_DIRECTION_FLAG_MAP","kind":"constant","modifiers":[],"signatures":[],"type":"dict[PaneDirection, list[str]]","value":"{\n # -v is assumed, but for explicitness it is passed\n PaneDirection.Above: [\"-v\", \"-b\"],\n PaneDirection.Below: [\"-v\"],\n PaneDirection.Right: [\"-h\"],\n PaneDirection.Left: [\"-h\", \"-b\"],\n}","source":{"file":"src/libtmux/constants.py","line":47,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.PANE_DIRECTION_FLAG_MAP","product":"core","slug":"libtmux-constants-pane_direction_flag_map"},{"id":"libtmux.constants._DefaultOptionScope","name":"_DefaultOptionScope","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Sentinel meaning \"whichever scope tmux would use\".","body":"Distinct from passing no scope at all: this is the default value of the\n``scope`` parameter, and a call carrying it sends no scope flag. tmux then\nresolves the option itself, which for a pane option means falling back to\nthe window's and then to the global window options.","seeAlso":[]},"source":{"file":"src/libtmux/constants.py","line":56,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants._DefaultOptionScope","product":"core","slug":"libtmux-constants-_defaultoptionscope"},{"id":"libtmux.constants.DEFAULT_OPTION_SCOPE","name":"DEFAULT_OPTION_SCOPE","kind":"constant","modifiers":[],"signatures":[],"type":"_DefaultOptionScope","value":"_DefaultOptionScope()","source":{"file":"src/libtmux/constants.py","line":66,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.DEFAULT_OPTION_SCOPE","product":"core","slug":"libtmux-constants-default_option_scope"},{"id":"libtmux.constants.OptionScope","name":"OptionScope","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Scope used with ``set-option`` and ``show-option(s)`` commands.","seeAlso":[]},"extends":["enum.Enum"],"source":{"file":"src/libtmux/constants.py","line":69,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.OptionScope","product":"core","slug":"libtmux-constants-optionscope"},{"id":"libtmux.constants.OptionScope.Server","name":"Server","kind":"attribute","modifiers":[],"parent":"libtmux.constants.OptionScope","signatures":[],"value":"\"SERVER\"","source":{"file":"src/libtmux/constants.py","line":72,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.OptionScope.Server","product":"core","slug":"libtmux-constants-optionscope-server"},{"id":"libtmux.constants.OptionScope.Session","name":"Session","kind":"attribute","modifiers":[],"parent":"libtmux.constants.OptionScope","signatures":[],"value":"\"SESSION\"","source":{"file":"src/libtmux/constants.py","line":73,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.OptionScope.Session","product":"core","slug":"libtmux-constants-optionscope-session"},{"id":"libtmux.constants.OptionScope.Window","name":"Window","kind":"attribute","modifiers":[],"parent":"libtmux.constants.OptionScope","signatures":[],"value":"\"WINDOW\"","source":{"file":"src/libtmux/constants.py","line":74,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.OptionScope.Window","product":"core","slug":"libtmux-constants-optionscope-window"},{"id":"libtmux.constants.OptionScope.Pane","name":"Pane","kind":"attribute","modifiers":[],"parent":"libtmux.constants.OptionScope","signatures":[],"value":"\"PANE\"","source":{"file":"src/libtmux/constants.py","line":75,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.OptionScope.Pane","product":"core","slug":"libtmux-constants-optionscope-pane"},{"id":"libtmux.constants.OPTION_SCOPE_FLAG_MAP","name":"OPTION_SCOPE_FLAG_MAP","kind":"constant","modifiers":[],"signatures":[],"type":"dict[OptionScope, str]","value":"{\n OptionScope.Server: \"-s\",\n OptionScope.Session: \"\",\n OptionScope.Window: \"-w\",\n OptionScope.Pane: \"-p\",\n}","source":{"file":"src/libtmux/constants.py","line":78,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.OPTION_SCOPE_FLAG_MAP","product":"core","slug":"libtmux-constants-option_scope_flag_map"},{"id":"libtmux.constants.HOOK_SCOPE_FLAG_MAP","name":"HOOK_SCOPE_FLAG_MAP","kind":"constant","modifiers":[],"signatures":[],"type":"dict[OptionScope, str]","value":"{\n OptionScope.Server: \"-g\",\n OptionScope.Session: \"\",\n OptionScope.Window: \"-w\",\n OptionScope.Pane: \"-p\",\n}","source":{"file":"src/libtmux/constants.py","line":85,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.constants.HOOK_SCOPE_FLAG_MAP","product":"core","slug":"libtmux-constants-hook_scope_flag_map"},{"id":"libtmux.exc._format_query","name":"_format_query","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"query","type":"t.Mapping[str, t.Any]"}],"returns":"str"}],"doc":{"summary":"Render a :meth:`QueryList.get` lookup back as ``key=value`` text.","examples":[{"lang":"python","code":">>> from libtmux.exc import _format_query\n>>> _format_query({\"pane_id\": \"%0\"})\n\"pane_id='%0'\""},{"lang":"python","code":">>> _format_query({\"window_name\": \"shared\", \"window_index\": \"1\"})\n\"window_name='shared', window_index='1'\""},{"lang":"python","code":">>> _format_query({})\n''"}],"seeAlso":[]},"source":{"file":"src/libtmux/exc.py","line":16,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc._format_query","product":"core","slug":"libtmux-exc-_format_query"},{"id":"libtmux.exc.LibTmuxException","name":"LibTmuxException","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Base Exception for libtmux Errors.","seeAlso":[]},"extends":["Exception"],"source":{"file":"src/libtmux/exc.py","line":34,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.LibTmuxException","product":"core","slug":"libtmux-exc-libtmuxexception"},{"id":"libtmux.exc.LibTmuxException.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux.exc.LibTmuxException","signatures":[{"params":[{"name":"self"},{"name":"args","type":"object"},{"name":"subcommand","type":"str | None","default":"None"}],"returns":"None"}],"source":{"file":"src/libtmux/exc.py","line":49,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.LibTmuxException.__init__","product":"core","slug":"libtmux-exc-libtmuxexception-__init__"},{"id":"libtmux.exc.LibTmuxException.__str__","name":"__str__","kind":"method","modifiers":[],"parent":"libtmux.exc.LibTmuxException","signatures":[{"params":[{"name":"self"}],"returns":"str"}],"doc":{"summary":"Render with optional ``\": …\"`` prefix.","seeAlso":[]},"source":{"file":"src/libtmux/exc.py","line":57,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.LibTmuxException.__str__","product":"core","slug":"libtmux-exc-libtmuxexception-__str__"},{"id":"libtmux.exc.DeprecatedError","name":"DeprecatedError","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Raised when a deprecated function, method, or parameter is used.","body":"This exception provides clear guidance on what to use instead.","seeAlso":[]},"extends":["LibTmuxException"],"source":{"file":"src/libtmux/exc.py","line":65,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.DeprecatedError","product":"core","slug":"libtmux-exc-deprecatederror"},{"id":"libtmux.exc.DeprecatedError.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux.exc.DeprecatedError","signatures":[{"params":[{"name":"self"},{"name":"deprecated","type":"str","keywordOnly":true},{"name":"replacement","type":"str","keywordOnly":true},{"name":"version","type":"str","keywordOnly":true}],"returns":"None"}],"source":{"file":"src/libtmux/exc.py","line":80,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.DeprecatedError.__init__","product":"core","slug":"libtmux-exc-deprecatederror-__init__"},{"id":"libtmux.exc.TmuxSessionExists","name":"TmuxSessionExists","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Session does not exist in the server.","seeAlso":[]},"extends":["LibTmuxException"],"source":{"file":"src/libtmux/exc.py","line":94,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.TmuxSessionExists","product":"core","slug":"libtmux-exc-tmuxsessionexists"},{"id":"libtmux.exc.TmuxCommandNotFound","name":"TmuxCommandNotFound","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Application binary for tmux not found.","seeAlso":[]},"extends":["LibTmuxException"],"source":{"file":"src/libtmux/exc.py","line":98,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.TmuxCommandNotFound","product":"core","slug":"libtmux-exc-tmuxcommandnotfound"},{"id":"libtmux.exc.NotInsideTmux","name":"NotInsideTmux","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Raised when the process is not running inside a tmux pane.","body":"tmux exports ``$TMUX`` and ``$TMUX_PANE`` into the environment of every\npane it spawns. The ``from_env()`` family raises this when one of them is\nmissing or malformed -- i.e. the caller is not (or is no longer)\nrecognizable as a tmux pane's child process.","examples":[{"lang":"python","code":">>> from libtmux import exc\n>>> str(exc.NotInsideTmux(\"TMUX\"))\n'Not inside a tmux pane: $TMUX is unset or empty'"},{"lang":"python","code":">>> str(exc.NotInsideTmux(\"TMUX_PANE\", reason=\"not a pane id\"))\n'Not inside a tmux pane: $TMUX_PANE is not a pane id'"},{"lang":"python","code":">>> str(exc.NotInsideTmux())\n'Not inside a tmux pane'"},{"lang":"python","code":">>> issubclass(exc.NotInsideTmux, exc.LibTmuxException)\nTrue","intro":"It is part of the :exc:`LibTmuxException` hierarchy:"}],"seeAlso":[]},"extends":["LibTmuxException"],"source":{"file":"src/libtmux/exc.py","line":102,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.NotInsideTmux","product":"core","slug":"libtmux-exc-notinsidetmux"},{"id":"libtmux.exc.NotInsideTmux.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux.exc.NotInsideTmux","signatures":[{"params":[{"name":"self"},{"name":"variable","type":"str | None","default":"None"},{"name":"args","type":"object"},{"name":"reason","type":"str","default":"\"unset or empty\""}],"returns":"None"}],"source":{"file":"src/libtmux/exc.py","line":139,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.NotInsideTmux.__init__","product":"core","slug":"libtmux-exc-notinsidetmux-__init__"},{"id":"libtmux.exc.ObjectDoesNotExist","name":"ObjectDoesNotExist","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"A lookup expected one object and matched none.","body":"Raised by :meth:`~libtmux._internal.query_list.QueryList.get` when nothing\nmatches and no ``default`` was passed.","examples":[{"lang":"python","code":">>> from libtmux import exc\n>>> str(exc.ObjectDoesNotExist())\n'No objects found'"},{"lang":"python","code":">>> str(exc.ObjectDoesNotExist(query={\"pane_id\": \"%99\"}))\n\"No objects found: pane_id='%99'\"","intro":"A lookup that named what it wanted says so:"},{"lang":"python","code":">>> issubclass(exc.ObjectDoesNotExist, exc.LibTmuxException)\nTrue","intro":"It is part of the :exc:`LibTmuxException` hierarchy, so ``except LibTmuxException`` catches it:"}],"seeAlso":[]},"extends":["LibTmuxException"],"source":{"file":"src/libtmux/exc.py","line":154,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.ObjectDoesNotExist","product":"core","slug":"libtmux-exc-objectdoesnotexist"},{"id":"libtmux.exc.ObjectDoesNotExist.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux.exc.ObjectDoesNotExist","signatures":[{"params":[{"name":"self"},{"name":"args","type":"object"},{"name":"query","type":"t.Mapping[str, t.Any] | None","default":"None"}],"returns":"None"}],"source":{"file":"src/libtmux/exc.py","line":190,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.ObjectDoesNotExist.__init__","product":"core","slug":"libtmux-exc-objectdoesnotexist-__init__"},{"id":"libtmux.exc.MultipleObjectsReturned","name":"MultipleObjectsReturned","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"A lookup expected one object and matched several.","body":"Raised by :meth:`~libtmux._internal.query_list.QueryList.get`. Unlike\n:exc:`ObjectDoesNotExist`, a ``default`` does **not** suppress it: a\n``default`` is a stand-in for an object that is *absent*, and an ambiguous\nlookup is not an absent one. Silently answering with one of several equally\nvalid matches is how you end up driving the wrong pane.\n\nOn a server-wide collection, several matches for a single id is ordinary\nand means the window is linked into more than one session. See\n:ref:`winlinks` for what to do about it.","examples":[{"lang":"python","code":">>> from libtmux import exc\n>>> str(exc.MultipleObjectsReturned())\n'Multiple objects returned'"},{"lang":"python","code":">>> str(exc.MultipleObjectsReturned(count=2, query={\"pane_id\": \"%0\"}))\n\"Multiple objects returned (2): pane_id='%0'\"","intro":"A lookup that matched too much reports how much, and for what:"},{"lang":"python","code":">>> issubclass(exc.MultipleObjectsReturned, exc.LibTmuxException)\nTrue","intro":"It is part of the :exc:`LibTmuxException` hierarchy, so ``except LibTmuxException`` catches it:"}],"seeAlso":[]},"extends":["LibTmuxException"],"source":{"file":"src/libtmux/exc.py","line":205,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.MultipleObjectsReturned","product":"core","slug":"libtmux-exc-multipleobjectsreturned"},{"id":"libtmux.exc.MultipleObjectsReturned.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux.exc.MultipleObjectsReturned","signatures":[{"params":[{"name":"self"},{"name":"args","type":"object"},{"name":"count","type":"int | None","default":"None"},{"name":"query","type":"t.Mapping[str, t.Any] | None","default":"None"}],"returns":"None"}],"source":{"file":"src/libtmux/exc.py","line":251,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.MultipleObjectsReturned.__init__","product":"core","slug":"libtmux-exc-multipleobjectsreturned-__init__"},{"id":"libtmux.exc.TmuxObjectDoesNotExist","name":"TmuxObjectDoesNotExist","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"tmux has no object with the id that was asked for.","examples":[{"lang":"python","code":">>> from libtmux import exc\n>>> str(exc.TmuxObjectDoesNotExist())\n'Could not find object'"},{"lang":"python","code":">>> str(\n... exc.TmuxObjectDoesNotExist(\n... obj_key=\"pane_id\",\n... obj_id=\"%99\",\n... list_cmd=\"list-panes\",\n... list_extra_args=(\"-t\", \"%99\"),\n... )\n... )\n\"Could not find pane_id=%99 for list-panes ('-t', '%99')\""}],"seeAlso":[]},"extends":["ObjectDoesNotExist"],"source":{"file":"src/libtmux/exc.py","line":270,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.TmuxObjectDoesNotExist","product":"core","slug":"libtmux-exc-tmuxobjectdoesnotexist"},{"id":"libtmux.exc.TmuxObjectDoesNotExist.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux.exc.TmuxObjectDoesNotExist","signatures":[{"params":[{"name":"self"},{"name":"obj_key","type":"str | None","default":"None"},{"name":"obj_id","type":"str | None","default":"None"},{"name":"list_cmd","type":"str | None","default":"None"},{"name":"list_extra_args","type":"ListExtraArgs | None","default":"None"},{"name":"args","type":"object"}],"returns":"None"}],"source":{"file":"src/libtmux/exc.py","line":290,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.TmuxObjectDoesNotExist.__init__","product":"core","slug":"libtmux-exc-tmuxobjectdoesnotexist-__init__"},{"id":"libtmux.exc.VersionTooLow","name":"VersionTooLow","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Raised if tmux below the minimum version to use libtmux.","seeAlso":[]},"extends":["LibTmuxException"],"source":{"file":"src/libtmux/exc.py","line":307,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.VersionTooLow","product":"core","slug":"libtmux-exc-versiontoolow"},{"id":"libtmux.exc.BadSessionName","name":"BadSessionName","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Disallowed session name for tmux (empty, contains periods or colons).","seeAlso":[]},"extends":["LibTmuxException"],"source":{"file":"src/libtmux/exc.py","line":311,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.BadSessionName","product":"core","slug":"libtmux-exc-badsessionname"},{"id":"libtmux.exc.BadSessionName.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux.exc.BadSessionName","signatures":[{"params":[{"name":"self"},{"name":"reason","type":"str"},{"name":"session_name","type":"str | None","default":"None"},{"name":"args","type":"object"}],"returns":"None"}],"source":{"file":"src/libtmux/exc.py","line":314,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.BadSessionName.__init__","product":"core","slug":"libtmux-exc-badsessionname-__init__"},{"id":"libtmux.exc.OptionError","name":"OptionError","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Root error for any error involving invalid, ambiguous or bad options.","seeAlso":[]},"extends":["LibTmuxException"],"source":{"file":"src/libtmux/exc.py","line":326,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.OptionError","product":"core","slug":"libtmux-exc-optionerror"},{"id":"libtmux.exc.UnknownOption","name":"UnknownOption","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Option unknown to tmux show-option(s) or show-window-option(s).","seeAlso":[]},"extends":["OptionError"],"source":{"file":"src/libtmux/exc.py","line":330,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.UnknownOption","product":"core","slug":"libtmux-exc-unknownoption"},{"id":"libtmux.exc.UnknownColorOption","name":"UnknownColorOption","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Unknown color option.","seeAlso":[]},"extends":["UnknownOption"],"source":{"file":"src/libtmux/exc.py","line":334,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.UnknownColorOption","product":"core","slug":"libtmux-exc-unknowncoloroption"},{"id":"libtmux.exc.UnknownColorOption.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux.exc.UnknownColorOption","signatures":[{"params":[{"name":"self"},{"name":"args","type":"object"}],"returns":"None"}],"source":{"file":"src/libtmux/exc.py","line":337,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.UnknownColorOption.__init__","product":"core","slug":"libtmux-exc-unknowncoloroption-__init__"},{"id":"libtmux.exc.InvalidOption","name":"InvalidOption","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Option invalid to tmux.","seeAlso":[]},"extends":["OptionError"],"source":{"file":"src/libtmux/exc.py","line":341,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.InvalidOption","product":"core","slug":"libtmux-exc-invalidoption"},{"id":"libtmux.exc.AmbiguousOption","name":"AmbiguousOption","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Option that could potentially match more than one.","seeAlso":[]},"extends":["OptionError"],"source":{"file":"src/libtmux/exc.py","line":345,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.AmbiguousOption","product":"core","slug":"libtmux-exc-ambiguousoption"},{"id":"libtmux.exc.WaitTimeout","name":"WaitTimeout","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Function timed out without meeting condition.","seeAlso":[]},"extends":["LibTmuxException"],"source":{"file":"src/libtmux/exc.py","line":349,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.WaitTimeout","product":"core","slug":"libtmux-exc-waittimeout"},{"id":"libtmux.exc.VariableUnpackingError","name":"VariableUnpackingError","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Error unpacking variable.","seeAlso":[]},"extends":["LibTmuxException"],"source":{"file":"src/libtmux/exc.py","line":353,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.VariableUnpackingError","product":"core","slug":"libtmux-exc-variableunpackingerror"},{"id":"libtmux.exc.VariableUnpackingError.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux.exc.VariableUnpackingError","signatures":[{"params":[{"name":"self"},{"name":"variable","type":"t.Any | None","default":"None"},{"name":"args","type":"object"}],"returns":"None"}],"source":{"file":"src/libtmux/exc.py","line":356,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.VariableUnpackingError.__init__","product":"core","slug":"libtmux-exc-variableunpackingerror-__init__"},{"id":"libtmux.exc.PaneError","name":"PaneError","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Any type of pane related error.","seeAlso":[]},"extends":["LibTmuxException"],"source":{"file":"src/libtmux/exc.py","line":360,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.PaneError","product":"core","slug":"libtmux-exc-paneerror"},{"id":"libtmux.exc.PaneNotFound","name":"PaneNotFound","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Pane not found.","seeAlso":[]},"extends":["PaneError"],"source":{"file":"src/libtmux/exc.py","line":364,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.PaneNotFound","product":"core","slug":"libtmux-exc-panenotfound"},{"id":"libtmux.exc.PaneNotFound.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux.exc.PaneNotFound","signatures":[{"params":[{"name":"self"},{"name":"pane_id","type":"str | None","default":"None"},{"name":"args","type":"object"}],"returns":"None"}],"source":{"file":"src/libtmux/exc.py","line":367,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.PaneNotFound.__init__","product":"core","slug":"libtmux-exc-panenotfound-__init__"},{"id":"libtmux.exc.WindowError","name":"WindowError","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Any type of window related error.","seeAlso":[]},"extends":["LibTmuxException"],"source":{"file":"src/libtmux/exc.py","line":374,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.WindowError","product":"core","slug":"libtmux-exc-windowerror"},{"id":"libtmux.exc.MultipleActiveWindows","name":"MultipleActiveWindows","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Multiple active windows.","seeAlso":[]},"extends":["WindowError"],"source":{"file":"src/libtmux/exc.py","line":378,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.MultipleActiveWindows","product":"core","slug":"libtmux-exc-multipleactivewindows"},{"id":"libtmux.exc.MultipleActiveWindows.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux.exc.MultipleActiveWindows","signatures":[{"params":[{"name":"self"},{"name":"count","type":"int"},{"name":"args","type":"object"}],"returns":"None"}],"source":{"file":"src/libtmux/exc.py","line":381,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.MultipleActiveWindows.__init__","product":"core","slug":"libtmux-exc-multipleactivewindows-__init__"},{"id":"libtmux.exc.NoActiveWindow","name":"NoActiveWindow","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"No active window found.","seeAlso":[]},"extends":["WindowError"],"source":{"file":"src/libtmux/exc.py","line":385,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.NoActiveWindow","product":"core","slug":"libtmux-exc-noactivewindow"},{"id":"libtmux.exc.NoActiveWindow.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux.exc.NoActiveWindow","signatures":[{"params":[{"name":"self"},{"name":"args","type":"object"}],"returns":"None"}],"source":{"file":"src/libtmux/exc.py","line":388,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.NoActiveWindow.__init__","product":"core","slug":"libtmux-exc-noactivewindow-__init__"},{"id":"libtmux.exc.NoWindowsExist","name":"NoWindowsExist","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"No windows exist for object.","seeAlso":[]},"extends":["WindowError"],"source":{"file":"src/libtmux/exc.py","line":392,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.NoWindowsExist","product":"core","slug":"libtmux-exc-nowindowsexist"},{"id":"libtmux.exc.NoWindowsExist.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux.exc.NoWindowsExist","signatures":[{"params":[{"name":"self"},{"name":"args","type":"object"}],"returns":"None"}],"source":{"file":"src/libtmux/exc.py","line":395,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.NoWindowsExist.__init__","product":"core","slug":"libtmux-exc-nowindowsexist-__init__"},{"id":"libtmux.exc.AdjustmentDirectionRequiresAdjustment","name":"AdjustmentDirectionRequiresAdjustment","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"If *adjustment_direction* is set, *adjustment* must be set.","seeAlso":[]},"extends":["LibTmuxException","ValueError"],"source":{"file":"src/libtmux/exc.py","line":399,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.AdjustmentDirectionRequiresAdjustment","product":"core","slug":"libtmux-exc-adjustmentdirectionrequiresadjustment"},{"id":"libtmux.exc.AdjustmentDirectionRequiresAdjustment.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux.exc.AdjustmentDirectionRequiresAdjustment","signatures":[{"params":[{"name":"self"}],"returns":"None"}],"source":{"file":"src/libtmux/exc.py","line":402,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.AdjustmentDirectionRequiresAdjustment.__init__","product":"core","slug":"libtmux-exc-adjustmentdirectionrequiresadjustment-__init__"},{"id":"libtmux.exc.WindowAdjustmentDirectionRequiresAdjustment","name":"WindowAdjustmentDirectionRequiresAdjustment","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"ValueError for :meth:`libtmux.Window.resize_window`.","seeAlso":[]},"extends":["WindowError","AdjustmentDirectionRequiresAdjustment"],"source":{"file":"src/libtmux/exc.py","line":406,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.WindowAdjustmentDirectionRequiresAdjustment","product":"core","slug":"libtmux-exc-windowadjustmentdirectionrequiresadjustment"},{"id":"libtmux.exc.PaneAdjustmentDirectionRequiresAdjustment","name":"PaneAdjustmentDirectionRequiresAdjustment","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"ValueError for :meth:`libtmux.Pane.resize_pane`.","seeAlso":[]},"extends":["WindowError","AdjustmentDirectionRequiresAdjustment"],"source":{"file":"src/libtmux/exc.py","line":413,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.PaneAdjustmentDirectionRequiresAdjustment","product":"core","slug":"libtmux-exc-paneadjustmentdirectionrequiresadjustment"},{"id":"libtmux.exc.RequiresDigitOrPercentage","name":"RequiresDigitOrPercentage","kind":"exception","modifiers":[],"signatures":[],"doc":{"summary":"Requires digit (int or str digit) or a percentage.","seeAlso":[]},"extends":["LibTmuxException","ValueError"],"source":{"file":"src/libtmux/exc.py","line":420,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.RequiresDigitOrPercentage","product":"core","slug":"libtmux-exc-requiresdigitorpercentage"},{"id":"libtmux.exc.RequiresDigitOrPercentage.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux.exc.RequiresDigitOrPercentage","signatures":[{"params":[{"name":"self"}],"returns":"None"}],"source":{"file":"src/libtmux/exc.py","line":423,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.exc.RequiresDigitOrPercentage.__init__","product":"core","slug":"libtmux-exc-requiresdigitorpercentage-__init__"},{"id":"libtmux.formats.FORMAT_SEPARATOR","name":"FORMAT_SEPARATOR","kind":"constant","modifiers":[],"signatures":[],"value":"os.environ.get(\"LIBTMUX_TMUX_FORMAT_SEPARATOR\", \"␞\")","source":{"file":"src/libtmux/formats.py","line":21,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.formats.FORMAT_SEPARATOR","product":"core","slug":"libtmux-formats-format_separator"},{"id":"libtmux.formats.SESSION_FORMATS","name":"SESSION_FORMATS","kind":"constant","modifiers":[],"signatures":[],"value":"[\n \"session_name\",\n \"session_windows\",\n \"session_width\",\n \"session_height\",\n \"session_id\",\n \"session_created\",\n \"session_created_string\",\n \"session_attached\",\n # \"session_grouped\", Apparently unused in tmux.\n \"session_group\",\n]","source":{"file":"src/libtmux/formats.py","line":23,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.formats.SESSION_FORMATS","product":"core","slug":"libtmux-formats-session_formats"},{"id":"libtmux.formats.CLIENT_FORMATS","name":"CLIENT_FORMATS","kind":"constant","modifiers":[],"signatures":[],"value":"[\n \"client_cwd\",\n \"client_height\",\n \"client_width\",\n \"client_tty\",\n \"client_termname\",\n \"client_created\",\n \"client_created_string\",\n \"client_activity\",\n \"client_activity_string\",\n \"client_prefix\",\n \"client_utf8\",\n \"client_readonly\",\n \"client_session\",\n \"client_last_session\",\n]","source":{"file":"src/libtmux/formats.py","line":36,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.formats.CLIENT_FORMATS","product":"core","slug":"libtmux-formats-client_formats"},{"id":"libtmux.formats.WINDOW_FORMATS","name":"WINDOW_FORMATS","kind":"constant","modifiers":[],"signatures":[],"value":"[\n # format_window()\n \"window_id\",\n \"window_name\",\n \"window_width\",\n \"window_height\",\n \"window_layout\",\n \"window_panes\",\n # format_winlink()\n \"window_index\",\n \"window_flags\",\n \"window_active\",\n \"window_bell_flag\",\n \"window_activity_flag\",\n \"window_silence_flag\",\n]","source":{"file":"src/libtmux/formats.py","line":53,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.formats.WINDOW_FORMATS","product":"core","slug":"libtmux-formats-window_formats"},{"id":"libtmux.formats.PANE_FORMATS","name":"PANE_FORMATS","kind":"constant","modifiers":[],"signatures":[],"value":"[\n \"history_size\",\n \"history_limit\",\n \"history_bytes\",\n \"pane_index\",\n \"pane_width\",\n \"pane_height\",\n \"pane_title\",\n \"pane_id\",\n \"pane_active\",\n \"pane_dead\",\n \"pane_in_mode\",\n \"pane_synchronized\",\n \"pane_tty\",\n \"pane_pid\",\n \"pane_start_command\",\n \"pane_start_path\",\n \"pane_current_path\",\n \"pane_current_command\",\n \"cursor_x\",\n \"cursor_y\",\n \"scroll_region_upper\",\n \"scroll_region_lower\",\n \"saved_cursor_x\",\n \"saved_cursor_y\",\n \"alternate_on\",\n \"alternate_saved_x\",\n \"alternate_saved_y\",\n \"cursor_flag\",\n \"insert_flag\",\n \"keypad_cursor_flag\",\n \"keypad_flag\",\n \"wrap_flag\",\n \"mouse_standard_flag\",\n \"mouse_button_flag\",\n \"mouse_any_flag\",\n \"mouse_utf8_flag\",\n # tmux 3.7\n \"pane_flags\",\n \"pane_floating_flag\",\n \"pane_x\",\n \"pane_y\",\n \"pane_z\",\n \"pane_zoomed_flag\",\n \"pane_pb_progress\",\n \"pane_pb_state\",\n \"pane_pipe_pid\",\n \"bracket_paste_flag\",\n \"synchronized_output_flag\",\n]","source":{"file":"src/libtmux/formats.py","line":70,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"publicId":"libtmux.formats.PANE_FORMATS","product":"core","slug":"libtmux-formats-pane_formats"},{"id":"libtmux.hooks.HookDict","name":"HookDict","kind":"constant","modifiers":[],"signatures":[],"value":"dict[str, t.Any]","source":{"file":"src/libtmux/hooks.py","line":53,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.hooks.HookDict","product":"core","slug":"libtmux-hooks-hookdict"},{"id":"libtmux.hooks.HookValues","name":"HookValues","kind":"constant","modifiers":[],"signatures":[],"value":"dict[int, str] | SparseArray[str] | list[str]","source":{"file":"src/libtmux/hooks.py","line":54,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.hooks.HookValues","product":"core","slug":"libtmux-hooks-hookvalues"},{"id":"libtmux.hooks.logger","name":"logger","kind":"constant","modifiers":[],"signatures":[],"value":"logging.getLogger(__name__)","source":{"file":"src/libtmux/hooks.py","line":56,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.hooks.logger","product":"core","slug":"libtmux-hooks-logger"},{"id":"libtmux.hooks.HooksMixin","name":"HooksMixin","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Mixin for manager scoped hooks in tmux.","body":"Requires tmux 3.1+. For older versions, use raw commands.","seeAlso":[]},"extends":["CmdMixin"],"source":{"file":"src/libtmux/hooks.py","line":59,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.hooks.HooksMixin","product":"core","slug":"libtmux-hooks-hooksmixin"},{"id":"libtmux.hooks.HooksMixin.default_hook_scope","name":"default_hook_scope","kind":"attribute","modifiers":[],"parent":"libtmux.hooks.HooksMixin","signatures":[],"type":"OptionScope | None","source":{"file":"src/libtmux/hooks.py","line":65,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.hooks.HooksMixin.default_hook_scope","product":"core","slug":"libtmux-hooks-hooksmixin-default_hook_scope"},{"id":"libtmux.hooks.HooksMixin.hooks","name":"hooks","kind":"attribute","modifiers":[],"parent":"libtmux.hooks.HooksMixin","signatures":[],"type":"Hooks","source":{"file":"src/libtmux/hooks.py","line":66,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.hooks.HooksMixin.hooks","product":"core","slug":"libtmux-hooks-hooksmixin-hooks"},{"id":"libtmux.hooks.HooksMixin.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux.hooks.HooksMixin","signatures":[{"params":[{"name":"self"},{"name":"default_hook_scope","type":"OptionScope | None"}],"returns":"None"}],"doc":{"summary":"When not a user (custom) hook, scope can be implied.","seeAlso":[]},"source":{"file":"src/libtmux/hooks.py","line":68,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.hooks.HooksMixin.__init__","product":"core","slug":"libtmux-hooks-hooksmixin-__init__"},{"id":"libtmux.hooks.HooksMixin._tmux_bin","name":"_tmux_bin","kind":"property","modifiers":[],"parent":"libtmux.hooks.HooksMixin","signatures":[{"params":[{"name":"self"}],"returns":"str | None"}],"doc":{"summary":"Resolve tmux_bin from self (Server) or self.server (Session/Window/Pane).","seeAlso":[]},"source":{"file":"src/libtmux/hooks.py","line":74,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.hooks.HooksMixin._tmux_bin","product":"core","slug":"libtmux-hooks-hooksmixin-_tmux_bin"},{"id":"libtmux.hooks.HooksMixin.run_hook","name":"run_hook","kind":"method","modifiers":[],"parent":"libtmux.hooks.HooksMixin","signatures":[{"params":[{"name":"self"},{"name":"hook","type":"str"},{"name":"global_","type":"bool | None","default":"None"},{"name":"scope","type":"OptionScope | _DefaultOptionScope | None","default":"DEFAULT_OPTION_SCOPE"}],"returns":"Self"}],"doc":{"summary":"Run a hook immediately. Useful for testing.","seeAlso":[]},"source":{"file":"src/libtmux/hooks.py","line":80,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.hooks.HooksMixin.run_hook","product":"core","slug":"libtmux-hooks-hooksmixin-run_hook"},{"id":"libtmux.hooks.HooksMixin.set_hook","name":"set_hook","kind":"method","modifiers":[],"parent":"libtmux.hooks.HooksMixin","signatures":[{"params":[{"name":"self"},{"name":"hook","type":"str","doc":"hook to set, e.g. 'aggressive-resize'"},{"name":"value","type":"int | str","doc":"hook command."},{"name":"unset","type":"bool | None","default":"None"},{"name":"run","type":"bool | None","default":"None"},{"name":"append","type":"bool | None","default":"None"},{"name":"g","type":"bool | None","default":"None"},{"name":"global_","type":"bool | None","default":"None"},{"name":"scope","type":"OptionScope | _DefaultOptionScope | None","default":"DEFAULT_OPTION_SCOPE"}],"returns":"Self","raises":[{"type":"exc.OptionError"},{"type":"exc.UnknownOption"},{"type":"exc.InvalidOption"},{"type":"exc.AmbiguousOption"}]}],"doc":{"summary":"Set hook for tmux target.","body":"Wraps ``$ tmux set-hook ``.","seeAlso":[]},"source":{"file":"src/libtmux/hooks.py","line":118,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.hooks.HooksMixin.set_hook","product":"core","slug":"libtmux-hooks-hooksmixin-set_hook"},{"id":"libtmux.hooks.HooksMixin.unset_hook","name":"unset_hook","kind":"method","modifiers":[],"parent":"libtmux.hooks.HooksMixin","signatures":[{"params":[{"name":"self"},{"name":"hook","type":"str","doc":"hook to unset, e.g. 'after-show-environment'"},{"name":"global_","type":"bool | None","default":"None"},{"name":"scope","type":"OptionScope | _DefaultOptionScope | None","default":"DEFAULT_OPTION_SCOPE"}],"returns":"Self","raises":[{"type":"exc.OptionError"},{"type":"exc.UnknownOption"},{"type":"exc.InvalidOption"},{"type":"exc.AmbiguousOption"}]}],"doc":{"summary":"Unset hook for tmux target.","body":"Wraps ``$ tmux set-hook -u `` / ``$ tmux set-hook -U ``","seeAlso":[]},"source":{"file":"src/libtmux/hooks.py","line":198,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.hooks.HooksMixin.unset_hook","product":"core","slug":"libtmux-hooks-hooksmixin-unset_hook"},{"id":"libtmux.hooks.HooksMixin.show_hooks","name":"show_hooks","kind":"method","modifiers":[],"parent":"libtmux.hooks.HooksMixin","signatures":[{"params":[{"name":"self"},{"name":"global_","type":"bool | None","default":"False","doc":"Pass ``-g`` flag for global hooks, default False."},{"name":"scope","type":"OptionScope | _DefaultOptionScope | None","default":"DEFAULT_OPTION_SCOPE","doc":"Hook scope (Server/Session/Window/Pane), defaults to object's scope."}],"returns":"HookDict","returnsDoc":"HookDict\n Dictionary mapping hook names to their values."}],"doc":{"summary":"Return a dict of hooks for the target.","examples":[{"lang":"python","code":">>> session.set_hook('session-renamed[0]', 'display-message \"test\"')\nSession($...)"},{"lang":"python","code":">>> hooks = session.show_hooks()\n>>> isinstance(hooks, dict)\nTrue"},{"lang":"python","code":">>> 'session-renamed[0]' in hooks\nTrue"},{"lang":"python","code":">>> session.unset_hook('session-renamed')\nSession($...)"}],"seeAlso":[]},"source":{"file":"src/libtmux/hooks.py","line":250,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.hooks.HooksMixin.show_hooks","product":"core","slug":"libtmux-hooks-hooksmixin-show_hooks"},{"id":"libtmux.hooks.HooksMixin._show_hook","name":"_show_hook","kind":"method","modifiers":[],"parent":"libtmux.hooks.HooksMixin","signatures":[{"params":[{"name":"self"},{"name":"hook","type":"str"},{"name":"global_","type":"bool","default":"False"},{"name":"scope","type":"OptionScope | _DefaultOptionScope | None","default":"DEFAULT_OPTION_SCOPE"}],"returns":"list[str] | None","raises":[{"type":"exc.OptionError"},{"type":"exc.UnknownOption"},{"type":"exc.InvalidOption"},{"type":"exc.AmbiguousOption"}]}],"doc":{"summary":"Return value for the hook.","seeAlso":[]},"source":{"file":"src/libtmux/hooks.py","line":325,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.hooks.HooksMixin._show_hook","product":"core","slug":"libtmux-hooks-hooksmixin-_show_hook"},{"id":"libtmux.hooks.HooksMixin.show_hook","name":"show_hook","kind":"method","modifiers":[],"parent":"libtmux.hooks.HooksMixin","signatures":[{"params":[{"name":"self"},{"name":"hook","type":"str","doc":"Hook name to query"},{"name":"global_","type":"bool","default":"False"},{"name":"scope","type":"OptionScope | _DefaultOptionScope | None","default":"DEFAULT_OPTION_SCOPE"}],"returns":"str | int | SparseArray[str] | None","returnsDoc":"str | int | SparseArray[str] | None\n Hook value. For array hooks, returns SparseArray.","raises":[{"type":"exc.OptionError"},{"type":"exc.UnknownOption"},{"type":"exc.InvalidOption"},{"type":"exc.AmbiguousOption"}]}],"doc":{"summary":"Return value for a hook.","body":"For array hooks (e.g., ``session-renamed``), returns a\n:class:`~libtmux._internal.sparse_array.SparseArray` with hook values\nat their original indices. Use ``.keys()`` for indices and ``.values()``\nfor values.","examples":[{"lang":"python","code":">>> session.set_hook('session-renamed[0]', 'display-message \"test\"')\nSession($...)"},{"lang":"python","code":">>> hooks = session.show_hook('session-renamed')\n>>> isinstance(hooks, SparseArray)\nTrue"},{"lang":"python","code":">>> sorted(hooks.keys())\n[0]"},{"lang":"python","code":">>> session.unset_hook('session-renamed')\nSession($...)"}],"seeAlso":[]},"source":{"file":"src/libtmux/hooks.py","line":371,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.hooks.HooksMixin.show_hook","product":"core","slug":"libtmux-hooks-hooksmixin-show_hook"},{"id":"libtmux.hooks.HooksMixin.set_hooks","name":"set_hooks","kind":"method","modifiers":[],"parent":"libtmux.hooks.HooksMixin","signatures":[{"params":[{"name":"self"},{"name":"hook","type":"str","doc":"Hook name, e.g. 'session-renamed'"},{"name":"values","type":"HookValues","doc":"Values to set. Can be:\n- dict[int, str]: {0: 'cmd1', 1: 'cmd2'} - explicit indices\n- SparseArray[str]: preserves indices from another hook\n- list[str]: ['cmd1', 'cmd2'] - sequential indices starting at 0"},{"name":"clear_existing","type":"bool","default":"False","keywordOnly":true,"doc":"If True, unset all existing hook values first"},{"name":"global_","type":"bool | None","default":"None","keywordOnly":true,"doc":"Use global hooks"},{"name":"scope","type":"OptionScope | _DefaultOptionScope | None","default":"DEFAULT_OPTION_SCOPE","keywordOnly":true,"doc":"Scope for the hook"}],"returns":"Self","returnsDoc":"Self\n Returns self for method chaining."}],"doc":{"summary":"Set multiple indexed hooks at once.","examples":[{"lang":"python","code":">>> session.set_hooks('session-renamed', {\n... 0: 'display-message \"hook 0\"',\n... 1: 'display-message \"hook 1\"',\n... })\nSession($...)","intro":"Set hooks with explicit indices:"},{"lang":"python","code":">>> hooks = session.show_hook('session-renamed')\n>>> sorted(hooks.keys())\n[0, 1]"},{"lang":"python","code":">>> session.unset_hook('session-renamed')\nSession($...)"},{"lang":"python","code":">>> session.set_hooks('after-new-window', [\n... 'select-pane -t 0',\n... 'send-keys \"clear\" Enter',\n... ])\nSession($...)","intro":"Set hooks from a list (sequential indices):"},{"lang":"python","code":">>> hooks = session.show_hook('after-new-window')\n>>> sorted(hooks.keys())\n[0, 1]"},{"lang":"python","code":">>> session.set_hooks(\n... 'session-renamed',\n... {0: 'display-message \"new\"'},\n... clear_existing=True,\n... )\nSession($...)","intro":"Replace all existing hooks with ``clear_existing=True``:"},{"lang":"python","code":">>> hooks = session.show_hook('session-renamed')\n>>> sorted(hooks.keys())\n[0]"},{"lang":"python","code":">>> session.unset_hook('session-renamed')\nSession($...)"},{"lang":"python","code":">>> session.unset_hook('after-new-window')\nSession($...)"}],"seeAlso":[]},"source":{"file":"src/libtmux/hooks.py","line":437,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.hooks.HooksMixin.set_hooks","product":"core","slug":"libtmux-hooks-hooksmixin-set_hooks"},{"id":"libtmux.neo.logger","name":"logger","kind":"constant","modifiers":[],"signatures":[],"value":"logging.getLogger(__name__)","source":{"file":"src/libtmux/neo.py","line":23,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.logger","product":"core","slug":"libtmux-neo-logger"},{"id":"libtmux.neo.OutputRaw","name":"OutputRaw","kind":"constant","modifiers":[],"signatures":[],"value":"dict[str, t.Any]","source":{"file":"src/libtmux/neo.py","line":26,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.OutputRaw","product":"core","slug":"libtmux-neo-outputraw"},{"id":"libtmux.neo.OutputsRaw","name":"OutputsRaw","kind":"constant","modifiers":[],"signatures":[],"value":"list[OutputRaw]","source":{"file":"src/libtmux/neo.py","line":27,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.OutputsRaw","product":"core","slug":"libtmux-neo-outputsraw"},{"id":"libtmux.neo.SCOPES_BY_LIST_CMD","name":"SCOPES_BY_LIST_CMD","kind":"constant","modifiers":[],"signatures":[],"type":"dict[str, frozenset[str]]","value":"{\n \"list-sessions\": frozenset({\"universal\", \"session\", \"window\", \"pane\"}),\n \"list-windows\": frozenset({\"universal\", \"session\", \"window\", \"pane\"}),\n \"list-panes\": frozenset({\"universal\", \"session\", \"window\", \"pane\"}),\n \"list-clients\": frozenset({\"universal\", \"session\", \"window\", \"pane\", \"client\"}),\n}","doc":{"summary":"Format-token scopes a given tmux ``list-*`` subcommand can resolve.","body":"A token whose scope is in the set is safe to include in that subcommand's\n``-F`` template. A token whose scope is *outside* the set may be unavailable\nfor that command, so libtmux leaves it out.\n\nThe relationship is asymmetric: when tmux lists a parent object, it can also\nreport fields for that parent's active child. A session row can include its\ncurrent window and active pane fields, and a client row can include the\nattached session, current window, and active pane. ``client`` scope is the\nexception in the other direction: it appears only in ``list-clients`` because\nsession/window/pane listings do not have a client attachment to report.","seeAlso":[]},"source":{"file":"src/libtmux/neo.py","line":30,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.SCOPES_BY_LIST_CMD","product":"core","slug":"libtmux-neo-scopes_by_list_cmd"},{"id":"libtmux.neo.FIELD_VERSION","name":"FIELD_VERSION","kind":"constant","modifiers":[],"signatures":[],"type":"dict[str, str]","value":"{\n # Post-3.2a additions (verified against tmux's format.c at each gated\n # release tag, e.g. https://github.com/tmux/tmux/blob/3.6a/format.c).\n \"pane_dead_signal\": \"3.3\",\n \"pane_dead_time\": \"3.3\",\n # tmux 3.7 additions (verified against format.c / tmux.1 at the 3.7 tag).\n \"bracket_paste_flag\": \"3.7\",\n \"pane_flags\": \"3.7\",\n \"pane_floating_flag\": \"3.7\",\n \"pane_pb_progress\": \"3.7\",\n \"pane_pb_state\": \"3.7\",\n \"pane_pipe_pid\": \"3.7\",\n \"pane_x\": \"3.7\",\n \"pane_y\": \"3.7\",\n \"pane_z\": \"3.7\",\n \"pane_zoomed_flag\": \"3.7\",\n \"synchronized_output_flag\": \"3.7\",\n}","doc":{"summary":"Minimum tmux version that registers each format token.","body":"Field names absent from this dict default to ``\"3.2a\"`` (always-safe within\nthe supported tmux range). Entries here represent tokens added after 3.2a\nthat need explicit gating to keep the ``-F`` template compatible with older\ntmux versions.","seeAlso":[]},"source":{"file":"src/libtmux/neo.py","line":51,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.FIELD_VERSION","product":"core","slug":"libtmux-neo-field_version"},{"id":"libtmux.neo._SCOPE_PREFIXES","name":"_SCOPE_PREFIXES","kind":"constant","modifiers":[],"signatures":[],"type":"tuple[tuple[str, str], ...]","value":"(\n (\"copy_cursor_\", \"event\"),\n (\"pane_\", \"pane\"),\n (\"window_\", \"window\"),\n (\"session_\", \"session\"),\n (\"client_\", \"client\"),\n (\"buffer_\", \"buffer\"),\n (\"mouse_\", \"event\"),\n (\"cursor_\", \"event\"),\n (\"selection_\", \"event\"),\n (\"scroll_\", \"event\"),\n (\"popup_\", \"event\"),\n)","source":{"file":"src/libtmux/neo.py","line":81,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo._SCOPE_PREFIXES","product":"core","slug":"libtmux-neo-_scope_prefixes"},{"id":"libtmux.neo._SCOPE_OVERRIDES","name":"_SCOPE_OVERRIDES","kind":"constant","modifiers":[],"signatures":[],"type":"dict[str, str]","value":"{\n \"cursor_x\": \"pane\", # ft->wp->base.cx\n \"cursor_y\": \"pane\", # ft->wp->base.cy\n \"cursor_flag\": \"pane\", # ft->wp->base.mode\n \"cursor_character\": \"pane\", # ft->wp\n \"mouse_all_flag\": \"pane\", # ft->wp->base.mode MODE_MOUSE_ALL\n \"mouse_any_flag\": \"pane\", # ft->wp->base.mode ALL_MOUSE_MODES\n \"mouse_button_flag\": \"pane\", # ft->wp->base.mode MODE_MOUSE_BUTTON\n \"mouse_sgr_flag\": \"pane\", # ft->wp->base.mode MODE_MOUSE_SGR\n \"mouse_standard_flag\": \"pane\", # ft->wp->base.mode MODE_MOUSE_STANDARD\n \"scroll_region_lower\": \"pane\", # ft->wp->base.rlower\n \"scroll_region_upper\": \"pane\", # ft->wp->base.rupper\n \"alternate_saved_x\": \"pane\", # ft->wp->base.saved_cx\n \"alternate_saved_y\": \"pane\", # ft->wp->base.saved_cy\n \"history_bytes\": \"pane\", # ft->wp\n \"history_limit\": \"pane\", # ft->wp->base.grid->hlimit\n \"history_size\": \"pane\", # ft->wp->base.grid->hsize\n \"insert_flag\": \"pane\", # ft->wp->base.mode MODE_INSERT\n \"keypad_cursor_flag\": \"pane\", # ft->wp->base.mode MODE_KCURSOR\n \"keypad_flag\": \"pane\", # ft->wp->base.mode MODE_KKEYPAD\n \"origin_flag\": \"pane\", # ft->wp->base.mode MODE_ORIGIN\n \"wrap_flag\": \"pane\", # ft->wp->base.mode MODE_WRAP\n \"active_window_index\": \"session\", # ft->s->curw->idx\n \"last_window_index\": \"session\", # ft->s\n # tmux 3.7 pane-scope tokens that don't carry the pane_ prefix.\n \"bracket_paste_flag\": \"pane\", # ft->wp->screen->mode MODE_BRACKETPASTE\n \"synchronized_output_flag\": \"pane\", # ft->wp->base.mode MODE_SYNC\n}","source":{"file":"src/libtmux/neo.py","line":100,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo._SCOPE_OVERRIDES","product":"core","slug":"libtmux-neo-_scope_overrides"},{"id":"libtmux.neo._UNIVERSAL_TOKENS","name":"_UNIVERSAL_TOKENS","kind":"constant","modifiers":[],"signatures":[],"type":"frozenset[str]","value":"frozenset(\n {\n \"config_files\",\n \"host\",\n \"host_short\",\n \"line\",\n \"next_session_id\",\n \"pid\",\n \"socket_path\",\n \"start_time\",\n \"uid\",\n \"user\",\n \"version\",\n }\n)","source":{"file":"src/libtmux/neo.py","line":138,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo._UNIVERSAL_TOKENS","product":"core","slug":"libtmux-neo-_universal_tokens"},{"id":"libtmux.neo._CONTEXT_ONLY_TOKENS","name":"_CONTEXT_ONLY_TOKENS","kind":"constant","modifiers":[],"signatures":[],"type":"frozenset[str]","value":"frozenset(\n {\n \"command_list_alias\",\n \"command_list_name\",\n \"command_list_usage\",\n \"current_file\",\n \"search_match\",\n }\n)","source":{"file":"src/libtmux/neo.py","line":169,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo._CONTEXT_ONLY_TOKENS","product":"core","slug":"libtmux-neo-_context_only_tokens"},{"id":"libtmux.neo._token_scope","name":"_token_scope","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"field_name","type":"str"}],"returns":"str"}],"doc":{"summary":"Resolve a format token's scope from its name.","body":"Returns ``\"universal\"`` for cross-scope tokens (e.g. ``version``,\n``socket_path``, ``host``). Returns ``\"event\"`` for runtime-only tokens\nthat never appear in a ``list-*`` output (mouse, cursor, selection,\npopup). Returns ``\"context\"`` for tokens registered outside\n``format.c``'s static table (only resolve in a specific command or\nmode context). Returns ``\"pane\"`` / ``\"window\"`` / ``\"session\"`` /\n``\"client\"`` / ``\"buffer\"`` for scope-prefixed tokens.\n\nFields that don't match any prefix, override, or known-token table\nfall back to ``\"unknown\"``. ``\"unknown\"`` is intentionally absent from\nevery :data:`SCOPES_BY_LIST_CMD` entry, so an unclassified field is\nexcluded from every ``list-*`` ``-F`` template — preventing a future\nuntracked field from being silently emitted under a list command\nwhere it might crash older tmux. Add such a field to\n:data:`_SCOPE_OVERRIDES` (or the appropriate prefix / known-token\ntable) to admit it.\n\n### Notes\n\nFields whose name doesn't carry one of the scope prefixes in\n:data:`_SCOPE_PREFIXES` (for example, ``bracket_paste_flag`` and\n``synchronized_output_flag``, which are pane-scope but don't start\nwith ``pane_``) MUST be classified via :data:`_SCOPE_OVERRIDES` —\notherwise the fail-closed default returns ``\"unknown\"`` and\nexcludes them from every ``list-*`` ``-F`` template. The drift\ncatcher ``test_every_obj_field_classifies_to_known_scope`` enforces\nthis on the base :class:`Obj`; subclasses that add custom fields\nmust classify them via the same tables.","examples":[{"lang":"python","code":">>> from libtmux.neo import _token_scope\n>>> _token_scope(\"pane_id\")\n'pane'\n>>> _token_scope(\"window_zoomed_flag\")\n'window'\n>>> _token_scope(\"client_name\")\n'client'\n>>> _token_scope(\"version\")\n'universal'\n>>> _token_scope(\"mouse_x\")\n'event'"},{"lang":"python","code":">>> _token_scope(\"mouse_all_flag\")\n'pane'\n>>> _token_scope(\"active_window_index\")\n'session'","intro":"Tokens whose name doesn't carry a scope prefix can still be scope-gated via :data:`_SCOPE_OVERRIDES` (verified against tmux's ``format_cb_*``). The override also corrects prefix-misclassified tokens — e.g. ``mouse_all_flag`` is a per-pane mode bit, not a runtime mouse event:"},{"lang":"python","code":">>> _token_scope(\"command_list_alias\")\n'context'\n>>> _token_scope(\"search_match\")\n'context'","intro":"Context-only tokens (registered outside ``format.c``'s static table) route to the ``\"context\"`` scope and are excluded from every ``list-*`` ``-F`` template:"},{"lang":"python","code":">>> _token_scope(\"libtmux_test_nonexistent_token\")\n'unknown'","intro":"Unclassified tokens fall back to ``\"unknown\"``, also excluded from every list command:"}],"seeAlso":[]},"source":{"file":"src/libtmux/neo.py","line":180,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo._token_scope","product":"core","slug":"libtmux-neo-_token_scope"},{"id":"libtmux.neo._normalize_tmux_version","name":"_normalize_tmux_version","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"version","type":"str"}],"returns":"LooseVersion"}],"doc":{"summary":"Convert a tmux version string into a comparable :class:`LooseVersion`.","body":"tmux master is reported as ``\"master\"`` (or e.g. ``\"3.6a-master\"``);\ntreat it as larger than any tagged release.","examples":[{"lang":"python","code":">>> from libtmux.neo import _normalize_tmux_version\n>>> _normalize_tmux_version(\"3.6a\") < _normalize_tmux_version(\"master\")\nTrue\n>>> _normalize_tmux_version(\"3.2a\") < _normalize_tmux_version(\"3.6a\")\nTrue"}],"seeAlso":[]},"source":{"file":"src/libtmux/neo.py","line":264,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo._normalize_tmux_version","product":"core","slug":"libtmux-neo-_normalize_tmux_version"},{"id":"libtmux.neo.Obj","name":"Obj","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Dataclass of generic tmux object.","body":"Every field but ``server`` is a tmux format token, and tmux reports each\none as a string. A field is ``None`` when its token was left out of the\nquery or expanded to empty: tokens outside the listing's scope (see\n:data:`SCOPES_BY_LIST_CMD`) and tokens the running tmux is too old to\nregister (see :data:`FIELD_VERSION`) are never requested, and copy-mode\nand command-context tokens only resolve at event time.\n\n### Notes\n\ntmux may return fields from an object's active children along with the\nobject itself. The practical consequence:\n\n- On a :class:`~libtmux.session.Session` row (``list-sessions``),\n every ``pane_*`` and ``window_*`` field resolves to the\n session's current window's **active pane** — *not* \"the\n session's pane\" (no such thing). ``session.active_window.window_id``\n and ``session.active_window.active_pane.pane_id`` are the\n canonical accessors for the same values.\n- On a :class:`~libtmux.window.Window` row (``list-windows``),\n every ``pane_*`` field resolves to that window's active pane.\n- On a :class:`~libtmux.client.Client` row (``list-clients``),\n every ``session_*``, ``window_*``, and ``pane_*`` field reflects\n the client's attached session, current window, and active pane.\n\nA reader who treats ``session.pane_id`` as the literal session's\npane id (rather than \"active pane of this session's current\nwindow\") will be surprised when the active window changes.","seeAlso":[]},"source":{"file":"src/libtmux/neo.py","line":284,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj","product":"core","slug":"libtmux-neo-obj"},{"id":"libtmux.neo.Obj.server","name":"server","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"Server","source":{"file":"src/libtmux/neo.py","line":687,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.server","product":"core","slug":"libtmux-neo-obj-server"},{"id":"libtmux.neo.Obj.active_window_index","name":"active_window_index","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":689,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.active_window_index","product":"core","slug":"libtmux-neo-obj-active_window_index"},{"id":"libtmux.neo.Obj.alternate_saved_x","name":"alternate_saved_x","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":690,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.alternate_saved_x","product":"core","slug":"libtmux-neo-obj-alternate_saved_x"},{"id":"libtmux.neo.Obj.alternate_saved_y","name":"alternate_saved_y","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":691,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.alternate_saved_y","product":"core","slug":"libtmux-neo-obj-alternate_saved_y"},{"id":"libtmux.neo.Obj.bracket_paste_flag","name":"bracket_paste_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":692,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.bracket_paste_flag","product":"core","slug":"libtmux-neo-obj-bracket_paste_flag"},{"id":"libtmux.neo.Obj.buffer_name","name":"buffer_name","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":693,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.buffer_name","product":"core","slug":"libtmux-neo-obj-buffer_name"},{"id":"libtmux.neo.Obj.buffer_sample","name":"buffer_sample","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":694,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.buffer_sample","product":"core","slug":"libtmux-neo-obj-buffer_sample"},{"id":"libtmux.neo.Obj.buffer_size","name":"buffer_size","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":695,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.buffer_size","product":"core","slug":"libtmux-neo-obj-buffer_size"},{"id":"libtmux.neo.Obj.client_activity","name":"client_activity","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":696,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_activity","product":"core","slug":"libtmux-neo-obj-client_activity"},{"id":"libtmux.neo.Obj.client_cell_height","name":"client_cell_height","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":697,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_cell_height","product":"core","slug":"libtmux-neo-obj-client_cell_height"},{"id":"libtmux.neo.Obj.client_cell_width","name":"client_cell_width","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":698,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_cell_width","product":"core","slug":"libtmux-neo-obj-client_cell_width"},{"id":"libtmux.neo.Obj.client_control_mode","name":"client_control_mode","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":699,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_control_mode","product":"core","slug":"libtmux-neo-obj-client_control_mode"},{"id":"libtmux.neo.Obj.client_created","name":"client_created","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":700,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_created","product":"core","slug":"libtmux-neo-obj-client_created"},{"id":"libtmux.neo.Obj.client_discarded","name":"client_discarded","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":701,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_discarded","product":"core","slug":"libtmux-neo-obj-client_discarded"},{"id":"libtmux.neo.Obj.client_flags","name":"client_flags","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":702,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_flags","product":"core","slug":"libtmux-neo-obj-client_flags"},{"id":"libtmux.neo.Obj.client_height","name":"client_height","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":703,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_height","product":"core","slug":"libtmux-neo-obj-client_height"},{"id":"libtmux.neo.Obj.client_key_table","name":"client_key_table","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":704,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_key_table","product":"core","slug":"libtmux-neo-obj-client_key_table"},{"id":"libtmux.neo.Obj.client_last_session","name":"client_last_session","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":705,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_last_session","product":"core","slug":"libtmux-neo-obj-client_last_session"},{"id":"libtmux.neo.Obj.client_mode_format","name":"client_mode_format","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":706,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_mode_format","product":"core","slug":"libtmux-neo-obj-client_mode_format"},{"id":"libtmux.neo.Obj.client_name","name":"client_name","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":707,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_name","product":"core","slug":"libtmux-neo-obj-client_name"},{"id":"libtmux.neo.Obj.client_pid","name":"client_pid","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":708,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_pid","product":"core","slug":"libtmux-neo-obj-client_pid"},{"id":"libtmux.neo.Obj.client_prefix","name":"client_prefix","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":709,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_prefix","product":"core","slug":"libtmux-neo-obj-client_prefix"},{"id":"libtmux.neo.Obj.client_readonly","name":"client_readonly","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":710,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_readonly","product":"core","slug":"libtmux-neo-obj-client_readonly"},{"id":"libtmux.neo.Obj.client_session","name":"client_session","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":711,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_session","product":"core","slug":"libtmux-neo-obj-client_session"},{"id":"libtmux.neo.Obj.client_termfeatures","name":"client_termfeatures","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":712,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_termfeatures","product":"core","slug":"libtmux-neo-obj-client_termfeatures"},{"id":"libtmux.neo.Obj.client_termname","name":"client_termname","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":713,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_termname","product":"core","slug":"libtmux-neo-obj-client_termname"},{"id":"libtmux.neo.Obj.client_termtype","name":"client_termtype","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":714,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_termtype","product":"core","slug":"libtmux-neo-obj-client_termtype"},{"id":"libtmux.neo.Obj.client_tty","name":"client_tty","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":715,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_tty","product":"core","slug":"libtmux-neo-obj-client_tty"},{"id":"libtmux.neo.Obj.client_uid","name":"client_uid","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":716,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_uid","product":"core","slug":"libtmux-neo-obj-client_uid"},{"id":"libtmux.neo.Obj.client_user","name":"client_user","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":717,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_user","product":"core","slug":"libtmux-neo-obj-client_user"},{"id":"libtmux.neo.Obj.client_utf8","name":"client_utf8","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":718,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_utf8","product":"core","slug":"libtmux-neo-obj-client_utf8"},{"id":"libtmux.neo.Obj.client_width","name":"client_width","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":719,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_width","product":"core","slug":"libtmux-neo-obj-client_width"},{"id":"libtmux.neo.Obj.client_written","name":"client_written","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":720,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.client_written","product":"core","slug":"libtmux-neo-obj-client_written"},{"id":"libtmux.neo.Obj.command_list_alias","name":"command_list_alias","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":721,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.command_list_alias","product":"core","slug":"libtmux-neo-obj-command_list_alias"},{"id":"libtmux.neo.Obj.command_list_name","name":"command_list_name","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":722,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.command_list_name","product":"core","slug":"libtmux-neo-obj-command_list_name"},{"id":"libtmux.neo.Obj.command_list_usage","name":"command_list_usage","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":723,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.command_list_usage","product":"core","slug":"libtmux-neo-obj-command_list_usage"},{"id":"libtmux.neo.Obj.config_files","name":"config_files","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":724,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.config_files","product":"core","slug":"libtmux-neo-obj-config_files"},{"id":"libtmux.neo.Obj.copy_cursor_line","name":"copy_cursor_line","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":725,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.copy_cursor_line","product":"core","slug":"libtmux-neo-obj-copy_cursor_line"},{"id":"libtmux.neo.Obj.copy_cursor_word","name":"copy_cursor_word","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":726,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.copy_cursor_word","product":"core","slug":"libtmux-neo-obj-copy_cursor_word"},{"id":"libtmux.neo.Obj.copy_cursor_x","name":"copy_cursor_x","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":727,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.copy_cursor_x","product":"core","slug":"libtmux-neo-obj-copy_cursor_x"},{"id":"libtmux.neo.Obj.copy_cursor_y","name":"copy_cursor_y","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":728,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.copy_cursor_y","product":"core","slug":"libtmux-neo-obj-copy_cursor_y"},{"id":"libtmux.neo.Obj.current_file","name":"current_file","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":729,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.current_file","product":"core","slug":"libtmux-neo-obj-current_file"},{"id":"libtmux.neo.Obj.cursor_character","name":"cursor_character","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":730,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.cursor_character","product":"core","slug":"libtmux-neo-obj-cursor_character"},{"id":"libtmux.neo.Obj.cursor_flag","name":"cursor_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":731,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.cursor_flag","product":"core","slug":"libtmux-neo-obj-cursor_flag"},{"id":"libtmux.neo.Obj.cursor_x","name":"cursor_x","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":732,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.cursor_x","product":"core","slug":"libtmux-neo-obj-cursor_x"},{"id":"libtmux.neo.Obj.cursor_y","name":"cursor_y","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":733,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.cursor_y","product":"core","slug":"libtmux-neo-obj-cursor_y"},{"id":"libtmux.neo.Obj.history_bytes","name":"history_bytes","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":734,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.history_bytes","product":"core","slug":"libtmux-neo-obj-history_bytes"},{"id":"libtmux.neo.Obj.history_limit","name":"history_limit","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":735,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.history_limit","product":"core","slug":"libtmux-neo-obj-history_limit"},{"id":"libtmux.neo.Obj.history_size","name":"history_size","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":736,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.history_size","product":"core","slug":"libtmux-neo-obj-history_size"},{"id":"libtmux.neo.Obj.insert_flag","name":"insert_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":737,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.insert_flag","product":"core","slug":"libtmux-neo-obj-insert_flag"},{"id":"libtmux.neo.Obj.keypad_cursor_flag","name":"keypad_cursor_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":738,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.keypad_cursor_flag","product":"core","slug":"libtmux-neo-obj-keypad_cursor_flag"},{"id":"libtmux.neo.Obj.keypad_flag","name":"keypad_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":739,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.keypad_flag","product":"core","slug":"libtmux-neo-obj-keypad_flag"},{"id":"libtmux.neo.Obj.last_window_index","name":"last_window_index","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":740,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.last_window_index","product":"core","slug":"libtmux-neo-obj-last_window_index"},{"id":"libtmux.neo.Obj.line","name":"line","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":741,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.line","product":"core","slug":"libtmux-neo-obj-line"},{"id":"libtmux.neo.Obj.mouse_all_flag","name":"mouse_all_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":742,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.mouse_all_flag","product":"core","slug":"libtmux-neo-obj-mouse_all_flag"},{"id":"libtmux.neo.Obj.mouse_any_flag","name":"mouse_any_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":743,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.mouse_any_flag","product":"core","slug":"libtmux-neo-obj-mouse_any_flag"},{"id":"libtmux.neo.Obj.mouse_button_flag","name":"mouse_button_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":744,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.mouse_button_flag","product":"core","slug":"libtmux-neo-obj-mouse_button_flag"},{"id":"libtmux.neo.Obj.mouse_sgr_flag","name":"mouse_sgr_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":745,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.mouse_sgr_flag","product":"core","slug":"libtmux-neo-obj-mouse_sgr_flag"},{"id":"libtmux.neo.Obj.mouse_standard_flag","name":"mouse_standard_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":746,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.mouse_standard_flag","product":"core","slug":"libtmux-neo-obj-mouse_standard_flag"},{"id":"libtmux.neo.Obj.next_session_id","name":"next_session_id","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":747,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.next_session_id","product":"core","slug":"libtmux-neo-obj-next_session_id"},{"id":"libtmux.neo.Obj.origin_flag","name":"origin_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":748,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.origin_flag","product":"core","slug":"libtmux-neo-obj-origin_flag"},{"id":"libtmux.neo.Obj.pane_active","name":"pane_active","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":749,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_active","product":"core","slug":"libtmux-neo-obj-pane_active"},{"id":"libtmux.neo.Obj.pane_at_bottom","name":"pane_at_bottom","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":750,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_at_bottom","product":"core","slug":"libtmux-neo-obj-pane_at_bottom"},{"id":"libtmux.neo.Obj.pane_at_left","name":"pane_at_left","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":751,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_at_left","product":"core","slug":"libtmux-neo-obj-pane_at_left"},{"id":"libtmux.neo.Obj.pane_at_right","name":"pane_at_right","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":752,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_at_right","product":"core","slug":"libtmux-neo-obj-pane_at_right"},{"id":"libtmux.neo.Obj.pane_at_top","name":"pane_at_top","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":753,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_at_top","product":"core","slug":"libtmux-neo-obj-pane_at_top"},{"id":"libtmux.neo.Obj.pane_bg","name":"pane_bg","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":754,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_bg","product":"core","slug":"libtmux-neo-obj-pane_bg"},{"id":"libtmux.neo.Obj.pane_bottom","name":"pane_bottom","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":755,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_bottom","product":"core","slug":"libtmux-neo-obj-pane_bottom"},{"id":"libtmux.neo.Obj.pane_current_command","name":"pane_current_command","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":756,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_current_command","product":"core","slug":"libtmux-neo-obj-pane_current_command"},{"id":"libtmux.neo.Obj.pane_current_path","name":"pane_current_path","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":757,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_current_path","product":"core","slug":"libtmux-neo-obj-pane_current_path"},{"id":"libtmux.neo.Obj.pane_dead","name":"pane_dead","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":758,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_dead","product":"core","slug":"libtmux-neo-obj-pane_dead"},{"id":"libtmux.neo.Obj.pane_dead_signal","name":"pane_dead_signal","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":759,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_dead_signal","product":"core","slug":"libtmux-neo-obj-pane_dead_signal"},{"id":"libtmux.neo.Obj.pane_dead_status","name":"pane_dead_status","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":760,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_dead_status","product":"core","slug":"libtmux-neo-obj-pane_dead_status"},{"id":"libtmux.neo.Obj.pane_dead_time","name":"pane_dead_time","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":761,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_dead_time","product":"core","slug":"libtmux-neo-obj-pane_dead_time"},{"id":"libtmux.neo.Obj.pane_fg","name":"pane_fg","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":762,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_fg","product":"core","slug":"libtmux-neo-obj-pane_fg"},{"id":"libtmux.neo.Obj.pane_flags","name":"pane_flags","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":763,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_flags","product":"core","slug":"libtmux-neo-obj-pane_flags"},{"id":"libtmux.neo.Obj.pane_floating_flag","name":"pane_floating_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":764,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_floating_flag","product":"core","slug":"libtmux-neo-obj-pane_floating_flag"},{"id":"libtmux.neo.Obj.pane_format","name":"pane_format","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":765,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_format","product":"core","slug":"libtmux-neo-obj-pane_format"},{"id":"libtmux.neo.Obj.pane_height","name":"pane_height","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":766,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_height","product":"core","slug":"libtmux-neo-obj-pane_height"},{"id":"libtmux.neo.Obj.pane_id","name":"pane_id","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":767,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_id","product":"core","slug":"libtmux-neo-obj-pane_id"},{"id":"libtmux.neo.Obj.pane_in_mode","name":"pane_in_mode","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":768,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_in_mode","product":"core","slug":"libtmux-neo-obj-pane_in_mode"},{"id":"libtmux.neo.Obj.pane_index","name":"pane_index","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":769,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_index","product":"core","slug":"libtmux-neo-obj-pane_index"},{"id":"libtmux.neo.Obj.pane_input_off","name":"pane_input_off","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":770,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_input_off","product":"core","slug":"libtmux-neo-obj-pane_input_off"},{"id":"libtmux.neo.Obj.pane_last","name":"pane_last","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":771,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_last","product":"core","slug":"libtmux-neo-obj-pane_last"},{"id":"libtmux.neo.Obj.pane_left","name":"pane_left","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":772,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_left","product":"core","slug":"libtmux-neo-obj-pane_left"},{"id":"libtmux.neo.Obj.pane_marked","name":"pane_marked","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":773,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_marked","product":"core","slug":"libtmux-neo-obj-pane_marked"},{"id":"libtmux.neo.Obj.pane_marked_set","name":"pane_marked_set","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":774,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_marked_set","product":"core","slug":"libtmux-neo-obj-pane_marked_set"},{"id":"libtmux.neo.Obj.pane_mode","name":"pane_mode","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":775,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_mode","product":"core","slug":"libtmux-neo-obj-pane_mode"},{"id":"libtmux.neo.Obj.pane_path","name":"pane_path","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":776,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_path","product":"core","slug":"libtmux-neo-obj-pane_path"},{"id":"libtmux.neo.Obj.pane_pb_progress","name":"pane_pb_progress","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":777,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_pb_progress","product":"core","slug":"libtmux-neo-obj-pane_pb_progress"},{"id":"libtmux.neo.Obj.pane_pb_state","name":"pane_pb_state","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":778,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_pb_state","product":"core","slug":"libtmux-neo-obj-pane_pb_state"},{"id":"libtmux.neo.Obj.pane_pid","name":"pane_pid","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":779,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_pid","product":"core","slug":"libtmux-neo-obj-pane_pid"},{"id":"libtmux.neo.Obj.pane_pipe","name":"pane_pipe","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":780,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_pipe","product":"core","slug":"libtmux-neo-obj-pane_pipe"},{"id":"libtmux.neo.Obj.pane_pipe_pid","name":"pane_pipe_pid","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":781,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_pipe_pid","product":"core","slug":"libtmux-neo-obj-pane_pipe_pid"},{"id":"libtmux.neo.Obj.pane_right","name":"pane_right","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":782,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_right","product":"core","slug":"libtmux-neo-obj-pane_right"},{"id":"libtmux.neo.Obj.pane_search_string","name":"pane_search_string","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":783,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_search_string","product":"core","slug":"libtmux-neo-obj-pane_search_string"},{"id":"libtmux.neo.Obj.pane_start_command","name":"pane_start_command","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":784,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_start_command","product":"core","slug":"libtmux-neo-obj-pane_start_command"},{"id":"libtmux.neo.Obj.pane_start_path","name":"pane_start_path","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":785,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_start_path","product":"core","slug":"libtmux-neo-obj-pane_start_path"},{"id":"libtmux.neo.Obj.pane_synchronized","name":"pane_synchronized","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":786,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_synchronized","product":"core","slug":"libtmux-neo-obj-pane_synchronized"},{"id":"libtmux.neo.Obj.pane_tabs","name":"pane_tabs","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":787,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_tabs","product":"core","slug":"libtmux-neo-obj-pane_tabs"},{"id":"libtmux.neo.Obj.pane_title","name":"pane_title","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":788,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_title","product":"core","slug":"libtmux-neo-obj-pane_title"},{"id":"libtmux.neo.Obj.pane_top","name":"pane_top","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":789,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_top","product":"core","slug":"libtmux-neo-obj-pane_top"},{"id":"libtmux.neo.Obj.pane_tty","name":"pane_tty","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":790,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_tty","product":"core","slug":"libtmux-neo-obj-pane_tty"},{"id":"libtmux.neo.Obj.pane_width","name":"pane_width","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":791,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_width","product":"core","slug":"libtmux-neo-obj-pane_width"},{"id":"libtmux.neo.Obj.pane_x","name":"pane_x","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":792,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_x","product":"core","slug":"libtmux-neo-obj-pane_x"},{"id":"libtmux.neo.Obj.pane_y","name":"pane_y","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":793,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_y","product":"core","slug":"libtmux-neo-obj-pane_y"},{"id":"libtmux.neo.Obj.pane_z","name":"pane_z","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":794,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_z","product":"core","slug":"libtmux-neo-obj-pane_z"},{"id":"libtmux.neo.Obj.pane_zoomed_flag","name":"pane_zoomed_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":795,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pane_zoomed_flag","product":"core","slug":"libtmux-neo-obj-pane_zoomed_flag"},{"id":"libtmux.neo.Obj.pid","name":"pid","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":796,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.pid","product":"core","slug":"libtmux-neo-obj-pid"},{"id":"libtmux.neo.Obj.scroll_position","name":"scroll_position","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":797,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.scroll_position","product":"core","slug":"libtmux-neo-obj-scroll_position"},{"id":"libtmux.neo.Obj.scroll_region_lower","name":"scroll_region_lower","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":798,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.scroll_region_lower","product":"core","slug":"libtmux-neo-obj-scroll_region_lower"},{"id":"libtmux.neo.Obj.scroll_region_upper","name":"scroll_region_upper","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":799,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.scroll_region_upper","product":"core","slug":"libtmux-neo-obj-scroll_region_upper"},{"id":"libtmux.neo.Obj.search_match","name":"search_match","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":800,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.search_match","product":"core","slug":"libtmux-neo-obj-search_match"},{"id":"libtmux.neo.Obj.selection_end_x","name":"selection_end_x","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":801,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.selection_end_x","product":"core","slug":"libtmux-neo-obj-selection_end_x"},{"id":"libtmux.neo.Obj.selection_end_y","name":"selection_end_y","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":802,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.selection_end_y","product":"core","slug":"libtmux-neo-obj-selection_end_y"},{"id":"libtmux.neo.Obj.selection_start_x","name":"selection_start_x","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":803,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.selection_start_x","product":"core","slug":"libtmux-neo-obj-selection_start_x"},{"id":"libtmux.neo.Obj.selection_start_y","name":"selection_start_y","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":804,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.selection_start_y","product":"core","slug":"libtmux-neo-obj-selection_start_y"},{"id":"libtmux.neo.Obj.session_activity","name":"session_activity","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":805,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_activity","product":"core","slug":"libtmux-neo-obj-session_activity"},{"id":"libtmux.neo.Obj.session_alerts","name":"session_alerts","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":806,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_alerts","product":"core","slug":"libtmux-neo-obj-session_alerts"},{"id":"libtmux.neo.Obj.session_attached","name":"session_attached","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":807,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_attached","product":"core","slug":"libtmux-neo-obj-session_attached"},{"id":"libtmux.neo.Obj.session_attached_list","name":"session_attached_list","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":808,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_attached_list","product":"core","slug":"libtmux-neo-obj-session_attached_list"},{"id":"libtmux.neo.Obj.session_created","name":"session_created","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":809,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_created","product":"core","slug":"libtmux-neo-obj-session_created"},{"id":"libtmux.neo.Obj.session_format","name":"session_format","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":810,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_format","product":"core","slug":"libtmux-neo-obj-session_format"},{"id":"libtmux.neo.Obj.session_group","name":"session_group","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":811,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_group","product":"core","slug":"libtmux-neo-obj-session_group"},{"id":"libtmux.neo.Obj.session_group_attached","name":"session_group_attached","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":812,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_group_attached","product":"core","slug":"libtmux-neo-obj-session_group_attached"},{"id":"libtmux.neo.Obj.session_group_attached_list","name":"session_group_attached_list","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":813,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_group_attached_list","product":"core","slug":"libtmux-neo-obj-session_group_attached_list"},{"id":"libtmux.neo.Obj.session_group_list","name":"session_group_list","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":814,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_group_list","product":"core","slug":"libtmux-neo-obj-session_group_list"},{"id":"libtmux.neo.Obj.session_group_many_attached","name":"session_group_many_attached","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":815,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_group_many_attached","product":"core","slug":"libtmux-neo-obj-session_group_many_attached"},{"id":"libtmux.neo.Obj.session_group_size","name":"session_group_size","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":816,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_group_size","product":"core","slug":"libtmux-neo-obj-session_group_size"},{"id":"libtmux.neo.Obj.session_grouped","name":"session_grouped","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":817,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_grouped","product":"core","slug":"libtmux-neo-obj-session_grouped"},{"id":"libtmux.neo.Obj.session_id","name":"session_id","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":818,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_id","product":"core","slug":"libtmux-neo-obj-session_id"},{"id":"libtmux.neo.Obj.session_last_attached","name":"session_last_attached","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":819,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_last_attached","product":"core","slug":"libtmux-neo-obj-session_last_attached"},{"id":"libtmux.neo.Obj.session_many_attached","name":"session_many_attached","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":820,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_many_attached","product":"core","slug":"libtmux-neo-obj-session_many_attached"},{"id":"libtmux.neo.Obj.session_marked","name":"session_marked","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":821,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_marked","product":"core","slug":"libtmux-neo-obj-session_marked"},{"id":"libtmux.neo.Obj.session_name","name":"session_name","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":822,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_name","product":"core","slug":"libtmux-neo-obj-session_name"},{"id":"libtmux.neo.Obj.session_path","name":"session_path","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":823,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_path","product":"core","slug":"libtmux-neo-obj-session_path"},{"id":"libtmux.neo.Obj.session_stack","name":"session_stack","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":824,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_stack","product":"core","slug":"libtmux-neo-obj-session_stack"},{"id":"libtmux.neo.Obj.session_windows","name":"session_windows","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":825,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.session_windows","product":"core","slug":"libtmux-neo-obj-session_windows"},{"id":"libtmux.neo.Obj.socket_path","name":"socket_path","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":826,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.socket_path","product":"core","slug":"libtmux-neo-obj-socket_path"},{"id":"libtmux.neo.Obj.start_time","name":"start_time","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":827,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.start_time","product":"core","slug":"libtmux-neo-obj-start_time"},{"id":"libtmux.neo.Obj.synchronized_output_flag","name":"synchronized_output_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":828,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.synchronized_output_flag","product":"core","slug":"libtmux-neo-obj-synchronized_output_flag"},{"id":"libtmux.neo.Obj.uid","name":"uid","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":829,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.uid","product":"core","slug":"libtmux-neo-obj-uid"},{"id":"libtmux.neo.Obj.user","name":"user","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":830,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.user","product":"core","slug":"libtmux-neo-obj-user"},{"id":"libtmux.neo.Obj.version","name":"version","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":831,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.version","product":"core","slug":"libtmux-neo-obj-version"},{"id":"libtmux.neo.Obj.window_active","name":"window_active","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":832,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_active","product":"core","slug":"libtmux-neo-obj-window_active"},{"id":"libtmux.neo.Obj.window_active_clients","name":"window_active_clients","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":833,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_active_clients","product":"core","slug":"libtmux-neo-obj-window_active_clients"},{"id":"libtmux.neo.Obj.window_active_clients_list","name":"window_active_clients_list","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":834,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_active_clients_list","product":"core","slug":"libtmux-neo-obj-window_active_clients_list"},{"id":"libtmux.neo.Obj.window_active_sessions","name":"window_active_sessions","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":835,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_active_sessions","product":"core","slug":"libtmux-neo-obj-window_active_sessions"},{"id":"libtmux.neo.Obj.window_active_sessions_list","name":"window_active_sessions_list","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":836,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_active_sessions_list","product":"core","slug":"libtmux-neo-obj-window_active_sessions_list"},{"id":"libtmux.neo.Obj.window_activity","name":"window_activity","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":837,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_activity","product":"core","slug":"libtmux-neo-obj-window_activity"},{"id":"libtmux.neo.Obj.window_activity_flag","name":"window_activity_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":838,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_activity_flag","product":"core","slug":"libtmux-neo-obj-window_activity_flag"},{"id":"libtmux.neo.Obj.window_bell_flag","name":"window_bell_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":839,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_bell_flag","product":"core","slug":"libtmux-neo-obj-window_bell_flag"},{"id":"libtmux.neo.Obj.window_bigger","name":"window_bigger","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":840,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_bigger","product":"core","slug":"libtmux-neo-obj-window_bigger"},{"id":"libtmux.neo.Obj.window_cell_height","name":"window_cell_height","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":841,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_cell_height","product":"core","slug":"libtmux-neo-obj-window_cell_height"},{"id":"libtmux.neo.Obj.window_cell_width","name":"window_cell_width","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":842,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_cell_width","product":"core","slug":"libtmux-neo-obj-window_cell_width"},{"id":"libtmux.neo.Obj.window_end_flag","name":"window_end_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":843,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_end_flag","product":"core","slug":"libtmux-neo-obj-window_end_flag"},{"id":"libtmux.neo.Obj.window_flags","name":"window_flags","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":844,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_flags","product":"core","slug":"libtmux-neo-obj-window_flags"},{"id":"libtmux.neo.Obj.window_format","name":"window_format","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":845,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_format","product":"core","slug":"libtmux-neo-obj-window_format"},{"id":"libtmux.neo.Obj.window_height","name":"window_height","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":846,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_height","product":"core","slug":"libtmux-neo-obj-window_height"},{"id":"libtmux.neo.Obj.window_id","name":"window_id","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":847,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_id","product":"core","slug":"libtmux-neo-obj-window_id"},{"id":"libtmux.neo.Obj.window_index","name":"window_index","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":848,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_index","product":"core","slug":"libtmux-neo-obj-window_index"},{"id":"libtmux.neo.Obj.window_last_flag","name":"window_last_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":849,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_last_flag","product":"core","slug":"libtmux-neo-obj-window_last_flag"},{"id":"libtmux.neo.Obj.window_layout","name":"window_layout","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":850,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_layout","product":"core","slug":"libtmux-neo-obj-window_layout"},{"id":"libtmux.neo.Obj.window_linked","name":"window_linked","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":851,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_linked","product":"core","slug":"libtmux-neo-obj-window_linked"},{"id":"libtmux.neo.Obj.window_linked_sessions","name":"window_linked_sessions","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":852,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_linked_sessions","product":"core","slug":"libtmux-neo-obj-window_linked_sessions"},{"id":"libtmux.neo.Obj.window_linked_sessions_list","name":"window_linked_sessions_list","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":853,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_linked_sessions_list","product":"core","slug":"libtmux-neo-obj-window_linked_sessions_list"},{"id":"libtmux.neo.Obj.window_marked_flag","name":"window_marked_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":854,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_marked_flag","product":"core","slug":"libtmux-neo-obj-window_marked_flag"},{"id":"libtmux.neo.Obj.window_name","name":"window_name","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":855,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_name","product":"core","slug":"libtmux-neo-obj-window_name"},{"id":"libtmux.neo.Obj.window_offset_x","name":"window_offset_x","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":856,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_offset_x","product":"core","slug":"libtmux-neo-obj-window_offset_x"},{"id":"libtmux.neo.Obj.window_offset_y","name":"window_offset_y","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":857,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_offset_y","product":"core","slug":"libtmux-neo-obj-window_offset_y"},{"id":"libtmux.neo.Obj.window_panes","name":"window_panes","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":858,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_panes","product":"core","slug":"libtmux-neo-obj-window_panes"},{"id":"libtmux.neo.Obj.window_raw_flags","name":"window_raw_flags","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":859,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_raw_flags","product":"core","slug":"libtmux-neo-obj-window_raw_flags"},{"id":"libtmux.neo.Obj.window_silence_flag","name":"window_silence_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":860,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_silence_flag","product":"core","slug":"libtmux-neo-obj-window_silence_flag"},{"id":"libtmux.neo.Obj.window_stack_index","name":"window_stack_index","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":861,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_stack_index","product":"core","slug":"libtmux-neo-obj-window_stack_index"},{"id":"libtmux.neo.Obj.window_start_flag","name":"window_start_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":862,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_start_flag","product":"core","slug":"libtmux-neo-obj-window_start_flag"},{"id":"libtmux.neo.Obj.window_visible_layout","name":"window_visible_layout","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":863,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_visible_layout","product":"core","slug":"libtmux-neo-obj-window_visible_layout"},{"id":"libtmux.neo.Obj.window_width","name":"window_width","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":864,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_width","product":"core","slug":"libtmux-neo-obj-window_width"},{"id":"libtmux.neo.Obj.window_zoomed_flag","name":"window_zoomed_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":865,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.window_zoomed_flag","product":"core","slug":"libtmux-neo-obj-window_zoomed_flag"},{"id":"libtmux.neo.Obj.wrap_flag","name":"wrap_flag","kind":"attribute","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[],"type":"str | None","value":"None","source":{"file":"src/libtmux/neo.py","line":866,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj.wrap_flag","product":"core","slug":"libtmux-neo-obj-wrap_flag"},{"id":"libtmux.neo.Obj._refresh","name":"_refresh","kind":"method","modifiers":[],"parent":"libtmux.neo.Obj","signatures":[{"params":[{"name":"self"},{"name":"obj_key","type":"str"},{"name":"obj_id","type":"str"},{"name":"list_cmd","type":"ListCmd","default":"\"list-panes\""},{"name":"list_extra_args","type":"ListExtraArgs","default":"None"}],"returns":"None","raises":[{"type":"ValueError","doc":"When ``obj_id`` is ``None``. Surfaces a clear error under\n``python -O``, matching the contract of the public ``refresh()``\nmethods."}]}],"doc":{"summary":"Refresh dataclass fields from a single ``list-*`` row.","body":"Used by the public ``refresh()`` methods on :class:`~libtmux.Pane`,\n:class:`~libtmux.Window`, :class:`~libtmux.Session`, and\n:class:`~libtmux.Client`. Each subclass guards its identity field\n(``pane_id``, ``window_id``, ``session_id``, ``client_name``)\nagainst ``None`` before delegating here; this base method enforces\nthe same precondition explicitly so the guarantee survives\n``python -O``, where an ``assert`` would be stripped.","seeAlso":[]},"source":{"file":"src/libtmux/neo.py","line":868,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.Obj._refresh","product":"core","slug":"libtmux-neo-obj-_refresh"},{"id":"libtmux.neo.get_output_format","name":"get_output_format","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"list_cmd","type":"str","default":"\"list-panes\"","doc":"The tmux list subcommand the format string is being built for.\nDetermines which token scopes are reachable."},{"name":"tmux_version","type":"str","default":"\"3.2a\"","doc":"The live tmux version. Used to gate post-3.2a tokens. Defaults to\n``\"3.2a\"`` (the project's minimum) for safe fallback when the\ncaller can't yet detect the version."}],"returns":"tuple[tuple[str, ...], str]","returnsDoc":"tuple[tuple[str, ...], str]\n A tuple of (field_names, tmux_format_string) restricted to tokens\n the given *list_cmd* and *tmux_version* can resolve."}],"doc":{"summary":"Return field names and tmux format string filtered by scope and version.","body":"Only emits tokens whose scope is reachable from *list_cmd* (per\n:data:`SCOPES_BY_LIST_CMD`) and whose minimum tmux version (per\n:data:`FIELD_VERSION`) is at or below *tmux_version*. Runtime-only\ntokens (``mouse_*``, ``cursor_*``, popups) are excluded from every\n``list-*`` template — they only resolve in event-time format contexts.","examples":[{"lang":"python","code":">>> from libtmux.neo import get_output_format\n>>> fields, fmt = get_output_format(\"list-sessions\", \"3.6a\")\n>>> 'session_id' in fields\nTrue\n>>> 'pane_id' in fields # active pane for the listed session\nTrue\n>>> 'client_name' in fields # upward not allowed\nFalse\n>>> 'server' in fields\nFalse"},{"lang":"python","code":">>> fields, _ = get_output_format(\"list-panes\", \"3.6a\")\n>>> all(t in fields for t in ('pane_id', 'window_id', 'session_id'))\nTrue","intro":"Pane scope picks up window and session tokens too:"},{"lang":"python","code":">>> fields, _ = get_output_format(\"list-clients\", \"3.6a\")\n>>> 'client_name' in fields\nTrue\n>>> 'pane_id' in fields\nTrue","intro":"``list-clients`` adds fields for the attached client:"}],"seeAlso":[]},"source":{"file":"src/libtmux/neo.py","line":909,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.get_output_format","product":"core","slug":"libtmux-neo-get_output_format"},{"id":"libtmux.neo.parse_output","name":"parse_output","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"output","type":"str","doc":"Raw tmux output line produced with a template from\n:func:`get_output_format`."},{"name":"list_cmd","type":"str","default":"\"list-panes\"","doc":"Same value passed to :func:`get_output_format`."},{"name":"tmux_version","type":"str","default":"\"3.2a\"","doc":"Same value passed to :func:`get_output_format`."}],"returns":"OutputRaw","returnsDoc":"OutputRaw\n A dict mapping field names to non-empty string values."}],"doc":{"summary":"Parse a tmux ``-F`` line into a dict keyed by Obj field name.","body":"The (*list_cmd*, *tmux_version*) pair must match what was passed to\n:func:`get_output_format` when the ``-F`` template was built —\notherwise the field order won't line up with the split values.","examples":[{"lang":"python","code":">>> from libtmux.neo import get_output_format, parse_output\n>>> from libtmux.formats import FORMAT_SEPARATOR\n>>> fields, fmt = get_output_format(\"list-sessions\", \"3.6a\")\n>>> values = [''] * len(fields)\n>>> values[fields.index('session_id')] = '$1'\n>>> result = parse_output(\n... FORMAT_SEPARATOR.join(values) + FORMAT_SEPARATOR,\n... list_cmd=\"list-sessions\",\n... tmux_version=\"3.6a\",\n... )\n>>> result['session_id']\n'$1'\n>>> 'pane_id' in result\nFalse"}],"seeAlso":[]},"source":{"file":"src/libtmux/neo.py","line":985,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.parse_output","product":"core","slug":"libtmux-neo-parse_output"},{"id":"libtmux.neo.fetch_objs","name":"fetch_objs","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"server","type":"Server","doc":"The tmux server to query."},{"name":"list_cmd","type":"ListCmd","doc":"The tmux list command to run, e.g. ``\"list-sessions\"``,\n``\"list-windows\"``, or ``\"list-panes\"``."},{"name":"list_extra_args","type":"ListExtraArgs","default":"None","doc":"Extra arguments appended to the tmux command (e.g. ``(\"-a\",)``\nfor all windows/panes, or ``[\"-t\", session_id]`` to filter)."},{"name":"filter","type":"str | None","default":"None","doc":"Filter expression evaluated by tmux (``-f`` flag). tmux omits rows\nwhose expanded expression is false before libtmux parses the result.\ntmux silently expands a malformed filter (unclosed ``#{...}``,\nunknown format token) to empty, which is treated as false —\nevery row is suppressed and no stderr is emitted. A bad filter\nis indistinguishable from \"filter matched nothing\"; verify the\nexpression against the FORMATS section of ``tmux(1)``. See\n:ref:`native-filtering` for the typed wrappers that share this\ncaveat. Warning:","since":"0.57"},{"name":"# noqa: A002"}],"returns":"OutputsRaw","returnsDoc":"OutputsRaw\n A list of dicts, each mapping tmux format field names to their\n non-empty string values.","raises":[{"type":"LibTmuxException","doc":"If the tmux command writes to stderr."}]}],"doc":{"summary":"Fetch a listing of raw data from a tmux command.","body":"Runs a tmux list command (e.g. ``list-sessions``) with the format string\nfrom :func:`get_output_format` and parses each line of output into a dict.","examples":[{"lang":"python","code":">>> from libtmux.neo import fetch_objs\n>>> objs = fetch_objs(server=server, list_cmd=\"list-sessions\")\n>>> isinstance(objs, list)\nTrue\n>>> isinstance(objs[0], dict)\nTrue\n>>> 'session_id' in objs[0]\nTrue"}],"seeAlso":[]},"source":{"file":"src/libtmux/neo.py","line":1039,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.fetch_objs","product":"core","slug":"libtmux-neo-fetch_objs"},{"id":"libtmux.neo._is_target_not_found_error","name":"_is_target_not_found_error","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"stderr_text","type":"str","doc":"tmux's stderr, as carried by the raised\n:exc:`~libtmux.exc.LibTmuxException`."}],"returns":"bool","returnsDoc":"bool\n True when the object named by ``-t`` does not exist on a reachable\n server."}],"doc":{"summary":"Return True if tmux failed because the ``-t`` target does not exist.","body":"A live tmux server rejects an unknown target with ``can't find :\n`` on stderr (``cmd_find_target`` in tmux's ``cmd-find.c``), for\nevery object kind and every supported tmux version. Every *other* failure\n-- a stopped daemon, a missing socket, a permission error -- says something\nelse, and stays a :exc:`~libtmux.exc.LibTmuxException`.\n\nThis is the mirror image of :func:`libtmux.server._is_daemon_not_up_error`:\ntogether they answer \"is the object gone, or is the server gone?\" from the\nsame stderr text.","examples":[{"lang":"python","code":">>> from libtmux.neo import _is_target_not_found_error\n>>> _is_target_not_found_error(\"can't find pane: %99\")\nTrue\n>>> _is_target_not_found_error(\"can't find window: @99\")\nTrue\n>>> _is_target_not_found_error(\"can't find session: $99\")\nTrue"},{"lang":"python","code":">>> _is_target_not_found_error(\"no server running on /tmp/tmux-1000/default\")\nFalse\n>>> _is_target_not_found_error(\n... \"error connecting to /tmp/tmux-1000/nope (No such file or directory)\"\n... )\nFalse","intro":"A server that isn't there is a different answer:"}],"seeAlso":[]},"source":{"file":"src/libtmux/neo.py","line":1157,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo._is_target_not_found_error","product":"core","slug":"libtmux-neo-_is_target_not_found_error"},{"id":"libtmux.neo._best_winlink","name":"_best_winlink","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"rows","type":"OutputsRaw","doc":"Non-empty rows for one object id in one session. Order does not\nmatter: the current winlink wins, otherwise the lowest\n``window_index``."}],"returns":"OutputRaw","returnsDoc":"OutputRaw\n The row naming the winlink tmux would act on."}],"doc":{"summary":"Pick the winlink row tmux would select.","body":"A ``list-windows`` listing enumerates :term:`winlinks ` --\n``(session, index, window)`` edges -- not windows. ``link-window`` can attach\none window to a session at several indexes at once, so the same\n``window_id`` may appear on several rows, each with a different\n``window_index``.\n\ntmux selects the current winlink when it contains the window, otherwise the\nfirst. ``#{window_active}`` identifies the current row, and the lowest\n``window_index`` is tmux's first -- chosen explicitly here, so the caller\nneed not pre-sort the rows.","examples":[{"lang":"python","code":">>> from libtmux.neo import _best_winlink\n>>> _best_winlink([{\"window_id\": \"@0\", \"window_index\": \"1\"}])[\"window_index\"]\n'1'","intro":"One row is the whole answer:"},{"lang":"python","code":">>> _best_winlink([\n... {\"window_id\": \"@0\", \"window_index\": \"1\", \"window_active\": \"0\"},\n... {\"window_id\": \"@0\", \"window_index\": \"5\", \"window_active\": \"1\"},\n... ])[\"window_index\"]\n'5'","intro":"A window linked into one session twice gives two rows. When the session is sitting on the higher-indexed link, that is the one tmux acts on:"},{"lang":"python","code":">>> _best_winlink([\n... {\"window_id\": \"@0\", \"window_index\": \"1\", \"window_active\": \"0\"},\n... {\"window_id\": \"@0\", \"window_index\": \"5\", \"window_active\": \"0\"},\n... ])[\"window_index\"]\n'1'","intro":"When the session is sitting on some *other* window, neither link is current, and tmux falls back to the first:"},{"lang":"python","code":">>> _best_winlink([\n... {\"window_id\": \"@0\", \"window_index\": \"5\", \"window_active\": \"0\"},\n... {\"window_id\": \"@0\", \"window_index\": \"1\", \"window_active\": \"0\"},\n... ])[\"window_index\"]\n'1'","intro":"The fallback reads the lowest index, not the first row, so a listing that happened to arrive high-index-first still answers tmux's first:"}],"seeAlso":[]},"source":{"file":"src/libtmux/neo.py","line":1204,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo._best_winlink","product":"core","slug":"libtmux-neo-_best_winlink"},{"id":"libtmux.neo.fetch_obj","name":"fetch_obj","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"server","type":"Server","doc":"The tmux server to query."},{"name":"obj_key","type":"str","doc":"Identity field to match, e.g. ``\"pane_id\"``."},{"name":"obj_id","type":"str","doc":"Value the identity field must equal, e.g. ``\"%3\"``."},{"name":"list_cmd","type":"ListCmd","default":"\"list-panes\"","doc":"tmux list subcommand to run."},{"name":"list_extra_args","type":"ListExtraArgs","default":"None","doc":"Extra arguments appended verbatim to the tmux command, e.g.\n``(\"-t\", \"%3\")`` to scope the listing to one object's parent."}],"returns":"OutputRaw","returnsDoc":"OutputRaw\n The matching row, as a dict of tmux format fields.","raises":[{"type":"TmuxObjectDoesNotExist","doc":"When the object does not exist -- whether tmux said so on stderr\n(``can't find pane: %99``, for a ``-t``-scoped listing) or the object\nsimply never appeared in the rows."},{"type":"LibTmuxException","doc":"For every other tmux failure, notably an unreachable server."}]}],"doc":{"summary":"Fetch the single ``list-*`` row whose *obj_key* equals *obj_id*.","body":"A listing enumerates :term:`winlinks `, so a window linked into one\nsession at two indexes matches twice. :func:`_best_winlink` then picks the\nrow tmux itself would act on, rather than whichever sorted last.","examples":[{"lang":"python","code":">>> from libtmux.neo import fetch_obj\n>>> fetch_obj(\n... server=pane.server,\n... obj_key=\"pane_id\",\n... obj_id=pane.pane_id,\n... list_cmd=\"list-panes\",\n... list_extra_args=(\"-t\", pane.pane_id),\n... )[\"pane_id\"] == pane.pane_id\nTrue"},{"lang":"python","code":">>> from libtmux import exc\n>>> try:\n... fetch_obj(\n... server=pane.server,\n... obj_key=\"pane_id\",\n... obj_id=\"%99999\",\n... list_cmd=\"list-panes\",\n... list_extra_args=(\"-t\", \"%99999\"),\n... )\n... except exc.TmuxObjectDoesNotExist as e:\n... print(e)\nCould not find pane_id=%99999 for list-panes ('-t', '%99999')","intro":"A pane that does not exist on a live server is a :exc:`~libtmux.exc.TmuxObjectDoesNotExist`, not a bare tmux error:"}],"seeAlso":[]},"source":{"file":"src/libtmux/neo.py","line":1275,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.neo.fetch_obj","product":"core","slug":"libtmux-neo-fetch_obj"},{"id":"libtmux.options.TerminalOverride","name":"TerminalOverride","kind":"constant","modifiers":[],"signatures":[],"value":"dict[str, str | None]","source":{"file":"src/libtmux/options.py","line":97,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options.TerminalOverride","product":"core","slug":"libtmux-options-terminaloverride"},{"id":"libtmux.options.TerminalOverrides","name":"TerminalOverrides","kind":"constant","modifiers":[],"signatures":[],"value":"dict[str, TerminalOverride]","source":{"file":"src/libtmux/options.py","line":98,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options.TerminalOverrides","product":"core","slug":"libtmux-options-terminaloverrides"},{"id":"libtmux.options.CommandAliases","name":"CommandAliases","kind":"constant","modifiers":[],"signatures":[],"value":"dict[str, str]","source":{"file":"src/libtmux/options.py","line":99,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options.CommandAliases","product":"core","slug":"libtmux-options-commandaliases"},{"id":"libtmux.options.OptionDict","name":"OptionDict","kind":"constant","modifiers":[],"signatures":[],"type":"TypeAlias","value":"dict[str, t.Any]","source":{"file":"src/libtmux/options.py","line":101,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options.OptionDict","product":"core","slug":"libtmux-options-optiondict"},{"id":"libtmux.options.UntypedOptionsDict","name":"UntypedOptionsDict","kind":"constant","modifiers":[],"signatures":[],"type":"TypeAlias","value":"dict[str, str | None]","source":{"file":"src/libtmux/options.py","line":102,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options.UntypedOptionsDict","product":"core","slug":"libtmux-options-untypedoptionsdict"},{"id":"libtmux.options.ExplodedUntypedOptionsDict","name":"ExplodedUntypedOptionsDict","kind":"constant","modifiers":[],"signatures":[],"type":"TypeAlias","value":"dict[\n str,\n str | int | list[str] | dict[str, list[str]],\n]","source":{"file":"src/libtmux/options.py","line":103,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options.ExplodedUntypedOptionsDict","product":"core","slug":"libtmux-options-explodeduntypedoptionsdict"},{"id":"libtmux.options.ExplodedComplexUntypedOptionsDict","name":"ExplodedComplexUntypedOptionsDict","kind":"constant","modifiers":[],"signatures":[],"type":"TypeAlias","value":"dict[\n str,\n str\n | int\n | list[str | int]\n | dict[str, list[str | int]]\n | SparseArray[str | int]\n | None,\n]","source":{"file":"src/libtmux/options.py","line":107,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options.ExplodedComplexUntypedOptionsDict","product":"core","slug":"libtmux-options-explodedcomplexuntypedoptionsdict"},{"id":"libtmux.options.logger","name":"logger","kind":"constant","modifiers":[],"signatures":[],"value":"logging.getLogger(__name__)","source":{"file":"src/libtmux/options.py","line":117,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options.logger","product":"core","slug":"libtmux-options-logger"},{"id":"libtmux.options.handle_option_error","name":"handle_option_error","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"error","type":"str","doc":"Error response from subprocess call."}],"returns":"type[exc.OptionError]","raises":[{"type":"exc.OptionError"},{"type":"exc.UnknownOption"},{"type":"exc.InvalidOption"},{"type":"exc.AmbiguousOption"}]}],"doc":{"summary":"Raise exception if error in option command found.","body":"In tmux 3.0, show-option and show-window-option return invalid option instead of\nunknown option. See https://github.com/tmux/tmux/blob/3.0/cmd-show-options.c.\n\nIn tmux >2.4, there are 3 different types of option errors:\n\n- unknown option\n- invalid option\n- ambiguous option\n\nIn tmux <2.4, unknown option was the only option.\n\nAll errors raised will have the base error of :exc:`exc.OptionError`. So to\ncatch any option error, use ``except exc.OptionError``.","examples":[{"lang":"python","code":">>> result = server.cmd(\n... 'set-option',\n... 'unknown-option-name',\n... )"},{"lang":"python","code":">>> bool(isinstance(result.stderr, list) and len(result.stderr))\nTrue"},{"lang":"python","code":">>> import pytest\n>>> from libtmux import exc"},{"lang":"python","code":">>> with pytest.raises(exc.OptionError):\n... handle_option_error(result.stderr[0])"}],"seeAlso":[]},"source":{"file":"src/libtmux/options.py","line":120,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options.handle_option_error","product":"core","slug":"libtmux-options-handle_option_error"},{"id":"libtmux.options._V","name":"_V","kind":"constant","modifiers":[],"signatures":[],"value":"t.TypeVar(\"_V\")","source":{"file":"src/libtmux/options.py","line":172,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options._V","product":"core","slug":"libtmux-options-_v"},{"id":"libtmux.options.ConvertedValue","name":"ConvertedValue","kind":"constant","modifiers":[],"signatures":[],"type":"TypeAlias","value":"str | int | bool | None","source":{"file":"src/libtmux/options.py","line":173,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options.ConvertedValue","product":"core","slug":"libtmux-options-convertedvalue"},{"id":"libtmux.options.ConvertedValues","name":"ConvertedValues","kind":"constant","modifiers":[],"signatures":[],"type":"TypeAlias","value":"(\n ConvertedValue\n | list[ConvertedValue]\n | dict[str, ConvertedValue]\n | SparseArray[ConvertedValue]\n)","source":{"file":"src/libtmux/options.py","line":174,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options.ConvertedValues","product":"core","slug":"libtmux-options-convertedvalues"},{"id":"libtmux.options.convert_value","name":"convert_value","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"value","type":"_V | None"}],"returns":"ConvertedValue | _V | None"}],"doc":{"summary":"Convert raw option strings to python types.","examples":[{"lang":"python","code":">>> convert_value(\"on\")\nTrue\n>>> convert_value(\"off\")\nFalse"},{"lang":"python","code":">>> convert_value(\"1\")\n1\n>>> convert_value(\"50\")\n50"},{"lang":"python","code":">>> convert_value(\"%50\")\n'%50'"}],"seeAlso":[]},"source":{"file":"src/libtmux/options.py","line":182,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options.convert_value","product":"core","slug":"libtmux-options-convert_value"},{"id":"libtmux.options.convert_values","name":"convert_values","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"value","type":"_V | None"}],"returns":"ConvertedValues | _V | None"}],"doc":{"summary":"Recursively convert values to python types via :func:`convert_value`.","body":"```python\n>>> convert_values(None)\n```\n\n```python\n>>> convert_values(\"on\")\nTrue\n>>> convert_values(\"off\")\nFalse\n```\n\n```python\n>>> convert_values([\"on\"])\n[True]\n>>> convert_values([\"off\"])\n[False]\n```\n\n```python\n>>> convert_values({\"window_index\": \"1\"})\n{'window_index': 1}\n```\n\n```python\n>>> convert_values({\"visual-bell\": \"on\"})\n{'visual-bell': True}\n```","seeAlso":[]},"source":{"file":"src/libtmux/options.py","line":217,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options.convert_values","product":"core","slug":"libtmux-options-convert_values"},{"id":"libtmux.options.parse_options_to_dict","name":"parse_options_to_dict","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"stdout","type":"t.IO[str]"}],"returns":"UntypedOptionsDict"}],"doc":{"summary":"Process subprocess.stdout options or hook output to flat, naive, untyped dict.","body":"Does not explode arrays or deep values.","examples":[{"lang":"python","code":">>> import io"},{"lang":"python","code":">>> raw_options = io.StringIO(\"status-keys vi\")\n>>> parse_options_to_dict(raw_options) == {\"status-keys\": \"vi\"}\nTrue"},{"lang":"python","code":">>> int_options = io.StringIO(\"message-limit 50\")\n>>> parse_options_to_dict(int_options) == {\"message-limit\": \"50\"}\nTrue"},{"lang":"python","code":">>> empty_option = io.StringIO(\"user-keys\")\n>>> parse_options_to_dict(empty_option) == {\"user-keys\": None}\nTrue"},{"lang":"python","code":">>> array_option = io.StringIO(\"command-alias[0] split-pane=split-window\")\n>>> parse_options_to_dict(array_option) == {\n... \"command-alias[0]\": \"split-pane=split-window\"}\nTrue"},{"lang":"python","code":">>> array_option = io.StringIO(\"command-alias[40] split-pane=split-window\")\n>>> parse_options_to_dict(array_option) == {\n... \"command-alias[40]\": \"split-pane=split-window\"}\nTrue"},{"lang":"python","code":">>> many_options = io.StringIO(r'''status-keys\n... command-alias[0] split-pane=split-window\n... ''')\n>>> parse_options_to_dict(many_options) == {\n... \"command-alias[0]\": \"split-pane=split-window\",\n... \"status-keys\": None,}\nTrue"},{"lang":"python","code":">>> many_more_options = io.StringIO(r'''\n... terminal-features[0] xterm*:clipboard:ccolour:cstyle:focus\n... terminal-features[1] screen*:title\n... ''')\n>>> parse_options_to_dict(many_more_options) == {\n... \"terminal-features[0]\": \"xterm*:clipboard:ccolour:cstyle:focus\",\n... \"terminal-features[1]\": \"screen*:title\",}\nTrue"},{"lang":"python","code":">>> quoted_option = io.StringIO(r'''\n... command-alias[0] \"choose-session=choose-tree -s\"\n... ''')\n>>> parse_options_to_dict(quoted_option) == {\n... \"command-alias[0]\": \"choose-session=choose-tree -s\",\n... }\nTrue"}],"seeAlso":[]},"source":{"file":"src/libtmux/options.py","line":254,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options.parse_options_to_dict","product":"core","slug":"libtmux-options-parse_options_to_dict"},{"id":"libtmux.options.explode_arrays","name":"explode_arrays","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"_dict","type":"UntypedOptionsDict"},{"name":"force_array","type":"bool","default":"False"}],"returns":"ExplodedUntypedOptionsDict"}],"doc":{"summary":"Explode flat, naive options dict's option arrays.","examples":[{"lang":"python","code":">>> import io"},{"lang":"python","code":">>> many_more_options = io.StringIO(r'''\n... terminal-features[0] xterm*:clipboard:ccolour:cstyle:focus\n... terminal-features[1] screen*:title\n... ''')\n>>> many_more_flat_dict = parse_options_to_dict(many_more_options)\n>>> many_more_flat_dict == {\n... \"terminal-features[0]\": \"xterm*:clipboard:ccolour:cstyle:focus\",\n... \"terminal-features[1]\": \"screen*:title\",}\nTrue\n>>> explode_arrays(many_more_flat_dict) == {\n... \"terminal-features\": {0: \"xterm*:clipboard:ccolour:cstyle:focus\",\n... 1: \"screen*:title\"}}\nTrue"},{"lang":"python","code":">>> explode_arrays(parse_options_to_dict(io.StringIO(r'''\n... terminal-features[0] xterm*:clipboard:ccolour:cstyle:focus\n... terminal-features[5] screen*:title\n... '''))) == {\n... \"terminal-features\": {0: \"xterm*:clipboard:ccolour:cstyle:focus\",\n... 5: \"screen*:title\"}}\nTrue","intro":"tmux arrays allow non-sequential indexes, so we need to support that:"},{"lang":"python","code":">>> from libtmux._internal.sparse_array import SparseArray","intro":"Use ``force_array=True`` for hooks, which always use array format:"},{"lang":"python","code":">>> hooks_output = io.StringIO(r'''\n... session-renamed[0] display-message 'renamed'\n... session-renamed[5] refresh-client\n... pane-focus-in[0] run-shell 'echo focus'\n... ''')\n>>> hooks_exploded = explode_arrays(\n... parse_options_to_dict(hooks_output),\n... force_array=True,\n... )"},{"lang":"python","code":">>> isinstance(hooks_exploded[\"session-renamed\"], SparseArray)\nTrue\n>>> hooks_exploded[\"session-renamed\"][0]\n\"display-message 'renamed'\"\n>>> hooks_exploded[\"session-renamed\"][5]\n'refresh-client'\n>>> sorted(hooks_exploded[\"session-renamed\"].keys())\n[0, 5]","intro":"Each hook becomes a SparseArray preserving indices:"}],"seeAlso":[]},"source":{"file":"src/libtmux/options.py","line":334,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options.explode_arrays","product":"core","slug":"libtmux-options-explode_arrays"},{"id":"libtmux.options.explode_complex","name":"explode_complex","kind":"function","modifiers":[],"signatures":[{"params":[{"name":"_dict","type":"ExplodedUntypedOptionsDict"}],"returns":"ExplodedComplexUntypedOptionsDict"}],"doc":{"summary":"Explode arrayed option's complex values.","examples":[{"lang":"python","code":">>> import io"},{"lang":"python","code":">>> explode_complex(explode_arrays(parse_options_to_dict(io.StringIO(r'''\n... terminal-features[0] xterm*:clipboard:ccolour:cstyle:focus\n... terminal-features[5] screen*:title\n... '''))))\n{'terminal-features': {'xterm*': ['clipboard', 'ccolour', 'cstyle', 'focus'], 'screen*': ['title']}}"},{"lang":"python","code":">>> explode_complex(explode_arrays(parse_options_to_dict(io.StringIO(r'''\n... terminal-features[0] xterm*:clipboard:ccolour:cstyle:focus\n... terminal-features[5] screen*:title\n... ''')))) == {\n... \"terminal-features\": {\"xterm*\": [\"clipboard\", \"ccolour\", \"cstyle\", \"focus\"],\n... \"screen*\": [\"title\"]}}\nTrue"},{"lang":"python","code":">>> explode_complex(explode_arrays(parse_options_to_dict(io.StringIO(r'''\n... command-alias[0] split-pane=split-window\n... command-alias[1] splitp=split-window\n... command-alias[2] \"server-info=show-messages -JT\"\n... ''')))) == {\n... \"command-alias\": {\"split-pane\": \"split-window\",\n... \"splitp\": \"split-window\",\n... \"server-info\": \"show-messages -JT\"}}\nTrue"},{"lang":"python","code":">>> explode_complex(explode_arrays({\"terminal-features\": {0: \"xterm*:clipboard:ccolour:cstyle:focus\",\n... 1: \"screen*:title\"}}))\n{'terminal-features': {0: 'xterm*:clipboard:ccolour:cstyle:focus', 1: 'screen*:title'}}"},{"lang":"python","code":">>> explode_complex(explode_arrays({\"terminal-features\": {0: \"xterm*:clipboard:ccolour:cstyle:focus\",\n... 8: \"screen*:title\"}})) == SparseArray({'terminal-features': {0:\n... 'xterm*:clipboard:ccolour:cstyle:focus', 8: 'screen*:title'}})\nTrue"},{"lang":"python","code":">>> explode_complex(explode_arrays(parse_options_to_dict(io.StringIO(r'''\n... terminal-overrides[0] xterm-256color:Tc\n... terminal-overrides[1] *:U8=0\n... ''')))) == {\n... \"terminal-overrides\": {\"xterm-256color\": {\"Tc\": None},\n... \"*\": {\"U8\": 0}}}\nTrue"},{"lang":"python","code":">>> explode_complex(explode_arrays(parse_options_to_dict(io.StringIO(r'''\n... user-keys[100] \"\\e[test\"\n... user-keys[6] \"\\e\\n\"\n... user-keys[0] \"\\e[5;30012~\"\n... ''')))) == {\n... \"user-keys\": {0: \"\\\\e[5;30012~\",\n... 6: \"\\\\e\\\\n\",\n... 100: \"\\\\e[test\"}}\nTrue"},{"lang":"python","code":">>> explode_complex(explode_arrays(parse_options_to_dict(io.StringIO(r'''\n... status-format[0] \"#[align=left range=left #{E:status-left-style}]#[push-default]#{T;=/#{status-left-length}:status-left}#[pop-default]#[norange default]#[list=on align=#{status-justify}]#[list=left-marker]<#[list=right-marker]>#[list=on]#{W:#[range=window|#{window_index} #{E:window-status-style}#{?#{&&:#{window_last_flag},#{!=:#{E:window-status-last-style},default}}, #{E:window-status-last-style},}#{?#{&&:#{window_bell_flag},#{!=:#{E:window-status-bell-style},default}}, #{E:window-status-bell-style},#{?#{&&:#{||:#{window_activity_flag},#{window_silence_flag}},#{!=:#{E:window-status-activity-style},default}}, #{E:window-status-activity-style},}}]#[push-default]#{T:window-status-format}#[pop-default]#[norange default]#{?window_end_flag,,#{window-status-separator}},#[range=window|#{window_index} list=focus #{?#{!=:#{E:window-status-current-style},default},#{E:window-status-current-style},#{E:window-status-style}}#{?#{&&:#{window_last_flag},#{!=:#{E:window-status-last-style},default}}, #{E:window-status-last-style},}#{?#{&&:#{window_bell_flag},#{!=:#{E:window-status-bell-style},default}}, #{E:window-status-bell-style},#{?#{&&:#{||:#{window_activity_flag},#{window_silence_flag}},#{!=:#{E:window-status-activity-style},default}}, #{E:window-status-activity-style},}}]#[push-default]#{T:window-status-current-format}#[pop-default]#[norange list=on default]#{?window_end_flag,,#{window-status-separator}}}#[nolist align=right range=right #{E:status-right-style}]#[push-default]#{T;=/#{status-right-length}:status-right}#[pop-default]#[norange default]\"\n... status-format[1] \"#[align=centre]#{P:#{?pane_active,#[reverse],}#{pane_index}[#{pane_width}x#{pane_height}]#[default] }\"\n... ''')))) == {\n... \"status-format\": {0: \"#[align=left range=left #{E:status-left-style}]#[push-default]#{T;=/#{status-left-length}:status-left}#[pop-default]#[norange default]#[list=on align=#{status-justify}]#[list=left-marker]<#[list=right-marker]>#[list=on]#{W:#[range=window|#{window_index} #{E:window-status-style}#{?#{&&:#{window_last_flag},#{!=:#{E:window-status-last-style},default}}, #{E:window-status-last-style},}#{?#{&&:#{window_bell_flag},#{!=:#{E:window-status-bell-style},default}}, #{E:window-status-bell-style},#{?#{&&:#{||:#{window_activity_flag},#{window_silence_flag}},#{!=:#{E:window-status-activity-style},default}}, #{E:window-status-activity-style},}}]#[push-default]#{T:window-status-format}#[pop-default]#[norange default]#{?window_end_flag,,#{window-status-separator}},#[range=window|#{window_index} list=focus #{?#{!=:#{E:window-status-current-style},default},#{E:window-status-current-style},#{E:window-status-style}}#{?#{&&:#{window_last_flag},#{!=:#{E:window-status-last-style},default}}, #{E:window-status-last-style},}#{?#{&&:#{window_bell_flag},#{!=:#{E:window-status-bell-style},default}}, #{E:window-status-bell-style},#{?#{&&:#{||:#{window_activity_flag},#{window_silence_flag}},#{!=:#{E:window-status-activity-style},default}}, #{E:window-status-activity-style},}}]#[push-default]#{T:window-status-current-format}#[pop-default]#[norange list=on default]#{?window_end_flag,,#{window-status-separator}}}#[nolist align=right range=right #{E:status-right-style}]#[push-default]#{T;=/#{status-right-length}:status-right}#[pop-default]#[norange default]\",\n... 1: \"#[align=centre]#{P:#{?pane_active,#[reverse],}#{pane_index}[#{pane_width}x#{pane_height}]#[default] }\",\n... }}\nTrue"}],"seeAlso":[]},"source":{"file":"src/libtmux/options.py","line":439,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options.explode_complex","product":"core","slug":"libtmux-options-explode_complex"},{"id":"libtmux.options.OptionsMixin","name":"OptionsMixin","kind":"class","modifiers":[],"signatures":[],"doc":{"summary":"Mixin for managing tmux options based on scope.","seeAlso":[]},"extends":["CmdMixin"],"source":{"file":"src/libtmux/options.py","line":583,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options.OptionsMixin","product":"core","slug":"libtmux-options-optionsmixin"},{"id":"libtmux.options.OptionsMixin.default_option_scope","name":"default_option_scope","kind":"attribute","modifiers":[],"parent":"libtmux.options.OptionsMixin","signatures":[],"type":"OptionScope | None","source":{"file":"src/libtmux/options.py","line":586,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options.OptionsMixin.default_option_scope","product":"core","slug":"libtmux-options-optionsmixin-default_option_scope"},{"id":"libtmux.options.OptionsMixin.__init__","name":"__init__","kind":"method","modifiers":[],"parent":"libtmux.options.OptionsMixin","signatures":[{"params":[{"name":"self"},{"name":"default_option_scope","type":"OptionScope | None","default":"None"}],"returns":"None"}],"doc":{"summary":"When not a user (custom) option, scope can be implied.","seeAlso":[]},"source":{"file":"src/libtmux/options.py","line":588,"repo":"tmux-python/libtmux","revision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea","extractedRevision":"8e0ce38400618bd783e6276270dd7f5d8cb283ea"},"imports":{"t":"typing"},"publicId":"libtmux.options.OptionsMixin.__init__","product":"core","slug":"libtmux-options-optionsmixin-__init__"},{"id":"libtmux.options.OptionsMixin.set_option","name":"set_option","kind":"method","modifiers":[],"parent":"libtmux.options.OptionsMixin","signatures":[{"params":[{"name":"self"},{"name":"option","type":"str","doc":"option to set, e.g. 'aggressive-resize'"},{"name":"value","type":"int | str","doc":"option value. True/False will turn in 'on' and 'off',\nalso accepts string of 'on' or 'off' directly."},{"name":"_format","type":"bool | None","default":"None"},{"name":"prevent_overwrite","type":"bool | None","default":"None"},{"name":"ignore_errors","type":"bool | None","default":"None"},{"name":"suppress_warnings","type":"bool | None","default":"None"},{"name":"append","type":"bool | None","default":"None"},{"name":"g","type":"bool | None","default":"None"},{"name":"global_","type":"bool | None","default":"None"},{"name":"scope","type":"OptionScope | _DefaultOptionScope | None","default":"DEFAULT_OPTION_SCOPE"}],"returns":"Self","raises":[{"type":"exc.OptionError"},{"type":"exc.UnknownOption"},{"type":"exc.InvalidOption"},{"type":"exc.AmbiguousOption"}]}],"doc":{"summary":"Set option for tmux target.","body":"Wraps ``$ tmux set-option